List of typographic features

Last updated

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.

Contents

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 (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)

Long nametagtypeDescription
Above-base FormsabvfS1Replaces the above-base part of a vowel sign. For Khmer and similar scripts.
Above-base Mark PositioningabvmP4,5Positions a mark glyph above a base glyph.
Above-base SubstitutionsabvsS4Ligates a consonant with an above-mark.
Below-base FormsblwfS4Replaces halant+consonant combination with a subscript form.
Below-base Mark PositioningblwmP4,5Positions a mark glyph below a base glyph
Below-base SubstitutionsblwsS4Ligates a consonant with a below-mark.
Pre-base FormsprefS4[ disputed ]Replaces halant+consonant at the end of a consonant cluster with a glyph at the beginning. Khmer, Myanmar, Malayalam, Telugu
Pre-base SubstitutionspresS4,5Ligates consonant combinations.
Post-base SubstitutionspstsS4Ligates a final consonant+consonant.
Post-base FormspstfS4Substitutes final halant+consonant with special form. Khmer and Gurmukhi, Malayalam
DistancedistP2Adjusts horizontal positioning between glyphs. (Always enabled, as opposed to 'kern'.)
AkhandakhnS4Hindi for unbreakable. Ligates consonant+halant+consonant, usually only for k-ss and j-ny combinations.
Halant FormshalnS4Replaces a glyph for final consonant+halant.
Half FormhalfS4Replaces consonant+halant with a half form, indicating it is part of a conjunct.
Nukta FormsnuktS4Replace consonant+nukta (dot mark) with single glyph.
Rakar FormsrkrfS4Replaces halant+ra with a rakar glyph, indicating it is part of a conjunct.
Reph FormrphfS4Replaces initial ra+halant with a final reph mark, indicating part of a conjunct.
Vattu VariantsvatuS4Replaces consonant+rakar combinations with a vattu variant ligature.
Conjunct FormscjctS4Ligates consonant+halant+consonant, indicates part of a conjunct.
Conjunct Form After RocfarS1Khmer

Features primarily intended for or exclusively required by East-Asian tetragrams (Chinese, Japanese, Korean)

Long nametagtypeDescription
Simplified FormssmplS1Replaces sinograms with their simplified versions, may be language dependent
Traditional FormstradS1,3Replaces Chinese characters with their traditional versions
Traditional Name FormstnamS1Japanese alternates for proper names
Expert FormsexptS1Typographic alternatives for some Japanese tetragrams
Hojo Kanji FormshojoHojo alternates for Japanese tetragrams
NLC Kanji FormsnlckNLC alternates for Japanese tetragrams
JIS 78 Formsjp78S1,3JIS C 6226-1978 alternates for Japanese tetragrams, not accessible per Unicode
JIS 83 Formsjp83S1JIS X 0208-1983 alternates for Japanese tetragrams, not accessible per Unicode
JIS 90 Formsjp90S1JIS X 0208-1990 alternates for Japanese tetragrams, not accessible per Unicode
JIS 04 Formsjp04JIS 2004 alternates for Japanese tetragrams, not accessible per Unicode
HangulhnglS1,3Transliterates Chinese-style characters with Korean Hangul
Leading Jamo FormsljmoS4Initial group of consonants for a synthesized Korean Hangul tetragram
Trailing Jamo FormstjmoS4Final group of consonants for a synthesized Korean Hangul tetragram
Vowel Jamo FormsvjmoS4Medial group of vowels for a synthesized Korean Hangul tetragram
Full WidthsfwidS1Substitutes proportionally spaced character with full-width versions (esp. for Latin letters within Chinese)
Half WidthshwidS1,P1Substitutes uniformly-spaced characters with half-width version
Alternate Half WidthshaltP1Re-positions full-width glyphs on half-width spaces
Third WidthstwidS1,P1Substitutes uniformly-spaced character with a version of 1/3 width (punctuation, etc.)
Quarter WidthsqwidS1Replaces uniformly-spaced glyphs with quarter-width ones (punctuation etc.)
Proportional WidthspwidS1Replaces uniformly-spaced glyphs with proportional ones
Proportional AlternatespaltP1Re-positions otherwise monospace characters according to glyph width
Proportional KanapknaS1Kana for use alongside alphabets, without grid typography
Ruby Notation FormsrubyS1 Ruby characters, small print
Horizontal Kana AlternateshknaS1Alternate forms for horizontal kana text, e.g. ー for chōonpu instead of |, cf. vkna
Vertical KanavknaS1Alternate Japanese kana forms for vertical text, e.g. | for chōonpu instead of ー, cf. hkna
Centered CJK PunctuationcpctP1Positions punctuation marks vertically and horizontally

