Come posso correggere le legature dei font TTF (tt, ti, fi, ff, ecc.) in Firefox?

20

Con alcuni tipi di carattere di Windows c'è un problema di visualizzazione in cui il kerning della legatura sembra capovolgere e rendere le due lettere in grassetto. Ecco uno screenshot di un'email con Helvetica in Firefox:

Come puoi vedere, sembra che si tratti di caratteri incrociati ( t e f ) che si connettono tra loro e lettere come i .

Ho avuto questo problema per un tempo molto lungo (su più sistemi) e mi chiedevo se qualcuno avesse mai visto simili problemi spuntare e trovato un modo per risolverli.

Nota: penso che questo abbia effetto solo su Firefox. Chrome e LibreOffice vanno bene entrambi.

    
posta Oli 26.04.2012 - 11:30

5 risposte

23

Un'altra soluzione che funzionerà con tutte le applicazioni, incluso Libre Office, è fornita da Aldeby :

Modifica o crea il file ~/.fonts.conf e incolla questo codice al suo interno:

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

Assicurati di mantenere la struttura XML.

Disconnettersi e ricominciare, e Calibri (e possibilmente qualche altro font) apparirà molto meglio (in realtà anche meglio che con le altre risposte date qui, perché le brutte sostituzioni di bitmap sono completamente disabilitate).

    
risposta data Calimo 12.09.2012 - 14:15
8

Disabilitare le legature (vedi La risposta di fonts.conf di Calimo ) è nella direzione sbagliata! È possibile rimuovere le legature "in grassetto" sovraalizzate in tipi di carattere come Calibri , ma rimuove anche parte della bellezza della tipografia. È piuttosto simile al restringimento del carattere finché non si riesce a capire la differenza.

Ho risolto questo problema per il mio sistema rimuovendo il carattere Calibri, installando Carlito , che è " metrico-compatibile con Calibri" ed è impacchettato con "una voce di mappatura a fontconfig (local.conf), "e aggiornando la mia cache dei font:

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

Puoi quindi verificare che Carlito sostituisce Calibri:

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

Prima di rimuovere il Calibri di Microsoft, ho salvato un documento di prova in LibreOffice che utilizzava Calibri e scattava una schermata. Dopo averlo fatto, ho lasciato LibreOffice, l'ho riaperto e poi caricato il mio documento di test. Il nome del font "Calibri" è stato in corsivo per indicare che è stato sostituito. Ho scattato una schermata di questa versione sostituita e l'ho incollata sotto l'originale:

Il testo sopra riportato è un paio di schermate di 13pt Calibri, con Calibri di Microsoft sopra Carlito in combinazione con fontconfig. Non c'è nessuna grassetto, nessuna formattazione, abilitata "pair kerning", come mostrato da LibreOffice 5.0.5.1.

Carlito è abbastanza vicino a Calibri, le legature sono visualizzate correttamente ed è molto più carina in generale.

Puoi fare lo stesso con Caladea per Cambria con fonts-crosextra-caladea e puoi utilizzare Caratteri Croscore Arimo, Tinos e Cousine per Arial , Times New Roman e Courier New con fonts-croscore . Ulteriori informazioni su Sostituzione dei font Calibri e Cambria wiki.

Ma che mi dici di Helvetica?

Questa domanda chiede il carattere Helvetica , che è preferito da sans-serif font. Microsoft ha preferito Arial prima di passare a Calibri. Il mapping predefinito di Linux varia in base alla distribuzione, ma in genere è Nimbus Sans L o Liberation Sans , ad es.

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

Se lo si esegue e si ottiene Arial, questa è una buona ragione per avere il problema della legatura sopra descritto - Arial non è un grande font.

Helvetica ha abbastanza cultura che lo circonda e non riesco a trovare un font che sia completamente compatibile con la metrica con Helvetica. Arial (e i caratteri metricamente compatibili con Arial, tra cui Liberation Sans e la sua forcella, Arimo , hanno le stesse larghezze di caratteri (il che significa che "per lo più" metrico-compatibile, il testo si avvolgerà come con Helvetica). Tra i font gratuiti, Liberation Sans e Nimbus Sans sembra avere l'estetica più simile.

C'è anche IBM Plex , un nuovo font con molti soldi dietro di esso [ 1 ] [ 2 ] . Plex è progettato per sostituire Helvetica (ha anche condensato sans così come font serif e monospace) in tutti i materiali di IBM, sebbene non sia affatto compatibile con la metrica con Helvetica o con altri font. Font Squirrel ha una bella vista di esempi dei font Plex .

    
risposta data Adam Katz 06.02.2016 - 03:32
6

la risposta di lgarzo funzionerà solo sui siti web che hanno una classe "noligs" sul testo (la maggior parte dei siti Web non lo fa).

Per disabilitare globalmente le legature su tutti i siti web, aggiungi la seguente riga al tuo userChrome.css :

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

Il modo più semplice per farlo è creare un nuovo stile con Elegante estensione.

    
risposta data Calimo 05.07.2012 - 11:09
4

Alcune osservazioni mi sono venute in mente mentre guardavo l'immagine:

  • Le legature sembrano essere anti-alias , mentre il resto del testo non lo è. Quindi sembra più grasso del testo normale (anche se non posso negarlo sembra in grassetto).
  • AFAIK il font Helvetica è un carattere non standard , ad esempio non viene fornito con installazioni Windows predefinite. Avete installato, o è un font diverso?

Penso che il problema sia basato sul carattere che non supporta legature / crenature correttamente.

Puoi disattivare le legature in FF con la regola CSS di seguito:

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

Fonte: Riferimento CSS: Mozilla Extensions

    
risposta data lgarzo 26.04.2012 - 12:02
0

Oltre alla risposta di Calimo, gli utenti di Archlinux possono trovare aiuto link - Disabilitare i caratteri bitmap

Ha suggerito di creare un file di configurazione locale ~ / .config / fontconfig / conf.d / 20-no-embedded.conf, ma ho optato per un'opzione di sistema

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>

Quindi riavvia l'app (nel mio caso thunderbird)

    
risposta data Uzumaki D. Ichigo 02.06.2017 - 18:50

Leggi altre domande sui tag