La mancata disponibilità e il supporto incompleto a font "scalabili" (TrueType) era, fino a qualche anno, fa uno dei problemi che rendevano GNU/Linux meno gradevole dal punto di vista estetico rispetto agli altri sistemi operativi Desktop (e in effetti il sistema operativo del pinguino non poteva ancora essere considerato un sistema operativo per utenza domestica). Oggi la situazione è cambiata di molto. Ora XFree86 e entrambi gli ambienti grafici supportano anche font, con la possibilità addirittura di eliminare o di attenuare notevolmente la quadrettatura sul contorno dei caratteri (cfr. articolo:L'anti-aliasing: mai più immagini frastagliate).
In questo articolo cercheremo di affrontare lo "spinoso" tema dell'installazione dei font per XFree86 spiegando come fare a condividere quelli presenti su una partizione di Windows o installarne di nuovi.
Installazione dei font per X
Uno dei metodi più veloci per installare dei font è quello di inserire il percorso relativo nel file /etc/X11/XF86Config (in alcune distribuzioni presente con il nome /etc/X11/XF86Config-4). Una delle prime sezioni in questo file è proprio preposta a indicare il path dei font installati. In particolare utilizzando la parola chiave "FontPath" è possibile specificare un percorso dove X andrà a ricercare i font che sono richiesti da una particolare applicazione. Ad esempio la sintassi:
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
indica alcuni dei percorsi di ricerca utilizzati di solito da X per ricercare i font.
Un piccolo appunto: è bene prestare attenzione all'ordine con cui sono inseriti i percorsi, in quanto ogni font viene ricercato a partire dalla prima riga, e appena vengono soddisfatti i criteri dell'applicazione il carattere viene scelto e utilizzato.
Un'altra delle possibili opzioni di FontPath è quella che obbliga X a utilizzare soltanto una versione non scalata dei font bitmap: questo aggira l'ostacolo del ritrovarsi dei caratteri "deformati" e "pixellati". I font "bitmap" infatti altro non sono che delle immagini raster: una scalatura porta quindi inevitabilmente a una sgradevole deformazione, cosa che non avviene con i Font TrueType, di tipo vettoriale. Per forzare la visualizzazione di un font bitmap nella sua dimensione originaria è possibile far seguire una directory indicata con FontPath da un :unscaled.
La sintassi:
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
specificherà di non utilizzare la scalatura (ridimensionamento) per i font presenti nella directory /usr/X11R6/lib/X11/fonts/misc .
È possibile trovare anche riferimenti a dei server esterni, utilizzati dalla maggior parte delle distribuzioni. In particolare, righe del tipo:
FontPath "unix/:7100"
indicano la presenza di xfs in ascolto, di cui ci occuperemo nel prossimo articolo. Se non vogliamo utilizzare xfs possiamo commentare o cancellare ogni riga relativa, oppure spostarlo in basso se vogliamo dare minore "priorità" ai font gestiti da questo server. Ora ci occuperemo dei font True Type.
I font True Type
Detto questo possiamo interamente occuparci dei font TrueType, che hanno il vantaggio di essere ridimensionati senza perdere le proporzioni originarie. Se abbiamo a nostra disposizione dei font TrueType, come quelli già disponibili per Windows, per renderli utilizzabili da X basterà quindi copiarli in una directory del nostro sistema e inserire il percorso nel file /etc/X11/XF86Config utilizzando FontPath.
Una delle caratteristiche della versione 4 di XFree86 è proprio l'introduzione del supporto diretto ai font TrueType che prima necessitavano di un server esterno per poter essere visualizzati.
Copiamo quindi i font che vogliamo installare in una directory apposita come ad esempio /usr/local/share/fonts/myfonts. Dobbiamo ora creare un indice per i font utilizzando i comandi ttmkfdir e mkfontdir. In particolare diamo questi comandi dall'interno della directory che ospita i nostri font appena copiati i file da una partizione con Windows (se si è in possesso di un Sistema Operativo Microsoft, altrimenti molti siti offrono font liberamente scaricabili):
ttmkfdir -o fonts.scale
mkfontdir
Verranno creati due file "fonts.dir" e "fonts.scale" nella nostra directory di fonts. Ora non ci resta altro che inserire il nostro nuovo path di ricerca dei font in /etc/X11/XF86Config (come ad esempio FontPath "/usr/local/share/fonts/myfonts" e riavviare X. La creazione degli indici per i Font True Type ci tornerà utile anche in seguito, quando tratteremo dell'utilizzo di un server esterno apposito per la gestione dei fonts.
Nella prima parte dell'articolo abbiamo illustrato quali sono i passi da compiere per riuscire a installare correttamente nuovi font, rendendoli disponibili a X e a tutte le applicazioni "grafiche".
Vi abbiamo spiegato come configurare XFree86 per utilizzare altri font rispetto a quelli installati di default. Vi abbiamo anche anticipato un'altra possibilità di gestione dei vostri caratteri. In particolare la gestione dei font solitamente viene affidata a server appositamente studiati e progettati. In questo modo è possibile utilizzare tutte le caratteristiche tipiche di una architettura di tipo client/server per condividere e utilizzare gli stessi font all'interno di una stessa rete. Il font server senza dubbio più famoso ed utilizzato è XFS.
XFS
Il file di configurazione principale di XFS è /etc/X11/fs/config. L'opzione che a noi interessa maggiormente è "catalogue =" tramite la quale è possibile indicare il percorso delle directory che contengono i font che vogliamo utilizzare. Se vogliamo possiamo anche far collegare XFS a un altro font server in modo da utilizzare anche i caratteri presenti su un altro PC. Ad esempio:
catalogue = /usr/lib/X11/fonts/Type1/,/usr/lib/X11/fonts/Speedo/
indicherà a XFS di rendere disponibili tutti i font presenti nelle directory /usr/lib/X11/fonts/Type1 e /usr/lib/X11/fonts/Speedo .
invece:
catalogue = /usr/lib/X11/fonts/Type1/, /usr/lib/X11/fonts/Speedo/,tcp/192.168.50.20:7100
(da scrivere senza andare a capo) farà in modo che vengano utilizzati oltre ai font presenti nelle due directory sopra indicate, anche tutti quelli disponibili con il font server presente sul computer con indirizzo IP 192.168.50.20 (7100 è la porta standard per XFS), che ovviamente deve essere configurato per restare in ascolto sulla porta 7100 del protocollo TCP.
Affinchè XFS riconosca i nuovi font è necessario però prima generare due indici: ci tornano utili i comandi
lnxbox1:~# ttmkfdir -o fonts.scale
e
lnxbox1:~# mkfontdir
già citati nel nostro precedente articolo, da eseguire nella stessa directory che contiene i nuovi font.
Questi due comandi genereranno due file: fonts.scale e fonts.dir, gli indici dei font contenuti nella directory. Ultima cosa: il server X deve essere configurato in modo da conoscere un eventuale font server. Per aggiungere un font server nella configurazione di X dovete tipicamente inserire:
FontPath "unix/:7100"
in /etc/X11/XF86Config, riga che probabilmente è già presente. Per rendere effettive le modifiche non vi rimane altro che fermare e riavviare XFS:
lnxbox1:~# /etc/init.d/xfs stop
lnxbox1:~# /etc/init.d/xfs start
oppure
lnxbox1:~# /etc/init.d/xfs restart