和文フォントで \newfontx する話
\newfontx(*)
命令は pTeX 系エンジンの和文フォント(和文 TFM)に対しても利用できる。
% pLaTeX 文書 \documentclass[a4paper]{jsarticle} \usepackage{bxnewfont} % 敢えて min10 してみる \newfontx*\fmin{min10} \begin{document} {\Large 和文フォントをちょっとチェック。\par {\fmin 和文フォントをちょっとチェック。\par} } \end{document}
結果をちょっとチェックすれば判るように、
\newfontx
で定義された和文フォントは標準のものに比べると少しサイズが大きい。この理由は、標準の和文フォントには(NFSS の((jis も min10 も QUAD の値は 0.962216 である。だから、\newfontx
で定義した \fmin
では 1zw = 0.962216×10pt となる。しかし、jsarticle クラスでは標準の和文フォントに対して NFSS レベルでさらに 0.961 倍のスケールをかけているので、標準フォントでは 1zw = 0.961×0.962216×10pt となっている。)))スケールが適用されているのに対して、“新しいフォント”では適用されていないからである。
新たに定義する和文フォントにも標準のものと同じ(NFSS の)スケールを適用させるには、以下の命令を実行すればよい。
\newfontjascale{*}
これにより、以降に \newfontx(*)
で定義される和文フォントについてスケールが適用される。
% pLaTeX 文書 \documentclass[a4paper]{jsarticle} \usepackage{bxnewfont} \newfontjascale{*} \newfontx*\fmin{min10} \begin{document} {\Large 和文フォントをちょっとチェック。\par {\fmin 和文フォントをちょっとチェック。\par} } \end{document}
※\newfontjascale
の仕様は以下の通り。
\newfontjascale{<実数>}
: 以降に\newfontx(*)
で定義される和文フォントについて指定の値のスケールを NFSS レベルで適用する。((つまり、\DeclareFontShape
中のフォント仕様指定に対してs*[<実数>]
が適用される。))\newfontjascale{<ファミリ名>}
: その和文ファミリに対する NFSS スケール値を指定したのと同じ。\newfontjascale{*}
:\mcdefault
を指定したのと同じ。つまり標準の明朝体のスケールと合わせる。
OpenType フォントで \newfonx する話
\font
プリミティブや \newfont
命令の書式中の「フォント名」の部分は普通は TFM の名前を書くが、XeTeX や LuaTeX(+ luaotfload)においてはここに OpenType フォントの名前(および拡張子付のファイル名)を書くことができる。
% plain XeTeX 文書 \font\fcomic="Comic Sans MS/I" {\fcomic Thnaks {\TeX}, and Good-bye!}
\newfontx(*)
命令においてもフォント名の部分を \font
や \newfont
と同じ書式で書くことができる。
% XeLaTeX 文書 \documentclass[a4paper]{article} \usepackage{bxnewfont} \newfontx*{\fcomic}{Comic Sans MS/I} \begin{document} {\fcomic Thnaks {\TeX}, and {\Large Good-bye!}} \end{document}
もちろん、OpenType フォントを指定したいのであれば、普通は fontspec パッケージを用いる方が適切である。しかし、もしかしたら、ある付加設定について「\font
プリミティブでの書き方は知っているけど、それを fontspec でどう書いたらいいのか判らない」という困った事態になるかも知れない。そういう場合の“姑息な手段”としては使えるだろう。
% XeLaTeX 文書 \documentclass[a4paper]{article} \usepackage{bxnewfont} % 合成斜体を適用する \newfontx*{\fpop}{"HGP創英角ポップ体":slant=0.3} \begin{document} % 暑苦しいゆきだるま…… {\fpop\Large ☃ゆきだるま☃} \end{document}
※ちなみに、“slant=0.3
”に対応する fontspec のオプション指定は“FakeSlant=0.3
”である。
\newfont で \newfontx する話
bxnewfont パッケージを読みこむ時にパッケージオプションとして newfont を付けると、\newfont
命令が \newfontx
と等価に再定義される。もしかすると、何かの役に立つ場面があるかも知れない。
\documentclass[a4paper]{article} \usepackage[newfont]{bxnewfont} \begin{document} \newfont{\fcmssqA}{cmssq8} \newfont{\fcmssqB}{cmssq8 at 16pt} {\fcmssqA {\LaTeX}!} {\fcmssqB {\LaTeX}!!} \end{document}