MainType shows 95 of 96 named instances in a variable font

I am testing the handling of variable fonts in MainType 13 Professional (13.0.0.1365) and found a reproducible discrepancy with the variable font 00WagramVAR.ttf.

The font’s fvar table contains 96 named instances. MainType, however, shows only 95 fonts.

The missing named instance is Mono Italic. [https://abcdarium.de/DATA/Pics/MainType_List_Gap.png\]

The neighboring instances are present:

  • Mono Light Italic
  • Mono Medium Italic

I also exported the font tags from MainType. For this variable font, the XML contains 95 UIDs only. [https://abcdarium.de/DATA/xml/MainType_TagExport_Wagram_Tag_UID.xml\]

By assigning temporary test tags to selected named instances, I could verify the mapping between the fvar instance order and the final hexadecimal UID component:

  • Mono Light Italic: fvar index 79 → UID ending 004F
  • Mono Italic: fvar index 80 → not shown in MainType
  • Mono Medium Italic: fvar index 81 → UID ending 0050

From that point onward, the MainType UID index is shifted by one compared with the fvar instance index.

Mono Italic therefore cannot be selected or tagged in MainType.

Is MainType intentionally filtering this named instance, or is this a bug in the handling of named instances in variable fonts?

If useful, I can provide the font metadata and/or further test results.

Sorry, I’ve included wrong links. Here are the correct ones:

PNG

XML

It could be a MainType bug, but it is also possible the font does not contain the named instance for it or lacks other variable font data. Can you send the font to:
[email protected]

1 Like

Thank you for sending the font file.

The font’s STAT table is malformed. The axis values for opsz 14, wght 400 and ital 0 all point at name ID 448 (“Mono”) instead of their own names, and on the ital axis the elidable flag sits on Italic rather than on upright.

You can see the effect outside MainType: install the font and open C:\Windows\Fonts\00 Wagram.

Windows composes the face names from STAT and produces “00 Wagram Mono Mono Mono”, “00 Wagram Mono Mono Mono Mono” and so on, with two faces ending up with the identical name “00 Wagram Mono Mono Mono”. MainType keeps one entry per generated name, which is why you count 95 there.

FontCreator shows all 96 because it reads the names straight from the fvar table.

Correcting those ValueNameIDs and the elidable flag will fix the names everywhere.

1 Like