11.2. Installare e configurare dei font

Installare ulteriori font sotto è molto semplice; basta copiare i font in una directory qualsiasi che si trovi nel percorso del font X11 (si veda la sezione Section 11.2.1.2, “Font X11 Core”), e per fare in modo che i font siano utilizzabili anche tramite il nuovo sistema di font rendering Xft anche in una sottodirectory delle directory configurate in /etc/fonts/fonts.conf (si veda la sezione  Section 11.2.1.1, “Xft”).

I file del font possono essere copiati in una directory indicata come utente root manualmente per esempio in /usr/X11R6/lib/X11/fonts/truetype, oppure potrete utilizzare per fare ciò il font installer di KDE che trovate nel centro di controllo di KDE. Il risultato è identico.

Invece di copiare i font vi è inoltre la possibilità di creare dei link simbolici, se ad es. avete un font (con licenza) su una partizione Windows montata e volete utilizzarlo. In seguito invocate SuSEconfig --module fonts.

SuSEconfig --module fonts inizializza lo script /usr/sbin/fonts-config che esegue la configurazione dei font. Per maggiori dettagli su quanto esegue lo script leggete la relativa pagina di manuale (man fonts-config).

Non fa differenza quale tipo di font dovrà essere installato la procedura è sempre la stessa, sia che si tratti di font bitmap, font TrueType/OpenType e font Type1-(PostScript). Tutti questi tipi di font possono essere installati in una directory qualunque. L'unica eccezione è rappresentato dal font CID-keyed, si veda la sezione Section 11.2.1.3, “Font CID-keyed”.

11.2.1. Dettagli sui sistemi di font

contiene due completamente differenti sistemi di font, il vecchio sistema di font X11 Core ed il nuovo sistema Xft/fontconfig. Segue una breve descrizione dei due sistemi.

11.2.1.1. Xft

In fase di ideazione di Xft si è dedicata particolare attenzione al supporto di font scalabili, incluso l'anti-aliasing. Con Xft i font vengono modificati dal programma che utilizza i font e non dall' X server come era invece il caso con il font system Core di X11. In questa maniera il programma in questione guadagna l'accesso ai file del font ed il controllo sui particolari ad es. come modificare i glifi. Questo permette la rappresentazione corretta di testo nelle varie lingue, ed inoltre l'accesso diretto ai file di font è di aiuto per integrare (ingl. to embed) font per il processo di stampa affinché quando emesso allo schermo corrisponda effettivamente a quanto emesso dalla stampante.

I due ambienti desktop KDE e Gnome, Mozilla e tante altre applicazioni utilizzano già sotto Xft di default. Quindi, Xft viene utilizzato già da più applicazioni che vecchio sistema di font X11 Core.

Xft utilizza la libreria Fontconfig per trovare i font e per influire sul modo nel quale verranno modificati. Il comportamento di fontconfig viene regolato da un file di configurazione valido per l'intero sistema /etc/fonts/fonts.conf e da un file di configurazione dell'utente ~/.fonts.conf. Ogni file di configurazione di fontconfig deve iniziare con

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

e terminare con

</fontconfig>

Per aggiungere delle directory dove cercare dei font, aggiungete una riga simile a questa

<dir>/usr/local/share/fonts/</dir>

Ciò sarà necessario solo di rado; la directory dell'utente ~/.fonts è già registrata in /etc/fonts/fonts.conf di default. Se un utente desidera installare ulteriori font, basta copiarli in ~/.fonts.

Potete anche inserire delle regole per determinare l'aspetto dei font, ad esempio

<match target="font">
 <edit name="antialias" mode="assign">
  <bool>false</bool>
 </edit>
</match>

per disattivare l'anti-aliasing per tutti i font, oppure

<match target="font">
 <test name="family">
  <string>Luxi Mono</string>
  <string>Luxi Sans</string>
 </test>
 <edit name="antialias" mode="assign">
  <bool>false</bool>
 </edit>
</match>

se si vuole disattivarlo solo per determinati font.

