PitchAndFamily
The Open32 NLS Extension accepts and generates the Windows Font Family ids listed below, by mapping with the IBM Font Family Class values, and some other information stored in the font metrics.
┌──────────────────┬──────────────────────────────────────────────────┐ │Windows Font │Meaning │ │Family │ │ ├──────────────────┼──────────────────────────────────────────────────┤ │FF_ROMAN │Fonts with variable stroke width and with serifs. │ │ │e.g.,Times New Roman │ ├──────────────────┼──────────────────────────────────────────────────┤ │FF_SWISS │Fonts with variable stroke width and without │ │ │serifs. e.g.,Helvetica │ ├──────────────────┼──────────────────────────────────────────────────┤ │FF_MODERN │Fonts with constant stroke width, with or without │ │ │serifs. e.g.,Courier,Elite │ ├──────────────────┼──────────────────────────────────────────────────┤ │FF_SCRIPT │Fonts designed to look like handwriting. │ ├──────────────────┼──────────────────────────────────────────────────┤ │FF_DECORATIVE │Novelty fonts. │ └──────────────────┴──────────────────────────────────────────────────┘
Mapping Windows Font Family with OS/2 Fonts
In the font metrics, each OS/2 font has IBM Font Family Class value which is assigned by typeface designer to represents the visual characteristics of the font. The OS/2 engine raster fonts have the correct values as expected. The TrueType fonts a lso have the expected values, because the OS/2 TrueType font driver computes the expected IBM Font Family Class value from the PANOSE number defined in the 'OS/2' table in the TrueType header of the font (note that the sFamilyClass member in the 'OS/2' table cannot be expected to contain the valid value - result of survay).
The following table shows the mapping between Windows Font Families and IBM Font Family Classes (extracted from "Font Object Content Architecture (FOCA) Specification" Version 5), used in the Open32 NLS Extension.
┌─────────────────────────┬────────────────────────────────┬───────────────┐ │Family Class │SubClass │Windows Font │ │ │ │Family │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │OldStyle Serifs (0x0001) │IBM Rounded Legibility (0x0101) │FF_ROMAN │ │ │Garalde (0x0201) Venetian │(Times New │ │ │(0x0301) Modified Venetian │Roman) │ │ │(0x0401) Dutch Modern (0x0501) │FF_SCRIPT │ │ │Dutch Traditional (0x0601) │ │ │ │Contemporary (0x0701) │ │ │ │Calligraphic (0x0801) │ │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │Transiotional Serifs │Direct Line (0x0102) Script │FF_ROMAN │ │(0x0002) │(0x0202) │FF_SCRIPT │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │Modern Serifs (0x0003) │Italian (0x0103) Script (0x0203)│FF_RONAN │ │ │Mincho (0x0303) │FF_SCRIPT │ │ │ │(Mincho) │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │Clarendon Serifs (0x0004)│Clarendon (0x0104) Modern │FF_MODERN │ │ │(0x0204) Traditional (0x0304) │(Elite) │ │ │NewsPaper (0x0404) Stub Serif │ │ │ │(0x0504) Monotone (0x0604) │ │ │ │Typewriter (0x0704) │ │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │Slab Serifs (0x0005) │Monotone (0x0105) Humanist │FF_MODERN │ │ │(0x0205) Geometric (0x0305) │(Courier) │ │ │Swiss (0x0405) Typewriter │ │ │ │(0x0505) │ │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │Freeform Serifs (0x0007) │Modern (0x0107) │(UNKNWON - See │ │ │ │note) │ │ │ │FF_MODERN │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │Sans Serifs (0x0008) │IBM Neo-grotesque Gothic │FF_SWISS (See │ │ │(0x0108) Humanist (0x0208) │note) │ │ │Low-x Round Geometric (0x0308) │(Gothic) │ │ │High-x Round Geometric (0x0408) │(Helvetical) │ │ │Neo-grotesque Gothic (0x0508) │ │ │ │Modified Neo-grotesque Gothic │ │ │ │(0x0608) Typewriter Gothic │ │ │ │(0x0908) Matrix (0x0A08) │ │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │Ornamentals (0x0009) │Engraver (0x0109) Black Letter │FF_DECORATIVE │ │ │(0x0209) Decorative (0x0309) │ │ │ │Three Dimensional (0x0409) │ │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │Scripts (0x000A) │Uncial (0x010A) Brush Joined │FF_SCRIPT │ │ │(0x020A) Formal Joined (0x030A)│ │ │ │Monotone Joined (0x040A) │ │ │ │Calligraphic (0x050A) Brush │ │ │ │Unjoined (0x060A) Formal │ │ │ │Unjoined (0x070A) Monotone │ │ │ │Unjoined (0x080A) │ │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │Symbolic (0x000C) │Mixed Serif (0x030C) OldStyle │(UNKNOWN - See │ │ │Serif (0x060C) Neo-grotesque │note) FF_ROMAN│ │ │Sans Serif (0x070C) │FF_ROMAN │ │ │ │FF_SWISS │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │Chinese Origin (0x000D) │Mincho (0x010D) Gothic (0x020D)│FF_MODERN │ │ │Song (0x040D) Ming (0x050D) │FF_ROMAN │ │ │ │FF_ROMAN │ ├─────────────────────────┼────────────────────────────────┼───────────────┤ │Other Asian (0x000E) │Moderate Contrast (0x010E) │FF_MODERN │ │ │Light Contrast (0x020E) │ │ │ │Typewriter (0x070E) │ │ └─────────────────────────┴────────────────────────────────┴───────────────┘
Note: In Windows platforms, FF_SWISS family is used only for SBCS typefaces. For DBCS typefaces FF_MODERN is used instead.
Note: If the style of a font is uncertain, no Windows Font Family id is assigned.
The OS/2 ATM fonts do not have valid IBM Font Family Class values in the font metrics, because no corresponding style values are defined in the Adobe font metrics files. For OS/2 ATM core fonts, expected Family Classes will be supplied with updating the font metrics tables in these fonts.
┌──────────────────────────────┬──────────────────────────────┐ │If sFamilyClass = 0, and │Windows Font Family │ │szFamilyname contains: │ │ ├──────────────────────────────┼──────────────────────────────┤ │"Swiss" │FF_SWISS │ ├──────────────────────────────┼──────────────────────────────┤ │"Helvetica" │FF_SWISS │ ├──────────────────────────────┼──────────────────────────────┤ │"Roman" │FF_ROMAN │ ├──────────────────────────────┼──────────────────────────────┤ │"Symbol Set" │FF_ROMAN │ ├──────────────────────────────┼──────────────────────────────┤ │"Courier" │FF_MODERN │ ├──────────────────────────────┼──────────────────────────────┤ │"MINCHO" │FF_ROMAN │ ├──────────────────────────────┼──────────────────────────────┤ │"GOTHIC" │FF_MODERN │ └──────────────────────────────┴──────────────────────────────┘