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 such terms.
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,
inserts a given amount of horizontal
space into the document, and
makes a given font available
in a document. TeX is fully programmable using an integrated macro
scripting language that supports variables, scoping, conditional
execution, control flow, and function (really, macro) definitions.
what is TeX?
for some background
information on TeX and
some 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)
Some of 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, it is possible to define
to typeset “my text” in
at a font size next larger than the current one.)
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:
Modified tex executables
- Plain TeX (executable: tex)
Books on TeX and Plain TeX,
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
- LaTeX (executable: latex)
Books on TeX and its relations,
(La)TeX Tutorials, etc.,
Online introductions: LaTeX and
Specialized (La)TeX tutorials.
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: texmfstart)
What is ConTeXt?.
- Texinfo (executables: tex, makeinfo)
What is Texinfo?. makeinfo
converts Texinfo documents to HTML, DocBook, Emacs info,
XML, and plain text. Tex (or wrappers such as
texi2dvi 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
explicitly load the Texinfo macro package.
- Eplain — Extended Plain TeX (executable: eplain)
What is Eplain?.
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)
XeTeX reads UTF-8 encoded Unicode input, and extends
TeX’s font support to include ‘modern’ formats such as TrueType
and OpenType; these extensions to its capabilities make it
well-suited to multi-lingual texts covering different writing
systems. See What is XeTeX?.
- LuaTeX (executable: luatex)
TeX is programmed in its own arcane, integrated, macro-based
programming language. LuaTeX adds a second programming engine
using a modern scripting language, Lua, which is ‘embedded’ in a
TeX-alike engine; it too reads UTF-8 and uses TrueType
OpenType fonts. See
What is LuaTeX?.
- e-TeX (executable: etex)
e-TeX is an extension of TeX’s programming interface; as such
it’s only indirectly useful to end users, but it can be valuable to
package developers; there is an increasing number of macro packages
that require the use of e-TeX. As well as existing in
etex, e-TeX features are usually available in the
pdftex executables provided in the standard
distributions; XeTeX and LuaTeX also provide e-TeX’s
programming facilities. See
What is e-TeX?.
(Note: e-TeX, which enhances the TeX engine, is not to be
confused with Eplain, which enhances the Plain TeX macro
Because each of the above derive from a base TeX engine, it is in
principle possible to combine any of them with one of the TeX macro
packages listed earlier to produce ‘extended’ executables. For
example, the pdflatex
executables each combine LaTeX with an enhanced
TeX engine. Indeed, most (if not all) of the development of
ConTeXt is now using LuaTeX.
Some executables combine the features of multiple enhanced TeX
engines: for example, pdftex
now (in current distributions)
offers both PDFTeX and e-TeX extensions into a single executable
This executable may be offered with a LaTeX format (as
) or with a Plain TeX format
remains with an unadorned
TeX executable using Plain TeX, for people such as Knuth himself,
who want the certainty of the “original”.)
A TeX distribution
provides a structured collection of
TeX-related software. Generally, a TeX distribution includes a
set of “core” TeX executables such as tex
; 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. MiKTeX is also available as the
basis of the ProTeXt bundle, distributed on the TeX Live
DVD mailing, as well as being available online.
Some TeX distributions target a specific operating system and/or
processor architecture; others run on multiple platforms. Many TeX
distributions are free; a few require payment. See
(La)TeX for different machines
list of free and shareware TeX distributions and
Commercial TeX implementations
list of commercial TeX distributions.
What does it all mean? — the simple lists of objects, alone, offer
no help for the beginner. The FAQ team expects this answer
only to be of use for people who are seeking guidance elsewhere
(possibly within these FAQs) and coming across an unexpected
name like “blahTeX”.
The subject matter covered by this answer is also addressed in a page
on the TUG site,
“the Levels of TeX
This is FAQ version 3.28, released on 2014-06-10.