[メモ] pLaTeX+dvipdfmxを使って作成したPDFファイルにフォントを埋め込む方法

[メモ] 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. 埋め込み完了

↓のような感じ。

Screenshot

追記

上記の方法だけだと、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

トラックバック

コメント

コメントの投稿

お名前
コメント
編集キー