XFree86 Font Deuglification mini HOWTO

Doug Holland, meldroc@frii.com

v1.0, 23 novembre 1999
Come correggere i brutti ed illeggibili font di X Window. Traduzione a cura di Giovanni Bortolozzo, borto (at) pluto.linux.it.

1. Introduzione

Uno dei problemi più noiosi con i quali ho avuto a che fare sono gli abissabili font predefiniti e impostazioni dei font di X (sto parlando specificatamente a proposito di XFree86, altre versioni di X potrebbero essere migliori). Molti programmi usano font predefiniti di dimensione (width) fissa mentre sarebbero più appropriati font a dimensione variabile. Altri programmi usano font che sono ridicolmente piccoli e illeggibili. I font distribuiti con XFree86 sono a mala pena adeguati per al loro compito: c'è un font Courier quasi decente, ma i font Times e Helvetica sono semplici bitmap che «pixelizzano» (ndt: ovvero se ingranditi i loro contorni non sono più continui, ma tutti a gradini) quando sono scalati. Yuck!

Questo HOWTO prova a mostrare come aggiustare le diverse impostazioni dei font, installare nuovi font e come fare altre cose che migliorano considerevolmente l'aspetto e la leggibilità dei font nel desktop di X Window. Ciò è fatto sistemando il FontPath nel file XF86Config, aggiungendo opzioni alla riga di comando dell'X server in startx o in xdm, aggiungendo nuovi font, installando il server per i font True Type xfstt e usando una funzionalità della versione 1.1 del K Desktop Environment che «automagicamente» sistemerà le impostazioni dei font in molte applicazioni, incluse quelle non KDE, impostando i loro font e colori come quelli delle impostazioni di stile del KDE.

Commenti, correzioni, aggiunte e critiche sono sempre benvenuti. Mi si può raggiungere a meldroc@frii.com.

1.1 Registro delle modifiche

2. Il file XF86Config

