HalfKern est essentiellement un outil de rasage automatique de police masqué comme un outil d'audit de création.
Le fonctionnement de l'outil est que pour chaque paire de lettres envisagées, elle bouleversera ses rendus et espace les deux de telle sorte que les images floues chevauchent une certaine quantité. Cette certaine quantité est trouvée par premier étalonnage à l'aide des paires "ll", "nn" et "oo".
L'outil ne stocke actuellement pas les résultats de automatique dans la police.
$ python3 kern_pair.py FontFile.ttf --dict dictionary.txt
$ python3 kern_pair.py FontFile.ttf PairString
$ python3 kern_pair.py Roboto-Regular.ttf --dict /usr/share/dict/words -l
fi 0 -4
yt 4 0
Te -9 -5
To -9 -5
TA -8 -4
DT -5 -1
La première valeur est la paire de lettres à Kern. La deuxième valeur est, dans les unités EM, la valeur de kerning suggérée, et la dernière valeur est le kerning actuellement dans la police. Seules les paires où les deux valeurs de transfert diffèrent d'une quantité de tolérance sont montrées. Cette tolérance peut être définie en utilisant -t ou --tolerance . La tolérance par défaut est de 3,3%.
Le -l ou --letters-only ne fait que l'outil ne considère que le kerning entre deux lettres (c'est-à-dire pas de ponctuation). L'outil ignore également les chiffres, car ils ont généralement une largeur fixe et pas de cashing par conception.
Un fichier kerned.pdf est toujours généré, chaque page présentant une paire, l'outil pense aurait besoin de réglage: kerned.pdf
Pour inspecter les paires signalées, vous pouvez à nouveau utiliser l'outil kern_pair.py :
$ python3 kern_pair.py Roboto-Regular.ttf To
To autokern: -9 (-184 units) existing kern: -5 (-99 units)
Saving kern.png
Dans ce cas, l'outil pense que la paire "à" n'est pas assez basse dans Roboto. De toute évidence, c'est au goût. Mais voici les deux fichiers kern.png et kerned.pdf générés par l'outil:

Dans l'image kern.png , la première ligne est sans casser. La deuxième ligne est la suggestion de l'outil et la troisième ligne est le cassage de police existant. La kerned.pdf , la paire est présentée entre les lettres inférieures et supérieures. De même, les trois lignes montrent le non-kerning, la suggestion de l'outil et le kern existant.
L'outil a deux façons différentes de former une enveloppe autour de chaque glyphe. Cela peut être défini à l'aide --envelope sdf (par défaut) ou --envelope gaussian .
Il a également deux façons différentes de résumer le chevauchement de deux enveloppes de glyphes. Cela peut être défini en utilisant --reduce sum (par défaut) ou --reduce max .
Cela donne quatre combinaisons différentes de modes pour exécuter l'outil. Lequel fonctionne le mieux pour un projet est subjectif et devrait être expérimenté. À mon avis, les défauts génèrent les meilleurs résultats
Pour produire des dictionnaires permanentes à utiliser avec cet outil, vous pouvez utiliser le référentiel AOSP-Test-Texts, ou les dictionnaires de vérification orthographique de LibreOffice, ou les tests Harfbuzz-Wikipedia.
TODO: Développez comment les utiliser.
Pour une liste de mots en anglais simple sur les plates-formes Linux et Mac, vous pouvez utiliser /usr/share/dict/words .
Pour voir l'enveloppe pour un caractère, utilisez:
$ python3 kern_pair.py fontfile.ttf X
Cela générera l'image de l'enveloppe pour X et l'enregistrera sur envelope.png .