06.12.2012 Views

ArsTeXnica, Numero 4, Ottobre 2007 - GuIT - Scuola Superiore Sant ...

ArsTeXnica, Numero 4, Ottobre 2007 - GuIT - Scuola Superiore Sant ...

ArsTeXnica, Numero 4, Ottobre 2007 - GuIT - Scuola Superiore Sant ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Utilizzo di caratteri TrueType con L ATEX ArsTEXnica Nº 4, <strong>Ottobre</strong> <strong>2007</strong><br />

Le informazioni normalmente mostrate sul terminale<br />

vengono redirette e aggiunte in coda al file<br />

ttfonts.map. L’opzione -q sopprime tutte le informazioni<br />

superflue, cosicché, alla fine, troveremo in<br />

fondo al suddetto file la seguente riga, che mappa il<br />

file .tfm “grezzo” mtmr8r.tfm sul file times.ttf:<br />

mtmr8r times.ttf PS=Only Encoding=8r.enc<br />

Il vettore di codifica “esterna”, quello cioè utilizzato<br />

per creare il font virtuale, accetta una sintassi<br />

estesa rispetto a quella di un normale file .enc,<br />

che contiene solo una lista ordinata di 256 nomi<br />

di carattere. Le informazioni opzionali servono, ad<br />

esempio, ad istruire ttf2tfm su come comporre<br />

le legature richieste, oppure a sopprimere del kerning.<br />

In figura 2 è mostrato un estratto dal file<br />

T1-WGL4.enc. Da riga 27 a riga 31 si possono osservare<br />

le istruzioni per definire le legature; da riga<br />

48 a riga 53 e poi da riga 124 a riga 131, rispettivamente,<br />

l’inizio e la fine della codifica vera e<br />

propria.<br />

Un limite di ttf2tfm è che non è in grado di<br />

combinare insieme caratteri provenienti da font<br />

diversi. Questo, naturalmente, è un limite molto<br />

relativo per un programma pensato esplicitamente<br />

per operare su font TrueType in cui, di norma,<br />

tutti i caratteri, anche quelli appartenenti al cosidetto<br />

expert set (legature inusuali, maiuscoletto,<br />

numeri minuscoli, ecc.) quando sono presenti, si<br />

trovano inclusi nello stesso file. Tuttavia, questo<br />

malauguratamente non è sempre vero, e nell’esempio<br />

presentato più avanti (sezione 4) vedremo che<br />

saremo costretti ad assemblare caratteri da file<br />

diversi.<br />

Un’altro limite è che il file di mappa ha una sintassi,<br />

come abbiamo visto anche in precedenza (si<br />

veda la figura 1), molto diversa da quella delle altre<br />

mappe e difficilmente traducibile (ad esempio non<br />

c’è modo di recuperare il nome postscript del file).<br />

Né ttf2tfm mette a disposizione alcuno strumento<br />

per generare mappe in un formato diverso.<br />

3.3 Secondo metodo: fontinst<br />

fontinst è un programma, completamente scritto<br />

in TEX, in grado di leggere un file di testo contenente<br />

istruzioni metriche in differenti formati<br />

(di norma un file Adobe Font Metric è un<br />

buon punto di partenza) e tradurre, dopo averle<br />

eventualmente modificate, queste istruzioni nel linguaggio<br />

tipico delle (Virtual) Property List. I file<br />

di testo .pl e .vpl creati da fontinst possono<br />

poi essere trasformati in .tfm e .vf per mezzo<br />

dei due programmi pltotf e vptovf, disponibili<br />

in ogni distribuzione di TEX. fontinst, inoltre,<br />

provvede alla creazione automatica dei file Font<br />

Definition (sezione 2.1) e semiautomatica delle<br />

mappe (sezione 2.3).<br />

Un file .tfm “grezzo” può essere ottenuto, con<br />

fontinst, passando l’istruzione<br />

93<br />

\transformfont{ }{ < transforms >}<br />

L’argomento è il nome del file da generare;<br />

all’interno dell’argomento vanno<br />

indicate le operazioni da effettuare sul file stesso.<br />

Una delle più comuni è la ricodifica:<br />

\reencodefont{ < encoding >}{\ fromafm{}}<br />

Abbiamo specificato \fromafm{}, perché,<br />

il più delle volte si parte da un file .afm, ma<br />

altre istruzioni lecite avrebbero potuto essere<br />

\frommtx{} o \frompl{}.<br />

Un font virtuale può essere invece ottenuto con<br />

l’istruzione \installfont:<br />

\ i n s t a l l f o n t { }{ }{ }<br />

{ < encoding >}{ < family >}{ < series >}<br />

{ < shape >}{ < size >}<br />

Il primo argomento è il nome del file .vf; gli<br />

argomenti da in poi sono gli attributi<br />

del file, come verranno registrati nel file .fd. Le<br />

metriche e la codifica del file sono specificati, tramite<br />

appositi file ausiliari generati al volo oppure<br />

provvisti dal sistema o dall’utente, negli argomenti<br />

e .<br />

In particolare provvede alla parte metrica<br />

vera e propria, specificando il kerning estratto<br />

dall’afm e indicando quali caratteri è possibile<br />

simulare a partire da quelli già esistenti, e<br />

come, e quali no. Il kerning si trova di solito in<br />

un file con estensione .mtx, avente lo stesso nome<br />

di un .tfm “grezzo”, e generato al volo da<br />

fontinst a partire da questo. La costruzione dei<br />

caratteri è invece contenuta in un file (sempre<br />

con estensione .mtx) provvisto dal sistema e dipendente<br />

dall’alfabeto usato. Nel caso dell’alfabeto<br />

latino si tratta di newlatin.mtx. L’istruzione<br />

\unfakable{} indica che il carattere<br />

è disponibile solo se esiste esplicitamente<br />

all’interno del font. In alcuni casi è possibile ottenere<br />

un carattere a partire da altri già esistenti.<br />

È il caso della legatura fi (l’esempio è tratto da<br />

newlatin.mtx):<br />

\setglyph{fi}<br />

\glyph{f}{1000}<br />

\movert{\kerning{f}{i}}<br />

\glyph{i}{1000}<br />

\endsetglyph<br />

\setleftkerning{fi}{f}{1000}<br />

\setrightkerning{fi}{i}{1000}<br />

Il significato di questo codice è: “se non è disponibile<br />

un carattere fi distinto, usa il carattere f,<br />

poi spostati di uno spazio uguale al kerning tra f<br />

e i, quindi usa il carattere i; per finire, attribuisci<br />

a questo carattere a sinistra il kerning che avrebbe<br />

il carattere f e a destra quello che avrebbe il<br />

carattere i”.<br />

All’interno di un file .etx, da utilizzare nell’argomento<br />

di \installfont, si trova invece<br />

specificata la codifica del font virtuale. Ad ogni

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!