Ubuntuのフォント* .ttfファイルからサポートされているUnicode範囲を取得する


9

Ubuntuマシンに「ttf」形式のフォントがいくつかあります。

これらのフォントのメタデータについて、それらのフォントファイルがサポートしているUnicode範囲と非Unicodeコードページについて知りたい。

どうすればできますか?

追加1:言及を忘れて、数百のフォントの情報を取得したいので、自動化できる端末ユーティリティが必要

回答:


8

fc-queryサポートされているUnicode文字セットを表示できます。他のコードページは知りませんが。

たとえば、fc-query /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf私のDebianでは次のように表示されます。

…
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
…

サポートされている文字の範囲が表示されますが、どのブロックに属しているかはわかりません(どの範囲がどのブロックに属しているかを知っておく必要があります)。

たとえば、U + 0060-U + 007Fに対応する0000の4番目の列は、16進数の値です7fffffff。これのビット値は0111 1111 1111 1111 1111 1111 1111 1111で、右端のビットはU + 0060、左端のビットはU + 007Fです。つまり、このフォントではU + 007Fはサポートされていません。

によって提供される情報に対してビット単位の操作を行うスクリプトを作成する必要があるでしょうfc-query

P / S:私のユニコード情報のお気に入りサイトはFileFormat.Infoです


どの範囲がどのブロックに属するかについての情報はどこにありますか?
akaihola 2013年

ああ、行番号はコードポイントの左端の16進数を示し、ビットフィールド内のビットの位置は右端の2桁の16進数を示します。正しい?
akaihola 2013年

1

FontForgeをお勧めします。Ubuntuのパッケージマネージャーでは、単にとして利用できますfontforge


ええ、私はこのプログラムを見つけました-しかし、理解しているように、GUIインターフェースしかありませんが、これを自動化するには端末が必要です
ShockwaveNN

@ShockwaveNN:ええと、あなたの質問でそう言ってください。実際の質問を述べれば、質問に対する適切な回答が得られる可能性が高くなります。
Daniel Andersson、

1

これを見つけた人への注意..

fc-queryは、文字セット出力では100%信頼できません。

たとえば、dafont.comのYogafontでは空の文字セットが表示されますが、その中には文字が含まれています。

$ 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)

WW1などの描画が含まれている他のフォントは、限られた文字セットを示します。

$ 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)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.