TeX Live 2016 で試しています。
%#!ptex2pdf -l forum2110
\documentclass{jsarticle}
\usepackage[multi]{otf}
\begin{document}
\gtfamily\UTFC{6392}\UTFC{7248}
\end{document}
デフォルトの状態では、otf-cktx.map が updmap に反映されているので
% CID
otf-ccmr-h Identity-H !STSong-Light
otf-ccmr-v Identity-V !STSong-Light
otf-ccgr-h Identity-H !STHeiti-Regular
otf-ccgr-v Identity-V !STHeiti-Regular
% Unicode
otf-ucmr-h UniGB-UCS2-H !STSong-Light
otf-ucmr-v UniGB-UCS2-V !STSong-Light
otf-ucgr-h UniGB-UCS2-H !STHeiti-Regular
otf-ucgr-v UniGB-UCS2-V !STHeiti-Regular
のようにマップされていると思います。フォント名が ! で始まるので generic name で非埋め込み
にするのだと思いますが…
dvipdfmx:warning: Could not locate a virtual/physical font for TFM "otf-ucgr-h".
dvipdfmx:warning: >> This font is mapped to a physical font "STHeiti-Regular".
dvipdfmx:warning: >> Please check if kpathsea library can find this font: STHeiti-Regular
dvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output...
でエラーになります。\gtfamily を外した場合の STSong-Light 非埋め込みや、\UTFT / \UTFK を
使った繁体中国語や韓国語の非埋め込み、さらに arphic-ttf (on CTAN) のような実フォントに
割り当てた場合は問題なく PDF が出ます。なぜ STHeiti-Regular 非埋め込みだけ NG なのでしょう?
コメントありがとうございます。
しかし、すでに述べていたとおり実フォント埋め込みは正常なことを確認していて、
本件はそれを踏まえた上での疑問でした。リンクを頂いたのも「実フォントがライセンスの
関係上 PDF に埋め込めない」という問題なので、本件とは無関係です。
dvipdfmx で「STHeiti-Regular 非埋め込みの PDF」が作れないことに困っています。
現在 texjporg でノルベルトさんと私を中心に、いまの TeX Live には収録されていない
「中国語・韓国語の map ファイルと、updmap のそれへの対応」を開発していて
https://github.com/texjporg/jfontmaps/tree/aminophen-cjk
その一環で noEmbed の map が簡体中国語の gt だけ期待どおりに動かないことに気づいたのです。
しかし、すでに述べていたとおり実フォント埋め込みは正常なことを確認していて、
本件はそれを踏まえた上での疑問でした。リンクを頂いたのも「実フォントがライセンスの
関係上 PDF に埋め込めない」という問題なので、本件とは無関係です。
dvipdfmx で「STHeiti-Regular 非埋め込みの PDF」が作れないことに困っています。
現在 texjporg でノルベルトさんと私を中心に、いまの TeX Live には収録されていない
「中国語・韓国語の map ファイルと、updmap のそれへの対応」を開発していて
https://github.com/texjporg/jfontmaps/tree/aminophen-cjk
その一環で noEmbed の map が簡体中国語の gt だけ期待どおりに動かないことに気づいたのです。
cid_basefont.h に STHeiti-Regular を追加するパッチを書いて
みました。 (20161229-stheiti-base.patch)
Ascent や CapHeight などの値は、Distiller の値を採用していて
信頼性の高そうな replacecjkfonts (中丸さんの Perl スクリプト [1])に
ある値を採用しています。なお、STHeiti-Regular 以外のフォントも
この replacecjkfonts にあわせて修正しました。
win32 でビルドして Adobe Reader で見ると、期待どおり
AdobeHeiti… で代替表示されています。
[1] http://www.eaflux.com/replacecjkfonts/
みました。 (20161229-stheiti-base.patch)
Ascent や CapHeight などの値は、Distiller の値を採用していて
信頼性の高そうな replacecjkfonts (中丸さんの Perl スクリプト [1])に
ある値を採用しています。なお、STHeiti-Regular 以外のフォントも
この replacecjkfonts にあわせて修正しました。
win32 でビルドして Adobe Reader で見ると、期待どおり
AdobeHeiti… で代替表示されています。
[1] http://www.eaflux.com/replacecjkfonts/
> フォント名が ! で始まるので generic name で非埋め込み
> にするのだと思いますが…
私の環境だと
$ dvipdfmx -v test.dvi
<FONTMAP:/usr/local/texlive/2016/texmf-var/fonts/map/pdftex/updmap/pdftex.map><FONTMAP:/usr/local/texlive/2016/texmf-var/fonts/map/dvipdfmx/updmap/kanjix.map><FONTMAP:/usr/local/texlive/2016/texmf-dist/fonts/map/dvipdfmx/ckx.map>test.dvi -> test.pdf
DVI Comment: TeX output 2016.12.29:0903
<AGL:texglyphlist.txt><AGL:pdfglyphlist.txt><AGL:glyphlist.txt>[1<utfcgr6-h@9.21pt(TFM:utfcgr6-h)(VF:utfcgr6-h(TFM:otf-ucgr-h)<otf-ucgr-h@9.21pt(CMap:UniGB-UCS2-H)
pdf_font>> Input encoding "UniGB-UCS2-H" requires at least 2 bytes.
pdf_font>> The -m <00> option will be assumed for "STHeiti-Regular".
dvipdfmx:warning: Could not locate a virtual/physical font for TFM "otf-ucgr-h".
dvipdfmx:warning: >> This font is mapped to a physical font "STHeiti-Regular".
dvipdfmx:warning: >> Please check if kpathsea library can find this font: STHeiti-Regular
dvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output...
Output file removed.
となっています.
/usr/local/texlive/2016/texmf-var/fonts/map/dvipdfmx/updmap/kanjix.map を見ると
% otf-cktx.map
...
otf-ucgr-h UniGB-UCS2-H STHeiti-Regular
otf-ucgr-v UniGB-UCS2-V STHeiti-Regular
otf-ucmr-h UniGB-UCS2-H STSong-Light
otf-ucmr-v UniGB-UCS2-V STSong-Light
...
となっていて,! はついていないようです.
> にするのだと思いますが…
私の環境だと
$ dvipdfmx -v test.dvi
<FONTMAP:/usr/local/texlive/2016/texmf-var/fonts/map/pdftex/updmap/pdftex.map><FONTMAP:/usr/local/texlive/2016/texmf-var/fonts/map/dvipdfmx/updmap/kanjix.map><FONTMAP:/usr/local/texlive/2016/texmf-dist/fonts/map/dvipdfmx/ckx.map>test.dvi -> test.pdf
DVI Comment: TeX output 2016.12.29:0903
<AGL:texglyphlist.txt><AGL:pdfglyphlist.txt><AGL:glyphlist.txt>[1<utfcgr6-h@9.21pt(TFM:utfcgr6-h)(VF:utfcgr6-h(TFM:otf-ucgr-h)<otf-ucgr-h@9.21pt(CMap:UniGB-UCS2-H)
pdf_font>> Input encoding "UniGB-UCS2-H" requires at least 2 bytes.
pdf_font>> The -m <00> option will be assumed for "STHeiti-Regular".
dvipdfmx:warning: Could not locate a virtual/physical font for TFM "otf-ucgr-h".
dvipdfmx:warning: >> This font is mapped to a physical font "STHeiti-Regular".
dvipdfmx:warning: >> Please check if kpathsea library can find this font: STHeiti-Regular
dvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output...
Output file removed.
となっています.
/usr/local/texlive/2016/texmf-var/fonts/map/dvipdfmx/updmap/kanjix.map を見ると
% otf-cktx.map
...
otf-ucgr-h UniGB-UCS2-H STHeiti-Regular
otf-ucgr-v UniGB-UCS2-V STHeiti-Regular
otf-ucmr-h UniGB-UCS2-H STSong-Light
otf-ucmr-v UniGB-UCS2-V STSong-Light
...
となっていて,! はついていないようです.