Elenco font accessibili a fontspec

  • Creatore
    Topic
  • #84856
    Up
    0
    Down
    ::


    È possibile ottenere l’elenco dei pacchetti accessibili a latex utilizzando un comando da terminale come
    `IFS=:
    for dir in $(kpsewhich –expand-path='$TEXINPUTS'); do
    find $dir -maxdepth 1 -name “*.sty”
    done`
    Essenzialmente, con [tt]kpsewhich –expand-path=’$TEXINPUTS'[/tt] si ottiene l’elenco delle cartelle in cui il motore di composizione va a cercare i pacchetti, con il [tt]for[/tt] accoppiato al [tt]find[/tt] si possono trovare tutti i file con estensione [tt].sty[/tt] presente in quelle cartelle.

    Mi chiedevo se fosse possibile ottenere in un modo simile anche l’elenco dei font accessibili al pacchetto [tt]fontspec[/tt]. Nel manuale di [tt]fontspec[/tt] c’è scritto che esso utilizza proprio [tt]kpsewhich[/tt] per la ricerca di alcuni font.

    Il mio scopo, comunque, sarebbe quello di ottenere da linea di comando l’elenco di tutti i font utilizzabili con [tt]fontspec[/tt], l’ideale sarebbe ottenere proprio l’elenco dei nomi dei font (per esempio: TeX Gyre Pagella, TeX Gyre Schola, Linux Libertine O, XITS, ecc…), da utilizzatore come argomento obbligatorio di [tt]\setmainfont[/tt]. Ho pensato a [tt]kpsewhich[/tt] perché l’ho visto nominato nel manuale, ma sono interessato in generale a qualunque comando utilizzabile da terminale. Grazie!

