Migliorare l'aspetto dei font: differenze tra le versioni

Aggiunta sezione font console e modifiche minori
(Aggiunta sezione font console e modifiche minori)
Riga 76: Riga 76:
<!-- Fontconfig should be able to detect DPI parameters as discovered
<!-- Fontconfig should be able to detect DPI parameters as discovered
     by the Xorg server. You can check the automatically discovered DPI
     by the Xorg server. You can check the automatically discovered DPI
     with the command 'xdpyinfo | grep resolution' -->
     with the command 'xdpyinfo | grep resolution'
<!-- remove this line to activate customized DPI
    Uncomment the following to activate customized DPI -->
<!--
<edit mode="assign" name="dpi">
<edit mode="assign" name="dpi">
<double>96</double>
<double>96</double>
</edit>
</edit>
remove this line to activate customized DPI -->
-->


</match>
</match>
Riga 89: Riga 90:
     a specific font not installed on the system (e.g. Arial) with
     a specific font not installed on the system (e.g. Arial) with
     a [not necessarily] similar one (e.g. FreeSans) by adding
     a [not necessarily] similar one (e.g. FreeSans) by adding
     another alias like these. -->
     another alias like these.
<!-- remove this line to activate font substitution
    Uncomment the following to activate font substitution -->
<!--
<alias>
<alias>
<family>serif</family>
<family>serif</family>
Riga 116: Riga 118:
<prefer><family>FreeSans</family></prefer>
<prefer><family>FreeSans</family></prefer>
</alias>
</alias>
remove this line to activate font substitution -->
-->


