CONFIGURAZIONI PC E RETI
ovvero... come abbiamo fatto dalla A alla Z.
 
HOME DOCUMENTI PROGETTI RISORSE DOMANDE ARTICOLI

 PDFLATEX: UTILIZZO DEI FONT TRUETYPE
 ultimo aggiornamento: 30 maggio 2005 ore 10.50
 
 
PROBLEMATICA
configurazione di pdflatex per l'utilizzo di un font TrueType.
 
FASI
1) recupero file truetype;
2) modifica file configurazione di pdftex;
3) creazione files .afm e .tfm;
4) creazione file myfonts.map;
5) crezione file .fd;
6) creazione file esempio.
7) importante nota sui files ttf.

 
FASE 1: RECUPERO FILE TRUETYPE
Come file True Type e' possibile utilizzare uno dei files di Windows (ad esempio in c:\windows\fonts).
Per questo esempio utilizzeremo il file QUIGLEYW.TTF (versione Windows con licenza freeware) scaricato da

www.1001fonts.com

Il file va copiato nella directory che conterra' anche il file prova.tex (file di esempio che utilizzeremo per creare il file pdf). Supponiamo che la directory sia ~/prova (ossia la directory prova nella nostra directory home):

cd
mkdir prova
cd prova
(... eseguire il download qui ...)
unzip quigleyw.zip
mv QUIGLEYW.TTF quigleyw.ttf

Con l'ultima istruzione e' stato convertito in minuscolo il nome ed estensione del file QUIGLEYW.TTF.
Per comodita' il file puo' essere scaricato sul nostro sito:

quigleyw.ttf


 
FASE 2: MODIFICA FILE CONFIGURAZIONE DI PDFTEX
pdflatex utilizza pdftex. Occorre modificare percio' il file di configurazione di pdftex in modo da utilizzare il nuovo font.
Per sapere qual e' il file di configurazione che st utilizzando pdftex si puo' dare il seguente comando:

pdftex story

Il risultato e' qualcosa del genere:

This is pdfTeX, Version 3.14159-1.10b (Web2C 7.4.5)
(/usr/share/texmf/tex/plain/base/story.tex{/usr/share/texmf/pdftex/config/pdftex.cfg} [1{/usr/share/texmf/dvips/config/pdftex.map}])

Interpretandolo, si nota come il file di configurazione e' /usr/share/texmf/pdftex/config/pdftex.cfg.
Per uscire dall'ambiente pdftex basta poi dare il comando:

*\bye

Per il nostro esempio creiamo un file di configurazione nella directory ~/prova (in quanto pdftex utilizza - se esiste - il file di configurazione nella directory dove e' lanciato). Modificare il comando tenendo presente del percorso del vostro pdftex.cfg.

cp /usr/share/texmf/pdftex/config/pdftex.cfg .

Occorre ora editare il file pdftex.cfg decommentando (o aggiungendoci) la riga

map +myfonts.map

In questo modo sara' possibile utilizzare il file myfonts.map per aggiungere il font.

 
FASE 3: CREAZIONE FILES .afm E .tfm
Per l'utilizzo del font quigleyw.ttf occorre creare i files quigleyw.afm e quigleyw.tfm. Occorre utilizzare gli eseguibili ttf2afm e afm2tfm. Occorrera' anche utilizzare il file T1-WGL4.enc scaricabile per comodita' dal nostro sito:


T1-WGL4.enc

Occorre copiare T1-WGL4.enc nella directory ~/prova.
I comandi da lanciare sono i seguenti:

ttf2afm -e T1-WGL4.enc -o quigleyw.afm quigleyw.ttf
afm2tfm quigleyw.afm -T T1-WGL4.enc quigleyw.tfm

L'ultima istruzione produce la riga

quigleyw QuigleyWiggly " T1Encoding ReEncodeFont " <T1-WGL4.enc


 
FASE 4: CREAZIONE FILE myfonts.map
L'ultima riga del comando afm2tfm deve essere scritta (con un editor di testo) nel file myfonts.map, modificandola con l'aggiunta del file quigleyw.ttf come di seguito specificato:

quigleyw QuigleyWiggly " T1Encoding ReEncodeFont " <quigleyw.ttf <T1-WGL4.enc

Per comodita' il file puo' essere scaricato sul nostro sito:

myfonts.map


 
FASE 5: CREAZIONE FILE .fd
Occorre ora creare un file con esensione .fd che mi dia la definizione della famiglia di caratteri. Chiameremo il file come T1quigleyw.fd, in quanto il file d'esempio conterra' la seguente riga:

\usefont{T1}{quigleyw}{m}{n}

Quindi, il nome del file derivera' da {T1}{quigleyw} togliendo le parentesi grafe, e {m}{n} dovra' essere contenuto nel file in questo modo:

\ProvidesFile{t1quigleyw.fd}[QuigleyWiggly font]

\DeclareFontFamily{T1}{quigleyw}{}

\DeclareFontShape{T1}{quigleyw}{m}{n}{
<-> quigleyw
}{}

Per comodita' il file puo' essere scaricato sul nostro sito:

T1quigleyw.fd


 
FASE 6: CREAZIONE FILE ESEMPIO
Creiamo ora un file esempio per vedere se il procedimento funziona. Lo chiamiamo prova.tex. Ad esempio, il file puo' contenere le seguenti righe:

\documentclass[a4paper,10pt]{article}
\setlength{\textwidth}{7in}
\setlength{\oddsidemargin}{-.25in}
\setlength{\evensidemargin}{-.25in}

% Title Page
\title{\textbf{PROVA CARATTERE}}
\author{}
\date{}

\begin{document}
\maketitle

\section*{La nostra prova}
\usefont{T1}{quigleyw}{m}{n}
Sto scrivendo in QuigleyWiggly.

\end{document}


Per comodita' il file puo' essere scaricato sul nostro sito:

prova.tex

Il file PDF verra' creato con il comando:

pdflatex prova.tex

Il risultato sara' il file prova.pdf contenente la scritta "Sto scrivendo in QuigleyWiggly." formattata con il carattere QuigleyWiggly.
Ecco il file pdf risultato dell'operazione:

prova.pdf


 
FASE 7: IMPORTANTE NOTA SUI FILES TTF
Riporto una mail che ci e' arrivata da Francesco Talamona:

Conoscevo già il vostro sito per via di WHFC, e mi ci sono imbattuto di
nuovo grazie a LaTex. Mi sono bastati pochi minuti e due "copiaincolla"
per scarabocchiare un pdf con QuigleyWiggly! Di solito la
documentazione in Italiano non è all'altezza di quella in lingua,
invece stavolta...
Complimenti! Veramente notevole.

Incoraggiato dal successo iniziale ho voluto avventurarmi a fare altre
prove; ho incontrato delle difficoltà che poi ho risolto, magari può
interessarvi la mia esperienza.

Ho inizialmente catalogato le operazioni della sequenza, in base al
fatto che fossero richieste una volta sola oppure una per font. Poi ho
cominciato a convertire una quindicina di font TTF che avevo in giro.
Il problema che ho sperimentato è abbastanza subdolo perchè il messaggio
d'errore è fuorviante (almeno, io l'ho trovato tale).
Un avolta generati i files .afm la conversione tramite afm2tfm ha emesso
il seguente messaggio d'errore:

