和文のスケーリングをしようと,次のように,最初の 9 を取って小さくしたのですが,gt は効くのに対し,mc は効きません。どうしたら効かせるようにできるでしょうか。
\documentclass[uplatex]{jsarticle}
\DeclareKanjiFamily{JY2}{mc}{}
\DeclareFontShape{JY2}{mc}{m}{n}{<-> s * [0.24690] upjisr-h}{}
\DeclareKanjiFamily{JT2}{mc}{}
\DeclareFontShape{JT2}{mc}{m}{n}{<-> s * [0.924690] upjisr-v}{}
\DeclareKanjiFamily{JY2}{gt}{}
\DeclareFontShape{JY2}{gt}{m}{n}{<-> s * [0.24690] upjisg-h}{}
\DeclareKanjiFamily{JT2}{gt}{}
\DeclareFontShape{JT2}{gt}{m}{n}{<-> s * [0.924690] upjisg-v}{}
\begin{document}
{\kanjifamily{mc}\selectfont あいabc}
{\kanjifamily{gt}\selectfont あいabc}
\end{document}
gt は効くのに mc は効かない理由:
jsarticle.cls を読み込み終わった時点で,一度 \normalfont が実行され,「mc が 0.924690 倍だ」という設定が
割り当て完了しているからだと思います。一度割り当てられると,それを消すまで上書きすることはできません。
(\DeclareFontShape の行を実行しただけでは,まだ割り当ては完了していないことに注意。gt が効くのはそのため。)
対処法:
ヒントだけにしておきますが,jsarticle と一緒に配布されている minijs.sty を見てみてください。
\csname JY1/mc/m/n/サイズ\endcsname を \relax にして,割り当てを削除しているのが見つかると思います。
jsarticle.cls を読み込み終わった時点で,一度 \normalfont が実行され,「mc が 0.924690 倍だ」という設定が
割り当て完了しているからだと思います。一度割り当てられると,それを消すまで上書きすることはできません。
(\DeclareFontShape の行を実行しただけでは,まだ割り当ては完了していないことに注意。gt が効くのはそのため。)
対処法:
ヒントだけにしておきますが,jsarticle と一緒に配布されている minijs.sty を見てみてください。
\csname JY1/mc/m/n/サイズ\endcsname を \relax にして,割り当てを削除しているのが見つかると思います。
minijs.sty を拝見しました。マクロは詳しくありませんが,それらしきものを発見しましたので,フォント設定の前に以下のように書いたところ,うまくいきました。ありがとうございました。
\makeatletter
\@for\@tempa:=5,6,7,8,9,10,10.95,12,14.4,17.28,20.74,24.88\do{%
\expandafter\let\csname JY2/mc/m/n/\@tempa\endcsname\relax
\expandafter\let\csname JY2/gt/m/n/\@tempa\endcsname\relax
\expandafter\let\csname JT2/mc/m/n/\@tempa\endcsname\relax
\expandafter\let\csname JT2/gt/m/n/\@tempa\endcsname\relax
}
\makeatother
\makeatletter
\@for\@tempa:=5,6,7,8,9,10,10.95,12,14.4,17.28,20.74,24.88\do{%
\expandafter\let\csname JY2/mc/m/n/\@tempa\endcsname\relax
\expandafter\let\csname JY2/gt/m/n/\@tempa\endcsname\relax
\expandafter\let\csname JT2/mc/m/n/\@tempa\endcsname\relax
\expandafter\let\csname JT2/gt/m/n/\@tempa\endcsname\relax
}
\makeatother