특정 글꼴에 대해 지원되는 모든 글리프를 나열하는 방법

특정 글꼴에 대해 지원되는 모든 글리프를 나열하는 방법

fontforge예를 들어 주어진 글꼴에서 지원되는 모든 기호 목록을 빠르게 가져오는 등을 처리할 수 있는 CLI 명령이나 다른 것이 있습니까 ?

그것은 다음과 같습니다:

$the_command_I_am_ looking_for주어진font.ttf
abcdefghijklmnopqrstuvwxyzabcdefghgghijklmnopqrstuvwxyzaβΔeεζ ters з  πρστυφχε수는 ¢ ~ ~ × × × × × × ~ × ~ × ~ × ~ × ~ ~ × ~ ~ × ~ ~ ~ × ~ ~ ~ ~ ~ ~ ~ × ~ ~ ~ ~ ~ ~ ~ × ~ ₦ ₦ ₩ ₨ ₨ ₫ ₫ € ₭ ₮ ₲ ₲ ₺ ₺ ₼ ₽ ₴ ₴ $ ฿ ₵ ₠ 릴 а/~`| _-,; :! '() [) [) [) [) [) [) ]{}@$\&#%+¶‡†‽
$

어떤 방법이 있나요?

답변1

Fontconfig를 통해 Linux에서 사용할 수 있는 글꼴(거의 모두)입니다.

일반적으로 글꼴과 유니코드에서 발생하는 두 가지 관련 문제가 있습니다.

  1. 글리프(실제로는 유니코드 코드 포인트)를 렌더링(포함)할 수 있는 글꼴을 나열합니다.

    fc-list :charset=1f63f | less      # all installed fonts that have 1f63f 

답변2

트루타입 글꼴의 경우 다음을 사용할 수 있습니다.ttfdump유틸리티는 다음에서 사용할 수 있습니다.TeXlive.

ttfdump -t cmap -i /usr/share/fonts/truetype/freefont/FreeSerif.ttf |
perl -CS -ne 'print chr(hex($1)) if /Char (0x[[:xdigit:]]+)/ and hex($1) != 0xffff; END {print "\n"}'

실험적으로 이것은 U+FFFF 아래의 코드 포인트만 나열하는 것으로 보입니다. 이것이 버그인지 ttfdump, 아니면 다른 비행기에 도달하는 데 필요한 추가 작업 때문인지는 모르겠습니다 .

지원되는 모든 글꼴의 경우무료 타이핑, Freetype 라이브러리는 이 정보를 제공하지만 이를 쿼리할 수 있는 기성 명령줄 유틸리티는 없는 것 같습니다. 다음은 다음을 사용하는 한 줄입니다.자유형-py사용할 수 있는 Python 바인딩입니다 pip3 install --user freetype-py.

python3 -c 'import freetype, sys; stdout = open(1, mode="w", encoding="utf8"); face = freetype.Face(sys.argv[1]); stdout.write("".join(sorted([chr(c) for c, g in face.get_chars() if c]) + ["\n"]))' /usr/share/fonts/truetype/freefont/FreeSerif.ttf

관련 정보