Geschichte und Lizenz

Die Versionsnummer von TeX lautet derzeit 3.141592653, und die nächste Fehlerkorrektur hängt eine weitere Ziffer an. Sie konvergiert gegen die Kreiszahl π – eine Zahl, die sie nie erreichen wird. Diese Seite setzt dort an, wo die Entstehungsgeschichte endet: bei dem, was geschah, nachdem Knuth TeX fertiggestellt hatte. Das Einfrieren, die Übergabe von LaTeX an die heutigen Betreuer und die Frage, was die LPPL-Lizenz tatsächlich verlangt. LaTeX ist kostenlos, auch für kommerzielle Arbeit; die Gestalt dieser Freiheit gleicht jedoch weder ganz der GPL noch ganz MIT, und der Grund für diesen Unterschied ist das Spannendste daran.

Warum die Versionsnummer von TeX gegen π konvergiert

Weil Knuth 1990 im TUGboat-Beitrag „The Future of TeX and METAFONT“ ankündigte, die Entwicklung von TeX einzustellen und fortan nur noch gemeldete Fehler zu beheben. Zugleich legte er die Regel fest: Jede Korrektur hängt der Zahl eine weitere Ziffer an. So kriecht 3.14 → 3.141 → 3.1415 immer näher an π heran und kommt konstruktionsbedingt nie an. Die Versionsnummer ist damit selbst eine Aussage – hier liegt ein Werk vor, das sich der Vollendung nur asymptotisch nähert. Und dass sie in über dreißig Jahren nur wenige Ziffern hinzugewonnen hat, ist für sich genommen ein Maß für die Stabilität des Systems.

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)

Aufschlussreich ist, dass die Nachfolge-Engines diese Nummer nicht verwerfen, sondern weitertragen. Das obige pdfTeX 3.141592653-2.6-1.40.26 liest sich als „Knuths eingefrorenes TeX 3.141592653, darüber pdfTeX’ eigenes 1.40.26“. Die Weigerung, die Basiszahl zu überschreiben, ist selbst ein Schwur: Das TeX darin ist unangetastet. Knuth hat festgehalten, dass die Nummer mit seinem Tod auf π gesetzt und für immer eingefroren wird – in seinen Worten die „absolut letzte Änderung (nach meinem Tod vorzunehmen)“. Fehler, die dann noch vorhanden sind, werden nicht behoben, sondern zu Features erhoben. Das Schwesterprogramm METAFONT folgt derselben Idee und strebt stattdessen gegen e.

Wie ernst es ihm damit war, lässt sich an den Prämien ablesen, die Knuth zahlte. Wer im Code von TeX oder METAFONT einen Fehler fand, erhielt eine Belohnung, die bei 2,56 Dollar begann – einem hexadezimalen Dollar – und sich jedes Jahr verdoppelte, bis sie bei 327,68 Dollar gedeckelt war. Er schuf ein System, in dem das Finden von Fehlern stetig lukrativer wurde, und dennoch versiegten die Meldungen. Erst diese Strenge sorgt dafür, dass ein jahrzehntealtes Manuskript heute unverändert durchläuft, und deshalb gilt TeX als Fixpunkt in der Geschichte des Computersatzes.

Was genau wird also eingefroren? Zwischen 1984 und 1986 veröffentlichte Knuth Computers & Typesetting in fünf Bänden: A ist das Handbuch The TeXbook; B ist TeX: The Program, der Quelltext von TeX selbst, als Buch gesetzt; C und D bilden das entsprechende Paar für METAFONT, sein Programm zum Schriftentwurf; und E ist Computer Modern Typefaces, der Entwurf der Familie Computer Modern. Hier steckt der Gedanke, den Quelltext eines Programms als Buch zu veröffentlichen, und deshalb ist „einfrieren“ keine Metapher. Selbst die Fehlerdurchsichten sind Jahrzehnte auseinander angesetzt: Nach einer Jubiläumsausgabe 2021 folgen sie 2028, dann 2037, dann 2047.

Wer LaTeX heute betreut

