1 pontos por GN⁺ 3 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • O motivo de a mesma grade de 10.8pt × 7.2pt no LaTeX e no Inkscape ficar desalinhada é que as duas ferramentas usam definições diferentes de ponto
  • O LaTeX calcula 1pt como 1/72.27 de polegada, enquanto o Inkscape usa 1/72 de polegada, no padrão SVG/PostScript
  • O ponto é uma unidade tipográfica usada desde 1517, mas no início seu tamanho variava conforme a empresa, o equipamento e o país
  • O ponto tipográfico americano evoluiu a partir da definição da NIST de 0.013837 polegada e da definição do TeX de 72.27pt/in, com uma diferença extremamente pequena entre elas
  • O PostScript definiu o espaço básico do usuário como 1/72 de polegada; com a disseminação do LaserWriter, isso se firmou também em CSS, SVG e Inkscape

Por que os pontos do LaTeX e do Inkscape não batem

  • Ao recriar os diagramas de Logic for Programmers, surgiu o problema de a grade de 10.8pt × 7.2pt no LaTeX e no Inkscape não coincidir em tamanho
  • O LaTeX define 1 ponto como 1/72.27 de polegada, o que dá cerca de 0.3515mm
  • O Inkscape usa 1 ponto como 1/72 de polegada, o que dá cerca de 0.3528mm
  • A diferença é de apenas cerca de 0.4%, mas faz com que duas ferramentas digitais amplamente usadas adotem unidades de ponto diferentes

A origem do ponto e o problema da padronização

  • O ponto ) é uma unidade tipográfica usada desde 1517, caracterizada como o menor tamanho que um impressor poderia manipular de forma significativa
  • No início, o ponto não era uma unidade padronizada, e tamanhos diferentes eram usados dependendo da empresa e do equipamento
  • Depois houve padronização, mas cada país adotou critérios distintos
    • Na Alemanha e no Japão, o ponto é 0.250mm
    • O ponto francês é conhecido como 0.399mm
  • Como a história inicial da computação se desenvolveu em torno dos Estados Unidos, as tecnologias digitais passaram a usar principalmente variantes do ponto americano

O ponto americano e os 72.27pt/in do TeX

  • Nos Estados Unidos, o ponto foi padronizado por volta do fim do século XIX, mas os valores variavam ligeiramente entre as fontes da época
  • Um material de 1900 apresenta o comprimento do ponto como 35/996cm, o que resulta em 72.281 pontos por polegada; ao mesmo tempo, informa 867.4699 “ems” por pé, o que resulta em 72.289 pontos por polegada
  • Um material de 1916 descreve a pica padrão (12 pontos) como 0.16604 polegada e informa 72.272 “pica ems” por pé, o que dá 72.272 pontos por polegada
  • Na página seguinte do mesmo material, a pica aparece novamente como 0.166044 polegada e o ponto como exatamente 0.013837 polegada
  • Essas diferenças se relacionam à mudança histórica das definições de metro e pé, além de serem pequenas o bastante para serem facilmente ignoradas na prática, já que ficam abaixo de um mícron
  • A definição oficial da NIST fixou o ponto em 0.013837 polegada; por cálculo simples, isso fica muito próximo de 72.27 pontos por polegada
  • De fato, invertendo 0.013837 polegada chega-se a 72.270001 pontos/polegada, e Donald Knuth ajustou essa diferença minúscula no TeX
  • O TeX define 72.27pt = 1in
    • O “pt” do TeX é ligeiramente maior que o ponto tipográfico oficial definido em 1886 pela American Typefounders Association
    • Um ponto clássico equivale exatamente a 0.99999999pt, com erro de cerca de uma parte em cem milhões
    • A nova definição, 72.27pt = 1in, é fácil de calcular e de memorizar
  • Os impressores americanos definiam o ponto com base na polegada, mas o TeX faz as contas a partir do ponto e define a polegada em pontos
  • A NIST aparentemente considera 72 pontos/polegada uma aproximação suficientemente boa, e o TeX chama isso de bp (big point)

PostScript, CSS, SVG e Inkscape com 72pt/in

  • O valor usado pelo Inkscape parece vir da definição do espaço básico do usuário (default user space) do formato PostScript
  • O documento do PostScript define o comprimento unitário nos eixos x e y como 1/72 de polegada, chamando isso de espaço básico do usuário
  • Essa unidade foi escolhida por simplicidade matemática e conveniência, sendo tratada como muito próxima da unidade padrão da indústria gráfica, o ponto tipográfico de 1/72.27 de polegada
  • Mais adiante, na página 86, 1/72 de polegada é chamado diretamente de “ponto”
  • Uma edição posterior resume que 1/72 de polegada é quase igual a um ponto, mas não exatamente, e que não existe uma definição universal de ponto
  • A Apple embarcou o PostScript na impressora a laser LaserWriter, e outras empresas seguiram o mesmo caminho, fazendo do PostScript a linguagem de impressão de fato
  • Como resultado, 72 pontos por polegada se consolidou como um padrão de fato para medições digitais
  • O W3C também usa o mesmo critério em CSS e SVG
  • Como o Inkscape é um editor de SVG, o ponto dele também segue a linha de 1/72 de polegada
  • O editor SVG draw.io é uma exceção separada, usando o tamanho de ponto como 1/100 de polegada

