TeX Live 2024 livre encore une commande nommée amstex. Lancez-la : la bannière affiche This is pdfTeX ... (preloaded format=amstex) puis AmS-TeX- Version 2.2, et un .dvi apparaît. Le fichier qui se cache derrière, amstex.tex, est daté du 4 octobre 2001 — intact depuis près d'un quart de siècle. AMS-TeX est le jeu de macros que le mathématicien Michael Spivak a écrit par-dessus plain TeX pour l'American Mathematical Society, une manière « d'utiliser TeX » parallèle à LaTeX et distincte de lui. Plus personne ne l'invoque directement, et pourtant sa descendance tourne chaque fois que vous écrivez \usepackage{amsmath}. Cette page vérifie les deux moitiés — la gelée et la vivante — en ouvrant les fichiers eux-mêmes.
Ce qu’est AMS-TeX : un jeu de macros posé sur plain TeX
AMS-TeX est un jeu de macros posé sur le plain TeX de Knuth. Il n'est ni l'ancêtre ni le frère du LaTeX de Leslie Lamport, mais un autre idiome bâti sur le même socle. Dans les années 1980, on savait que TeX composait les mathématiques, mais demander aux auteurs de monter à la main des alignements sur plusieurs lignes et des diagrammes commutatifs n'était pas raisonnable. Spivak s'en est chargé, coulant en macros les règles maison de l'AMS — caractères, espacements, traitement des symboles. Le manuel qui l'explique s'intitule The Joy of TeX, et la bibliographie de amsldoc.tex, livré avec TeX Live, le cite encore : Michael Spivak, The joy of TeX, 2nd revised ed., Amer. Math. Soc., Providence, RI, 1990.
Comme il constitue son propre format, le balisage ne ressemble en rien à LaTeX. Le corps est enveloppé dans \document … \enddocument plutôt que dans \documentclass … \begin{document} ; les titres sont \head ; les énoncés de type théorème, \proclaim ; et toute l'apparence arrive par \documentstyle{amsppt}. Les alphabets mathématiques ont eux aussi leurs noms propres : la fracture est \frak, le gras de tableau — les capitales évidées — est \Bbb. Tout cela repose sur AMSFonts, la collection de fontes réunie par l'AMS, dont les noms eufm (fracture), msam et msbm (symboles supplémentaires) servent encore aujourd'hui du côté LaTeX.
amstex est un format, pas un moteur — dedans, c’est pdfTeX
Il n'existe aucun exécutable nommé amstex. Dans TeX Live 2024, c'est un lien symbolique vers pdftex, et la ligne 48 de fmtutil.cnf — amstex pdftex - -translate-file=cp227.tcx *amstex.ini — est l'instruction qui grave le format AMS-TeX par-dessus pdfTeX. Le même procédé vaut pour latex, pdflatex, csplain et etex, tous également liens vers pdftex ; la structure de base de TeX apparaît ici à nu — un moteur, plusieurs formats. Le plus amusant est la sortie : bien qu'il tourne sur pdfTeX, amstex produit du DVI. Son amstex.ini n'active jamais la sortie PDF ; à cet égard aussi, les années 1990 sont conservées telles quelles.
$ 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).Cette séparation se sent au travers des messages d'erreur. Confiez un manuscrit LaTeX à amstex : il échoue dès la ligne un sur ! Undefined control sequence. suivi de l.1 \documentclass — AMS-TeX ne connaît pas cette commande. À l'inverse, confiez un manuscrit AMS-TeX à pdflatex et \documentstyle, \topmatter, \endtitle et les autres déclenchent chacune ! Undefined control sequence., jusqu'au final ! LaTeX Error: Missing \begin{document}. Voir ce couple d'erreurs signale que le manuscrit et la commande ne correspondent pas.
L’histoire d’amsmath, racontée par trois générations de \frac
Ce qu'AMS-TeX a inventé et qu'amsmath a hérité forme encore le cœur des mathématiques en LaTeX. Rien ne le montre plus nettement que trois générations de \frac, toutes vivantes en même temps dans TeX Live 2024 : la ligne 325 d'amstex.tex porte \def\frac#1#2{{#1\over#2}} ; la ligne 12700 de latex.ltx porte \DeclareRobustCommand\frac[2]{{\begingroup#1\endgroup\over#2}} ; et la ligne 234 d'amsmath.sty porte \DeclareRobustCommand{\frac}[2]{{\begingroup#1\endgroup\@@over#2}}. La forme nue d'AMS-TeX est mise au propre par LaTeX en une forme qui clôture ses arguments, puis amsmath y remplace \over par la primitive mise de côté \@@over. À l'instant où vous écrivez \usepackage{amsmath}, votre \frac passe à la troisième génération.
% 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 n'est que la pointe de l'iceberg. Ouvrez amstex.tex, comptez les noms de commandes et vous croisez sans cesse ce que LaTeX vous fait tenir pour acquis : \dfrac, \tfrac, \binom, \text, \align, \gather, \multline, \cases, \matrix, \pmatrix, \smallmatrix, \boxed, \operatorname, \intertext, \hdotsfor, \sideset. Aucun n'existe dans plain.tex ni dans latex.ltx. Une grande part des tournures de l'écriture mathématique sous TeX n'a donc été inventée ni par Knuth ni par Lamport, mais par AMS-TeX. Si vous disposez de l'environnement align en LaTeX, c'est que Spivak a écrit \def\align.
% 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}Le portage, 1988–1994 : le package s’est appelé amstex pendant six ans
Le déroulé du portage survit dans les mots mêmes des intéressés, à la section « Credits » d'amsmath.dtx livrée avec TeX Live. On y lit qu'une grande partie du code d'amsmath provient de l'amstex.tex de Michael Spivak ; le premier travail de portage vers un package LaTeX, amstex.sty, fut mené en 1988–1989 par Frank Mittelbach et Rainer Schöpf. En 1994, David M. Jones ajouta la prise en charge de l'option fleqn et améliora considérablement la famille d'environnements align ainsi que la numérotation des équations, tandis que Michael Downes, à l'AMS, coordonnait le travail des trois. La dernière phrase est la plus parlante : les versions 1.0 et 1.1 du package s'appelaient amstex, pas amsmath — le nom fut changé en 1994, selon les termes du document, pour qu'il regarde vers l'utilisateur plutôt que vers l'histoire.
La famille qui en résulte porte le nom collectif d'AMS-LaTeX : les packages amsmath, amssymb, amsthm et amscd, avec les classes de documents de l'AMS amsart (articles), amsbook (livres) et amsproc (actes). Les symboles ont suivi le même mouvement : charger amssymb appelle amsfonts en interne, et le \Bbb d'AMS-TeX est devenu \mathbb (fonte msbm), tandis que \frak est devenu \mathfrak (fonte eufm). Seuls les noms ont changé ; les dessins de lettres sont les mêmes.
| Composant | Ce que c’est et ce qu’il fait | Version dans TeX Live 2024 |
|---|---|---|
amstex.tex | AMS-TeX lui-même : le jeu de macros sur plain TeX | Version 2.2, datée du 2001/10/04 |
amsppt.sty | Le style maison d’AMS-TeX ; \head, \proclaim, \topmatter s’y trouvent | version 2.2 (2001/08/07) |
amsmath | Le package mathématique central : align, gather, cases et les autres | v2.17o (2023/05/13) ; maintenu conjointement par le LaTeX Project et l’AMS |
amssymb | Symboles supplémentaires et alphabets mathématiques ; charge amsfonts en interne | \mathbb vient de msbm, \mathfrak de eufm |
amsthm | Environnements de théorème et de démonstration ; proof et un \newtheorem étendu | le successeur du \proclaim d’AMS-TeX |
amscd | Un environnement pour diagrammes commutatifs (flèches horizontales et verticales seulement) | pour les flèches obliques, passer à tikz-cd |
amsart / amsbook / amsproc | Les classes de documents de l’AMS (article, livre, actes) | amsart est en v2.20.6 (2020/05/29) |
L’année où l’on dit à AMS-TeX qu’il n’était pas un logiciel libre
AMS-TeX est passé en version 2.2 pour une raison de licence, non de fonctionnalité. Le journal des changements distribué avec lui, amstex.bug, consigne à la rubrique « Changes released July 2001 » une demande de suppression de la mention de copyright et de la restriction d'usage imprimées sur le terminal et dans le journal à chaque exécution. Le motif : cette restriction faisait d'AMS-TeX un « not free software » aux yeux de TeX Live. Puis : Changed: Version 2.2 (August 2001). Ainsi, si la bannière est si laconique quand vous lancez amstex aujourd'hui, c'est qu'une douzaine de lignes en ont été retirées en 2001. L'épisode n'est pas rare dans l'histoire du logiciel ; ce qui l'est, c'est que le fichier concerné soit livré tel quel depuis plus de vingt ans.
Comment rédiger aujourd’hui de nouveaux documents mathématiques
Il n'y a plus de raison de lancer la commande amstex. Commencez un nouveau rapport, une note de cours ou un article comme document LaTeX et chargez les packages AMS-LaTeX voulus : amsmath pour les alignements, amssymb pour les symboles supplémentaires comme le gras de tableau, amsthm pour théorèmes, lemmes et démonstrations. Pour une revue ou un livre de l'AMS, ajoutez amsart ou amsbook comme classe. Ce qu'AMS-TeX a à enseigner n'est pas une liste de commandes anciennes mais l'habitude de marquer la structure mathématique par le sens. Choisir entre align, gather et multline ne relève pas de l'apparence : cela distingue « il faut aligner sur le signe égal », « elles vont simplement ensemble » et « cette formule unique est trop longue pour une ligne ».
\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}- Le corps commence à
\begin{document}, non à\document, et la classe se déclare avec\documentclass{...}, non avec\documentstyle{amsppt}. - Les titres relèvent de
\sectionet de ses parents, non de\head … \endhead; numérotation et table des matières suivent d’elles-mêmes. - Ne fabriquez pas les énoncés à la main avec
\proclaim: déclarez-les avec\newtheoremd’amsthm, qui apporte son schéma de numérotation. L’environnementproofplace même la marque de fin de démonstration. - Le gras de tableau s’écrit
\mathbb, non\Bbb; la fracture\mathfrak, non\frak. Chargeramssymbdonne les deux. amscdsuffit souvent aux diagrammes commutatifs, mais dès qu’il faut des flèches obliques ou courbes, on passe àtikz-cd.
Quand vous héritez d’un manuscrit AMS-TeX
La première tâche n'est pas de réécrire mais de sécuriser un PDF reproductible. Si de vieilles notes de cours ou l'archive d'un éditeur font surgir un manuscrit contenant \document, \enddocument et \documentstyle{amsppt}, essayez d'abord amstex oldfile.tex tel quel. C'est là l'essentiel de la raison pour laquelle amstex figure encore dans TeX Live 2024 : il y a une vraie valeur à ce qu'un manuscrit vieux de vingt ans se compose encore exactement comme alors. Une fois ce PDF de référence obtenu, migrez vers LaTeX plus amsmath section par section, en comparant à chaque étape. Numéros d'équations, coupures de lignes et compteurs de théorèmes sont les premiers à dériver : surveillez-les en priorité.
Au bout du compte, AMS-TeX occupe une position rare : gelé, mais pas mort. Les fichiers se sont arrêtés en 2001, le format est toujours gravé, les vieux manuscrits compilent encore. Le travail, lui, a migré vers amsmath, que le LaTeX Project et l'AMS maintiennent ensemble et continuent de mettre à jour — la version livrée dans TeX Live 2024 est la v2.17o du 2023/05/13. L'en-tête d'amsmath.sty porte deux lignes côte à côte, Copyright (C) 1995, 1999, 2000, 2013 American Mathematical Society. et Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society. : la date de la passation est elle-même la mention de copyright. Quand vous écrivez \usepackage{amsmath}, la syntaxe qui tourne est celle de Spivak ; ceux qui la tiennent à jour sont d'autres.