Come richiamare i font PostScript con XeLaTeX?

  • Creatore
    Topic
  • #54547
    Up
    0
    Down
    ::


    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!

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #54548
      Up
      0
      Down
      ::

      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

    • #54549
      Up
      0
      Down
      ::


      Ciao e grazie per la risposta.

      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.

      Accidenti, quanti giri e che limitazioni pesanti! Credevo che la gestione del formato T1 da parte di XeLaTeX fosse una cosa molto più semplice ed immediata.

      Mi sa che è meglio pensare di procurarsi direttamente la versione OpenType dei font di interesse, quando disponibili (ed accessibili!).

      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.

      Certamente, tu l’hai spiegato per bene ed ero già a conoscenza della sintassi che mi riporti; semplicemente, tanto per cambiare, non mi sono fatto capire bene.

      Quello che volevo dire è che quando ho cercato di arrangiarmi da solo per richiamare i font T1 con XeLaTeX prima di chiedere aiuto al forum, ho perso un po’ di tempo in rete, dove ho trovato un sacco di informazioni contraddittorie (si vede che XeLaTeX è ancora un argomento non consolidato). In una di queste pagine (spiacente, non riesco a trovare il riferimento), era suggerita (per richiamare i soli font PostScript, non i TTF né gli OTF) la sintassi
      `\setsansfont{\fontspec{URW Gothic L}}
      `
      che, come ho scritto sopra, comunque non funziona.

      Grazie per le dritte e a presto.

    • #54550
      Up
      0
      Down
      ::

      Ciao e grazie per la risposta.

      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.

      Accidenti, quanti giri e che limitazioni pesanti! Credevo che la gestione del formato T1 da parte di XeLaTeX fosse una cosa molto più semplice ed immediata.

      No, è la gestione di LaTeX della codifica utf8 che è complicata. 😉 Del resto da un programma nato nel 1978, la cui ultima versione è del 1989, non è che ci si possa aspettare che conosca Unicode. 🙂

      Mi sa che è meglio pensare di procurarsi direttamente la versione OpenType dei font di interesse, quando disponibili (ed accessibili!).

      Certo. Ma se quello che desideri è un uso limitato di un font per testatine o titoli correnti (che non contengano caratteri strani) ci si può pensare, come detto nell’altro messaggio.

      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.

      Certamente, tu l’hai spiegato per bene ed ero già a conoscenza della sintassi che mi riporti; semplicemente, tanto per cambiare, non mi sono fatto capire bene.

      Quello che volevo dire è che quando ho cercato di arrangiarmi da solo per richiamare i font T1 con XeLaTeX prima di chiedere aiuto al forum, ho perso un po’ di tempo in rete, dove ho trovato un sacco di informazioni contraddittorie (si vede che XeLaTeX è ancora un argomento non consolidato). In una di queste pagine (spiacente, non riesco a trovare il riferimento), era suggerita (per richiamare i soli font PostScript, non i TTF né gli OTF) la sintassi
      `\setsansfont{\fontspec{URW Gothic L}}
      `
      che, come ho scritto sopra, comunque non funziona.

      Ho provato a fare una ricerca di con Google e non ho trovato nulla. La cosa da ricordare è che \set{main|sans|mono}font hanno una chiamata di \fontspec implicita.

      Ciao
      Enrico

Visualizzazione 2 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top