Est. 1994 Intermediate

LaTeX2e

The 1994 unification of LaTeX into a single, maintained macro package atop TeX, and the de facto standard for typesetting scientific and mathematical documents.

Created by LaTeX3 Project Team (led by Frank Mittelbach, Chris Rowley, Rainer Schöpf)

Paradigm Markup, Macro-based, Declarative
Typing Untyped (macro expansion)
First Appeared 1994
Latest Version Rolling releases by the LaTeX Project (e.g., 2024 release)

Overview

LaTeX2e is the long-running, actively maintained version of LaTeX — itself a large macro package built on top of Donald Knuth’s TeX typesetting system. Released on June 1, 1994 by the LaTeX3 Project team, LaTeX2e replaced a tangle of incompatible LaTeX 2.09 variants with a single, coordinated codebase, and it has remained the standard version of LaTeX ever since. When people today say “I wrote it in LaTeX,” they almost always mean LaTeX2e.

LaTeX is a markup language for document preparation rather than a general-purpose programming language. An author writes plain text interspersed with commands like \section{Introduction}, \cite{knuth1984}, and \begin{equation} E = mc^2 \end{equation}, and a TeX engine — pdflatex, xelatex, lualatex, or the original latex driving DVI output — turns that source into a precisely typeset document, typically a PDF. The language’s central promise is that the author describes the structure of the document while LaTeX, and the underlying TeX algorithms, handle the typography.

History and Origins

TeX was created by Donald Knuth in the late 1970s and stabilized around 1982 as a system for high-quality mathematical typesetting. TeX is powerful but low-level: it offers boxes, glue, fonts, and a macro language, leaving structural concepts like sections and bibliographies to be built on top.

LaTeX, originally written by Leslie Lamport in the early 1980s and released in 1984, supplied exactly that higher-level layer. It introduced document classes (article, report, book), environments, cross-references, and a consistent style for math, lists, and floats. By the late 1980s LaTeX 2.09 had become widespread in scientific publishing — and had also fragmented: regional variants, conflicting font setups, and competing patches made portability between sites a recurring headache.

In 1989, Frank Mittelbach and Chris Rowley initiated the LaTeX3 project to chart a long-term successor. As an intermediate step the project produced LaTeX2e (“LaTeX two e”), released on June 1, 1994, which folded the most important LaTeX 2.09 extensions — most notably the New Font Selection Scheme (NFSS) for handling fonts cleanly — back into a single, maintained core. LaTeX2e was always presented as a transitional release, but in practice it has remained the working version of LaTeX for more than three decades while LaTeX3 components are developed and gradually integrated into the same kernel.

Design Philosophy

LaTeX2e’s design rests on a few persistent ideas:

  • Logical markup over visual markup. Authors mark up what a piece of text is (a section title, a citation, an equation) and let the document class decide how it looks. Switching from an article class to a publisher’s class re-typesets the same source in a different style.
  • TeX does the hard typesetting. LaTeX delegates line breaking, hyphenation, math layout, and page assembly to TeX itself, inheriting Knuth’s algorithms for justified text and mathematical formulas.
  • Class and package architecture. A \documentclass{...} defines the overall look; \usepackage{...} loads add-on macro packages from a vast ecosystem (CTAN currently distributes several thousand packages).
  • Stability as a feature. Existing documents are expected to keep compiling unchanged for decades. The LaTeX Project explicitly treats backward compatibility as a primary constraint, which is why deep architectural changes are reserved for LaTeX3 components introduced carefully through expl3.

Key Features

  • Document classes (article, report, book, letter, and publisher-specific classes such as IEEEtran, elsarticle, llncs, acmart) that fix overall layout and metadata conventions.
  • Mathematical typesetting that remains the gold standard for equations, matrices, alignments, and theorem-like environments, especially when extended with the AMS-LaTeX packages (amsmath, amssymb, amsthm).
  • Cross-references, bibliographies, and indexes generated from the source via auxiliary tools such as BibTeX and Biber with biblatex, and packages like hyperref for clickable links in PDFs.
  • Floats, tables, and figures with automatic placement, captioning, and listing.
  • Graphics and color through graphicx, xcolor, and the tikz/pgf ecosystem, which has made LaTeX a popular tool for high-quality vector diagrams.
  • Extensive package ecosystem distributed through CTAN and bundled in TeX distributions such as TeX Live and MiKTeX.
  • Multiple engines. The same LaTeX2e source can typically be compiled with pdflatex (8-bit, PDF output), xelatex (native Unicode and system fonts), or lualatex (Unicode plus an embedded Lua scripting language).

Evolution

