TeX, pdfTeX, XeTeX, LuaTeX, LaTeX, pdfLaTeX, XeLaTeX, LuaLaTeX Explained
This article is a TL;DR version of What's in a Name: A Guide to the Many Flavours of TeX if you want to find a quick understanding of them. I highly recommend reading the original article for more details.
TeX is the original typesetting system (program/engine that handles typesetting problems, including: automatic line breaking, hyphenation and mathematical typesetting) written by Donald Knuth that dates back to 1970s. Currently, it is under maintenance mode and does not accept new features (only bug fixes, a decision made by Knuth in the 1980s). The output of TeX is DVI (DeVice Independent format).
Softwares derived from TeX to support new features (new output formats, font types and Unicode) receive names by adding a prefix to the word "TeX", such as:
- pdfTeX: provides the ability to output directly to PDF
- Developed by Hàn Thế Thành, first release date is August 2001
- XeTeX: introduces the ability to directly read TeX files saved in UTF-8 encoding, adds sophisticated handling of multilingual typesetting
- Developed by Jonathan Kew, first release date is April 2004
- LuaTex: arguably the most powerful and versatile of all the TeX engines, LuaTeX is derived from pdfTeX
- Adds Lua scripting language support
- Also supports UTF-8 text encoding
- Developed by a team that includes Hans Hagen, Taco Hoekwater, Luigi Scarso and others, development work started around 2006 with numerous beta releases culminating in a version 1.0 release in September 2016. It is still undergoing very active development.
These three are all TeX engines.
LaTeX is not another derivation from TeX (i.e., not an typeset engine like pdfTeX), it is a large collection of so-called TeX macros (combining engine's primitives or existing macros). It is designed to be extensible: you can plug-in additional, specialist, macro packages. LaTeX is written by Leslie Lamport in the mid-1980s. LaTeX macro package is still actively developed like TeX engines.
Typesetting with LaTeX means using LaTeX macro package with a particular TeX engine:
- pdfLaTeX means using the LaTeX macro package with the pdfTeX engine
- XeLaTeX means using the LaTeX macro package with the XeTeX engine
- LuaLaTeX means using the LaTeX macro package with the LuaTeX engine
These are not TeX engines, all they signify is which TeX engine is being used to run the LaTeX macro collection.
Installation
TeX Live is the TeX distribution maintained by members of the TeX community, which is released yearly. It contains all the above mentioned TeX engines with other TeX-related tools, fonts and specialist LaTeX packages.
TeX Live provides commands:
- tex, latex
- pdftex, pdflatex
- luatex, lualatex