マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

てふてふの大群がとんでゐます

バタバタバタバタバタバタ……*1

エンジン・フォーマット・コマンドの対応についての現在の状況。

[世界中で知られているエンジン]

フォーマット \ エンジンLuaTeXpdfTeXXeTeXAlephTeX
LaTeXPDF 出力LuaLaTeX
lualatex
pdfLaTeX
pdflatex
XeLaTeX
xelatex
DVI 出力(※1)
dvilualatex
LaTeX
latex
(※2)Lamed(ל)
lamed
plainPDF 出力plain LuaTeX
luatex
plain pdfTeX
pdftex
plain XeTeX
xetex
DVI 出力(※1)
dviluatex
plain e-TeX
etex
(※2)Aleph(א)
aleph
plain TeX
tex(※3)
ConTeXt
(※4)
ConTeXt MkIV
context
ConTeXt MkII
texexec
※1 こんなの誰も使わないので名前はない。
※2 XeTeX は DVI の拡張形式である「XDV ファイル」を出力する。XDV ファイルを xdvipdfmx で変換すると PDF 文書が得られる。XeTeX の起動コマンドは通常は自動的に xdvipdfmx を呼び出すので、XDV ファイルではなく PDF ファイルが直接出力されているように見えるが、--no-pdf オプションを付けて起動すると、XDV ファイルが出力される。といっても、XDV 形式は従来の DVI ウェアでは扱えないので特にこの形式のファイルを得る意味はない。
※3 plain e-TeX (etex) があれば plain TeX (tex) やオリジナルの TeX エンジンは要らないように思えるが、次の理由で残されている: (1) オリジナルの TeX の作者である Knuth に敬意を表すため; (2) Knuth が使うため。
※4 ConTeXt には「エンジンや出力形式によって呼び名を変える」という習慣がなく、全て単に「ConTeXt」である。ただし、新版の「MkIV(マーク4)」は LuaTeX エンジンのみをサポートし、旧版の「MkII(マーク2)」は pdfTeX と XeTeX をサポートするという区別がある。(恐らく ConTeXt では XeTeX エンジンはほとんど使われていないと思う。)

[(ほぼ)日本でしか知られてないエンジン]

フォーマット \ エンジンe-upTeXe-pTeXupTeXpTeX
LaTeXDVI 出力(※6)upLaTeX
uplatex
pLaTeX
platex
(※5)
plainDVI 出力(※6)plain e-upTeX
euptex
plain e-pTeX
eptex
plain upTeX
uptex
plain pTeX
ptex
ConTeXtー(※7)
※5 W32TeX では従来の pTeX エンジン上での LaTeX を起動する lplatex というコマンドがある。
※6 pTeX 系列のエンジンは PDF 形式の直接出力を行わない。
※7 少なくとも W32TeX では、e-(u)pTeX エンジンで ConTeXt MkII が動くらしい。ただし ConTeXt は pTeX 系を正式にサポートしているわけでなく、和文側のフォントの存在は全く無視されるため、(私の認識では)まともに「使える」ものではない。

この類の「対応表」を初めて見る人のための注意。

  • 「plain か LaTeX か ConTeXt か」という区別を表す語は定まっていない。「フォーマット(format)」が最もよく使われている気がするのでここではそれに従ったが、((ただし、本来の TeX の構成要素の「フォーマットファイル(拡張子 .fmt)」は個々のコマンドに対応して存在する(例えば platex.fmttex.fmt がある;ただし ConTeXt の実行居ファイルはスクリプト言語で書かれたラッパーである)ので「(表の意味での)フォーマット + エンジン」の組み合わせに対応している。この 2 つの「フォーマット」の意味の間で混乱が起こりやすい。))他に「マクロパッケージ(macro package)」((LaTeX の上で(\usepackage)使うパッケージ(拡張子 .sty のファイル)も時に「マクロパッケージ」と呼ばれることもあるので、これも混乱の元になる。))「言語(language)」と呼ばれることもある。
  • 名前が「〜tex」(〜latex でなくて)の実行コマンドは「plain フォーマット」のものである。実行コマンドは「エンジン + フォーマット」の組み合わせ(pdfTeX エンジン + plain フォーマット → pdftex コマンド)に対応するものであり、「pdfTeX エンジンに(一対一に)対応する実行コマンド」という概念は存在しない。((ただし、「エンジンを何もフォーマットを読み込まない『裸の』状態で起動する」という概念は存在する。実行コマンドに -ini オプションを付けて起動すると、「その実行コマンドに対応するエンジン」を「何もフォーマットファイルを読み込まない、フォーマットファイル作成用の特殊なモード(INITEX モード)」で動作する。(例えば、「latex -ini」は pdfTeX エンジンを INITEX モードで起動する。)昔の TeX エンジンではこれは「initex」という別のコマンドであった。(今では「initex」は「tex -ini」と同じ。)さらに、昔は、「何もフォーマットファイルを読み込まない、通常の(DVI を出力する)モード」で動作するコマンド「virtex」が存在したが、これは全く役に立たないので現在は廃止されている。))
  • 現在は LaTeX フォーマットは全て e-TeX 拡張をもつエンジン(オリジナルの TeX と e- でない (u)pTeX 以外全部)を用いるようになっている。((ただし (u)pLaTeX のエンジンが e- のある方になったのは最近(TeX Live では 2011 から)のことで、それまでは pLaTeX エンジンの platex と e-pLaTeX エンジンの eplatex が存在した。))
  • 昔は「e-TeX エンジン」があったが、今では pdfTeX エンジンの DVI 出力モードがその役割を果たしている。
  • Omega(Ω)は廃止になった。(参考)e-TeX 拡張付の Omega が Aleph である。
  • 最近のディストリビューションでは、古い LaTeX 2.09 はサポートされていない。(参考