W32TeX や TeX Live では既に更新されている。
- Package PXchfon(CTAN) 1.0 版。
源ノアレなプリセット
※この機能は最新の dvipdfmx(20170318 版以降;TeX Live 2017 以降に含まれるもの)を必要とする。
以下のプリセット設定を追加した。
sourcehan
: Source Han Serrif(源ノ明朝)/Source Han Sans(源ノ角ゴシック)の言語別(非サブセット)OTF 版。sourcehan-otc
: Source Han Serrif/Source Han Sans(Super でない)OTC 版。noto
: Noto Serif CJK/Noto Sans CJK の言語別(非サブセット)OTF 版。noto-otc
: Noto Serif CJK/Noto Sans CJK の(Super でない)OTC 版。
既に当ブログで何度が触れているように、源ノ明朝などの“AJ1 でない OpenType フォント”は DVI ウェアで扱うのが面倒なフォントである。これらのプリセット設定は dvipdfmx の新機能を利用して実現しているのだが、pxchfon の機能に完全には対応できず、次のような重要な制限がある。
- upLaTeX 専用であり、pLaTeX では使えない。
\CID
命令や ajmacros の大半の機能(\ajMaru
、\ajLig
など)は使えない。
この機能の詳細については、別の記事で詳しく解説したので、そちらを参照してほしい。
% upLaTeX文書; UTF-8 \documentclass[uplatex,a4paper]{jsarticle} \usepackage[deluxe,jis2004]{otf} \usepackage[sourcehan-otc,prefer2004jis]{pxchfon} \begin{document} {\TeX}と☃は\textbf{一切}関係ありません。 \sffamily {\TeX}と☃は\textbf{一切}関係ありません。 %{\TeX}は\○ア\○レ % これはダメ \end{document}
種明かし的な何か
以前の記事を読んだ人なら容易に想像できる通り、「directunicode 機能」を使っている。この directunicode 機能が依拠しているのが dvipdfmx のマップ指定における“Unicode 直接”指定であるが、これが新しい dvipdfmx で大きく機能拡張されている。
- 縦組フォントで正しく縦組用の字形が使われる。
- OpenType 属性が追加で指定できる。こにより、90JISと2004JISの字形の使い分けが可能になる。
従って、新しい dvipdfmx では、普通に upLaTeX および japanese-otf パッケージを利用する分には、“Unicode 直接”指定が十分に使い物になるといっていいだろう。(もちろん、\CID
命令などの“AJ1 に直接に依存する機能”は諦めるしかないのだが。)
これを受けて pxchfon でも方針転換を図っている。すなわち、これまで“特殊な設定”の扱いであった“Unicode 直接”指定をもっと積極的に使っていこうと考えている。「源ノアレ」用のプリセットはその方針に沿ったものである。
“unicode*”オプション
前述の方針に沿って、従来の「directunicode*
オプション」を dvipdfmx の新機能を活用して機能強化した「unicode*
オプション」を新設した。((unicode*
の方は新しい dvipdfmx を必要とするため、従来の directunicode(*)
とは別のオプションにしている。もはや“特殊な設定”の位置付けでないので短い名前を選んだ。なお、*
のない「unicode
」は将来の拡張のために残している。))現状の仕様では、新しい unicode*
は directunicode*
と以下の点が異なる。
prefer2004jis
オプション(および japanese-otf のjis2004
オプション)による 90JIS/2004JIS 字形の切替が有効になる。
※なお、新しい dvipdfmx を使う場合は、directunicode(*)
でも unicode*
でも縦組時の字形が正しいものになる。
従って、この unicode*
オプションを利用すれば、源ノアレ系以外の“AJ1 でない OpenType フォント”が指定できるようになるはずである。(ただし sourcehan
プリセットと同様に upLaTeX 限定で \CID
は使えない。)
% upLaTeX文書 \documentclass[uplatex,a4paper]{jsarticle} \usepackage[noalphabet,unicode*,prefer2004jis]{pxchfon} \setminchofont[0]{YuMincho.ttc}% macOS Sierraの游明朝(YuMincho Medium) %...(以下略)
また、unicode*
オプションは TrueType フォント(OpenType-TTF)についても有効であり、この場合も「90JIS/2004JIS 字形の切替が有効になる」という恩恵が受けられる。(この場合は、Unicode 以外のフォントは unicode*
指定の影響を受けない。)
% upLaTeX文書 \documentclass[uplatex,a4paper]{jsarticle} % 'prefer2004jis'非指定なのでIPAexフォントが90JIS字形になる. % ※'unicode*'非指定の場合は'prefer2004jis'の指定は無視され, % 常に"IPAexフォント側の既定"である2004JIS字形になる. \usepackage[ipaex,unicode*]{pxchfon} \usepackage{otf} \begin{document} 葛餅で蓬餅で、かつ\textgt{煎餅}! {\TeX}は\○ア\○レ %(従来通り)OK \end{document}
その他もろもろ
- 非推奨のプリセットを廃止した(エラーを出す)。
- pxjafont パッケージを非推奨とする。