317
contributi
(aggiunta Infinality, correzioni varie) |
|||
Riga 8: | Riga 8: | ||
== Configurazione fontconfig == | == Configurazione fontconfig == | ||
Se assenti installiamo queste | Se assenti installiamo queste librerie: | ||
<pre># apt-get install libfreetype6 fontconfig libcairo2 libxft2</pre> | <pre># apt-get install libfreetype6 fontconfig libcairo2 libxft2</pre> | ||
ma essendo usate da tutti i principali ambienti desktop è praticamente impossibile non averle (anche perché senza un desktop grafico ci sarebbero solo [http://en.wikipedia.org/wiki/Computer_font#Bitmap_fonts caratteri bitmap] e questa guida non servirebbe a molto).<br> | ma essendo usate da tutti i principali ambienti desktop è praticamente impossibile non averle (anche perché senza un desktop grafico ci sarebbero solo [http://en.wikipedia.org/wiki/Computer_font#Bitmap_fonts caratteri bitmap] e questa guida non servirebbe a molto).<br> | ||
Riga 133: | Riga 133: | ||
$ fc-cache -fv</pre> | $ fc-cache -fv</pre> | ||
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 | 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 | 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 fontconfig i propri valori 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 .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> | ||
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. | 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: | ||
<pre> | <pre> | ||
<match target="font"> | <match target="font"> | ||
Riga 155: | Riga 155: | ||
=== Font rendering di Ubuntu === | === Font rendering di Ubuntu === | ||
I parametri predefiniti di fontconfig di Ubuntu sono impostati (come in Debian e molte altre distibuzioni Linux) tramite <code>/etc/fonts/conf.d/</code>. Questa directory contiene tanti pezzi di configurazione che tutti insieme vanno a creare la configurazione globale di fontconfig per tutto il sistema. Le varie opzioni che è possibile | I parametri predefiniti di fontconfig di Ubuntu sono impostati (come in Debian e molte altre distibuzioni Linux) tramite <code>/etc/fonts/conf.d/</code>. Questa directory contiene tanti pezzi di configurazione che tutti insieme vanno a creare la configurazione globale di fontconfig per tutto il sistema (in pratica è un <code>local.conf</code> frammentato). Le varie opzioni che è possibile attivare/disattivare in <code>/etc/fonts/conf.d/</code> sono contenute in <code>/etc/fonts/conf.avail/</code>. Basta creare un link simbolico con: | ||
La differenza tra Ubuntu e Debian è che quest'ultima appena installata non contiene alcuna impostazione di hinting dei caratteri in <code>conf.d</code> e mancano anche delle impostazioni in <code>conf.avail</code> per poterlo fare, come | <pre>ln -s /etc/fonts/conf.avail/impostazione.conf /etc/fonts/conf.d/</pre> | ||
Creare i file mancanti in <code>conf.avail</code> e linkarli in <code>conf.d</code> è poco pratico, mentre un modo equivalente e più rapido è scrivere direttamente le singole impostazioni tutte in un file, come abbiamo fatto sopra con <code>/etc/fonts/local.conf</code> (o <code>~/.fonts.conf</code>). In caso di impostazioni discordanti, fontconfig dovrebbe usare questa scala di priorità:<br> | oppure cancellarlo e l'impostazione sarà attivata o, se cancellata, sarà disattivata. Il comando <code>dpkg-reconfigure fontconfig-config</code> suggerito nell'Introduzione di questa guida apporta i cambiamenti proprio in questo modo, creando dei link in <code>conf.d</code> a seconda delle risposte date. Potete leggere il file <code>/etc/fonts/conf.d/README</code> per qualche informazione in più.<br> | ||
La differenza tra Ubuntu e Debian è che quest'ultima appena installata non contiene alcuna impostazione di hinting dei caratteri in <code>conf.d</code> e mancano anche delle impostazioni in <code>conf.avail</code> per poterlo fare, come quella dell'antialiasing, che è essenziale. In Ubuntu queste impostazioni ci sono e sono abilitate da subito.<br> | |||
Creare i file mancanti in <code>conf.avail</code> e linkarli in <code>conf.d</code> è poco pratico, mentre un modo equivalente e più rapido è scrivere direttamente le singole impostazioni tutte in un file, come abbiamo fatto sopra con <code>/etc/fonts/local.conf</code> (o <code>~/.fonts.conf</code>). In caso di impostazioni discordanti tra configurazioni diverse, fontconfig dovrebbe usare questa scala di priorità:<br> | |||
'''1)''' impostazioni font dell'ambiente desktop<br> | '''1)''' impostazioni font dell'ambiente desktop<br> | ||
'''2)''' <code>~/.fonts.conf</code><br> | '''2)''' <code>~/.fonts.conf</code><br> | ||
'''3)''' <code>/etc/fonts/local.conf</code><br> | '''3)''' <code>/etc/fonts/local.conf</code><br> | ||
'''4)''' <code>/etc/fonts/conf.d/</code><br> | '''4)''' <code>/etc/fonts/conf.d/</code><br> | ||
La configurazione predefinita del font rendering di Ubuntu è quasi uguale a quella | 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> | ||
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 | 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> | ||
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 libfontconfig 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.}} | |||
=== 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> | |||
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). | |||
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 relativa ai caratteri bitmap (che cominciano con 70) da <code>/etc/fonts/conf.d/</code> con: | |||
<pre># rm /etc/fonts/conf.d/1* | |||
# rm /etc/fonts/conf.d/70*</pre> | |||
così dovremmo essere tornati alla configurazione iniziale di Debian.<br> | |||
Adesso si può aggiornare <code>libfreetype6</code> con la versione patchata e aggiungere la configurazione di Infinality. Ho adattato le versioni presenti in [https://launchpad.net/~no1wantdthisname/+archive/ppa/+packages questo PPA di Ubuntu] per Debian, ecco i pacchetti: | |||
* [http://www.mediafire.com/?og2zqs1cdelzajs versione ''i386''] di <code>libfreetype6</code> per Wheezy, Jessie e Sid; | |||
* [http://www.mediafire.com/?nycgi3wi1gz2bwz versione ''amd64''] di <code>libfreetype6</code> per Wheezy, ricompilata causa dipendenza non soddisfatta (<code>libc6 < 2.14</code>), dovrebbe funzionare anche su Jessie e Sid; | |||
* [http://www.mediafire.com/?3n3n8ial7xniu4u versione ''amd64''] di <code>libfreetype6</code> per Jessie e Sid; | |||
* [http://www.mediafire.com/?tres1e3xwo5rv3v configurazione <code>fontconfig-infinality</code>] per tutte le architetture e versioni. | |||
Se avete abilitato il multiarch, quasi sicuramente vi troverete installate entrambe le versioni ''i386'' e ''amd64'' di <code>libfreetype6</code> e dovrete aggiornarle entrambe. Per installare il tutto basta un: <pre># dpkg -i libfreetype6_versione.deb fontconfig-infinality_versione.deb</pre> | |||
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> che permette di scegliere tra vari preset che imitano fedelmente il font hinting dei più famosi sistemi operativi (ed è consigliabile anche avere installati su Debian i font usati dal sistema operativo scelto per avere un risultato ancora più fedele).<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/profile.d/infinality-settings.sh</code>. | |||
== Installazione nuovi caratteri == | == Installazione nuovi caratteri == | ||
Riga 200: | Riga 222: | ||
Alcune applicazioni (generalmente quelle più vecchie) potrebbero ignorare le impostazioni di fontconfig perché non lo supportano. In questo caso possiamo intervenire su Xft (X FreeType interface library).<br/> | Alcune applicazioni (generalmente quelle più vecchie) potrebbero ignorare le impostazioni di fontconfig perché non lo supportano. In questo caso possiamo intervenire su Xft (X FreeType interface library).<br/> | ||
Se nessuna applicazione dà problemi con i caratteri si può anche tralasciare questa procedura ma l'importante è usare gli stessi valori di <code>.fonts.conf</code> (o <code>local.conf</code>) per evitare conflitti.<br> | Se nessuna applicazione dà problemi con i caratteri si può anche tralasciare questa procedura ma l'importante è usare gli stessi valori di <code>.fonts.conf</code> (o <code>local.conf</code>) per evitare conflitti.<br> | ||
Se usate ''Infinality'', potete saltare questa sezione in quanto ci pensa uno script a configurare Xft.<br> | |||
Creiamo o modifichiamo il file <code>.Xresources</code> nella nostra home con: | Creiamo o modifichiamo il file <code>.Xresources</code> nella nostra home con: |
contributi