[sko@macula:~/tex/nat_e_gua/050105]$ for i in `ls -1 *.afm` ; do afm2tfm
$i -T T1-WGL4.enc ${i%afm}tfm ; done
dimestore DimestoreHooker " T1Encoding ReEncodeFont " <T1-WGL4.enc
elder4 TimesNewRomanPSMT " T1Encoding ReEncodeFont " <T1-WGL4.enc
eller Eller " T1Encoding ReEncodeFont " <T1-WGL4.enc
! input line too long; perhaps input file is malformed?
FamilyName Forgotten Futurist
^
! input line too long; perhaps input file is malformed?
FamilyName Forgotten Futurist

^
! input line too long; perhaps input file is malformed?
FamilyName Forgotten Futurist

^
! input line too long; perhaps input file is malformed?
FamilyName Forgotten Futurist

^
! input line too long; perhaps input file is malformed?
FamilyName Guild of Professional Actors

^
interplan InterplanetaryCrap " T1Encoding ReEncodeFont " <T1-WGL4.enc
mugshots SpringfieldMugShots " T1Encoding ReEncodeFont " <T1-WGL4.enc
oscillat Oscillate " T1Encoding ReEncodeFont " <T1-WGL4.enc
sgreek Sgreek-Medium " T1Encoding ReEncodeFont " <T1-WGL4.enc
sumdumgo Sumdumgoi " T1Encoding ReEncodeFont " <T1-WGL4.enc
! input line too long; perhaps input file is malformed?
FamilyName TRUCK Conky Choo Driver

^

6 su 15 si sono rifiutati di funzionare (sono stati creati i sei
files .tfm vuoti), una "bella" percentuale.
Dicevo che ho trovato fuorviante il messaggio d'errore, difatti mi sono
concentrato a cercare di capire cosa ci fosse di sbagliato in
"FamilyName" (di solito il "caret" è usato per indicare la riga
precedente...), credendo da principio che gli spazi nel nome non
fossero supportati; poi che dipendesse dalla lunghezza di tale
parametro.
Siccome l'errore persisteva anche imponendo FontName, FullName e
FamilyName di un solo carattere, ho cercato altrove: è la voce "Notice"
quella incriminata! Se Notice supera i 254 (o 255?) caratteri afm2tfm
si rifiuta di continuare, purtroppo tale voce è utilizzato per
immagazzinare informazioni su autore, copyright, homepage, etc e non è
infrequente che tale limite (che evidentemente altrove non crea
problemi) sia oltrepassato.

In definitiva il vostro documento è ottimo (non so quanta fatica avrei
fatto senza), tutt'al più aggiungerei un caveat alla luce della mia
esperienza.

Grazie e buon 2005.

Francesco

 
RIFERIMENTI
pdftex
using a Truetype font in Pdflatex
Using TrueType fonts with TeX (LaTeX) and pdfTeX (pdfLaTeX)using a Truetype font in Pdflatex
www.1001fonts.com
CAMBIAMENTI
--. 30 maggio 2005 10.50: inserimento segnalazione Francesco Talamona
--. 30 novembre 2004 17.00: creazione documento
 
 
 redazione@retelinux.com