La maggioranza delle applicazioni utilizzano di default i nomi di font sans-serif (o l'equivalente sans), serif o monospace. Si tratta di font che non esistono effettivamente, ma di soli alias che vengono risolti in base alla lingua impostata in un font adatto.

Ogni utente potrà aggiungere delle regole nel suo ~/.fonts.conf visto questi alias vengono risolti nei suoi font di preferenza:

<alias>
 <family>sans-serif</family>
 <prefer>
  <family>FreeSans</family>
 </prefer>
</alias>
<alias>
 <family>serif</family>
 <prefer>
  <family>FreeSerif</family>
 </prefer>
</alias>
<alias>
 <family>monospace</family>
 <prefer>
  <family>FreeMono</family>
 </prefer>
</alias>

Dato che quasi tutte le applicazioni utilizzano di default questi alias, questo influisce su tutto il sistema. In tal maniera con lo minimo sforzo ottenete i vostri font preferiti quasi dappertutto senza dovere intervenire singolarmente sull'impostazione dei font in ogni programma.

Per vedere quali font sono installati e disponibili, vi è il comando fc-list.

fc-list "" emette un elenco con tutti i font. Se volete sapere quali sono i font scalabili a vostra disposizione (:outline=true) che includono tutti i glifi richiesti per l'ebraico (:lang=he) e per tutti i font volete avere il nome di font (family), stile (style), grado di grassetto (weight) e nome di file del font, immette ad esempio il seguente comando:

fc-list ":lang=he:outline=true" family style weight file

Ecco come potrebbe essere l'output di questo comando:

    
/usr/X11R6/lib/X11/fonts/truetype/FreeSansBold.ttf: FreeSans:style=Bold:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSerif.ttf: FreeSerif:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeMono.ttf: FreeMono:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSans.ttf: FreeSans:style=Medium:weight=80
/usr/X11R6/lib/X11/fonts/truetype/FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200
/usr/X11R6/lib/X11/fonts/truetype/FreeMonoBold.ttf: FreeMono:style=Bold:weight=200

Ecco i principali parametri che possono venire elencati con fc-list:

Table 11.2. Possibili parametri di fc-list

Parametri

Significato e valori possibili

family

Il nome della famiglia di font ad esempio FreeSans

foundry

I produttori di font ad esempio urw

style

Lo stile di font ad esempio Medium, Regular, Bold, Italic, Heavy, ...

lang

La/le lingua/e supportata/e dal font. Ad esempio de per tedesco, ja per il giappone, zh-TW per il cinese tradizionale, zh-CN per il cinese semplificato ...

weight

Il grado di grassetto, ad esempio 80 non in grassetto, 200 in grassetto.

slant

Il grado della corsività, spesso 0 non corsivo, 100 in corsivo.

file

Il nome di file sotto quale è stato salvato il font.

outline

true se si tratta di un font cosiddetto outline, altrimenti false.

scalable

true se si tratta di un font scalabile, altrimenti false.

bitmap

true se si tratta di un font bitmap, altrimenti false.

pixelsize

La dimensione del font in pixel. Assieme a fc-list indicato solo per font bitmap.

11.2.1.2. Font X11 Core

Oramai il sistema di font X11 Core non supporta solo font bitmap, ma anche font scalabili come font Type1, TrueType/OpenType e font CID-keyed. Anche font Unicode vengono supportato già da parecchio tempo.

Nel 1987 il sistema di font X11 Core è stato sviluppato per X11R1 per poter elaborare font bitmap monocromatici ed ancora oggi che tutte le estensioni menzionate sopra sono state aggiunte in un secondo momento.

Ad esempio vi è il supporto per font scalabili solo senza antialiasing e subpixel rendering, e caricare font estesi, scalabili con tanti glifi per numerose lingue può rilevarsi essere un processo molto lento. Anche l'utilizzo di font unicode può richiedere molto tempo e consuma più memoria di quanto non fosse necessario.

Vi sono anche altri punti deboli del sistema di font X11 Core e si può tranquillamente asserire che si tratta di un font ormai passé non più estensibile in modo sensato. Comunque per motivi di compatibilità con versioni precedenti rimane disponibile, ma dove possibile si dovrebbe utilizzare il sistema più moderno Xft/fontconfig.

Tenete presente che vengono considerati dall' X server solo directory che

  • nella sezione Files del file /etc/X11/XF86Config sono registrati come FontPath.

  • hanno un file font.dir valido (viene creato da SuSEconfig).

  • non sono state disconnesse con l'X server in esecuzione tramite il comando xset -fp.

  • oppure sono state integrate con l'X server in esecuzione tramite il comando xset +fp.

Se l' X server è già in esecuzione potete rendere disponibili font appena installati nelle directory integrate tramite il comando: xset fp rehash. Questo comando viene invocato già da SuSEconfig --module fonts.

Dato che il comando xset richiede l'accesso all'X- server in esecuzione, ciò funzionerà solo se SuSEconfig --module fonts è stato lanciato da una shell con accesso ad un X server in esecuzione. Il modo più semplice per realizzare ciò consiste nell'immissione del comando sux seguito dall'immissione del password di root in un terminale per diventare root, sux passerà i permessi di accesso dell'utente che ha lanciato l'X server alla root shell.

Per verificare se i font sono stati installati in modo corretto e che sono disponibili tramite il sistema di font X11 Core utilizzate il comando xlsfonts che elenca tutti i font disponibili.

utilizza di default locales UTF-8, quindi dovreste utilizzare font Unicode che si riconoscono dalla desinenza iso10646-1 del nome di font elencato da xlsfonts. Tutti i font Unicode disponibili possono essere visualizzati anche con xlsfonts | grep iso10646-1.

Quasi tutti i font Unicode forniti a corredo con contengono almeno tutti i glifi necessari per le lingue europee per cui prima si utilizzava l'encoding iso-8859-*.

11.2.1.3. Font CID-keyed

A differenza di altri tipi di font, nel caso di font CID-keyed non possono essere installati in una directory qualunque, dovrebbere essere in ogni caso essere installati in /usr/share/ghostscript/Resource/CIDFont. Questo non fa differenza per Xft/fontconfig, ma lo richiedono Ghostscript ed il sistema di font X11 Core.

[Tip]Tip

Per ulteriori informazioni in tema di font sotto X11 consultate http://www.xfree86.org/current/fonts.html.