Ciao a tutti,
con un po’ di pazienza, sto imparando ad usare XeLaTeX, e mi sono imbattuto in un problema: come usare i font in formato PostScript all’interno di un documento da comporre con XeLaTeX?Inizialmente avrei voluto chiedere se era possibile usare i font di tipo 1 con XeLaTeX, ma dando un’occhiata all’elenco dei font nella guida di Enrico, la risposta a questa domanda è automatica, quindi passiamo pure a come richiamarli.
Perché mi interessa? Ad esempio perché dispongo di alcuni font in formato PostScript e di altri in formato OpenType, e sembra che l’unico approccio di composizione in grado di gestirli contemporaneamente sia quello che fa uso di XeLaTeX.
Prendiamo, ad esempio, il caso dell’Avant Garde: volendolo inserire come font senza grazie di default in un documento da comporre con pdfLaTeX, la ben nota sintassi è
`\renewcommand{\sfdefault}{pag}
`
per le cose fatte male e frettolosamente; meglio richiamare il pacchetto o altro ancora, a seconda del tempo e/o della pazienza a disposizione.Purtroppo, componendo con XeLaTeX, questo comando non funziona ed ottengo un errore che qui non posso riportare perché al momento non dispongo della macchina sulla quale ho fatto le prove. Prima di addentrarmi ulteriormente in altri esperimenti mi blocco subito per sapere che cosa ne pensano gli esperti. In rete ho trovato diverse soluzioni in disaccordo tra di loro, come ad esempio quella di richiamare il “nome PostScript” del font in oggetto con una sintassi simile a
`\setsansfont{\fontspec{URW Gothic L}}
`
che, tra l’altro, non mi funziona.P.S. mi rendo conto di non avere scelto un esempio particolarmente felice, in quanto dell’Avant Garde esiste un “clone”, il TeX Gyre Adventor, disponibile sicuramente in TrueType e/o OpenType, e pertanto mi si potrebbe consigliare di usare uno di questi due formati.
In realtà a me interessa far funzionare con XeLaTeX proprio i font PostScript, quindi sentitevi pure liberi di immaginare, al posto dell’Avant Garde in oggetto, un qualsiasi font disponibile solamente nel formato di tipo 1.
Molte grazie e a presto!
Il problema che vedo è nella codifica di output; con XeTeX si possono usare tutti i font “di prima”, compresi quelli Type1 e quelli noti al sistema. Poi si va nel dettaglio di XeLaTeX che richiede anche di conoscere la codifica di output. Quando carichi il pacchetto fontspec, la codifica di default è EU1, invece della tradizionale OT1. Perciò il lavoro da fare per scegliere un font Type1 tradizionale è un pochino più complicato.
Prendo spunto dal tuo esempio; per qualche misterioso motivo, vuoi che il font senza grazie sia Avant Garde (pag). Dovrai dire qualcosa del tipo
`\usepackage[T1]{fontenc} % mi occorre T1
\usepackage{fontspec} % il default è EU1
\renewcommand{\sfdefault}{pag}
\usepackage{etoolbox}
\cspreto{sffamily }{\fontencoding{T1}}`
Le ultime due righe servono a modificare il comportamento del comando \sffamily in modo che invochi anche la codifica T1 oltre alla famiglia di font richiesta. Naturalmente le limitazioni imposte al testo che scrivi in \sffamily sono notevoli: la maggior parte delle lettere accentate non funzionerà, per esempio, e dovrai ricorrere ai comandi tradizionali: gli unici caratteri “sicuri” sono quelli ASCII a 7 bit, per intenderci.
Per finire: la sintassi di \setsansfont è
`\setsansfont{URW Gothic L}`
Dopo \setsansfont puoi mettere le eventuali opzioni come Ligatures=TeX e le altre indicate dal pacchetto fontspec. È scritto chiaramente nella guida di fontspec e, credevo, anche nella mia introduzione.
Ciao
Enrico