Le numéro de version de TeX est aujourd’hui 3.141592653, et la prochaine correction lui ajoutera un chiffre de plus. Il converge vers π, un nombre qu’il n’atteindra jamais. Cette page reprend là où s’arrête le récit des origines : ce qui s’est passé une fois que Knuth eut terminé TeX. Le gel, le passage de relais de LaTeX à celles et ceux qui l’entretiennent aujourd’hui, et ce que la licence LPPL exige réellement. LaTeX est gratuit, y compris pour un travail commercial ; mais la forme de cette liberté n’est tout à fait ni celle de la GPL ni celle de MIT, et la raison de cet écart est ce qu’il y a de plus intéressant.
Pourquoi le numéro de version de TeX converge vers π
Parce qu’en 1990, dans un article de TUGboat intitulé « The Future of TeX and METAFONT », Knuth a annoncé qu’il cessait de développer TeX et n’en corrigerait plus que les bogues signalés. Il a fixé au même moment la convention : chaque correction ajoute un chiffre de plus au numéro. Ainsi 3.14 → 3.141 → 3.1415 se rapproche indéfiniment de π sans jamais, par construction, y parvenir. Le numéro de version est lui-même une déclaration : voici une œuvre qui ne fait que tendre vers son achèvement. Et le fait qu’il n’ait gagné que quelques chiffres en plus de trente ans mesure à lui seul la stabilité du système.
# 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)Ce qui est révélateur, c’est que les moteurs successeurs reprennent ce numéro au lieu de l’abandonner. Le pdfTeX 3.141592653-2.6-1.40.26 ci-dessus se lit : « le TeX 3.141592653 gelé de Knuth, surmonté du 1.40.26 propre à pdfTeX ». Refuser de réécrire le nombre de base est en soi un serment : le TeX qu’il contient est intact. Knuth a écrit qu’à sa mort le numéro serait fixé à π et gelé pour toujours — selon ses propres termes, l’« ultime changement absolu (à effectuer après ma mort) ». Les bogues encore présents à cet instant ne seront pas corrigés : ils seront promus au rang de fonctionnalités. Son programme jumeau METAFONT suit la même idée et converge, lui, vers e.
Le sérieux de cet engagement se lit dans les primes que Knuth a versées. Quiconque trouvait un bogue dans le code de TeX ou de METAFONT recevait une récompense qui commençait à 2,56 dollars — un dollar hexadécimal — et doublait chaque année jusqu’à plafonner à 327,68 dollars. Il a bâti un dispositif où trouver un bogue rapportait toujours davantage, et les signalements se sont malgré tout taris. Seule cette rigueur permet qu’un manuscrit vieux de plusieurs décennies se compile aujourd’hui sans retouche, et c’est pourquoi TeX passe pour un point fixe dans l’histoire de la composition informatique.
Que gèle-t-on au juste ? Entre 1984 et 1986, Knuth a publié Computers & Typesetting en cinq volumes : A est le manuel d’usage, The TeXbook ; B est TeX: The Program, le code source de TeX lui-même composé en livre ; C et D forment la paire correspondante pour METAFONT, son programme de dessin de caractères ; et E est Computer Modern Typefaces, le dessin de la famille Computer Modern. C’est là que réside l’idée de publier le source d’un programme sous forme de livre, et c’est pourquoi « geler » n’est pas une métaphore. Même les revues de bogues sont espacées de décennies : après une édition commémorative en 2021, les suivantes sont fixées à 2028, puis 2037, puis 2047.
Qui maintient LaTeX aujourd’hui
Une petite équipe appelée LaTeX Project. LaTeX lui-même est l’œuvre de Leslie Lamport, mais la responsabilité de sa maintenance et de son développement est passée en 1989 à Frank Mittelbach ; l’équipe qu’il a formée avec Chris Rowley et Rainer Schöpf a publié LaTeX 2ε en 1994. « LaTeX » désigne aujourd’hui ce 2ε ; le LaTeX 2.09 antérieur relève de l’histoire. Le fichier legal.txt livré dans une arborescence TeX Live cite toujours Lamport, Mittelbach, Rowley, Schöpf, David Carlisle et d’autres comme titulaires des droits : la filiation est inscrite dans la distribution elle-même.
LaTeX3, longtemps présenté comme un format distinct de nouvelle génération, n’a jamais vu le jour comme produit. C’est sa couche de programmation, expl3, qui a été intégrée à l’intérieur de LaTeX 2ε ; le noyau la charge désormais au démarrage. D’où les deux lignes de bannière qu’affiche pdflatex en tête du journal : la version du format lui-même et celle de la couche de programmation L3. LaTeX 2ε paraît maintenant en versions datées, le 1er juin et le 1er novembre de chaque année, la date tenant lieu de nom de version.
% the two banner lines a TeX Live 2024 run prints
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-02-20>Deux publications par an, cela peut sembler menaçant pour les anciennes sources, mais la conception va dans l’autre sens. Le noyau embarque un mécanisme de retour en arrière nommé latexrelease : avec \RequirePackage[2020-02-02]{latexrelease}, le noyau retrouve le comportement qu’il avait à cette date. C’est une trappe de secours voulue, pour les articles qui passent des années en évaluation et pour la thèse qu’il faudra peut-être recompiler dans dix ans. TeX est gelé, LaTeX avance tout en pouvant rejouer son propre passé : la répartition des rôles est explicite.
Ce qu’il faut pour appeler quelque chose « TeX »
La licence de Knuth tient en un point : modifier est libre, mais le résultat ne doit pas s’appeler TeX. Le fichier source tex.web le dit lui-même : si ce programme est modifié, le système obtenu ne devrait pas être appelé TeX. Seule une implémentation qui passe le test TRIP — une épreuve de torture délibérément retorse, qui compare la sortie caractère par caractère à une référence — mérite ce nom. L’invention est là : le mot « TeX » n’est pas un nom de produit, il fonctionne comme un certificat de compatibilité.
La règle se voit à l’œuvre dans le TeX japonais. Le moteur adapté au japonais conçu chez ASCII s’appelle pTeX, et son successeur Unicode upTeX ; aucun des deux ne se dit « TeX ». Ils ont modifié TeX, donc ils ont changé de nom : la règle est devenue le nom du produit. Quant à la marque, « TeX » aux États-Unis appartient à l’American Mathematical Society, déposée en 1984. Elle est détenue à titre défensif, pour qu’un tiers ne se l’approprie pas ; nul besoin donc d’ajouter une mention « TeX est une marque de… » dans un document.
Ce que la licence LPPL exige réellement
L’exigence centrale de la LPPL (LaTeX Project Public License) est qu’une version modifiée se déclare comme modifiée. On la présente souvent comme une licence qui oblige à renommer le fichier ; pour la version en vigueur, c’est inexact. La copie livrée dans une arborescence TeX Live, texmf-dist/doc/latex/base/lppl.txt, est la LPPL 1.3c (2008-05-04), et sa clause 6a demande qu’un composant de remplacement, lorsqu’il est utilisé de façon interactive, s’identifie clairement et sans ambiguïté comme une version modifiée. Du nom de fichier lui-même, il n’est pas question. Ce n’est pas davantage un copyleft imposant la publication des sources, comme le fait la GPL. Ce qu’elle protège, c’est la confiance du lecteur : ce qui porte l’étiquette article.cls est bien le vrai article.cls.
D’où vient alors l’idée qu’il faut « renommer le fichier » ? D’une version plus ancienne, où cela figurait bel et bien. Dans le même répertoire doc/latex/base/ se trouve lppl-1-2.txt, dont la condition 3 énonce clairement qu’on ne doit pas distribuer le fichier modifié sous le nom du fichier d’origine. Cette clause a nourri un long débat sur le caractère libre ou non de la licence et a conduit Debian, en 2003, à reconsidérer la place de LaTeX. La LPPL 1.3 a assoupli la contrainte, faisant passer l’exigence de « changez le nom » à « déclarez-vous modifié ». Renommer reste la manière recommandée d’y satisfaire, d’où l’abondance sur CTAN de paquets dérivés aux noms curieusement tordus.
| Clause | Ce qu’elle exige | Comment la satisfaire |
|---|---|---|
LPPL 1.3c 2 | Distribuer une copie complète et non modifiée est toujours permis | Rien à faire |
LPPL 1.3c 6a | Un composant de remplacement doit s’identifier clairement comme modifié | L’indiquer dans la chaîne de version de \ProvidesClass |
LPPL 1.3c 6b | Avis bien visible sur la nature des modifications | Un commentaire d’en-tête ou un fichier CHANGES avec le journal |
LPPL 1.3c 6c | Ne doit pas laisser croire que les auteurs d’origine assurent le suivi | Remplacer contacts et adresses de rapport de bogue par les siens |
LPPL 1.3c 6d | Livrer aussi l’original, ou indiquer comment se le procurer | Un renvoi vers la page CTAN dans le README suffit |
LPPL 1.2 3 | Interdit de distribuer un fichier modifié sous son nom d’origine (ancien) | Supprimée en 1.3 ; renommer reste recommandé |
Quand on veut diffuser un fichier de classe modifié
Pour qui se contente d’écrire des documents, la licence n’a presque aucune portée pratique. Produire, soumettre, vendre ou publier un PDF réalisé avec LaTeX n’exige aucune autorisation supplémentaire. La licence n’apparaît qu’au moment où l’on redistribue un .cls ou un .sty : corriger le modèle du laboratoire pour le transmettre, retoucher une classe de conférence et l’envoyer à un coauteur. Il y a alors trois choses à faire : lui donner un nom propre, consigner la modification, indiquer d’où vient l’original. Ces trois gestes couvrent l’essentiel de la clause 6 de la LPPL.
% 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}- Conserver le fichier amont et diffuser le sien sous un nom distinct, par exemple
labthesis.cls. Ne pas écraser : c’est tout l’enjeu. - Signaler la dérivation dans la chaîne de version de
\ProvidesClass; la ligne apparaît alors dans le journal et la clause 6a est satisfaite au passage. - En déposant une archive de sources, joindre le texte de la licence à tout
.styou.clsmodifié. La plupart des systèmes de soumission archivent tel quel ce qui est téléversé. - Le droit d’auteur sur le texte et les figures n’a rien à voir avec la licence de TeX : il relève de la revue, de l’éditeur ou de l’établissement. Ne pas confondre.
Une note du côté japonais : les jeux de macros de pLaTeX et upLaTeX ne relèvent pas de la LPPL mais d’une licence BSD. En tête de plcore.ltx, une installation locale porte deux lignes — « Copyright (c) 2010 ASCII MEDIA WORKS » et « Copyright (c) 2016-2020 Japanese TeX Development Community » — de sorte que le passage de relais d’ASCII à la communauté japonaise de développement TeX est consigné dans le fichier même. jlreq.cls est de même sous BSD, version à deux clauses. Travailler dans un environnement japonais, c’est donc côtoyer à la fois la LPPL et la BSD, l’obligation minimale étant de conserver les mentions de droit d’auteur.