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 。