Visualizzazione 11 filoni di risposte
  • Autore
    Risposte
    • #84857
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::



        @Elrond
        , in generale fontspec non carica pacchetti per caricare i sont OpenType; l’unico modo che si ha per sapere quale nome usare nella chiamata di un certo font con fontspec è sapere come si chiama il file e con otfinfo chiedergl tutte le informazioni che occorrono; C’è scritto anche nel breve manualale introxelatex.pdf preparato da Enrico.

        Se lavori con un Mac, il nome da usare lo puoi trovare facilmente con l’applicazioen FontBook.app, che è quella di default quando clicchi sopra il nome del file ,otd nel Finder. Inizialmente ti mostra un campione di lettere e di cifre, ma se dai la scorciatoia di tastiera cmd+I, ti da direttamante la diescrizione a parole, e nelle prime righe c’è anche il nome da usare.

        L’elenco delle lingue è privo di molti dettagli; per esempio se c’è scritto Greek, non sai se è solo monotonico o è anche politonico. Ma insomma è meglio che niente.

        Con Windows e Linux non conosco nessuna applicazione/programma equivalente a FontBook.app

        Claudio

      • #84858
        Up
        0
        Down
        ::


        Ok, grazie, [tt]otfinfo[/tt] dovrebbe, più o meno, aiutarmi.

        Non mi sono chiare alcune cose però. Qual è il nome “letto” da [tt]\setmainfont[/tt]? “Name” o “Full name”? Mi riferisco alle informazioni che si leggono utilizzando l’opzione [tt]-i[/tt].

        Inoltre, come fa fontspec a trovare il font? Voglio dire, quando si carica un pacchetto con [tt]\usepackage[/tt] mi è sembrato di capire che il motore vada a cercare il primo file con estensione [tt].sty[/tt] fra quelli presenti nelle varie cartelle elencate in [tt]$TEXINPUTS[/tt] (più o meno il comando del mio messaggio precedente), ma mi sembra molti inefficiente che fontspec controlli tutti i file dei font fino a trovare il primo che soddisfa le proprietà richieste. Esiste un database che riporti la corrispondenza nome font <--> file del font?

        Altra domanda: in quale cartelle si possono trovare i font? [tt]texmf-dist/fonts[/tt] e basta?

        Ultima domanda: quali sono le estensioni dei file che contengono le informazioni dei file? [tt]otfinfo[/tt] mi sembra che funzioni su [tt].otf[/tt] e [tt].ttf[/tt], mentre i file [tt].afm[/tt] sono di testo puro e possono essere letti direttamente.

        Penso che l’interrogatorio possa finire qui 😀

      • #84859
        Up
        0
        Down
        ::

        Elrond” post=84291Ok, grazie, [tt]otfinfo[/tt] dovrebbe, più o meno, aiutarmi.

        Non mi sono chiare alcune cose però. Qual è il nome “letto” da [tt]\setmainfont[/tt]? “Name” o “Full name”? Mi riferisco alle informazioni che si leggono utilizzando l’opzione [tt]-i[/tt].

        Family

        Elrond” post=84291Inoltre, come fa fontspec a trovare il font? Voglio dire, quando si carica un pacchetto con [tt]\usepackage[/tt] mi è sembrato di capire che il motore vada a cercare il primo file con estensione [tt].sty[/tt] fra quelli presenti nelle varie cartelle elencate in [tt]$TEXINPUTS[/tt] (più o meno il comando del mio messaggio precedente), ma mi sembra molti inefficiente che fontspec controlli tutti i file dei font fino a trovare il primo che soddisfa le proprietà richieste. Esiste un database che riporti la corrispondenza nome font <--> file del font?

        Interroga una libreria (quale, dipende dal sistema operativo).

        Viceversa, LuaTeX costruisce un database e non è del tutto sciocco consultarlo. 🙂 Infatti contiene tutto ciò che si può usare anche con Xe(La)TeX.

        `less $(kpsewhich -var-value TEXMFVAR)/luatex-cache/generic/names/otfl-names.lua`

        Elrond” post=84291Altra domanda: in quale cartelle si possono trovare i font? [tt]texmf-dist/fonts[/tt] e basta?

        Quelle che corrispondono ai percorsi di ricerca TTFONTS e OPENTYPEFONTS (ne trovi la definizione in [tt]texmf.cnf[/tt])

        Elrond” post=84291Ultima domanda: quali sono le estensioni dei file che contengono le informazioni dei file? [tt]otfinfo[/tt] mi sembra che funzioni su [tt].otf[/tt] e [tt].ttf[/tt], mentre i file [tt].afm[/tt] sono di testo puro e possono essere letti direttamente.

        Dubito che XeTeX faccia qualcosa di sensato con i file [tt].afm[/tt]. Nel senso che non se ne fa nulla.

        Ciao
        Enrico

      • #84860
        Up
        0
        Down
        ::

        egreg9″ post=84294

        Ok, grazie, [tt]otfinfo[/tt] dovrebbe, più o meno, aiutarmi.

        Non mi sono chiare alcune cose però. Qual è il nome “letto” da [tt]\setmainfont[/tt]? “Name” o “Full name”? Mi riferisco alle informazioni che si leggono utilizzando l’opzione [tt]-i[/tt].

        Family

        Intendevo Family ma ho sbagliato a scrivere (non vedo nessun Name nei file che ho controllato), grazie 🙂

        egreg9″ post=84294

        Inoltre, come fa fontspec a trovare il font? Voglio dire, quando si carica un pacchetto con [tt]\usepackage[/tt] mi è sembrato di capire che il motore vada a cercare il primo file con estensione [tt].sty[/tt] fra quelli presenti nelle varie cartelle elencate in [tt]$TEXINPUTS[/tt] (più o meno il comando del mio messaggio precedente), ma mi sembra molti inefficiente che fontspec controlli tutti i file dei font fino a trovare il primo che soddisfa le proprietà richieste. Esiste un database che riporti la corrispondenza nome font <--> file del font?

        Interroga una libreria (quale, dipende dal sistema operativo).

        Sì potrebbe avere qualche dettaglio in più (o rimando a siti/manuali)?

        egreg9″ post=84294Viceversa, LuaTeX costruisce un database e non è del tutto sciocco consultarlo. 🙂 Infatti contiene tutto ciò che si può usare anche con Xe(La)TeX.

        `less $(kpsewhich -var-value TEXMFVAR)/luatex-cache/generic/names/otfl-names.lua`

        Questa è molto interessante, grazie mille! C’è un solo piccolo problema: ho notato che il file viene generato la prima volta che si compila un documento con luatex, ma è possibile generarlo (e successivamente aggiornarlo) anche in qualche altro modo?

        Per avere l’elenco completo dei font, è sufficiente guardare alle voci con chiave “familyname” o anche alle “family” sotto “name”?

      • #84861
        Up
        0
        Down
        ::


        Ciao,

        OldClaudio” post=84245 @Elrond, in generale fontspec non carica pacchetti per caricare i sont OpenType; l’unico modo che si ha per sapere quale nome usare nella chiamata di un certo font con fontspec è sapere come si chiama il file e con otfinfo chiedergl tutte le informazioni che occorrono; C’è scritto anche nel breve manualale introxelatex.pdf preparato da Enrico.

        Se lavori con un Mac, il nome da usare lo puoi trovare facilmente con l’applicazioen FontBook.app, che è quella di default quando clicchi sopra il nome del file ,otd nel Finder. Inizialmente ti mostra un campione di lettere e di cifre, ma se dai la scorciatoia di tastiera cmd+I, ti da direttamante la diescrizione a parole, e nelle prime righe c’è anche il nome da usare.

        L’elenco delle lingue è privo di molti dettagli; per esempio se c’è scritto Greek, non sai se è solo monotonico o è anche politonico. Ma insomma è meglio che niente.

        Con Windows e Linux non conosco nessuna applicazione/programma equivalente a FontBook.app

        Claudio

        Ciao, probabilmente non ho capito la richiesta di Elrond. Io su Windows 8 se voglio sapere il nome del font da inserire in [tt]\setmainfont[/tt] apro Writer (OpenOffice.org) e vado nell’elenco. Il nome che compare lì è quello che bisogna mettere in [tt]\setmainfont.[/tt] Ovviamente questa è tutt’altra cosa che non avere l’elenco dei font con i loro nomi.

        Ciao,
        Marco.

      • #84862
        admin
        Amministratore del forum
          Up
          0
          Down
          ::


          Credo di aver capito dove vuole andare a parare @Elrond… su qualcosa che ci accomuna e dove io non sono molto capace: giusto? 😀

          Ciao,
          Orlando

        • #84863
          samiel
          Partecipante
            Up
            0
            Down
            ::


            Il nome del font che devi passare a XeLatex lo trovi anche con fc-cache list
            Se hai degli elementi, in Linux puoi restingere significativamente la ricerca con
            fc-cache list | grep <...>, ad esempio fc-cache list | grep garam
            ti darà tutti i file dove compare la stringa garam
            In linux informazioni sul font li fornisce, fra l’altro, un programma come fontmatrix

            m

          • #84864
            Up
            0
            Down
            ::

            samiel” post=84304Il nome del font che devi passare a XeLatex lo trovi anche con fc-cache list
            Se hai degli elementi, in Linux puoi restingere significativamente la ricerca con
            fc-cache list | grep <...>, ad esempio fc-cache list | grep garam
            ti darà tutti i file dove compare la stringa garam
            In linux informazioni sul font li fornisce, fra l’altro, un programma come fontmatrix

            m

            [tt]fc-cache list[/tt] non mi risulta che esista, intendevi [tt]fc-list[/tt]?

            Come ansys ha intuito, ho bisogno di generare in maniera automatica ([tt]fontmatrix[/tt] mi sembra sia un programma a interfaccia grafica) e indipendente dalla piattaforma utilizzata ([tt]fc-list[/tt] va bene solo su sistemi Unix) l’elenco dei font utilizzabili dal pacchetto [tt]fontspec[/tt]. L’elenco dovrebbe contenere proprio i nomi dei font da passare come argomento a [tt]\setmainfont[/tt] (l’output di [tt]fc-list[/tt] richiede comunque un rimaneggiamento a tal fine). Per quanto detto, la soluzione suggerita da egreg9 è praticamente perfetta, attendo solo le risposte alle domande precedenti per perfezionare il tutto.

            Ti ringrazio comunque per la segnalazione 😉

          • #84865
            samiel
            Partecipante
              Up
              0
              Down
              ::

              fc-cache list non mi risulta che esista, intendevi fc-list

              Sì certo, scusa l’errore…

              m

            • #84866
              Up
              0
              Down
              ::

              Elrond” post=84297

              Viceversa, LuaTeX costruisce un database e non è del tutto sciocco consultarlo. 🙂 Infatti contiene tutto ciò che si può usare anche con Xe(La)TeX.

              `less $(kpsewhich -var-value TEXMFVAR)/luatex-cache/generic/names/otfl-names.lua`

              Questa è molto interessante, grazie mille! C’è un solo piccolo problema: ho notato che il file viene generato la prima volta che si compila un documento con luatex, ma è possibile generarlo (e successivamente aggiornarlo) anche in qualche altro modo?

              Per avere l’elenco completo dei font, è sufficiente guardare alle voci con chiave “familyname” o anche alle “family” sotto “name”?

              `mkluatexfontdb`
              Direi che “familyname” è buono, ma per i font non di sistema occorre specificare il nome del file (consulta il manuale di fontspec).

              Ciao
              Enrico

            • #84867
              Up
              0
              Down
              ::

              egreg9″ post=84307

              [quote=”egreg9″ post=84294]Viceversa, LuaTeX costruisce un database e non è del tutto sciocco consultarlo. 🙂 Infatti contiene tutto ciò che si può usare anche con Xe(La)TeX.

              `less $(kpsewhich -var-value TEXMFVAR)/luatex-cache/generic/names/otfl-names.lua`

              Questa è molto interessante, grazie mille! C’è un solo piccolo problema: ho notato che il file viene generato la prima volta che si compila un documento con luatex, ma è possibile generarlo (e successivamente aggiornarlo) anche in qualche altro modo?

              Per avere l’elenco completo dei font, è sufficiente guardare alle voci con chiave “familyname” o anche alle “family” sotto “name”?

              `mkluatexfontdb`
              Direi che “familyname” è buono, ma per i font non di sistema occorre specificare il nome del file (consulta il manuale di fontspec).

              Ciao
              Enrico[/quote]
              Perfetto, grazie mille!

            • #84868
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Risultati strani…

                Sul mio Mac ho dato il comando mkluatexfontdb e ho visto sul terminale che esplorava sia le cartelle del sistema TeX sia quelle del sistema operativo. Fin qui nessuna sorpresa.

                Mi salva il file in ~/Library/texlive/2012/texmf-var/luatex-cache/generic/names/otfl-names.lua e va bene.

                Apro il file e il primo font che mi presenta è (prime righe del file):`
                return {
                [“mappings”]={
                {
                [“familyname”]=”Universal Modern”,
                [“filename”]={ “UniversalModern-Bold.otf”, false },
                [“fontname”]=”UniversalModern-Bold”,
                [“fullname”]=”Universal Modern Bold”,
                [“names”]={
                [“family”]=”Universal Modern”,
                [“fullname”]=”UniversalModern-Bold”,
                [“psname”]=”UniversalModern-Bold”,
                [“subfamily”]=”Bold”,
                },
                [“size”]={},
                [“slant”]=0,
                [“weight”]=700,
                [“width”]=5,
                },`
                eccetera. Mai visto questo font con gli strumenti del Mac; lo cerco con il comando locate dopo aver aggiornato il database dei nomi die file sull’intero disco, e locate non lo torva. Forse è in uno dei file nascosti del sistema? cerco Monaco.dfont che fa parte di questo tipo di font di sistema, e locate lo trova senza problemi.

                Dunque UniversalModern-Bold-otf dov’è? Sì, di fianco al nome c’è scritto false, l’ho visto, ma se è falso che esista quel nome, da dove ha preso le informazioni?

                Non sono andato oltre a cercare altri font perché questo otfl-names.lua è grandissimo e dice solo qualcosa di più rispetto a quello che dice FontBook, e qualcosa di meno, per esempio non indica le lingue gestibili con gli alfabeti che contiene; tra quel che dice di più ci sono anche font che apparentemente non si trovano sul disco, o se ci sono hanno un nome diverso: mistero…

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

            Go to top