Hinting Variable Fonts
rui_abreu
Posts: 24
Hello Everyone,
Is there a way to autohint variable fonts, either CFF or True Type?From what I can understand ttfautohint is not hinting TT variable fonts, but what about CFF variable fonts is it possible to autohint them?
Many Thanks!
Tagged:
1
Comments
-
You can semi-autohint variable TTFs using VTT. You need to spend some time setting up variable CVT entries for the axis extrema [and intermediate delta sets], but you can autohint the default instance outlines and then just need to ensure that the CVTs are being applied as intended. Some manual tweaking of the autohinter results may be desirable.2
-
FYI Mick Duggan recently gave an ATypI talk about using VTT with varfonts.1
-
No matter how much experience you have hinting, I'd be glad to know what your questions or areas of interest are for hinting variable fonts; I've commissioned Mike Duggan and David Berlow to make some new docs about this topic, with a view to developing a better ttfautohint for VFs.
There was an experimental version to support it, but it didn't work well.2 -
the talk I gave at TMX Mexico on VTT Hinting for Variable fonts, is still up online, if this is useful and or of interest.
talk on VTT VF hinting starts at 45 mins in
https://www.youtube.com/watch?v=dfm4DtMgu-w
2 -
Since this thread was last updated in July 2021, I commissioned Mike Duggan to publish this website that goes into even more detail about how to use VTT to hint Variable Fonts:
https://googlefonts.github.io/how-to-hint-variable-fonts/
Also, Glyphs now does support (manual) hinting of TrueType variable fonts., by adding hints to the default master and cvar.3 -
As part of the more general move towards Rust-based font tooling, I'm currently in the middle of porting ttfautohint to Rust. This won't allow us to autohint variable fonts immediately, but it will make it vastly easier to implement - partly because it will mean that I will have a greater understanding of how the autohinting process works, and so I'll be in a better place to make the adaptations needed; but also because I'm already using higher-level routines in Rust for examining the outlines which are variation-aware - i.e. you can give them a normalised location, and they will produce the outline at that location - unlike the current ttfautohint codebase which predates the gvar table.
Once you have code which says "run the autohinting algorithm at location X", it's no great jump to say "run the autohinting algorithm at all defined locations, and tell me the deltas between the CVTs at each one". Ask me again in May.7
Categories
- All Categories
- 46 Introductions
- 3.9K Typeface Design
- 489 Type Design Critiques
- 572 Type Design Software
- 1.1K Type Design Technique & Theory
- 658 Type Business
- 870 Font Technology
- 29 Punchcutting
- 528 Typography
- 121 Type Education
- 327 Type History
- 80 Type Resources
- 111 Lettering and Calligraphy
- 32 Lettering Critiques
- 79 Lettering Technique & Theory
- 560 Announcements
- 95 Events
- 116 Job Postings
- 169 Type Releases
- 179 Miscellaneous News
- 269 About TypeDrawers
- 53 TypeDrawers Announcements
- 114 Suggestions and Bug Reports


