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!
Comments
I agree completely with Nick and often find myself trying to improve on many of my older font releases. It's human nature to strive for that elusive perfection. But, we cannot help ourselves. It's the way most creative people are. And we should be commended for that.
Now, I'm off to finish the spacing and kerning on my upcoming new font family release. It's my second pass on my original established spacing and kerning and I'm still tweaking. Maybe third time will be the charm.
And, I'm sure that when I look back years from now, I'll want to make additional changes.
Back to work!
It seems to me that perhaps your algorithm is treating the beginning of the line as equivalent to being next to a solid square with zero sidebearing and adjusting the position accordingly? But whatever the cause, the result is not ideal, IMO.
@Thomas Phinney: What you’re seeing is just the word being centred. I’ll fiddle it to be left-aligned in the comparison; that might be clearer.
Also, the Tinos Italic version actually seems to work a lot better with the serif smoothing turned off:
When kerning through the alphabet in the Metrics window, I often go back and readjust earlier sidebearings, or glyph details (e.g. the relative width of the horizontals in E, F, L and T), as the overall picture falls into place. Feedback loops, not linear progression.
If interested, contact me directly at akaczun@verizon.net
I have a few ideas that might help you with your project.
I've been thinking about this sort of thing for some time.
Maybe I can be of some help in a slightly different direction.
Best—Alex K.