Export a variable font with a portion of an axis only

Hi there
I have a 3 axis variable font (Weight, Width, Slant), and I would like to generate a bunch of fonts only covering a portion of the Width axis. If I get it well, it seems that the axis location and axis mapping affect the values of a given axis, right?
In any case, I can duplicate the files, instance masters and delete the unnecessary masters, but it’s quite a mess when you have several brace layers.


Better post-process the fvar table, e.g., in ttx or OTMaster, and change the MaxValue and MinValue for wdth to what you want.

1 Like

Hi, thanks!
That’s what I did on fvar table, changing Min/MaxValue on OTMaster but AFAIK it only remaps the axis with new values, and do not “stop” interpolating on a given point (what I would like it to do)
Am I wrong?

Ah, ok, fixed it. It works with this trick, but it keeps of-axis brace layers, which produce wrong interpolations. Less job anyway. Thanks!

Exporting only parts of an axis is not supported.

Okay thanks
Just to confirm that DTL OTMaster only remaps axis coordinates when changing MinValues and MaxValues (like an Axis location parameter) and do not “cut” the axis on a given point. The only way I found is then to duplicate the file, Instance masters, delete off-axis brace layers and instances, and re-generate. Not very handy but I don’t see any other way.

No, it should stop the axis at MinValue and MaxValue. How are you testing your font after the change?

Oh yes?
I’m testing on axis-praxis, Font gauntlet, and your HTML variable font tester
I only have to edit Min and Max Values on far table, right?

fvar table

Should work like that, yes.

I’m not sure if changing the fvar table will make any difference. It should only change the numbers at the slider. I’ll need to look into this.

But that’s the point, that the slider doesn’t go any further.

In fact, changing the values doesn’t change anything — except changing the values! Just like “axis location”, it changes the numbers at the slider, but doesn’t make the interpolation stop on a given axis coordinates (for instance, going from 0 to 400 in a 0—1000 var font). The idea is to split the variable font into different parts, 0—400, 400—700, 700—1000, you see?

Ah yes, you are right of course. Sorry, I got confused.

Yes, currently there’s nothing short of duplicating the .glyphs file and rearranging masters and axis settings accordingly.


If you have a masters at 400, you could add a Disable Masters parameter to Font Info > Font.

Oh yes, it could be useful, but the main problem is the number of brace layers (at many different values) that keep disturbing the interpolation, even when the values are off-axis.
I have to discard them before exporting

1 Like

Is this still not possible? Did anyone found another workaround than duplicating the file, and fiddling around with generating new Masters and removing other Masters?
Any hidden custom parameters that are still getting tested maybe?

Couldn’t this be implemented easily with the help of Virtual Masters + Axis Mappings?

Master Setup
Master[300]———Virtual Master[700]———Master[900]

Regular Export

Clipped Export
– Upper weights removed from the Axis Mappings
(or alternatively a separate Axis Min/Max parameter)

PS: I tried several searches, but only found this post after trying to start a new topic. Is it possible to rename a title and include ‘clipping axis’ somehow, or as a tag?

Someone was just pointing me to the following thread. I just couldn’t think of calling it subsetting!

and in there the app slice is recommended to make subsets of the variable axes: https://github.com/source-foundry/Slice

Still, it would be great to have some of it directly in Glyphs. Though with this tool it definitely pulls it way down on the priority list for Glyphs.

It has its limits too.

In Glyphs, you could script the calculation of masters and the stripping down.

1 Like

Slicing requires a lot calculations (adding new masters, filtering feature variations …).
If the Slice tool works good enough, I will not add the functionality to Glyphs.
You can add a post process callback and to the slicing automatically.