2009年7月2日木曜日

Ubuntu9.04でtex文書を綺麗なフォントで文字化けせずに印刷する方法

最近lprがらみのトラブルでいろいろ調べていたのでメモ。

発生した問題はevinceやlprコマンドでpdf,dvi,psなどを印刷する際にたまに漢字1文字が欠けたりとか、そもそも日本語が化けまくったりとか。
この方法を使えば様々なフォント(ttf,ttc,otf)を埋め込めますがMSゴシックとかはライセンス違反になるので注意(´ω`)
ちなみに\bfの太字とかもきちんと表示されます。
もっとスマートな方法があるのかもしれないけど知りません!pdfの状態で印刷しても問題無い場合はそれで良いと思います。

まずはapt-getでIPAフォントをインストール。(ttf-ipafontだけでいいかも)

sudo apt-get install ipafont ttf-ipafont

そして、texソースコードと同じディレクトリにipaf.mapなどの適当な名前で以下の内容のファイルを作成。

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

texソースコードをコンパイル。たぶんEUC-JPの方がいい。

platex test.tex

IPAフォントを埋め込んだpdfファイルを作成。
フォントが見つからないとかエラーが出る場合はとりあえずtexソースコードと同じディレクトリにipam.ttfとipag.ttfを持ってくる。

dvipdfmx -f ipaf.map test.dvi

IPAフォントを埋め込んだpdfファイルからpsファイルを作成。

pdf2ps test.pdf test.ps

できたpsファイルをlprで印刷。
印刷ページの指定とかしたい場合はevinceでpsファイルを開いて印刷するといいです(´ω`)

lpr test.ps

これで印刷して化ける場合はps2psでラスタライズしてしまうといい。ただしファイルサイズが大きくなるのでネットワーク経由で印刷する場合は注意。

ps2ps test.ps test_tmp.ps

lpr test_tmp.ps

[おまけ]

フォントとかどうでもよくてとりあえず文字化けしないように印刷したい場合は以下のようにやるといいです。

platex test.tex

dvips test.dvi

ps2ps test.ps test_tmp.ps

lpr test_tmp.ps



1 件のコメント:

busana muslim さんのコメント...

This is a great posting I have read. I like your article. Thank you