寺田さんにより開発された「TeXソースコードをTeXでコンパイルして画像で出力するアプリケーション」であるTeX2imgのWindows版が更新された。
美文書第6版(サポートページはこちら)にも収録されているアプリケーションであるが、約5年ぶりのアップデート (Ver. 1.2.0.0) である。
作ったもの,書いたもの,他(阿部さんによるサイト:Windows版を配布)
TeX2img配布サイト(寺田さんによるサイト:現在はMac版をサポート)
あれ、と思った方が多いと思うが、今回のWindows版の開発再開は、寺田さんから阿部さん(TeXインストーラ3などのツールなどで名高いあべのりさん)に引き継がれたことに伴う。
実は僕Acetaminophenも今回の開発のお手伝いをさせていただいた。とはいっても、プログラムを書くのは阿部さんで、その動作確認と不具合の報告をフィードバックしただけであるが*1。
そして、以下のように便利な機能が追加された。
重要な変更点
【不具合の解消】
- Ghostscriptなどで空白を含むPATHを認識できない問題を解決
【機能の追加】
【変更点】
- 以前のバージョンでは可能だったemfの出力はやめることにした
- 出力形式をPDFに指定した場合、ImageMagickのチェックの有無にかかわらずgsのpdfwriteを通すようにした
- 修正BSDライセンスに変更(旧バージョン1.1.4は GPL v.2 であった)
ソースのハイライトで見やすくなったし
余白の設定も一新。
透過PNGも一発。
技術的な話:Windows版TeX2imgの構造
寺田さんによる以前のWindowsバージョン1.1.4.0では
dvi→pdf (dvipdfmxで)
→eps (gsのepswriteで)
├→pdf (gsまたはconvertで)
├→jpg/png (ImageMagickの場合;convertで)
└→余白付与eps (epsのソース編集で)
└→jpg/png (gsの場合)
という流れであったが、今回の改版で阿部さんによって当初は
dvi→pdf (dvipdfmxで)
→cropされたpdf (pdfcropで)
├→jpg/png (ImageMagickの場合;convertで)
└→eps (gsのepswriteで)
└→余白付与eps (epsのソース編集で)
└→jpg/png (gsの場合)
という流れに修正された。しかし、W32TeXのpdfcropがPerl依存であるため、この方法では別途Perlインタプリタをユーザーがインストールしなければならず、断念。再びgsのepswriteを経由させることになり、最終的には
dvi→pdf (dvipdfmxで)
→eps (gsのepswriteで)
├→jpg/png (ImageMagickの場合;convertで)
└→余白付与eps (epsのソース編集で)
├→jpg/png (gsの場合)
└→pdf (gsのpdfwriteで)
となった。ただし、gsのepswriteでは文字のアウトラインがとられて図形となり、テキストとしての情報は失われてしまうのでpdfcropによるPDFのcropとは結果が異なる。
なお、出力形式をPDFに指定した場合にImageMagickのチェックの有無にかかわらずgsのpdfwriteを通すようにしたのは、ImageMagickのconvertが eps→pdf で勝手にビットマップ化してしまうのでこれを避け、アウトラインを保持するためである。
また、余白付与はepsのBoundingBoxを書き換えることで行っており、gsを使う場合はこの余白付与epsを基にjpg/png/pdfが生成される。ImageMagickを使う場合はjpgやpngの余白付与をconvertで行うが、ビットマップ化してからピクセル(px)単位で余白を付与していた従来の方式を維持しつつ、付与する余白の大きさをBig Point (bp)単位で指定すると最終的な余白は
(指定された余白)*(解像度レベル)
となる。bp単位で指定するとjpg/pngとeps/pdfという出力形式による見た目の違いが解消される一方、jpg/png出力しか使わないユーザーにとってはピクセル(px)単位での余白指定の方が直接的で分かりやすいだろう。
こうした変更により、最新のWindows版(1.2.0)とMac版(1.7.6)では余白付与方式が一致しない結果となったが、この他にもWindows版とMac版で処理過程が異なる部分がいくつか存在するので、挙動の一致は図らなかった。
最後に
先日の記事で書いたPATHの問題にとどまらず、さまざまな機能が付加されてますます便利になったTeX2imgの僕なりの使い方を、後日このブログで書こうと思う。もしかしたらTeXを触ったことのない人にも、興味を持っていただけるのではないかと期待している。
とにかく、大変お世話になった阿部さん、寺田さん、ありがとうございました。
*1:それにもかかわらずあべのりさんの2014年9月14日のにっき♪で言及していただいたようで…非常に光栄です!