The OS/2 table for the "Gabriola" font, has the bit WWS turned on, in its fsSelection field. This bit WWS, what does it mean ?

Primary tabs

7 posts / 0 new
Last post
João Afonso Belloc's picture
Joined: 12 Apr 2011 - 6:06am
The OS/2 table for the "Gabriola" font, has the bit WWS turned on, in its fsSelection field. This bit WWS, what does it mean ?
0

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.

John Hudson's picture
Offline
Joined: 21 Dec 2002 - 11:00am
0

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.

João Afonso Belloc's picture
Joined: 12 Apr 2011 - 6:06am
0

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.

João Afonso Belloc's picture
Joined: 12 Apr 2011 - 6:06am
0

John,

Thanks again for the link. I had never heard about DirectWire, but it seems to be something to delve into.

João Afonso Belloc's picture
Joined: 12 Apr 2011 - 6:06am
0

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 ?

John Hudson's picture
Offline
Joined: 21 Dec 2002 - 11:00am
0

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.

João Afonso Belloc's picture
Joined: 12 Apr 2011 - 6:06am
0

Perfect !

Tks