OpenType Typographic Features
The OpenType format defines a number of typographic features that a particular font may support; some software, such as Adobe InDesign or recent versions of TeX, gives users control of these, 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.
The following table lists the features defined in version 1.6 of the OpenType specification. The "type" and "script" columns are explained below the table.
Long name | tag | type | script | Description |
---|---|---|---|---|
Above-base Forms | abvf |
S1 | Indic | |
Above-base Mark Positioning | abvm |
P4,5 | Indic | |
Above-base Substitutions | abvs |
S4 | Indic | |
Access All Alternates | aalt |
S1,3 | any | Used to present user with choice all alternate forms of the character |
Akhand | akhn |
S4 | Indic | |
Alternate Annotation | nalt |
S1,3 | any | |
Alternate Half Widths | halt |
P1 | CJKV | Re-positions full-width glyphs on half-width spaces |
Alternative Fractions | afrc |
S4 | any | Converts figures separated by slash with alternative nut fraction form |
Alternative Vertical Metrics | valt |
P1 | vert. | Positions shorter characters to be centered vertically with full-height characters |
Alternative Vertical Half Metrics | vhal |
P1 | vert. | Positions characters to be centered vertically with half-height characters |
Below-base Forms | blwf |
S4 | Indic | |
Below-base Mark Positioning | blwm |
P4,5 | Indic | |
Below-base Substitutions | blws |
S4 | Indic | |
Capital Spacing | cpsp |
P1 | cased | Adjusts spacing between letters in all-capitals text |
Capitals to Petite Caps | c2pc |
S1 | cased | Substitutes capital letters with petite caps |
Capitals to Small Caps | c2sc |
S1 | cased | Substitutes capital letters with small caps |
Case Sensive Forms | case |
P1 | cased | Replace characters, especially punctuation, with forms better suited for all-capital text |
Centered CJK Punctuation | cpct |
P1 | CJKV | Positions punctuation marks vertically and horizontally |
Character Variant 1 – 99 | cv01- |
S3 | any | Multiple variants of a single character, which may not apply to many other characters. See references for voluminous documentation. |
Conjunct Forms | cjct |
S4 | Indic | |
Conjunct Form After Ro | cfar |
S1 | Khm. | |
Contextual Alternates | calt |
S6 | any | Applies a second substitution feature based on a match of a character pattern within a context of surrounding patterns |
Contextual Ligatures | clig |
S8 | any | Applies a second ligature feature based on a match of a character pattern within a context of surrounding patterns |
Contextual Swash | cswh |
S8 | any | Converts letter to a swashed version based on characters around the letter |
Cursive Positioning | curs |
P3 | curs. | Precise positioning of a letter's connection to an adjacent one |
Denominator | dnom |
S1 | any | Converts to appropriate fraction denominator form. Invoked by frac . |
Discretionary Ligatures | dlig |
S4 | any | Ligatures to be applied at the user's discretion |
Distance | dist |
P2 | Indic | Adjusts horizontal positioning between glyphs |
Expert Forms | expt |
S1 | Jap. | |
Final Glyph on Line Alternates | falt |
S3 | curs. | Replaces final glyph on the line with an alternate. |
Fractions | frac |
S4 | any | Converts figures separated by slash with diagonal fraction |
Full Widths | fwid |
S1 | CJKV | Substitutes proportionally spaced character with full-width versions (esp. for Latin letters within Chinese) |
Glyph Composition/Decomposition | ccmp |
S4,2 | any | Either calls a ligature replacement on a sequence of characters or replaces a character with a sequence of glyphs. Provides logic that can for example effectively alter the order of input characters. |
Halant Forms | haln |
S4 | Indic | |
Half Form | half |
S4 | Indic | |
Half Widths | hwid |
S1,P1 | CJKV | Substitutes uniformly-spaced characters with half-width version |
Hangul | hngl |
S1,3 | Kor. | Replaces Chinese-style characters with Korean Hangul |
Historical Forms | hist |
S1 | any | Obsolete forms of characters to be applied at the user's discretion |
Historical Ligatures | hlig |
S1 | any | Obsolete ligatures to be applied at the user's discretion |
Horizontal Kana Alternates | hkna |
S1 | Kana | |
Hojo Kanji Forms | hojo |
Kanji | ||
Initial Forms | init |
S1 | any | Substitutes a special form of a letter occurring at the beginning of a word (required by Arabic and Syriac) |
Isolated Forms | isol |
S1 | curs. | Substitutes a special form of a letter occurring outside a word (required by Arabic and Syriac) |
Italics | ital |
S1 | Lat. | Replaces letter with corresponding italic glyph |
JIS 04 Forms | jp04 |
Jap. | ||
JIS 78 Forms | jp78 |
S1,3 | Jap. | |
JIS 83 Forms | jp83 |
S1 | Jap. | |
JIS 90 Forms | jp90 |
S1 | Jap. | |
Justification Alternates | jalt |
S3 | curs. | |
Kerning | kern |
P2,8 | any | Fine horizontal positioning of one glyph to the next, based on the shapes of the glyphs |
Lining Figures | lnum |
S1 | cased | Replaces numerals with glyphs meant to fit better in all-capitals text |
Leading Jamo Forms | ljmo |
S4 | Kor. | |
Left Bounds | lfbd |
P1 | any | Re-positions glyphs at end of line. Called by opbd . |
Left-to-right glyph alternates | ltra |
S1 | ltr | Replaces characters with possibly mirrored forms befitting left-to-right presentation |
Left-to-right mirrored forms | ltrm |
S1 | ltr | Replaces characters with forms befitting left-to-right presentation (except mirrored forms) |
Localized Forms | locl |
S1 | any | Substitutes character with the preferred form based on script language |
Mark Positioning | mark |
P4,5 | any | Fine positioning of a mark glyph to a base character |
Mark Positioning via Substitution | mset |
S5 | curs. | Used in Windows 95 for positioning of Arabic marks. |
Mark-to-mark Positioning | mkmk |
P6 | any | Fine positioning of a mark glyph to another mark character |
Mathematical Greek | mgrk |
S1 | any | Replaces Greek characters with special forms for use in mathematics. |
Medial Forms | medi |
S1 | any | Substitutes a special form of letters between other letters in words (required by Arabic and Syriac) |
Medial Form #2 | med2 |
S5 | Syr. | |
NLC Kanji Forms | nlck |
Kanji | ||
Nukta Forms | nukt |
S4 | Indic | |
Numerator | numr |
S1 | any | Converts to appropriate fraction numerator form. Invoked by frac . |
Oldstyle Figures | onum |
S1 | any | Replaces numerals with old-style numerals |
Optical Bounds | opbd |
P1 | any | Re-positions glyphs at beginning and end of line, for precise justification of text. |
Optical size | size |
any | Not a lookup: feature's table provides to applications information about the appearance and intent of the font, to aid in font selection. | |
Ordinals | ordn |
S6,4 | Lat. | Replaces characters with ordinal forms for use after numbers |
Ornaments | ornm |
S3,1 | any | |
Petite Caps | pcap |
S1 | cased | Substitute lower-case letters with their petite caps analogs |
Pre-base Forms | pref |
S4 | Khm. | (and other similar scripts: Myanmar, Malayalam, Telugu) |
Pre-base Substitutions | pres |
S4,5 | Indic | |
Post-base Substitutions | psts |
S4 | Indic | (any alphabetic?) |
Post-base Forms | pstf |
S4 | Khm. | (and Gurmukhi, Malayalam) |
Proportional Alternates | palt |
P1 | CJKV | Re-positions otherwise monospace characters according to glyph width |
Proportional Alternate Vertical Metrics | vpal |
P1 | vert. | Re-positions glyphs vertically to be centered on proportional full-height characters |
Proportional Figures | pnum |
S1 | any | Replaces numerals with glyphs of proportional width |
Proportional Kana | pkna |
S1 | Kana | |
Proportional Widths | pwid |
S1 | CJKV | Replaces uniformly-spaced glyphs with proportional ones |
Quarter Widths | qwid |
S1 | CJKV | Replaces uniformly-spaced glyphs with quarter-width ones (punctuation etc.) |
Randomize | rand |
S3 | any | Replaces character with random forms (meant to simulate handwriting) |
Rakar Forms | rkrf |
S4 | Indic | |
Reph Form | rphf |
S4 | Indic | |
Required Ligatures | rlig |
S3 | curs. | Ligatures required for correct text display (esp. in Arabic and Syriac) |
Right Bounds | rtbd |
P1 | any | Re-positions glyphs at beginning of line. Called by opbd . |
Right-to-left glyph alternates | rtla |
S1 | rtl | Replace characters with forms befitting right-to-left presentation (except mirrored forms) |
Right-to-left mirrored forms | rtlm |
S1 | rtl | Replace characters with possibly mirrored forms befitting right-to-left presentation |
Ruby Notation Forms | ruby |
S1 | CJKV | Ruby characters |
Scientific Inferiors | sinf |
S1 | any | |
Simplified Forms | smpl |
S1 | CJKV | Replaces Chinese characters with their simplified versions |
Slashed Zero | zero |
S1 | any | Replaces 0 figure with slashed 0 |
Small Caps | smcp |
S1 | cased | Substitutes lower-case letters with small caps versions |
Standard Ligatures | liga |
S4 | any | Replaces (by default) sequence of characters with a single ligature glyph |
Stylistic Alternates | salt |
S1,3 | any | Replaces character with stylistic alternative |
Stylistic Set 1 – 20 | ss01- |
S1 | any | Replaces character with a one from a font-specific set of stylistic alternatives |
Subscript | subs |
S1 | any | Replaces character with subscript version |
Superscript | sups |
S1 | any | Replaces character with superscript version |
Swash | swsh |
S1,3 | any | Replaces character with swashed version |
Tabular Figures | tnum |
S1 | any | Replaces numerals with glyphs of uniform width |
Terminal Forms | fina |
S1 | any | Substitutes a special form of a letter at end of words (required by Arabic and Syriac) |
Terminal Form #2 | fin2 |
S5 | Syr. | |
Terminal Form #3 | fin3 |
S5 | Syr. | |
Third Widths | twid |
S1,P1 | CJKV | Substitutes uniformly-spaced character with a version of 1/3 width (punctuation, etc.) |
Titling Alternates | titl |
S1 | any | Replaces characters with forms suited for large type, as in titles |
Traditional Forms | trad |
S1,3 | CJKV | Replaces Chinese characters with their traditional versions |
Traditional Name Forms | tnam |
S1 | Jap. | |
Trailing Jamo Forms | tjmo |
S4 | Kor. | |
Unicase | unic |
S1 | cased | Replaces lowercase and uppercase letters with a set of single case glyphs |
Vattu Variants | vatu |
S4 | Indic | |
Vertical Alternates | vert |
S1 | vert. | A subset of vrt2 : prefer the latter feature. |
Vertical Alternates and Rotation | vrt2 |
S1 | vert. | Replaces characters with forms suitable for vertical writing, possibly by rotating 90° |
Vertical Kana | vkna |
S1 | Kana | |
Vertical Kerning | vkrn |
P2,8 | vert. | Fine vertical positioning of characters based on shape |
Vowel Jamo Forms | vjmo |
S4 | Kor. |
OpenType features may be applicable only to certain language scripts or specific languages, or in certain writing modes. The script column above indicates such dependencies.
abbrev. | applicable in |
---|---|
any | any script |
cased | bicameral scripts (those with a case distinction) such as Greek, Latin, and Cyrillic |
curs. | cursive mode; required in Arabic and Syriac |
vert. | vertical mode; especially used in CKJV |
ltr | left-to-right mode |
rtl | right-to-left mode |
mono | monospaced mode |
CJKV | Chinese, Japenese, Korean, Vietnamese -- especially in display of block ideographic characters |
Indic | Indic scripts |
Jap. | Japanese only |
Kanji | Japanese Kanji only |
Kana | Kana only (Japanese, Ainu) |
Kor. | Korean only |
Lat. | Latin-based scripts only |
Khm. | Khmer script, and often other similar, Brahmi-based ones |
Syr. | Syriac only |
OpenType lookup table types, used in the "type" column in the above table. 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.
abbrev. | type | description |
---|---|---|
S1 | GSUB 1 | simple substitution of one glyph with another |
S2 | GSUB 2 | multiple substitution of one character by several glyphs |
S3 | GSUB 3 | variant selection |
S4 | GSUB 4 | ligatures |
S5 | GSUB 5 | contextual substitution |
S6 | GSUB 6 | chained contextual substitution |
S7 | GSUB 7 | extension for GSUB tables past 64kB |
S8 | GSUB 8 | reverse chained contextual substitution |
P1 | GPOS 1 | positioning of single glyph |
P2 | GPOS 2 | positioning of pair of glyphs |
P3 | GPOS 3 | cursive attachment |
P4 | GPOS 4 | positioning of mark glyphs relative to base |
P5 | GPOS 5 | positioning of mark glyphs relative to ligature |
P6 | GPOS 6 | positioning of mark glyphs relative to another mark glyph |
P7 | GPOS 7 | contextual positioning |
P8 | GPOS 8 | extended contextual positioning |
P9 | GPOS 9 | extension for GPOS tables past 64kB |
Read more about this topic: List Of Typographic Features
Famous quotes containing the word features:
“Art is the child of Nature; yes,
Her darling child, in whom we trace
The features of the mothers face,
Her aspect and her attitude.”
—Henry Wadsworth Longfellow (18071882)