マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

そういえば ZXjafont が新しくなった(v0.4)

もう随分昔のこと(2018 年 5 月)だけど。

本記事では、この版の新機能について解説する。

ZXjafont って何

簡単にいうと、PXchfon とか luatexja-preset の機能にあるような「和文フォントのプリセット設定」を XeLaTeX + zxjatype の環境で行うためのもの。*1

% XeLaTeX文書; UTF-8
\documentclass{article}
\usepackage{zxjatype}% 欧文文書で部分的に日本語を使う
\usepackage[ms]{zxjafont}% 和文をMSフォントに
\begin{document} % 欧文は変わらない(Latin Modern)
{\TeX} is ultra-アレ.
\sffamily {\LaTeX} is アレ-escent.
\end{document}

実は、XeLaTeX 上で BXJS クラスの jafont オプションで和文フォントの種類を設定する場合には zxjafont パッケージが使われる。なので、zxjafont を直接利用する人は少ないとしても、間接的に利用した人はそれなりにいるだろう。

% XeLaTeX文書; UTF-8
\documentclass[xelatex,ja=standard,a4paper,
  jafont=ms]{bxjsarticle}% 和文をMSフォントに
\begin{document} % 欧文は変わらない(Latin Modern)
{\TeX}は激アレ。
\sffamily {\LaTeX}は微アレ。
\end{document}

プリセットの種類が増えた

luatexja-preset や pxchfon に追随するため、以下のプリセットを追加した。

  • ume:梅フォント。
  • yu-win10:游書体(Windows 10 搭載版)。
  • sourcehan: Source Han Serif(源ノ明朝)+ Source Han Sans(源ノ角ゴシック)、非サブセット版。
  • sourcehan-jp: Source Han Serif(源ノ明朝)+ Source Han Sans(源ノ角ゴシック)、地域別サブセット版。
  • noto: Noto Serif CJK JP + Noto Sans CJK JP(非サブセット版)。
  • noto-jp: Noto Serif JP + Noto Sans JP(地域別サブセット版)。

すなわち、BXJS クラスの jafont=yu-win10 などの設定が、XeLaTeX でも通るようになる。

% XeLaTeX文書; UTF-8
\documentclass[xelatex,ja=standard,a4paper,
  jafont=yu-win10]{bxjsarticle}
\begin{document}
{\TeX}\textbf{激アレ}% XeLaTeXで☃する場合は \jachar が必要
\sffamily \jachar{}\textbf{非アレ}\end{document}
源ノ系フォントに関する注意

基本的に、zxjafont はフォントを fontspec で指定する際にフォント名での指定<(ファイル名ではなく)を行う。従って、源ノ系フォントを利用する場合、フォント名での呼出に対応できる方法でフォントファイルを配置する必要がある。大概の TeX システムでは、OS にフォントをインストールすれば大丈夫である。$TEXMFLOCAL に配置したいという場合、Windows なら以下の記事も参考になるだろう。

Source Han Serif/Sans(非サブセット版)には 3 種類のファイル形式(Super-OTC 版、OTC 版、言語別 OTF 版)があるが、これらは同一のフォント名をもつので、全て同じプリセット sourcehan で指定することになる。地域別サブセット版だけは異なるフォント名(Source Han Serif/Sans JP)をもつため、別のプリセット sourcehan-jp を指定する。Noto フォントについても同様で、非サブセット(Noto 〜 CJK JP)の 3 つは noto、地域別サブセット(Noto 〜 JP)は noto-jp を指定する。

% XeLaTeX文書; UTF-8
\documentclass[xelatex,ja=standard,a4paper,
  jafont=sourcehan% Source Han Serif/Sans (JPじゃない奴)
% jafont=sourcehan-jp% Source Han Serif/Sans JP
% jafont=noto% Noto Serif/Sans CJK JP
% jafont=noto-jp% Noto Serif/Sans JP (CJKじゃない奴)
]{bxjsarticle}
\begin{document}
{\TeX}\textbf{激アレ}\sffamily \jachar{}\textbf{非アレ}\end{document}

2004JIS するか 90JIS するか

luatexja-preset に追随して字形選択のオプション*2を新設した。

  • jis2004: 2004JIS 字形を選択する。
  • 90jis: 90JIS(2000JIS)字形を選択する。
  • どちらも指定しない場合は、フォントの既定の字形が使われる。

BXJS クラスでの使用例を示す。
※“japaram={font={...}}”を指定すると、zxjafont に ... のオプションが渡される。この指定方法は LuaLaTeX でも全く同じ((LuaLaTeX では ... の部分のオプションが luatexja-preset に渡される。))であるため、エンジンオプションさえ lualatex に変えれば以下の例は LuaLaTeX でも通用する。

% XeLaTeX文書; UTF-8
\documentclass[xelatex,ja=standard,a4paper,
  jafont=sourcehan,japaram={font={jis2004}}]{bxjsarticle}
\begin{document}
巷で\textsf{}\textbf{葛飾区}\end{document}
% XeLaTeX文書; UTF-8
\documentclass[xelatex,ja=standard,a4paper,
  jafont=sourcehan,japaram={font={90jis}}]{bxjsarticle}
\begin{document}
巷で\textsf{}\textbf{葛飾区}\end{document}

その他諸々

  • 非推奨の古いプリセット指定(ipa-dx 等)に対して警告が出るようになった。

*1:ただし、ZXjafont は zxjatype を読み込まない(つまり“和文非対応”の)状態にも対応していて、この場合は通常の総称ファミリを設定対象とする。

*2:オプションの命名が不統一であるが、これも luatexja-preset に合わせたため。