Features primarily intended for or exclusively required by West-Asian (Semitic, Arabic) and other cursive scripts or fonts

Long nametagtypeDescription
Cursive PositioningcursP3Precise positioning of a letter's connection to an adjacent one
Justification AlternatesjaltS3User selectable wider and narrower alternates, used especially for justifying
Mark Positioning via SubstitutionmsetS5Used in Windows 95 for positioning of Arabic marks
Required Contextual AlternatesrcltS6Contextual alternates required for correct text display which differs from the default join for other letters, required especially important by Arabic
Required LigaturesrligS3Ligatures required for correct text display (any script, but in cursive)
Isolated FormsisolS1Substitutes a special form of a letter occurring outside a word (required by Arabic and Syriac)
Initial FormsinitS1Substitutes a special form of a letter occurring at the beginning of a word (required by Arabic and Syriac)
Medial FormsmediS1Substitutes a special form of letters between other letters in words (required by Arabic and Syriac)
Medial Form #2med2S5Syriac
Terminal FormsfinaS1Substitutes a special form of a letter at end of words (required by Arabic and Syriac)
Terminal Form #2fin2S5Syriac
Terminal Form #3fin3S5Syriac
Final Glyph on Line AlternatesfaltS3Replaces final glyph on the line with an alternate
Stretching Glyph DecompositionstchS2Substitutes a special form of a stretchy glyph onto one or more letters (required by Syriac)

Features intended for bicameral [cased] alphabets (Latin, Greek, Cyrillic, etc.)

Long nametagtypeDescription
Small CapssmcpS1Substitutes lower-case letters with small caps versions
Capitals to Small Capsc2scS1Substitutes capital letters with small caps
Petite CapspcapS1Substitute lower-case letters with their petite caps analogs
Capitals to Petite Capsc2pcS1Substitutes capital letters with petite caps
UnicaseunicS1Replaces lowercase and uppercase letters with a set of single case glyphs
Capital SpacingcpspP1Adjusts spacing between letters in all-capitals text
Case Sensitive FormscaseP1Replace characters, especially punctuation, with forms better suited for all-capital text, cf. titl
ItalicsitalS1Replaces letter with corresponding italic glyph
OrdinalsordnS6,4Replaces characters with ordinal forms for use after numbers

Features depending on writing direction

Long nametagtypeDescription
Alternative Vertical MetricsvaltP1Positions shorter characters to be centered vertically with full-height characters
Alternative Vertical Half MetricsvhalP1Positions characters to be centered vertically with half-height characters
Proportional Alternate Vertical MetricsvpalP1Re-positions glyphs vertically to be centered on proportional full-height characters
Vertical AlternatesvertS1A subset of vrt2: prefer the latter feature
Vertical Alternates and Rotationvrt2S1Replaces characters with forms suitable for vertical writing, possibly by rotating 90°
Vertical Alternates for RotationvrtrS1Replaces characters with forms suitable for vertical writing, possibly by shifting or shape
Vertical KerningvkrnP2,8Fine vertical positioning of characters based on shape
Left-to-right glyph alternatesltraS1Replaces characters with forms befitting left-to-right presentation (except mirrored forms)
Left-to-right mirrored formsltrmS1Replaces characters with possibly mirrored forms befitting left-to-right presentation
Right-to-left glyph alternatesrtlaS1Replaces characters with forms befitting right-to-left presentation (except mirrored forms)
Right-to-left mirrored formsrtlmS1Replaces characters with possibly mirrored forms befitting right-to-left presentation

Features intended for digits and math

Long nametagtypeDescription
Lining FigureslnumS1Replaces numerals with glyphs meant to fit better in all-capitals text, often also tnum
Oldstyle FiguresonumS1Replaces numerals with cased old-style numerals, often also pnum
Proportional FigurespnumS1Replaces numerals with glyphs of proportional width, often also onum
Tabular FigurestnumS1Replaces numerals with glyphs of uniform width, often also lnum
FractionsfracS4Converts figures separated by slash with diagonal fraction
Alternative FractionsafrcS4Converts figures separated by slash with alternative stacked fraction form
DenominatordnomS1Converts to appropriate fraction denominator form, invoked by frac
NumeratornumrS1Converts to appropriate fraction numerator form, invoked by frac
Scientific InferiorssinfS1as in "H2O", "SOx" or "YCbCr" (but using the same font weight and predefined position in contrast these plain HTML subs and sups)
Slashed ZerozeroS1Replaces 0 figure with slashed 0
Mathematical GreekmgrkS1Replaces Greek characters with special forms for use in mathematics
Flattened accent formsflacThis feature is applied to individual glyphs during layout of math formula.
Dotless FormsdtlsThe dotless forms are to be used as base forms for placing mathematical accents over them.
Math script style alternatessstyThis 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

