Proposed OS/2 table updates

mihill at microsoft.com mihill at microsoft.com
Fri May 16 19:31:14 CEST 2014


 
 Hello,
 
 Microsoft would like to propose an update to the OS/2 table to add support for optical size ranges. Some are already aware of the work we’ve been doing in this area. We’ve already implemented these new fields privately in the new Sitka font that shipped with Windows 8.1 and we’re very happy with the result.
 
  
 
 Here are the fields we’d like to propose:
 
  
 
 usLowerOpticalPointSize 
 
 Format:                two-byte USHORT
 
 Units:                    TWIPs
 
 Description:        This field is used for fonts with multiple optical styles.
 
                                 This value is the lower value of the size range for which this font has been designed. 
 
                                 The units for this field are TWIPs (one-twentieth of a point, or 1440 per inch). The 
 
                                 value is inclusive—meaning that that font was designed to work best at this point 
 
                                 size through, but not including, the point size indicated by usUpperOpticalPointSize. 
 
                                 When used with other optical fonts that set usLowerOpticalPointSize and 
 
                                 usUpperOpticalPointSize, it would be expected that another font has this same value as 
 
                                 this entry in the usUpperOpticalPointSize field, unless this font is designed for the 
 
                                 lowest size range. The smallest font in an optical size set should set this value to 0.
 
                                 When working across multiple optical fonts, there should be no intentional gaps or 
 
                                 overlaps in the ranges. usLowerOpticalPointSize must be less than 
 
                                 usUpperOpticalPointSize. The maximum valid value is 0xFFFE. 
 
                                 For fonts that were not designed for multiple optical styles, this field should be set to 
 
                                 0 (zero) and the corresponding usUpperOpticalPointSize set to 0xFFFF.
 
  
 
 usUpperOpticalPointSize 
 
 Format:                two-byte USHORT
 
 Units:                    TWIPs
 
 Description:        This field is used for fonts with multiple optical styles.
 
                                 This value is the upper value of the size range for which this font has been designed. 
 
                                 The units for this field are TWIPs (one-twentieth of a point, or 1440 per inch). The 
 
                                 value is exclusive—meaning that that font was designed to work best below this point 
 
                                 size down to the usLowerOpticalPointSize threshold. When used with other optical fonts 
 
                                 that set usLowerOpticalPointSize and usUpperOpticalPointSize, it would be expected that 
 
                                 another font has this same value as this entry in the usLowerOpticalPointSize field, unless 
 
                                 this font is designed for the highest size range. The largest font in an optical size set should 
 
                                 set this value to 0xFFFF, which is interpreted as infinity. When working across multiple 
 
                                 optical fonts, there should be no intentional or overlaps left in the ranges. 
 
                                 usUpperOpticalPointSize must be greater than usLowerOpticalPointSize. The minimum valid 
 
                                 value for this field is 2 (two).  The largest possible inclusive point size represented by this 
 
                                 field is 3276.65 points, any higher values would be represented as infinity. 
 
                                 For fonts that were not designed for multiple optical styles, this field should be set to 0xFFFF 
 
                                 and the corresponding usLowerOpticalPointSize set to 0 (zero).
 
  
 
  
 
 The decision to add these additional metrics to the OS/2 table went through several evolutions. Our early plans were to implement the changes through TrueType instructions. We also considered using the OpenType Layout SIZE feature, but decided against these for a myriad of reasons. Ultimately we settled on the new fields in the OS/2 table. We’d like to update the version number on the OS/2 table if these are added.
 
  
 
 The choice of using TWIPs for measurement is embedded somewhat in Windows history. For the OS/2 table we preferred not using a fixed point notation. Although the SIZE feature used tenths of a point, TWIPs had been used in Windows GDI and OS/2 as a scaling option since the mid-80's.
 
  
 
 As always, we welcome feedback and discussion on this.
 
  
 
 Michelle Perham
 
 Microsoft Typography Group
 
  
 
  
 
  
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20140516/b99fd54f/attachment.html>


More information about the mpeg-otspec mailing list