読者です 読者をやめる 読者になる 読者になる

Acetaminophen’s diary

化学に関すること,TeXに関すること,ゆきだるまに関すること。

TeX2img のすゝめ:詳しい使い方(改訂版)

【最終更新 2015-08-23 04:20】この記事は TeX2img の使い方の網羅的解説であり、Windows 版 1.5.6 と Mac 版 1.9.8 を基準に説明している。以前のバージョンでも参考になりうるが、一部機能は異なる。特に理由がない場合は最新版への更新を強く勧める。以前のバージョンの記事はこちら

初めて TeX2img を使う方にも読んで理解していただけるように、かつ上級者にも全機能を知っていただけるように、TeX2img の使い方を網羅的にまとめることにした。美文書第6版にも収録されていながら、使い方に関しては全く触れられていないというアプリケーションだが、実際には非常に高機能な画像化ソフトだと考えてよいと思う。確かにインターフェースを見れば大体使い方は分かるが、細かい点やトラブルシューティングも紹介したかったので、最初から使い方を一気にまとめてみた。参考になれば幸いである。

配布サイト

TeX そのものの使い方(インストール方法、コマンド etc.)は TeX Wiki美文書をはじめとする他のリソースを参照。

 

特長

TeX2img には Windows 版Mac 版があり、以下のような特徴がある。

【ソフトウェアの概要】

入力した TeX ソースコードTeXコンパイルして、画像として出力する

【出力形式】

  • JPEG/PNG/BMP/GIF/TIFF ファイル(PNG, TIFF, GIF は白背景を透過処理可能)
  • アウトラインをとった EPS/PDF ファイル
  • テキストを保持した PDF ファイル
  • アウトラインをとり、かつテキスト情報を保持した SVG ファイル
  • アウトラインをとった EMF ファイル(Windows 版のみ:Mac 版は補助ツールあり)

【ソフトウェア導入】

  • システムで TeX Live や W32TeX が正常に動作することを前提
  • TeX2img 自体はインストール不要(したがって管理者権限不要)*1

TeX 処理とソース編集】

  • 日本語も処理可能・数式以外の地の文も処理可能
  • システムの TeX を利用するスタンドアロンアプリのため利用時にネット環境不要
  • 任意の LaTeX パッケージや独自スタイルファイルを利用可能*2
  • ソースのハイライト機能、外部ソース読み込み機能
  • 出力画像にソースを埋め込む機能により、ソースを復元可能

 

インストール方法

特別な手順は不要。以下では GUI 版を使うための手順を説明する(CUI 版はこちら)。

Windows

ダウンロードした zip アーカイブを展開して、TeX2img.exe をダブルクリックする。フォルダを移動する際は最低限 Azuki.dll, mudraw.exe, pdfiumdraw.exe も TeX2img.exe と同じ場所に置く必要がある。

Mac

ダウンロードした dmg ファイルに入っている TeX2img.app をダブルクリックする。気に入ったらアプリケーションフォルダに移動し、Dock に登録するとよいだろう。

補足:美文書の付録 DVD からインストールした TeX2img を更新する場合

Windows:自動アップデートのメカニズムはないので、阿部さんのサイトから最新版を取得して更新する。旧バージョンの TeX2img をフォルダごと削除し、改めて展開すればよい。旧バージョンと同じ場所に展開すれば、以前の設定が引き継がれる。

Mac:メニューの [TeX2img] → [アップデートを確認...] から可能。

寺田さんより Mac 版に関する補足

これは,Sparkle という自動アップデートのフレームワークを使っています。ただし,この美文書に付属の Sparkle は古いバージョンであるため,Yosemite で使うとバージョンアップに失敗することがあるようです。その場合は,公式サイトから新バージョンをダウンロードして手動でアプリ本体を差し替える必要があります。最新版の TeX2img の Sparkle は Yosemite に対応した新バージョンに更新してあるため,それ以降のバージョンアップは「アップデートを確認...」メニューから可能です。

 

試しに使ってみる

起動すると、まず初めにインストールされている TeX システムを推測し、プログラム LaTeX, dvipdfmx, Ghostscript の場所を設定する。推定に成功すると確認画面が現れたのち、以下のような画面が現れる。推定に失敗した場合は、後述するようにプログラムの場所を手動で設定する。

