2013年1月19日土曜日

LaTeXでHelveticaフォントを埋め込む

学会に提出する書類などではよくフォントを埋め込むように指示されることがある.

しかしLaTeXで文書作成時にフォントを埋め込む方法は意外と知られておらず僕自身,LaTeXを使い始めてから一年以上経ってから埋め込み方を覚えた.

LaTeXでフォントを埋め込むには dvi から pdf に変換するときに fオプションでファイルを指定する.

$ dvipdfmx -f ipa.map hoge.dvi

ここで,ipa.map の内容は以下の通り.

rml H :0:ipam.ttf
rmlv V :0:ipam.ttf
gbm H :0:ipag.ttf
gbmv V :0:ipag.ttf


このとき埋め込まれるIPAフォントは,不特定多数の人に配布するファイルなどにも利用することが可能なフォントなので,とりあえず埋め込むのには都合が良い.

ライセンスの問題というのは厄介なので,こういうフォントの存在は非常にありがたい.

ipa.map の保存先は,texファイルと同じ場所か,latexコマンドのパスが通っている場所.

例: ~/texmf/dvipdfmx/ipa.map

この作業だけでほとんどのフォントはOKになるが,図などの挿入する際Helveticaフォントがまだ埋め込まれておらず困ったことになる.

そこで,

/etc/alternatives/ghostscript-current/Resource/Init/gs_pdfwr.ps

をルート権限で開き,29行目から32行目に掛けての

/Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique
/Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique
/Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic
/Symbol /ZapfDingbats


と書かれている部分をコメントアウトする(行頭に%を追加する)

これで無事に全てのフォントが埋め込まれるようになった.
試しにpdffontsコマンドで確認してみると,embの列が全てyesになっていることが確認できる.



ちなみに,

/etc/alternatives/ghostscript-current

はシンボリックリンクで,元の場所は

/usr/share/ghostscript/9.06

である.他にも9.05というディレクトリがあったので,アップデートの度にcurrentが変更になるのではないかと思われる.






0 件のコメント:

コメントを投稿