Vestígios dessa definição de unidade no Frink

  • Também dá para ver vestígios dessa definição de ponto em Frink, uma linguagem Turing-completa com forte suporte a unidades
  • Calculando com o Frink os valores do material de 1900 com base na polegada anterior a 1959, obtém-se o seguinte
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.
  • Aqui, “computer people at some point” parece se referir a essa virada ligada à unidade básica de 1/72 de polegada do PostScript
  • A definição de texscaledpoint no Frink difere ligeiramente da definição real usada pelo TeX
  • Reescrevendo com base no ponto real do TeX, fica assim
realtexpoint := 1/72.27 inch
realtexsp := 1/65536 realtexpoint
(realtexsp - texsp)
5.36285100578e-17 m (length)
(realtexsp - texsp) / realtexsp
1.0000000000005691827e-8
  • A diferença entre as definições no Frink é de cerca de 50 attômetros, algo como 3% da largura de um próton
  • O TeX usa “scaled points” nos cálculos reais, com 2^16 sp = 1 pt

1 comentários

 
GN⁺ 3 시간 전
Comentários do Lobste.rs
  • No fim, quando menciona o Frink, aparece a diferença entre US Survey Inch e International Inch
    Já escrevi antes sobre como surgiu o international inch, e como esse é um dos meus casos favoritos em histórias de metrologia, parece bem provável que as definições diferentes de point por volta de 1900 fossem resultado das limitações de precisão de medição da época
    A diferença entre o point do Knuth TeX e o point do NIST é menor do que a diferença que surge ao usar definições distintas de inch como base
    As variações ao encaixar tipos metálicos em uma matriz ou ao fundir tipos de chumbo com Linotype superavam em muito a precisão necessária para distinguir essas diferenças de point, então isso provavelmente não era um problema real na tecnologia de impressão da época
    Como outro contexto histórico para o point de 1/72 inch dos computadores, os monitores da Apple nos anos 1980 normalmente tinham 72 pixels por inch, então 1 point era 1 pixel, e isso facilitava para o software fazer o tamanho do documento na tela corresponder ao da página impressa

    • Outra coisa que me vem à cabeça é que máquinas de escrever e impressoras de linha também eram tecnologias importantes
      Máquinas de escrever eram nominalmente de 6 linhas por inch, e em papel de 11 inches, texto de 12 points a 72,27 points por inch dá não 66 linhas, mas quase 66,25 linhas
      Numa máquina de escrever, uma diferença de 1/4 de linha por página talvez não fosse grande coisa, mas ao imprimir em grande volume em papel contínuo, o comprimento da página precisava ser um múltiplo inteiro do espaçamento entre linhas para manter o alinhamento, então isso passava a importar
      Durante décadas antes da editoração eletrônica, um grande uso da impressão por computador era para coisas como holerites e extratos bancários
      A saída gráfica antes das impressoras a laser usava impressoras matriciais, e estas também eram projetadas para acompanhar o espaçamento de 6 linhas por inch do papel contínuo
      Então pode ter havido um motivo de retrocompatibilidade para a editoração eletrônica adotar 72 points por inch, mas parece mais provável que fosse visando compatibilidade com tecnologias mais antigas de impressão computacional de baixa resolução do que com a composição tipográfica
      Já o objetivo do TeX do Knuth era a fotocomposição, então ele precisava bater com as medidas usadas na impressão tradicional
    • No começo eu também achei que a diferença fosse entre survey inch e statute inch
    • Acho que o Jo simplificou um pouco o motivo de terem escolhido um único bloco de inch de 25,4 mm
      Os sistemas de medidas dos EUA e do Reino Unido especificavam temperaturas de medição um pouco diferentes, e para fabricar um bloco compatível com os dois padrões era preciso usinar no limite da precisão possível na época
      Os blocos Jo se espalharam amplamente porque Henry Ford gostou tanto deles que, como o Victor Kiam, acabou comprando a empresa
  • Ah, eu achava que point era definido exatamente como 1/72 inch
    Em arquivos Rich Text Format, ou RTF, existe outra unidade chamada “twip”, usada para a maioria das medidas, que é 1/20 de point
    Não conheço a história disso, mas se point não era o que eu pensava, então twip também não era, e a ideia de erro acumulado nisso é bem incômoda

  • O link está errado, mas foi divertido de ler
    Unidades de medida são parecidas com modelos: o importante não é se estão certas, e sim se são úteis
    Se um trabalho escolar só exige fonte de 12 points, não importa muito o que exatamente esse número significa
    Se aviões voassem em points por segundo, talvez existisse uma unidade mais padronizada

  • Ainda me pergunto se existe algum motivo para usar pt até hoje
    Não sei qual seria a vantagem, ou se isso continua existindo por inércia, como o sistema imperial

  • Parece óbvio que point deveria ser 72 points por inch. Porque 12 × 6 = 72
    O mais surpreendente é que alguém tenha padronizado qualquer outro valor

    • Por que 12×6?
    • Não entrou na newsletter, mas a divisão aconteceu porque os impressores já usavam a medida pica
      O valor era aproximadamente 1/6 inch, mas na prática variava um pouco de gráfica para gráfica, e a pica padrão foi escolhida para corresponder à medida real mais usada