Variable font doesn't interpolate kerning


I have a variable font with three axis and when exporting it seems to pick the values of the first Master and ignores the rest.
When I try with normal .otf instances kerning works right.

I don’t know if it’s my fault or just an issue of the Beta exporting.


Yes. That is one reason there is a BETA badge in the export options. makeOTF doesn’t support variation of kerning, yet and my own solution is not ready, too.

Thanks for the quick answer, Georg. I was going crazy!

That means that at this point, the variable font picks the kerning from the first master and applies to all or just one “instance” has kerning?

It applies to all.

1 Like

Hi Georg, I wondered if you had any updates on kerning interpolation for variable fonts.

Thanks in advance!

I’m working it.


Also wanted to let you know that the ‘space’ character doesn’t interpolate. This becomes obvious in a font width multiple widths. It seems to only use the narrowest space character for all states in the variable font.

Is there any update on that? I’m having the same problem.

I just tired this and the space is correctly variated in the latest version.

Does anyone have a good workaround for getting interpolated kerning into a variable font?

I can get it to work by pulling GSUB and GPOS tables from a UFO + fontmake setup and patching it in .ttx. I add the tables, run the System Service “Use Production Names” and make some manual corrections on glyphs like the CR (which show up as “nonmarkingreturn”) etc. for it to convert back to a .ttf properly

I don’t find this very efficient because of all the manual steps involved, so I’m curious if there is a better way.

Anything you can do via hand patching TTX XML files, you can do in an automated fashion with a Python script using the fonttools module; the fonttools documentation is not as friendly as it could be, but there are some demo scripts in the /Snippets directory of the source repo that can be instructive.

Variable Fonts is still pretty cutting edge stuff, so even VFs built with fontmake may need post-processing with a fonttools script (which is what @m4rc1e has been doing recently)

In what context do you try to do this. Glyphs should add variation to the kerning.

I just made a test font and that worked well in FontView and Chrome and but not in Safari (both tested with axis praxis).

I tried it in FontView, Chrome, and Safari and am getting the same results across the board. The font on top has an added avar table and the one on the bottom has the avar table with the patched GPOS, GSUB, HVAR, hmtx and MVAR

I just tested the original unmodified version and the kerning is interpolating as you say. The major things that changed are the addition of an avar table and the use of an extended kerning lookup table, would either of these mess up the kerning interpolation?

can you send me the .glyphs and the .ttf file?

Sent to the support email.

I just did some testing and the avar table is not the issue, perhaps it has something to do with the way Glyphs App handles the extended kerning lookup?

Thanks for the file. I had a look, Your font produces an extension lookup for the kern feature. And that is not supported, yet.

I fixed it.

1 Like

Is it fixed in the latest cutting edge version?

Just tested with Version 2.5.2 (1156) and it is still generating the same result with collisions

That will be fixed with the next update.

Awesome, thanks!