Historia y licencia

El número de versión de TeX es hoy 3.141592653, y la próxima corrección le añadirá un dígito más al final. Converge hacia π, un número al que nunca llegará. Esta página retoma el hilo donde lo deja el relato de los orígenes: lo que ocurrió después de que Knuth terminara TeX. La congelación, el relevo de LaTeX hacia quienes lo mantienen hoy y qué exige realmente la licencia LPPL. LaTeX es gratuito, también para trabajo comercial; pero la forma de esa libertad no es del todo la de la GPL ni del todo la de MIT, y el motivo de esa diferencia es lo más interesante.

Por qué el número de versión de TeX converge a π

Porque en 1990, en un artículo de TUGboat titulado «The Future of TeX and METAFONT», Knuth anunció que dejaba de desarrollar TeX y que en adelante solo corregiría los errores que le comunicaran. Fijó al mismo tiempo la convención: cada corrección añade un dígito más al número. Así, 3.14 → 3.141 → 3.1415 se acerca indefinidamente a π sin llegar nunca, por construcción. El número de versión es en sí mismo una declaración: esto es una obra que solo tiende asintóticamente a su término. Y que haya ganado tan pocos dígitos en más de treinta años mide por sí solo la estabilidad del sistema.

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)

Lo revelador es que los motores sucesores arrastran ese número en lugar de descartarlo. El pdfTeX 3.141592653-2.6-1.40.26 de arriba se lee así: «el TeX 3.141592653 congelado de Knuth, con el 1.40.26 propio de pdfTeX encima». Negarse a sobrescribir el número de base es ya un juramento: el TeX que hay dentro está intacto. Knuth dejó escrito que a su muerte el número quedará fijado en π y congelado para siempre; en sus propias palabras, el «cambio absolutamente final (que se hará después de mi muerte)». Los errores que sigan presentes en ese momento no se corregirán: quedarán ascendidos a características. Su programa hermano METAFONT sigue la misma idea y converge, en su caso, hacia e.

Lo en serio que iba esa apuesta se lee en las recompensas que Knuth pagó. Quien encontrara un error en el código de TeX o METAFONT cobraba un premio que empezaba en 2,56 dólares —un dólar hexadecimal— y se duplicaba cada año hasta topar en 327,68 dólares. Montó un sistema en el que encontrar errores era cada vez más rentable, y aun así los avisos se agotaron. Solo ese grado de rigor mantiene que un manuscrito de hace décadas se componga hoy sin tocarlo, y por eso se llama a TeX un punto fijo en la historia de la composición por ordenador.

¿Qué es exactamente lo que se congela? Entre 1984 y 1986 Knuth publicó Computers & Typesetting en cinco volúmenes: el A es el manual de uso, The TeXbook; el B es TeX: The Program, el código fuente del propio TeX compuesto como libro; el C y el D forman la pareja equivalente para METAFONT, su programa de diseño de tipos; y el E es Computer Modern Typefaces, el diseño de la familia Computer Modern. Ahí reside la idea de publicar el código de un programa como libro, y por eso «congelar» no es una metáfora. Hasta las revisiones de errores se espacian por décadas: tras una edición conmemorativa en 2021, las siguientes están fijadas para 2028, luego 2037 y luego 2047.

Quién mantiene LaTeX ahora

Un equipo reducido llamado LaTeX Project. LaTeX lo escribió Leslie Lamport, pero en 1989 la responsabilidad de mantenerlo y desarrollarlo pasó a Frank Mittelbach, y el equipo que formó con Chris Rowley y Rainer Schöpf publicó LaTeX 2ε en 1994. «LaTeX» significa hoy ese 2ε; el LaTeX 2.09 anterior es ya historia. El archivo legal.txt que viene en un árbol de TeX Live sigue enumerando a Lamport, Mittelbach, Rowley, Schöpf, David Carlisle y otros como titulares de los derechos: la genealogía está escrita en la propia distribución.

LaTeX3, del que tanto se habló como formato independiente de nueva generación, nunca llegó a existir como producto. En su lugar, su capa de programación, expl3, quedó integrada dentro de LaTeX 2ε, y el núcleo la carga al arrancar. Por eso ejecutar pdflatex imprime dos líneas de cabecera al principio del registro: la versión del formato y la de la capa de programación L3. LaTeX 2ε se publica ahora en versiones fechadas, el 1 de junio y el 1 de noviembre de cada año, y la fecha hace de nombre de versión.

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

Dos publicaciones al año pueden sonar a amenaza para las fuentes antiguas, pero el diseño apunta en sentido contrario. El núcleo incorpora un mecanismo de reversión llamado latexrelease: con \RequirePackage[2020-02-02]{latexrelease}, el núcleo recupera el comportamiento que tenía en esa fecha. Es una salida de emergencia deliberada para artículos que pasan años en revisión y para una tesis que quizá haya que recompilar dentro de diez años. TeX está congelado; LaTeX avanza pero puede reproducir su propio pasado. El reparto de papeles es explícito.

Qué hace falta para llamar «TeX» a algo