Il primo posto dove guardare quando si cerca di curare i problemi dei font è il file XF86Config (/usr/X11/lib/X11/XF86Config o /etc/X11/XF86Config sono le posizioni usuali). Se non lo si è già indovinato, la parte più importante di questo file relativamente ai font è il FontPath. Prima di andare a modificarlo, sarebbe una buona idea dare una controllata alle altre parti della propria configurazione di X. Impostazioni errate del monitor possono causare ben più di un mal di testa a confronto di font brutti, quindi ci si assicuri che la velocità di refresh sia abbastanza alta rispetto alle possibilità del monitor (85 Hz è l'ottimo, 75 Hz vanno bene, 60 Hz è uno schifo).

2.1 Impostare il FontPath

Si usi il proprio editor di testi favorito e si modifichi XF86Config. All'inizio del file, ci dovrebbe essere qualcosa di simile a questo:

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/"                             

Il FontPath dice a X dove trovare i font che usa per visualizzare il testo nella schermata. L'ordine è importante -- quando un applicazione X chiede la visualizzazione di un testo, il server X solitamente ha un po' di libertà nella scelta del font da usare. Il server scorre i FontPath e prende il primo font che corrisponde ai criteri del client X e poi effettua la visualizzazione.

Il FontPath predefinito tipicamente mette i font a 75dpi (Ndt: dpi = «dot per inch» ovvero «punti per pollice») prima dei font a 100dpi. Se si ha un monitor ad alta risoluzione, questo implica font veramente piccoli. Il primo trucco che si userà sarà di scambiare le righe FontPath dei font a 75dpi e 100dpi.

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/100dpi/"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi/"

Poi, si specifichi che si preferisce utilizzare font bitmap non scalabili. Se si è mai usato Netscape o qualsiasi altro programma che mostra i titoli utilizzando grossi font, si sarà notato che questi font sono «pixelizzati». Questa cosa è molto brutta e deve essere corretta. Quindi si aggiunga :unscaled alla fine delle righe dei font misc, 100dpi e 75dpi. Si possono pure usare sia i font non scalabili che scalabili, basta mettere per prime le righe FontPath dei font non scalabili per dire a X che si preferiscono, ove possibile, questi ultimi.

FontPath        "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath        "/usr/X11R6/lib/X11/fonts/Type1"
FontPath        "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath        "/usr/X11R6/lib/X11/fonts/misc"
FontPath        "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath        "/usr/X11R6/lib/X11/fonts/75dpi"

Dopo aver fatto queste modifiche, si riavvii X. Il proprio desktop non sembra già meglio?

3. Opzioni in riga di comando del server X

La prossima cosa che si deve sistemare sono le opzioni in riga di comando per il server X. Si vorrà usare l'opzione -dpi che specifica la risoluzione dello schermo in punti per pollice. Poiché un sacco di sistemi odierni utilizzano schermi ad alta risoluzione, è facile che funzionino a 100 dpi.

Se si avvia X dal prompt dei comandi della console, si digiti

startx -dpi 100.

Se si usa xdm per i login in grafica, si dovrà modificare il proprio file /usr/X11/lib/X11/xdm/Xservers, che contiene la riga di comando per il server X. Il mio ha questa riga

:0 local /usr/X11R6/bin/X -dpi 100 -gamma 1.6

Maggiori informazioni nelle pagine man di X e Xserver.

4. Font TrueType (Una delle poche cose per le quali Windows è buono)

Poiché i ragazzi a Redmond ci tengono molto all'aspetto del loro software (diversamente dal funzionamento interno ;) hanno costruito i supporto per i font TrueType dentro a Windows. Windows 95 e praticamente qualsiasi altra variante di Windows viene distribuito con i font Arial, Times New Roman e Courier New, che sono praticamente equivalenti agli Helvetica, Times e Courier. I font TrueType sono scalabili, quindi sono belli anche se usati a grandi dimensioni, e sono pure ben riducibili, quindi vanno benissimo anche piccoli. Molte applicazioni Windows sono distribuite con dozzine di font TrueType. Quindi si aspetti ancora un po' prima di mettere nel micronde il proprio CD di Windows, prima si prendano i font.

4.1 xfstt

Sfortunatamente, XFree86 non ha il supporto nativo per i font TrueType e quindi bisogna aggiungerlo per proprio conto. Il modo più semplice per farlo è con xfstt, un server per i font TrueType libero.

Installazione

xfstt è molto facile da installare. Per prima cosa si scarichi l'archivio tar dal web. La versione più aggiornata è a http://metalab.unc.edu/pub/Linux/X11/fonts/Xfstt-0.9.10.tgz

Una volta scaricato, lo si decomprima.

tar -zxvf Xfstt-0.9.10.tgz

Poi lo si compili e lo si installi. Si legga il file INSTALL per le istruzioni veloci, ma l'installazione non è una cosa cervellotica. Tutto quel che si deve fare è make; make install. Una volta fatto, si copino i font TrueType in /usr/ttfonts e si è pronti a partire. Si lanci xfstt digitando:

xfstt --sync        # aggiorna la base di dati dei font di xfstt.
xfstt &             # avvia xfstt in background.

Poi si lanci

xset +fp unix/:7100 # informa X su xfstt

o si aggiunga

FontPath "unix/:7100"

al proprio XF86Config per informare X sul servizio font.

Sistemare la dimensione predefinita dei font

Se i propri font TrueType appaiono molto piccoli, i seguenti comandi possono aiutare.

Si aggiunga l'opzione -dpi alla riga di comando del proprio X server (si veda la sezione 3 per sapere come farlo).

Si usi l'opzione --res per dire a xfstt di incrementare la risoluzione predefinita. Si usi la seguente riga di comando:

xfstt --res 120

4.2 xfs

xfs è un font server alternativo che ora viene incluso nelle distribuzioni basate su RedHat. xfs si basa sulla libreria FreeType Font e fornisce funzionalità simili a xfstt. È in grado di servire sia i font TrueType che Type 1, nonché tutti i vari font standard di X.

Installazione

Il primo passo è l'aggiunta dei font TrueType al proprio sistema Linux. Si faccia su root e si crei una directory per conservare i font:

mkdir /usr/share/fonts/ttfonts

Poi si aggiungano i font a questa directory, o copiandoli dal proprio sistema Windows:

cp /mnt/win/path_to_fonts/*ttf  /usr/share/fonts/ttfonts/

oppure scaricando quelli disponibili direttamente dalla Microsoft.

Questi font sono contenuti in un archivio zip autoscompattante. Si può comunque installare anche sotto Linux:

unzip <TTFONT.EXE>

Si noti che i nomi di file dei font devono essere in minuscolo. Un modo semplice e veloce per convertirli è di copiarli in un filesystem DOS (FAT16) e poi ricopiarli dove prima. DOS non conserva le maiuscole. Se si vuole un metodo «linuxiano», si vada nella directory contenente i font e si digiti quanto segue:

ls *TTF | while read f
do
 [ -f "$f" ] && mv -f "$f" "`echo \"$f\" | tr A-Z a-z`"
done

Mentre si scrive ciascuna riga si otterrà il prompt «>» dopo aver premuto «Invio» al termine di ciascuna delle suddette righe. Si noti la punteggiatura: quegli «apici rovesciati» sono importanti! Una volta installati correttamente i font TrueType, come root:

ttmkfdir -o fonts.scale
mkfontdir

Si riusino questi comandi ogni volta che cambia il contenuto della directory dei font. Dopodiché, si modifichi il file di configurazione di xfs, /etc/X11/fs/config, per aggiungere i font TrueType alla lista di font del server:

catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
            /usr/X11R6/lib/X11/fonts/100dpi:unscaled,
            /usr/X11R6/lib/X11/fonts/75dpi:unscaled,
            /usr/X11R6/lib/X11/fonts/misc,
            /usr/X11R6/lib/X11/fonts/Type1,
            /usr/X11R6/lib/X11/fonts/Speedo,
            /usr/share/fonts/default/Type1,
            /usr/share/fonts/ttfonts,
            /usr/X11R6/lib/X11/fonts/100dpi,
            /usr/X11R6/lib/X11/fonts/75dpi

In alternativa, per aggiungere font si può usare il comando `chkfontpath --add <font>'. Mentre lo si sta facendo si potrebbe cambiare anche la dimensione in punto predefinita.

default-point-size = 140

Questo la imposta a 14 punti, invece dei 12 predefiniti. Alcune applicazioni X la usano, altre no. Poi ci si assicuri che la riga FontPath in /etc/X11/XF86Config sia:

FontPath "unix/:-1"

Si noti che anche «unix/:7100» potrebbe fare questo trucchetto, ma non funziona nella versione iniziale. Si commenti con «#» qualsiasi altro FontPath già esistente in quanto non se ne ha più bisogno. Il pacchetto xfs stesso dovrebbe essere già stato installato assieme con gli altri pacchetti di XFree. Per assicurarsi che giri come uno dei servizi predefiniti si usi 'ntsysv' oppure

chkconfig --add xfs

Ora xfs verrà lanciato ogni volta che si riavvia. Poi si riavvii X per forzare i nuovi FontPath e per far si che si accorgai della presenza di xfs che si può lanciare/rilanciare con:

/etc/rc.d/init.d/xfs restart

Ora si dovrebbe avere un font server funzionante. Si può controllare quali sono i font serviti con:

xlsfonts | less

o controllarli utilizzando xfontsel o, ancora meglio, gfontsel!

5. KDE

KDE è una delle cose migliori accadute a Linux e X da tanto tempo. Fornisce un'interfaccia utente uniforme che è un grosso passo avanti nel fornire un Linux accessibile a qualsiasi utente medio. Maggiori informazioni su KDE possono essere trovate a http://www.kde.org/. Perché ne sto tessendo le lodi qui? Perché KDE 1.1 ha una nuova funzionalità che farà sì che i font e i colori nei programmi, inclusi quelli non KDE, siano consistenti con lo stile corrente di KDE.

5.1 Applicare i font e i colori di KDE ad applicazioni non KDE

È molto facile. Semplicemente si lanci il KDE Control Center, si vada sotto Desktop e da lì in Style. Là ci dovrebbe essere un pulsante etichettato «Apply fonts and colors to non-KDE apps». Lo si abiliti, si clicchi su OK e tutto è fatto! La prossima volta che si lancerà applicazioni X, queste useranno gli stessi colori e font che usano le applicazioni KDE. Ad alcuni questa possibilità piace più che ad altri, e se non piace la si può sempre disabilitare.

6. Aggiustare i font in applicazioni specifiche

6.1 Netscape Navigator/Communicator

Netscape Communicator è particolarmente suscettibile a problemi di font. Se si stanno usando i FontPath predefiniti, i propri font saranno molto piccoli e veramente brutti. La prima cosa da fare è di correggere i FontPath del proprio XF86Config (si veda la sezione 2). L'uso di font a 100dpi migliora immensamente la leggibilità. Si potrebbe anche controllare le impostazioni dei font andando in Edit/Preferences e da lì sotto Appearance/Fonts. Per venir a capo della «pixelizzazione» dei font bitmap, si disabiliti l'opzione «Allow Scaling» nella selezione dei font.

Se si ha xfstt o xfs, Netscape è perfettamente in grado si usarli tranquillamente. In Edit/Preferences, si possono specificare font TrueType sia per i font a larghezza fissa che variabile, ma comunque Netscape non si ricorderà dopo averlo chiuso la dimensione che si era scelta. Se non si è usata l'opzione -dpi quando si è lanciato l'X server o l'opzione --res di xfstt, si otteranno font veramente piccoli. Una volta applicate queste due cose, i font TrueType funzionano alla grande.

6.2 WordPerfect

Presto in arrivo.

6.3 StarOffice

Presto in arrivo.

7. Crediti

Creato da Doug Holland

Email: meldroc@frii.com

WWW: http://www.frii.com/~meldroc/

Contributi aggiuntivi di:

Ringraziamenti a:

8. Copyright (in inglese)

Copyright © 1999 by Doug Holland.

Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator for more information.

In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would very much like to be notified of any plans to redistribute the HOWTOs, this one in particular! Web page authors are free to link to this HOWTO without restriction, though the author would appreciate an email informing him of this, just so he can boost his ego by knowing who else reads and links to this document.

Many of the terms mentioned in this document are trade names. Unless otherwise stated, all trademarks are property of their respective owners.