LaTeX のビルドは最終的に PDF になりますが、そこへ至る道は 2 つあります——直接(pdfTeX/LuaTeX/XeTeX が PDF を書き出す)と、DVI 経由(latex/(u)platex → dvipdfmx)。どちらを通るかで、使える図の形式 などが変わります。このページは 2 経路とその違いを説明します(コマンド自体は「コンパイルコマンド」「DVI 変換」を参照)。
PDF への 2 つの経路
直接経路 では、pdflatex(pdfTeX)・lualatex(LuaTeX)・xelatex(XeTeX、内部で .xdv を経由)が PDF を 1 ステップで出力します。DVI 経由 では、latex や日本語の (u)platex がまず DVI を作り、それを dvipdfmx が PDF に変換します(2 ステップ)。日本語の (u)platex は基本この経路です。
| 経路 | コマンド | PDF まで |
|---|---|---|
直接 / Direct | pdflatex・lualatex・xelatex | 1 ステップ |
DVI 経由 / Via DVI | latex・(u)platex → dvipdfmx | 2 ステップ |
図の形式が変わる
日々の実務で一番効いてくる違いがこれです。直接経路(pdfTeX/LuaTeX) が取り込めるのは PDF・PNG・JPEG で、EPS はそのままでは不可——epstopdf(同名パッケージ、または --shell-escape で自動変換)で PDF にしてから使います。DVI 経由(dvipdfmx) は PNG/JPEG/PDF に加え、EPS も Ghostscript を裏で呼んで取り込めます。EPS 資産が多い旧来のワークフローは DVI 経由が馴染みます。
\usepackage{graphicx}
\includegraphics{figure.png} % 直接経路: PDF/PNG/JPEG / direct route: PDF/PNG/JPEGドライバは自動判定
graphicx・color・hyperref などは、低レベルの命令を正しく出すために 出力ドライバ(pdftex・luatex・xetex・dvipdfmx・dvips・dvisvgm)を知る必要があります。ありがたいことに、これらは コンパイル方法から自動で判定 します。だから ドライバオプションを手で指定しないでください——指定するとかえって競合の原因になります。正しいコマンドでコンパイルすれば、それで通ります。
どちらの経路を使うか
- 英文中心・手早く → 直接(
pdflatex)。 - OS フォント・Unicode・直接 PDF →
lualatex/xelatex(直接)。 - 日本語((u)platex) → DVI 経由(
dvipdfmx)。 - EPS を多用する旧資産 → DVI 経由(Ghostscript で取り込む)か、直接なら
epstopdfで PDF 化。