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.

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).


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>

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 .


+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


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)


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.