TeX2img(数式・図の画像化)

TeX2img は、数式や TikZ の図・表などの LaTeX 断片をコンパイルし、内容にぴったり合わせて余白を切り詰めた画像を書き出すツールです。PowerPoint や Keynote のスライド、Word、Web ページなど、LaTeX が使えない場所に美しい数式を置きたいときの定番。macOS / Windows の GUI アプリとコマンドライン版があり、透過背景や高解像度にも対応します。

TeX2img がすること

通常の LaTeX は、ページ全体(A4 など)の中に数式を組んだ PDF を作ります。しかしスライドに数式を貼りたいときに欲しいのは、数式そのものだけが入った、余白のない画像 です。TeX2img はそこを埋めます。短い LaTeX 断片を受け取り、コンパイルして、内容の外接矩形(バウンディングボックス)に合わせて自動でトリミング し、1 枚の画像ファイルとして書き出します。

入力は数式だけのこともあれば、プリアンブルを含む完全な断片のこともあります。\documentclass を省いた本文だけを貼り付ければ、TeX2img がひな形(テンプレート)で包んでからコンパイルしてくれます。逆に、既存の .tex ファイルや、できあがった PDF・PS・EPS を入力として画像化することもできます。

もともとは 寺田侑祐 氏が作ったツールで、現在は 阿部紀行(abenori) 氏らによって macOS 版・Windows 版がそれぞれ開発されています。Web アプリではなく 手元で動くスタンドアロンのアプリ なので、インターネット接続は不要で、自分の環境に入れた独自のスタイルファイルもそのまま使えます。

出力できる形式

出力形式は ベクターラスター(ビットマップ) の両方を選べます。ベクター(PDF・SVG・EPS)は拡大しても数式の輪郭が崩れず、スライドや印刷物で何倍に伸ばしても線が鮮明なままです。一方ラスター(PNG・JPEG など)は貼り先を選ばず手軽ですが、解像度を上げないと拡大時にぼやけます。用途に合わせて、まずはベクターを基本にするのが安心です。

形式種類向いている用途
PDFベクター印刷・LaTeX 文書への取り込み。文字情報を残すことも可
SVGベクターWeb ページ。拡大しても鮮明
EPSベクターIllustrator や旧来の入稿フロー
PNGラスタースライド・Web。透過背景に対応
JPEGラスター写真と混ぜる場面(数式単体には不向き)
EMFベクターWindows の Office に貼る(Windows 版のみ)

このほか TIFF・BMP・GIF も選べます。PDF と SVG では、文字を アウトライン化(図形化) するか、文字情報として残す かを選べます。アウトライン化すると、相手の環境にフォントが無くても見た目が再現できます。

内部のしくみ

TeX2img は魔法ではなく、手元の TeX と外部ツールを順に呼び出すフロントエンド です。大きく分けて三段階で動きます。まず、選んだ TeX エンジン(pdflatexplatexuplatexlualatex など)で断片をコンパイルし、PDF(または PS)を作ります。platex / uplatex のように一度 DVI を経由する経路では、続いて dvipdfmxdvips で PDF/PS に変換します。最後に、その PDF を Ghostscript などで処理しながら内容の外接矩形に合わせて切り出し、指定の形式へ書き出します。

このため TeX2img には 動作する TeX 環境(TeX Live / MacTeX など)と Ghostscript が必要です。エンジンを自分で選べるので、日本語の数式やフォントを使うなら uplatexlualatex、欧文中心なら pdflatex というように、普段の組版と同じ品質をそのまま画像にできます。日本語まわりの事情は別ページ「TeX・LaTeX と日本語」を参照してください。

余白(マージン)や解像度、背景の透過は細かく指定できます。たとえば四辺の余白をまとめて足したり、透過 PNG を作ったり、解像度を上げて拡大に強いラスター画像を得たり、といった調整です。スライド用なら、数式まわりに少しだけ余白を付けて透過 PNG にすると、背景の色に溶け込んできれいに収まります。

典型的な使い方

流れはとても素直です。(1) 数式や図の LaTeX を書く、(2) エンジンと出力形式を選ぶ、(3) 生成する、(4) できた画像をスライドや文書にドロップする。GUI 版ではプレビューを見ながら調整でき、macOS 版では生成結果を Illustrator・Word・PowerPoint などへ直接ペーストする機能もあります。下は、画像化したい中身の一例です。

latex
\[
  \int_{-\infty}^{\infty} e^{-x^2} \, dx = \sqrt{\pi}
\]

これを TeX2img に貼り、エンジンに uplatex、形式に透過 PNG か SVG を選んで生成すれば、数式だけがぴったり切り出された 1 枚の画像が得られます。あとはスライドに貼るだけです。

同じことを GUI ではなくコマンドラインから行いたい場面もあります(多数の数式を一括変換する、ビルドに組み込む、など)。TeX2img には コマンドライン版 があり、Windows では GUI を CUI モードで動かすラッパとして TeX2imgc.exe が用意されています。基本は「入力ファイルと出力ファイルを並べて指定する」形で、余白・解像度・透過・エンジンなどは GUI と同じ項目をオプションで渡せます。

terminal
TeX2imgc.exe /transparent /resolution=600 equation.tex equation.png

standalone との違い

似た目的のものに、ドキュメントクラス standalone があります。standaloneLaTeX のビルドの中で 内容を 1 ページに切り詰めるクラスで、できあがるのは(切り詰められた)PDF です。TikZ の図を別ファイルにして本文に取り込む、といった LaTeX 完結のワークフローに向きます。

対して TeX2img は、LaTeX の外の世界で使う独立した画像ファイルを作ること に主眼があります。コンパイルから切り出し、PNG・SVG・EMF などへの書き出しまでを 1 つのアプリがまとめて面倒を見てくれるので、「スライドに数式を 1 枚貼りたい」という目的なら最短です。LaTeX 文書の中で完結させたいなら standalone、外部アプリに持ち出したいなら TeX2img、と使い分けるとよいでしょう。図そのものの描き方は「TikZ」「画像の挿入」のページも参照してください。