OS/2 table version 3 generated

Exported fonts currently contain a version 3 OS/2 table. The latest version in the OpenType specification is version 5. Some of the scripts we are designing (like Limbu, Cuneiform, Sudanese, etc) need to use at least a version 4 table in or oder to specify these Unicode ranges. But if Glyphs is going to be updated to support a newer table version, I recommend you jump to version 5, which also includes the new optional values for usLowerOpticalPointSize and usUpperOpticalPointSize.

The OS/2 table is currently written by makeOTF. MakeOTF writes a OS/2 version 5 table if the usLowerOpticalPointSize field is set. Version 4 is triggered by fsSelection settings. This should be changed to also be triggered by a unicode range setting higher than bit 92. I can change makeOTF but we probably need to speak with Read Roberts about this. And it seem that the test for version 4 is not working.

I just did another test, adding a Cham glyph (uniAA00), setting the Cham Unicode range bit parameter in the master, and the OS/2 that was generated was still version 3, with no Unicode range bits.

Is there a way to explicitly set bits in the fsSelection, such as bit 8 for WWS?


I added a Has WWS Names parameter. And to be more flexible a makeOTF Argument. That allows setting any argument that is set by accepted by makeotf. e.g. the Has WWS Names is equivalent of makeOTF Argument = -osbOn;8 (argument + ; + value).

1 Like

@GeorgSeifert I would like to build a font family with different optical sizes and therefore make use of OS/2 table version 5, but where/how do I set the ‘usLowerOpticalPointSize’? I cannot find a custom parameter for that.

I’ll need to add it.

1 Like

usLowerOpticalPointSize is deprecated and superseded by STAT table and AFAIK no application ever supported using it.