- La razón por la que la misma cuadrícula de 10.8pt × 7.2pt no coincidía entre LaTeX e Inkscape es que ambas herramientas usan definiciones distintas de punto
- LaTeX calcula 1pt como 1/72.27 de pulgada, mientras que Inkscape usa 1/72 de pulgada, como SVG y PostScript
- El punto es una unidad tipográfica usada desde 1517, pero al principio su tamaño variaba según la empresa, el equipo o el país
- El punto tipográfico estadounidense derivó en la definición de 0.013837 pulgadas del NIST y en la definición de 72.27pt/in de TeX; la diferencia es minúscula
- PostScript fijó el espacio de usuario básico en 1/72 de pulgada y, al difundirse con LaserWriter, esa convención también se asentó en CSS, SVG e Inkscape
Por qué no coinciden los puntos de LaTeX e Inkscape
- Al recrear diagramas de Logic for Programmers, surgió el problema de que la cuadrícula de 10.8pt × 7.2pt de LaTeX e Inkscape no quedaba del mismo tamaño
- LaTeX define 1 punto como 1/72.27 de pulgada, lo que equivale aproximadamente a 0.3515mm
- Inkscape usa 1 punto como 1/72 de pulgada, lo que equivale aproximadamente a 0.3528mm
- La diferencia es de apenas 0.4%, pero hace que dos herramientas digitales muy usadas empleen unidades de punto distintas
El origen del punto y el problema de la estandarización
- El punto es una unidad tipográfica que existe desde 1517 y se entendía como el tamaño más pequeño que un impresor podía manejar de forma significativa
- Al principio el punto no era una unidad estandarizada, y se usaban tamaños distintos según la empresa y el equipo
- Después avanzó la estandarización, pero cada país adoptó criterios diferentes
- En Alemania y Japón, el punto es de 0.250mm
- El punto francés se conoce como 0.399mm
- Como la historia temprana de la computación se desarrolló sobre todo en Estados Unidos, la tecnología digital terminó usando principalmente variantes del punto estadounidense
El punto estadounidense y los 72.27pt/in de TeX
- En Estados Unidos el punto se estandarizó hacia fines del siglo XIX, pero las fuentes de la época muestran cifras ligeramente distintas
- Un documento de 1900 presenta la longitud del punto como 35/996cm, lo que da 72.281 puntos por pulgada, y al mismo tiempo indica 867.4699 “ems” por pie, lo que da 72.289 puntos por pulgada
- Un documento de 1916 indica que la pica estándar (pica, 12 puntos) mide 0.16604 pulgadas y presenta 72.272 “pica ems” por pie, lo que da 72.272 puntos por pulgada
- En la página siguiente del mismo documento, vuelve a indicar la pica como 0.166044 pulgadas y el punto exactamente como 0.013837 pulgadas
- Estas diferencias se relacionan con que las definiciones del metro y del pie cambiaron con el tiempo, y con que la discrepancia era menor que un micrón, por lo que en la práctica solía ignorarse
- La definición oficial del NIST fijó el punto en 0.013837 pulgadas, lo que por cálculo simple se acerca a 72.27 puntos por pulgada
- En realidad, al invertir 0.013837 pulgadas se obtiene 72.270001 puntos/pulgada, y Donald Knuth ajustó esa diferencia minúscula en TeX
- TeX define que 72.27pt = 1in
- El “pt” de TeX es apenas mayor que el punto tipográfico oficial definido por la American Typefounders Association en 1886
- Un punto clásico equivale exactamente a 0.99999999pt, con un error de alrededor de una cienmillonésima
- La nueva definición de 72.27pt = 1in es fácil de calcular y de recordar
- Los impresores estadounidenses definían el punto a partir de la pulgada, pero TeX calcula a partir del punto y define la pulgada en puntos
- El NIST parece considerar que 72 puntos por pulgada también es una aproximación suficientemente buena, y TeX llama a eso
bp (big point)
PostScript, CSS, SVG e Inkscape con 72pt/in
- El valor que usa Inkscape parece venir de la definición del espacio de usuario básico (default user space) del formato PostScript
- Un documento de PostScript define la unidad de longitud en los ejes x e y como 1/72 de pulgada y llama a eso el espacio de usuario básico
- Esa unidad se eligió por simplicidad matemática y conveniencia, y se la trata como muy cercana al punto de imprenta estándar de 1/72.27 de pulgada
- Más adelante, en la página 86, a 1/72 de pulgada se le llama directamente “punto”
- Una edición posterior resume que 1/72 de pulgada es casi igual a un punto, pero no exactamente, y que no existe una definición universal del punto
- Apple incorporó PostScript en la impresora láser LaserWriter, otras empresas siguieron el mismo camino y PostScript se volvió el lenguaje de impresión de facto
- Como resultado, 72 puntos por pulgada terminó asentándose como estándar de facto para la medición digital
- El W3C también usa el mismo criterio en CSS y SVG
- Como Inkscape es un editor SVG, su punto también pertenece a la familia de 1/72 de pulgada
- El editor SVG draw.io es una excepción aparte, ya que usa un tamaño de punto de 1/100 de pulgada
Rastros de la definición de unidad que quedan en Frink
- En Frink, un lenguaje Turing completo con fuerte soporte para unidades, también se pueden ver rastros de estas definiciones de punto
- Si en Frink se calculan los valores del documento de 1900 usando la pulgada previa a 1959, el resultado es el siguiente
oldinch := surveyfoot / 12 // pre 1959 inch
35 cm / (996 pts) -> oldinch / pts
0.013834839357429718876
point := 0.013837ee0 inch // exact, NIST Handbook 44, Appendix 3
printerspoint := point
texscaledpoint := 1/65536 point // The TeX typesetting system uses
texsp := texscaledpoint // this for all computations.
computerpoint := 1/72 inch // The American point was rounded
computerpica := 12 computerpoint // to an even 1/72 inch by computer
postscriptpoint := computerpoint // people at some point.
- Aquí, “computer people at some point” parece aludir al momento de transición ligado a la unidad básica de 1/72 de pulgada de PostScript
- La definición de
texscaledpoint en Frink difiere ligeramente de la definición real de TeX
- Si se reescribe tomando como referencia el punto real de TeX, queda así
realtexpoint := 1/72.27 inch
realtexsp := 1/65536 realtexpoint
(realtexsp - texsp)
5.36285100578e-17 m (length)
(realtexsp - texsp) / realtexsp
1.0000000000005691827e-8
- La diferencia en la definición de Frink es de unos 50 attómetros, alrededor del 3% del ancho de un protón
- TeX usa “scaled points” en sus cálculos reales, y 2^16 sp = 1 pt
1 comentarios
Comentarios en Lobste.rs
Al final, en la parte donde se hace referencia a Frink, aparece la diferencia entre el US Survey Inch y el International Inch
Antes escribí sobre cómo surgió el international inch, y como es uno de mis casos favoritos dentro de las historias de metrología, me parece muy probable que las distintas definiciones de point alrededor de 1900 se debieran a las limitaciones de precisión de medición de la época
La diferencia entre el punto de TeX de Knuth y el point del NIST es incluso menor que la que se produce al tomar como referencia distintas definiciones de inch
Las variaciones al acomodar tipos metálicos en un marco o al fundir tipos de plomo con Linotype superaban por mucho la precisión necesaria para distinguir estas diferencias de point, así que probablemente no fue un problema real en la tecnología de impresión de ese tiempo
Otro antecedente histórico del point de 1/72 inch en computación es que, en los años 80, las pantallas de Apple normalmente tenían 72 píxeles por pulgada, así que 1 point era 1 pixel, y eso facilitaba que el software igualara el tamaño de los documentos en pantalla con el de la página impresa
Las máquinas de escribir tenían nominalmente 6 líneas por pulgada, y en papel de 11 pulgadas, usar texto de 12 point a 72.27 points por pulgada da no 66 líneas sino casi 66.25
En una máquina de escribir, una diferencia de 1/4 de línea por página quizá no importaba mucho, pero en impresiones masivas sobre papel continuo sí importaba, porque la longitud de página tenía que ser un múltiplo entero del interlineado para mantener la alineación
Durante décadas antes de la autoedición, uno de los grandes usos de la impresión por computadora era para cosas como recibos de nómina o estados de cuenta bancarios
Antes de las impresoras láser, la salida gráfica usaba impresoras de matriz de puntos, y estas también estaban diseñadas para ajustarse al espaciado de 6 líneas por pulgada del papel continuo
Así que quizá hubo una razón de compatibilidad hacia atrás para elegir 72 points por pulgada en la autoedición, pero parece más probable que se buscara compatibilidad con tecnologías de impresión por computadora antiguas y de baja resolución, más que con la composición tipográfica
En cambio, el objetivo de TeX de Knuth era la fotocomposición, así que tenía que coincidir con las medidas usadas en la impresión tradicional
Los sistemas de medidas de Estados Unidos y del Reino Unido especificaban temperaturas de medición ligeramente distintas, y para fabricar un bloque que cumpliera con ambos estándares había que mecanizarlo hasta el límite de la precisión posible en ese entonces
Los bloques Jo se difundieron ampliamente porque a Henry Ford le gustaron tanto que, como Victor Kiam, básicamente terminó comprando la empresa
Ah, yo creía que el point estaba definido exactamente como 1/72 inch
En los archivos Rich Text Format, es decir, RTF, hay otra unidad llamada “twip” que se usa para la mayoría de las medidas, y equivale a 1/20 de point
No conozco la historia, pero si el point no era lo que yo pensaba, entonces el twip tampoco, y pensar que el error se va acumulando es bastante incómodo
El enlace está mal, pero fue una lectura entretenida
Las unidades de medida se parecen a los modelos: importa más que sean útiles que que sean correctas
Si una tarea escolar solo pide fuente de 12 point, no importa mucho qué significa exactamente ese número
Si los aviones volaran en points por segundo, quizá existiría una unidad más estandarizada
Me pregunto si todavía hay alguna razón para usar pt
No sé qué ventajas tiene, o si simplemente sigue existiendo por inercia, como el sistema imperial
Parece natural que el point deba ser 72 points por pulgada. Porque 12 × 6 = 72
Lo verdaderamente sorprendente es que alguien haya estandarizado cualquier otro valor
Su valor era aproximadamente 1/6 de pulgada, pero en realidad variaba un poco entre imprentas, y la pica estándar se eligió para coincidir con la medida real más usada