Cygwin の TeXLive の dvipdfmx が成功した

昨日の現象を検証するため、TeX Live をインストールしてみた。インストールするのに一時間以上かかった。ダウンロードだけでも1時間は必要だった。

例の Doxygen で生成した LaTeX ドキュメントの DVI ファイルを TeX Live の dvipdfmx で PDF に変換してみたところ、期待した通りに変換することができた。ps2pdf で変換した PDF よりも、なんかファイルサイズが小さいけど。

これはやはり、gs がおかしいのだろうか。と思って、TeX Live の gs を探してみたら \texlive\2011\bin\win32 の中には見つからない。どうも \texlive\2011\tlpkg\tlgs\bingswin32.exe もしくは gswin32c.exe がそうらしい。ということは、dvipdfmx の中から gswin32 を呼び出しているはず。

ちょっと興味が出て来たので、dvipdfmx を strings でダンプしてみた。ところが、gswin32 を呼び出している文字列が見つからない。もしかしたら、cfg ファイルかと思って探したら、\texlive\2011\texmf\dvipdfmx\dvipdfmx.cfg というのが見つかった。しかし、中を見てみたら gswin32 を呼び出してはいずに、rungs というコマンドになっている。確かに \texlive\2011\bin\win32\rungs.exe は存在する。

そういえば、Cygwin の dvipdfmx のエラーメッセージも rungs になっていたな。もちろん cygwin には rungs などない。試しに、Cygwin の dvipdfmx の cfg ファイル /usr/share/texmf/dvipdfmx/dvipdfmx.cfg をみてみると、こちらも rungs を呼び出すようになっているようだった。ということはここを gs を呼び出すようにすれば Cygwin でもOKなのか。というか、OKだった。

でも、cfg ファイルのコメントにも rungs を呼び出すようにしているとある。ちょっと不安だ。そこで、rungs のソースをみてみることにした。ソースは TUG の TeX Live の リポジトリにあった。でも、Master/bin/i386-cygwin/ の下だから Cygwin にあって、しかるべきだと思うんだけど。Setup.exe じゃなくて TeX Live のインストーラを使って Cygwin 版をインストールすればいいのだろうか。

rungs の中身にはパスが書かれていて、rungs.tlu を指していた。rungs.tluLua で書かれているらしいけど、要は OS が Windows なら gswin32c をそうでなければ gs を呼び出すようになっていた。ということは cfg ファイルを上記のように変更するのでも問題はなさそうである。けど、 TeX Live のリポジトリから rungs.tlu をダウンロードしてくる方がもっといいかも。