f:id:acetaminophen:20150823041731p:plain

f:id:acetaminophen:20150823031718p:plain

エディタ部分にソースコードの \begin{document} と \end{document} の間の部分を書き込み、出力先ファイルを指定して「画像生成」する。

f:id:acetaminophen:20150823041749p:plain

f:id:acetaminophen:20150823031947p:plain

TeX 関連プログラムが正しく機能していれば、指定した場所に画像ファイルが生成するはずである(図は透過 PNG)。

f:id:acetaminophen:20141219113336p:plain

f:id:acetaminophen:20141219182722p:plain

もし「画像生成」ボタンを押した後にソースが誤っていたことに気づいた場合、処理を中断したいこともあるだろう。その場合は「画像生成」ボタンが「中断」ボタンに切り替わる(Win 1.5.2 以降および Mac 1.9.6 以降)ので、これを押せばよい。

 

出力される画像について

TeX2img が出力する画像形式は、JPEG/PNG/BMP/GIF/TIFF 形式という「ラスター画像(ビットマップ)」と、EPS/PDF/SVG/EMF 形式という「ベクター画像(ドロー)」である。非常におおざっぱな説明としては、拡大した時ギザギザになるのが「ラスター画像」、なめらかなのが「ベクター画像」と考えていいと思う。この辺は他のリソースを参照してほしい。

TeX2img は(ラスター画像については問題とはならないが)ベクター画像については「アウトライン化」を自動で行う*3。これは、IllustratorInkscape といったベクター画像編集ソフトウェアでの利用が多いことを想定してのことである。

ベクター画像編集ソフトに取り込む前に「アウトライン化」(=テキストをパスに変換)しておくことは、TeX で利用される特殊な形式のフォントを文字化けなしに取り込むために有効である。Illustrator などで文字の色を変えたりエフェクトをかけたりする場合には TeX2img の「アウトライン化」はありがたい機能である。そうでなくとも「文字の再利用は不要だから、レイアウトは保ってほしい」という場合に使えるはずだ*4

 

プリアンブルの編集

さっきは \begin{document} と \end{document} の間しか書かなかったが、今度はプリアンブルも設定してみよう。メニューの [表示] > [プリアンブル設定ウィンドウ] でプリアンブル設定ウィンドウが出てくる。

f:id:acetaminophen:20150823041812p:plain

f:id:acetaminophen:20150823032005p:plain

デフォルトですでにいくつかのパッケージが読み込まれているので、追加する場合は同じように \usepackage を用いれば良い。原理上(いくつかの例外を除くが*5)すべてのパッケージを用いることができる。テンプレート機能および色入力支援機能(Mac 版のみ)については別の記事で解説する。

 

外部エディタでの編集サポート

TeX2img 単独でのソース編集と処理のほかに、使い慣れた外部エディタでソースを編集したい場合などに便利な機能も、以下のように2通り付加されている。

  1. 「インポート/エクスポート機能」
    この機能は TeX2img のエディタ部分に既存のソースファイルを配置したり、逆に作成したソースを指定したファイルに書き出したりする。インポートについてはエディタの本文の領域にドラッグ&ドロップするか、メニューから [ファイル] > [インポート] とし、エクスポートは [ファイル] > [エクスポート] で行う*6
    TeX2img には履歴機能を付けていないので、よく使うソースをエクスポートしておき必要な時にインポートするという用途が考えられる。インポート時には文字コード推定がはたらき*7、エクスポート時にはユーザが指定した文字コード(後述)でファイルを作成する。
  2. TeX ソースファイルを読み込む」
    既存の TeX ソースファイルを読み込んで処理する。「インポート/エクスポート」と異なる点は、TeX2img オリジナルエディタとは排他的な動作になっていることであり、TeX2img のエディタに書き込んだソースを保持したまま別の外部ソースを処理させられるというメリットがある。この場合「TeX ソースファイルを読み込む」にラジオボタンを切り替える。

 

注意すべき重要な点

