Windows 10 の游明朝は Adobe-Japan1 な OpenType フォントではないので \CID
コマンドで正しいグリフを出力することはできません。
フォントが Adobe-Japan1-7 と同じグリフを持っていることと Adobe-Japan1-7 な OpenType フォントであることは異なります。
CID を一旦 Unicode に変換した後グリフを検索するので CID が Unicode と紐づかない場合や、複数の CID が同一の Unicode に紐づく場合、複数の Unicode ポイントで構成されるグリフは正しく引き当てが出来ません。
dvipdfmx:warning: Unicode char U+320038 replaced with U+0038.
これは CID+9901 が U+0032 U+0038 のような二つの Unicode ポイントに引き当てられているのを dvipdfmx が正しく扱えず、U+320038 のようなあり得ない Unicode ポイントとして扱ってしまっているのだと思います。
dvipdfmx:fatal: Invalid glyph index (gid 26621)
dvipdfmx のバグでしょうか? STATUS_ACCESS_VIOLATION でクラッシュする場合もあるようです。
Windows10の游シリーズフォントでUnicode外のグリフにアクセスする方法
「グリフID(GID)を直接指定する」という手段があります。
どのGIDがどのような文字に対応するかはフォントが好き勝手に決めていて、また普通はフォントの仕様の一部でもない(だからバージョンごとに変わりうる)ので非常に使いにくいのですが、取りあえずフォントに含まれる任意のグリフを出力できます。
※なお、Windows 10の游フォントについては、「AJ1のCIDを2だけずらしたのがGIDになる」ことが知られていて、例えば「丸82」はCIDが10294なので、游フォントでのGIDは10296となります。
XeTeXでは\XeTeXglyph
という命令で「GID指定のグリフ出力」ができます。
% XeLaTeX文書; UTF-8 \documentclass[a4paper]{article} \usepackage{fontspec} \setmainfont{Yu Mincho}%游明朝 \begin{document} ㉘\XeTeXglyph10296\relax \end{document}
upLaTeXの場合、pxchfonパッケージをunicode
とglyphid
のオプションを付けて読み込むと、\gid
という命令で「GID指定のグリフ出力」ができます。
※pLaTeXでは非対応。
※全角幅のグリフのみサポートされる。
% upLaTeX文書; UTF-8 \documentclass[uplatex,dvipdfmx,a4paper]{jsarticle} \usepackage{otf} \usepackage[unicode,yu-win10,glyphid]{pxchfon} \begin{document} ㉘\gid{10296} \end{document}
%test.tex
\documentclass[a4paper,uplatex]{jsarticle}
\usepackage{otf}
\newcount\cind
\def\YCID#1{\cind#1\advance\cind by 2\CID\cind}
\begin{document}
\YCID{9901} \YCID{9902} \YCID{9903} \YCID{9904} \YCID{9905} \YCID{9906} \YCID{9907} \YCID{9908} \YCID{9909} \YCID{9910}
\YCID{9911} \YCID{9912} \YCID{9913} \YCID{9914} \YCID{9915} \YCID{9916} \YCID{9917} \YCID{9918} \YCID{9919} \YCID{9920}
\YCID{9921} \YCID{9922} \YCID{9923} \YCID{9924} \YCID{9925} \YCID{9926} \YCID{9927} \YCID{9928} \YCID{9929} \YCID{9930}
\YCID{9931} \YCID{9932} \YCID{9933} \YCID{9934} \YCID{9935} \YCID{9936} \YCID{9937} \YCID{9938} \YCID{9939} \YCID{9940}
\YCID{9941} \YCID{9942} \YCID{9943} \YCID{9944} \YCID{9945} \YCID{9946} \YCID{9947} \YCID{9948} \YCID{9949} \YCID{9950}
\YCID{9951} \YCID{9952} \YCID{9953} \YCID{9954} \YCID{9955} \YCID{9956} \YCID{9957} \YCID{9958} \YCID{9959} \YCID{9960}
\YCID{9961} \YCID{9962} \YCID{9963} \YCID{9964} \YCID{9965} \YCID{9966} \YCID{9967} \YCID{9968} \YCID{9969} \YCID{9970}
\YCID{9971} \YCID{9972} \YCID{9973} \YCID{9974} \YCID{9975} \YCID{9976} \YCID{9977} \YCID{9978} \YCID{9979} \YCID{9980}
\YCID{9981} \YCID{9982} \YCID{9983} \YCID{9984} \YCID{9985} \YCID{9986} \YCID{9987} \YCID{9988} \YCID{9989} \YCID{9990}
\YCID{9991} \YCID{9992} \YCID{9993} \YCID{9994} \YCID{9995} \YCID{9996} \YCID{9997} \YCID{9998} \YCID{9999} \YCID{10000}
\end{document}
に対して、
% yu-win10.map
otf-cjml-h Identity-H yuminl.ttf/I
otf-cjml-v Identity-V yuminl.ttf/I
otf-cjmr-h Identity-H yumin.ttf/I
otf-cjmr-v Identity-V yumin.ttf/I
otf-cjmb-h Identity-H yumindb.ttf/I
otf-cjmb-v Identity-V yumindb.ttf/I
otf-cjgr-h Identity-H :0:YuGothR.ttc/I
otf-cjgr-v Identity-V :0:YuGothR.ttc/I
otf-cjgb-h Identity-H :0:YuGothB.ttc/I
otf-cjgb-v Identity-V :0:YuGothB.ttc/I
otf-cjge-h Identity-H :0:YuGothB.ttc/I
otf-cjge-v Identity-V :0:YuGothB.ttc/I
otf-cjmgr-h Identity-H :0:YuGothB.ttc/I
otf-cjmgr-v Identity-V :0:YuGothB.ttc/I
をつくり、
uplatex test
dvipdfmx -f yu-win10.map test
とすると、添付の test.pdf
となりました。