Ein kleines Team, das sich LaTeX Project nennt. LaTeX selbst stammt von Leslie Lamport, doch 1989 ging die Verantwortung für Pflege und Weiterentwicklung an Frank Mittelbach über; das Team, das er mit Chris Rowley und Rainer Schöpf bildete, veröffentlichte 1994 LaTeX 2ε. „LaTeX“ meint heute eben dieses 2ε, das ältere LaTeX 2.09 ist historisch. Die Datei legal.txt in einem TeX-Live-Baum führt bis heute Lamport, Mittelbach, Rowley, Schöpf, David Carlisle und weitere als Rechteinhaber auf – die Ahnenreihe steht in der Distribution selbst geschrieben.

LaTeX3, lange als eigenständiges Format der nächsten Generation gehandelt, kam als Produkt nie zustande. Stattdessen wurde seine Programmierschicht expl3 in LaTeX 2ε hineingezogen; der Kernel lädt sie heute beim Start. Deshalb gibt ein Lauf von pdflatex oben im Protokoll zwei Bannerzeilen aus: die Version des Formats selbst und die der L3-Programmierschicht. LaTeX 2ε erscheint inzwischen als datierte Ausgabe jeweils am 1. Juni und 1. November, wobei das Datum als Versionsname dient.

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

Zwei Ausgaben pro Jahr mögen wie eine Bedrohung für alte Quellen klingen, doch der Entwurf weist in die andere Richtung. Der Kernel bringt einen Rollback-Mechanismus namens latexrelease mit: Mit \RequirePackage[2020-02-02]{latexrelease} verhält sich der Kernel wieder so wie zu jenem Datum. Das ist eine bewusste Notluke für Aufsätze, die Jahre in der Begutachtung verbringen, und für eine Abschlussarbeit, die in zehn Jahren erneut übersetzt werden muss. TeX ist eingefroren, LaTeX bewegt sich weiter und kann doch seine eigene Vergangenheit abspielen – die Arbeitsteilung ist ausdrücklich.

Was nötig ist, um etwas „TeX“ zu nennen

Knuths Lizenz läuft auf einen einzigen Punkt hinaus: Ändern ist frei, aber das Ergebnis darf nicht TeX heißen. Die Quelldatei tex.web sagt es selbst – wird dieses Programm verändert, sollte das entstehende System nicht TeX genannt werden. Den Namen verdient nur eine Implementierung, die den TRIP-Test besteht, einen bewusst gemeinen Foltertest, der die Ausgabe zeichenweise gegen eine Referenz prüft. Die Erfindung dabei: Das Wort „TeX“ ist gar kein Produktname, es dient als Kompatibilitätszertifikat.

Wie sehr die Regel greift, zeigt das japanische TeX. Die bei ASCII gebaute japanfähige Engine heißt pTeX, ihr Unicode-Nachfolger upTeX; keine von beiden nennt sich „TeX“. Sie haben TeX verändert, also den Namen geändert – die Regel wurde zum Produktnamen. Die Marke „TeX“ hält in den Vereinigten Staaten die American Mathematical Society, angemeldet 1984. Sie wird defensiv gehalten, damit sie sich niemand Fremdes sichert; ein Hinweis „TeX ist eine Marke von …“ im eigenen Dokument ist deshalb nicht nötig.

Was die LPPL tatsächlich verlangt

Die Kernforderung der LPPL (LaTeX Project Public License) lautet: Eine veränderte Fassung muss sich als verändert zu erkennen geben. Oft heißt es, die LPPL zwinge zum Umbenennen der Datei; für die aktuelle Fassung stimmt das nicht. Die in einem TeX-Live-Baum mitgelieferte Datei texmf-dist/doc/latex/base/lppl.txt ist die LPPL 1.3c (2008-05-04), und deren Klausel 6a verlangt, dass sich eine Ersatzkomponente bei interaktiver Verwendung klar und unmissverständlich als veränderte Fassung ausweist. Vom Dateinamen als solchem ist keine Rede. Ein Copyleft, das zur Offenlegung des Quelltexts zwingt wie die GPL, ist sie ebenfalls nicht. Geschützt wird das Vertrauen der Nutzenden: dass etwas, worauf article.cls steht, auch die echte article.cls ist.

