Hhea advancewidthmax vs hmtx

I’ve just run into an issue with the hhea advancewidthmax table entry. Supposedly, this should be the maximum advance width from the hmtx table. What actually ends up in a font is the maximum advance width of glyphs containing paths. If there are wider glyphs containing no paths (space characters) they don’t seem to count.

The font in question has emspace and emquad characters with 1000 unit advance widths. They are listed so in the hmtx table when the font is generated. However, the advancewidthmax entry in the hhea table contains the value 960, which in the case of this font corresponds to a character containing paths.

One of my vendors (Adobe) has informed me that this is an error and needs to be fixed. FWIW, earlier versions of the same font had the same issue but were not flagged by them. No other vendors (including MyFonts) has flagged it as an error.

This font was generated with Glyphs 2.6.7 (1356) which uses the AFDKO to generate fonts, so I assume it’s Adobe’s code that is producing this result, not Glyphs. But maybe not.

Edit: FWIW, I get the same result if I generate from Glyphs 3.0.2 (3058).

Is this an actual problem? Any thoughts?

@MarkSimonson did You solve this issue? Adobe wrote to me to fix this error and I don’t know how to do it.

I haven’t solved it yet. I’m not convinced it’s a problem. I explained it to them and they said they’d get back to me, but haven’t yet.

If they insist that I “fix” it, I figure I will do it with ttx or OTM. I don’t think it’s possible to get Glyphs to do it.

I think that it is fixed in the latest cutting edge version.

2.x or 3.x?

In 3.0.3

1 Like

Any chance to fix it in Glyphs2?

In Glyphs 2, those entries are generated by makeOTF. I will not update it.

I just added 1000pt emdash.ss03 to the font and it did the job. Adobe accepted it.

Clever! I wouldn’t have used the emdash, since I don’t usually make them that wide, especially for a condensed style, which is the case in my case. I might make a glyph just for the purpose, for instance emdash.alt or something.