Difference between revisions of "Font configuration (Italiano)"

From ArchWiki
Jump to: navigation, search
(Disattivare i font bitmap: Aggiunto esempio per disabilitare i caratteri bitmap)
m (Infinality)
Line 382: Line 382:
  
 
===Infinality===
 
===Infinality===
 
+
{{Out of date}}
 
*[http://www.infinality.net/blog/?p=67 Home page].
 
*[http://www.infinality.net/blog/?p=67 Home page].
 
*[http://www.infinality.net/forum/ Forum].
 
*[http://www.infinality.net/forum/ Forum].
Line 406: Line 406:
 
Al fine di ottenere il filtraggio con applicazioni che utilizzao libXft per il disegno dei font, installare {{AUR|libxft-lcd}} da AUR.
 
Al fine di ottenere il filtraggio con applicazioni che utilizzao libXft per il disegno dei font, installare {{AUR|libxft-lcd}} da AUR.
  
{{Nota|Il pacchetto infinality è progettato per funzionare con [http://www.infinality.net/files/local.conf questo local.conf] (salvarlo come {{ic|/etc/fonts/local.conf}}). È molto probabile che si desiderino effettuare delle modifiche alla configurazione prima di usarlo (fa molte sostituzioni ai caratteri, impostando il font preferito su Arial, Times New Roman e Consolas.)}}
+
{{Nota|Il pacchetto infinality è progettato per funzionare con [http://www.infinality.net/files/local.conf questo local.conf] (salvarlo come {{ic|/etc/fonts/local.conf}}). È molto probabile che si desiderino effettuare delle modifiche alla configurazione prima di usarlo (fa molte sostituzioni ai caratteri, impostando il font preferito su Arial, Times New Roman e Consolas.)
 +
 
 +
''Il file README per {{AUR|freetype2-infinality}} vers. 2.4.8-5 dice: /etc/fonts/local.conf non esiste, o non contiene configurazioni legate ad infinality.  Il file local.conf è ora obsoleto e completamente sostituito da questa configurazione.''}}
  
 
===Pacchetti Cleartype===
 
===Pacchetti Cleartype===

Revision as of 11:49, 31 January 2012

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Sommario help replacing me
Una panoramica delle opzioni di configurazione dei font e varie tecniche per migliorare la leggibilità dei font
Wiki Correlati
Fonts (Italiano): Informazioni sull'aggiunta dei carattere e raccomandazioni
Java Runtime Environment Fonts: caratteri specifici su Java di Sun
MS Fonts: Aggiungere font Microsoft e impostazioni per imitare i caratteri di Windows

Fontconfig è una libreria progettata per fornire un elenco di fonts disponibili per le applicazioni, e anche per la configurazione necessaria ad ottenere il relativo rendering. Vedere il pacchetto fontconfig e Wikipedia:Fontconfig. La libreria Free type (pacchetto freetype2) renderizza i font, sulla base di questa configurazione.

Anche se Fontconfig è l'attuale standard in Linux, alcune applicazioni si basano ancora sul metodo originale di categorizzazione dei font: la configurazione di Xorg server.

I pacchetti rendering dei font su Arch Linux includono il supporto per freetype2 con l'interprete bytecode (BCI) abilitato. Esistono dei pacchetti patchati per migliorare il rendering dei fonts, specialmente con monitor LCD. Vedere la sezione Pacchetti con patch riportata più avanti. Il pacchetto #Infinality consente sia l'auto-hinting che il subpixel rendering, permette la regolazione dei filtri LCD senza ricompilare e migliora l'auto-hinting dei caratteri in grassetto.

Percorso dei fonts

Per poter essere riconosciuti dalle applicazioni, i fonts devono essere catalogati per un accesso facile e veloce.

I percorsi dei font inizialmente noti a Fontconfig sono: /usr/share/fonts/ e ~/.fonts/ (dei quali Fontconfig esegue la scansione in modo ricorsivo). Per facilità di organizzazione e di installazione, si raccomanda di utilizzare questi percorsi dei font quando si installano nuovi font.

Per visualizzare un elenco noto di font fontconfig in un formato facile da leggere, digitare :

fc-list | sed 's,:.*,,' | sort -u

Verificare la presenza di percorsi di font Xorg noti esaminando il log:

$ grep /fonts /var/log/Xorg.0.log
Suggerimento: E' possibile vedere la lista dei percorsi dei caratteri riconosciuti da Xorg utilizzando il comando xset q.

Tenere presente che Xorg non esegue la ricerca in modo ricorsivo attraverso la cartella /usr/share/fonts come Fontconfig. Per aggiungere un percorso, bisogna specificarlo in modo completo:

Section "Files"
  FontPath  "/usr/share/fonts/local"
EndSection

Se si vogliono impostare i percorsi dei caratteri per ogni utente, è possibile aggiungere e rimuovere gli stessi aggiungendo al file ~/.xinitrc quanto segue:

xset +fp /usr/share/fonts/local/  # Prepend a custom font path to Xorg's list of known font paths
xset -fp /usr/share/fonts/sucky_fonts/  # Remove the specified font path from Xorg's list of known font paths

Per visualizzare un elenco di caratteri Xorg noti usare xlsfonts, dal pacchetto xorg-xlsfonts.

Configurazione fontconfig

Fontconfig è documentato nella relativa man page fonts.conf

La configurazione può essere effettuata sia per il singolo utente attraverso Template:Filename, o globalmente con Template:Filename. Le impostazioni di configurazione per il singolo utente hanno la precedenza sulla configurazione globale. Entrambi i file utilizzano la stessa sintassi.

Fontconfig raccoglie tutte le configurazioni in un file centrale (/etc/fonts/fonts.conf). Questo è un file temporaneo e non deve essere modificato in quanto viene sostituito durante gli aggiornamenti di fontconfig. Fontconfig informa le applicazioni di attingere a questo file per conoscere i font disponibili e come devono venir randerizzati. Questo file è un insieme di regole dalle varie configurazioni di fontconfig (la configurazione globale (/etc/fonts/local.conf), i preset configurati in /etc/fonts/conf.d/, e il file di configurazione utente (~/.fonts.conf).

Nota: Per alcuni ambienti desktop (come GNOME e KDE) utilizzando il Font Control Panel si creerà o sovrascriverà automaticamente il file di configurazione font dell'utente. Per questi ambienti desktop, è meglio far corrispondere le configurazioni già definite dei font per ottenere il comportamento previsto.

I file di configurazione di Fontconfig utilizzano il formato XML e necessitano di questi headers:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 
  <!-- settings go here --> 
 
</fontconfig>

Per evitare ripetizioni, il resto degli esempi di configurazione in questo articolo ometteranno questi tag.

Presets

Ci sono già una serie di preset configurati nella directory /etc/fonts/conf.avail. Questi preset possono essere legati sia all'impostazione del singolo utente, che a quella globale del sistema, tramite la creazione di link simbolici. I preset sovrascriveranno le impostazioni corrispondenti nei loro rispettivi file di configurazione.

Ad esempio, per abilitare il rendering sub-pixel RGB a livello globale:

# cd /etc/fonts/conf.d
# ln -s ../conf.avail/10-sub-pixel-rgb.conf

Per abilitare globalmente l'autohinting:

# cd /etc/fonts/conf.d
# ln -s ../conf.avail/10-autohint.conf
Tip: Dovrebbe essere d'aiuto applicare entrambi i comandi sopracitati dopo l'installazione MS Fonts, se i caratteri non si visualizzano bene (ad esempio in Google o Gmail).

Per fare la stessa cosa modificando la configurazione per il singolo utente:

$ mkdir ~/.fonts.conf.d
$ ln -s /etc/fonts/conf.avail/10-sub-pixel-rgb.conf ~/.fonts.conf.d

Anti-aliasing

Anti-aliasing (rasterizzazione dei caratteri) converte i font vettori a bitmap per la visualizzazione, e in tal modo fornisce un effetto di arrotondamento dei font. Senza anti-aliasing (anche a valori DPI maggiori) i caratteri apparirebbero frastagliati, così anti-aliasing è abilitato di default.

  <match target="font">
    <edit name="antialias" mode="assign">
      <bool>true</bool>
    </edit>
  </match>

Hinting

Font hinting regola la spaziatura dei caratteri in modo che siano allineati con la griglia dei pixel. Conosciuto anche come "instructing", fa uso di istruzioni matematiche per regolare la visualizzazione dei caratteri in modo che si allineino con una griglia rasterizzata, come quella dei pixel in un display. I caratteri non correttamente allineati senza hinting fino alla visualizzazione, hanno valori di 300 DPI o più. Sono disponibili due tipi di hinting.

Byte-Code Interpreter (BCI)

Utilizzando l'hinting normale, le istruzioni TrueType hinting nei font vengono interpretate da freetype "Byte-Code Interpreter". Questo funziona meglio per i font con un buon livello di istruzioni hinting.

Per abilitare il normal hinting:

  <match target="font">
    <edit name="hinting" mode="assign">
      <bool>true</bool>
    </edit>
  </match>

Autohinter

Un'autoimpostazione per l'hinting. Viene visualizzato peggio che con l'hinting normale per i font con buon livello di instruzioni, ma meglio per quelli con poco o nessun livello di istruzioni. L'autohinter ed il subpixel rendering non sono progettati per lavorare insieme e non dovrebbero essere utilizzati in combinazione.

Per abilitare l'autohinter:

  <match target="font">
    <edit name="autohint" mode="assign">
      <bool>true</bool>
    </edit>
  </match>

Hint style

Hint style è il valore di "incidenza" che la modalità hinting può avere. Hinting può essere impostato su: hintfull, hintmedium, hintslight (consigliato) e hintnone. Con il BCI hinting, hintfull dovrebbe funzionare meglio per molti font. Senza autohinter, è consigliabile hintslight.

  <match target="font">
    <edit name="hintstyle" mode="assign">
      <const>hintslight</const>
    </edit>
  </match>

Subpixel rendering

Subpixel rendering effettivamente triplica la risoluzione orizzontale (o verticale) per i font facendo uso dei subpixel. L'autohinter ed il subpixel rendering non sono progettati per lavorare insieme e non dovrebbero essere utilizzati in combinazione.

La maggior parte dei monitor attuali usano specifiche per il rosso, il verde e il blu (RGB). Fontconfig avrà bisogno di conoscere il tipo di monitor per poter visualizzare correttamente i font.

RGB (molto comune), BGR, V-RGB (verticale), o V-BGR

Per abilitare il subpixel rendering:

  <match target="font">
    <edit name="rgba" mode="assign">
      <const>rgb</const>
    </edit>
  </match>

Se si notano delle imperfezioni o dei colori insoliti attorno ai caratteri, si può correggere l'errata configurazione dei pixel. La pagina qui può aiutare ad identificare il monitor.

Filtro LCD

Quando si utilizza sub pixel rendering, è necessario abilitare il filtro LCD, che è progettato per ridurre la frangiatura del colore. Ciò è descritto in LCD filtering nella Free type 2 API reference. Altre opzioni sono descritte in FT_LcdFilter e sono illustrate nella pagina LCD filter test.

Il lcddefault filtro funzionerà per la maggior parte degli utenti. Altri filtri disponibili che possono essere usati in situazioni particolari: lcdlight; un filtro leggero ideale per quei caratteri che sembrano troppo "grossi" o "sfocati", lcdlegacy, il filtro Cairo originale; e lcdnone per disabilitarlo completamente.

  <match target="font">
    <edit mode="assign" name="lcdfilter">
      <const>lcddefault</const>
    </edit>
  </match>

Pacchetti LCD originali

Si può installare fontconfig-lcdAUR da AUR per abilitare il filtro lcddefault automaticamente.

Cairo 1.10 in [extra] include il supporto per il filtro LCD. Al fine di ottenere il filtraggio per le applicazioni che utilizzano libXft per il disegno dei caratteri, è necessario installare libxft-lcdAUR da AUR.

Specifiche filtro LCD avanzate

Se i filtri incorporati LCD disponibili non sono soddisfacenti, è possibile modificare il rendering dei font molto specificatamente compilando un pacchetto freetype2 personalizzato e modificando i filtri. Per compilare ed installare i pacchetti da sorgente si può utilizzare l'Arch Build System.

Note: Il pacchetto Infinality consente di ottimizzare l'impostazione del filtro con una variabile d'ambiente, senza ricompilare.

Per prima cosa, fare un "refresh" del PKGBUILD di freetype2 da root:

# abs extra/freetype2

Questo esempio utilizza /var/abs/build come la cartella di compilazione, sostituirla secondo la propria configurazione ABS personale. Scaricare ed estrarre il pacchetto freetype2 come utente normale:

$ cd /var/abs/build
$ cp -r ../extra/freetype2 .
$ cd freetype2
$ makepkg -o

Modificare il file src/freetype-VERSION/src/base/ftlcdfil.c e cercare la definizione della costante default_filter[5]:

static const FT_Byte  default_filter[5] =
    { 0x10, 0x40, 0x70, 0x40, 0x10 };

Questa costante definisce un filtro low-pass applicato alla randerizzazione del carattere. Modificarlo in base alle esigenze. Salvare il file, compilare e installare il pacchetto personalizzato:

$ makepkg -e
$ sudo pacman -Rd freetype2
$ sudo pacman -U freetype2-VERSION-ARCH.pkg.tar.xz

Riavviare o reiniziare X. Il filtro predefinito lcd dovrebbe ora randerizzare i font differentemente.

Disabilitare l'auto-hinter per i caratteri in grassetto

L'auto-hinter utilizza sofisticati metodi per il rendering dei font, ma spesso rende i caratteri in grassetto troppo grossi. Una soluzione può essere disattivare l'auto-hinter per i caratteri in grassetto, pur mantenendolo per il resto:

...
<match target="font">
    <test name="weight" compare="more">
        <const>medium</const>
    </test>
    <edit name="autohint" mode="assign">
        <bool>false</bool>
    </edit>
</match>
...

Abilitare l'anti-aliasing solo per i caratteri grandi

Consultare anche sharpfonts.co.cc per ulteriori informazioni

Alcuni utenti preferiscono una visualizzazione più nitida non ottenibile con l'anti-aliasing:

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

<match target="font" >
    <test name="size" qual="any" compare="more">
        <double>12</double>
    </test>
    <edit name="antialias" mode="assign">
        <bool>true</bool>
    </edit>
</match>

<match target="font" >
    <test name="pixelsize" qual="any" compare="more">
        <double>17</double>
    </test>
    <edit name="antialias" mode="assign">
        <bool>true</bool>
    </edit>
</match>
...

Sostituire i font

Il modo più sicuro per farlo è di aggiungere del codice XML simile a quello qui sotto. Questo farà sì che Bitstream Vera Sans venga utilizzato al posto di Helvetica:

...
<match target="pattern" name="family" >
    <test name="family" qual="any" >
        <string>Helvetica</string>
    </test>
    <edit name="family" mode="assign">
        <string>Bitstream Vera Sans</string>
    </edit>
</match>
...

Un approccio alternativo è quello di impostare il font "preferito", ma questo funziona solo se il font originale non è presente sul sistema, nel qual caso quello specificato verrà quindi sostituito:

...
< !-- Replace Helvetica with Bitstream Vera Sans Mono -->
< !-- Note, an alias for Helvetica should already exist in default conf files -->
<alias>
    <family>Helvetica</family>
    <prefer><family>Bitstream Vera Sans Mono</family></prefer>
    <default><family>fixed</family></default>
</alias>
...

Disattivare i font bitmap

Per disattivare i font bitmap in fontconfig, usare 70-no-bitmaps.conf (che di default non è incluso in fontconfig):

# cd /etc/fonts/conf.d
# rm 70-yes-bitmaps.conf
# ln -s ../conf.avail/70-no-bitmaps.conf

A seconda del tipo di fontconfig in uso (di default, o lcd patch) è possibile scegliere i tipi di carattere per sostituire i font bitmap con (Helvetica, Courier e Times bitmap mapts per i font TTF) da:

# cd /etc/fonts/conf.d
# ln -s ../conf.avail/29-replace-bitmap-fonts.conf

Per disabilitare i caratteri bitmap incorporati per un carattere specifico:

<match target="font">
  <test qual="any" name="family">
    <string>Monaco</string>
  </test>
  <edit name="embeddedbitmap"><bool>false</bool></edit>
</match>

Creare stili grassetto e corsivo per i font incompleti

Freetype ha la capacità di creare automaticamente gli stili corsivo e grassetto per i font che non li hanno, ma solo se esplicitamente richiesto dall'applicazione. Dato che di rado i programmi inviano tali richieste, in questa sezione verrà trattata la creazione manuale forzata degli stili mancanti.

Iniziare modificando /usr/share/fonts/fonts.cache-1 come spiegato di seguito. Conservare una copia delle modifiche su un altro file, poiché un aggiornamento font eseguito con fc-cache sovrascriverà /usr/share/fonts/fonts.cache-1.

Supponendo che il font Dupree sia installato:

"dupree.ttf" 0 "Dupree:style=Regular:slant=0:weight=80:width=100:foundry=unknown:index=0:outline=True:etc...

Duplicare la riga, e cambiare style=Regular con style=Bold o qualsiasi altro stile. Modificare inoltre slant=0 con slant=100 per corsivo, weight=80 con weight=200 per grassetto, o entrambi per grassetto corsivo:

"dupree.ttf" 0 "Dupree:style=Bold Italic:slant=100:weight=200:width=100:foundry=unknown:index=0:outline=True:etc...

A questo punto aggiungere le modifiche necessarie a ~/.fonts.conf:

...
<match target="font">
    <test name="family" qual="any">
        <string>Dupree</string>
         <!-- other fonts here .... -->
     </test>
     <test name="weight" compare="more_eq"><int>140</int></test>
     <edit name="embolden" mode="assign"><bool>true</bool></edit>
</match>

<match target="font">
    <test name="family" qual="any">
        <string>Dupree</string>
        <!-- other fonts here .... -->
    </test>
    <test name="slant" compare="more_eq"><int>80</int></test>
    <edit name="matrix" mode="assign">
        <times>
            <name>matrix</name>
                <matrix>
                    <double>1</double><double>0.2</double>
                    <double>0</double><double>1</double>
                </matrix>
        </times>
    </edit>
</match>
...
Tip: Utilizzare il valore "embolden" per i caratteri in grassetto esistenti, al fine di renderli ancora più evidenti.

Cambiare le regole di overriding

Fontconfig elabora i file in /etc/fonts/conf.d in ordine numerico inverso. Questo innesca ed abilita le regole o i file a sovrascriversi, ma spesso confonde l'utente su quale file verrà analizzato per ultimo.

Per garantire che le impostazioni personali prevalgano su tutte le altre regole, cambiare il loro ordine:

# cd /etc/fonts/conf.d
# mv 50-user.conf 00-user.conf

Questo cambiamento sembra però essere poco utile nella maggior parte dei casi, poiché l'utente ha la facoltà di controllare, in maniera predefinita, le proprie impostazioni e preferenze, come le proprietà hinting e antialiasing, l'aggiunta di font, eccetera.

Esempio configurazione fontconfig

Esempi di configurazioni fontconfig possono essere trovati in questa pagina.

Pacchetti con patch

Questi pacchetti con le patch sono disponibili su AUR. Alcune considerazioni:

  • La configurazione è di solito necessaria.
  • Il nuovo rendering dei font, non verrà visualizzato fino a quando le applicazioni verranno riavviate.
  • Le applicazioni con collegamenti statici alle librerie non saranno influenzati dalle patch applicate alle librerie di sistema.

Ubuntu

Ubuntu utilizza i pacchetti originali LCD con le patch, alcune configurazioni extra e qualche ulteriore patch.

Installare i pacchetti con le patch da AUR. I nomi dei pacchetti sono freetype2-ubuntuAUR, fontconfig-ubuntuAUR, libxft-ubuntuAUR, cairo-ubuntuAUR.

Infinality

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Font configuration (Italiano)#)

Il patchset infinality mira a migliorare notevolmente il rendering dei font freetype2. Aggiunge nuove funzionalità multiple, tutte configurabili tramite variabili d'ambiente in /etc/profile.d/infinality-settings.sh.

  • Emboldening Enhancement: Disabilita e ingrossa, producendo un risultato migliore sui font senza versioni grassetto. Funziona su hinter nativo TT e autohinter.
  • Auto-Autohint: Forza automaticamente l'autohint sui font che non contengono istruzioni TT.
  • Autohint Enhancement: Rende lo snap autohint orizzontale ai pixels. Dà un risultato che appare come un buon hinting dei truetype font, ma è 100% libero da licenze.
  • Customized FIR Filter: Seleziona i valori del filtro in fase di esecuzione. Funziona su hinter nativo TT e autohinter.
  • Stem Alignment: Allinea i bitmap glyph per ottimizzare gli estremi dei pixel. Funziona su hinter nativo TT e autohinter.
  • Pseudo Gamma Correction: Schiarisce e oscura i glyph ai valori dati, sotto a certe dimensioni. Funziona su hinter nativo TT e autohinter.
  • Embolden Thin Fonts: Ingrossa caratteri sottili o leggeri per renderli più visibili. Funziona su autohinter.
  • Force Slight Hinting: Abilitarlo quando i programmi richiedono più hinting. Se si utilizza il file local.conf (incluso nel pacchetto infinality-settings di fedora) si noteranno dei miglioramenti sui caratteri @font-face.
  • ChromeOS Style Sharpening: ChromeOS utilizza una patch per migliorare l'aspetto dei fonts. Questa patch è ora inclusa nel patchset infinality.

freetype2-infinalityAUR può essere installato da AUR.

Inoltre, se si utilizza lib32-freetype2 da [multilib], sostituirlo con lib32-freetype2-infinalityAUR da AUR.

AUR contiene anche la versione Git di freetype2 che compilerà l'ultimo snapshot di sviluppo di freetype2 con il patchset Infinality: freetype2-git-infinalityAUR, lib32-freetype2-git-infinalityAUR.

Al fine di ottenere il filtraggio con applicazioni che utilizzao libXft per il disegno dei font, installare libxft-lcdAUR da AUR.

Nota: Il pacchetto infinality è progettato per funzionare con questo local.conf (salvarlo come /etc/fonts/local.conf). È molto probabile che si desiderino effettuare delle modifiche alla configurazione prima di usarlo (fa molte sostituzioni ai caratteri, impostando il font preferito su Arial, Times New Roman e Consolas.) Il file README per freetype2-infinalityAUR vers. 2.4.8-5 dice: /etc/fonts/local.conf non esiste, o non contiene configurazioni legate ad infinality. Il file local.conf è ora obsoleto e completamente sostituito da questa configurazione.

Pacchetti Cleartype

Questi pacchetti tentano di emulare Cleartype, una tipologia di rendering dei fonts che viene utilizzata nei sistemi Windows ed è progettato per funzionare sia su monitor LCD che CRT.

Installare i pacchetti patchati da AUR. Nomi pacchetti:

freetype2-cleartypeAUR libxft-cleartypeAUR cairo-cleartypeAUR

Ripristino dei pacchetti senza patch

Per ripristinare i pacchetti senza patch, reinstallare gli originali:

# pacman -S --asdeps freetype2 libxft cairo fontconfig

Applicazioni senza supporto fontconfig

Alcune applicazioni come LibreOffice ignoreranno le impostazioni di fontconfig. Questo è molto evidente quando si utilizzano le patch infinality, per le quali è molto importante una corretta configurazione. È possibile aggirare questo problema utilizzando ~/.Xresources , ma non è così flessibile come fontconfig. Esempio (vedere #Fontconfig configuration per chiarimenti sulle opzioni):

~/.Xresources
Xft.autohint: 0
Xft.lcdfilter:  lcddefault
Xft.hintstyle:  hintfull
Xft.hinting: 1
Xft.antialias: 1
Xft.rgba: rgb

Assicurarsi che le impostazioni vengono caricate correttamente all'avvio di X con xrdb -q (Consultare Xresources per maggiori informazioni).

Risoluzione dei problemi

Caratteri distorti

Nota: 96 DPI non è uno standard. Per ottenere una corretta visualizzazione dei caratteri si dovrebbero impostare i DPI del proprio monitor, specialmente quando si utilizzano i subpixels.

Se, inaspettatamente, i caratteri continuano ad essere grandi o piccoli, sproporzionati o semplicemente non vengono visualizzati correttamente, fontconfig potrebbe stare utilizzando dei DPI non corretti.

Fontconfig dovrebbe essere in grado di rilevare i parametri DPI, come rilevato dal server Xorg. E' possibile controllare l'auto-rilevazione dei DPI con xdpyinfo:

$ xdpyinfo | grep dots
  resolution:    102x102 dots per inch
Nota: Per utilizzare il comando xdpyinfo, è necessario installare il pacchetto xorg-xdpyinfo.

Se i DPI non sono correttamente rilevati (di solito a causa di un errato EDID monitor), è possibile specificarli manualmente nella configurazione di Xorg, vedere Dimensione dello schermo e DPI. Questa è la soluzione raccomandata, ma potrebbe non funzionare con alcuni driver.

Fontconfig userà il valore di Xft.dpi, se impostato. Xft.dpi è solitamente impostato dal desktop environment (di solito l'impostazione DPI di Xorg) o manualmente in ~/.Xdefaults o ~/.Xresources. Utilizzare xrdb per trovare il valore:

$ xrdb -query | grep dpi
Xft.dpi: 102

Se questi problemi dovessero persistere è possibile impostare manualmente i DPI utilizzati da fontconfig:

...
<match target="pattern">
   <edit name="dpi" mode="assign"><double>96</double></edit>
</match>
...

Caratteri mancanti

Per l'utilizzo di Emacs, devono venir installati i pacchetti xorg-fonts-75dpi e xorg-fonts-100dpi.

Applicazioni GTK e QT meno recenti

Le applicazioni GTK moderne abilitano Xft in maniera predefinita, diversamente dalle versioni precedenti alla 2.2. Se non è possibile aggiornare queste applicazioni, forzare Xft per le vecchie applicazioni GNOME, aggiungendo al file ~/.bashrc:

export GDK_USE_XFT=1

Per applicazioni QT datate:

export QT_XFT=true

Rapido e semplice

Se si è perso molto tempo ed i caratteri non sono ancora perfettamente leggibili, provare quanto segue. Tuttavia, farlo nel modo più complicato ed imparare come funziona il tutto, è il metodo migliore da seguire.

Ottenere l'Anti-Alias, RGBA, Hinting, e LCDfilter in Firefox, LibreOffice, KDE Plasmoids, ecc..

Installare il pacchetto cairo-ubuntuAUR da AUR con le relative dipendenze.

Aggiungere questo al file //etc/fonts/conf.avail/51-local.conf. Effettuare nuovamente il login.

Nota: E' stato richiesto al manteiner del pacchetto cairo-ubuntuAUR di creare questo file. Controllare se è già stata effettuata l'aggiunta.
/etc/fonts/conf.avail/51-local.conf
 
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">
  <edit mode="assign" name="rgba">
   <const>rgb</const>

  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
 </match>	
 <match target="font">
  <edit mode="assign" name="hintstyle">
   <const>hintslight</const>
  </edit>
 </match>
 <match target="font">	
  <edit mode="assign" name="antialias">
   <bool>true</bool>	
  </edit>
 </match>
  <match target="font">
   <edit mode="assign" name="lcdfilter">
    <const>lcddefault</const>
   </edit>	
  </match>
</fontconfig>

Ulteriori risorse