Font Descriptor Registry




A font descriptor is a 4-byte identifier and a 4-byte value. Descriptors are stored in the fdsc table in the sfnt resource in a QuickDraw GX font. A font may have any number of descriptors.

GX libraries provide a standard way to search for and iterate through font descriptors. Future extensions to GX may use the descriptors for services such as cross-font style matching.

Font developers should assign values to fdsc tags with user functionality in mind.

The defined tags

So far, the following five tags have been defined:

nalf Non-Alphabetic Forms

For non-alphabetic fonts, the nalf descriptor indicates what class of non-alphabetic forms is provided by a font. The defined values are simply those for the "Ornament Sets" feature type:

  1. None
  2. Dingbats
  3. Pi Characters
  4. Fleurons
  5. Decorative Borders
  6. International Symbols
  7. Math Symbols

Any additions or changes to that list should be reflected here.

A nalf which is zero or undefined means the font is alphabetic. A style-matching scheme might look first for a matching nalf font type, and only then attempt to match the other font descriptors.

opsz Optical size

Optical size is the output size which is best for the design of the font. For a family with multiple design sizes, the opsz descriptor could be used for style matching. In the absence of other information, the recommended optical sizes for Roman fonts are 12 point for text and 24 point for display.

slnt Slant

Slant is the font's angle right of vertical, expressed in degrees. For upright Roman fonts, slnt should be 0.

wdth Width

Values for width range from 0.0 to 32767.0, centered on 1.0.

Width is a ratio relative to the center of the family. The regular or default face has, by definition, a width of 1.0. Typical "condensed" values are 0.7-0.85, and typical "extended" values are 1.2-1.3.

The recommended measurement method uses the total length of the Shannon Text in mixed-case setting. That text is:

The Head And In Frontal Attack On An English Writer That The Character Of This Point Is Therefore Another Method For The Letters In A Time When Whom Ever Told The Problem To An Unexpected.


(All characters, including the period and space characters, are included in the measurement.) These words represent the frequency of letters in typical English.

wght Weight

Values for weight range from 0.0 to 32767.0, centered on 1.0.

Weight is a ratio relative to the center of the family. For Roman faces, weight is typically measured by the thickness of vertical strokes. The regular or default face has, by definition, a weight of 1.0. Typical "bold" values are 1.5-2.0.

Apple does not recommend any particular method of measuring weight.

Registering your descriptor

A manufacturer may want to include other pieces of metric information with its fonts. To accommodate these, register additional descriptor tags with Apple via the address

fontregistry@applelink.apple.com


For instance, Adobe, ElseWare, and others use "color" metrics, which assign an absolute "color" value to a typeface, independent of where it lies relative to other members of its family. "Color" in this sense combines elements of weight and width. Apple can accommodate these "color" metrics by defining a specific descriptor tag for each scheme, allowing the font manufacturer to include whatever additional metric information they wish.




Arleigh Movitz (movitz@applelink.apple.com)
Dave Opstad (opstad@apple.com)
Kristian Walsh (walsh.k@euro.apple.com)