Migliorare l'aspetto dei font: differenze tra le versioni

m
→‎Xft: Nascosto box informativo riguardante Infinality e rimosso del vecchio testo nascosto riguardante Iceweasel
(→‎Xft: revisione)
m (→‎Xft: Nascosto box informativo riguardante Infinality e rimosso del vecchio testo nascosto riguardante Iceweasel)
 
(22 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Wheezy|Jessie|Testing_2016|Unstable_2016}}
{{Versioni compatibili|Wheezy|Jessie|Testing_2016|Unstable_2016}}


= Introduzione =
== Introduzione ==
Molti nuovi utenti di Debian, specie se provengono da altre distribuzioni Linux più "rifinite", si lamentano del brutto aspetto che hanno i caratteri, (anche se ad alcuni invece piacciono, de gustibus). Il problema risiede nella configurazione predefinita di Debian, che non imposta il [http://en.wikipedia.org/wiki/Font_rasterization rendering dei caratteri] adeguatamente. Nelle ultime versioni di Debian la situazione "out of the box" è un po' migliorata, ma si può fare di più.
Molti nuovi utenti di Debian, specie se provengono da altre distribuzioni Linux più "rifinite", si lamentano del brutto aspetto che hanno i caratteri, (anche se ad alcuni invece piacciono, de gustibus). Il problema risiede nella configurazione predefinita di Debian, che non imposta il [http://en.wikipedia.org/wiki/Font_rasterization rendering dei caratteri] adeguatamente. Nelle ultime versioni di Debian la situazione "out of the box" è un po' migliorata, ma si può fare di più.


Ci sono vari modi e tanti parametri per migliorare il rendering, di seguito si farà un'esposizione quanto più esplicativa possibile (spero). Ulteriori approfondimenti sull'argomento si possono reperire nell'ultimo capitolo "[[Migliorare l'aspetto dei font#Riferimenti|Riferimenti]]".<br>
Ci sono vari modi e tanti parametri per migliorare il rendering, di seguito si farà un'esposizione quanto più esplicativa possibile (spero). Ulteriori approfondimenti tecnici sull'argomento si possono reperire nell'ultimo capitolo "[[Migliorare l'aspetto dei font#Riferimenti|Riferimenti]]".<br>
A chi invece interessa solo il risultato finale può leggere direttamente la "[[Migliorare l'aspetto dei font#Guida rapida|Guida rapida]]".
A chi invece interessa solo il risultato finale può leggere direttamente la "[[Migliorare l'aspetto dei font#Guida rapida|Guida rapida]]".


In passato, prima di cominciare si sarebbe dovuto controllare che fossero state installate le librerie responsabili della gestione e visualizzazione dei font, e cioè [http://freetype.org/ FreeType], [http://fontconfig.org/ Fontconfig], [http://fribidi.org/ FriBidi], [http://www.freedesktop.org/wiki/Software/HarfBuzz HarfBuzz], [http://pango.org Pango], [http://www.freedesktop.org/wiki/Software/Xft/ Xft] e [http://www.cairographics.org/ Cairo], ma ora sarebbe un controllo superfluo, dato che queste librerie sono dipendenze di molti software e dei principali ambienti desktop. Quasi tutti i software che utilizzano una GUI avranno tra le dipendenze anche qualcuna di queste librerie.
In passato, prima di cominciare si sarebbe dovuto controllare che fossero state installate le librerie responsabili della gestione e visualizzazione dei font, e cioè [http://freetype.org/ FreeType], [http://fontconfig.org/ Fontconfig], [http://fribidi.org/ FriBidi], [http://www.freedesktop.org/wiki/Software/HarfBuzz HarfBuzz], [http://pango.org Pango], [http://www.freedesktop.org/wiki/Software/Xft/ Xft] e [http://www.cairographics.org/ Cairo], ma ora sarebbe un controllo superfluo, dato che queste librerie sono dipendenze di molti software e dei principali ambienti desktop. Quasi tutti i software che utilizzano una GUI avranno tra le dipendenze anche qualcuna di queste librerie.


Se invece si utilizza Debian senza un interfaccia grafica, quindi si visualizzano a schermo solo dei [http://en.wikipedia.org/wiki/Computer_font#Bitmap_fonts caratteri bitmap], questa guida potrebbe essere utile solo nel paragrafo che riguarda la [[Migliorare l'aspetto dei font#Console Linux|console Linux]]).
Se invece si utilizza Debian senza un interfaccia grafica, e quindi si visualizzano a schermo solo dei [http://en.wikipedia.org/wiki/Computer_font#Bitmap_fonts caratteri bitmap], questa guida potrebbe risultare utile solo per il paragrafo che riguarda la [[Migliorare l'aspetto dei font#Console Linux|console Linux]].


= Fontconfig =
== Fontconfig ==
''Fontconfig'' è la libreria responsabile di fornire l'elenco dei caratteri disponibili nel sistema alle applicazioni e tra le varie funzioni c'è anche quella di indicare a ''FreeType'' come disegnare i caratteri. Ha un linguaggio di configurazione in XML che permette un'elevata personalizzazione, ma che ne limita la semplicità d'uso. Ad esempio può essere configurato per usare l'antialiasing su tutti i font tranne che su quelli di lingue orientali, oppure può disabilitare l'hinting su uno specifico font quando questo è di dimensioni inferiori a 8 punti.
''Fontconfig'' è la libreria responsabile di fornire l'elenco dei caratteri disponibili nel sistema alle applicazioni e tra le varie funzioni c'è anche quella di indicare a ''FreeType'' come disegnare i caratteri. Ha un linguaggio di configurazione in XML che permette un'elevata personalizzazione, ma che ne [https://eev.ee/blog/2015/05/20/i-stared-into-the-fontconfig-and-the-fontconfig-stared-back-at-me/ limita la semplicità d'uso]. Ad esempio può essere configurato per usare l'antialiasing su tutti i font tranne che su quelli di lingue orientali, oppure può disabilitare l'hinting su uno specifico font quando questo è di dimensioni inferiori a 8 punti.


La configurazione predefinita di ''Fontconfig'' si trova in <code>/etc/fonts/conf.d/</code> ed è composta da tanti file, ognuno con una sua funzione specifica, intuibile dal nome stesso del file. In realtà tutti i file di configurazione si trovano in <code>/usr/share/fontconfig/conf.avail/</code> e vengono creati (o rimossi) dei link simbolici in <code>/etc/fonts/conf.d/</code> in base alla caratteristica che si vuole abilitare (o disabilitare).<br>
La configurazione predefinita di ''Fontconfig'' si trova in <code>/etc/fonts/conf.d/</code> ed è composta da tanti file, ognuno con una sua funzione specifica, intuibile dal nome stesso del file. In realtà tutti i file di configurazione si trovano in <code>/usr/share/fontconfig/conf.avail/</code> e vengono creati (o rimossi) dei link simbolici in <code>/etc/fonts/conf.d/</code> in base alla caratteristica che si vuole abilitare (o disabilitare).<br>
Riga 49: Riga 49:
<edit mode="append" name="hinting">
<edit mode="append" name="hinting">
<bool>true</bool>
<bool>true</bool>
</edit>
<!-- Abilitando l'autohinter verranno ignorate le istruzioni di hinting
    contenute nei font ma verrà usato un algoritmo generico di hinting,
    che è quasi sempre peggiore delle istruzioni ma potrebbe migliorare
    la visualizzazione dei font che non hanno istruzioni incorporate.
    L'autohinter e il subpixel rendering non sono programmati per lavorare
    insieme e non devono essere abilitati contemporaneamente. -->
<edit mode="append" name="autohint">
<bool>false</bool>
</edit>
</edit>


Riga 89: Riga 79:
<const>lcddefault</const>
<const>lcddefault</const>
</edit>
</edit>
<!-- Abilitando l'autohinter verranno ignorate le istruzioni di hinting
    contenute nei font e verrà usato invece un algoritmo generico di
    hinting che risulta spesso peggiore ma potrebbe migliorare la
    visualizzazione dei font che non hanno istruzioni incorporate, come
    molti font nel formato OpenType.
    Nelle più recenti versioni di FreeType, se l'hintstyle è impostato su
    "hintslight", verrà usato automaticamente l'autohinter se il font non
    contiene le istruzioni incorporate, quindi meglio ignorare questa
    opzione, così da essere gestita automaticamente. -->
<!--
<edit mode="append" name="autohint">
<bool>false</bool>
</edit>
-->


<!-- Fontconfig dovrebbe prendere il valore DPI da Xorg. Per controllare
<!-- Fontconfig dovrebbe prendere il valore DPI da Xorg. Per controllare
Riga 112: Riga 117:
<selectfont><rejectfont><pattern>
<selectfont><rejectfont><pattern>
<patelt name="scalable"><bool>false</bool></patelt>
<patelt name="scalable"><bool>false</bool></patelt>
</pattern></rejectfont></selectfont>
<!-- Rifiuta i font Type 1 perché non hanno un buon rendering -->
<selectfont><rejectfont><pattern>
<patelt name="fontformat"><string>Type 1</string></patelt>
</pattern></rejectfont></selectfont>
</pattern></rejectfont></selectfont>


Riga 188: Riga 198:
Alla fine del tuning potrete testare la vostra configurazione corrente [http://www.infinality.net/files/font.html in questa pagina].
Alla fine del tuning potrete testare la vostra configurazione corrente [http://www.infinality.net/files/font.html in questa pagina].


== Ubuntu ==
=== Ubuntu ===
Molti utenti che passano da Ubuntu a Debian o che li usano entrambi si lamentano dell'aspetto dei caratteri "out of the box", nettamente migliore su Ubuntu.
Molti utenti che passano da Ubuntu a Debian o che li usano entrambi si lamentano dell'aspetto dei caratteri "out of the box", nettamente migliore su Ubuntu.


Riga 200: Riga 210:
<pre># dpkg -i fonts-ubuntu_0.83-1.1_all.deb</pre>
<pre># dpkg -i fonts-ubuntu_0.83-1.1_all.deb</pre>


== Debian 7 e precedenti ==
=== Debian 7 e precedenti ===
A partire dalla [http://cgit.freedesktop.org/fontconfig/commit/?id&#61;8c255fb185d5651b57380b0a9443001e8051b29d versione 2.10] di ''Fontconfig'' (da Debian 8 "Jessie" in poi) sono cambiate le posizioni di alcuni file di configurazione, ma sarà mantenuta la compatibilità con alcuni dei vecchi percorsi ancora per qualche versione. Ecco una tabella comparativa:
A partire dalla [http://cgit.freedesktop.org/fontconfig/commit/?id&#61;8c255fb185d5651b57380b0a9443001e8051b29d versione 2.10] di ''Fontconfig'' (da Debian 8 "Jessie" in poi) sono cambiate le posizioni di alcuni file di configurazione, ma sarà mantenuta la compatibilità con alcuni dei vecchi percorsi ancora per qualche versione. Ecco una tabella comparativa:


Riga 219: Riga 229:
|}
|}


= Xft =
== Xft ==
"X FreeType interface library" come dice il nome stesso, è una libreria che serve ad interfacciare il rasterizzatore FreeType con X (precisamente con [http://en.wikipedia.org/wiki/X_Rendering_Extension XRender]).<br>
"X FreeType interface library" come dice il nome stesso, è una libreria che serve ad interfacciare il rasterizzatore FreeType con X (precisamente con [http://en.wikipedia.org/wiki/X_Rendering_Extension XRender]).<br>
Generalmente non dovrebbe esserci necessità di configurare Xft ma, come vedremo più avanti, può essere meglio impostarne manualmente i parametri per un risultato finale migliore. Per farlo è consigliabile usare gli stessi valori presenti in <code>~/.config/fontconfig/fonts.conf</code> o <code>/etc/fonts/local.conf</code> per evitare possibili conflitti.<br>
Generalmente non dovrebbe esserci necessità di configurare Xft ma, come vedremo più avanti, può essere meglio impostarne manualmente i parametri per un risultato finale migliore. Per farlo è consigliabile usare gli stessi valori presenti in <code>~/.config/fontconfig/fonts.conf</code> o <code>/etc/fonts/local.conf</code> per evitare possibili conflitti.<br>
Riga 233: Riga 243:
Xft.antialias: 1
Xft.antialias: 1
Xft.hinting: 1
Xft.hinting: 1
Xft.autohint: 0
Xft.hintstyle: hintslight
Xft.hintstyle: hintslight
Xft.rgba: rgb
Xft.rgba: rgb
Xft.lcdfilter: lcddefault
Xft.lcdfilter: lcddefault
! FreeType can set this automatically, better not forcing this on or off.
!Xft.autohint: 0




Riga 247: Riga 261:
Salviamo il file e riavviamo X facendo logout e login.
Salviamo il file e riavviamo X facendo logout e login.


Da notare però che '''KDE 5''' (e probabilmente anche altri ambienti desktop) sovrascrivano questi valori con quelli impostati nelle loro schermate di configurazione. Per fare una prova empirica, impostiamo <code>~/.Xresources</code> come sopra e poi mettiamo dei valori diversi in ''KDE 5'' > ''Impostazioni di sistema'' > ''Carattere'', e per l'esattezza ''Tipo di sub-pixel hinting'' "BGR" e ''Stile di hinting'' "Intero". Se riavviamo la sessione e controlliamo i valori Xft attuali con il comando:
Da notare però che '''KDE 5''' (e probabilmente anche altri ambienti desktop) sovrascrivono questi valori con quelli impostati nelle loro schermate di configurazione. Per fare una prova empirica, impostiamo <code>~/.Xresources</code> come sopra e poi mettiamo dei valori diversi in ''KDE 5'' > ''Impostazioni di sistema'' > ''Carattere'', e per l'esattezza ''Tipo di sub-pixel hinting'' "BGR" e ''Stile di hinting'' "Intero". Se riavviamo la sessione e controlliamo i valori Xft attuali con il comando:
<pre>$ xrdb -query | grep Xft</pre>
<pre>$ xrdb -query | grep Xft</pre>
i due valori cambiati, e cioè ''Xft.hintstyle'' e ''Xft.rgba'', corrisponderanno a quelli di KDE 5 e non a quelli di <code>~/.Xresources</code>.<br>
i due valori cambiati, e cioè ''Xft.hintstyle'' e ''Xft.rgba'', corrisponderanno a quelli di KDE 5 e non a quelli di <code>~/.Xresources</code>.<br>
È tuttavia consigliato impostare ugualmente questi valori in <code>~/.Xresources</code> perché KDE 5 non modifica tutti i valori (ad es. ''Xft.autohint'' e ''Xft.lcdfilter'' non sembrano essere presi in considerazione). E dato che molte applicazioni in GTK sembrano dipendere da Xft per il loro rendering (es. Synaptic), avere tutte le impostazioni configurate a dovere e con gli stessi valori tra '''fontconfig''', '''Xft''' e ambiente desktop, risulterà in un aspetto uniforme tra le varie applicazioni, a prescindere che siano in Qt, in GTK o altri toolkit.
È tuttavia consigliato impostare ugualmente questi valori in <code>~/.Xresources</code> perché KDE 5 non modifica tutti i valori (ad es. ''Xft.autohint'' e ''Xft.lcdfilter'' non sembrano essere presi in considerazione). E dato che molte applicazioni in GTK sembrano dipendere da Xft per il loro rendering (es. Synaptic), avere tutte le impostazioni configurate a dovere e con gli stessi valori tra '''fontconfig''', '''Xft''' e ambiente desktop, risulterà in un aspetto uniforme tra le varie applicazioni, a prescindere che siano in Qt, in GTK o altri toolkit.
{{Box|Nota|Se usate [[Migliorare l'aspetto dei font#Infinality|Infinality]] lo script di avvio <code>/etc/X11/Xsession.d/99infinality-settings</code> già si occupa di impostare questi parametri, quindi non è necessario specificarli altrove, se non nelle impostazioni dell'ambiente desktop, come appena visto sopra.}}
<!-- {{Box|Nota|Se usate [[Migliorare l'aspetto dei font#Infinality|Infinality]] lo script di avvio <code>/etc/X11/Xsession.d/99infinality-settings</code> già si occupa di impostare questi parametri, quindi non è necessario specificarli altrove, se non nelle impostazioni dell'ambiente desktop, come appena visto sopra.}}-->


<!--
== DPI ==
== Iceweasel ==
Stranamente Iceweasel usa ''XRender'' invece di qualcosa di più recente come ''OpenGL'' per disegnare i caratteri, e a volte questo potrebbe causare vari problemi di visualizzazione, come tearing e caratteri che sembrano in grassetto.<br>
Per dire ad Iceweasel di non usare più ''XRender'' basta aprire la pagina di configurazione all'indirizzo '''''about:config''''' e impostare con un doppio clic il valore di '''gfx.xrender.enabled''' su '''false''' e di '''layers.acceleration.force-enabled''' su '''true''' e riavviare il browser per applicare le modifiche.<br>
Da notare che ciò risolve il problema di visualizzazione dei caratteri, ma potrebbe far sorgere altri problemi, come ad esempio strani comportamenti di Adobe Flash Player (se presente).
-->
 
= Infinality =
Infinality è una combinazione di patch e configurazioni che puntano, come scrive l'autore [http://www.infinality.net/blog/infinality-freetype-patches/ sul suo sito], a migliorare la resa dei font imitando quelle dei vari sistemi operativi, e di permettere all'utente di personalizzare al meglio le impostazioni.
 
Principalmente, Infinality consiste in un set di patch da applicare al motore di rendering dei font ''FreeType'' per cambiarne alcuni comportamenti, e di un sistema di configurazione che si integra con ''Fontconfig''. Tra le varie configurazioni è degno di nota un "database" con un gran numero di font e le opzioni di rendering migliore per ognuno di essi (per esempio abilita l'autohint per i font senza istruzioni di hinting).
 
Alcuni utenti che hanno provato Infinality non ne sono rimasti colpiti, altri hanno espresso un'opinione negativa. Probabilmente avranno giudicato senza provare a cambiare le molte opzioni di configurazione messe a disposizione, oppure non hanno installato i font tipici dei sistemi operativi che vuole imitare Infinality, che è un requisito importante.
 
Il creatore del progetto (conosciuto proprio con il nickname Infinality) non lavora più su questo progetto da tempo, e attualmente sembra abbandonato da parte sua. L'utente [https://github.com/bohoomil/fontconfig-ultimate bohoomil] cominciò a portare avanti il progetto autonomamente, poi ha avuto il [http://www.infinality.net/forum/viewtopic.php?f=2&t=350 riconoscimento ufficiale].<br>
Bohoomil chiama il suo progetto [http://bohoomil.com/ Infinality ultimate], perché l'ha modificato sostanzialmente, aggiungendo ad esempio anche delle patch per la libreria ''Cairo''.
 
Comunque a detta di molti, il rendering di FreeType è ormai ottimo anche senza bisogno di queste patch, basta una buona configurazione.
 
== Installazione ==
Prima di installare Infinality è meglio fare pulizia di configurazioni ridondanti (che probabilmente Infinality riesce a bypassare, ma meglio esserne sicuri).
Copiare in una directory di backup e poi eliminare i file <code>/etc/fonts/local.conf</code> e la directory <code>~/.config/fontconfig/</code> con tutto il suo contenuto:
<pre>
$ mkdir ~/backupFC/
$ mv ~/.config/fontconfig/ ~/backupFC/
$ cp /etc/fonts/local.conf ~/backupFC/
# rm /etc/fonts/local.conf
</pre>
Controllare anche che i file <code>/etc/X11/Xresources/x11-common</code> e <code>~/.Xresources</code> non contengano righe con impostazioni [[Migliorare l'aspetto dei font#Xft|Xft]] (se sono presenti e non volete cancellarle direttamente si possono commentare con un '''''!''''' all'inizio della riga). Così dovremmo essere tornati alla configurazione iniziale di Debian.
 
Adesso si possono aggiornare <code>libfreetype6</code>, <code>libcairo2</code> e <code>libcairo-gobject2</code> con le versioni patchate e poi installare la configurazione di Infinality, contenuta in <code>fontconfig-infinality</code>:
{| class="wikitable"
|- align="center"
| '''Repository<br> completo''' || libfreetype6 || libcairo2 || libcairo-gobject2 || fontconfig-infinality
|- align="center"
| rowspan=2 | [https://drive.google.com/open?id=0B7AdLMiZn4FzT1FGTERscGtzc0E '''Wheezy''']<br> ''leggi sotto'' || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzM3g1Q0U4aDdSWU0 i386] || n.d. || n.d. || rowspan=2 | [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzeGlsRFFIMVNDbjA all]
|- align="center"
| [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzYlNITlQ0YWhjVk0 amd64] || n.d. || n.d.
|- align="center"
| rowspan=2 | [https://drive.google.com/open?id=0B7AdLMiZn4FzZWVXYmM5TE5YVUE '''Jessie'''] || [http://drive.google.com/uc?export=download&id= i386] || [http://drive.google.com/uc?export=download&id= i386] || [http://drive.google.com/uc?export=download&id= i386] || rowspan=2 | [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzQzJ4UGZjZGtsVTQ all]
|- align="center"
| [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzT2drTHFvY0ZxUFk amd64] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzWFp1NmlYRVR5R2s amd64] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzZ2ZmNjVBLVUtc28 amd64]
|- align="center"
| rowspan=2 | [https://drive.google.com/open?id=0B7AdLMiZn4FzflZIWDFMWUxMR2F4WGQwQkRkcThsaFFxV2x1S0dGWjgzcEdlVjgtaGV5U2c '''Stretch/Sid'''] || [http://drive.google.com/uc?export=download&id= i386] || [http://drive.google.com/uc?export=download&id= i386] || [http://drive.google.com/uc?export=download&id= i386] || rowspan=2 | [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzRDRiSEhPVDlQek0 all]
|- align="center"
| [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzMUtkRjduZUJpZkE amd64] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzaWFwNUw2MnJ1Ulk amd64] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzMkQ4Zk55MlE5eFU amd64]
|}
''I pacchetti per Wheezy sono vecchi e usano una versione precedente di fontconfig-infinality. Le [https://drive.google.com/open?id=1NoF8Cnbw_s5UR-7cMh-2DEqY6yhcq2_ZO2lAcP3IQhY istruzioni] di installazione e disinstallazione sono leggermente diverse, ed è meglio attenersi a quelle.''<br>
Gli altri pacchetti, il codice sorgente e i log di compilazione sono disponibili nei repository completi.
 
Se avete abilitato [[Usare pacchetti a 32 bit su sistemi a 64 bit|multiarch]], quasi sicuramente avrete già installato entrambe le versioni ''i386'' e ''amd64'' delle librerie sopra, quindi dovrete aggiornarle entrambe. Per installare il tutto:
<pre>
# dpkg -i ~/Scaricati/libfreetype6*infinality*.deb ~/Scaricati/libcairo*infinality*.deb ~/Scaricati/fontconfig-infinality*.deb
</pre>
Dopo l'installazione cambiate configurazione con il comando:
<pre>
# fc-presets set
</pre>
che permette di scegliere tra vari preset di impostazioni.
Dovrete inoltre impostare lo stile preferito nel file <code>/etc/X11/Xsession.d/99infinality-settings</code> (riga 42, variabile ''export INFINALITY_FT'', leggete le righe presenti sopra) e infine riavviare.
Per ottenere i risultati migliori è meglio installare i font tipici del sistema operativo prescelto, ed anche selezionare dalle impostazioni dei font del vostro ambiente desktop l'antialiasing ''RGB'' e l'hinting ''Full''.
<br>
È possibile creare anche altri preset e modificare altri parametri, ma per farlo rimando alla lettura del file <code>/etc/fonts/infinality/README</code> e dei file di configurazione <code>/etc/fonts/infinality/infinality.conf</code> e <code>/etc/X11/Xsession.d/99infinality-settings</code>.
 
== Disinstallazione ==
Per rimuovere Infinality e ripristinare lo status quo ante:
<pre>
# dpkg --purge --force-depends libfreetype6 libcairo2 libcairo-gobject2 fontconfig-infinality
# apt-get install libfreetype6 libcairo2 libcairo-gobject2
</pre>
o in caso di multiarch:
<pre>
# dpkg --purge --force-depends libfreetype6:i386 libcairo2:i386 libcairo-gobject2:i386 libfreetype6:amd64 libcairo2:amd64 libcairo-gobject2:amd64 fontconfig-infinality
# apt-get install libfreetype6:i386 libcairo2:i386 libcairo-gobject2:i386 libfreetype6:amd64 libcairo2:amd64 libcairo-gobject2:amd64
</pre>
poi ripristinare eventuali backup pre-Infinality:
<pre>
$ mv ~/backupFC/fontconfig/ ~/.config/
# cp ~/backupFC/local.conf /etc/fonts/
$ rm ~/backupFC/
</pre>
e infine riavviare.
 
= DPI =
Se i caratteri a schermo sono troppo piccoli (o troppo grandi) perché il monitor ha una risoluzione elevata (o bassa), si può cambiare il valore del [http://en.wikipedia.org/wiki/Dots_per_inch DPI] specificando quello reale dello schermo (che sarebbe più corretto chiamare [http://en.wikipedia.org/wiki/Pixels_per_inch PPI]).<br>
Se i caratteri a schermo sono troppo piccoli (o troppo grandi) perché il monitor ha una risoluzione elevata (o bassa), si può cambiare il valore del [http://en.wikipedia.org/wiki/Dots_per_inch DPI] specificando quello reale dello schermo (che sarebbe più corretto chiamare [http://en.wikipedia.org/wiki/Pixels_per_inch PPI]).<br>
Impostare il corretto DPI è necessario quando è richiesta una grande cura dei dettagli, come nel font rendering, ma anche in altri casi (software di grafica, di impaginazione, ecc.).<br>
Impostare il corretto DPI è necessario quando è richiesta una grande cura dei dettagli, come nel font rendering, ma anche in altri casi (software di grafica, di impaginazione, ecc.).<br>
In Debian e in tutte le distribuzioni Linux con Xorg, sono presenti due DPI: quello usato da Xorg e quello usato da Xft/Fontconfig.
In Debian e in tutte le distribuzioni Linux con Xorg, sono presenti due DPI: quello usato da Xorg e quello usato da Xft/Fontconfig.


== DPI di Xorg ==
=== DPI di Xorg ===
Xorg ricava il suo valore dall'[http://en.wikipedia.org/wiki/Extended_display_identification_data EDID] del monitor ma se non si discosta molto dallo standard (non ufficiale) dei 96 DPI, usa tale valore. Potete controllare il valore attualmente impostato con il comando:
Xorg ricava il suo valore dall'[http://en.wikipedia.org/wiki/Extended_display_identification_data EDID] del monitor ma se non si discosta molto dallo standard (non ufficiale) dei 96 DPI, usa tale valore. Potete controllare il valore attualmente impostato con il comando:
<pre>$ xdpyinfo | grep -B2 resolution</pre>
<pre>$ xdpyinfo | grep -B2 resolution</pre>
Riga 359: Riga 290:
{{Box|Nota|Testando KDE, sembrerebbe che questo ambiente desktop rilevi automaticamente il DPI esatto dello schermo, in quanto il test del foglio A4 viene superato senza l'uso della procedura sopra (utilizzando il visualizzatore di documenti predefinito di KDE, ''okular''). Provando ad installare ed usare ''evince'' (il visualizzatore predefinito di GNOME) su KDE questo non sembra beneficiare della rilevazione automatica, rendendo necessario l'utilizzo della procedura sopra per una visualizzazione in scala 1:1. Probabilmente è una questione di toolkit: [http://qt-project.org/ Qt] da questo punto di vista sembra superiore a [http://www.gtk.org/ GTK].}}
{{Box|Nota|Testando KDE, sembrerebbe che questo ambiente desktop rilevi automaticamente il DPI esatto dello schermo, in quanto il test del foglio A4 viene superato senza l'uso della procedura sopra (utilizzando il visualizzatore di documenti predefinito di KDE, ''okular''). Provando ad installare ed usare ''evince'' (il visualizzatore predefinito di GNOME) su KDE questo non sembra beneficiare della rilevazione automatica, rendendo necessario l'utilizzo della procedura sopra per una visualizzazione in scala 1:1. Probabilmente è una questione di toolkit: [http://qt-project.org/ Qt] da questo punto di vista sembra superiore a [http://www.gtk.org/ GTK].}}


== DPI di Xft / Fontconfig ==
=== DPI di Xft / Fontconfig ===
Questo DPI, rappresentato dalla variabile ''Xft.dpi'', serve praticamente solo per impostare la grandezza dei caratteri e di altri elementi grafici su schermo. Fontconfig usa il valore di ''Xft.dpi'' il quale, se non è stato impostato manualmente o dall'ambiente desktop, è uguale al DPI di Xorg.<br>
Questo DPI, rappresentato dalla variabile ''Xft.dpi'', serve praticamente solo per impostare la grandezza dei caratteri e di altri elementi grafici su schermo. Fontconfig usa il valore di ''Xft.dpi'' il quale, se non è stato impostato manualmente o dall'ambiente desktop, è uguale al DPI di Xorg.<br>
Per controllare l'attuale valore di Xft.dpi (e di altre variabili Xft impostate) usate il comando
Per controllare l'attuale valore di ''Xft.dpi'' (e di altre variabili Xft impostate) usate il comando
<pre>$ xrdb -query</pre>
<pre>$ xrdb -query | grep -i dpi</pre>
Se il valore Xft.dpi non è presente, è implicito che è uguale a quello di Xorg.
Se il valore ''Xft.dpi'' non è presente, è implicito che è uguale a quello di Xorg.
Per evitare possibili distorsioni dell'interfaccia grafica (tipo immagini bitmap che scalano male) è consigliabile impostare questo DPI sui dei valori "standard":
Per evitare possibili distorsioni dell'interfaccia grafica (tipo immagini bitmap che scalano male) è consigliabile impostare questo DPI sui dei valori "standard":
* 48 (50%)
* 48 (50%)
Riga 377: Riga 308:
* '''Xfce''' non imposta automaticamente il DPI, ma per farlo manualmente andare in "Impostazioni" > "Aspetto" > "Caratteri".<br>
* '''Xfce''' non imposta automaticamente il DPI, ma per farlo manualmente andare in "Impostazioni" > "Aspetto" > "Caratteri".<br>
* '''LXDE''' si comporta come Xfce.<br>
* '''LXDE''' si comporta come Xfce.<br>
* Anche '''KDE 4''' non cambia il DPI se non facendolo manualmente da "Impostazioni di sistema" > "Aspetto delle applicazioni" > "Caratteri".<br>
* Anche '''KDE ''' non cambia il DPI se non facendolo manualmente da "Impostazioni di sistema" > "Aspetto delle applicazioni" > "Caratteri".<br>
Se necessario, i valori del DPI possono anche essere impostati su <code>/etc/fonts/local.conf</code> e <code>/etc/X11/Xresources/x11-common</code> o nelle rispettive controparti per utente singolo <code>~/.config/fontconfig/fonts.conf</code> e <code>~/.Xresources</code>. Se per creare questi file avete usato le configurazioni-modello dei paragrafi precedenti, le sezioni dove inserire il DPI sono già presenti ma sono disattivate da un tag di commento: togliete quei tag per abilitare.
Se necessario, i valori del DPI possono anche essere impostati su <code>/etc/fonts/local.conf</code> e <code>/etc/X11/Xresources/x11-common</code> o nelle rispettive controparti per utente singolo <code>~/.config/fontconfig/fonts.conf</code> e <code>~/.Xresources</code>. Se per creare questi file avete usato le configurazioni-modello dei paragrafi precedenti, le sezioni dove inserire il DPI sono già presenti ma sono disattivate da un tag di commento: togliete quei tag per abilitare.
{{Box|Nota|Se usate [[Migliorare l'aspetto dei font#Infinality|Infinality]], dovete impostate i valori del DPI nei file <code>/etc/fonts/infinality/infinality.conf</code> e <code>/etc/X11/Xsession.d/99infinality-settings</code>}}
Nei valori DPI con parte decimale (per esempio 102.46) si usa il punto e non la virgola. Riavviate per vedere il risultato e, se questo non è soddisfacente, rimettete tutto com'era per tornare al valori standard.
Nei valori DPI con parte decimale (per esempio 102.46) si usa il punto e non la virgola. Riavviate per vedere il risultato e, se questo non è soddisfacente, rimettete tutto com'era per tornare al valori standard.


= Installazione nuovi caratteri =
== Installazione nuovi caratteri ==
Quando si vuole installare un nuovo carattere non presente nei repository di Debian, bisogna mettere i file del font in questione in determinate directory per essere utilizzabile.<br>
Quando si vuole installare un nuovo carattere non presente nei repository di Debian, bisogna mettere i file del font in questione in determinate directory per essere utilizzabile.<br>
La directory dove sono presenti tutti i font di sistema è <code>/usr/share/fonts/</code> ma è meglio non usare questa, perché appunto di sistema. I font vanno inseriti in <code>~/.local/share/fonts/</code> per poter essere usati dall'utente corrente, oppure in <code>/usr/local/share/fonts/</code> per metterli a disposizione di tutti gli utenti del sistema.<br>
La directory dove sono presenti tutti i font di sistema è <code>/usr/share/fonts/</code> ma è meglio non usare questa, perché appunto di sistema. I font vanno inseriti in <code>~/.local/share/fonts/</code> per poter essere usati dall'utente corrente, oppure in <code>/usr/local/share/fonts/</code> per metterli a disposizione di tutti gli utenti del sistema.<br>
Riga 413: Riga 343:
Da notare che, come per i vari software, anche i caratteri hanno un numero di versione, perché possono essere revisionati per svariati motivi (come per l'aggiunta dei glifi di una lingua non latina, per migliorarne le istruzioni di hinting, per perfezionare il design, ecc.).
Da notare che, come per i vari software, anche i caratteri hanno un numero di versione, perché possono essere revisionati per svariati motivi (come per l'aggiunta dei glifi di una lingua non latina, per migliorarne le istruzioni di hinting, per perfezionare il design, ecc.).


= Console Linux =
== Console Linux ==
Si possono anche cambiare i font bitmap della console Linux (i font visibili quando X non è avviato, per esempio quando si avvia il sistema in modalità ripristino) per aumentare la leggibilità.<br>
Si possono anche cambiare i font bitmap della console Linux (i font visibili quando X non è avviato, per esempio quando si avvia il sistema in modalità ripristino) per aumentare la leggibilità.<br>


Riga 432: Riga 362:
Per maggiori dettagli: <code>man console-setup</code>
Per maggiori dettagli: <code>man console-setup</code>


= Guida rapida =
== Guida rapida ==
Questa guida è un estratto di quanto scritto finora e serve da riferimento rapido, ma tralascia molti particolari (come ad esempio il [[Migliorare l'aspetto dei font#DPI|DPI]]). Se non siete alle prime armi e volete più dettagli, consiglio di leggere tutta la guida.
Questa guida è un estratto di quanto scritto finora e serve da riferimento rapido, ma tralascia dei particolari (come ad esempio il [[Migliorare l'aspetto dei font#DPI|DPI]]). Se non siete alle prime armi e volete più controllo sulla configurazione, consiglio di leggere tutta la guida.


== Configurazione di sistema ==
=== Configurazione di sistema ===
Come utente root o superuser creare il file <code>/etc/fonts/local.conf</code> con un editor di testi (es. ''nano''):
Come utente root creare il file <code>/etc/fonts/local.conf</code> con un editor di testi (es. ''nano''):
<pre># nano /etc/fonts/local.conf</pre>
<pre># nano /etc/fonts/local.conf</pre>
e incollare quanto segue:
e incollare quanto segue:
Riga 449: Riga 379:
     <edit mode="append" name="hinting">
     <edit mode="append" name="hinting">
       <bool>true</bool>
       <bool>true</bool>
    </edit>
    <edit mode="append" name="autohint">
      <bool>false</bool>
     </edit>
     </edit>
     <edit mode="append" name="hintstyle">
     <edit mode="append" name="hintstyle">
Riga 468: Riga 395:
   <selectfont><rejectfont><pattern>
   <selectfont><rejectfont><pattern>
     <patelt name="scalable"><bool>false</bool></patelt>
     <patelt name="scalable"><bool>false</bool></patelt>
  </pattern></rejectfont></selectfont>
  <selectfont><rejectfont><pattern>
    <patelt name="fontformat"><string>Type 1</string></patelt>
   </pattern></rejectfont></selectfont>
   </pattern></rejectfont></selectfont>
</fontconfig>
</fontconfig>
</pre>
</pre>
Il rendering ottenuto con queste impostazioni sarà adottato in modo predefinito da tutti gli utenti del sistema, anche dalla schermata iniziale di login. Ma ogni utente può cambiare queste impostazioni nel proprio profilo, come spiegato di seguito (e spesso <u>deve</u> farlo perché alcuni ambienti desktop tendono a sovrascrivere le preferenze di sistema in modo predefinito, anche se non impostate dall'utente).


Salvare il file e attivare le nuove impostazioni riavviando il server X (con un logout e login oppure riavviando il pc).<br>
=== Configurazione utente ===
Le impostazioni usate nel file creano un rendering uguale a quello di Ubuntu, che piace a molti utenti. Ovviamente sono delle impostazioni consigliate e potete cambiarle a vostro piacimento.<br>
A livello utente:
Il rendering ottenuto con queste impostazioni sarà adottato in modo predefinito da tutti gli utenti del sistema, anche dalla schermata iniziale di login. Ma ogni utente può (e in alcuni casi <u>deve</u>, come in GNOME) cambiare queste impostazioni nel proprio profilo, come spiegato di seguito.
*se si usa '''Wheezy''' (o versioni precedenti) creare o cambiare il file <code>~/.fonts.conf</code>
 
*se si usa '''Jessie''' (o versioni successive) creare o cambiare il file <code>~/.config/fontconfig/fonts.conf</code>
== Configurazione utente ==
Il contenuto del file è il seguente:
Ogni utente può usare gli strumenti messi a disposizione dall'ambiente desktop in uso per cambiare i valori predefiniti del sistema se questi non sono di suo gradimento.
 
[[Image:Kde-font-rendering.jpg|thumb|right|KDE 4]]
[[Image:Gnome-font-rendering.png|thumb|right|GNOME 3]]
[[Image:Xfce-font-rendering.png|thumb|right|Xfce]]
=== KDE 4/5 ===
In KDE le impostazioni si trovano in "Impostazioni di sistema" > "Aspetto delle applicazioni" > "Caratteri" > "Utilizza l'antialiasing per i caratteri". Qui è possibile scegliere tra ''Abilitato'' (consigliato), ''Disabilitato'' (sconsigliato) e ''Impostazioni di sistema'' ([http://bugs.kde.org/show_bug.cgi?id=245664 che funziona solo su KDE 5]). L'unica scelta logica per KDE 4 rimane quindi ''Abilitato'', dove poi è possibile con il tasto ''Configura'' cambiare le impostazioni (valori consigliati nell'immagine a destra).<br>
KDE salva le impostazioni nello stesso file di configurazione illustrato nel successivo paragrafo "[[Migliorare l'aspetto dei font#Altri desktop|Altri desktop]]".
 
=== GNOME 3 ===
GNOME Shell imposta automaticamente una configurazione generica che non sfrutta bene le caratteristiche degli schermi LCD e che va a sovrascrivere quella di sistema, per cui è necessario cambiarla (tranne nel caso in cui vi piaccia questa configurazione di default, ovviamente). Per farlo bisogna prima installare il pacchetto <code>gnome-tweak-tool</code>, successivamente andare in "Preferenze" > "Impostazioni avanzate" > "Tipi di carattere" e da qui cambiare i valori di ''Hinting'' e ''Antialiasing'' (valori consigliati nell'immagine a destra).
 
=== Xfce ===
In Xfce le impostazioni si trovano in "Impostazioni" > "Aspetto" > "Caratteri". Valori consigliati nell'immagine a destra.
 
=== LXDE, Mate, Cinnamon ===
Anche questi ambienti desktop, come i precedenti, includono dei pannelli di configurazione per cambiare il rendering dei font. Valori consigliati uguali a quelli degli altri ambienti desktop.
 
=== Altri desktop ===
Altri ambienti desktop (come [[Enlightenment]]) potrebbero avere degli strumenti di configurazione dei font poco pratici, incompleti o non averne affatto. In questi casi, se la [[Migliorare l'aspetto dei font#Configurazione di sistema|configurazione di sistema]] non piace all'utente o non è stata impostata, bisogna creare un file di configurazione simile a quello di sistema, ma a livello utente. Basta aprire un editor di testi come ''gedit'' o ''kwrite'' e incollare quanto segue:
<pre>
<pre>
<?xml version='1.0'?>
<?xml version='1.0'?>
Riga 507: Riga 418:
     <edit mode="assign" name="hinting">
     <edit mode="assign" name="hinting">
       <bool>true</bool>
       <bool>true</bool>
    </edit>
    <edit mode="assign" name="autohint">
      <bool>false</bool>
     </edit>
     </edit>
     <edit mode="assign" name="hintstyle">
     <edit mode="assign" name="hintstyle">
Riga 526: Riga 434:
</fontconfig>
</fontconfig>
</pre>
</pre>
(notare l'uso di ''mode="assign"'' che permette di sovrascrivere le impostazioni di sistema, dove invece si usa ''mode="append"'' proprio per permettere la sovrascrittura da parte dei singoli utenti).
che è quasi uguale a <code>local.conf</code> ma con l'uso di ''mode="assign"'' invece di ''mode="append"'', che permette di sovrascrivere le impostazioni di sistema ai singoli utenti.<br>
 
Creare anche il file <code>~/.Xresources</code> con il seguente contenuto (se già esistente aggiungere semplicemente queste righe):
Dopodiché:
*se si usa '''Wheezy''' (o versioni precedenti) salvare il file come <code>~/.fonts.conf</code>
*se si usa '''Jessie''' (o versioni successive) salvare come <code>~/.config/fontconfig/fonts.conf</code>
e infine riavviare X (riavviando il sistema o facendo il logout) per applicare la configurazione.
 
==== Openbox ====
Su [[Openbox]] (e forse anche in altri ambienti minimalisti simili, come [[Fluxbox]]) si avranno miglioramenti solo parziali: ad esempio l'interno delle finestre rimarranno insensibili ai cambiamenti, al contrario delle barre dei titoli.<br>
In questo caso bisogna usare un altro file di configurazione (in aggiunta o in sostituzione a quello sopra), che andremo a creare con il nome <code>~/.Xresources</code> e con il seguente contenuto:
<pre>
<pre>
Xft.antialias: 1
Xft.antialias: 1
Xft.hinting: 1
Xft.hinting: 1
Xft.autohint: 0
Xft.hintstyle: hintslight
Xft.hintstyle: hintslight
Xft.rgba: rgb
Xft.rgba: rgb
Riga 545: Riga 444:
Xft.dpi: 96
Xft.dpi: 96
</pre>
</pre>
Se si usa anche l'altro file di configurazione utente, accertarsi che le impostazioni dei due coincidano, per evitare problemi di visualizzazione.<br>
Attivare le nuove impostazioni riavviando il server X (riavviando la sessione oppure il sistema).<br>
Come in precedenza, riavviare X o il sistema per vedere i risultati.
Le impostazioni usate nel file creano un rendering uguale a quello di Ubuntu, che piace a molti utenti. Ovviamente sono delle impostazioni consigliate e potrete cambiarle a vostro piacimento. Ma, <u>cosa molto importante</u>, assicurarsi che i due file dell'utente utilizzino le stesse impostazioni, o si avranno problemi di omogeneità nella visualizzazione.
 
=== Ambienti desktop ===
L'utente deve poi usare gli strumenti messi a disposizione dall'ambiente desktop in uso per modificare le impostazioni dei font, al fine di riprendere quelle dei due file utente appena esposti. Questo perché, come già detto sopra, alcuni ambienti desktop impostano i loro parametri predefiniti andando a sovrascrivere quelli di sistema e a volte anche quelli dei due file utente.
[[Image:Kde-font-rendering.jpg|thumb|150px|right|KDE 4]]
[[Image:Gnome-font-rendering.png|thumb|150px|right|GNOME 3]]
[[Image:Xfce-font-rendering.png|thumb|150px|right|Xfce]]
 
 
==== KDE 4/5 ====
In KDE le impostazioni si trovano in "Impostazioni di sistema" > "Aspetto delle applicazioni" > "Caratteri" > "Utilizza l'antialiasing per i caratteri". Qui è possibile scegliere tra ''Abilitato'' (consigliato), ''Disabilitato'' (sconsigliato) e ''Impostazioni di sistema'' ([http://bugs.kde.org/show_bug.cgi?id=245664 che funziona solo su KDE 5]). L'unica scelta logica per KDE 4 rimane quindi ''Abilitato'', dove poi è possibile con il tasto ''Configura'' cambiare le impostazioni (valori consigliati nell'immagine a destra).<br>
KDE salva le impostazioni in <code>~/.config/fontconfig/fonts.conf</code>, modificandolo se già esistente (quindi in tal caso meglio controllare che non abbia stravolto qualcosa).
 
 
==== GNOME 3 ====
GNOME Shell imposta automaticamente una configurazione generica che non sfrutta bene le caratteristiche degli schermi LCD (e che va a sovrascrivere quella di sistema), per cui sarà necessario cambiarla. Per farlo bisogna prima installare il pacchetto <code>gnome-tweak-tool</code>, successivamente andare in "Preferenze" > "Impostazioni avanzate" > "Tipi di carattere" e da qui cambiare i valori di ''Hinting'' e ''Antialiasing'' con quelli che avete inserito nei due file utente.
 
 
==== Xfce ====
In Xfce le impostazioni si trovano in "Impostazioni" > "Aspetto" > "Caratteri".
 
 
==== LXDE, Mate, Cinnamon ====
Anche questi ambienti desktop, come i precedenti, includono dei pannelli di configurazione per cambiare il rendering dei font.
 
 
==== Altri desktop ====
Altri ambienti desktop o windows manager (come [[Enlightenment]], [[Openbox]], ecc.) potrebbero avere degli strumenti di configurazione dei font poco pratici, incompleti o non averne affatto. In questi casi, basta usare [[Migliorare_l%27aspetto_dei_font#Configurazione_utente|i due file utente]] per avere tutto configurato a dovere.
 
<!-- Infinality non sembra più essere mantenuto stabilmente da nessuno, non rimuovo ma lascio il testo nascosto per consultazione o possibili futuri sviluppi -->
<!-- == Infinality ==
Infinality è una combinazione di patch e configurazioni che puntano, come scrive l'autore [http://www.infinality.net/blog/infinality-freetype-patches/ sul suo sito], a migliorare la resa dei font imitando quelle dei vari sistemi operativi, e di permettere all'utente di personalizzare al meglio le impostazioni.
 
Principalmente, Infinality consiste di due parti:
*un set di patch da applicare al motore di rendering dei font ''FreeType'' per poterne cambiare alcuni parametri non modificabili a nostro piacimento;
*una configurazione di ''Fontconfig'' totalmente personalizzata, che va a sostituire quella standard. Tra le varie configurazioni è degno di nota un "database" con un gran numero di font e le opzioni di rendering migliore per ognuno di essi (per esempio elenca tutti i font senza istruzioni di hinting, li raggruppa in un insieme e abilita l'autohint solo per questo insieme).
 
Alcuni utenti che hanno provato Infinality non ne sono rimasti colpiti, altri hanno espresso un'opinione negativa. Probabilmente avranno giudicato senza provare a cambiare le molte opzioni di configurazione messe a disposizione, oppure non hanno installato alcuni dei font tipici dei sistemi operativi che cerca di imitare Infinality, che è un requisito importante.
 
Il creatore del progetto (conosciuto proprio con il nickname Infinality) non lavora più su questo progetto da tempo, e attualmente sembra abbandonato da parte sua. L'utente [https://github.com/bohoomil/fontconfig-ultimate bohoomil] cominciò a portare avanti il progetto autonomamente, poi ha avuto il [http://www.infinality.net/forum/viewtopic.php?f=2&t=350 riconoscimento ufficiale].<br>
Bohoomil chiama il suo progetto [http://bohoomil.com/ Infinality ultimate], perché l'ha modificato sostanzialmente, aggiungendo ad esempio anche delle patch per la libreria ''Cairo'' e cambiando radicalmente le configurazioni di ''Fontconfig'' usate precedentemente.<br>
 
Comunque a detta di molti, il rendering di FreeType è ormai ottimo anche senza bisogno di queste patch, basta configurare per bene ''Fontconfig''.
 
=== Installazione ===
Con le versioni precedenti c'era bisogno di fare un backup della configurazione in uso di fontconfig e poi di rimuovere i file di configurazione interessati, tutto manualmente. Con l'attuale versione è cambiato radicalmente il meccanismo di funzionamento interno e le vecchie configurazioni sono completamente bypassate e ignorate. Quando Infinality sarà rimosso, le vecchie configurazioni saranno ancora al loro posto e ritorneranno a funzionare automaticamente. L'unico file di cui si potrebbe fare un backup per sicurezza prima di installare è <code>/etc/fonts/fonts.conf</code>, in quanto è l'unico interessato a cambiamenti.<br>
Controllare anche che il file <code>/etc/X11/Xresources/x11-common</code> NON contenga righe con impostazioni [[Migliorare l'aspetto dei font#Xft|Xft]] (se sono presenti e non volete cancellarle direttamente si possono commentare con un '''''!''''' all'inizio della riga).
 
Adesso si possono aggiornare <code>libfreetype6</code>, <code>libcairo2</code> e <code>libcairo-gobject2</code> con le versioni patchate e poi installare la configurazione di Infinality, contenuta in <code>fontconfig-infinality</code>:
{| class="wikitable"
|- align="center"
| '''Repository<br> completo''' || libfreetype6 || libcairo2 || libcairo-gobject2 || fontconfig-infinality
|- align="center"
| rowspan=2 | [https://drive.google.com/open?id=0B7AdLMiZn4FzT1FGTERscGtzc0E '''Wheezy'''] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzMnBpVlRzZTNjNVE i386] || n.d. || n.d. || rowspan=2 | [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzVnZXT3NUYW1rbVU all]
|- align="center"
| [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4Fzd3NidFRkTWRqejg amd64] || n.d. || n.d.
|- align="center"
| rowspan=2 | [https://drive.google.com/open?id=0B7AdLMiZn4FzZWVXYmM5TE5YVUE '''Jessie'''] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzcWhxblF6akRlRFk i386] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzRmx0enI2Wi1jWWM i386] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzT3JHRk5FSnB0MlE i386] || rowspan=2 | [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzelR3d21DOElEcWc all]
|- align="center"
| [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzX3FsS3p4dGFRVWM amd64] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzOG52Y19iYWtrazA amd64] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzektRMzJfRHJWMWM amd64]
|- align="center"
| rowspan=2 | [https://drive.google.com/open?id=0B7AdLMiZn4FzflZIWDFMWUxMR2F4WGQwQkRkcThsaFFxV2x1S0dGWjgzcEdlVjgtaGV5U2c '''Stretch/Sid'''] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzLWx5c2V3N29LaVE i386] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzcUFRUXJYOXhGLWs i386] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzclQtaVEwOXFic2s i386] || rowspan=2 | [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzeEJqR08ycE0yb3c all]
|- align="center"
| [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzS0haV1FtMWQ2anc amd64] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzaWFwNUw2MnJ1Ulk amd64] || [https://drive.google.com/uc?export=download&id=0B7AdLMiZn4FzMkQ4Zk55MlE5eFU amd64]
|}
Gli altri pacchetti, il codice sorgente e i log di compilazione sono disponibili nei repository completi (cliccare sul nome della distribuzione per accedervi).
 
Se avete abilitato [[Usare pacchetti a 32 bit su sistemi a 64 bit|multiarch]], molto probabilmente avrete già installato entrambe le versioni ''i386'' e ''amd64'' delle librerie sopra, quindi dovrete aggiornarle entrambe. Per installare il tutto:
<pre>
# dpkg -i ~/Scaricati/libfreetype6*infinality*.deb ~/Scaricati/libcairo*infinality*.deb ~/Scaricati/fontconfig-infinality*.deb
</pre>
I pacchetti usano un [https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version epoch] per evitare che, se si aggiorna il sistema ed è disponibile una nuova versione Debian di questi pacchetti, quelli patchati non vengano sovrascritti (perché avranno una versione maggiore).
 
=== Configurazione ===
È fortemente raccomandato che il file <code>~/.Xresources</code> di ogni utente del sistema contenga le seguenti righe (se non esiste createlo):
<pre>Xft.antialias: 1
Xft.autohint: 0
Xft.dpi: 96
Xft.hinting: 1
Xft.hintstyle: hintfull
Xft.lcdfilter: lcddefault
Xft.rgba: rgb</pre>
e che si modifichino le impostazioni del proprio ambiente desktop ([[Migliorare_l%27aspetto_dei_font#Ambienti_desktop|vedi qui]]) affinché rispecchino questi parametri, altrimenti il risultato non sarà quello voluto e non soddisferà le aspettative.
 
La configurazione vera e propria di Infinality si modifica cambiando i preset di ''fontconfig-infinality'' e/o gli stili di ''freetype-infinality''.
Per cambiare i primi si usa il comando:
<pre>
# fc-presets set
</pre>
mentre per i secondi dovrete andare a modificare il file <code>/etc/X11/Xsession.d/99infinality-settings</code> alla riga 60, de-commentandola e cambiando il valore della variabile ''export INFINALITY_FT''; per conoscere i possibili valori da utilizzare leggete la lista ivi presente.<br>
Per applicare appieno le modifiche bisogna riavviare la sessione o il sistema.<br>
È possibile creare anche altri preset e modificare finemente i parametri degli stili, ma per farlo rimando alla lettura del file <code>/etc/fonts/infinality.d/README</code> e di <code>/etc/X11/Xsession.d/99infinality-settings</code>.
 
È altresì consigliato installare alcuni dei font presenti tra i pacchetti raccomandati e suggeriti di <code>fontconfig-infinality*.deb (potete usare aptitude o Synaptic per vedere l'elenco e installarli in modo semplice).</code>
 
=== Disinstallazione ===
Per rimuovere Infinality e ripristinare lo status quo ante:
<pre>
# dpkg --purge --force-depends libfreetype6 libcairo2 libcairo-gobject2 fontconfig-infinality
# apt-get install libfreetype6 libcairo2 libcairo-gobject2
</pre>
o in caso di multiarch:
<pre>
# dpkg --purge --force-depends libfreetype6:i386 libcairo2:i386 libcairo-gobject2:i386 libfreetype6:amd64 libcairo2:amd64 libcairo-gobject2:amd64 fontconfig-infinality
# apt-get install libfreetype6:i386 libcairo2:i386 libcairo-gobject2:i386 libfreetype6:amd64 libcairo2:amd64 libcairo-gobject2:amd64
</pre>
La configurazione pre-Infinality verrà automaticamente ripristinata appieno dopo un riavvio. -->


= Riferimenti =
== Riferimenti ==
Per approfondimenti sulla rasterizzazione consiglio la lettura di [https://www.grc.com/cleartype.htm questo articolo], dettagliato ma comprensibile.<br>
Per approfondimenti sulla rasterizzazione consiglio la lettura di [https://www.grc.com/cleartype.htm questo articolo], dettagliato ma comprensibile.<br>
Invece [http://www.rastertragedy.com/ quest'altro] è più simile ad una tesi di laurea, con un approccio più scientifico.
Invece [http://www.rastertragedy.com/ quest'altro] è più simile ad una tesi di laurea, con un approccio più scientifico.
317

contributi