和文のスケーリングが効かない

和文のスケーリングが効かない

- O Kay の投稿
返信数: 2
和文のスケーリングをしようと,次のように,最初の 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}
O Kay への返信

Re: 和文のスケーリングが効かない

- aminophen の投稿
gt は効くのに mc は効かない理由:
jsarticle.cls を読み込み終わった時点で,一度 \normalfont が実行され,「mc が 0.924690 倍だ」という設定が
割り当て完了しているからだと思います。一度割り当てられると,それを消すまで上書きすることはできません。
(\DeclareFontShape の行を実行しただけでは,まだ割り当ては完了していないことに注意。gt が効くのはそのため。)

対処法:
ヒントだけにしておきますが,jsarticle と一緒に配布されている minijs.sty を見てみてください。
\csname JY1/mc/m/n/サイズ\endcsname を \relax にして,割り当てを削除しているのが見つかると思います。
aminophen への返信

Re: 和文のスケーリングが効かない

- O Kay の投稿
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