<!-- Reject bitmap fonts in favour of Truetype, Postscript, etc. -->
<!-- Reject bitmap fonts in favour of Truetype, Postscript, etc. -->
Riga 134: Riga 136:
e infine riavviamo X facendo logout e login oppure riavviando il sistema.<br>
e infine riavviamo X facendo logout e login oppure riavviando il sistema.<br>
La configurazione sopra riportata è una configurazione "standard" che cerca di fornire il miglior risultato possibile sulla maggior parte dei sistemi.
La configurazione sopra riportata è una configurazione "standard" che cerca di fornire il miglior risultato possibile sulla maggior parte dei sistemi.
Però ci sono tanti fattori da considerare se i font elaborati con questa configurazione non vi soddisfano ancora. Potrebbe essere colpa del monitor che ad esempio usa uno schema di subpixel differente dallo standard RGB, o semplicemente è una questione di gusto personale. Spesso i font hanno istruzioni di hinting codificati al loro interno e mentre alcuni possono dare un buon risultato con l'hinting "Slight", altri appariranno meglio con hinting "None" o "Full". In ogni caso basta modificare i parametri nel file <code>.conf</code> aiutandosi con le descrizioni fornite nelle parti commentate per ottenere il risultato su schermo migliore per i vostri occhi.<br>
Però ci sono tanti fattori da considerare se i font elaborati con questa configurazione non vi soddisfano ancora. Potrebbe essere colpa del monitor che ad esempio usa uno schema di subpixel differente dallo standard RGB o semplicemente è una questione di gusto personale. Spesso i font hanno istruzioni di hinting codificati al loro interno e mentre alcuni possono dare un buon risultato con l'hinting "Slight", altri appariranno meglio con hinting "None" o "Full". In ogni caso basta modificare i parametri nel file <code>.conf</code> aiutandosi con le descrizioni fornite nelle parti commentate per ottenere il risultato su schermo migliore per i vostri occhi.<br>
C'è da considerare anche che l'ambiente desktop in uso può cambiare questi parametri, non modificando il nostro file .conf direttamente ma passando a Xft e/o fontconfig i propri valori di hinting con una priorità maggiore. Per esempio su Gnome3 le impostazioni predefinite (modificabili tramite ''gnome-tweak-tool'') sono "Hinting: Full" e "Antialiasing: Greyscale". Per evitare discrepanze e conflitti è meglio cambiare questi valori con quelli usati nei file <code>.conf</code> (che se non modificati sono "Hinting: Slight" e "Antialiasing: Rgba").<br>
C'è da considerare anche che l'ambiente desktop in uso può cambiare questi parametri, non modificando il nostro file <code>.conf</code> direttamente ma passando a Xft e/o fontconfig i propri valori di hinting con una priorità maggiore. Per esempio su Gnome3 le impostazioni predefinite (modificabili tramite ''gnome-tweak-tool'') sono "Hinting: Full" e "Antialiasing: Greyscale". Per evitare discrepanze e conflitti è meglio cambiare questi valori con quelli usati nei file <code>.conf</code>.<br>
Ogni desktop environment che si rispetti ha una sezione dove poter impostare molti dei parametri di fontconfig e per alcuni potrebbero essere sufficienti per avere un buon risultato, ma per un controllo più fine il ricorso al file <code>.conf</code> è necessario. Ad esempio alcuni caratteri risultano più leggibili senza hinting sotto una certa dimensione, o possono avere dei piccoli difetti con le impostazioni di hinting correnti che però vanno bene con gli altri font. Ciò è correggibile aggiungendo una sezione simile a questa nel nostro file .conf:
Ogni desktop environment che si rispetti ha una sezione dove poter impostare i parametri base di fontconfig e per alcuni potrebbero essere sufficienti per avere un buon risultato, ma per un controllo più fine il ricorso al file <code>.conf</code> è necessario. Ad esempio alcuni caratteri risultano più leggibili senza hinting sotto una certa dimensione. Ciò è correggibile aggiungendo una sezione simile a questa nel nostro file .conf:
<pre>
<pre>
<match target="font">
<match target="font">
Riga 150: Riga 152:
</match>
</match>
</pre>
</pre>
Questa ad esempio in caso di carattere "DejaVu Sans Mono" con una dimensione inferiore ai 7.5 punti, deve disabilitare l'hinting.<br>
Questa ad esempio in caso di carattere "DejaVu Sans Mono" con una dimensione inferiore ai 7.5 punti, deve disabilitare l'hinting. Si possono fare tante altre cose simili con fontconfig, come specificare un hinting diverso da quello generale per font con istruzioni di hinting scarse; per approfondimenti leggete la documentazione di fontconfig (e visionate anche i file di configurazione di [[Migliorare l'aspetto dei font#Infinality | fontconfig-infinality]] come applicazione pratica di ciò).<br>
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].
{{Box|Nota|Dalla versione 2.10 di fontconfig (non ancora disponibile in Debian Jessie al momento della scrittura di questa pagina) il file <code>~/.fonts.conf</code> cambierà percorso, diventando <code>~/.config/fontconfig/fonts.conf</code> (anche se probabilmente sarà mantenuta la compatibilità con il vecchio percorso, salvo cambiamenti da parte della [http://pkg-fonts.alioth.debian.org/ Debian Fonts Task Force]).}}
{{Box|Nota|Dalla versione 2.10 di fontconfig (non ancora disponibile in Debian Jessie al momento della scrittura di questa pagina) il file <code>~/.fonts.conf</code> cambierà percorso, diventando <code>~/.config/fontconfig/fonts.conf</code> (anche se probabilmente sarà mantenuta la compatibilità con il vecchio percorso, salvo cambiamenti da parte della [http://pkg-fonts.alioth.debian.org/ Debian Fonts Task Force]).}}
Riga 165: Riga 167:
# <code>/etc/fonts/conf.d/</code>
# <code>/etc/fonts/conf.d/</code>
anche se molto dipende da come sono impostati i parametri all'interno delle configurazioni, che potrebbero cambiare le priorità. Per informazioni <code>man fonts-conf</code>.<br>
anche se molto dipende da come sono impostati i parametri all'interno delle configurazioni, che potrebbero cambiare le priorità. Per informazioni <code>man fonts-conf</code>.<br>
La configurazione predefinita del font rendering di Ubuntu è quasi uguale a quella illustrata sopra, eccetto per la mancanza dei valori di ''autohint'' (che quindi dovrebbe essere considerato ''false'') e di ''rgba'' (che quindi dovrebbe essere considerato ''none'').<br>
La configurazione predefinita del font rendering di Ubuntu è quasi uguale a quella illustrata sopra, ma se trovate delle differenze di resa su schermo è possibile che sia per via di apposite patch che Ubuntu applica sui pacchetti adibiti al rendering e che Debian non ha [ancora] introdotto.<br>
Se dopo aver allineato le configurazioni trovate ancora delle differenze di resa su schermo è possibile che sia per via di apposite patch che Ubuntu applica sui pacchetti adibiti al rendering e che Debian non ha [ancora] introdotto.<br>
Ma può anche essere merito del font predefinito di Ubuntu, che è possibile scaricare dai [http://it.archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-font-family-sources/ttf-ubuntu-font-family_0.80-0ubuntu5_all.deb repository ufficiali di Ubuntu] e per installarlo basta un:
Ma può anche essere merito del font predefinito di Ubuntu, che è possibile scaricare dai [http://it.archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-font-family-sources/ttf-ubuntu-font-family_0.80-0ubuntu5_all.deb repository ufficiali di Ubuntu] e per installarlo basta un:
<pre># dpkg -i ttf-ubuntu-font-family_0.80-0ubuntu5_all.deb</pre>
<pre># dpkg -i ttf-ubuntu-font-family_0.80-0ubuntu5_all.deb</pre>
{{Warningbox|Se volete proprio avere lo stesso font hinting di Ubuntu, potete fare una pazzia e aggiornare questi pacchetti prendendo le versioni dei repository Ubuntu: '''libfreetype6 libfontconfig1 fontconfig fontconfig-config''' ma è altamente sconsigliabile e la responsabilità per eventuali problemi sarà solo vostra. Se proprio volete qualcosa di "particolare", leggete il prossimo paragrafo.}}
{{Warningbox|Se volete proprio avere lo stesso font hinting di Ubuntu, a vostro rischio potete aggiornare questi pacchetti prendendo le versioni dei repository Ubuntu: '''libfreetype6 libfontconfig1 fontconfig fontconfig-config''' ma è altamente sconsigliabile e la responsabilità per eventuali problemi sarà solo vostra.}}


=== Infinality ===
=== Infinality ===
Infinality è un insieme di patch e configurazioni che puntano al massimo rendimento dei caratteri. Come scrive l'autore [http://www.infinality.net/blog/infinality-freetype-patches/ sul suo sito], l'obiettivo primario è fornire la migliore resa dei font dei vari sistemi operativi, mentre quello secondario è di permettere all'utente di personalizzare al meglio le impostazioni.<br>
Infinality è un insieme di patch e configurazioni che puntano al massimo rendimento dei caratteri. Come scrive l'autore [http://www.infinality.net/blog/infinality-freetype-patches/ sul suo sito], l'obiettivo primario è migliorare la resa dei font imitando quelle dei vari sistemi operativi, mentre quello secondario è di permettere all'utente di personalizzare al meglio le impostazioni.<br>
Allo stato attuale, Infinality consiste in un set di patch da applicare al motore di rendering dei font <code>freetype</code> per cambiarne/migliorarne alcuni comportamenti, e di un sistema di configurazione che si integra con <code>fontconfig</code> e ne diventa un'alternativa di fatto. 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 (ad esempio sui font senza istruzioni di hinting abilita l'autohint).
Allo stato attuale, Infinality consiste in un set di patch da applicare al motore di rendering dei font <code>freetype</code> per cambiarne/migliorarne alcuni comportamenti, e di un sistema di configurazione che si integra con <code>fontconfig</code> e ne diventa un'alternativa di fatto. 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 noti per l'assenza di istruzioni di hinting).<br>
Prima di installare Infinality, meglio prima fare pulizia di configurazioni ridondanti (che probabilmente Infinality riesce a scavalcare o ignorare, ma meglio andare sul sicuro).
Prima di installare Infinality, meglio prima fare pulizia di configurazioni ridondanti (che probabilmente Infinality riesce a scavalcare o ignorare, ma meglio andare sul sicuro).
Innanzitutto eliminare o spostare in una directory di backup i file <code>/etc/fonts/local.conf</code> e <code>~/.fonts.conf</code>, considerati obsoleti da Infinality, poi rimuovere le impostazioni di hinting (che cominciano con 1) e quelle relative ai caratteri bitmap (che cominciano con 70) da <code>/etc/fonts/conf.d/</code> con:
Innanzitutto eliminare o spostare in una directory di backup i file <code>/etc/fonts/local.conf</code> e <code>~/.fonts.conf</code>, considerati obsoleti da Infinality, poi rimuovere le impostazioni di hinting (che cominciano con 1) e quelle relative ai caratteri bitmap (che cominciano con 70) da <code>/etc/fonts/conf.d/</code> con:
Riga 188: Riga 189:
Dopo l'installazione è meglio riavviare il pc prima di configurare Infinality. Già dopo il riavvio potrete notare dei miglioramenti evidenti, però se volete potete cambiare configurazione con il comando
Dopo l'installazione è meglio riavviare il pc prima di configurare Infinality. Già dopo il riavvio potrete notare dei miglioramenti evidenti, però se volete potete cambiare configurazione con il comando
<pre># /etc/fonts/infinality/infctl.sh setstyle</pre>
<pre># /etc/fonts/infinality/infctl.sh setstyle</pre>
che permette di scegliere tra vari preset che imitano fedelmente il font hinting dei più famosi sistemi operativi (ed è molto raccomandabile avere installati su Debian i font usati dal sistema operativo scelto per avere un risultato ancora migliore).<br>
che permette di scegliere tra vari preset che imitano il font hinting di altri sistemi operativi (ed è quasi indispensabile avere installati su Debian i font usati dal sistema operativo scelto per avere un buon risultato).<br>
È possibile aggiungere anche altri preset creati da noi 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>.
È possibile aggiungere anche altri preset creati da noi 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>.


Riga 207: Riga 208:


Se vi piacciono i font di Windows e questo è presente sul vostro pc in dual boot, basta usare questo metodo per montare la partizione di sistema di Windows e copiare i font prescelti da <code>\Windows\Fonts</code> alle directory dei font di Debian (se non avete Windows potete sempre cercarli sul web, e comunque considerate che il [http://en.wikipedia.org/wiki/FreeType FreeType] di Linux è pur sempre diverso dal [http://en.wikipedia.org/wiki/ClearType ClearType] di Windows).<br>
Se vi piacciono i font di Windows e questo è presente sul vostro pc in dual boot, basta usare questo metodo per montare la partizione di sistema di Windows e copiare i font prescelti da <code>\Windows\Fonts</code> alle directory dei font di Debian (se non avete Windows potete sempre cercarli sul web, e comunque considerate che il [http://en.wikipedia.org/wiki/FreeType FreeType] di Linux è pur sempre diverso dal [http://en.wikipedia.org/wiki/ClearType ClearType] di Windows).<br>
A chi interessa ecco i caratteri usati nelle interfacce grafiche di vari sistemi operativi:<br>
A chi interessa ecco alcuni dei caratteri usati nelle interfacce grafiche di vari sistemi operativi:<br>
- Windows XP: ''[http://www.microsoft.com/typography/fonts/family.aspx?FID=19 Tahoma]''<br>
- Windows XP: ''[http://www.microsoft.com/typography/fonts/family.aspx?FID=19 Tahoma]''<br>
- Windows 7 / 8: ''[http://www.microsoft.com/typography/fonts/family.aspx?FID=331 Segoe UI]''<br>
- Windows 7 / 8: ''[http://www.microsoft.com/typography/fonts/family.aspx?FID=331 Segoe UI]''<br>
Riga 291: Riga 292:
* Non so se '''KDE4''' sovrascrive come Gnome3, ma in ogni caso si può cambiare il valore predefinito da "KDE menu" > "Personal Settings" > "Application Appearance" > "Fonts" > "Force fonts DPI".<br>
* Non so se '''KDE4''' sovrascrive come Gnome3, ma in ogni caso si può cambiare il valore predefinito da "KDE menu" > "Personal Settings" > "Application Appearance" > "Fonts" > "Force fonts DPI".<br>
* '''LXDE''' non manomette il valore di Xft.dpi, lasciando quello impostato nei file di configurazione di fontconfig/Xft/Infinality.
* '''LXDE''' non manomette il valore di Xft.dpi, lasciando quello impostato nei file di configurazione di fontconfig/Xft/Infinality.
== 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à safe) per migliorare la leggibilità.
In breve, bisogna cambiare nel file <code>/etc/default/console-setup</code> i valori di '''FONTFACE=''' e '''FONTSIZE=''' con uno di questi:
* ''VGA'' (sizes 8x8, 8x14, 8x16, 16x28 and 16x32)
* ''Terminus'' (sizes 6x12, 8x14, 8x16, 10x20, 12x24, 14x28 and 16x32)
* ''TerminusBold'' (sizes  8x14, 8x16, 10x20, 12x24, 14x28 and 16x32)
* ''TerminusBoldVGA'' (sizes 8x14 and 8x16)
* ''Fixed'' (sizes 8x13, 8x14, 8x15, 8x16 and 8x18)
Un esempio:
<pre>FONTFACE="Terminus"
FONTSIZE="10x20"</pre>
Dopo aver salvato il file si può riavviare il sistema oppure se si è già nella console si può usare il comando <code>/etc/init.d/console-setup restart</code><br>
Per maggiori dettagli: <code>man console-setup</code>


== Riferimenti ==
== Riferimenti ==
Riga 304: Riga 321:
http://www.antigrain.com/research/font_rasterization/index.html<br>
http://www.antigrain.com/research/font_rasterization/index.html<br>
https://lists.ubuntu.com/archives/ubuntu-desktop/2008-December/001887.html
https://lists.ubuntu.com/archives/ubuntu-desktop/2008-December/001887.html
http://www.webupd8.org/2013/06/better-font-rendering-in-linux-with.html




317

contributi