UK TeX FAQ -- question label texthings

### 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