hinting auto, allways & company

L’utility fontconfig su ubuntu feisty, gutsy e derivate aiuta a configurare il miglior fontrendering sulla nostra linuxbox (termine che ho sempre odiato linuxbox.. alla fine e’ il nostro pc.. con linux nullaltro…). Ebbene questa utility serve per chiarire al nostro font-renderer che lavora con Xorg come disegnare i font delle interfacce grafiche del nostro sistema (gnome, kde, e applicazioni). Su ubuntu per configurarlo dobbiamo innanzitutto avere queste librerie:

apt-get install fontconfig fontconfig-config

Su ubuntu gutsy dovreste averlo di default.
Il settaggio di gutsy e’ molto semplice, nel post di ieri infatti dicevo che le libreria freetype sono di default configurate con il BCI (bytecode interpreter) abilitato, il che e’ un bene :) , pero’ tuttavia possiamo migliorare ulteriormente questa cosa. Infatti il settaggio che propone la nostra gutsy per i font e’ un subpixel hinting abilitato (on) e come tipo Full, lo potete notare se andate a editare i font a video cliccando su advanced in gnome.

Io ho eseguito questa piccola variante, che porta i font a essere visualizzati alla OSX e non ala Windows. Windows infatti adotta il cleartype e osx l’autohinting. Il cleartype lavora bene con font che sono stati disegnati per essere renderizzati senza interpretare la renderizzazione stessa da parte del font-render e quindi se li usassimo in autohinting avremo delle imprecisioni visibili ad un occhio scrupoloso (il mio!). Osx al contrario con l’autohinting visualizza bene i font che sono stati disegnati per essere interpretati da un font render in fase di “disegno” del font a video, senza leggere le codifiche intrinseche del font. (famiglie di font sans, helvetica, bitstream, dejavu sono hinted, mentre le msttcorefonts sono cleartyped).

va da se che se tutto il nostro sistema e’ su corefonts (microsoft) sara’ meglio l’inting forzato dal font, mentre al contrario se adottiamo famiglie freetype (bitstream, dejavu, sans) sara’ meglio l’hinting auto.

vediamo come fare, e le differenze (anche banali se volete):

dpkg-reconfigure fontconfig-config
[scegliamo native, allways, no*] -> se vogliamo l'hinting di windows
[scegliamo autohinter, allways, no*] -> se vogliamo l'hinting in stile osx
dpkg-reconfigure fontconfig [rigenera la cache dei font]

A questo punto non ci resta che restartare il nostro server Xorg, o meglio facciamo un logout e un login sulla nostra linuxbox (che odio questo termine!!!) e le modifiche saranno effettivamente visibili.

Questo e’ uno screenshot delle differenze delle due modalita’ messe una affianco all’altra:

screenshot-2.png

Lo screenshot riguarda una finestra del mio nautilus, filemanager di gnome, non fatevi ditrarre del disco chiamato opensuse, e’ il mio secondo… state effettivamente vedendo una ubuntu gutsy.
Sulla sinistra il rendering tipo Windows Cleartype, sulla destra OSX hinting.
differenze che il mio occhio nota partendo dall’alto al basso:

  • la cartella “snip” ha la scritta snip con la “p” piu’ allungata a dx
  • la cartella “Desktop” mostra delle imperfezioni a sx nella lettera “k” che a dx non ci sono.
  • la cartella “File System” ha imperfezioni a sx nella lettera “y” che a dx non si presentano
  • la cartella “Trash” a dx ha la “a” e la “h” che sono leggermente diverse da sx e piu’ leggibili
  • la cartella “documents” mostra una “u” e una “n” leggermente piu’ strette a dx rispetto a sx

e cosi’ via…

A voi la scelta, io adotto l’hinting alla osx, ora che lo ho scoperto.

Occhi piu’ precisi avranno la possibilita’ di essere meglio soddifatti dal fatto che se adottate l’hinting osx potrete customizzare in gnome/kde l’hinting su slight-medium-full vedendone effettivamente le differenze, mentre se adottate la tecnica cleartype potrete solo adottare full-slight (non che medium sparisca ma semplicemente non ha ragion di esistere perche’ e’ uguale al full… ho fatto i paragoni lettera per lettera…).

Vi sono articoli molto esplicativi su questo argomento sulla pagina di gentoo sul font render dove addirittura vengono proposti file di conf appositi per il fonts.conf in modo da utlizzare questi tipi di impostazione a seconda del carattere visualizzato… (ma a me basta cosi’.)

* no: questa direttiva serve a caricare nel font rederer anche i caratteri che non hanno la possibilita’ di essere hintati, quei caratteri sviluppati con la tecnologia pixel utili ad esempio per il terminale o per chi usa font al di sotto dei 8px di dimesione. (l’hinting li’ creerebbe confusioni).

NOTA: se adottare gli msttcorefonts, e’ anche possibile che vi piaccia disabilitare mettere su off tutta la renderizzazione del font (sempre che abbiate adottato il mio metodo alla osx…), noterete infatti che se usate dimensioni di 8,9,10 px otterrete comunque una visualizzazione precisa poiche’ questi font sono stati disegnati proprio per quello. Chi usa windows infatti sapra’ benissimo che puo’ scegliere tra cleartype e non nel disegno dei font… che e’ esattamente quello che vi ho appena detto :) .

One Response to “hinting auto, allways & company”


Leave a Reply