TeX2img は、以上で説明したどのソース入力方法を利用しても、システム標準の「一時フォルダ」に一旦ソースファイルを保存またはコピーし、そこを作業ディレクトリとして処理する*8。すなわち画像を \includegraphics で挿入する場合や他の TeX ソースを \input で読ませる場合に注意が必要となる(既存のソースファイルを読み込むからといって、ソースと同じ場所に画像を置いても認識されないということ)。

例えば画像を \includegraphics するというコマンドを記述した場合

  • 作業ディレクトリに画像を移動する
  • 画像の絶対パスを記述する(\graphicspath も利用可能;相対パスは不可)

のいずれかの措置をとることになる。他の TeX ソースを \input している場合も同様である*9。なお、作業ディレクトリがどこだか分からないという方のために、後の「困ったときは」という項目で作業ディレクトリへの訪問方法を説明している。

 

プログラムの設定

Windows 版ではメニューから [ツール] > [オプション] で、また Mac 版では [TeX2img] > [環境設定] で設定用のウィンドウが現れる。ここの [基本設定] タブまたは [変換ツール] タブが、TeX 関連プログラムや Ghostscript の PATH の設定画面である。

f:id:acetaminophen:20150823041833p:plain

f:id:acetaminophen:20150823032034p:plain

既に初回起動時に推定された各プログラムのパスが入っているはずで、ユーザは自由に変更することができる*10LaTeX プログラムにはさまざまなエンジンを指定可能*11であり、詳細は別の記事で解説する。パスの自動推定をやり直したい場合は「各種パスの推定」または「自動判定」ボタンをクリックする。

コンパイルおよびエクスポート時に使用する文字コードも指定できる。詳細は別の記事にまとめるが、たいていは Windows 版では「指定しない(入力 UTF-8)」(古い TeX 環境を使っている場合は「指定しない(入力 Shift_JIS)」)に、Mac 版では「指定しない」にしておけば問題ないと思われる。仮に文字化けが発生した場合に明示的に指定する程度で十分だろう。

ソース中に \label や \ref の相互参照を含む場合は複数回コンパイルを必要とするので、コンパイル回数推定が便利である。チェックが ON の場合は、相互参照の完成に必要最小限のコンパイル回数を推定してくれる(上限回数はユーザ指定に従う)。チェックが OFF の場合は、推定なしで単純にコンパイルを繰り返す回数をユーザが指定する。

その他の機能については、以下のとおりである。

  • 少々のコンパイルエラーは無視して画像化を強行する
    この機能は「DVI や PDF が生成しさえすれば先へ進む」というものである。例えば、LaTeX の \begin を \bigin とミスすると
    ! Undefined control sequence.
    というエラーが出る。このように一つでもエラーが出た場合、たとえ DVI や PDF が生成したとしても TeX2img は画像化を中断する。それでも少々のエラーであれば、誤りのある部分を飛ばして DVI もしくは PDF ファイルが生成するはずなので、その画像化を強行したい場合にチェックを入れればよい。ただし、この機能で期待どおりの出力が得られることは稀であり、まずは出力ウィンドウを見てエラー内容を検討するのが先決である(Win 1.5.6 および Mac 1.9.6 以降では警告ダイアログも出る)。
  • JIS X 0208 外の文字を \UTF{xxxx} に置換
    これは Mac 版のみの機能で、OTF パッケージを利用して JIS 第一水準・第二水準外の漢字などを platex で処理できるかたちに自動的に置換する。ただし、いまとなっては uplatex を使えば直接処理できるので、使う頻度は高くないかもしれない。

 

出力画像のカスタマイズ

今度は設定用のウィンドウで [出力画像設定] または [出力画像] タブを開くと、下のような画面が現れる。

f:id:acetaminophen:20150823041859p:plain

f:id:acetaminophen:20150823032656p:plain

ここで解像度レベルや余白を設定できる。解像度レベルの数字の意味や余白単位の意味はここではわからなくてもよい*12が、とりあえずいじりながら調節してみてほしい。PNG 出力の場合は背景を透過処理するかどうか選択できる。透過する場合は、白い背景部分が透明となった PNG 画像が出力される。

