TrueType Fonts in Debian mini-HOWTO Bear Giles, bgiles@coyotesong.com v0.3, 10 gennaio 2000 Questo documento descrive come configurare un sistema Debian per usare i font TrueType per la visualizzazione e la stampa. La versione più recente di questo documento può essere ottenuta in formato HTML a http://www.dimensional.com/~bgiles/debian-tt.html. Traduzione a cura di Giovanni Bortolozzo, borto (at) pluto.linux.it. ______________________________________________________________________ Indice Generale 1. Introduzione 1.1 Liberatoria 1.2 Crediti 1.3 Link addizionali 1.4 Storia delle revisioni 1.5 Commenti 1.6 Progetti correlati 1.7 Distribuzione 2. Schermi (quel che non vi hanno mai detto) 2.1 Uno sguardo al prossimo XFree86 4.0 2.2 Panoramica: Preparazione prima di modificare i file di configurazione di X 3. Visualizzazione (X e i font server) 3.1 Impostare il font server xfs 3.2 Impostare il font server xfstt ed installare i font TrueType 3.3 Usare i font TrueType 3.4 Installare font TrueType addizionali 3.5 Internazionalizzazione 3.6 Questioni di sicurezza 4. Stampa (ghostscript) 4.1 Configurare Ghostscript per usare i font TrueType 4.2 Stampare i campioni dei font TrueType 5. Generazione dei contenuti 5.1 Generare le metriche di font AFM 5.2 Generare i file font.map 5.3 Manipolazione di immagini: GIMP 5.4 Conversione da ASCII a PostScript: enscript 5.5 Formattazione e composizione di testi: groff 5.6 Formattazione e composizione di testi: TeX 6. Domande non risposte 7. Ottenere i font TrueType 7.1 Un commento sull'uso dei font TrueType gratuiti di Microsoft 8. Copyright (in inglese) ______________________________________________________________________ 11.. IInnttrroodduuzziioonnee Una installazione di Linux tipicamente contiene parecchi insiemi indipendenti di font e metriche di font. Un'occhiata veloce al mio sistema rivela font e metriche di font sparse nelle seguenti directory: · XFree86 conserva i suoi font in /usr/X11R6/lib/X11/fonts/; · Ghostscript li conserva in /usr/lib/ghostscript/fonts/; · TeX li tiene in /usr/lib/texmf/fonts/; · Il pacchetto kbd di Debian mette i suoi font in /usr/share/consolefonts/; · Groff conserva le sue metriche in /usr/share/font/devps/; · Enscript (convertitore da ASCII a PostScript) tiene le sue metriche in /usr/share/enscript/*.afm. Neanche a dirlo, questi font non sono coordinati. I font TrueType sono stati progettati per eliminare questo problema permettendo che gli stessi file di font siano usati sia per la visualizzazione che per la stampa. Questo Howto prova a mostrare come usare questi font TrueType per la visualizzazione, la stampa e la preparazione di documenti su sistemi Debian GNU/Linux. 11..11.. LLiibbeerraattoorriiaa Le informazioni in questo documento sono, al meglio delle mie conoscenze, corrette. Comunque questo HOWTO è ancora in versione preliminare e quel che funziona per me potrebbe non funzionare per qualcun'altro. Anche se funziona, non sono uno scrittore tecnico professionista e sono noto per sorvolare sui dettagli critici. Quindi divertitevi, ma giocando sicuri e facendo dei backup. 11..22.. CCrreeddiittii Creato da Bear Giles, I miei ringraziamenti vanno a: · Brion Vibber, , che ha scritto il (preliminare) TrueType HOW-TO (http://pobox.com/~brion/linux/TrueType-HOWTO.html) · Doug Holland, , che ha scritto l'XFree86 Font Deuglification HOW-TO (http://www.frii.com/~meldroc/Font- Deuglification.html) 11..33.. LLiinnkk aaddddiizziioonnaallii Anche se questi link non discutono direttamente problematiche relative ai sistemi o ai pacchetti Debian, possono comunque risultare interessanti per i lettori di questo mini-HOWTO. · Using TrueType Fonts with RedHat Linux (http://www.kegel.com/linux/tt.html) · X Font Tools (http://www.hex.net/~cbbrowne/xfonts.html) · Getting fonts to look pretty under GNU/Linux for applications like StarOffice (http://king.ccrc.wustl.edu/~zubin/fonts.html) · How to use True Type © fonts for StarOffice Under Linux (http://www.mindspring.net/~john_mcl/adding_fonts.html) 11..44.. SSttoorriiaa ddeellllee rreevviissiioonnii · 0.1. 16 set. 1999: prima versione. · 0.2. 16 set. 1999: aggiunta la sezione «Link addizionali». · 0.3. 10 gen. 2000: commenti dei lettori! Aggiunti chiarimenti su diversi dettagli. 11..55.. CCoommmmeennttii Commenti, correzioni, aggiunte e critiche sono sempre benvenuti. Mi si può raggiungere a bgiles@coyotesong.com. 11..66.. PPrrooggeettttii ccoorrrreellaattii · FreeType http://www.freetype.org/ Il motore FreeType è un motore libero e portabile per il rendering TrueType. Il codice è una buona implementazione totalmente indipendente da quelle di Apple o Microsoft (comunque recentemente è sorto un problema riguardo un possibile _b_r_e_v_e_t_t_o della Apple). FreeType è una libreria non un server per i font o una libreria completa per il rendering del testo. 11..77.. DDiissttrriibbuuzziioonnee Questa è la prima stesura e mi aspetto di cambiarla significativamente dopo la sua pubblicazione. Invito a fare riferimento all'ultima versione a http://www.dimensional.com/~bgiles/debian-tt.html. La home permanente per questo documento alla fine sarà a http://www.coyotesong.com/ 22.. SScchheerrmmii ((qquueell cchhee nnoonn vvii hhaannnnoo mmaaii ddeettttoo)) Prima di tuffarci nell'impostazione dei font TrueType sotto X, rivediamo la differenza tra punti e pixel... e perché ce ne preoccupiamo tanto. Tutti i font visualizzati sono misurati in _p_u_n_t_i. Un pollice è esattamente 72 punti. Perché 72? In parte a causa delle limitazioni delle macchine tipografiche meccaniche e in parte perché è sempre divisibile per 2, 3, 4, 6, 8, 9, 12, 18 e 24. Non è male notare che l'unità predefinita in PostScript è un punto. (Nota storica: Ho mentito. Prima dell'introduzione di PostScript un pollice era esattamente 72,27 punti, ma tale dimensione del punto era stata impostata nell'epoca delle stampatrici meccaniche con stampi in metallo. Con gli schermi dei computer e le stampanti laser è semplice ottenere font di qualsiasi dimensione e quindi 72 ha _m_o_l_t_o più senso per le ragioni suddette.) Come regola generale, la maggior parte del testo dovrebbe essere tra i 7 e i 12 punti. Qualsiasi cosa più piccola di 6 punti è detto letteralmente «fine print». Le stampanti ad aghi usano caratteri a 9 o 12 punti (rispettivamente per 8 o 6 righe/pollice). Viceversa, tutti i driver video devono misurare i font usando il _p_i_x_e_l come unità fondamentale. Per il proprio driver video, il proprio schermo è 1024x800 pixel, non 10 per 8 pollici (o 720 per 576 punti). Per passare da punti (usati per specificare la dimensione dei font) a pixel (usati per i riferimenti nella memoria video) si deve conoscere la risoluzione del proprio schermo. Questa è solitamente misurata in «punti per pollice» (dpi) (Ndt: «point» sono i punti usati per misurare i font, mentre questi punti sono «dot»), sebbene siano in realtà pixel per pollice. Questa è l'unità di misura utilizzata in due insiemi di font bitmap inclusi con XFree86: l'insieme fonts-75 è pensato è per l'uso con schermi di fascia bassa con una risoluzione di circa 75 dpi, mentre fonts-100 è pensato per schermi di fasci media con una risoluzione di circa 100 dpi. Non ci sono font bitmap per l'uso con schermi di fascia elevata con risoluzione oltre i 120 dpi. Come esempio concreto, uno schermo di 13" di diagonale (11.1" utilizzabili) che visualizza un'immagine di 640x480 pixel ha una risoluzione di 72.0 dpi. Questa Non È Una Coincidenza. Infatti, la maggior parte delle pagine web (e applicazioni Microsoft) sono progettate attorno ad uno schermo canonico con una risoluzione di esattamente 72 dpi. La configurazione predefinita di XFree86 assume uno schermo con una risoluzione di 75 dpi. Tornando al mondo reale, nessuno usa più i video a 640x480, così come nessuno usa più schermi con 13" di diagonale. Poiché le schede video sono migliorate più velocemente dei monitor non è strano avere una configurazione come la mia: schermo con 19" di diagonale (più di 17" usabili), 1600x1200 pixel, risoluzione di 117 dpi. Se utilizzo una configurazione standard di X, tutti i miei font sono approssimativamente 2/3 delle dimensione voluta. Non è un'esagerazione dire che tutti i font sembrano ridotti di «un'ordine di grandezza»: i font più grandi (12 punti) sembrano quelli medi (9 punti), mentre i font medi (9 punti) sembrano quelli piccoli (6 punti). Si possono fare tre cose per correggere questo problema. Per prima cosa si dovrebbe dire al server X la risoluzione reale del proprio schermo: _/_e_t_c_/_X_1_1_/_x_d_m_/_X_s_e_r_v_e_r_s ______________________________________________________________________ #:0 local /usr/X11R6/bin/X -bpp 16 :0 local /usr/X11R6/bin/X -bpp 16 -dpi 120 ______________________________________________________________________ Poi, ci si deve assicurare di usare come font bitmap preferenziali quelli a 100 dpi piuttosto di quelli a 75 dpi: _/_e_t_c_/_X_1_1_/_X_F_8_6_C_o_n_f_i_g ______________________________________________________________________ Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" EndSection ______________________________________________________________________ Per finire, se il server X non trova un font bitmap che corrisponde esattamente a quanto richiede, proverà a «scalare» un font simile replicando i pixel («pixel replication»). Raramente i risultati sono piacevoli da usare. Assumendo di possedere un sistema ragionevolmente potente, possiamo dire al server di usare come prima scelta i font scalati, poi i bitmap per le corrispondenze esatte e come ultima risorsa i bitmap scalati. _/_e_t_c_/_X_1_1_/_X_F_8_6_C_o_n_f_i_g ______________________________________________________________________ Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" EndSection ______________________________________________________________________ 22..11.. UUnnoo ssgguuaarrddoo aall pprroossssiimmoo XXFFrreeee8866 44..00 Sono appena venuto a sapare che XFree86 supporterà le comunicazioni DDC, se sia il monitor che la scheda video le supportano. Ciò permetterà al server X di interrogare il monitor sulle sue reali dimensioni fisiche, permettendogli così di calcolare automaticamente le impostazioni DPI corrette. Si dovranno ancora fare le modifiche appropriate al proprio font path poiché al server non dovrebbe essere permesso ignorare le impostazioni esplicite dell'utente in base a ciò che ha scoperto. 22..22.. PPaannoorraammiiccaa:: PPrreeppaarraazziioonnee pprriimmaa ddii mmooddiiffiiccaarree ii ffiillee ddii ccoonnffiigguu­­ rraazziioonnee ddii XX Ogni volta che si fanno delle modifiche ai file di configurazione di X11, è un'idea eccellente disabilitare XDM mettendo exit 0 da qualche parte all'inizio del file. Se non lo si fa e X per qualche ragione non riesce a partire, XDM metterà il sistema in un brutto circolo vizioso dal quale è difficile uscire. Uomo Avvisato, Mezzo Salvato. 33.. VViissuuaalliizzzzaazziioonnee (( XX ee ii ffoonntt sseerrvveerr)) A rigore, non è assolutamente necessario impostare dei font server per usare i font TrueType con i server X. Se si vogliono usare file statici invece di un font server, si vedano le istruzioni per impostare i font TrueType per ghostscript. 33..11.. IImmppoossttaarree iill ffoonntt sseerrvveerr xxffss A questo punto assumo si abbia un file /etc/X11/XF86Config funzionante che carica le directory specificate esplicitamente nel FontPath. Lo si convertirà per usare il font server xfs. · Installare XFS Se non lo si è già fatto, si installi main/binary-*/x11/xfs_*.deb. · Configurare XFS Si editi /etc/X11/xfs/config e si cambi catalogue per contenere la propria FontList. Può essere utile anche cambiare il valore di default-resolutions (risoluzioni predefinite). _/_e_t_c_/_X_1_1_/_x_f_s_/_c_o_n_f_i_g ______________________________________________________________________ # percorsi nei quali cercare i font catalogue = /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/Speedo/, /usr/X11R6/lib/X11/fonts/Type1/, /usr/X11R6/lib/X11/fonts/100dpi/, /usr/X11R6/lib/X11/fonts/75dpi/ # x1,y1,x2,y2,... default-resolutions = 100,100,75,75 ______________________________________________________________________ · Riavviare XFS Riavviare XFS nel modo solito di Debian: _s_h_e_l_l _d_i _r_o_o_t ______________________________________________________________________ # /etc/init.d/xfs restart ______________________________________________________________________ · Verificare che XFS stia funzionando Prima di modificare il file XF86Config, si dovrebbe verificare che il server xfs stia funzionando elencando i font tramite il font server: _s_h_e_l_l _u_t_e_n_t_e ______________________________________________________________________ $ fslsfonts -server unix/:7100 -adobe-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-100-100-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-75-75-m-0-iso8859-1 .... ______________________________________________________________________ · Modificare /etc/X11/XF86Config per usare xfs Ora si è pronti per dire al server X di usare il font server xfs. Si mantenga un font path statico come posizione di ripiego in caso di problemi con xfs (conviene mantenere «misc» poiché contiene fixed, il font predefinito). _/_e_t_c_/_X_1_1_/_X_F_8_6_C_o_n_f_i_g ______________________________________________________________________ Section "Files" FontPath "unix/:7100" FontPath "/usr/X11R6/lib/X11/fonts/misc/" EndSection ______________________________________________________________________ · Riavviare X Riavviare X con startx, a meno che non si viva pericolosamente. Se così è, mi si nomini beneficiario della propria polizza vita inusualmente grande e si riavvii xdm. · Verificare che i font di XFS siano visibili Una volta stabilita una sessione X, si può verificare che il proprio server veda tutti i font di xfs elencandoli attraverso il server X. _s_h_e_l_l _u_t_e_n_t_e ______________________________________________________________________ $ xlsfonts -adobe-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-100-100-m-0-iso8859-1 -adobe-courier-bold-o-normal--0-0-75-75-m-0-iso8859-1 .... ______________________________________________________________________ 33..22.. IImmppoossttaarree iill ffoonntt sseerrvveerr xxffsstttt eedd iinnssttaallllaarree ii ffoonntt TTrruueeTTyyppee A questo punto assumo che si abbia un font server xfs funzionante e che si voglia aggiungere il supporto TrueType attraverso xfstt. · Installare XFSTT Se non lo si è già fatto, si installi main/binary-*/x11/xfstt_*.deb. · Installare i font TrueType Si copino i propri font TrueType nella directory /usr/share/fonts/truetype. Questi file solitamente hanno l'estensione .ttf e dovrebbero avere i permessi 0444. · Riavviare il font server XFSTT Si riavvii il server xfstt con l'opzione force-reload _s_h_e_l_l _d_i _r_o_o_t ______________________________________________________________________ # /etc/init.d/xfstt force-reload ______________________________________________________________________ · Verificare che XFSTT stia funzionando Prima di modificare il nostro file XF86Config, si dovrebbe verificare che il server xfstt stia funzionando. _I_m_p_o_r_t_a_n_t_e_: _i_l _s_e_r_v_e_r xfstt della Debian è in ascolto sulla porta 7101 non sulla 7100. Inoltre i permessi predefiniti richiedono che si esegua questa interrogazione come root. _s_h_e_l_l _d_i _u_n _u_t_e_n_t_e _e _d_i _r_o_o_t ______________________________________________________________________ $ fslsfonts -server unix/:7101 _FSTransSocketUNIXConnect: Can't connect: errno = 111 fslsfonts: unable to open server "unix/:7101" # fslsfonts -server unix/:7101 -ttf-arial black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1 -ttf-arial mt black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1 -ttf-arial narrow-bold-i-normal-bold italic-0-0-0-0-p-0-iso8859-1 ______________________________________________________________________ · Modificare /etc/X11/XF86Config per usare xfstt Ora si è pronti per dire all'X server di usare il font server xfstt. Vogliamo che preferibilmente usi i font TrueType piuttosto che tutti gli altri. _/_e_t_c_/_X_1_1_/_X_F_8_6_C_o_n_f_i_g ______________________________________________________________________ Section "Files" FontPath "unix/:7101" FontPath "unix/:7100" FontPath "/usr/X11R6/lib/X11/fonts/misc/" EndSection ______________________________________________________________________ · Verificare che i font di XFSTT siano visibili Una volta stabilita una sessione X, possiamo verificare che il nostro server veda tutti i font TrueType elencandoli. ______________________________________________________________________ $ xlsfonts | grep ttf -ttf-arial black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1 -ttf-arial mt black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1 -ttf-arial narrow-bold-i-normal-bold italic-0-0-0-0-p-0-iso8859-1 .... ______________________________________________________________________ 33..33.. UUssaarree ii ffoonntt TTrruueeTTyyppee A questo punto dovrebbe essere possibile usare un font TrueType in applicazioni come GIMP, Netscape o StarOffice. Poiché la maggior parte dei font TrueType non sono «equispaziati» (monospaced) probabilmente non conviene usarli con xterm. 33..44.. IInnssttaallllaarree ffoonntt TTrruueeTTyyppee aaddddiizziioonnaallii Se si sta usando il font server xfstt, è banale installare font TrueType addizionali. · Copiare i nuovi font in /usr/share/fonts/truetype/ · Riavviare xfs con /etc/init.d/xfs restart 33..55.. IInntteerrnnaazziioonnaalliizzzzaazziioonnee xfstt ha la capacità di generare diverse codifiche di font, a patto che i font TrueType contengano i glifi (glyph) necessari. Per abilitare font diversi da iso8859-1/unicode-1, si deve modificare manualmente lo script /etc/init.d/xfstt: _/_e_t_c_/_i_n_i_t_._d_/_x_f_s_t_t ______________________________________________________________________ - start-stop-daemon --start --quiet --exec $XFSTT -- \ --port $portno --daemon + start-stop-daemon --start --quiet --exec $XFSTT -- \ --port $portno --encoding iso8859-1,koi8-r,windows-1252,symbol-0 \ --daemon ______________________________________________________________________ Le codifiche riconosciute in Debian 2.1 sono: · iso8859-1 (Latin 1 - Europa occidentale) · iso8859-2 (Latin 2 - Europa centrale e orientale) · iso8859-3 (Latin 3 - esperanto e maltese) · iso8859-4 (Latin 4 - rimpiazzata da Latin 6) · iso8859-5 (cirillico) · iso8859-6 (arabo) · iso8859-7 (greco) · iso8859-8 (ebraico) · iso8859-9 (Latin 5 - Latin 1 con turco invece di islandese) · iso8859-10 (Latin 6 - lingue nordiche, rimpiazza Latin 4) · koi8-r (cirillico) · windows-1250 (Europa centrale) · windows-1251 (cirillico) · windows-1252 · windows-1253 (greco) · windows-1254 · windows-1255 · windows-1256 · windows-1257 · symbol-0 · wingding-0 · wingreek-0 · cp-437 (varie pagine di codice IBM) · cp-737 · cp-850 · cp-851 · cp-852 · cp-853 · cp-855 · cp-857 · cp-860 · cp-861 · cp-862 · cp-863 · cp-864 · cp-865 · cp-866 · cp-869 · cp-895 · atari-st · unicode-2 I primi 128 caratteri nelle codifiche iso8859-x sono sempre l'ASCII. I font windows- abbracciano e estendono gli iso8859-1 con caratteri addizionali come «smart quotes» (poiché queste estensioni, come le «smart quotes» non sono definite in iso8859-1, sono solitamente rese con dei punti di domanda). Eccellenti fonti di informazioni aggiuntiva sulle codifiche dei set di caratteri si possono trovare a · http://ppewww.ph.gla.ac.uk/%7Eflavell/iso8859/iso8859-pointers.html, · http://anubis.dkuug.dk/i18n/ e · http://czyborra.com/charsets/iso8859.html. 33..66.. QQuueessttiioonnii ddii ssiiccuurreezzzzaa Qua sopra ho usato i socket Unix, ma i pacchetti Debian standard configurano anche xfs e xfstt per restare in ascolto sulle porte 7100 e 7101, rispettivamente. L'accesso a queste porte dovrebbe essere controllato dal campo trusted-clients in /etc/X11/xfs/config, ma questa opzione non è implementata in XFree86 3.3.2.3a. Ciò significa che chiunque, da ovunque, può connettersi al font server. Poiché xfs (e presumibilmente xfsts) si «clonano» per supportare più utenti esiste un banale attacco tipo denial-of-service contro questi sistemi. Probabilmente è sicuro utilizzare i font server su linee in dialup (poiché si è presenti per gestire il problema), ma gli utenti di DSL e cable modem dovrebbero usare un firewall. 44.. SSttaammppaa (( gghhoossttssccrriipptt )) A partire dalla versione 4, ghostscript supporta i font TrueType con un'opzione in compilazione. Due pacchetti Debian forniscono ghostscript: · main/binary-*/text/gs_*.deb versione 5.10 conforme alle DFSG, · non-free/binary-*/gs-aladdin_*.deb versione 5.50 non conforme alle DFSG. Entrambe le versioni supportano i font TrueType. 44..11.. CCoonnffiigguurraarree GGhhoossttssccrriipptt ppeerr uussaarree ii ffoonntt TTrruueeTTyyppee Se si ha un server xfstt funzionante, è facile configurare ghostscript per usare i font TrueType. Si esegua semplicemente il comando seguente: ______________________________________________________________________ # xfstt --gslist --sync >> /etc/gs.Fontmap ______________________________________________________________________ Nella pratica ho scoperto che trae vantaggio da alcune piccole modifiche alle definizioni dei font generate da xfstt. Per prima cosa, se un nome di font non contiene alcuno spazio, cambio il nome nella notazione usuale. Se un nome di font contiene degli spazi, rimpiazzo tutti gli spazi con trattini e il nome originale viene aggiunto come alias per il nuovo nome. Per finire, antepongo TTF- (o MS-) a tutti i nomi dei font per minimizzare i problemi causati da font TrueType che hanno lo stesso nome di font preesistenti. Quindi ______________________________________________________________________ (Arial) (/usr/share/fonts/truetype/arial.ttf) ; (Arial Bold Italic) (/usr/share/fonts/truetype/arialbi.ttf) ; ______________________________________________________________________ diventa ______________________________________________________________________ /MS-Arial (/usr/share/fonts/truetype/arial.ttf) ; /MS-Arial-Bold-Italic (/usr/share/fonts/truetype/arialbi.ttf) ; (Arial Bold Italic) /MS-Arial-Bold-Italic ; /Arial /MS-Arial ; ______________________________________________________________________ Gli alias assicurano che ghostscript e xfstt possano ancora specificare lo stesso font con un nome comune. Molto più importante, con le modifiche ai nomi dei font è possibile istruire ghostscript ad usare il font TrueType invece dei font standard. La documentazione afferma che questo è possibile anche con la notazione con le parentesi, ma io non sono riuscito a farlo funzionare. Per esempio, possiamo istruire ghostscript a rimpiazzare i font Helvetica con i font Arial gratuiti della Microsoft aggiungendo le righe seguenti al file /etc/gs.Fontmap: ______________________________________________________________________ /Helvetica /MS-Arial ; /Helvetica-Oblique /MS-Arial-Italic ; /Helvetica-Bold /MS-Arial-Bold ; /Helvetica-BoldOblique /MS-Arial-Bold-Italic ; ______________________________________________________________________ Alias simili possono essere definiti per gli altri font standard. Questi alias possono essere molto utili sulle stampanti samba che servono client Windows. 44..22.. SSttaammppaarree ii ccaammppiioonnii ddeeii ffoonntt TTrruueeTTyyppee Il modo migliore per verificare che ghostscript sia configurato propriamente per usare i font TrueType è di stampare le pagine «campione» dei font. Assumendo di usare ghostscript 5.50 e che sia la propria coda di stampa predefinita, si possono stampare tutti i font TrueType con il seguente comando: ______________________________________________________________________ # xfstt --gslist --sync | printfont ______________________________________________________________________ dove printfont è il seguente script shell ______________________________________________________________________ #!/bin/sh set -e IFS= ')' while read fontname rest do cat << EOM | lpr %!PS (/usr/lib/ghostscript/5.50/prfont.ps) run $fontname) DoFont EOM done ______________________________________________________________________ Se si vogliono stampare solo alcuni font, lo script seguente sarà più facile da usare: ______________________________________________________________________ #!/bin/sh set -e while read -p "Nome di font, o ^D per uscire: " fontname do cat << EOM | lpr %!PS (/usr/lib/ghostscript/5.50/prfont.ps) run $fontname DoFont EOM done ______________________________________________________________________ 55.. GGeenneerraazziioonnee ddeeii ccoonntteennuuttii 55..11.. GGeenneerraarree llee mmeettrriicchhee ddii ffoonntt AAFFMM I file di metrica AFM non sono necessari per visualizzare file già esistenti con i font TrueType, ma sono necessari per creare nuovi file. Per generare questi file di metrica potrebbe essere usato il programma di ghostscript /usr/lib/ghostscript/5.50/printafm.ps, ma io ho trovato che il programma ttf2afm del pacchetto tetex-bin è più facile da usare. Lo script seguente genererà un file afm per tutti i font TrueType in una directory: ______________________________________________________________________ #!/bin/sh set -e for i in *.TTF do /usr/bin/ttf2afm $i > ${i%TTF}afm done for i in *.ttf do /usr/bin/ttf2afm $i > ${i%ttf}afm done ______________________________________________________________________ Un problema minore con ttf2afm è che alcune applicazioni si aspettano che i file afm comincino con il tag StartFontMetrics, mentre i file creati da ttf2afm iniziano con un commento. Questo «problema» è facilmente risolvibile modificando ciascun file con un editor di testo. 55..22.. GGeenneerraarree ii ffiillee ffoonntt..mmaapp Una volta che si hanno i file afm, si deve dire al sistema come trovarli. Questo spesso è fatto attraverso il file font.map. Non mi è stato possibile trovare documentazione sul formato di questo file, diversamente da fonts.dir, fonts.scale e fonts.alias, tutti creati dal programma mkfontdir. Comunque il formato minimo sembra abbastanza semplice: · Nome del font, senza spazi · nome del file AFM, senza estensione Gli alias sembrano essere implementati tramite voci multiple e l'estensione dei file deve essere in caratteri minuscoli. 55..33.. MMaanniippoollaazziioonnee ddii iimmmmaaggiinnii:: GGIIMMPP GIMP è il programma di grafica e manipolazione di immagini della GNU. Non è servito fare modifiche ulteriori per usare i font TrueType con gimp. 55..44.. CCoonnvveerrssiioonnee ddaa AASSCCIIII aa PPoossttSSccrriipptt:: eennssccrriipptt Enscript è un programma che converte ASCII in PostScript. Altri programmi che servono per scopi simili sono a2ps e mpage. Non riformatta il testo e solitamente è usato per stampare listati di codice sorgente. Per usare i font TrueType con enscript, si devono fare due cose: · Aggiungere /usr/share/fonts/truetype al proprio AFMPath. · Specificare un font TrueType, esplicitamente o come alias di un font predefinito. Per i dettagli si veda la documentazione di enscript. Una volta fatte queste modifiche, non ho avuto problemi ad usare i font TrueType. 55..55.. FFoorrmmaattttaazziioonnee ee ccoommppoossiizziioonnee ddii tteessttii:: ggrrooffff Groff è l'interfaccia Gnu al sistema di formattazione di documenti groff/troff. È con le pagine man che si può meglio apprezzare la potenza di Groff. _s_h_e_l_l _u_t_e_n_t_e ______________________________________________________________________ $ zcat /usr/man/man1/groff.1.gz | groff -man | lpr ______________________________________________________________________ A parte le pagine man, una quantità incredibile di documentazione Unix usa la formattazione troff con le macro ms (e qualche volta me). Il pacchetto xbooks di Debian, per esempio, contiene 43 file che usano troff con le macro ms. Con groff questo materiale può essere stampato in maniera elegante. Groff è un sistema molto potente, ma è il nipote (o il pronipote) di un programma utilizzato per la composizione dei testi per le presse di stampa degli anni '60. Il supporto dei font in groff riflette questo retaggio. Groff, diversamente dai suoi predecessori, usa PostScript come formato d'uscita predefinito e quindi il precedente lavoro fatto con ghostscript risolve metà del problema: groff non si deve preoccupare della lettura dei file dei font TrueType. Ha bisogno di avere a disposizione metriche di font accurate e questa sezione descrive come rigenerare i file di groff necessari: _F_i_l_e _d_i _d_e_s_c_r_i_z_i_o_n_e _P_o_s_t_S_c_r_i_p_t _d_i _G_r_o_f_f ______________________________________________________________________ /usr/share/groff/font/devps/DESC File di descrizione del dispositivo /usr/share/groff/font/devps/text.enc Codifica usata per i font testo /usr/share/groff/font/devps/generate/textmap Mappa predefinita /usr/share/groff/font/devps/generate/Makefile Makefile standard ______________________________________________________________________ Si deve modificare il Makefile, _/_u_s_r_/_s_h_a_r_e_/_g_r_o_f_f_/_f_o_n_t_/_d_e_v_p_s_/_g_e_n_e_r_a_t_e_/_M_a_k_e_f_i_l_e ______________________________________________________________________ - afmdir=/usr/local/afm + afmdir=/usr/share/fonts/truetype ______________________________________________________________________ cambiando il nome dei font con il loro equivalente TrueType (e.g., se si usano i font TrueType gratuiti di Microsoft si rimpiazzerà Hel­ vetica con Arial), e modificare TEXTFONTS e simile per includere solo questi font ridefiniti. Si deve pure modificare /usr/share/groff/font/devps/generate/afmname per usare i nomi dei font TrueType e i file afm e per rimuovere un'opzione "-e" da awk. Dopo tutto questo, si possono ricostruire le tabelle di groff con _s_h_e_l_l _u_t_e_n_t_e ______________________________________________________________________ $ cd /usr/share/groff/font/devps $ make -f generate/Makefile ______________________________________________________________________ Come al solito, il modo migliore per verificare le modifiche è usare font facilmente riconoscibili. E.g. se si stanno usando i font TrueType gratuiti della Microsoft si può usare Mistral per TR. (Il 1° aprile prossimo mi aspetto delle royalty da chiunque riconfigurerà il proprio sistema per stampare le pagine man con il font Old English!) 55..66.. FFoorrmmaattttaazziioonnee ee ccoommppoossiizziioonnee ddii tteessttii:: TTeeXX TeX è un altro insieme molto comune di programmi per la formattazione e composizione del testo presente sulla maggior parte dei sistemi GNU/Linux. I font di TeX possono essere creati con mktexmf, ma ho poche informazioni sull'esatto processo. Maggiori dettagli saranno forniti al più presto. 66.. DDoommaannddee nnoonn rriissppoossttee · Applicazioni La principale domanda senza risposta è perché se netscape communicator può usare i font TrueType, e ghostscript può usare gli stessi font TrueType, le pagine stampate da netscape non assomigliano a quelle sullo schermo. La risposta breve è che netscape genera l'output PostScript con i font standard (Helvetica e Times-Roman) invece di quelli specificati dall'utente o specificati nel file HTML. La risposta lunga è che non ho assolutamente idea del perché forzi questo comportamento o se ci sia un modo per evitarlo. 77.. OOtttteenneerree ii ffoonntt TTrruueeTTyyppee Se si cercano font TrueType ecco qui diversi posti dove si può cominciare a guardare: · c:\windows\fonts sul fermaporte che c'è nell'angolo · Microsoft's Free TrueType Fonts · Acid Fonts · The Font Ring 77..11.. UUnn ccoommmmeennttoo ssuullll''uussoo ddeeii ffoonntt TTrruueeTTyyppee ggrraattuuiittii ddii MMiiccrroossoofftt Nessun articolo sul supporto TrueType sotto Linux potrebbe essere completo senza un commento sui font TrueType gratuiti di Microsoft. Vediamo prima se sia legale utilizzare questi font gratuiti di Microsoft: ____________________________________________________________ Q. Cosa posso fare con questi font? · Chiunque può scaricare ed installare questi font per il proprio uso personale. · I progettisti [di pagine web] possono specificare questi font all'interno delle loro pagine web ... ____________________________________________________________ Chiaramente, è legale e ragionevole per gli utenti Linux scaricare e installare questi font e quindi vorrei ringraziare la Microsoft per averli resi disponibili. Poiché un'altra clausola restringe la loro redistribuzione «in qualsiasi forma che aggiunga valore a prodotti commerciali» non mi aspetto di vedere molto presto dentro a main il pacchetto con questi font (potrebbero essere impacchettati dentro a non-free, forse utilizzando un pacchetto installatore...?). Ora che questo è stato chiarito, voglio dirigere la vostra attenzione sulla seconda clausola. Microsoft incoraggia attivamente gli sviluppatori di pagine web a specificare i suoi font nelle pagine web e molti editor HTML chiamano esplicitamente questi font. Molti siti web, quando vengono visti con un Netscape/Linux standard, possono al più essere descritti come... decifrabili. Alcuni non lo sono nemmeno. Non è una coincidenza che i siti che sono, diciamo, leggibili sono solitamente quelli che specificano esplicitamente tutte le informazioni sui font nelle loro pagine web. Dopo aver installato questi font ho notato che la maggior parte di questi siti problematici sono diventati significativamente più attraenti. Molti erano ancora altamente Windows-centrici, ma almeno non devo ritrarmi schifato ogni volta che carico le loro pagine. La mia raccomandazione è di installare i font TrueType gratuiti della Microsoft per il proprio browser. Non è richiesto di creare pagine web usandoli e nemmeno di configurare ghostscript per usarli. 88.. CCooppyyrriigghhtt ((iinn iinngglleessee)) Copyright © 1999 by Bear Giles. Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed whole or in part, in any medium physical or electronic, as long as this copyright notice is retained in 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 produce a derivative work from a HOWTO and impose additional restrictions on distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO cordinator 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 respectve owners.