TeX Live 2024 liefert noch immer einen Befehl namens amstex mit. Führt man ihn aus, lautet das Banner This is pdfTeX ... (preloaded format=amstex), gefolgt von AmS-TeX- Version 2.2, und es entsteht eine .dvi. Die dahinterliegende Datei amstex.tex trägt das Datum 4. Oktober 2001 – seit fast einem Vierteljahrhundert unangetastet. AMS-TeX ist das Makropaket, das der Mathematiker Michael Spivak für die American Mathematical Society auf plain TeX aufsetzte, eine Art, „TeX zu benutzen“, parallel zu LaTeX und von ihm getrennt. Direkt ruft es niemand mehr auf, doch sein Nachfahre läuft jedes Mal, wenn man \usepackage{amsmath} schreibt. Diese Seite prüft beide Hälften – die eingefrorene und die lebendige – anhand der tatsächlichen Dateien.
Was AMS-TeX ist: ein Makropaket auf plain TeX
AMS-TeX ist ein Makropaket auf Knuths plain TeX. Es ist weder Vorfahr noch Geschwister von Leslie Lamports LaTeX, sondern eine andere Sprechweise auf demselben Fundament. In den 1980er Jahren war klar, dass TeX Mathematik setzen kann; Autorinnen und Autoren aber mehrzeilige Ausrichtungen und kommutative Diagramme von Hand bauen zu lassen, war nicht realistisch. Spivak nahm sich der Sache an und goss die Hausregeln der AMS – Schriften, Abstände, Umgang mit Zeichen – in Makros. Das erklärende Handbuch heißt The Joy of TeX, und das Literaturverzeichnis von amsldoc.tex, das TeX Live mitliefert, führt es bis heute: Michael Spivak, The joy of TeX, 2nd revised ed., Amer. Math. Soc., Providence, RI, 1990.
Da es ein eigenes Format ist, sieht das Markup ganz anders aus als in LaTeX. Der Textkörper steht in \document … \enddocument statt in \documentclass … \begin{document}; Überschriften heißen \head; satzartige Aussagen \proclaim; und das gesamte Erscheinungsbild kommt über \documentstyle{amsppt}. Auch die mathematischen Alphabete tragen eigene Namen: Fraktur ist \frak, Tafelfett – die hohlen Versalien – ist \Bbb. Getragen wird das von AMSFonts, der von der AMS zusammengestellten Schriftensammlung, deren Schriftnamen eufm (Fraktur), msam und msbm (Zusatzzeichen) auf der LaTeX-Seite bis heute in Gebrauch sind.
amstex ist ein Format, keine Engine – innen steckt pdfTeX
Eine ausführbare Datei namens amstex gibt es nicht. In TeX Live 2024 ist sie ein Symlink auf pdftex, und Zeile 48 von fmtutil.cnf – amstex pdftex - -translate-file=cp227.tcx *amstex.ini – ist die Anweisung, das AMS-TeX-Format auf pdfTeX zu erzeugen. Derselbe Kniff gilt für latex, pdflatex, csplain und etex, allesamt ebenfalls Symlinks auf pdftex; hier liegt die Grundstruktur von TeX offen zutage – eine Engine, viele Formate. Amüsant ist die Ausgabe: Obwohl es auf pdfTeX läuft, erzeugt amstex DVI. Seine amstex.ini schaltet die PDF-Ausgabe nie ein, sodass auch darin die 1990er Jahre unversehrt aufbewahrt sind.
$ ls -l /usr/local/texlive/2024/bin/universal-darwin/amstex
amstex -> pdftex
$ grep "^amstex" /usr/local/texlive/2024/texmf-dist/web2c/fmtutil.cnf
amstex pdftex - -translate-file=cp227.tcx *amstex.ini
$ amstex paper.tex
This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024) (preloaded format=amstex)
AmS-TeX- Version 2.2
(.../amstex/base/amsppt.sty version 2.2 (2001/08/07): ... )
Output written on paper.dvi (1 page, 1168 bytes).Die Trennung lässt sich als Fehlermeldung erleben. Gibt man ein LaTeX-Manuskript an amstex, scheitert es in Zeile eins mit ! Undefined control sequence. und darunter l.1 \documentclass – diesen Befehl kennt AMS-TeX nicht. Gibt man umgekehrt ein AMS-TeX-Manuskript an pdflatex, lösen \documentstyle, \topmatter, \endtitle und die übrigen jeweils ! Undefined control sequence. aus, und am Ende steht ! LaTeX Error: Missing \begin{document}. Dieses Fehlerpaar ist das Signal, dass Manuskript und Befehl nicht zusammenpassen.
Die Geschichte von amsmath – drei Generationen \frac
Was AMS-TeX erfand und amsmath erbte, bildet bis heute den Kern der Mathematik in LaTeX. Nichts zeigt das schärfer als drei Generationen von \frac, die in TeX Live 2024 alle zugleich am Leben sind: Zeile 325 von amstex.tex enthält \def\frac#1#2{{#1\over#2}}; Zeile 12700 von latex.ltx enthält \DeclareRobustCommand\frac[2]{{\begingroup#1\endgroup\over#2}}; und Zeile 234 von amsmath.sty enthält \DeclareRobustCommand{\frac}[2]{{\begingroup#1\endgroup\@@over#2}}. Die schlichte AMS-TeX-Fassung ordnet LaTeX zu einer, die ihre Argumente einzäunt, und amsmath tauscht darin \over gegen das beiseitegelegte Primitiv \@@over. In dem Moment, in dem \usepackage{amsmath} dasteht, wird das eigene \frac zur dritten Generation.
% amstex.tex:325 (AMS-TeX 2.2, 2001)
\def\frac#1#2{{#1\over#2}}
% latex.ltx:12700 (the LaTeX kernel)
\DeclareRobustCommand\frac[2]{{\begingroup#1\endgroup\over#2}}
% amsmath.sty:234 (v2.17o, 2023/05/13 in TeX Live 2024)
\DeclareRobustCommand{\frac}[2]{{\begingroup#1\endgroup\@@over#2}}\frac ist die Spitze des Eisbergs. Öffnet man amstex.tex und zählt die Befehlsnamen, begegnet man fortwährend Dingen, die in LaTeX selbstverständlich sind: \dfrac, \tfrac, \binom, \text, \align, \gather, \multline, \cases, \matrix, \pmatrix, \smallmatrix, \boxed, \operatorname, \intertext, \hdotsfor, \sideset. Keines davon existiert in plain.tex oder in latex.ltx. Ein Großteil der Redewendungen des mathematischen Schreibens in TeX stammt also weder von Knuth noch von Lamport, sondern von AMS-TeX. Die Umgebung align gibt es in LaTeX, weil Spivak \def\align schrieb.
% AMS-TeX (legacy: processed with the amstex format)
\align
(a+b)^2 &= a^2 + 2ab + b^2 \\
(a-b)^2 &= a^2 - 2ab + b^2
\endalign
% the same thing in modern LaTeX
\usepackage{amsmath}
\begin{align}
(a+b)^2 &= a^2 + 2ab + b^2 \\
(a-b)^2 &= a^2 - 2ab + b^2
\end{align}Die Portierung 1988–1994: Sechs Jahre lang hieß das Paket amstex
Der Hergang der Portierung überdauert in den Worten der Beteiligten selbst, im Abschnitt „Credits“ von amsmath.dtx, den TeX Live mitliefert. Ein Großteil des Codes von amsmath, heißt es dort, entstammt Michael Spivaks amstex.tex; die erste Arbeit, ihn als LaTeX-Paket amstex.sty zu portieren, leisteten 1988–1989 Frank Mittelbach und Rainer Schöpf. 1994 fügte David M. Jones die Unterstützung der Option fleqn hinzu und verbesserte die align-Umgebungsfamilie sowie die Gleichungsnummerierung erheblich, während Michael Downes bei der AMS die Arbeit aller drei koordinierte. Der letzte Satz ist der aufschlussreiche: Die Versionen 1.0 und 1.1 des Pakets hießen amstex, nicht amsmath – umbenannt wurde es 1994, nach der Formulierung des Dokuments, um den Namen an den Nutzenden statt an der Geschichte auszurichten.
Die so entstandene Familie heißt zusammenfassend AMS-LaTeX: die Pakete amsmath, amssymb, amsthm und amscd samt den AMS-Dokumentklassen amsart (Aufsätze), amsbook (Bücher) und amsproc (Tagungsbände). Die Zeichen wurden in derselben Bewegung übertragen: amssymb zieht intern amsfonts herein, und aus AMS-TeX’ \Bbb wurde \mathbb (aus der Schrift msbm), aus \frak wurde \mathfrak (aus der Schrift eufm). Geändert haben sich nur die Namen; die Zeichenformen sind dieselben.
| Bestandteil | Was es ist und tut | Fassung in TeX Live 2024 |
|---|---|---|
amstex.tex | AMS-TeX selbst: die Makrosammlung auf plain TeX | Version 2.2, datiert 2001/10/04 |
amsppt.sty | Der Hausstil von AMS-TeX; \head, \proclaim, \topmatter stehen hier | version 2.2 (2001/08/07) |
amsmath | Das Kernpaket für Mathematik: align, gather, cases und weitere | v2.17o (2023/05/13); gemeinsam vom LaTeX Project und der AMS gepflegt |
amssymb | Zusatzzeichen und mathematische Alphabete; lädt intern amsfonts | \mathbb stammt aus msbm, \mathfrak aus eufm |
amsthm | Theorem- und Beweisumgebungen; proof und ein erweitertes \newtheorem | Nachfolger von \proclaim aus AMS-TeX |
amscd | Umgebung für kommutative Diagramme (nur waagerechte und senkrechte Pfeile) | für diagonale Pfeile zu tikz-cd wechseln |
amsart / amsbook / amsproc | Die AMS-Dokumentklassen (Aufsatz, Buch, Tagungsband) | amsart ist v2.20.6 (2020/05/29) |
Das Jahr, in dem AMS-TeX als „nicht freie Software“ galt
AMS-TeX gelangte aus einem Lizenzgrund zu Version 2.2, nicht aus einem technischen. Das mitgelieferte Änderungsprotokoll amstex.bug verzeichnet unter „Changes released July 2001“ die Bitte, den Copyright-Hinweis samt Nutzungsbeschränkung zu entfernen, der bei jedem einzelnen Lauf auf Terminal und ins Log gedruckt wurde. Als Grund steht dort, diese Beschränkung habe AMS-TeX für die Zwecke von TeX Live zu „not free software“ gemacht. Danach: Changed: Version 2.2 (August 2001). Dass das Banner beim heutigen Aufruf von amstex so wortkarg ist, liegt also daran, dass 2001 gut ein Dutzend Zeilen herausgeschnitten wurden. Solche Episoden sind in der Softwaregeschichte nicht selten; selten ist, dass die betroffene Datei seither unverändert ausgeliefert wird.
Wie man heute neue mathematische Dokumente schreibt
Es gibt keinen Grund mehr, den Befehl amstex zu starten. Neue Berichte, Vorlesungsnotizen und Arbeiten beginnt man als LaTeX-Dokument und lädt die benötigten AMS-LaTeX-Pakete: amsmath für ausgerichtete Formeln, amssymb für Zusatzzeichen wie Tafelfett, amsthm für Sätze, Lemmata und Beweise. Für eine AMS-Zeitschrift oder ein AMS-Buch kommt amsart oder amsbook als Klasse hinzu. Was AMS-TeX zu lehren hat, ist keine Liste alter Befehle, sondern die Haltung, mathematische Struktur nach ihrer Bedeutung auszuzeichnen. Die Wahl zwischen align, gather und multline betrifft nicht das Aussehen; sie unterscheidet „das soll am Gleichheitszeichen fluchten“, „das gehört bloß zusammen“ und „diese eine Formel ist zu lang für eine Zeile“.
\documentclass{article}
\usepackage{amsmath,amssymb,amsthm}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}
For all real $a$ and $b$ and every $z \in \mathbb{C}$,
\begin{align}
(a+b)^2 &= a^2 + 2ab + b^2, \\
\operatorname{Re}(z) &= \tfrac{1}{2}\left(z + \bar{z}\right).
\end{align}
\end{theorem}
\begin{proof}
Expand and collect terms.
\end{proof}
\end{document}- Der Textkörper beginnt mit
\begin{document}, nicht mit\document, und die Klasse wird mit\documentclass{...}deklariert, nicht mit\documentstyle{amsppt}. - Überschriften sind
\sectionund Verwandte, nicht\head … \endhead; Nummerierung und Inhaltsverzeichnis kommen gratis mit. - Sätze nicht von Hand mit
\proclaimbauen, sondern mit\newtheoremausamsthmdeklarieren, das gleich ein Nummerierungsschema mitbringt. Die Umgebungproofsetzt sogar das Beweisendezeichen. - Tafelfett heißt
\mathbb, nicht\Bbb; Fraktur heißt\mathfrak, nicht\frak.amssymbliefert beides. - Für kommutative Diagramme reicht oft
amscd; sobald diagonale oder gebogene Pfeile nötig sind, wechselt man zutikz-cd.
Wenn ein AMS-TeX-Manuskript auf dem Tisch landet
Die erste Aufgabe ist nicht das Umschreiben, sondern ein PDF zu sichern, das sich reproduzieren lässt. Taucht aus alten Vorlesungsunterlagen oder einem Verlagsarchiv ein Manuskript mit \document, \enddocument und \documentstyle{amsppt} auf, probiert man zuerst amstex oldfile.tex unverändert. Darin liegt der Hauptgrund, warum amstex noch in TeX Live 2024 steckt: Es hat echten Wert, dass ein zwanzig Jahre altes Manuskript weiterhin genau so gesetzt wird wie damals. Ist dieses Referenz-PDF vorhanden, wandert man abschnittsweise zu LaTeX plus amsmath und vergleicht dabei laufend. Gleichungsnummern, Zeilenumbrüche und Satzzähler verschieben sich bei einer Migration zuerst; genau darauf ist zu achten.
Am Ende nimmt AMS-TeX eine ungewöhnliche Stellung ein: eingefroren, aber nicht tot. Die Dateien stehen seit 2001 still, das Format wird weiterhin erzeugt, alte Manuskripte übersetzen noch immer. Die Arbeit ist unterdessen zu amsmath gewandert, das das LaTeX Project und die AMS gemeinsam pflegen und weiterhin aktualisieren – die Fassung in TeX Live 2024 ist v2.17o vom 2023/05/13. Der Kopf von amsmath.sty trägt zwei Zeilen nebeneinander, Copyright (C) 1995, 1999, 2000, 2013 American Mathematical Society. und Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society., sodass das Datum der Übergabe selbst der Copyright-Vermerk ist. Wenn \usepackage{amsmath} dasteht, läuft Spivaks Syntax; aktuell hält sie jemand anderes.