List of typographic features


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, 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 computer fonts to define their own 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, LibreOffice/OpenOffice, or recent versions of Lua/XeTeX, gives users control of these features, for example to enable fancy stylistic capital letters or to choose between ranging and non-ranging 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 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.

Positioning features intended for all scripts

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.
abbrev.typedescription
S1GSUB 1simple substitution of one glyph for another
S2GSUB 2multiple replacement of one character by several glyphs
S3GSUB 3variant selection
S4GSUB 4ligatures
S5GSUB 5contextual substitution
S6GSUB 6chained contextual substitution
S7GSUB 7extension for GSUB tables past 64kB
S8GSUB 8reverse chained contextual substitution
P1GPOS 1positioning of single glyph
P2GPOS 2positioning of pair of glyphs
P3GPOS 3cursive attachment
P4GPOS 4positioning of mark glyphs relative to base
P5GPOS 5positioning of mark glyphs relative to ligature
P6GPOS 6positioning of mark glyphs relative to another mark glyph
P7GPOS 7contextual positioning
P8GPOS 8extended contextual positioning
P9GPOS 9extension for GPOS tables past 64kB

AAT typographic features

Features that take one value, mutual exclusive from the rest:
  • Annotation nalt
  • * No Annotation
  • * Box Annotation
  • * Rounded Box Annotation
  • * Circle Annotation
  • * Inverted Circle Annotation
  • * Parenthesis Annotation
  • * Period Annotation
  • * Roman Numeral Annotation
  • * Diamond Annotation
  • Character Alternatives
  • * No Alternates
  • *... rand; aalt, calt, falt, jalt, salt, ssXX, hkna/vkna, rtla, vrt2
  • Character Shape half, ruby; ljmo, vjmo, tjmo
  • * Traditional Characters trad
  • * Simplified Characters smpl
  • * JIS 1978 Characters jp78
  • * JIS 1983 Characters jp83
  • * JIS 1990 Characters jp90
  • * Traditional Characters, Alternative Set 1...5 tnam, hojo, nlck
  • * Expert Characters expt, locl
  • CJK Latin Spacing
  • * Half-width hwid, halt
  • * Proportional pwid, palt
  • * Default Latin
  • * Full-width Latin fwid
  • Cursive Connection init, medi/med2, fina/fin2/fin3; haln, nukt, vatu, rphf, pres, pstf/psts
  • * Unconnected isol
  • * Partially Connected calt, clig
  • * Cursive curs
  • Design Complexity
  • * Design Level 1
  • * Design Level...
  • Diacritics
  • * Show Diacritics
  • * Hide Diacritics
  • * Decompose Diacritics ccmp
  • Fractions
  • * No Fractions
  • * Vertical Fractions afrc
  • * Diagonal Fractions frac, dnom, numr
  • Ideographic Spacing
  • * Full Width fwid
  • * Proportional pwid, palt
  • Kana Spacing
  • * Full Width fwid
  • * Proportional pwid, palt
  • Letter Case case
  • * Upper & Lower Case
  • * All Caps
  • * All Lower Case
  • * Small Caps smcp, pcap
  • * Initial Caps c2sc, c2pc
  • * Initial Caps and Small Caps
  • Number Case
  • * Lower Case Numbers onum
  • * Upper Case Numbers lnum
  • Number Spacing
  • * Monospaced Numbers tnum
  • * Proportional Numbers pnum
  • Ornament Sets ornm
  • * None
  • * Dingbats
  • * Pi Characters
  • * Fleurons
  • * Decorative Borders
  • * International Symbols
  • * Math Symbols mgrk
  • Text Spacing
  • * Proportional pwid, palt
  • * Monospace fwid
  • * Half-width hwid, halt
  • * Normal
  • Vertical Position
  • * No Vertical Position
  • * Superiors supr
  • * Inferiors subs, sinf
  • * Ordinals ordn
Features that take a number of values:
  • Ligatures
  • * Required Ligatures rlig, clig
  • * Common Ligatures liga
  • * Rare Ligatures hlig, dlig
  • * Logos
  • * Rebus Pictures
  • * Diphthong Ligatures
  • * Squared Ligatures
  • * Squared Ligatures, Abbreviated
  • Mathematical Extras
  • * Hyphen to Minus
  • * Asterisk to Multiply
  • * Slash to Divide
  • * Inequality Ligatures
  • * Exponents
  • Smart Swashes swsh, cswh
  • * Word Initial Swashes
  • * Word Final Swashes
  • * Line Initial Swashes
  • * Line Final Swashes falt
  • * Non-Final Swashes jalt
  • Style Options
  • * No Style Options
  • * Display Text size
  • * Engraved Text
  • * Illuminated Caps
  • * Titling Caps titl
  • * Tall Caps
  • Transliteration locl
  • * No Transliteration
  • * Hanja to Hangul
  • * Hanja to Hangul, Alternative Set 1...3
  • * Hiragana to Katakana
  • * Katakana to Hiragana
  • * Kana to Romanization
  • * Romanization to Hiragana
  • * Romanization to Katakana
  • Typographic Extras
  • * Hyphens to Em Dash
  • * Hyphen to En Dash
  • * Unslashed Zero zero
  • * Form Interrobang
  • * Smart Quotes
  • * Periods to Ellipsis
Binary features that can only be turned on:
  • All Typographic Features
  • Linguistic Rearrangement
  • Overlapping Characters
  • Vertical Substitution