Algoritmos de tipografía: de la página a los bytes en PDF

Fuentes: Typography algorithms: from page to bytes in PDF

La composición tipográfica de una página impresa o digital es el resultado de una jerarquía de algoritmos complejos que se ejecutan en capas. Este artículo técnico explora la arquitectura detrás de la generación de páginas, comparando dos enfoques de software: el sistema 'speedata Publisher', que utiliza LuaTeX como motor central, y la librería Go 'boxes and glue', que modulariza cada nivel de procesamiento. El texto detalla cómo se resuelven problemas específicos en cada nivel de la jerarquía, desde la gestión de la página completa hasta la renderización de cada carácter individual.

En el nivel de página, se abordan desafíos como el manejo de viudas y órfanos, la fragmentación de tablas y la colocación de elementos flotantes. Se explica que TeX resuelve esto mediante insertiones y un mecanismo de seguimiento del espacio, mientras que 'boxes and glue' lo gestiona a través de una capa HTML que vincula las notas al texto de referencia. En el nivel de párrafo, se describe el algoritmo de relleno de líneas propuesto por Donald Knuth y Michael Plass en 1981, que minimiza el 'mal' (badness) calculando el coste de cada punto de ruptura. Se ilustra cómo este algoritmo, que considera el contexto global del párrafo, permite ajustes finos mediante la expansión de fuentes y la puntuación colgante. Finalmente, en el nivel de palabra, se explica el uso de patrones de hipotenación, como los de Frank Liang, que definen qué sílabas pueden romperse basándose en números par o impares para evitar errores tipográficos. Esta comparación técnica destaca la diferencia arquitectónica entre un motor monolítico y una arquitectura modular, ofreciendo una visión didáctica de cómo se traduce el texto plano en un archivo PDF final.