マクロツイーター

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

PXchfon がアレだったようだ

以前に書いたPXchfon の新版についての解説記事のコメントで、「directunicode オプションが upTeX で効かない」という指摘を頂いた。調べてみると、なんと、

upLaTeX + OTF パッケージで、直接入力以外、つまり \UTF\CID について
フォント置換が全く効いていなかった

という惨状が発覚した。これが意図した仕様のはずがないと思っているが、実際のところは今となっては解らない。恐らく単純なミスなのだろう。

というわけで、この不具合を修正したもの(0.7b 版)を公開した。(ドキュメントの更新はまだ。)

これで、upTeX でも directunicode が使えるようになる。

% upLaTeX 文書(文字コードは UTF-8)
\documentclass[a4paper,uplatex]{jsarticle}
\usepackage{otf}
\usepackage[noalphabet,directunicode]{pxchfon}
\setminchofont{HanaMinA.ttf} % 花園明朝A
\begin{document}
\UTF{618D}梵波提 賓頭盧頗羅墮 迦留陀夷 摩訶劫賓那 薄拘羅 %\UTF{3779}樓駄 如是等 諸大弟子
\end{document}

ただし、件の記事で記したように、directunicode の適用範囲は「OTF パッケージの \UTF 入力」であることは変わらない。upTeX では直接入力の和文も当然 Unicode フォントなのであるが、こちらには directunicode は適用されないことに注意。*1

折角 Unicode で直接入力できるのに「コード値での入力が必須」というのは残念なので、pxchfon パッケージにおまけ機能を付けておいた。

  • \asUTF{<和文文字>}: その文字を \UTF 命令を通して入力する。つまり、その文字には \UTF のフォントの設定が適用される。(エンジンが upTeX でかつ OTF パッケージ読込時にのみ使用可能。)

つまり、以下のようなことができるわけである。(なお、OTF パッケージの多ウェイト設定を流用して、「花園明朝」と他の明朝体フォントを使い分ける方法については、以前の記事で既に解説した。)

% upLaTeX 文書(文字コードUTF-8)
\documentclass[a4paper,uplatex]{jsarticle}
\usepackage[deluxe]{otf}
\usepackage[ipa,directunicode]{pxchfon}
\setlightminchofont{HanaMinA.ttf}% 花園明朝A
\newcommand*{\+}[1]{{\mcfamily\ltseries\asUTF{#1}}}% 引数は文字
\pagestyle{empty}
\begin{document}
 % 花園明朝で出力すべき文字の前に\+を付ける
\+憍梵波提、賓頭盧頗羅墮、迦留陀夷、摩訶劫賓那、薄拘羅、阿\+㝹樓駄、如是等諸大弟子。
\end{document}

*1:ただ、横書きについては「直接入力に適用することによる不利益」は現状では把握していない。縦書きだと「約物などが横書き用グリフのまま」だから明らかに不適切である。