Por que certas fontes exibem caracteres errados?

Sintomas

Para algumas fontes como Gill Sans ou Linux Libertine G, o texto exibido pode estar completamente errado. Os caracteres são exibidos com o estilo correto, mas são os caracteres errados.

Isso acontece desde a V18.

Causa

Este problema não está limitado ao BricsCAD, mas também acontece com outros programas.

Estas são fontes que usam muitos arquivos de fonte (como um pacote de arquivos é chamado de família de fontes) e os programas pesquisam implicitamente o melhor arquivo de fonte correspondente em uma família de fontes, para desenhar um caractere. A exibição da fonte seria boa mesmo se um único arquivo de fonte fosse usado, mas há pequenas melhorias ao usar mais arquivos para essa fonte. Usar um arquivo de fonte regular e que diga desenhe este em negrito é bom, mas usar o arquivo de fonte em negrito dedicado é melhor.

Famílias de fontes maiores podem ter pequenas falhas que causarão ambiguidades em qual arquivo da família usar. O efeito é que, ao desenhar um caractere, um arquivo de fonte é usado em um estágio inicial dos cálculos e, em um estágio posterior, outro arquivo de fonte da mesma família é usado.

Não causa nenhum problema na V17, mas na V18 pode levar a um desenho de caractere completamente errado. Nossa nova abordagem de cálculo está realmente correta e não podemos corrigir isso.

Solução

A solução é reduzir a família de fontes usada para uma única fonte, de modo que a escolha ambígua do arquivo a ser usado seja evitada. No caso de Gill Sans, isso pode ser feito removendo os arquivos para:

  • Gill Sans Light
  • Gill Sans Light Italic
  • Gill Sans SemiBold
  • Gill Sans SemiBold Italic
  • Gill Sans UltraBold

Os efeitos visuais do uso de menos arquivos de fontes são mínimos.

Note:

Uma fonte que é distribuída com muitos arquivos não mostra esse problema automaticamente.

Por exemplo, a fonte Noto Sans possui dois arquivos de fonte com estes estilos: Italic, Light Italic. Mas quando as duas fontes são abertas com o Windows Font Viewer, pode-se ver que as duas fontes pertencem tecnicamente a duas famílias de fontes diferentes:

  • Família Noto Sans (usando estilo Itálico)
  • Família Noto Sans Light (usando estilo Itálico)

Como as famílias de fontes diferem, a fonte não é afetada por esse problema.

Da mesma forma, a maioria das fontes evita esse problema usando uma família de fontes diferente para estilos de fonte 'estendidos'. Existem apenas algumas fontes conhecidas por nós que realmente têm esse problema.

Com estilos estendidos, queremos dizer estilos de fonte fora desses 4 estilos:

  • Regular
  • Negrito
  • Itálico
  • Bold Italic

Para obter mais informações, consulte https://docs.microsoft.com/en-us/typography/opentype/spec/name#name-ids, seções Font Family name e Font Subfamily name.