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 (http://tug.org/texlive), if LaTeX is invoked
via either the system command
then the pdfTeX engine is run (http://ctan.org/pkg/pdftex).
When invoked as
latex, the main output is a .dvi
pdflatex, the main output is a .pdf file.
pdfTeX incorporates the e-TeX extensions to Knuth’s original
program (http://ctan.org/pkg/etex), 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
etex, but this is plain TeX (and produces
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
LuaTeX engine is run (http://ctan.org/pkg/luatex). This
program allows code written in the scripting language Lua
(http://luatex.org) 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
XeTeX engine is run (http://tug.org/xetex). 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 (
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, http://ctan.org/pkg/ptex, http://ctan.org/pkg/uptex).