[メモ] pLaTeX+dvipdfmxを使って作成したPDFファイルにフォントを埋め込む方法
たぶんやり方はたくさんあると思うけど、僕が卒論の原稿にIPAフォントを埋め込んだときに使った方法。
OSはWindowsで、TeXのプログラムはW32TeXをほぼそのままインストールしただけ。
基本的にはdvipdfmxを使ってPDFを作成する。dvipdfmとかを使ってもうまくいくかは知らない。
1. プリアンブルでマップファイルを指定する
プリアンブルに↓のような一行を追加する
\special{pdf: mapfile ipa.map}
この一行でdvipdfmxに使用するマップファイル名を伝えることができるらしい。
追記
プリアンブルでマップファイルを指定しなくても、dvipdfmxを実行するときに↓のように-fオプションを指定してやればいいらしい。
dvipdfmx -f ipa.map thesis
こっちの方がTeXファイルの中にPDF依存の記述が混ざらないから美しいかも。
OMakeを使っている場合は、OMakefileで↓のようにフラグを追加してやればOK。
DVIPDFMFLAGS = -p a4 -f ipa.map
2. マップファイルの用意
↓のような内容のファイルを作る。
rml H ipam.ttf gbm H ipag.ttf rmlv V ipam.ttf gbmv V ipag.ttf
このファイルをipa.mapと名付けて、↓の3つのディレクトリのうちのどこかに配置する。
- TeXファイルと同じディレクトリ
- texmf-local/fonts/map/dvipdfmx
- texmf/fonts/map/dvipdfmx
※ ipa.mapの内容は、texmf/fonts/map/dvipdfmx/base/cid-x.mapの一部を抜き出して改変したもの。
3. OMake
僕はOMakeを使ってビルドしているけど、dvipdfmxさえ使っていればたぶん何でもいい。とりあえずTeXファイルをビルドする。
4. 埋め込み完了
↓のような感じ。

追記
上記の方法だけだと、Rで作成したepsファイルが使用しているHelveticaが埋め込まれない。epsファイルのHelveticaを埋め込むためには、Ghostscriptの設定ファイルをいじる必要がある。
まず、C:/Program Files/gs/gs8.62/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
これだけ。これでepsファイルに使われているフォントも埋め込めるようになる。
トラックバックURL
- http://liosk.blog103.fc2.com/tb.php/174-32ba9ec8

