List of Typographic Features - OpenType Typographic Features

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-
cv99
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-
ss20
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 mother’s face,
    Her aspect and her attitude.
    Henry Wadsworth Longfellow (1807–1882)