La licencia de Knuth se reduce a un punto: modifícalo cuanto quieras, pero no llames TeX al resultado. El propio archivo fuente tex.web lo dice: si se cambia este programa, el sistema resultante no debería llamarse TeX. Solo se gana el nombre una implementación que supere la prueba TRIP, un test de tortura deliberadamente retorcido que coteja la salida carácter a carácter con una referencia. Ahí está el invento: la palabra «TeX» no es un nombre comercial, funciona como un certificado de compatibilidad.

La regla se ve funcionando en el TeX japonés. El motor con soporte de japonés construido en ASCII se llama pTeX, y su sucesor Unicode upTeX; ninguno se llama a sí mismo «TeX». Modificaron TeX, así que cambiaron el nombre: la regla acabó siendo el nombre del producto. En cuanto a la marca, «TeX» en los Estados Unidos pertenece a la American Mathematical Society, solicitada en 1984. Se mantiene de forma defensiva, para que no la registre un tercero ajeno, así que no hace falta incluir ningún aviso de «TeX es una marca de…» en el documento.

Qué exige realmente la LPPL

La exigencia central de la LPPL (LaTeX Project Public License) es que una versión modificada se declare como modificada. Suele describirse como una licencia que obliga a renombrar el archivo, y para la versión vigente eso no es exacto. La copia que viene en un árbol de TeX Live, texmf-dist/doc/latex/base/lppl.txt, es la LPPL 1.3c (2008-05-04), y su cláusula 6a exige que un componente de reemplazo, cuando se usa de forma interactiva, se identifique clara e inequívocamente como versión modificada. Del nombre del archivo en sí no dice nada. Tampoco es un copyleft que obligue a publicar el código, como hace la GPL. Lo que protege es la confianza de quien lee: que aquello rotulado article.cls sea el article.cls de verdad.

¿De dónde sale entonces lo de «renombrar el archivo»? De una versión anterior, donde efectivamente estaba escrito. En el mismo directorio doc/latex/base/ reside lppl-1-2.txt, cuya condición 3 dice sin rodeos que no se debe distribuir el archivo modificado con el nombre del original. Esa cláusula alimentó un largo debate sobre si la licencia era software libre y llevó a Debian, en 2003, a replantearse cómo distribuía LaTeX. La LPPL 1.3 relajó la restricción, desplazando la exigencia de «cambia el nombre» a «declárate modificado». Renombrar sigue siendo la forma recomendada de cumplirla, y de ahí que CTAN esté lleno de paquetes derivados con nombres curiosamente retorcidos.

CláusulaQué exigeCómo cumplirla
LPPL 1.3c 2Distribuir una copia completa y sin modificar siempre está permitidoNada que hacer
LPPL 1.3c 6aUn componente de reemplazo debe identificarse claramente como modificadoIndicarlo en la cadena de versión de \ProvidesClass
LPPL 1.3c 6bAviso destacado sobre la naturaleza de los cambiosUn comentario de cabecera o un archivo CHANGES con el registro
LPPL 1.3c 6cNo debe dar a entender que los autores originales dan soporte a tu versiónSustituir contactos y direcciones de informe de fallos por los propios
LPPL 1.3c 6dDistribuir también el original, o indicar cómo conseguirloBasta con remitir a la página de CTAN en el README
LPPL 1.2 3Prohibido distribuir un archivo modificado con el nombre original (antigua)Suprimida en 1.3; renombrar sigue recomendándose

Cuando quieres repartir un archivo de clase modificado

Para quien solo escribe documentos, la licencia carece casi de efecto práctico. Producir, entregar, vender o publicar un PDF hecho con LaTeX no necesita ningún permiso adicional. La licencia solo asoma en el momento en que se redistribuye un .cls o un .sty: arreglar la plantilla del laboratorio y pasársela al siguiente estudiante, retocar una clase de congreso y enviarla a un coautor. Ahí hay tres cosas que hacer: darle nombre propio, dejar constancia de que lo cambiaste y señalar de dónde salió el original. Con eso se cubre casi toda la cláusula 6 de la LPPL.

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}
  • Conservar el archivo original y distribuir el propio con un nombre distinto, como labthesis.cls. No sobrescribir es justamente el objetivo.
  • Anotar la bifurcación en la cadena de versión de \ProvidesClass; la línea aparece luego en el registro y la cláusula 6a queda satisfecha de paso.
  • Al entregar un paquete de fuentes, incluir el texto de la licencia junto a cualquier .sty o .cls modificado. La mayoría de los sistemas de envío archivan tal cual lo que se sube.
  • Los derechos sobre tu texto y tus figuras nada tienen que ver con la licencia de TeX: los fija la revista, la editorial o la institución. No mezclar ambas cosas.

Una nota sobre el lado japonés: los juegos de macros de pLaTeX y upLaTeX no están bajo la LPPL sino bajo una licencia BSD. La cabecera de plcore.ltx en una instalación local lleva dos líneas — «Copyright (c) 2010 ASCII MEDIA WORKS» y «Copyright (c) 2016-2020 Japanese TeX Development Community»— de modo que el relevo de ASCII a la comunidad japonesa de desarrollo de TeX queda registrado dentro del propio archivo. jlreq.cls es asimismo BSD, en su variante de dos cláusulas. Trabajar en un entorno japonés supone, pues, convivir con la LPPL y la BSD a la vez, y la obligación mínima es conservar intactos los avisos de copyright.