Ottieni intervalli Unicode supportati dal file Font * .ttf su Ubuntu


9

Ho alcuni caratteri in formato 'ttf' sulla mia macchina Ubuntu.

Voglio conoscere alcuni metadati di quei caratteri, su quali intervalli di unicode e quali codici non Unicode codepage quei file di caratteri sono supportati.

Come posso farlo?

Aggiunto 1: Ho dimenticato di menzionare che desidero ottenere tali informazioni per diverse centinaia di caratteri, quindi ho bisogno di una sorta di utilità terminale, che può essere automatizzata

Risposte:


8

fc-querypuò mostrare set di caratteri Unicode supportati. Non conosco altre tabelle codici però.

Ad esempio, fc-query /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttfsul mio Debian mostra questo:

…
charset: 
    0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffffffff ffffffff ffffffff
    0001: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0002: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 008873ff
…

Mostra le gamme di caratteri supportate, anche se non indica a quale blocco appartiene (devi sapere a quale intervallo appartiene a quale blocco).

Ad esempio, la quarta colonna di 0000, che corrisponde a U + 0060 - U + 007F, ha un valore esadecimale di 7fffffff. Questo ha un valore in bit 0111 1111 1111 1111 1111 1111 1111 1111, dove il bit più a destra è U + 0060 e il più a sinistra è U + 007F. Ciò significa che U + 007F non è supportato in questo carattere.

Probabilmente avresti bisogno di scrivere uno script che esegua operazioni bit per bit sulle informazioni fornite da fc-query.

P / S: Il mio sito preferito per le informazioni unicode è FileFormat.Info


Dove trovo le informazioni su quale intervallo appartiene a quale blocco?
Akaihola,

Ah, il numero di riga indica le cifre esadecimali più a sinistra del punto di codice e la posizione del bit nel campo bit fornisce le due cifre esadecimali più a destra. Giusto?
Akaihola,

1

Consiglierei FontForge . È disponibile nel gestore dei pacchetti di Ubuntu semplicemente come fontforge.


Sì, ho trovato questo programma - ma a quanto ho capito ha solo l'interfaccia GUI, ma ho bisogno di un terminale per automatizzare questa cosa
ShockwaveNN

@ShockwaveNN: bene, allora dillo nella tua domanda. Le tue possibilità di ottenere una risposta adeguata alla tua domanda aumentano se dichiari la tua domanda reale.
Daniel Andersson,

1

Nota per chiunque trovi questo ..

fc-query non è affidabile al 100% sull'output del set di caratteri.

Ad esempio Yogafont su dafont.com mostra un set di caratteri vuoto, anche se sicuramente contiene personaggi.

$ fc-query yogafont.TTF
Pattern has 20 elts (size 32)
    family: "Yogafont"(s)
    familylang: "en"(s)
    style: "Regular"(s)
    stylelang: "en"(s)
    fullname: "Yogafont"(s)
    fullnamelang: "en"(s)
    slant: 0(i)(s)
    weight: 80(i)(s)
    width: 100(i)(s)
    spacing: 100(i)(s)
    foundry: "unknown"(s)
    file: "yogafont.TTF"(s)
    index: 0(i)(s)
    outline: FcTrue(s)
    scalable: FcTrue(s)
    charset: 
(s)
    lang: (s)
    fontversion: 0(i)(s)
    fontformat: "TrueType"(s)
    decorative: FcFalse(s)

Altri tipi di carattere con disegni come la prima guerra mondiale mostrano un set di caratteri limitato.

$ fc-query WW1-A___.TTF 
Pattern has 19 elts (size 32)
    family: "WW1  A"(s)
    familylang: "en"(s)
    style: "Regular"(s)
    stylelang: "en"(s)
    fullname: "WW1  A"(s)
    fullnamelang: "en"(s)
    slant: 0(i)(s)
    weight: 80(i)(s)
    width: 100(i)(s)
    foundry: "unknown"(s)
    file: "WW1-A___.TTF"(s)
    index: 0(i)(s)
    outline: FcTrue(s)
    scalable: FcTrue(s)
    charset: 
    0000: 00000000 00000001 00000000 0001fffe 00000000 00000000 00000000 00000000
(s)
    lang: (s)
    fontversion: 65536(i)(s)
    fontformat: "TrueType"(s)
    decorative: FcFalse(s)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.