Como posso corrigir as ligaduras de fontes TTF (tt, ti, fi, ff, etc.) no Firefox?

24

Em certas fontes do Windows, há um problema de exibição em que o kerning de ligadura parece virar para fora e deixar as duas letras em negrito. Aqui está uma captura de tela de um email usando Helvetica no Firefox:

insira a descrição da imagem aqui

Como você pode ver, parece ser algo sobre a maneira como os caracteres cruzados ( te f) se conectam e letras como i.

Eu tenho esse problema há muito tempo (em vários sistemas) e me pergunto se alguém já viu problemas semelhantes surgindo e encontrou uma maneira de corrigi-los.

Nota: Eu acho que isso afeta apenas o Firefox. Chrome e LibreOffice estão bem.

Oli
fonte

Respostas:

27

Outra solução que funcionará com todos os aplicativos, incluindo o Libre Office, é fornecida por aldeby :

Edite ou crie o arquivo ~/.fonts.confe cole este código nele:

<match target="font" >
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>

Certifique-se de manter a estrutura XML.

Faça logoff e logon novamente, e o Calibri (e possivelmente algumas outras fontes) parecerá muito melhor (na verdade ainda melhor do que com as outras respostas fornecidas aqui, porque as feias substituições de bitmap estão completamente desativadas).

Calimo
fonte
3
Essa é uma solução melhor do que as anteriores, pois é uma solução global e a eliminação de ligaduras é um problema. As ligaduras existem para tornar o texto mais agradável de ler e desativá-las para solucionar um problema de configuração não é o ideal.
21313
Qualquer um que é um pouco TOC ou o suficiente retentiva anal para se preocupar com a formatação adequadamente o conteúdo deste arquivo XML (é claro que você pessoal de Linux que não se preocupam com essas coisas ;-)):<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd"><fontconfig><match target="font"><edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit></match></fontconfig>
Adam Plocher
Link para Aldeby agora lidera a algum site esquema de phishing
Charsi
1
@charsi obrigado, substituí-o por um link para o Web Archive.
Calimo 20/10
Eu nem precisei sair e entrar novamente. Basta atualizar a página (no Firefox) e reiniciar o aplicativo (LibreOffice).
Marc.2377 26/09
9

Desativar ligaduras (veja a fonts.confresposta de Calimo ) é a direção errada! Ele pode remover as ligaduras "negritas" sobrescritas em fontes como Calibri , mas também remove parte da beleza da tipografia. Isso é semelhante a diminuir a fonte até que você não perceba a diferença.

Resolvi isso no meu sistema removendo a fonte Calibri, instalando o Carlito , que é " compatível com métricas com o Calibri" e empacotado com "uma entrada de mapeamento para fontconfig (local.conf)" e atualizando meu cache de fontes:

$ rm ~/.fonts/microsoft/CALIBRI*
$ sudo apt install fonts-crosextra-carlito
$ fc-cache

Você pode então verificar se Carlito representa Calibri:

$ fc-match Calibri
Carlito-Regular.ttf: "Carlito" "Regular"

(Se isso não funcionar, você pode precisar de algo como sudo rm /usr/share/fonts/truetype/msttcorefonts/calibri*o caso e a localização exata podem diferir.)

Antes de remover o Calibri da Microsoft, salvei um documento de teste no LibreOffice que usava o Calibri e fiz uma captura de tela. Depois disso, fechei o LibreOffice, o abri novamente e carreguei meu documento de teste. O nome da fonte "Calibri" foi colocado em itálico para indicar que foi substituído. Tirei uma captura de tela desta versão substituída e colei abaixo do original:

Testes Calibri

O texto acima é um par de capturas de tela de 13pt Calibri, com o Calibri da Microsoft acima do Carlito, correspondido por fontconfig. Não há negrito, nem formatação, "par kerning" ativado, conforme renderizado pelo LibreOffice 5.0.5.1.

Carlito é bem próximo de Calibri, as ligaduras são renderizadas corretamente e, em geral, é muito mais bonito.

Você pode fazer o mesmo com Caladea para Cambria com fonts-crosextra-caladeae você pode usar o Google Croscore Fontes Arimo, Tinos, e Cousine para Arial , Times New Roman e Courier New com fonts-croscore. Saiba mais no wiki Substituting Calibri and Cambria Fonts do Debian .

Mas e a Helvetica?

Esta pergunta é feita sobre a fonte Helvetica , que é a fonte sem serifa preferida da Apple . A Microsoft preferiu o Arial antes de mudar para Calibri. O mapeamento padrão do Linux varia de acordo com a distribuição, mas normalmente é o Nimbus Sans L ou o Liberation Sans , por exemplo

$ fc-match Helvetica
n019003l.pfb: "Nimbus Sans L" "Regular"

Se você executar isso e obter o Arial, essa é uma boa razão para ter o problema de ligadura descrito acima - Arial não é uma ótima fonte.

