Encontré una biblioteca de python, fonttools ( pypi ) que se puede usar para hacerlo con un poco de script de python.
Aquí hay un script simple que enumera todas las fuentes que tienen un glifo especificado:
#!/usr/bin/env python3
from fontTools.ttLib import TTFont
import sys
char = int(sys.argv[1], base=0)
print("Looking for U+%X (%c)" % (char, chr(char)))
for arg in sys.argv[2:]:
try:
font = TTFont(arg)
for cmap in font['cmap'].tables:
if cmap.isUnicode():
if char in cmap.cmap:
print("Found in", arg)
break
except Exception as e:
print("Failed to read", arg)
print(e)
El primer argumento es codepoint (decimal o hexa con 0x) y el resto son archivos de fuente para buscar.
No me molesté en intentar que funcionara para .ttc
archivos (requiere algún parámetro adicional en alguna parte).
Nota: Primero probé la herramienta otfinfo, pero solo obtuve caracteres planos multilingües básicos (<= U + FFFF). El script de Python encuentra que los caracteres de plano extendido están bien
-u
opción no aparece--help
, pero parece existir. Sin embargo (al menos en la compilación Debian 2.105) parece solo listar el plano básico (hasta U + FFFF). La-g
opción conoce los planos extendidos, pero eso no funciona para todas las fuentes.