- Questo topic ha 12 risposte, 6 partecipanti ed è stato aggiornato l'ultima volta 13 anni, 5 mesi fa da
OldClaudio.
-
CreatoreTopic
-
14 Aprile 2013 alle 18:20 #84856::
È 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!
-
CreatoreTopic
-
AutoreRisposte
-
-
14 Aprile 2013 alle 19:11 #84857::
@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
-
15 Aprile 2013 alle 15:59 #84858::
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 😀
-
15 Aprile 2013 alle 16:14 #84859::
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
-
15 Aprile 2013 alle 17:31 #84860::
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”?
-
15 Aprile 2013 alle 18:35 #84861::
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.
-
15 Aprile 2013 alle 18:39 #84862
-
15 Aprile 2013 alle 19:25 #84863::
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 fontmatrixm
-
15 Aprile 2013 alle 19:42 #84864::
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 fontmatrixm
[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 😉
-
15 Aprile 2013 alle 19:50 #84865
-
15 Aprile 2013 alle 19:52 #84866::
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
-
15 Aprile 2013 alle 20:01 #84867::
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!
-
16 Aprile 2013 alle 6:22 #84868::
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…
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.