IBM / plex

The package of IBM’s typeface, IBM Plex.
SIL Open Font License 1.1
9.6k stars 567 forks source link

Missing sFamilyClass in OS/2 table #330

Closed wyuenho closed 4 years ago

wyuenho commented 4 years ago

I've recently tried to filter all installed fonts on my mac in objective-c, macOS's CoreText has the ability to filter font descriptors by font family classes such as old style serif, slab serif and so on. When I was investigating why all the IBM Plex fonts are grouped as unknown, I've come across the TrueType OS/2 table and the sFamilyClass. It appears AppKit simply relies on the data in this field to return the font family class info. This field is missing in all IBM Plex fonts. It would be nice if this can be filled in.

BoldMonday commented 4 years ago

Interesting. The sFamilyClass is quite an outdated system for defining descriptors. And so far we never heard about any software that implements it.

In general the PANOSE values in the OS/2 table provide a more detailed mechanism for defining font family characteristics, and for IBM Plex we made sure that these are defined as detailed as possible. Is it possible for AppKit to return those values? https://docs.microsoft.com/en-us/typography/opentype/spec/os2#panose

wyuenho commented 4 years ago

Given AppKit simply delegates to CoreText, I just took a look at CoreText's documentation, it appears it only defines constants for the family classes in the OS/2 table https://developer.apple.com/documentation/coretext/ctfontstylisticclass

BoldMonday commented 4 years ago

The tool chain used for generating IBM Plex fonts (Adobe’s open source AFDKO suite) is currently not able to write custom values for this particular field in the OS/2 table. I've submitted an issue and it’s marked as a future enhancement.

We will update the IBM Plex source files and regenerate fonts as soon as this feature is implemented in the AFDKO.

Please bear in mind that this particular classification is still very limited in its scope of stylistic variations and also Latin centric.

BoldMonday commented 3 years ago

Release v6.0.0 fixes this issue for a number of Plex family members. See release notes concerning FamilyClass value in OS/2 table.

tay1orjones commented 2 years ago

Hey there! v6.1.0 was just released that references this issue.

Comment here or join the release discussion to provide feedback or voice concerns. Thanks!

tay1orjones commented 1 year ago

Hey there! v6.3.0 was just released that references this issue.

Comment here or join the release discussion to provide feedback or voice concerns. Thanks!