先日、Gentoo portage の TeX 環境である pTeX のバージョンが上がった。
ptex-3.1.10_p20090610 というバージョンだ。
すんなりインストールできるが、そのままでは日本語表示がからっきしできなかった(コンパイルは通る)。というわけで、設定メモ。
texmfの設定ファイルは /usr/share/texmf-config/web2c/updmap.cfg。
ここで漢字マップとして下記のように設定してある。
なお、この設定は以前に kpsetool で設定したような気がする。
ちなみに ptex-ipa.map は
にある。従来はここで指定したフォントファイルを使って xdvi や dvipdfmx
が動作していた。この時点でフォントとしては ipam.ttf と ipag.ttf が指定
されていた。しかし IPA フォントが otf になった関係で、既にシステムには
ipam.ttf やipag.ttf はない。
ptex-ipa.map 内の設定を TTF ファイルから OTF ファイルに変更する。変更を
適用するため、ファイル編集後、
を実行する。しかし、ipam.otf などが発見できないというエラーが表示される。
実際、
としてもフォントが発見できない(上記コマンドで何も表示されない)。
この原因は otf ファイルの位置が悪いことにある。そこで、
とする。これで ipam.otf などが適切に kpsewhich で発見できるようになり、
pxdvi で日本語が表示できるようになった。
しかし、相変わらず dvipdfmx はエラーを吐く。
dvipdfmx のエラーメッセージは下記の通り
念のため下記を実行すると、
適切にパスを返してくるので、ipam.otf が見つからないというのは当て嵌まらない。
とりあえずフォント埋め込みを止めてみる。それには漢字マップファイルとして
ptex-noembed.map を使えばよい。一時的にこのマップファイルを使うには、
とすればよい。
その結果、無事 hoge.pdf ができる。フォントが埋め込まれていないので、
PDFビューアごとに見栄えが変わるのが玉に瑕。
IPAのOTFフォントが怪しいような気がするので、別のフォントを指定してみる。
ptex-ipa.map を編集し、フォントを実在する ttf ファイルである
sazanami-mincho.ttf と sazanami-gothic.ttf に変更する。変更後、
texmf-updateすると、pxdvi も dvipdfmx でも無事日本語が扱えるようになっ
た。ただし、sazanami font で。
sazanami font は完成版の書類を作るには若干見栄えが物足りない。そこで、
別のフォントでも色々と試してみた。たとえば MS の TTC フォントや Adobe
Reader に附属しているフォントなどで。
結果として、IPA フォント以外では全て無事動作した。
IPAフォントに何らかの問題があるのかもしれない。
ptex-3.1.10_p20090610 というバージョンだ。
すんなりインストールできるが、そのままでは日本語表示がからっきしできなかった(コンパイルは通る)。というわけで、設定メモ。
状況
- pplatex は日本語が通る
- xdvi で日本語が出ない(英数字のみ表示される)
- dvipdfmx で日本語を含むファイルが処理できない(エラー終了でPDFが生成できない)。
インストール直後の設定
texmfの設定ファイルは /usr/share/texmf-config/web2c/updmap.cfg。
ここで漢字マップとして下記のように設定してある。
KanjiMap ptex-ipa.map
なお、この設定は以前に kpsetool で設定したような気がする。
ちなみに ptex-ipa.map は
/usr/share/texmf/fonts/map/dvipdfm/ptex-ipa.map
にある。従来はここで指定したフォントファイルを使って xdvi や dvipdfmx
が動作していた。この時点でフォントとしては ipam.ttf と ipag.ttf が指定
されていた。しかし IPA フォントが otf になった関係で、既にシステムには
ipam.ttf やipag.ttf はない。
対策1
ptex-ipa.map 内の設定を TTF ファイルから OTF ファイルに変更する。変更を
適用するため、ファイル編集後、
texmf-update
を実行する。しかし、ipam.otf などが発見できないというエラーが表示される。
実際、
kpsewhich -format "opentype fonts" ipam.otf
としてもフォントが発見できない(上記コマンドで何も表示されない)。
この原因は otf ファイルの位置が悪いことにある。そこで、
cd /usr/share/fonts ln -s /usr/share/fonts/ja-ipafonts . texmf-update
とする。これで ipam.otf などが適切に kpsewhich で発見できるようになり、
pxdvi で日本語が表示できるようになった。
しかし、相変わらず dvipdfmx はエラーを吐く。
対策2
dvipdfmx のエラーメッセージは下記の通り
** WARNING ** Could not locate a virtual/physical font for TFM "rml". ** WARNING ** >> This font is mapped to a physical font "ipam.otf". ** WARNING ** >> Please check if kpathsea library can find this font: ipam.otf ** ERROR ** Cannot proceed without .vf or "physical" font for PDF output...
念のため下記を実行すると、
kpsewhich -format "opentype fonts" ipam.otf
適切にパスを返してくるので、ipam.otf が見つからないというのは当て嵌まらない。
とりあえずフォント埋め込みを止めてみる。それには漢字マップファイルとして
ptex-noembed.map を使えばよい。一時的にこのマップファイルを使うには、
dvipdfmx -f ptex-noembed.map hoge
とすればよい。
その結果、無事 hoge.pdf ができる。フォントが埋め込まれていないので、
PDFビューアごとに見栄えが変わるのが玉に瑕。
対策3
IPAのOTFフォントが怪しいような気がするので、別のフォントを指定してみる。
ptex-ipa.map を編集し、フォントを実在する ttf ファイルである
sazanami-mincho.ttf と sazanami-gothic.ttf に変更する。変更後、
texmf-updateすると、pxdvi も dvipdfmx でも無事日本語が扱えるようになっ
た。ただし、sazanami font で。
sazanami font は完成版の書類を作るには若干見栄えが物足りない。そこで、
別のフォントでも色々と試してみた。たとえば MS の TTC フォントや Adobe
Reader に附属しているフォントなどで。
結果として、IPA フォント以外では全て無事動作した。
IPAフォントに何らかの問題があるのかもしれない。
※コメント投稿者のブログIDはブログ作成者のみに通知されます