Long nametagtypeDescription
Access All AlternatesaaltS1,3Special feature: used to present user with choice all alternate forms of the character
SwashswshS1,3Either replaces character with or displays multiple swashed versions
Contextual SwashcswhS8Converts letter to a swashed version based on characters around the letter
Contextual AlternatescaltS6Applies a second substitution feature based on a match of a character pattern within a context of surrounding patterns
Historical FormshistS1Obsolete forms of characters to be applied at the user's discretion, cf. hlig
Localized FormsloclS1Substitutes character with the preferred form based on script language
RandomizerandS3Replaces character with random forms (meant to simulate handwriting)
Alternate Annotation FormsnaltS1,3Provides user access to circled digits, inverse letters etc.
Character Variant 1–99cv01–
cv99
S3Multiple variants of a single character, which may not apply to many other characters, see references for voluminous documentation
Stylistic AlternatessaltS1,3Either replaces with, or displays list of, stylistic alternatives for a character
Stylistic Set 1 – 20ss01-
ss20
S1Replaces character with one from a font-specific set of stylistic alternatives
SubscriptsubsS1Replaces character with subscript version, cf. numr
SuperscriptsupsS1Replaces character with superscript version, cf. dnom
Titling AlternatestitlS1Replaces characters with forms suited for large type, as in titles
Required Variation AlternatesrvrnS1Special variants of a single character, which need apply to specific font variation, required by variable fonts
Contextual LigaturescligS8Applies a second ligature feature based on a match of a character pattern within a context of surrounding patterns
Discretionary LigaturesdligS4 Ligatures to be applied at the user's discretion
Historical LigatureshligS1Obsolete ligatures to be applied at the user's discretion
Standard LigaturesligaS4Replaces (by default) sequence of characters with a single ligature glyph

Positioning features intended for all scripts

Long nametagtypeDescription
Glyph Composition/DecompositionccmpS4,2Either 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.
KerningkernP2,8Fine horizontal positioning of one glyph to the next, based on the shapes of the glyphs
Mark PositioningmarkP4,5Fine positioning of a mark glyph to a base character
Mark-to-mark PositioningmkmkP6Fine positioning of a mark glyph to another mark character
Optical BoundsopbdP1Re-positions glyphs at beginning and end of line, for precise justification of text.
Left BoundslfbdP1Re-positions glyphs at end of line. Called by opbd.
Right BoundsrtbdP1Re-positions glyphs at beginning of line. Called by opbd.

Special features intended for all scripts

Long nametagtypeDescription
Optical sizesizeNot a lookup: feature's table provides to applications information about the appearance and intent of the font, to aid in font selection.
OrnamentsornmS3,1Decorative 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.

abbrev.typedescription
S1GSUB 1simple substitution of one glyph with another
S2GSUB 2multiple substitution 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:

Features that take a number of values:

Binary features that can only be turned on:

Related Research Articles

Katakana is a Japanese syllabary, one component of the Japanese writing system along with hiragana, kanji and in some cases the Latin script.

<span class="mw-page-title-main">Typeface</span> Set of characters that share common design features

A typeface is a design of letters, numbers and other symbols, to be used in printing or for electronic display. Most typefaces include variations in size, weight, slope, width, and so on. Each of these variations of the typeface is a font.

OpenType is a format for scalable computer fonts. Derived from TrueType, it retains TrueType's basic structure but adds many intricate data structures for describing typographic behavior. OpenType is a registered trademark of Microsoft Corporation.

<span class="mw-page-title-main">Kerning</span> Adjustment of the space between the characters of a typeface

In typography, kerning is the process of adjusting the spacing between characters in a proportional font, usually to achieve a visually pleasing result. Kerning adjusts the space between individual letterforms while tracking (letter-spacing) adjusts spacing uniformly over a range of characters. In a well-kerned font, the two-dimensional blank spaces between each pair of characters all have a visually similar area. The term "keming" is sometimes used informally to refer to poor kerning.

Arial Unicode MS is a TrueType font and the extended version of the font Arial. Compared to Arial, it includes higher line height, omits kerning pairs and adds enough glyphs to cover a large subset of Unicode 2.1—thus supporting most Microsoft code pages, but also requiring much more storage space. It also adds Ideographic layout tables, but unlike Arial, it mandates no smoothing in the 14–18 point range, and contains Roman (upright) glyphs only; there is no oblique (italic) version. Arial Unicode MS was previously distributed with Microsoft Office, but this ended in 2016 version. It is bundled with Mac OS X v10.5 and later. It may also be purchased separately from Ascender Corporation, who licenses the font from Microsoft.