Woher stammt dann die Rede vom „Umbenennen“? Aus einer älteren Fassung, in der es tatsächlich so stand. Im selben Verzeichnis doc/latex/base/ liegt lppl-1-2.txt, deren Bedingung 3 unmissverständlich festhält, dass die veränderte Datei nicht unter dem ursprünglichen Dateinamen verbreitet werden darf. Diese Klausel löste einen langen Streit darüber aus, ob die Lizenz überhaupt frei sei, und führte 2003 dazu, dass Debian den Umgang mit LaTeX überdachte. Die LPPL 1.3 lockerte die Auflage und verschob die Forderung von „ändere den Namen“ zu „gib dich als verändert zu erkennen“. Das Umbenennen bleibt der empfohlene Weg, sie zu erfüllen – daher die vielen eigenwillig verdrehten Namen abgeleiteter Pakete auf CTAN.

KlauselWas sie verlangtWie man sie erfüllt
LPPL 1.3c 2Eine vollständige, unveränderte Kopie darf immer verbreitet werdenNichts zu tun
LPPL 1.3c 6aEine Ersatzkomponente muss sich klar als verändert ausweisenIn der Versionsangabe von \ProvidesClass vermerken
LPPL 1.3c 6bDeutlicher Hinweis auf Art der ÄnderungenKopfkommentar oder eine CHANGES-Datei mit dem Protokoll
LPPL 1.3c 6cDarf nicht nahelegen, die ursprünglichen Autoren unterstützten die eigene FassungKontakt- und Fehleradressen durch eigene ersetzen
LPPL 1.3c 6dDas Original mitliefern oder angeben, wie es zu beziehen istEin Verweis auf die CTAN-Seite im README genügt
LPPL 1.2 3Veränderte Datei nicht unter dem Originalnamen verbreiten (alt)In 1.3 gestrichen; Umbenennen bleibt empfohlen

Wenn eine geänderte Klassendatei weitergegeben werden soll

Wer nur Dokumente schreibt, wird von der Lizenz praktisch nicht berührt. Ein mit LaTeX erzeugtes PDF zu produzieren, einzureichen, zu verkaufen oder zu veröffentlichen, bedarf keiner zusätzlichen Erlaubnis. Die Lizenz meldet sich erst in dem Moment, in dem eine .cls oder .sty weiterverbreitet wird – die Institutsvorlage überarbeiten und weiterreichen, eine Konferenzklasse anpassen und an Mitautoren schicken. Dann sind drei Dinge zu tun: einen eigenen Namen vergeben, die Änderung dokumentieren und angeben, woher das Original stammt. Damit ist Klausel 6 der LPPL nahezu erfüllt.

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}
  • Die Originaldatei behalten und die eigene Fassung unter einem eigenen Namen wie labthesis.cls verbreiten. Nicht zu überschreiben ist der eigentliche Zweck.
  • Den Fork in der Versionsangabe von \ProvidesClass vermerken; die Zeile erscheint dann im Protokoll, und Klausel 6a ist nebenbei erfüllt.
  • Beim Einreichen eines Quellpakets den Lizenztext zusammen mit jeder geänderten .sty oder .cls beilegen. Die meisten Einreichungssysteme archivieren das Hochgeladene unverändert.
  • Das Urheberrecht an Text und Abbildungen hat mit der TeX-Lizenz nichts zu tun; es richtet sich nach Zeitschrift, Verlag oder Einrichtung. Beides nicht vermischen.

Eine Anmerkung zur japanischen Seite: Die Makrosammlungen von pLaTeX und upLaTeX stehen nicht unter der LPPL, sondern unter einer BSD-Lizenz. Der Kopf von plcore.ltx trägt in einer lokalen Installation zwei Zeilen – „Copyright (c) 2010 ASCII MEDIA WORKS“ und „Copyright (c) 2016-2020 Japanese TeX Development Community“ –, sodass die Übergabe von ASCII an die japanische TeX-Entwicklungsgemeinschaft in der Datei selbst festgehalten ist. jlreq.cls steht ebenfalls unter BSD, in der Zwei-Klausel-Fassung. In einer japanischen Umgebung liegen LPPL und BSD also nebeneinander, und die Mindestpflicht besteht darin, die Urheberrechtshinweise unangetastet zu lassen.