TrueType Open Terminology

The TrueType Open model is organized around glyphs, scripts, language systems, and features.

Characters Versus Glyphs

Users don't view or print characters: a user views or prints glyphs. A glyph is a representation of a character. The character "capital letter A" is represented by the glyph "A" in Times New Roman Bold and "A" in Arial Bold. A TrueType font is a collection of glyphs. To retrieve glyphs, the client uses information in the cmap table of the font, which maps the client's character codes to glyph indices in the table.

Glyphs can also represent combinations of characters and alternative forms of characters: glyphs and characters do not strictly correspond one-to-one. For example, a user might type two characters, which might be better represented with a single ligature glyph. Conversely, the same character might take different forms at the beginning, middle, or end of a word, so a font would need several different glyphs to represent a single character. TrueType Open fonts contain a table that provides a client with information about possible glyph substitutions.

Figure 1f. Multiple glyphs for the ampersand character

Scripts

A script is composed of a group of related characters, which may be used by one or more languages. Latin, Arabic, and Thai are examples of scripts. A font may use a single script, or it may use many scripts. Within a TrueType Open font, scripts are identified by unique 4-byte tags.

Figure 1g. Glyphs in the Latin, Kanji, and Arabic scripts.

Language Systems

Scripts, in turn, may be divided into language systems. For example, the Latin script is used to write English, French, or German, but each language has its own special requirements for text processing. A font developer can choose to provide information that is tailored to the script, to the language system, or to both.

Language systems, unlike scripts, are not necessarily evident when a text-processing client examines the characters being used. To avoid ambiguity, the user or the operating system needs to identify the language system. Otherwise, the client will use the default language-system information provided with each script.

Figure 1h. Differences in the English, French, and German language systems.

Features

Features define the basic functionality of the font. A font that contains tables to handle diacritical marks will have a "mark" feature. A font that supports substitution of vertical glyphs will have a "vert" feature.

The TrueType Open feature model provides great flexibility to font developers because features do not have to be predefined by Microsoft Corporation. Instead, font developers can work with application developers to determine useful features for fonts, add such features to TrueType Open fonts, and enable client applications to support such features. The TrueType Open Tag Registry at the end of this document contains a current list of Microsoft registered features.

Figure 1i. The relationship of scripts, language systems, features, and lookups for substitution and positioning tables