Windows 版ではアンチエイリアスを行うかどうかを選択でき、アンチエイリアスを行えば高品質な(ギザギザせず滑らかな)画像が出力される*13

PDF 出力でテキストを保持する(=アウトライン化しない)設定も可能。SVG の寸法情報削除とは、XML ソースのヘッダ部分にある width, height を削除することを意味し、ブラウザなどで表示した際にウィンドウサイズによってサイズが可変となる。

 

その他の設定:エディタ周りなど

Windows 版も Mac 版もエディタのフォントやソースのハイライトの有無を変更することができる。Windows 版のエディタ設定は [エディタの設定] タブから、Mac 版のエディタ設定は [表示] および [色] タブから行う。

f:id:acetaminophen:20150823041927p:plain

f:id:acetaminophen:20150823032839p:plain

f:id:acetaminophen:20150823032850p:plain

Mac 版に関しては入力補完機能もあり、これらはメニューの [編集] に収められている。

f:id:acetaminophen:20150823033016p:plain

寺田さんからの補足

Mac 版は、TeXShop がインストールされている場合にのみ,TeXShop の入力補完辞書を参照して行います。正確には,二種類の補完があります。

【オートコンプリート】

開き括弧 { を入力すると,{} と入力されて真ん中にカーソルが来るような自動補完です。この辞書は,TeXShop のメニューの [ソース] → [キーバインド] → [キーバインドファイルの編集...] から編集可能です。

【コマンド補完】

\be まで入力して esc キーを押すと \begin{ と補完されるような,esc キーで発動するコマンド補完です。この辞書は,TeXShop のメニューの [ソース] → [コマンド補完] → [補完用語ファイルの編集...] から編集可能です。

 

応用的な使い方

以前書いた記事は今でもまだ参考になると思うのでリンクしておく。


PDFのトリミングとベクター画像抽出 - Acetaminophen’s diary

 

トラブルシューティング

本家の TeX2img配布サイト(特に Tips やトラブルシューティング)や Windows 版 TeX2img 添付ドキュメント以外に、問題が起こりうる場合について。

Ghostscript が VMerror を起こす

このエラーが発生することはほとんどないが、Windows 版でも Mac 版でもまれに発生する例が存在することが確認されている。特に Ghostscript 9.14 以前を用いる場合に Ghostscript が VMerror を起こす場合があるらしい。これは TeX2img の不具合ではなく Ghostscript と TeX ソースにより出力される PDF の“相性”の問題のようで、これを回避するには、現状では、このようなソースを処理したい場合に対して個別に対処するほかはない。

Windows:オプションの [基本設定] で「低解像度での処理を行う」にチェックを入れ、[出力画像設定] で解像度を適宜調節

Mac:環境設定の [変換ツール] で「速度優先モード」に切り替え、解像度を適宜調節

Ghostscript 9.15 以上でアウトライン化ではなくビットマップ化になってしまう

これもある種の TeX ソースで発生することを確認しているが、現状ではどうしようもない。Ghostscript 9.14 以下にダウングレードすればビットマップ化は防げるが、完全できれいなアウトライン化はできないだろう(断片化した非常に細かい無数のパスに分割されてしまうはず)。

 

困ったときは

他にも問題があるかもしれないが、そのような時はまず出力ウィンドウをよく見てほしい。たいていは TeX2img 自体のエラーではなく、呼び出しているプログラムが吐いているエラーであることが多いので、エラー箇所が見つかることが多いだろう。

また、一時ファイルを覗いてみるのも一つの手である。Windows 版ではオプションから、Mac 版では環境設定から [コンパイル後処理] を開くと「作業フォルダを開く」とあるので、実際に TeX2img が作業に使用している一時フォルダを訪問できる。

f:id:acetaminophen:20150823042008p:plain

f:id:acetaminophen:20150823033049p:plain

コンパイル後作業ファイル削除」のチェックを OFF にした状態で、この作業フォルダを観察しながら失敗したソースでもう一度「画像生成」してみると、どこまで成功でどこから失敗か分かることも多い。既に「仕様書」といえるかもしれない(?)資料を公開してあるので、こちらも参考にしてほしい。

なお、Windows 版 1.4.0 と Mac 版 1.8.8 以降で追加された「出力画像へのソースコード埋め込み機能」や「画像を自動的にクリップボードにコピーする機能」等については別の記事で解説することとする。

追加情報:トラブルシューティングや便利な使い方などは、TeX Wiki の「TeX2img FAQ」の項目にもまとまっている。この FAQ は doraTeX さんと僕が中心になって執筆作業を行っているもので、現在は配布サイトに掲載されていた Tips なども移転して情報を集約してある。TeX2img の使い方や機能を理解する助けとなる情報が多く掲載されているので、ぜひ参考にしてほしい。

 

あとがき

Windows 版 1.3.2 および Mac 版 1.8.7.1 の開発では、Twitter での議論を発端に Mac 版の GitHub リポジトリの Issues へ移行し、開発の方向性や需要を考慮しつつ Windows/Mac の両バージョンの挙動を極力統一し、かつ直感的に自然な操作が可能な GUI を開発するという作業を行った。解説記事を書いている私は相変わらず両バージョンをただ動かしてテストしたにすぎないが、一層使いやすくなったのではないだろうか。TeX さえあればソースから簡単に画像生成できる TeX2img をぜひ!

 

CUI 版の使い方の記事はこちら。

Windows/Mac 両バージョンを比較しつつ解説した。


TeX2imgのコマンドライン版の使い方(改訂版) - Acetaminophen’s diary

*1:設定ファイルだけはシステムの中に保管される。完全にポータブル化したい場合は長岡高専のサイトが参考になる。

*2:Windows 版 1.3.2 以前および Mac 版 1.8.7.1 以前では platex (uplatex) + dvipdfmx を通るソースである必要があったが、大規模アップデートであらゆる TeX エンジンに対応した。

*3:ただし、PDF 出力かつ「テキストを保持する」のチェックを ON にした場合だけは例外的にテキストを保持する。

*4:「画像を文書に貼り付けて、その文書を別の環境に持っていくとフォントが変わって配置がおかしくなる」という可能性は、そもそもテキスト情報を失わせる「アウトライン化」により排除できるという意味である。

*5:例えば hyperref パッケージのリンクやアニメーション・動画のような複雑なオブジェクトは、アウトライン化やビットマップ化する限りは当然ながら意味をなさない。

*6:ショートカットキーは「開く/保存」のものを割り当てているが、これは TeX2img をマルチドキュメントアプリケーションにする予定はないという寺田さんの意向を反映しており、あくまで TeX2img は簡易的な補助ツールとしての利用を想定しているわけだ。

*7:詳細は、Windows 版については阿部さんのにっき♪で詳しく説明されている。Mac 版については寺田さんの GitHub リポジトリの Issue 5 参照。

*8:TeX2img は標準で、目的の出力画像以外の一時ファイルを削除してくれるが、たとえ一時ファイルの削除に失敗してもユーザのフォルダを汚さないようにという配慮である。

*9:なお、Windows 版 1.5.0 および Mac 版 1.9.2 以降は TEXINPUTS に元のソースファイルのディレクトリを一時的に追加することで、\input{hoge.tex} や \includegraphics{hoge.eps} は特に対処せずとも使えるようになった。しかし、\input{./hoge.tex} や \includegraphics{./hoge.eps} は起点となるディレクトリが異なるため失敗し、あくまで限定的な機能だと認識すべきである。

*10:Windows 版では必ずしもフルパスで指定する必要はなく、システムの PATH が通ってさえいれば問題なく動作する。Mac 版は必ずフルパスで指定しなければならない(Mac には「システムワイドのパス」という概念がないため)。

*11:LaTeX エンジンとしてデフォルトでは platex が指定されているが、大規模アップデートにより pdfLaTeX や XeLaTeX といった PDF を直接出力するエンジンを指定できるようになった。

*12:詳細は画像変換スキームの解説記事参照。

*13:Windows 版 1.4.0 以前では「オプションで ImageMagick をインストールすればアンチエイリアスが可能」としてきたが、1.5.0 以降ではアンチエイリアスを Ghostscript のみで行うように変更した。これにより、従来 ImageMagick を上手くインストールできていなかったユーザでもアンチエイリアス処理が可能となった。