Halfkern本质上是一种伪装成Kerning审计工具的字体自动加以工具。
该工具的工作方式是,对于所考虑的每对字母,它都会模糊它们的效果图和两个两个字母,从而使模糊的图像重叠一定量。首先使用“ LL”,“ NN”和“ OO”对通过首先校准来找到这一量。
该工具当前未存储自动化结果。
$ 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
第一个价值是给克恩的两封信。第二个值是在EM单元中,建议的Kerning值,最后值是当前字体中的Kerning。仅显示两个kerning值因公差量而异的对。可以使用-t或--tolerance设置此公差。默认公差为3.3%。
-l或--letters-only使工具仅考虑两个字母之间的kering(即,没有标点符号)。该工具还忽略了数字,因为它们通常具有固定宽度,并且没有设计。
始终生成一个文件kerned.pdf ,每页展示一对工具认为需要调整:kerned.pdf
要检查报告的对,您可以再次使用kern_pair.py工具:
$ python3 kern_pair.py Roboto-Regular.ttf To
To autokern: -9 (-184 units) existing kern: -5 (-99 units)
Saving kern.png
在这种情况下,该工具认为这对“到”在Roboto中还不够。显然,这要味道。但这是该工具生成的两个文件kern.png和kerned.pdf :

在kern.png图像中,第一行没有kerning。第二行是工具的建议,第三行是现有的字体kerning。 kerned.pdf ,两人在下部和上字母之间展示。同样,这三行显示了不策略,工具的建议和现有的Kern。
该工具有两种不同的方法来形成每个字形周围的信封。可以使用--envelope sdf (默认)或--envelope gaussian 。
它还有两种不同的方法来总结两个字形信封的重叠。可以使用--reduce sum (默认)或--reduce max 。
这提供了四种不同模式的组合来运行该工具。哪个最适合项目是主观的,应该进行实验。在我看来,默认值会产生最佳结果
为了生成与此工具一起使用的每语言词典,您可以使用AOSP检验文本存储库,Libreoffice Spellacheck词典或Harfbuzz-Wikipedia检测。
Todo:扩展如何使用这些。
对于Linux和Mac平台上的简单英语WordList,您可以使用/usr/share/dict/words 。
要查看一个字符的信封,请使用:
$ python3 kern_pair.py fontfile.ttf X
这将生成X的信封图像并将其保存到envelope.png 。