Halfkern-это, по сути, инструмент для авто-борьбы с шрифтом, маскированный под инструмент аудита кернинга.
То, как работает инструмент, заключается в том, что для каждой пары букв, которые рассматриваются, он будет размывать их визуализации и пространство, так что размытые изображения перекрывают определенное количество. Это определенное количество найдено путем первой калибровки с использованием паров «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
Первое значение - пара буквы к Керну. Второе значение, в единицах, является предполагаемым значением кернинга, а последнее значение - кернинг в настоящее время в шрифте. Показываются только пары, где два значения кернина отличаются в зависимости от количества толерантности. Эта толерантность может быть установлен с использованием -t или --tolerance . Допуск по умолчанию составляет 3,3%.
Только -l или --letters-only инструмент рассматривает только кернинг между двумя буквами (т.е. без пунктуации). Инструмент также игнорирует цифры, так как они обычно имеют фиксированную ширину и не кернинг по дизайну.
Файл 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
В этом случае инструмент считает, что пара «к» недостаточно ядра в Робото. Очевидно, что это на вкус. Но вот два файла kern.png и kerned.pdf , сгенерированные инструментом:

На изображении kern.png первая строка без кернина. Вторая строка - это предложение инструмента, а третья строка - существующий шрифт. kerned.pdf , пара демонстрируется между нижним и верхним, буквами. Три ряда, аналогичным образом, показывают отсутствие кернинг, предложение инструмента и существующий керн.
Инструмент имеет два разных способа сформировать конверт вокруг каждого глифа. Это может быть установлено с использованием --envelope sdf (по умолчанию) или --envelope gaussian .
У этого также есть два разных способа суммирования перекрытия двух конвертов глифа. Это может быть установлено с использованием --reduce sum (по умолчанию) или --reduce max .
Это дает четыре различных комбинация режимов для запуска инструмента. Который лучше всего подходит для проекта, и должен экспериментировать. По умолчанию, на мой взгляд, дают наилучшие результаты
Для создания словарей для языка, которые будут использоваться с этим инструментом, вы можете использовать репозиторий AOSP-test-test-texts, или словари проверки орфографии LibreOffice, или тестирование Harfbuzz-Wikipedia.
TODO: Разверните, как их использовать.
Для простых английских слов на платформах Linux и Mac вы можете использовать /usr/share/dict/words .
Чтобы увидеть конверт для одного персонажа, используйте:
$ python3 kern_pair.py fontfile.ttf X
Это генерирует изображение конверта для X и сохранит его для envelope.png .