マクロツイーター

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

PXchfon の新しいやつ(v1.2)

W32TeX には既に収録されている。

TeX Live については、4 月末にリリースされる予定の TeX Live 2018 に収録される。

源ノ書体プリセットがフツーになる話

源ノ書体系のプリセット(sourcehansourcehan-otcnotonoto-otc の 4 つ)について、従来は一部の文字を中国語・韓国語版のフォントに振り分けていたため、これらのフォントをインストールする必要があった。

この特殊な措置は dvipdfmx(20170318 版)に含まれるあるバグを回避するためである。しかし、最新版の dvipdfmx(20170918 版)ではこのバグは修正済みであり、TeX Live 2018 に収録されるのも当該のバグを含まない版である。このため、新版の pxchfon では、源ノ書体系のプリセットについてこの措置を取りやめる。従って、新しい(20170918 版以降の)dvipdfmx が必須になるが、中国語・韓国語版のフォントのインストールは不要になる

% upLaTeX文書, UTF-8
\documentclass[uplatex,a4paper]{jsarticle}
% 中国語・韓国語版のインストールは不要になる
\usepackage[sourcehan-otc]{pxchfon}
\begin{document}
☃は"非アレ"。
\end{document}
フツーにしたくない場合の話

従来通りの動作を望む場合は、unicode* というオプションを同時に指定すればよい。この設定は TeX Live 2017 の dvipdfmx(20170318 版)でも通用する。

% upLaTeX文書, UTF-8
\documentclass[uplatex,a4paper]{jsarticle}
% こちらは中国語・韓国語版のフォントを使う
\usepackage[sourcehan-otc+]{pxchfon}
\begin{document}
☃は"非アレ"。
\end{document}

※ この設定方法は旧版の pxchfon(1.0〜1.1b 版)でも使える。
※ 出力の見た目については全く差異はない。

どんどん“unicode”していきましょう

TeX Live 2018 に収録される新しい dvipdfmx(20170918 版以降;W32TeX では収録済)では、“unicode”オプション が使用可能になるので、ここで改めて解説しておく。

※ “unicode”オプションは 1.0 版で新設された機能。

(u)pLaTeX の“標準”*1和文論理フォント は、“AJ1 対応”*2の物理フォントを使うことを主に想定している*3ため、それ以外の日本語フォントとは相性が悪い。

例えば、Windows(8.1/10)付属の游明朝は“AJ1 対応”でない(TrueType グリフ形式である)ので、標準の和文論理フォントの仕様を完全には満たさない。例えば、「クオートの字形が不正になる」とか「\CID 命令による異体字の使い分けが効かない」という不具合が発生する。

% upLaTeX文書, UTF-8
\documentclass[uplatex,a4paper]{jsarticle}
\usepackage{otf}
\usepackage[yu-win10]{pxchfon}% Windows 10 の游フォントを指定
\begin{document}
☃は"非アレ"。\par
\CID{7652}飾区か\CID{1481}城市かで葛藤する。
\end{document}

このような不整合を、フォントのもつ「OpenType レイアウト」の機能を活用して解消しようとするのが“unicode”オプションである。

% upLaTeX文書, UTF-8
\documentclass[uplatex,a4paper]{jsarticle}
\usepackage{otf}
\usepackage[yu-win10]{pxchfon}
\begin{document}
☃は"非アレ"。\par
\CID{7652}飾区か\CID{1481}城市かで葛藤する。
\end{document}

※ この例の場合、otf パッケージに jis2004 オプションが指定されていないため、直接入力の“葛”は 90JIS 字形になるのが正しい。

要するに、“AJ1 対応”でない物理フォントを使う場合に、“unicode”オプションを付けておくと、「今までうまくいかなかったのが改善されるかもしれない*4」、ということである。

もちろん、プリセット指定でなくフォントファイル名を直接指定する場合でも“unicode”指定は使用できる。以下の例は Windows 10 に付属の「UD デジタル教科書体」を使用するものである。

% upLaTeX文書, UTF-8
\documentclass[uplatex,jis2004,a4paper]{jsarticle}% 2004JIS字形
\usepackage[deluxe]{otf}% 多ウェイト化
\usepackage[noalphabet,unicode]{pxchfon}
\setminchofont[0]{UDDigiKyokashoN-R.ttc}% UDデジタル教科書体N-R
\setboldminchofont[0]{UDDigiKyokashoN-B.ttc}% UDデジタル教科書体N-B
\begin{document}
☃は"非アレ"。\par
\CID{7652}飾区か\CID{1481}城市かで\textbf{葛藤}する。
\end{document}

※この例では、2004JIS 字形を既定とするため、グローバルオプションに((otf と pxchfon の両方に jis2004 を効かせる必要があるため、グローバルオプションに指定するのが適切である。)) jis2004 を指定した。

「“AJ1 対応”のフォントだけを使う」という方針が固まっている場合でない限り、“unicode”オプションは付けておいて損はないので、新しい版の dvipdfmx がある環境で pxchfon を使う際には、積極的に“unicode”オプションを活用することを奨めたい。

*1:ここでは便宜的に、japanese-otf パッケージのフォントも含めることとする。

*2:ここでは「Adobe-Japan1 の CID でアクセス可能な」の意味。

*3:ということにしておく。

*4:もちろん、フォントが必要な OpenType レイアウトの機能をもっていなければ改善されない。