Migliorare l'aspetto dei font: differenze tra le versioni

→‎DPI: riscrittura totale
(→‎Infinality: nuova versione fontconfig-infinality che corregge un bug)
(→‎DPI: riscrittura totale)
Riga 252: Riga 252:


== DPI ==
== DPI ==
Se non siamo ancora soddisfatti del risultato oppure il nostro monitor è grande e i caratteri sono piccoli, si può provare a cambiare il valore DPI dei caratteri usando quello del monitor (che sarebbe più corretto chiamare PPI).<br>
Se i caratteri a schermo sono troppo piccoli (o troppo grandi) perché il monitor ha risoluzioni elevate (o basse), si può cambiare il [http://en.wikipedia.org/wiki/Dots_per_inch DPI] specificando il valore DPI effettivo dello schermo (che sarebbe più corretto chiamare [http://en.wikipedia.org/wiki/Pixels_per_inch PPI]).<br>
In Debian e in tutte le distribuzioni Linux, sono presenti due DPI: quello usato da Xorg e quello usato da Xft (e fontconfig).
=== 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, lascia tale valore. Potete controllare il valore attualmente impostato con il comando:
<pre>$ xdpyinfo | grep -B2 resolution</pre>
Impostare il giusto valore DPI su Xorg è importante per avere una corrispondenza più realistica possibile delle dimensioni su schermo con quelle reali.<br>
Il valore effettivo del DPI di uno schermo è ottenibile dal rapporto della sua diagonale in pixel con quella in pollici. La diagonale in pollici è il classico valore che identifica la grandezza dello schermo (ad es. un monitor da 22", una tv da 36", ecc.), mentre per calcolare la diagonale in pixel bisogna applicare il teorema di Pitagora sulla risoluzione nativa dello schermo (ad es. 1366x768, 1920x1080, ecc.). Per facilitare il calcolo esistono delle calcolatrici online come [http://pxcalc.com/ questa] e [http://members.ping.de/~sven/dpi.html questa]. A volte la misura in pollici dello schermo è minore da quella dichiarata, generalmente nell'ordine di 0,5 pollici: tenetene conto quando fate il calcolo (potete misurare le dimensioni effettive e convertirle in pollici).<br>
Ottenuto un valore DPI, bisogna arrotondarlo alla cifra intera [pari?] più vicina. Per esempio se otteniamo un valore DPI di 102.46 bisognerà usare il valore '''102'''.
Per dire a Xorg di usare questo DPI bisogna dare il comando
<pre>xrandr --dpi 102</pre>
ma questo sarà resettato al vecchio valore dopo un riavvio di X. Per fare eseguire quel comando automaticamente ad ogni avvio di X, create un file con il comando
<pre># nano /etc/X11/Xsession.d/96setdpi</pre>
e scriveteci dentro quel comando (con il vostro DPI invece del 102, ovviamente). Questo è il metodo più veloce ma se volete approfondire ci sono altri modi per impostare il DPI su Xorg, leggete ad esempio [http://wiki.archlinux.org/index.php/Xorg#Display_Size_and_DPI qui].
Una volta impostato il DPI, potete verificare se è tutto ok aprendo un file [http://www.mediafire.com/download/kl37crw0n5k3ydy/A4.pdf pdf in formato A4], mettendo lo zoom al 100% e sovrapponendo sul foglio a schermo un foglio di carta A4: se le dimensioni sono uguali o quasi la configurazione è andata a buon fine.


Generalmente fontconfig ricava tale valore automaticamente da Xorg oppure usa lo standard non ufficiale dei 96 DPI.<br/>
=== DPI di Xft / fontconfig ===
Per trovare il valore del nostro monitor, bisogna trovare prima la diagonale in pixel (applicando il teorema di Pitagora alla risoluzione nativa dello schermo) e poi dividerla con la diagonale effettiva del monitor in pollici (generalmente si trova nelle specifiche del monitor).
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
Es.: il mio monitor è un AOC 2236Vw da 22" con risoluzione nativa di 1920x1080. Guardando le specifiche però trovo che la diagonale visibile non è 22" ma 21,5". Allora calcolo:
<pre>xrdb -query</pre>
 
Se il valore Xft.dpi non è presente, è implicito che è uguale a quello di Xorg.
''sqrt(1920^2 + 1080^2) / 21.5 = '''102.46''' PPI''
Per evitare possibili distorsioni dell'interfaccia grafica (tipo immagini bitmap che scalano male) è consigliabile impostare questo DPI sui dei valori "standard":
 
* 48 (50%)
Per fare più in fretta ci si può aiutare usando [http://members.ping.de/~sven/dpi.html questo calcolatore].
* 72 (75%)
 
* 96 (100%)
Una volta trovato il valore DPI (o PPI) del monitor basta sostituirlo nelle righe commentate dei file <code>.fonts.conf</code> e <code>.Xresources</code>, togliendo ovviamente i commenti per abilitare.<br/>
* 120 (125%)
Fate logout e login per vedere il risultato e, se questo non è soddisfacente, commentate nuovamente le righe per tornare ai valori standard.
* 144 (150%)
 
* 168 (175%)
Alcuni sostengono che il valore DPI da inserire nelle configurazioni deve essere arrotondato, senza parte decimale. Però il fatto che sia usato un valore ''double'' per memorizzare il DPI mi fa pensare che sia fatto apposta per usare anche la parte decimale.
* 192 (200%)
 
ma si può comunque usare un valore qualsiasi. Da notare che alcuni elementi dell'interfaccia grafica potrebbero non scendere sotto i 96 DPI.<br>
È consigliata la lettura di [https://lists.ubuntu.com/archives/ubuntu-desktop/2008-December/001887.html questo vecchio messaggio] per capire un po' meglio il ruolo dei DPI nel sistema operativo.
Questi valori vanno impostati su <code>/etc/fonts/local.conf</code> e <code>/etc/X11/Xresources/x11-common</code> o nelle rispettive controparti per utente singolo <code>~/.fonts.conf</code> e <code>~/.Xresources</code>. Se per questi file avete usato i template sopra, le sezione dove inserire il DPI sono disattivate da un tag di commento: togliete quei tag per abilitare. 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/profile.d/infinality-settings.sh</code><br>
Al contrario di Xorg, il valore DPI qui può contenere anche la parte decimale, per esempio 102.45 (con il punto, non la virgola). Riavviate per vedere il risultato e, se questo non è soddisfacente, rimettete tutto com'era per tornare al valori standard.
=== KDE ===
Se, una volta avviato KDE, la dimensione dei caratteri è piccola, ciò è dovuto al fatto che KDM sta utilizzando i 75dpi.<br>
Bisogna quindi modificare il file <code>/etc/kde4/kdm/kdmrc</code> (o <code>/usr/share/config/kdm/kdmrc</code>). Cercare la riga:
<pre>ServerArgsLocal=-nolisten tcp</pre>
e aggiungere il valore DPI desiderato:
<pre>ServerArgsLocal=-nolisten tcp -dpi 96</pre>


Gli ambienti desktop potrebbero impostare ad ogni avvio i parametri di Xft, sovrascrivendo quelli impostati nei file di configurazione, tra i quali anche Xft.dpi. In questi casi bisogna usare gli strumenti di configurazione messi a disposizione dal desktop per impostare il DPI.<br>
* '''Gnome3''' imposta Xft.dpi a 96. Per cambiare questo valore bisogna installare <code>gnome-tweak-tool</code> e poi andare nel menù "Preferenze" > "Impostazioni avanzate" > "Tipi di carattere" > "Text scaling factor" e impostare il proprio valore, considerando che quello predefinito "1,0" corrisponde a 96 DPI (quindi 1,25 = 120 DPI, e così via).<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.


== Riferimenti ==
== Riferimenti ==
317

contributi