Those who know me will know I have become somewhat obsessed with the problem of automated letterfitting: not just spacing (determining sidebearings) but also full fitting (adjustments for uneven pairs, i.e. kerning). My latest attempt at this can be found here
. It consists of a Python library, a Jupyter notebook, and a Glyphs script.This document
explains the concept and shows some sample outputs. Here are some more examples of automatically fitted strings (red) compared with the designer's spacing (blue).
For the sake of full disclosure, here are some heroic failures.
Here's a summary of what I've learnt through the process:
- Using an "'influence" approach to spacing seems to work pretty well in general.
- Having the designer declare key pairs as correctly spaced and inferring the parameters from there seems to be the best kind of user interface to this job.
- The hardest part of automated letterfitting is managing and correcting half-open counters.
I hope this is interesting to others!