マクロツイーター

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

pxchfon の新しいやつ(v1.0)

W32TeXTeX Live では既に更新されている。

源ノアレなプリセット

※この機能は最新の 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 パッケージを非推奨とする。