Typographic features made possible using digital typographic systems have solved many of the demands placed on computer systems to replicate traditional typography and have expanded the possibilities with many new features. Three systems are in common use: OpenType, devised by Microsoft and Adobe, Apple's Apple Advanced Typography (AAT), and SIL's Graphite. The lists below provide information about OpenType and AAT features. Graphite does not have a fixed set of features; instead it provides a way for fonts to define their own features.
The OpenType format defines a number of typographic features that a particular font may support. Some software, such as Adobe InDesign, LibreOffice/OpenOffice, or recent versions of Lua/XeTeX, gives users control of these features, for example to enable fancy stylistic capital letters (swash caps) or to choose between ranging (full-height) and non-ranging (old-style, or lower-case) digits. Some web browsers also support OpenType features in accordance with the CSS Fonts Module Level 3 specification, which allows OpenType features to be set directly via the font-feature-settings property, or indirectly by means of higher-level mechanisms.
The following tables list the features defined in version 1.8.1 of the OpenType specification. The codes in the "type" column are explained after the tables.
OpenType features may be applicable only to certain language scripts or specific languages, or in certain writing modes. The features are split into several tables accordingly.
Features primarily intended for or exclusively required by South-Asian alphasyllabaries (Indic/Brahmic)
Replaces the above-base part of a vowel sign. For Khmer and similar scripts.
Above-base Mark Positioning
Positions a mark glyph above a base glyph.
Ligates a consonant with an above-mark.
Replaces halant+consonant combination with a subscript form.
Replaces Greek characters with special forms for use in mathematics
Flattened accent forms
This feature is applied to individual glyphs during layout of math formula.
The dotless forms are to be used as base forms for placing mathematical accents over them.
Math script style alternates
This feature can have a parameter indicating the script level: 1 for simple subscripts and superscripts, 2 for second level subscripts and superscripts (that is, scripts on scripts), and so on. (Currently, only the first two alternates are used). For glyphs that are not covered by this feature, the original glyph is used in subscripts and superscripts.
Ligation and alternate forms features intended for all scripts
Access All Alternates
Special feature: used to present user with choice all alternate forms of the character
Either replaces character with or displays multiple swashed versions
Converts letter to a swashed version based on characters around the letter
Applies a second substitution feature based on a match of a character pattern within a context of surrounding patterns
Obsolete forms of characters to be applied at the user's discretion, cf. hlig
Substitutes character with the preferred form based on script language
Replaces character with random forms (meant to simulate handwriting)
Alternate Annotation Forms
Provides user access to circled digits, inverse letters etc.
Character Variant 1–99
Multiple variants of a single character, which may not apply to many other characters, see references for voluminous documentation
Either replaces with, or displays list of, stylistic alternatives for a character
Stylistic Set 1 – 20
Replaces character with one from a font-specific set of stylistic alternatives
Replaces character with subscript version, cf. numr
Replaces character with superscript version, cf. dnom
Replaces characters with forms suited for large type, as in titles
Required Variation Alternates
Special variants of a single character, which need apply to specific font variation, required by variable fonts
Applies a second ligature feature based on a match of a character pattern within a context of surrounding patterns
Not a lookup: feature's table provides to applications information about the appearance and intent of the font, to aid in font selection.
Decorative alternates for the bullet character •
Legend of substitution and positioning codes
Below are listed the OpenType lookup table types, as used in the "type" column in the above tables. S stands for substitution, and P stands for positioning. Note that often a feature can be implemented by more than one type of table, and that sometimes the specification fails to explicitly indicate the table type.
simple substitution of one glyph with another
multiple substitution of one character by several glyphs
chained contextual substitution
extension for GSUB tables past 64kB
reverse chained contextual substitution
positioning of single glyph
positioning of pair of glyphs
positioning of mark glyphs relative to base
positioning of mark glyphs relative to ligature
positioning of mark glyphs relative to another mark glyph