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\bin
の gswin32.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.tlu
は Lua で書かれているらしいけど、要は OS が Windows なら gswin32c
をそうでなければ gs
を呼び出すようになっていた。ということは cfg ファイルを上記のように変更するのでも問題はなさそうである。けど、 TeX Live のリポジトリから rungs.tlu
をダウンロードしてくる方がもっといいかも。