History & license

TeX’s version number is currently 3.141592653, and the next bug fix will add one more digit to the end. It is converging on π — a number it will never reach. This page picks up where the origin story leaves off: what happened after Knuth finished TeX. The freeze, the handover of LaTeX to the people who maintain it today, and what the LPPL licence actually requires. LaTeX is free, including for commercial work; but the shape of that freedom is not quite the GPL’s and not quite MIT’s, and the reason for the difference is the interesting part.

Why TeX’s version number converges to π

Because in 1990, in a TUGboat piece titled “The Future of TeX and METAFONT,” Knuth announced that he would stop developing TeX and from then on only fix reported bugs. At the same time he fixed the convention: every correction appends one more digit to the number. So 3.14 → 3.141 → 3.1415 creeps ever closer to π and, by construction, never arrives. The version number is itself a statement — this is a product that only asymptotes towards completion. And the fact that it has gained so few digits in more than thirty years is, in itself, a measure of how stable the thing is.

shell
# measured on a TeX Live 2024 install
$ tex --version | head -1
TeX 3.141592653 (TeX Live 2024)

$ pdftex --version | head -1
pdfTeX 3.141592653-2.6-1.40.26 (TeX Live 2024)

What is telling is that the successor engines carry the number forward rather than discarding it. The pdfTeX 3.141592653-2.6-1.40.26 above reads as “Knuth’s frozen TeX 3.141592653, with pdfTeX’s own 1.40.26 layered on top.” Refusing to overwrite the base number is itself an oath: the TeX inside is untouched. Knuth has written that at his death the number will be set to π and frozen forever — in his own words, the “absolutely final change (to be made after my death).” Any bugs still present at that moment will not be fixed; they will be promoted to features. Its sibling METAFONT follows the same conceit, converging instead on e.

How serious that commitment is can be read off the bounties Knuth paid. Anyone who found a bug in the TeX or METAFONT code received a reward that started at $2.56 — one hexadecimal dollar — and doubled every year until it capped out at $327.68. He built a system in which finding bugs got steadily more lucrative, and the reports still dried up. Only that degree of rigour keeps a manuscript from decades ago compiling unchanged today, and it is why TeX gets called a fixed point in the history of computer typesetting.

So what exactly is it that gets frozen? Between 1984 and 1986 Knuth published Computers & Typesetting in five volumes: A is the user’s guide, The TeXbook; B is TeX: The Program, the source code of TeX itself, typeset as a book; C and D are the corresponding pair for METAFONT, his type-design program; and E is Computer Modern Typefaces, the design of the Computer Modern family. The idea of publishing a program’s source as a book lives here, and it is why “freezing” is not a metaphor. Even the bug reviews are scheduled decades apart: after a commemorative edition in 2021, the next are set for 2028, then 2037, then 2047.

Who maintains LaTeX now

A small team known as the LaTeX Project. LaTeX itself was written by Leslie Lamport, but in 1989 responsibility for maintaining and developing it passed to Frank Mittelbach, and the team he formed with Chris Rowley and Rainer Schöpf shipped LaTeX 2ε in 1994. “LaTeX” today means that 2ε; the earlier LaTeX 2.09 is a historical artefact. The legal.txt file shipped in a TeX Live tree still lists Lamport, Mittelbach, Rowley, Schöpf, David Carlisle and others as the copyright holders — the lineage is written down in the distribution itself.

LaTeX3, long talked about as a separate next-generation format, never arrived as a product. Instead its programming layer, expl3, was folded into LaTeX 2ε, and the kernel now loads it at start-up. That is why running pdflatex prints two banner lines at the top of the log: the version of the format itself, and the version of the L3 programming layer. LaTeX 2ε now ships as dated releases on 1 June and 1 November each year, with the date serving as the version name.

log
% the two banner lines a TeX Live 2024 run prints
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-02-20>

Two releases a year might sound like a threat to old sources, but the design points the other way. The kernel ships a rollback mechanism called latexrelease: write \RequirePackage[2020-02-02]{latexrelease} and the kernel reproduces its behaviour as of that date. It is a deliberate escape hatch for papers that spend years in review and for a thesis you may need to recompile a decade from now. TeX is frozen; LaTeX keeps moving but can replay its own past. The division of labour is explicit.

What it takes to call something “TeX”