Apple Advanced Typography (AAT) is Apple Inc.'s computer technology for advanced font rendering, supporting internationalization and complex features for typographers, a successor to Apple's little-used QuickDraw GX font technology of the mid-1990s. It is a set of extensions to the TrueType outline font standard, with smartfont features similar to the OpenType font format that was developed by Adobe and Microsoft, and to Graphite. It also incorporates concepts from Adobe's "multiple master" font format, allowing for axes of traits to be defined and morphing of a glyph independently along each of these axes. AAT font features do not alter the underlying typed text; they only affect the characters' representation during glyph conversion.

Letter spacing, character spacing or tracking is an optically consistent typographical adjustment to the space between letters to change the visual density of a line or block of text. Letter spacing is distinct from kerning, which adjusts the spacing of particular pairs of adjacent characters such as "7." which would appear to be badly spaced if left unadjusted, and leading, the spacing between lines.

<span class="mw-page-title-main">Zapfino</span> Typeface

Zapfino is a calligraphic typeface designed for Linotype by typeface designer Hermann Zapf in 1998. It is based on an alphabet Zapf originally penned in 1944. As a font, it makes extensive use of ligatures and character variations.

<span class="mw-page-title-main">Adobe InCopy</span> Professional word processor made by Adobe Inc.

Adobe InCopy is a professional word processor made by Adobe Inc. that integrates with Adobe InDesign. InCopy is used for general word processing, in contrast to InDesign, which is used to publish printed material, including newspapers and magazines. The software enables editors to write, edit, and design documents. The software includes standard word processing features such as spell check, track changes, and word count, and has various viewing modes that allow editors to visually inspect design elements — just as it looks to the designer working in Adobe InDesign.

<span class="mw-page-title-main">Font</span> Particular size, weight and style of a typeface

In metal typesetting, a font is a particular size, weight and style of a typeface. Each font is a matched set of type, with a piece for each glyph. A typeface consists of various fonts that share an overall design.

<span class="mw-page-title-main">Thesis (typeface)</span> Font superfamily

Thesis is a large typeface family designed by Luc(as) de Groot. The typefaces were designed between 1994 and 1999 to provide a modern humanist family. Each typeface is available in a variety of weights as well as in italic. Originally released by FontFont in 1994, it has been sold by de Groot through his imprint LucasFonts since 2000.

<span class="mw-page-title-main">Parisine</span> Typographic character

Parisine is a typeface that was created by Jean-François Porchez and is distributed by Typofonderie.

<span class="mw-page-title-main">Adobe Jenson</span> Typeface

Adobe Jenson is an old-style serif typeface drawn for Adobe Systems by its chief type designer Robert Slimbach. Its Roman styles are based on a text face cut by Nicolas Jenson in Venice around 1470, and its italics are based on those created by Ludovico Vicentino degli Arrighi fifty years later.

Apple's Macintosh computer supports a wide variety of fonts. This support was one of the features that initially distinguished it from other systems.

<span class="mw-page-title-main">Minion (typeface)</span> Serif typeface

Minion is a serif typeface released in 1990 by Adobe Systems. Designed by Robert Slimbach, it is inspired by late Renaissance-era type and intended for body text and extended reading. Minion's name comes from the traditional naming system for type sizes, in which minion is between nonpareil and brevier, with the type body 7pt in height. As the historically rooted name indicates, Minion was designed for body text in a classic style, although slightly condensed and with large apertures to increase legibility. Slimbach described the design as having "a simplified structure and moderate proportions." The design is slightly condensed, although Slimbach has said that this was intended not for commercial reasons so much as to achieve a good balance of the size of letters relative to the ascenders and descenders.

<span class="mw-page-title-main">Halfwidth and fullwidth forms</span> Alternative width characters in East Asian typography

In CJK computing, graphic characters are traditionally classed into fullwidth and halfwidth characters. Unlike monospaced fonts, a halfwidth character occupies half the width of a fullwidth character, hence the name.

Microtypography is a range of methods for improving the readability and appearance of text, especially justified text. The methods reduce the appearance of large interword spaces and create edges to the text that appear more even. Microtypography methods can also increase reading comprehension of text, reducing the cognitive load of reading.

<span class="mw-page-title-main">Trade Gothic</span> Grotesque sans-serif typeface

Trade Gothic is a sans-serif typeface designed in 1948 by Jackson Burke (1908–1975), who continued to work on further style-weight combinations, eventually 14 in all, until 1960, while he was director of type development for Linotype in the US. The family includes three weights and three widths.

<span class="mw-page-title-main">Galliard (typeface)</span> Typeface

ITC Galliard is the name of a serif typeface designed by Matthew Carter and issued in 1978 by the Mergenthaler Linotype Company.

<span class="mw-page-title-main">Source Han Serif</span> Open-source serif CJK typeface

Source Han Serif is a serif Song/Ming typeface created by Adobe and Google.