GNU/Linux >> Linux の 問題 >  >> Linux

特定のフォントがサポートしている文字を調べる

fontconfig コマンドは、グリフ リストを範囲のコンパクトなリストとして出力できます。例:

$ fc-match --format='%{charset}\n' OpenSans
20-7e a0-17f 192 1a0-1a1 1af-1b0 1f0 1fa-1ff 218-21b 237 2bc 2c6-2c7 2c9
2d8-2dd 2f3 300-301 303 309 30f 323 384-38a 38c 38e-3a1 3a3-3ce 3d1-3d2 3d6
400-486 488-513 1e00-1e01 1e3e-1e3f 1e80-1e85 1ea0-1ef9 1f4d 2000-200b
2013-2015 2017-201e 2020-2022 2026 2030 2032-2033 2039-203a 203c 2044 2070
2074-2079 207f 20a3-20a4 20a7 20ab-20ac 2105 2113 2116 2120 2122 2126 212e
215b-215e 2202 2206 220f 2211-2212 221a 221e 222b 2248 2260 2264-2265 25ca
fb00-fb04 feff fffc-fffd

fc-query を使用 .ttf の場合 ファイルと fc-match インストールされているフォント名。

これには、余分なパッケージのインストールは含まれず、ビットマップの変換も含まれません。

fc-match --format='%{file}\n' を使用 正しいフォントが一致しているかどうかを確認します。


X プログラム xfd 「DejaVu Sans Mono」フォントのすべての文字を表示するには、次のコマンドを実行します:

xfd -fa "DejaVu Sans Mono"

Debian/Ubuntu の x11-utils パッケージ、Fedora/RHEL の xorg-x11-apps、Arch Linux の xorg-xfd に含まれています。


fontTools Python ライブラリを使用する方法を次に示します (pip install fonttools などでインストールできます)。 ):

#!/usr/bin/env python
from itertools import chain
import sys

from fontTools.ttLib import TTFont
from fontTools.unicode import Unicode

with TTFont(
    sys.argv[1], 0, allowVID=0, ignoreDecompileErrors=True, fontNumber=-1
) as ttf:
    chars = chain.from_iterable(
        [y + (Unicode[y[0]],) for y in x.cmap.items()] for x in ttf["cmap"].tables
    )
    if len(sys.argv) == 2:  # print all code points
        for c in chars:
            print(c)
    elif len(sys.argv) >= 3:  # search code points / characters
        code_points = {c[0] for c in chars}
        for i in sys.argv[2:]:
            code_point = int(i)   # search code point
            #code_point = ord(i)  # search character
            print(Unicode[code_point])
            print(code_point in code_points)

スクリプトは引数としてフォント パスと、必要に応じて検索するコード ポイント/文字を受け取ります。

$ python checkfont.py /usr/share/fonts/**/DejaVuSans.ttf
(32, 'space', 'SPACE')
(33, 'exclam', 'EXCLAMATION MARK')
(34, 'quotedbl', 'QUOTATION MARK')
…

$ python checkfont.py /usr/share/fonts/**/DejaVuSans.ttf 65 12622  # a ㅎ
LATIN CAPITAL LETTER A
True
HANGUL LETTER HIEUH
False

fc-query my-font.ttf サポートされているグリフのマップと、フォントが fontconfig に従って適切なすべてのロケールを提供します。

ほとんどすべての最近の Linux アプリは fontconfig ベースであるため、生の Unicode リストよりもはるかに便利です

実際の出力形式については、こちらで説明していますhttp://lists.freedesktop.org/archives/fontconfig/2013-September/004915.html


Linux
  1. 実行しているLinuxバージョンは何ですか?調べる方法は次のとおりです

  2. 特定のファイルを作成したプログラムまたはスクリプトを見つけることは可能ですか?

  3. In Echo {a..z}では特殊文字は何を表していますか?

  1. ヌル文字列を使用して個々の文字を分割しますか?

  2. システムがIntelAmtをサポートしているかどうかを確認する方法は?

  3. CVE-2015-2426フォントドライバーの脆弱性とは何ですか?

  1. TCP 経由のメッセージが配信されたかどうかを確認する

  2. ハードドライブを回転させているものを見つける

  3. コンソールのフォントをプレビューできるツールは?