8月 6, 2008

dvipdfmxで日本語フォントの埋め込み実験

ポータブル化とはあまり関係ないが、出来上がりのPDFにフォントが埋め込まれてないと、印刷時の環境に依存してしまう、ということで、日本語フォントの埋め込みの実験。フリーのIPAフォントというのを入手してきて、やってみた。

正式には、mapファイルやフォント関係を適切なディレクトリーに配置するべきだが、とりあえず実験ということで、文書と同じディレクトリーに mapファイルとTrueTypeフォントを置いた。IPAフォントを解凍して、すべてをカレントディレクトリーに配置。次に、

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

なる内容を、例えば IPA_font.map という名前で保存する。そして、コマンドラインから

> dvipdfmx -f IPA_font.map sample.dvi

とすれば、IPAフォントが埋め込まれた sample.pdf が作られる・・・のだが、何故か警告が。

** WARNING ** UCS-4 TrueType cmap …

という警告メッセージが出るのだが。これは無視して良いのかな?

Windows版TeXポータブル化(改良版)

WinShellを起動するときのバッチファイルを工夫すれば、ランチャーを使わなくても PATH の設定ができることがわかった。ポイントは、%~d0% によりバッチファイルが起動されたときのディスクが参照できること。うちの環境だと %~d0% には “H:” という文字列が入る。これ以外にも、ファイル自体のフルパスなど、いろいろと参照できるようだ。ふーん、Windowsってダメダメだと思っていたけど、UNIXの真似事が少しはできるんだ。

ということで、StartWinShell.bat とか適当にバッチファイルを作り、次のように記述。

@echo off
set PATH=%~d0\App\Win32TeX\bin;%~d0\App\FoxitReader23;%PATH%
start WinShell.exe

一行目の @echo off は、単にこれらのコマンドをターミナルで表示させないものだから、本質的ではない。2行目でパスの設定をしている。ここではTeX関係のプログラム類が入っているディレクトリーと PDF リーダーである FoxitReader にパスを通した。よく使うプログラムはUNIXみたいに \bin ディレクトリーにまとめて放り込む方が効率が良いかもね。パスを通したあとで、WinShell.exe を起動して終了。

これでランチャー不要のポータブル化ができた。WinShellでのプログラム類の設定では、プログラム名を書くだけで良い。忘れてならないのは、WinShellを直接起動させずに StartWinShell.bat の方を起動させること。

書いていて気づいたのだが、%~dp0% という、起動プログラムまでのフルパスを表す変数を使えば、完全にリロケータブルな (つまり、どのディレクトリーに配置しても作動する) パッケージを作ることも可能だと思う。それには、Win32TeXパッケージとWinShell、FoxitReaderなどをひとまとめにする必要があるが。