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


24

Con alcuni caratteri di Windows c'è un problema di visualizzazione in cui la crenatura della legatura sembra capovolgere e rendere le due lettere in grassetto. Ecco uno screenshot di un'e-mail che utilizza Helvetica in Firefox:

inserisci qui la descrizione dell'immagine

Come puoi vedere, sembra essere qualcosa nel modo in cui i personaggi incrociati ( te f) si connettono tra loro e lettere simili i.

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

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

Risposte:


27

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

Modifica o crea il file ~/.fonts.confe incolla questo codice in esso:

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

Assicurati di mantenere la struttura XML.

Disconnettersi e riconnettersi e Calibri (e forse alcuni altri caratteri) avrà un aspetto molto migliore (in realtà persino migliore rispetto alle altre risposte fornite qui, perché le brutte sostituzioni bitmap sono completamente disabilitate).


3
Questa è una soluzione migliore rispetto alle precedenti, poiché è una soluzione globale ed eliminare le legature è un gioco da ragazzi. Le legature sono lì per rendere il testo più piacevole da leggere e disattivarle per aggirare un problema di configurazione non è l'ideale.
scruss

Chiunque sia leggermente ossessivo-compulsivo o ritenzione anale abbastanza da preoccuparsi di formattare correttamente il contenuto di questo file XML (ovviamente voi gente di Linux non vi interessereste mai di queste cose ;-)):<?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,

Il collegamento ad aldeby ora porta a un sito di truffa di phishing
charsi,

1
@charsi grazie, l'ho sostituito con un collegamento all'Archivio Web.
Calimo,

Non ho nemmeno dovuto disconnettermi e accedere di nuovo. Basta semplicemente aggiornare la pagina (in Firefox) e riavviare l'applicazione (LibreOffice).
Marc.2377,

9

La disabilitazione delle legature (vedi la fonts.confrisposta di Calimo ) è nella direzione sbagliata! Può rimuovere quelle legature "audaci" troppo aliasate in caratteri come Calibri , ma rimuove anche parte della bellezza della tipografia. È piuttosto simile a ridurre il carattere fino a quando non si riesce a distinguere.

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

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

È quindi possibile verificare che Carlito sostituisca Calibri:

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

(Se questo non funziona, potresti aver bisogno di qualcosa come sudo rm /usr/share/fonts/truetype/msttcorefonts/calibri*il caso e la posizione esatta potrebbero differire.)

Prima di rimuovere Microsoft Calibri, ho salvato un documento di prova in LibreOffice che utilizzava Calibri e ho preso una schermata. Dopo averlo fatto, ho lasciato LibreOffice, l'ho aperto di nuovo e quindi ho caricato il mio documento di prova. Il nome del carattere "Calibri" era in corsivo per indicare che era stato sostituito. Ho preso una schermata di questa versione sostituita e incollata sotto l'originale:

Test di Calibri

Il testo sopra è una coppia di schermate di Calpt 13pt, con Calibri di Microsoft sopra Carlito come abbinato a fontconfig. Non c'è grassetto, nessuna formattazione, "coppia crenatura" abilitata, come reso da LibreOffice 5.0.5.1.

Carlito è abbastanza vicino a Calibri, le legature vengono visualizzate correttamente ed è complessivamente molto più carina.

Si può fare lo stesso con Caladea per Cambria con fonts-crosextra-caladeaed è possibile utilizzare Google Croscore font Arimo, Tinos, e Cousine per Arial , Times New Roman , e Courier New con fonts-croscore. Scopri di più su Debian sostituendo Calibri e Cambria Fonts wiki di .

E Helvetica?

Questa domanda pone riguardo al carattere Helvetica , che è il carattere sans-serif preferito da Apple . Microsoft ha preferito Arial prima di passare a Calibri. La mappatura Linux predefinita 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 esegui e ottieni Arial, questa è una buona ragione per avere il problema di legatura sopra descritto - Arial non è un font eccezionale.

