Things with “TeX” in the name
New TeX users are often baffled by the myriad terms with “TeX”
in the name. The goal of this answer is to clarify some of the more
common TeX terms.
TeX itself
TeX proper is a typesetting system based on a set of low-level
control sequences that instruct TeX how to lay out text on the
page. For example, \
hskip
inserts a given amount of horizontal
space into the document, and \
font
makes a given font available
to TeX. TeX is fully programmable using an integrated macro
scripting language that supports variables, scoping, conditional
execution, control flow, and function (really, macro) definitions.
See
What is TeX? for some background
information on TeX and
Reference documents for pointers to
descriptions of TeX control sequences, data types, and other key
parts of TeX.
TeX macro packages (a.k.a. TeX formats)
TeX’s control sequences are tedious to use directly; they are
intended primarily as building blocks for higher-level—and therefore
more user-friendly—abstractions. For example, there is no way in
base TeX to specify that a piece of text should be typeset in a
larger font. Instead, one must keep track of the current size and
typeface, load a new font with the same typeface but a (specified)
larger size, and tell TeX to use that new font until instructed
otherwise. Fortunately, because TeX is programmable, it is
possible to write a macro that hides this complexity behind a simple,
new control sequence. For example,
\
larger{my text}
can be defined to typeset “my text” in
the next larger font).
While some users write their own, perfectly customized set of
macros—which they then typically reuse across many documents—it is
far more common to rely upon a macro package, a collection of
TeX macros written by experts. For the user’s convenience, these
macro packages are often combined with the base TeX engine into a
standalone executable. The following are some of that macro packages
that you are likely to encounter:
- Plain TeX (executable: tex)
-
See
Books on TeX and its relations,
Online introductions: TeX,
Should I use Plain TeX or LaTeX? and
Freely available (La)TeX books.
Note that the Plain TeX executable is called tex; the
base TeX engine is generally provided by a separate executable
such as initex or as a
-ini
flag to
tex.
- LaTeX (executable: latex)
-
See
Books on TeX and its relations,
(La)TeX Tutorials, etc.,
Online introductions: LaTeX,
Specialized (La)TeX tutorials and
Directories of (La)TeX information.
Note that there have been two major versions of LaTeX: LaTeX2e
refers to the current version of LaTeX while LaTeX 2.09 is the
long-since-obsolete (since 1994) version (cf.
What is LaTeX2e? for more information).
- ConTeXt (executable: texexec)
-
See
What is ConTeXt?.
- Texinfo (executables: tex, makeinfo)
-
See
What is Texinfo?. makeinfo
converts Texinfo documents to HTML, DocBook, Emacs info,
XML, and plain text. Tex (or wrappers such as
texi2pdf and texi2pdf) produce one of TeX’s
usual output formats such as DVI or PDF. Because
tex loads the Plain TeX macros, not the Texinfo ones,
a Texinfo document must begin with
\
input{texinfo}
to
explicitly load the Texinfo macro package.
- Eplain—Extended Plain TeX (executable: eplain)
-
See
What is Eplain?.
Modified tex executables
The original tex executable was produced in the late 1970s
(cf. What is TeX?) and consequently
lacked some features that users have come to expect from today’s
software. The following programs address these issues by augmenting
the TeX engine with some additional useful features:
- PDFTeX (executable: pdftex)
-
TeX, which predates the PDF file format by a decade,
outputs files in a TeX-specific format called DVI
(cf. What is a DVI file?). In
contrast, PDFTeX can output both DVI and PDF
files. In PDF mode, it lets documents exploit various
PDF features such as hyperlinks, bookmarks, and annotations,
PDFTeX additionally supports two sophisticated micro-typographic
features: character protrusion and font expansion. See
What is PDFTeX?.
- XeTeX (executable: xetex)
-
TeX not only predates all major font technologies in use today
(e.g., TrueType, OpenType, and PostScript Type 1) but also predates
the notion that fonts be included with an operating system.
Consequently, TeX uses its own font formats, which are
incompatible with anything a user is likely to have preinstalled.
XeTeX addresses this issue by enhancing TeX’s
\
font
control sequence to support all of the fonts made available by the
operating system. See
What is XeTeX?.
- LuaTeX (executable: luatex)
-
TeX is programmed in its own, integrated, macro-based programming
language. Many users have criticized this language for being
needlessly difficult to program. LuaTeX addresses that criticism
by integrating a modern scripting language, Lua, into the base
TeX engine. See
What is LuaTeX?.
- e-TeX (executable: etex)
-
e-TeX provides a number of features that are only indirectly
useful to end users but that can be immensely useful to package
developers. Consequently, there is an increasing number of macro
packages that require the use of e-TeX. (Note: Be careful not to
confuse e-TeX, which enhances the TeX engine, with Eplain,
which enhances the Plain TeX macro package.) See
What is e-TeX?.
Because each of the above modifies only the base TeX engine, it is
possible to combine any of those with any of the TeX macro packages
listed earlier to produce executables with both sets of features. For
example, the pdflatex, xelatex and
lualatex executables each combine
LaTeX with an enhanced TeX engine. Some executables combine the
features of multiple enhanced TeX engines: pdfetex
combines PDFTeX and e-TeX into a single executable.
As combining features is a generally desirable tendency, current
TeX distributions (see below) incorporate the features of PDFTeX
and e-TeX into a single executable. This executable may be
offered with a LaTeX format (as latex or
pdflatex) or with a Plain TeX format (as
pdftex). (Tex remains with an unadorned TeX
executable using Plain TeX, for people such as Knuth himself, who
want the certainty of the “original”.)
TeX distributions
A TeX distribution is a collection of TeX-related
software. Generally, a TeX distribution includes a set of core
TeX executables such as tex and latex;
various fonts optimized for use with TeX; helper programs such as
the BibTeX bibliographic-database formatter, editors, integrated
development environments, file-format-conversion programs; numerous
LaTeX packages; configuration tools; and any other goodies the
distributor chooses to include. Commonly encountered TeX
distributions include TeX Live, MiKTeX and MacTeX; older ones
include ozTeX, CMacTeX and teTeX. Some TeX
distributions target a specific operating system and/or processor
architecture; others run on multiple platforms. Some TeX
distributions are free; others require payment. See
(La)TeX for different machines for a
list of free and shareware TeX distributions and
Commercial TeX implementations for a
list of commercial TeX distributions.
Summary
If your document begins with \
documentclass
, you’re using some
form of the LaTeX macro package. Even if hidden behind a button in
a TeX-aware GUI, this document is getting compiled by a TeX
executable—probably latex or pdflatex—to
produce an output file. The executable came bundled as part of a
TeX distribution such as MiKTeX, which includes various other
TeX-related components.
This answer last edited: 2009-06-11
This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=texthings