New to Typophile? Accounts are free, and easy to set up.
In the Open Type spec one can read :
"If bit 8 is set in OS/2 table v. 4, then ‘name’ strings for family and subfamily are provided that are consistent with a weight/width/slope family model without requiring the use of ‘name’ IDs 21 or 22."
The 'name' table for the "Gabriola" doesn't have the name ID's 21 and 22. The font "Arial" also doesn't have these name ID's, but it doesn't have the bit WWS set, in the OS/2 table. What's the difference between "Gabriola" and "Arial", regarding this bit ?
As a matter of fact, I just found out that, among the ~190 fonts used by MS Word, the font "Gabriola" is the only one that has this bit (WWS) set.
7 Jul 2012 — 11:16am
Arial is an old font, whose OS/2 and name table settings predate the bit 8 and IDs 21 and 22 settings. Since it is an MS core font, there may be compatibility concerns in updating such settings in the font, and MS also have the option of providing special handling for it in their apps if necessary to make it behave correctly in DWrite environments. Remember, the WWS settings in the OS/2 and name tables are designed to improve processing times by giving the DWrite (previously WPF) system explicit information that it otherwise has to produce via heuristics.
When I was building Gabriola, which is a single style display type, I had to ask MS where in the DWrite font environment such a font should be classified. After some thought, they determined that a single-font 'family' fitted within the weight/width/slope family model, hence the bit 8 setting in Gabriola.
The bit 8 setting indicates to DWrite that a font is a member of a family that conforms to the weight/width/slope model, i.e. that each member of the family is differentiated from others only with regard to these three properties.
7 Jul 2012 — 11:28am
John,
I have realized in the 'name' table that you were the font designer for Gabriola. Now reading what you wrote above I can see what WWS stands for (weight/width/slope). Could you elaborate a little bit more on this : "Remember, the WWS settings in the OS/2 and name tables are designed to improve processing times by giving the WWS system explicit information that it otherwise has to produce via heuristics."
I have just observed you edited your post. Let me read the link you provided, and I'll come back if necessary.
Thanks.
8 Jul 2012 — 4:55am
John,
Thanks again for the link. I had never heard about DirectWire, but it seems to be something to delve into.
8 Jul 2012 — 6:12am
John,
Is there any special reason for the field usFirstCharIndex be null, for the Gabriola, Cambria and Cambria Math fonts, in the OS/2 table, instead of 0x0020 ?
8 Jul 2012 — 11:29am
0x0020 is the word space character. In many fonts, esp CFF OpenType fonts following Adobe's practice, this will be the lowest character code in the font, and hence will be the entry for the OS/2 usFirstCharIndex field. In fonts that follow Microsoft's recommendations, the second glyph in the font will be /NULL/ which will be encoded at 0x0000, which is then the lowest character code in the font. I make all my fonts following the MS recommendations for the first four glyphs (which in turn is based on Apple's original TrueType spec), even CSS fonts, since that means I can maintain a single source independent of output format; obviously I make an exception to this practice when I am making fonts for Adobe.
8 Jul 2012 — 1:56pm
Perfect !
Tks