Helvetica ha abbastanza la cultura che lo circonda e non riesco a trovare un font completamente compatibile con la metrica con Helvetica. Arial (e caratteri metricamente compatibili con Arial, tra cui Liberation Sans e il suo fork, Arimo , hanno identiche larghezze di carattere (il che significa che sono "per lo più" compatibili con la metrica; il testo andrà a finire allo stesso modo di Helvetica). Tra i caratteri gratuiti, Liberation Sans e Nimbus Sans sembrano avere l'estetica più simile.

C'è anche IBM Plex , un nuovo font con un sacco di soldi dietro [ 1 ] [ 2 ] . Plex è progettato per sostituire Helvetica (ha anche caratteri sans condensati e font serif e monospace) in tutti i materiali di IBM, sebbene non sia affatto metric compatibile con Helvetica o altri font. Font Squirrel ha una bella vista di campioni dei font Plex .

Alias ​​fontconfig

Per aliasare manualmente Helvetica su un altro font (e quindi non è necessario rimuovere Calibri e / o Arial, anche se in quel caso dovresti anche aliasarli manualmente), modifica il tuo ~/.config/fontconfig/fonts.conffile (per i sistemi più vecchi, vale a dire ~/.fonts.conf. Per evitare confusione, collego simbolicamente quest'ultimo al primo) come indicato in questa risposta , aggiungendo una nuova <alias>sezione per Helvetica (questa usa Arimo. Assicurati di averlo installato):

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

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

</fontconfig>

1
Questa è una risposta molto migliore di quella accettata. Voglio sottolineare che sull'arch wiki è disponibile un comodo file conf: wiki.archlinux.org/index.php/Croscore_Fonts
Xananax

la prima riga dovrebbe ora essere sudo rm -R / usr / share / fonts / truetype / calibri
dez93_2000

Se il proprio risultato Helvetica fc-match È arial su Linux, sai come forzare la Liberation Sans? Basta eliminare Arial? Grazie
dez93_2000 il

@ dez93_2000 - probabilmente /usr/share/fonts/truetype/msttcorefonts/callibri*. Aggiornerò la mia risposta per indirizzare l'aliasing dei caratteri poiché non si adatta a un commento.
Adam Katz,

Ho esaminato attentamente i risultati di rendering della risposta accettata (utilizzando il carattere Calibri) e non ho trovato alcuna differenza rispetto a un noto renderer noto. Non mancava assolutamente la bellezza.
Marc.2377,

6

la risposta di Lgarzo funzionerà solo su siti Web che hanno una classe "noligs" sul testo (la maggior parte dei siti Web no).

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 l' estensione Stylish .


+1 per il suggerimento alla moda. AFAIR Ho citato la documentazione di Mozilla (poiché mi aspettavo che l'OP potesse trasformarla come desiderava :)) La mia intenzione era quella di includere la regola nel CSS della pagina. (Non riesco a controllare la fonte, però. Sembra essere in bancomat.)
Lgarzo

1
Tale sintassi era valida solo fino a Firefox 14, secondo stackoverflow.com/a/15161336/4464570 , e ora non è più riconosciuta dal browser. Ho modificato il tuo post per aggiornarlo con la sintassi corrente.
Byte Commander

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 anche grassetto).
  • AFAIK il font Helvetica è un font non standard , cioè non viene fornito con installazioni di Windows predefinite. Lo hai installato o è un font diverso?

Penso che il problema si basi sul carattere che non supporta correttamente le legature / crenatura.

Puoi disabilitare 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


Tale sintassi era valida solo fino a Firefox 14, secondo stackoverflow.com/a/15161336/4464570 , e ora non è più riconosciuta dal browser. Ho modificato il tuo post per aggiornarlo con la sintassi corrente.
Byte Commander

1

Oltre alla risposta di Calimo, gli utenti di Archlinux possono trovare aiuto https://wiki.archlinux.org/index.php/font_configuration - Disabilitare i caratteri bitmap

Mi ha suggerito di creare un file di configurazione locale ~ / .config / fontconfig / conf.d / 20-no-embedded.conf, ma ho optato per un'opzione a livello 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)


Se proprio sotto la riga "<match target =" font ">" aggiungi: <test name = "family"> <string> Calibri </string> </test> O qualunque sia il nome del font (Helvetica), lo farai modificare solo le impostazioni del carattere per quel tipo di carattere specifico.
zeehio,

L'autorizzazione dovrebbe essere 644, non 777, perché stai inserendo un file (non un link simbolico) lì.
Marc.2377,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.