List of typographic features
State-of-the-art digital typographic systems have solved virtually all the demands of 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 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 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.
Features primarily intended for or exclusively required by South-Asian alphasyllabaries (Indic/Brahmic)
Features primarily intended for or exclusively required by East-Asian tetragrams (Chinese, Japanese, Korean)
Features primarily intended for or exclusively required by West-Asian (Semitic, Arabic) and other cursive scripts or fonts
Features intended for bicameral cased alphabets (Latin, Greek, Cyrillic, etc.)
Features depending on writing direction
Features intended for digits and math
Ligation and alternate forms features intended for all scripts
Positioning features intended for all scripts
Special 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. | 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 |
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
- 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
- All Typographic Features
- Linguistic Rearrangement
- Overlapping Characters
- Vertical Substitution