Community
 
Aggiungi lista preferiti Aggiungi lista nera Invia ad un amico
------------------
Crea
Profilo
Blog
Video
Sito
Foto
Amici
   
 
 

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}.