Knuth’s licence comes down to one point: modify it freely, but do not call the result TeX. The source file tex.web says so itself — if this program is changed, the resulting system should not be called TeX. Only an implementation that passes the TRIP test, a deliberately vicious torture test that checks output character by character against a reference, has earned the name. The invention here is that the word “TeX” is not a product name at all: it functions as a compatibility certificate.

The rule is visible in the wild, in Japanese TeX. The Japanese-capable engine built at ASCII is called pTeX, and its Unicode successor upTeX; neither calls itself “TeX.” They changed TeX, so they changed the name — the rule became the product name. As for the trademark, “TeX” in the United States is held by the American Mathematical Society, filed in 1984. It is held defensively, to stop an unrelated party from registering it, so there is no need to put a “TeX is a trademark of…” notice in your document.

What the LPPL actually requires

The core demand of the LPPL (LaTeX Project Public License) is that a modified version announce itself as modified. It is often described as a licence that forces you to rename the file, and for the current version that is not accurate. The copy shipped in a TeX Live tree, texmf-dist/doc/latex/base/lppl.txt, is LPPL 1.3c (2008-05-04), and its clause 6a requires that a replacement component, when used interactively, identify itself clearly and unambiguously as a modified version. It says nothing about the filename as such. Nor is it a copyleft that forces you to publish source, as the GPL does. What it protects is a reader’s trust: that a thing labelled article.cls is the real article.cls.

So where does “rename the file” come from? From an older version, where it really was written down. In the same doc/latex/base/ directory sits lppl-1-2.txt, whose condition 3 states plainly that you must not distribute the modified file under the original filename. That clause drew a long argument about whether the licence was free software at all, and in 2003 it led Debian to reconsider how it carried LaTeX. LPPL 1.3 relaxed the constraint, moving the requirement from “change the name” to “declare yourself modified.” Renaming remains the recommended way to satisfy it, which is why CTAN is full of derivative packages with oddly twisted names.

ClauseWhat it requiresHow to satisfy it
LPPL 1.3c 2Distributing a complete, unmodified copy is always allowedNothing to do
LPPL 1.3c 6aA replacement component must clearly identify itself as modifiedSay so in the \ProvidesClass version string
LPPL 1.3c 6bProminent notice of the nature of the changesA header comment or a CHANGES file with the log
LPPL 1.3c 6cMust not imply the original authors support your versionReplace contact and bug-report addresses with your own
LPPL 1.3c 6dShip the original too, or say how to obtain itA link to the CTAN page in the README is enough
LPPL 1.2 3Must not distribute a modified file under the original name (old)Dropped in 1.3; renaming is still recommended

When you want to hand out a modified class file

For someone who only writes documents, the licence has almost no practical bearing. Producing, submitting, selling, or publishing a PDF made with LaTeX needs no extra permission. The licence only shows up at the moment you redistribute a .cls or .sty — fixing the lab template and passing it to the next student, tweaking a conference class and sending it to a co-author. At that moment there are three things to do: give it its own name, record that you changed it, and point at where the original came from. Those three cover almost all of LPPL clause 6.

latex
% labthesis.cls -- derived from thesis.cls, distributed under the LPPL
% Changes are logged in CHANGES; the original is on CTAN.
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{labthesis}[2026/04/01 v1.2 local fork of thesis.cls]
\LoadClass[a4paper]{article}
  • Keep the upstream file and distribute yours under a distinct name such as labthesis.cls. Not overwriting is the whole point.
  • Note the fork in the \ProvidesClass version string; the line then appears in the log and clause 6a is satisfied as a side effect.
  • When you submit a source bundle, include the licence text alongside any modified .sty or .cls. Most submission systems archive whatever you upload, verbatim.
  • Copyright in your prose and figures has nothing to do with the TeX licence; it is set by your venue, publisher, or institution. Do not conflate the two.

One note on the Japanese side: the pLaTeX and upLaTeX macro sets are not under the LPPL but under a BSD licence. The head of plcore.ltx on a local install carries two lines — “Copyright (c) 2010 ASCII MEDIA WORKS” and “Copyright (c) 2016-2020 Japanese TeX Development Community” — so the handover from ASCII to the Japanese TeX Development Community is recorded inside the file itself. jlreq.cls is likewise BSD, 2-clause. Working in a Japanese setup therefore means LPPL and BSD side by side, and the minimum obligation is to keep the copyright notices intact.