落穂拾い

Gleanings in my life

【Gentoo】texlive-2010への移行その2

2011年02月15日 02時05分34秒 | Linux
texlive-2010がインストールできれば、日本語LaTeXのコンパイルまでは問題ない。 しかし、印刷や閲覧になると話は別である。 今迄、いろいろと検討してみたが、xdvik で日本語を表示させることには成功していない。 ここでは、PDF化して、PDFを evince/acroread で見たり、印刷するという方法を取ることにする。 PDF化には、例によって dvipdfmx を使う。ただし、dvipdfmx の安定板ではフォント設定が正常に反映されないというバグがあったため、開発版を使う必要があった。というわけで、まず、
autounmask -n dvipdfmx
として開発版を unmask する。 そして dvipdfmx を普通に emerge すれば、evince/acroread で読んだり印刷できるPDFファイルが作成できるようになる。 ただし、この時点で作成できるPDFファイルは、フォント埋め込み型ではない。すなわち、フォント名(Ryumin-Lightとか)と文字コードがPDFファイルに入っているのみで、フォントデータ自体は evince や acroread といった PDF ビューアが用意することになる。当然、各ビューアの設定次第でフォントの様相が変化してしまう。それが好ましくない場合は、フォントデータも埋め込むことが必要だ。 容量が許すならば、人にあげたり、別の環境で見るPDFファイルは、フォント埋め込みのお方が文書の再現性が確保できるためにおすすめである。というわけで、フォントを埋め込む方法をまとめておく。ここでは IPA フォントを埋め込むことにする。 dvipdfmx でフォントを埋め込むには、dvipdfmx から目的のフォントが見つかる必要がある。フォントファイル ipam.ttf が検索パス内にあるかどうかを調べるには、kpsewhich コマンドを用いる。
kpsewhich -format="truetype fonts" ipam.ttf
これでパス名が表示されるならば、そのパスに ipam.ttf フォントが見つかったということである。反対に、何も結果が表示されないならば、フォントは見つからなかったということである。 見つからなかった場合、検索パス内に ipam.ttf フォントを入れてやる必要がある。 フォント検索パスは、
kpsewhich -show-path="truetype fonts"
で表示される。山程表示されるので、この中から自分で好きな場所を選び、そこに ipam.ttf をコピーとか symlink してやればよい。ここでは、/usr/local/share/texmf/fonts/truetype に置くことにする。
mkdir -p /usr/local/share/texmf/fonts/truetype
cd /usr/local/share/texmf/fonts/truetype
ln -s /usr/share/fonts/ja-ipafonts/*.ttf .
設定を反映させるために、
texmf-update
を実行したのち、再度
kpsewhich -format="truetype fonts" ipam.ttf
を実行し、今度は無事フォントパスが表示されることを確認する。 これで dvipdfmx から ipam.ttf や ipag.ttf などの IPA フォントが発見できるようになった。これらのフォントをPDFに埋め込むには、たとえば Ryumin-Light は ipam.ttf を使いますよと言ったことを対応付ける map ファイルを作成する必要がある。 そこで、まず、map ファイルの置き場をチェックする。
kpsewhich -show-path=map
これで map ファイルの検索パスが表示される。今回は、この中から /usr/local/share/texmf/fonts/map にmapファイルを置くことにした。 そこで、下記のコマンドを実行して、ptex-ipa.map という map ファイルを作成する。
mkdir -p /usr/local/share/texmf/fonts/map
cd /usr/local/share/texmf/fonts/map
cat > ptex-ipa.map << EOF
rml     H       ipam.ttf
rmlv    V       ipam.ttf
gbm     H       ipag.ttf
gbmv    V       ipag.ttf
EOF
この map ファイルを有効にするために texmf-update を実行後、
kpsewhich -format=map ptex-ipa.map
を実行して ptex-ipa.map のパスが正常に見つかればオッケー。 最後に、このmapファイルを enable にする。
updmap-sys --enable Map=ptex-ipa.map
以上で終了である。 ipaフォントを埋め込んだ PDF ファイルを作成したい場合は、
platex hoge
dvipdfmx -f ptex-ipa.map hoge
のように dvipdfmx に -f オプションを付けてmapファイルを指定すればよい。 毎回フォントを埋め込みたい場合は、デフォルトで ptex-ipa.map を使うように設定すればよい。dvipdfmx の設定ファイルは /etc/texmf/dvipdfmx/dvipdfmx.cfg で、このファイルの末尾に、
f  ptex-ipa.map
を追記すれば、デフォルトで ptex-ipa.map を参照するようになり、IPAフォントの埋め込みがデフォルトになる。 この状態で、フォントを埋め込まない PDF を作成したい場合は、map ファイルを ptex-ipa.map ではなく、cid-x.map に変更すればよい。すなわち、dvipdfmx で使うmapファイルを cid-x.map に変更する。
dvipdfmx -f cid-x.map hoge
これでフォント埋め込みでない hoge.pdf が作成されるはずである。

コメントを投稿