1 puntos por GN⁺ 3 시간 전 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 3 시간 전
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

    • Otra cosa que se me viene a la mente es que la máquina de escribir y las impresoras de línea también fueron tecnologías importantes
      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
    • Yo también pensé al principio que la diferencia sería la del survey inch frente al statute inch
    • Creo que Jo simplificó un poco la razón por la que se eligió un único bloque de inch de 25.4 mm
      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

    • ¿Por qué 12×6?
    • No entró en el boletín, pero la razón de la división es que los impresores ya usaban la medida de la pica
      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