Using two intermediate layers causes problems


I’m having problems using two intermediate layers to correct interpolated forms for a particular glyph.

I have a typeface with 3 axes – weight, width, italic, and for each axis there are 3 masters – one at each extreme, and one in the middle. I don’t like the look of the regular and bold semi-condensed interpolations, #1 and #4.

#1 and #4 are simple interpolations at this semi-condensed spot on the width axis. I want #2 and #5 instead, so I presume I would need to add each of these to a new intermediate layer.
When this character has only one intermediate layer containing #2, it makes sense that #2 and #4 are rendered. When this character has only one intermediate layer containing #5, it makes sense that #1 and #5 are rendered.

My problem: When this character has both intermediate layers, #2 and #5, what gets rendered is #2 and #6. Where does #6 come from, considering I specifically defined #5?

Many thanks for your help.


Can you post a screenshot of your path construction in the masters as well as the interpolations?

What are the axis coordinates of your masters and of your intermediate layers?

Hi Sebastian,
The masters here are (weight/width/italic):
71/200/20, 71/600/20, 180/200/20, 180/600/20.

The intermediates I defined are {71, 400, 20} and {180, 400, 20}.
The straight interpolations look like this:

Interesting how the first points of each master here are off-curve points…

That should be 128, shouldn’t it?

Argh, good catch. Post updated, thanks.

To go a little off topic (no idea on it after your fix), may I ask out of curiosity what do you do in upright about the points which are on the vertical extremes in italic? I believe the optimal compromise to make condensed+normal to go variable italic is to not add any extremes and just let it slant. There’s a slight chance you won’t need the extra layers in that case.

The vertical extreme points in the upright remain, but aren’t extremes. You’re right about leaving out the extremes; the forms look ok. I’m thinking more here about proper PS hinting for static and variable fonts.

Can you post the coordinates of all masters (including the uprights).

And I don’t really understand the problem (your abbreviations are a bit confusing).

Hi Georg,
I re-worded my posts above.
Would it be easier to send you a Glyphs file?

Pulling off those extra points without kinks seems like quite a lot of work, but then you don’t get PS hinting in variable fonts anyway, and for OTFs there’s CP filter that adds extremes on export. And after all, hinting is only useful if the font is intended for small sizes, which at that narrow width is probably not the case :slight_smile:

My goal is to manually hint the fonts, so adding extremes on export won’t work.
The regular widths can benefit from good instructions. And when it comes to viewing PDFs, all styles can benefit. :slightly_smiling_face:

You are planning to manually hint a font? An italic font?


Because in the vast majority of cases going through the hints manually gives me superior results to an app’s autohint. Italics, despite being used less often, deserve the same attention to rendering as uprights.

Where are you experiencing issues with autohint? How much have you dug into tuning the ttfAutohint instructions?

I’m still not getting it. Can you send me that file (send it by email to support at this domain)?

Let’s say for now I want to make static otfs. Glyph’s autohint will occasionally over- or under-hint, so I’ll need to make corrections.

Will do, thanks.

Can you give some examples where you don’t like the autohinting?

Here are a few. L is manually hinted, R is autohinted.

Defined stems:

What I correct are the ghost hints on the serifs (all characters), the bad stem guesses (E and Y), and the double-hints (T and 5). Experience tells me these would otherwise render too dark.

If I add extremes on export and autohint, my corrections need to be done in the instances. Not only is that likely a lot of work, but re-exporting fonts puts that correction work in the trash.

I’d rather have in the Glyphs file points where I define them, and optimized hints based on those points.

I’ll look into this. Thanks for the examples (could you send those glyphs for testing?).

I would recommend to use less stems. The idea is to unify the width of stems ad if you add to manny, you will end up with different width.

And I wouldn’t hint the top and bottom of the vertical serifs.

But the most important, only do anything without testing in an environment that renders postscript hints.