Linux TeXでのTimes-Romanフォントの埋め込み

Linux環境でTeX(dvipdfmx)を使って作成するPDFにTimes-Romanを埋め込む方法について。
この方法に至るまでだいぶ時間取られたが取られてしまったのでメモ。
それもこれも「提出するPDFにはフォント埋込みをせよ」という非常にめんどくさいお達しのせいだ。

実行環境

  • OpenSUSE11.2
  • ptetex3
  • Ghostscript8.64

他のディストリビューションやバージョンでもほとんど同じ感じだと思います。

方法

Ghostscriptのgs_pdfwr.psというファイルを書き換えます。
gs_pdfwr.psは/usr/share/ghostscript/X.XX/Resource/Init/、もしくは/usr/share/ghostscript/X.XX/lib/(おそらく古いバージョンの場合)にあります。
修正箇所は以下の項目

/.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

の /Times-Roman をコメントアウトするのみ。
使用するのがTimes-Romanのみの場合はこれだけでOKですが、Times系フォントをすべて埋め込む場合は、

/.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

こんな感じになる。
あとは

dvipdfmx file.dvi

で、Times系フォントが埋め込まれます。
埋めこまれているかどうかの確認はpdffontsコマンドかビューワでpdfのプロパティでチェック可能。

解決に至るまで

色々ググって、

  • Acrobat Reader3付属のフォントから引っ張って埋め込む→いやそれはさすがにグレーなのでちょっと…
  • "dvipdfmx -f dvipdfm_dl14.map file.dvi"でおk→そもそもdvipdfm_dl14.mapファイルないじゃん
  • パッケージとか追加して通るようにした!→なぜか埋めこまれねー
  • Ghostscriptのgs_pdfwr.psとかいうファイルいじればいけるっぽい→見つからないんですけど…
  • 新しいバージョンだと別の場所にある→あった!→修正してようやく解決

こんな感じでうだうだやってました。
2, 3時間ぐらい作業取られた…ややこしい。

ついでにIPAフォント埋め込み方法

ptetexでのIPAフォント埋め込み方法は

dvipdfmx -f ptex-ipa.map file.dvi

でいけます。
自分でIPAフォント埋め込みのmapファイルを作ってもOK。