Breve panoramica sull'implementazione del pacchetto FellTypes
Introduzione
Può forse essere interessante esaminare più da vicino i dettagli del procedimento seguito per ottenere i numerosi files necessari a LaTeX per poter utilizzare i Fell Types. L'installazione di fonts in LaTeX, infatti, è forse l'aspetto più complicato di questo programma, specie se i fonts da installare contengono caratteri non usuali e/o seguono codifiche non standard (nella sezione links di questo sito si possono trovare i collegamenti a guide e tutorials che trattano ottimamente questo argomento).
Il procedimento che ho usato è descritto da Damir Rakityansky
in
Using TrueType fonts with TeX (LaTeX) and pdfTeX (pdfLaTeX).
In alternativa è possibile utilizzare il programma fontinst. fontinst,
in realtà, è stato pensato per lavorare su fonts postscript Type1,
ma è possibile adattarlo all'installazione di un font TrueType
una volta che sia stato generato il corrispondente afm con
il programma ttf2afm; infatti fontinst lavora esclusivamente
su questo file metrico, e non ha bisogno dei caratteri veri e propri
(fontinst, ttf2afm e gli altri programmi che verranno
menzionati in seguito, sono tutti inclusi nelle più importanti
distribuzioni di LaTeX).
Sfortunatamente, nel mio caso, fontinst non ha funzionato:
o meglio, ha generato tutti i files necessari senza segnalare
errori, ma, al momento di usare il font, i files TFM si sono rivelati
non corretti (messaggio di errore: <nomefile> not
loadable: bad TFM file).
Tornando all'installazione dei Fell Types, verranno, qui di seguito, riportati tutti i passi necessari e rimarcate le differenze con quanto si trova nel sito citato. Il procedimento verrà descritto per un solo font: basterà ripeterlo per ciascun altro, per ottenere l'installazione dell'intera famiglia. Inoltre, quanto verrà detto è relativo a sistemi operativi Windows (il test è stato effettualmente realizzato su Windows 98, ma non ci dovrebbero essere differenze per quanto riguarda Windows 95/ME/NT/200/XP) e distribuzione MikTeX.
Preparazione all'installazione
Il programma che utilizzeremo per creare i files matrici, ttf2afm, ha bisogno, oltre ovviamente ai TrueType, anche di uno o più vettori di codifica, ovvero files in cui è specificata una mappatura dei caratteri (ovvero l'ordine in cui sono disposti, all'interno del font) e, opzionalmente, istruzioni per generare eventuali legature o sopprimere istruzioni di crenatura. ttf2afm richiederebbe due diversi vettori: uno in entrata, che descrive la mappa reale del font, e uno in uscita, che desrive la mappa del Virtual Font usato da TeX. In pratica, come avviene nell'esempio di Rakityansky, i due vettori spesso coincidono. Inoltre, è possibile ordinare a ttf2afm di seguire, per il vettore in entrata, la codifica interna del font semplicemente omettendo il vettore stesso.
Quindi, innanzitutto bisogna procurarsi i TrueType dal sito
www.iginomarini.com e
metterli in una directory temporanea. Nella stessa directory va
copiato anche il file T1-WGL4.enc (vettore di codifica)
che è incluso nella distribuzione di ttf2tfm. A questo
punto si può passare alla fase operativa vera e propria.
Compilazione dei files metrici
Nella pagina di Rakityansky troviamo ttf2afm usato così:
ttf2tfm times.ttf -q -T T1-WGL4.enc -v ectimes.vpl rectimes.tfm >> ttfonts.map
Noi dobbiamo adattare le opzioni alle esigenze del nostro caso e modificare il comando in questo modo:
ttf2tfm fedprm2.ttf -N -t T1-WGL4.enc -v fedprm28t.vpl fedprm28r.tfm > fedprm2.out.
Le differenze, a parte il nome del font, interessano le opzioni
di codifica. Poiché la codifica dei Fell Types non segue lo
standard WGL4 (e non potrebbe, visto che contiene caratteri inusuali
o alternativi e legature insolite) l'opzione -T T1-WGL4.enc che indica che
il file T1-WGL4.enc è utilizzato per la codifica sia
in entrata che in uscita, deve essere sostituita con le opzioni -N -t
T1-WGL4.enc; ovvero, per la codifica in entrata viene
usata la codifica specifica del font e per quella in uscita un
vettore che è combinazione della codifica specifica e di quella
definita nel file T1-WGL4.enc.
Le rimanenti differenze sono relative all'utilizzo del font con
pdfTeX (o pdfLaTeX). Infatti, mentre all'interprete di DVI basta
la voce PS=Only nella mappa dei fonts, alla fine
della riga relativa al font in questione, Postscript e PDF non
riconoscono questa sintassi, ma hanno bisogno del vettore di
codifica in entrata per conoscere l'esatta posizione dei singoli
glifi all'interno del font. Per ottenere tale vettore
viene soppressa l'opzione (-q) che riduce il numero
di informazioni in output, e tale output viene rediretto al file
fedprm2.out; da questo, con un banale programma di
gawk è possibile estrarre il file voluto fedprm2.enc
(questa operazione può anche essere effettuata a mano, ovviamente,
ma trattandosi di sedici o diciotto fonts è auspicabile trovare
una qualche forma di automazione).
Seguendo ancora il procedimento descritto da Rakityansky dobbiamo trasformare i files VPL in Virtual Fonts e TFM:
vptovf fepirm28t.vpl fepirm28t.vf fepirm28t.tfm
e cancellare i files .vpl:
del *.vpl
Installazione del font
Dobbiamo adesso installare il font nella nostra distribuzione. Nell'albero locale della nostra distribuzione (MiKTeX crea i due alberi texmf e localtexmf, quest'ultimo è l'albero locale, in cui vanno tutti i files personalizzati dall'utente), all'interno della cartella fonts, creiamo le sottocartelle tfm\free\imfelldw, truetype\free\imfelldw e vf\free\imfelldw, e vi copiamo, rispettivamente i files .tfm, .ttf e .vf.
L'installazione non è però ancora completa. LaTeX necessita di ulteriori informazioni per poter utilizzare il font. Innanzitutto deve sapere a quale font .ttf sono collegati i vari fonts .tfm: questo compito è espletato dalle cosiddette mappe. Sempre nel nostro albero locale, nella cartella dvips creiamo la sottocartella free\imfelldw e al suo interno creiamo il file fell.map. Apriamolo con un editore di testo e scriviamo la seguente riga:
fepirm28r <fepirm2.enc <fepirm2.ttf.
Questa mappa verrà usata da pdfTeX e dvips, mentre ttf2pk, che è il programma che il visualizzatore di DVI usa per rendere sullo schermo i fonts TrueType, usa una mappa diversa. Quindi, nella cartella ttf2tfm\base dell'albero locale create il file fellttf.map, apritelo e scrivete questa riga:
fepirm28r fepirm2.ttf PS=Only.
Ci servono ancora due files: un Font Definition file, che dica a LaTeX come associare ai propri comandi per la selezione dei fonts il TFM appropriato e, opzionalmente, un file di stile per utilizzare il nostro font come font principale in un documento. Nella cartella tex\latex dell'albero locale creiamo la cartella imfelldw e al suo interno i files t1fell.fd e fell.sty. Nel primo scriveremo queste righe:
\ProvidesFile{t1fell.fd}[2005/01/22 Font definitions for T1/IMFellDWPica.]
\DeclareFontFamily{T1}{fell}{}
\DeclareFontShape{T1}{fell}{m}{n}{
<-> FEPIRM28t
}{}
\endinput
Il secondo, invece, conterrà il seguente codice:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{fell}[2005/01/24 v0.2 Supporto per il font Fell Types]
\RequirePackage[T1]{fontenc}
\renewcommand{\rmdefault}{fell}
\endinput
A questo punto dobbiamo aggiornare il database di TeX perché possa trovare i files in questione. Prima però dobbiamo modificare il file updmap.cfg. Salviamone una copia nell'albero locale, nella cartella miktex\config, apriamola e aggiungiamo questa riga:
Map fell.map #localtexmf\dvips\imfelldw\fell.map
Dopodiché possiamo lanciare l'utility di MiKTeX per aggiornare il database.
Adesso il font è propriamente installato e può essere utilizzato in un documento specificando nel preambolo: \usepackage{fell}.