ptetex3のdvipdfmxを使いフォント埋め込みPDFを作る

ptetex3を導入したUbuntu 8.10*1にてフォント埋め込みのPDFを作る方法。ptetex3ならおそらくどこでも同様。
dvipdfmxで使うフォントは
/usr/local/teTeX/share/texmf-var/fonts/map/dvipdfm/updmap
にあるdvipdfm.mapで欧文フォント、kanjix.mapで日本語フォントの設定をしています。設定を変える必要があるのは日本語フォントの方。ここを直接書き換えても結果は変えられる*2けど、dvipdfmxはdviファイルと同ディレクトリにkanjix.mapがあるとそっちを参照してくれるので、元のkanjix.mapをコピーしてきて!Ryumin-Light!GothicBBB-Mediumと書いてある部分を適当なフォントに書き換えます。

cidgoth-h Identity-H :0:ipag
cidgoth-v Identity-V :0:ipag
cidmin-h Identity-H :0:ipam
cidmin-v Identity-V :0:ipam
futogo-b H :0:ipag
futogo-b-v V :0:ipag
futomin-b H FutoMinA101-Bold
futomin-b-v V FutoMinA101-Bold
gbm H :0:ipag
gbmv V :0:ipag
gtbbb-m H :0:ipag
gtbbb-m-v V :0:ipag
hkb H :0:ipag
hkbv V :0:ipag
hmr H :0:ipam
hmrv V :0:ipam
jun101-l H Jun101-Light
jun101-l-v V Jun101-Light
rml H :0:ipam
rmlv V :0:ipam
ryumin-l H ipam
ryumin-l-v V ipam
unijgoth-h UniJIS-UTF16-H :0:ipag
unijgoth-v UniJIS-UTF16-V :0:ipag
unijmin-h UniJIS-UTF16-H :0:ipam
unijmin-v UniJIS-UTF16-V :0:ipam

この例だとIPAフォント*3明朝体とゴシック体を埋め込むフォントとして設定した。全部書き換える必要は無かったかも。試してない。
このようなkanjix.mapを置いたディレクトリでdvipdfmxでdviをpdfに置き換えると日本語フォントを埋め込むことができる。

さらに、文字の入っているepsを図として取り込んでいるとHelveticaが利用されるがHelveticaが埋め込まれていないPDFができる。Helveticaを埋め込むためには
/usr/share/ghostscript/8.63/lib
gs_pdfwr.ps

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

として埋め込まない基本フォントとして設定している部分を

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

のように書き換える。更に
/usr/local/teTeX/share/texmf/dvipdfm
dvipdfmx.cfgでも

D  "gs -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=%o -dNOKANJI -c '.setpdfwrite << /NeverEmbed [/Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic /Symbol /ZapfDingbats /Ryumin-Light /GothicBBB-Medium] >> setdistillerparams' -f %i -c quit"

のように埋め込まない基本フォントとして設定されているので

D  "gs -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=%o -dNOKANJI -c '.setpdfwrite << /NeverEmbed [] >> setdistillerparams' -f %i -c quit"

埋め込まないフォントとして指定しないように書き換える必要がある。

今回は論文投稿の規定で「フォントを全て埋め込むこと」とあったのでHelveticaまで埋め込んだが、実際にはHelveticaなどの基本フォントを埋め込む必要はあまり無いかもしれない。

*1:色々めんどうなのでptetex3入れるんならaptからはtexliveとかdvipdfmxとか入れない方が良いと思う

*2:コメントに「このファイル直接いじんな!」とか書いてるけど

*3:Ubuntu Japanese Teamパッケージレポジトリから追加したもの

test