dvipdfmxでフォントの埋め込み

某学会に論文を投稿して最終の印刷版を作って送ったら、フォントが埋め込まれていません、と印刷屋さんに指摘されました。確かにacrobatで開いてファイル-->プロパティ-->フォントとやって調べるとHelveticaとRyumin-Lightが埋め込まれていない、ということがわかります。

Helveticaは兎も角として、英語の論文なのになぜにRyumin-Lightが?という疑問はさておき、なんとかしないといけません。FreeBSDの環境で使っている人なんていないので、さすがにgoogle先生に聞いてもwindowsの環境での情報が多くてその次にMac OS XとLinuxの情報しかでてきません。

まぁ、Linuxの情報をもとに適当に類推して調べてみると以下の通りでなんとかなりました。

Helveticaの問題:
/usr/local/share/ghostscript/9.06/Resource/Init/gs_pdfwr.psというファイルをdvipdfmxがgsを通して間接的に見ているらしいのですが、上のほうに書いてある

/.standardfonts [
/Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique
/Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique
/Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic
/Symbol /ZapfDingbats
] readonly def

というところで/Helveticaの行の頭を%でコメントアウトすればOKのようです。これによってどういう副作用が発生するのかよくわかりません。

Ryumin-Lightの問題:
Postscript Printerへ出力することを前提としてファイルが大きくならないようにRyumin-LightとGothic-BBBはフォントを埋め込まない設定になっているようです。で、rmlという名前のフォントのマッピングをなんとかすればよいということになります。

フォントのマッピングは/usr/local/share/texmf/fonts/map/dvipdfmx/cid-x.mapというファイルに設定されています。これを直接触るのは怖いのでこのファイルをカレントディレクトリにコピーしてきて編集します。

%%% Ryumin and GothicBBB : Linun/Unix/PostScript printers
rml H Ryumin-Light
gbm H GothicBBB-Medium
rmlv V Ryumin-Light
gbmv V GothicBBB-Medium

と書かれているところをすべて%でコメントアウトして、代わりに

%%% IPA-fonts
rml H :0:ipam.ttf
gbm H :0:ipag.ttf
rmlv V :0:ipam.ttf
gbmv V :0:ipag.ttf

という設定を追加します。フォント名の前のコロンに挟まれているのはオーじゃなくてゼロです。

これを保存したら、

dvipdfmx -f ./cid-x.map hoge

とやると今編集したカレントディレクトリにおいているcid-x.mapを使ってhoge.pdfを作ろうとします。ところが、最後に

could not locate a virtual/physical font for rml

とかいうようなエラーが出てファイルが出力されません。どうもフォントの実体にアクセスできないことが原因のようです。

そこで、

cd /usr/local/share/texmf/fonts/truetype
ln -s /usr/local/share/font-mplus-ipa/fonts/ipam.ttf
ln -s /usr/local/share/font-mplus-ipa/fonts/ipag.ttf
ln -s /usr/local/share/font-mplus-ipa/fonts/ipagui.ttf

とやってipaフォントへのシンボリックリンクを張ってから

updmap-sys
updmap

とやります。そうするとどこかのデータベースが更新されてフォントにアクセスできるようになります。

kpsewhich ipam.ttf

とやるとちゃんとフォントの場所が表示されます。でもなぜかipag.ttfはちゃんと表示されませんでした。とりあえず、Ryumin-Lightだけの問題はこれでどうにかなるので考えないことにします。

これでなんとかRyumin-Lightが埋め込まれてpdfファイルが出来上がります。

Linuxにはフォントの埋め込み状態を調べるコマンドがあるようで

pdffonts hoge.pdf

とやるといろいろ出てきますが、embの欄がyesになっていればフォントが埋め込まれています。このコマンドはFreeBSDの私の環境ではインストールされていませんでした。portsからインストールする必要があるのかもしれませんが、横着して調べていません。

かなり遠い道のりでした。うーむ。