O Helvetica tem bastante cultura e não consigo encontrar uma fonte totalmente compatível com métricas com o Helvetica. Arial (e fontes compatíveis metricamente com Arial, incluindo Liberation Sans e seu fork, Arimo , têm larguras de caracteres idênticas (o que significa que são "principalmente" compatíveis com métricas; o texto será dividido da mesma forma que com Helvetica). Liberation Sans e Nimbus Sans parecem ter a estética mais semelhante.

Há também o IBM Plex , uma nova fonte com muito dinheiro por trás [ 1 ] [ 2 ] . O Plex foi projetado para substituir o Helvetica (também possui fontes condensadas, sem serifa e monoespaçada) em todos os materiais da IBM, embora não seja totalmente compatível com métricas para o Helvetica ou outras fontes. O Squirrel de fontes tem uma bela exibição de amostras das fontes Plex .

Aliases de Fontconfig

Para fazer o alias manualmente do Helvetica para outra fonte (e, portanto, não precisar remover o Calibri e / ou Arial, embora nesse caso você também deva ser alias dos manualmente), edite seu ~/.config/fontconfig/fonts.confarquivo (para sistemas mais antigos) ~/.fonts.conf. ao primeiro), conforme observado nesta resposta , adicionando uma nova <alias>seção para o Helvetica (este usa o Arimo. Verifique se você o instalou):

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

  <alias>
    <family>Helvetica</family>
    <prefer><family>Arimo</family></prefer>
  </alias>

</fontconfig>
Adam Katz
fonte
1
Esta é uma resposta muito melhor do que a aceita. Quero ponto lá fora, é um arquivo conf conveniente disponível no arco wiki: wiki.archlinux.org/index.php/Croscore_Fonts
Xananax
primeira linha agora deve ser sudo rm -R / usr / share / fonts / truetype / calibri
dez93_2000
Se o resultado de uma partida no Helvética do Fc É arial no Linux, você sabe como forçar o Liberation Sans? Basta excluir Arial? Obrigado
dez93_2000 23/07
@ dez93_2000 - isso é provavelmente /usr/share/fonts/truetype/msttcorefonts/callibri*. Atualizarei minha resposta para endereçar o alias de fonte, já que não cabe em um comentário.
Adam Katz
Examinei cuidadosamente os resultados renderizados da resposta aceita (usando a fonte Calibri) e não encontrei nenhuma diferença em comparação com um bom renderizador conhecido. Não faltava absolutamente nenhuma beleza.
Marc.2377 26/09
6

A resposta de lgarzo funcionará apenas em sites que possuem uma classe "noligs" no texto (a maioria dos sites não).

Para desativar globalmente as ligaduras em todos os sites, adicione a seguinte linha ao seu userChrome.css:

* { -moz-font-feature-settings: "liga" 0; }

A maneira mais fácil de fazer isso é criar um novo estilo com a extensão Stylish .

Calimo
fonte
+1 para a sugestão Stylish. AFAIR citei a documentação do Mozilla (desde que eu esperava que o OP pudesse transformá-lo como ele quisesse :)) Minha intenção era incluir a regra no CSS da página. (Não foi possível verificar a fonte, embora parece ser baixo ATM..)
lgarzo
1
Essa sintaxe era válida apenas até o Firefox 14, de acordo com o stackoverflow.com/a/15161336/4464570 , e agora não é mais reconhecida pelo navegador. Editei sua postagem para atualizá-la com a sintaxe atual.
Byte Commander
4

Algumas observações surgiram em minha mente enquanto olhava para a imagem:

  • As ligaduras parecem ser anti-alias , enquanto o restante do texto não é. Portanto, parece mais gordo que o texto normal (embora não possa negar, também parece em negrito).
  • AFAIK, a fonte Helvetica, é uma fonte não padrão , ou seja, não vem com instalações padrão do Windows. Você o instalou ou é uma fonte diferente?

Eu acho que o problema é baseado na fonte que não suporta ligaduras / kerning corretamente.

Você pode desativar as ligaduras no FF com a regra CSS abaixo:

/* disable common ligatures, usually on by default */
.noligs { -moz-font-feature-settings: "liga" 0; }

Fonte: Referência CSS: Extensões Mozilla

lgarzo
fonte
Essa sintaxe era válida apenas até o Firefox 14, de acordo com o stackoverflow.com/a/15161336/4464570 , e agora não é mais reconhecida pelo navegador. Editei sua postagem para atualizá-la com a sintaxe atual.
Byte Commander
1

Além da resposta de Calimo, os usuários do Archlinux podem encontrar ajuda https://wiki.archlinux.org/index.php/font_configuration - Desativar fontes de bitmap

Sugeriu a criação de um arquivo de configuração local ~ / .config / fontconfig / conf.d / 20-no-embedded.conf, mas optei por uma opção de sistema amplo

sudo touch /etc/fonts/conf.d/20-no-embedded.conf
sudo chmod 777 /etc/fonts/conf.d/20-no-embedded.conf
nano 777 /etc/fonts/conf.d/20-no-embedded.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>

Em seguida, basta reiniciar o aplicativo (no meu caso, thunderbird)

Uzumaki D. Ichigo
fonte
Se logo abaixo da linha "<match target =" font ">" você adicionar: <test name = "family"> <string> Calibri </string> </test> Ou qualquer que seja o nome da fonte (Helvetica), você edite apenas as configurações de fonte para essa fonte específica.
zeehio 22/08
A permissão deve ser 644, não 777, porque você está colocando um arquivo (não um link simbólico) lá.
Marc.2377 26/09