Next: , Previous: , Up: Overview   [Contents][Index]

2.3 TeX engines

LaTeX is defined to be a set of commands that are run by a TeX implementation (see Overview). This section gives a terse overview of the main programs (see also Command line).


In TeX Live (, if LaTeX is invoked via either the system command latex or pdflatex, then the pdfTeX engine is run ( When invoked as latex, the main output is a .dvi file; as pdflatex, the main output is a .pdf file.

pdfTeX incorporates the e-TeX extensions to Knuth’s original program (, including additional programming features and bi-directional typesetting, and has plenty of extensions of its own. e-TeX is available on its own as the system command etex, but this is plain TeX (and produces .dvi).

In other TeX distributions, latex may invoke e-TeX rather than pdfTeX. In any case, the e-TeX extensions can be assumed to be available in LaTeX.


If LaTeX is invoked via the system command lualatex, the LuaTeX engine is run ( This program allows code written in the scripting language Lua ( to interact with TeX’s typesetting. LuaTeX handles UTF-8 Unicode input natively, can handle OpenType and TrueType fonts, and produces a .pdf file by default. There is also dvilualatex to produce a .dvi file, but this is rarely used.


If LaTeX is invoked with the system command xelatex, the XeTeX engine is run ( Like LuaTeX, XeTeX natively supports UTF-8 Unicode and TrueType and OpenType fonts, though the implementation is completely different, mainly using external libraries instead of internal code. XeTeX produces a .pdf file as output; it does not support DVI output.

Internally, XeTeX creates an .xdv file, a variant of DVI, and translates that to PDF using the (x)dvipdfmx program, but this process is automatic. The .xdv file is only useful for debugging.

Other variants of LaTeX and TeX exist, e.g., to provide additional support for Japanese and other languages ([u]pTeX,,

Unofficial LaTeX2e reference manual