After 1994 the LaTeX2e kernel was kept deliberately stable, with periodic maintenance releases by the LaTeX Project Team. Most innovation happened in packages: hyperref, geometry, microtype, tikz, biblatex, fontspec, and many others reshaped what LaTeX2e documents look like without changing the kernel.

In parallel, the LaTeX3 project evolved from a planned successor system into a programming layer — expl3 — that runs inside LaTeX2e. Since the mid-2010s, expl3 has been loaded by default, which means modern packages can be written in the L3 syntax while end users continue to write ordinary LaTeX2e in their documents. Over the past decade the kernel has also absorbed substantive new infrastructure: UTF-8 as the default input encoding, a documented hooks system for package authors, and ongoing work on tagged PDF output for accessibility.

New engines have broadened what LaTeX2e can target. pdfTeX made PDF the default output. XeTeX and LuaTeX, both with corresponding XeLaTeX and LuaLaTeX formats, brought native Unicode handling, OpenType fonts, and (in LuaTeX’s case) a scripting language usable inside the document.

Current Relevance

LaTeX2e remains the standard for typesetting in mathematics, theoretical computer science, physics, and substantial parts of engineering, statistics, and economics. arXiv preprints, journal articles, conference proceedings, theses, and a large share of mathematical books are written in LaTeX2e. Tools like Overleaf have lowered the barrier to entry by providing a browser-based editor and compiler, while distributions such as TeX Live and MiKTeX keep local installations current.

Outside of math-heavy fields, LaTeX2e competes with Markdown-based toolchains, Word, and modern typesetting systems such as Typst. Even there, LaTeX2e is often the implementation underneath, generating final PDFs from Markdown sources via Pandoc or similar pipelines.

Why It Matters

LaTeX2e is one of the most successful examples in computing of a system that has stayed quietly indispensable for decades. It cemented the idea that authors should mark up structure and let software handle typography, it preserved Knuth’s high-quality typesetting at a time when desktop publishing was being pulled toward WYSIWYG, and it provided the scientific community with a portable, vendor-neutral source format whose documents from the 1990s still compile today. The fact that “LaTeX” in everyday usage continues to mean LaTeX2e, more than thirty years after its release, is itself a testament to how thoroughly it solved the problem it set out to solve.

Timeline

1984
Leslie Lamport releases LaTeX, a set of macros on top of Donald Knuth's TeX, providing higher-level structural commands for document preparation.
1985
LaTeX 2.09 released, the version that became dominant in the late 1980s and that LaTeX2e would later replace.
1989
Frank Mittelbach and Chris Rowley begin organizing the LaTeX3 project to consolidate the proliferation of incompatible LaTeX 2.09 variants and plan a long-term successor.
1994
LaTeX2e released on June 1, unifying the LaTeX 2.09 codebase with extensions such as NFSS for font selection and providing a single, maintained core.
2004
LaTeX2e stabilized as the de facto standard; the LaTeX Project continues incremental maintenance while developing LaTeX3 components in parallel.
2015
Around this time the expl3 programming layer from the LaTeX3 project began being loaded by default in LaTeX2e, allowing modern package code to use the L3 syntax without an explicit load step.
2018
LaTeX2e changes its default input encoding to UTF-8, replacing the long-standing default that required explicit inputenc configuration.
2020
A general hooks management system (ltcmdhooks / ltfilehook) is added to the kernel, giving package authors a sanctioned way to inject code at well-defined points.
2023
Tagged PDF support (for accessibility and PDF/UA) is available as an experimental feature in the LaTeX2e kernel as part of the multi-year LaTeX Tagged PDF project.

Notable Uses & Legacy

arXiv

The preprint server accepts and processes LaTeX source for the majority of submissions in physics, mathematics, and computer science, generating PDFs from author-supplied .tex files.

Academic journals and publishers

Elsevier, Springer (including LNCS), the American Mathematical Society, IEEE, and ACM all distribute LaTeX2e document classes that authors use to prepare camera-ready manuscripts.

Mathematics and theoretical computer science

Books, theses, and lecture notes in math-heavy fields are routinely written in LaTeX2e because of its mature mathematical typesetting, cross-referencing, and bibliography support.

Overleaf

A widely used browser-based collaborative editor that compiles LaTeX2e documents in the cloud, used by universities and research groups for joint authoring.

Technical books

Many computer-science and engineering textbooks, including titles from publishers such as Springer and Cambridge University Press, are typeset using LaTeX2e document classes.

Language Influence

Influenced By

TeX LaTeX 2.09 Scribe

Influenced

AMSLaTeX LaTeX3 / expl3 XeLaTeX LuaLaTeX

Running Today

Run examples using the official Docker image:

docker pull texlive/texlive:latest

Example usage:

docker run --rm -v $(pwd):/work -w /work texlive/texlive:latest pdflatex document.tex
Last updated: