Table of Contents

Enum KnownFeatureTags

Namespace
SixLabors.Fonts.Tables.AdvancedTypographic
Assembly
SixLabors.Fonts.dll

Provides enumeration for the different font features. https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags

public enum KnownFeatureTags : uint

Fields

AboveBaseForms = 1633842790

Above-base Forms. Shortcode: abvf. Substitutes the above-base form of a vowel.

AboveBaseMarkPositioning = 1633842797

Above-base Mark Positioning. Shortcode: abvm. Positions marks above base glyphs.

AboveBaseSubstitutions = 1633842803

Above-base Substitutions. Shortcode: abvs. Substitutes a ligature for a base glyph and mark that’s above it.

AccessAllAlternates = 1633774708

Access All Alternates. Shortcode: aalt. This feature makes all variations of a selected character accessible. This serves several purposes: An application may not support the feature by which the desired glyph would normally be accessed; the user may need a glyph outside the context supported by the normal substitution, or the user may not know what feature produces the desired glyph. Since many-to-one substitutions are not covered, ligatures would not appear in this table unless they were variant forms of another ligature.

Akhand = 1634429038

Akhand. Shortcode: akhn. Preferentially substitutes a sequence of characters with a ligature. This substitution is done irrespective of any characters that may precede or follow the sequence.

AlternateAnnotationForms = 1851878516

Alternate Annotation Forms. Shortcode: nalt. Replaces default glyphs with various notational forms (e.g. glyphs placed in open or solid circles, squares, parentheses, diamonds or rounded boxes). In some cases an annotation form may already be present, but the user may want a different one.

AlternateHalfWidths = 1751215220

Alternate Half Widths. Shortcode: halt. Respaces glyphs designed to be set on full-em widths, fitting them onto half-em widths. This differs from 'hwid' in that it does not substitute new glyphs.

AlternateVerticalHalfMetrics = 1986552172

Alternate Vertical Half Metrics. Shortcode: vhal. Respaces glyphs designed to be set on full-em heights, fitting them onto half-em heights.

AlternateVerticalMetrics = 1986096244

Alternate Vertical Metrics. Shortcode: valt. Repositions glyphs to visually center them within full-height metrics, for use in vertical setting. Typically applies to full-width Latin glyphs, which are aligned on a common horizontal baseline and not rotated when set vertically in CJKV fonts.

AlternativeFractions = 1634103907

Alternative Fractions. Shortccde: afrc. Replaces figures separated by a slash with an alternative form.

BelowBaseForms = 1651275622

Below-base Forms. Shortcode: blwf. Substitutes the below-base form of a consonant in conjuncts.

BelowBaseMarkPositioning = 1651275629

Below-base Mark Positioning. Shortcode: blwm. Positions marks below base glyphs.

BelowBaseSubstitutions = 1651275635

Below-base Substitutions. Shortcode: blws. Produces ligatures that comprise of base glyph and below-base forms.

CapitalSpacing = 1668313968

Capital Spacing. Shortcode: cpsp. Globally adjusts inter-glyph spacing for all-capital text. Most typefaces contain capitals and lowercase characters, and the capitals are positioned to work with the lowercase. When capitals are used for words, they need more space between them for legibility and esthetics. This feature would not apply to monospaced designs. Of course the user may want to override this behavior in order to do more pronounced letterspacing for esthetic reasons.

CaseSensitiveForms = 1667330917

Case-Sensitive Forms. Shortcode: case. Shifts various punctuation marks up to a position that works better with all-capital sequences or sets of lining figures; also changes oldstyle figures to lining figures. By default, glyphs in a text face are designed to work with lowercase characters. Some characters should be shifted vertically to fit the higher visual center of all-capital or lining text. Also, lining figures are the same height (or close to it) as capitals, and fit much better with all-capital text.

CenteredCjkPunctuation = 1668309876

Centered CJK Punctuation. Shortcode: cpct. Centers specific punctuation marks for those fonts that do not include centered and non-centered forms.

ConjunctFormAfterRo = 1667654002

Conjunct Form After Ro. Shortcode: cfar. Substitutes alternate below-base or post-base forms in Khmer script when occurring after conjoined Ro ("Coeng Ra").

ConjunctForms = 1667916660

Conjunct Forms. Shortcode: cjct. Produces conjunct forms of consonants in Indic scripts. This is similar to the Akhands feature, but is applied at a different sequential point in the process of shaping an Indic syllable.

ContextualAlternates = 1667329140

Contextual Alternates. Shortcode: calt. In specified situations, replaces default glyphs with alternate forms which provide better joining behavior. Used in script typefaces which are designed to have some or all of their glyphs join.

ContextualLigatures = 1668049255

Contextual Ligatures. Shortcode: clig. Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. Unlike other ligature features, 'clig' specifies the context in which the ligature is recommended. This capability is important in some script designs and for swash ligatures.

ContextualSwash = 1668511592

Contextual Swash. Shortcode: cswh. This feature replaces default character glyphs with corresponding swash glyphs in a specified context. Note that there may be more than one swash alternate for a given character.

CursivePositioning = 1668641395

Cursive Positioning. Shortcode: curs. In cursive scripts like Arabic, this feature cursively positions adjacent glyphs.

Denominators = 1684959085

Denominators. Shortcode: dnom. Replaces selected figures which follow a slash with denominator figures.

DiscretionaryLigatures = 1684826471

Discretionary Ligatures. Shortcode: dlig. Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers those ligatures which may be used for special effect, at the user’s preference.

Distances = 1684632436

Distances. Shortcode: dist. Provides a means to control distance between glyphs.

DotlessForms = 1685351539

Dotless Forms. Shortcode: dtls. This feature provides dotless forms for Math Alphanumeric characters, such as U+1D422 MATHEMATICAL BOLD SMALL I, U+1D423 MATHEMATICAL BOLD SMALL J, U+1D456 U+MATHEMATICAL ITALIC SMALL I, U+1D457 MATHEMATICAL ITALIC SMALL J, and so on. The dotless forms are to be used as base forms for placing mathematical accents over them.

ExpertForms = 1702391924

Expert Forms. Shortcode: expt. Like the JIS78 Forms feature, this feature replaces standard forms in Japanese fonts with corresponding forms preferred by typographers. Although most of the JIS78 substitutions are included, the expert substitution goes on to handle many more characters.

FinalGlyphOnLineAlternates = 1717660788

Final Glyph on Line Alternates. Shortcode: falt. Replaces line final glyphs with alternate forms specifically designed for this purpose (they would have less or more advance width as need may be), to help justification of text.

FlattenedAscentForms = 1718378851

Flattened ascent forms. Shortcode: flac. This feature provides flattened forms of accents to be used over high-rise bases such as capitals. This feature should only change the shape of the accent and should not move it in the vertical or horizontal direction. Moving of the accents is done by the math handling client. Accents are flattened by the Math engine if their base is higher than MATH.MathConstants.FlattenedAccentBaseHeight.

Fractions = 1718772067

Fractions. Shortcode: frac. Replaces figures separated by a slash with "common" (diagonal) fractions.

FullWidths = 1719101796

Full Widths. Shortcode: fwid. Replaces glyphs set on other widths with glyphs set on full (usually em) widths. In a CJKV font, this may include "lower ASCII" Latin characters and various symbols. In a European font, this feature replaces proportionally-spaced glyphs with monospaced glyphs, which are generally set on widths of 0.6 em.

GlyphCompositionDecomposition = 1667460464

Glyph Composition/Decomposition. Shortcode: ccmp. To minimize the number of glyph alternates, it is sometimes desirable to decompose the default glyph for a character into two or more glyphs. Additionally, it may be preferable to compose default glyphs for two or more characters into a single glyph for better glyph processing. This feature permits such composition/decomposition. The feature should be processed as the first feature processed, and should be processed only when it is called.

HalantForms = 1751215214

Halant Forms. Shortcode: haln. Produces the halant forms of consonants in Indic scripts.

HalfForms = 1751215206

Half Forms. Shortcode: half. Produces the half forms of consonants in Indic scripts.

HalfWidths = 1752656228

Half Widths. Shortcode: hwid. Replaces glyphs on proportional widths, or fixed widths other than half an em, with glyphs on half-em (en) widths. Many CJKV fonts have glyphs which are set on multiple widths; this feature selects the half-em version. There are various contexts in which this is the preferred behavior, including compatibility with older desktop documents.

Hangul = 1752065900

Hangul. Shortcode: hngl. Replaces hanja (Chinese-style) Korean characters with the corresponding hangul (syllabic) characters. This effectively reverses the standard input method, in which hangul are entered and replaced by hanja. Many of these substitutions are one-to-one (GSUB lookup type 1), but hanja substitution often requires the user to choose from several possible hangul characters (GSUB lookup type 3).

HistoricalForms = 1751741300

Historical Forms. Shortcode: hist. Some letterforms were in common use in the past, but appear anachronistic today. The best-known example is the long form of s; others would include the old Fraktur k. Some fonts include the historical forms as alternates, so they can be used for a "period" effect. This feature replaces the default (current) forms with the historical alternates. While some ligatures are also used for historical effect, this feature deals only with single characters.

HistoricalLigatures = 1751935335

Historical Ligatures. Shortcode: hlig. Some ligatures were in common use in the past, but appear anachronistic today. Some fonts include the historical forms as alternates, so they can be used for a "period" effect. This feature replaces the default (current) forms with the historical alternates.

HojoKanjiForms = 1752132207

Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms). Shortcode: hojo. The JIS X 0212-1990 (aka, "Hojo Kanji") and JIS X 0213:2004 character sets overlap significantly. In some cases their prototypical glyphs differ. When building fonts that support both JIS X 0212-1990 and JIS X 0213:2004 (such as those supporting the Adobe-Japan 1-6 character collection), it is recommended that JIS X 0213:2004 forms be preferred as the encoded form. The 'hojo' feature is used to access the JIS X 0212-1990 glyphs for the cases when the JIS X 0213:2004 form is encoded.

HorizontalKanaAlternates = 1751871073

Horizontal Kana Alternates. Shortcode: hkna. Replaces standard kana with forms that have been specially designed for only horizontal writing. This is a typographic optimization for improved fit and more even color. Also see 'vkna'.

InitialForms = 1768843636

Initial Forms. Shortcode: init. Replaces glyphs for characters that have applicable joining properties with an alternate form when occurring in an initial context.

IsolatedForms = 1769172844

Isolated Forms. Shortcode: isol. Replaces glyphs for characters that have applicable joining properties with an alternate form when occurring in a isolate (non-joining) context.

Italics = 1769234796

Italics. Shortcode: ital. Some fonts (such as Adobe’s Pro Japanese fonts) will have both Roman and Italic forms of some characters in a single font. This feature replaces the Roman glyphs with the corresponding Italic glyphs.

Jis2004 = 1785737268

JIS2004 Forms. Shortcode: jp04. The National Language Council (NLC) of Japan has defined new glyph shapes for a number of JIS characters, which were incorporated into JIS X 0213:2004 as new prototypical forms. The 'jp04' feature is a subset of the 'nlck' feature, and is used to access these prototypical glyphs in a manner that maintains the integrity of JIS X 0213:2004.

Jis78Forms = 1785739064

JIS78 Forms. Shortcode: jp78. This feature replaces default (JIS90) Japanese glyphs with the corresponding forms from the JIS C 6226-1978 (JIS78) specification.

Jis83Forms = 1785739315

JIS83 Forms. Shortcode: jp83. This feature replaces default (JIS90) Japanese glyphs with the corresponding forms from the JIS X 0208-1983 (JIS83) specification.

Jis90Forms = 1785739568

JIS90 Forms. Shortcode: jp90. This feature replaces Japanese glyphs from the JIS78 or JIS83 specifications with the corresponding forms from the JIS X 0208-1990 (JIS90) specification.

JustificationAlternates = 1784769652

Justification Alternates. Shortcode: jalt. Improves justification of text by replacing glyphs with alternate forms specifically designed for this purpose (they would have less or more advance width as need may be).

Kerning = 1801810542

Kerning. Shortcode: kern. Adjusts amount of space between glyphs, generally to provide optically consistent spacing between glyphs. Although a well-designed typeface has consistent inter-glyph spacing overall, some glyph combinations require adjustment for improved legibility. Besides standard adjustment in the horizontal direction, this feature can supply size-dependent kerning data via device tables, "cross-stream" kerning in the Y text direction, and adjustment of glyph placement independent of the advance adjustment. Note that this feature may apply to runs of more than two glyphs, and would not be used in monospaced fonts. Also note that this feature does not apply to text set vertically.

LeadingJamoForms = 1818914159

Leading Jamo Forms. Shortcode: ljmo. Substitutes the leading jamo form of a cluster.

LeftBounds = 1818649188

Left Bounds. Shortcode: lfbd. Aligns glyphs by their apparent left extents at the left ends of horizontal lines of text, replacing the default behavior of aligning glyphs by their origins. This feature is called by the Optical Bounds ('opbd') feature.

LeftToRightGlyphAlternates = 1819570785

Left-to-right glyph alternates. Shortcode: ltra. This feature applies glyphic variants (other than mirrored forms) appropriate for left-to-right text (for mirrored forms, see 'ltrm').

LeftToRightMirroredForms = 1819570797

Left-to-right mirrored forms. Shortcode: ltrm. This feature applies mirrored forms appropriate for left-to-right text. (For left-to-right glyph alternates, see 'ltra').

Ligatures = 1818847073

Standard Ligatures. Shortcode: liga. Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers the ligatures which the designer/manufacturer judges should be used in normal conditions.

LiningFigures = 1819178349

Lining Figures. Shortcode: lnum. This feature changes selected non-lining figures to lining figures.

LocalizedForms = 1819239276

Localized Forms. Shortcode: locl. Many scripts used to write multiple languages over wide geographical areas have developed localized variant forms of specific letters, which are used by individual literary communities. For example, a number of letters in the Bulgarian and Serbian alphabets have forms distinct from their Russian counterparts and from each other. In some cases the localized form differs only subtly from the script "norm", in others the forms are radically distinct. This feature enables localized forms of glyphs to be substituted for default forms.

MarkPositioning = 1835102827

Mark Positioning. Shortcode: mark. Positions mark glyphs with respect to base glyphs.

MarkToMarkPositioning = 1835756907

Mark to Mark Positioning. Shortcode: mkmk. Positions marks with respect to other marks. Required in various non-Latin scripts like Arabic.

MathScriptStyleAlternates = 1936946297

Math script style alternates. Shortcode: ssty. This feature provides glyph variants adjusted to be more suitable for use in subscripts and superscripts.

MathematicalGreek = 1835496043

Mathematical Greek. Shortcode: mgrk. Replaces standard typographic forms of Greek glyphs with corresponding forms commonly used in mathematical notation (which are a subset of the Greek alphabet).

MedialForms = 1835361385

Medial Forms. Shortcode: medi Replaces glyphs for characters that have applicable joining properties with an alternate form when occurring in a medial context. This applies to characters that have the Unicode Joining_Type property value Dual_Joining.

MedialForms2 = 1835361330

Medial Forms #2. Shortcode: med2. Replaces Alaph glyphs in the middle of Syriac words when the preceding base character can be joined to.

Mset = 1836279156

Shortcode: mset. Positions Arabic combining marks in fonts for Windows 95 using glyph substitution.

NlcKanjiForms = 1852597099

NLC Kanji Forms. Shortcode: nlck. The National Language Council (NLC) of Japan has defined new glyph shapes for a number of JIS characters in 2000. The 'nlck' feature is used to access those glyphs.

NuktaForms = 1853188980

Nukta Forms. Shortcode: nukt. Produces Nukta forms in Indic scripts.

Numerators = 1853189490

Numerators. Shortcode: numr. Replaces selected figures which precede a slash with numerator figures, and replaces the typographic slash with the fraction slash.

OldstyleFigures = 1869509997

Oldstyle Figures. Shortcode: onum. This feature changes selected figures from the default or lining style to oldstyle form.

OpticalBounds = 1869636196

Optical Bounds. Shortcode: opbd. Aligns glyphs by their apparent left or right extents in horizontal setting, or apparent top or bottom extents in vertical setting, replacing the default behavior of aligning glyphs by their origins. Another name for this behavior would be visual justification. The optical edge of a given glyph is only indirectly related to its advance width or bounding box; this feature provides a means for getting true visual alignment.

OpticalSize = 1936292453

Optical size. Shortcode: size. This feature stores two kinds of information about the optical size of the font: design size (the point size for which the font is optimized) and size range (the range of point sizes which the font can serve well), as well as other information which helps applications use the size range. The design size is useful for determining proper tracking behavior. The size range is useful in families which have fonts covering several ranges. Additional values serve to identify the set of fonts which share related size ranges, and to identify their shared name. Note that sizes refer to nominal final output size, and are independent of viewing magnification or resolution.

Ordinals = 1869767790

Ordinals. Shortcode: ordn. Replaces default alphabetic glyphs with the corresponding ordinal forms for use after figures. One exception to the follows-a-figure rule is the numero character (U+2116), which is actually a ligature substitution, but is best accessed through this feature.

Ornaments = 1869770349

Ornaments. Shortcode: ornm. This is a dual-function feature, which uses two input methods to give the user access to ornament glyphs (e.g. fleurons, dingbats and border elements) in the font. One method replaces the bullet character with a selection from the full set of available ornaments; the other replaces specific "lower ASCII" characters with ornaments assigned to them. The first approach supports the general or browsing user; the second supports the power user.

PetiteCapitals = 1885561200

Petite Capitals. Shortcode: pcap. Some fonts contain an additional size of capital letters, shorter than the regular smallcaps and whimsically referred to as petite caps. Such forms are most likely to be found in designs with a small lowercase x-height, where they better harmonise with lowercase text than the taller smallcaps (for examples of petite caps, see the Emigre type families Mrs Eaves and Filosofia). This feature turns lowercase characters into petite capitals. Forms related to petite capitals, such as specially designed figures, may be included.

PetiteCapitalsFromCapitals = 1664249955

Petite Capitals From Capitals. Shortcode: c2pc. This feature turns capital characters into petite capitals. It is generally used for words which would otherwise be set in all caps, such as acronyms, but which are desired in petite-cap form to avoid disrupting the flow of text. See the 'pcap' feature description for notes on the relationship of caps, smallcaps and petite caps.

PostBaseForms = 1886614630

Post-base Forms. Shortcode: pstf. Substitutes the post-base form of a consonant.

PostBaseSubstitutions = 1886614643

Post-base Substitutions. Shortcode: psts. Substitutes a sequence of a base glyph and post-base glyph, with its ligaturised form.

PreBaseForms = 1886545254

Pre-base Forms. Shortcode: pref. Substitutes the pre-base form of a consonant.

PreBaseSubstitutions = 1886545267

Pre-base Substitutions. Shortcode: pres. Produces the pre-base forms of conjuncts in Indic scripts. It can also be used to substitute the appropriate glyph variant for pre-base vowel signs.

ProportionalAlternateVerticalMetrics = 1987076460

Proportional Alternate Vertical Metrics. Shortcode: vpal. Respaces glyphs designed to be set on full-em heights, fitting them onto individual (more or less proportional) vertical heights. This differs from 'valt' in that it does not substitute new glyphs (GPOS, not GSUB feature). The user may prefer the monospaced form, or may simply want to ensure that the glyph is well-fit.

ProportionalAlternateWidths = 1885432948

Proportional Alternate Widths. Shortcode: palt. Respaces glyphs designed to be set on full-em widths, fitting them onto individual (more or less proportional) horizontal widths. This differs from 'pwid' in that it does not substitute new glyphs (GPOS, not GSUB feature). The user may prefer the monospaced form, or may simply want to ensure that the glyph is well-fit and not rotated in vertical setting (Latin forms designed for proportional spacing would be rotated).

ProportionalFigures = 1886287213

Proportional Figures. Shortcode: pnum. Replaces figure glyphs set on uniform (tabular) widths with corresponding glyphs set on glyph-specific (proportional) widths. Tabular widths will generally be the default, but this cannot be safely assumed. Of course this feature would not be present in monospaced designs.

ProportionalKana = 1886088801

Proportional Kana. Shortcode: pkna. Replaces glyphs, kana and kana-related, set on uniform widths (half or full-width) with proportional glyphs.

ProportionalWidths = 1886873956

Proportional Widths. Shortcode: pwid. Replaces glyphs set on uniform widths (typically full or half-em) with proportionally spaced glyphs. The proportional variants are often used for the Latin characters in CJKV fonts, but may also be used for Kana in Japanese fonts.

QuarterWidths = 1903651172

Quarter Widths. Shortcode: qwid. Replaces glyphs on other widths with glyphs set on widths of one quarter of an em (half an en). The characters involved are normally figures and some forms of punctuation.

RakarForms = 1919644262

Rakar Forms. Shortcode: rkrf. Produces conjoined forms for consonants with rakar in Devanagari and Gujarati scripts.

Randomize = 1918987876

Randomize. Shortcode: rand. In order to emulate the irregularity and variety of handwritten text, this feature allows multiple alternate forms to be used.

RephForm = 1919969382

Reph Form. Shortcode: rphf. Substitutes the Reph form for a consonant and halant sequence.

RequiredContextualAlternates = 1919118452

Required Contextual Alternates. Shortcode: rclt. In specified situations, replaces default glyphs with alternate forms which provide for better joining behavior or other glyph relationships. Especially important in script typefaces which are designed to have some or all of their glyphs join, but applicable also to e.g. variants to improve spacing. This feature is similar to 'calt', but with the difference that it should not be possible to turn off 'rclt' substitutions: they are considered essential to correct layout of the font.

RequiredLigatures = 1919707495

Required Ligatures. Shortcode: rlig. Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers those ligatures, which the script determines as required to be used in normal conditions. This feature is important for some scripts to insure correct glyph formation.

RequiredVariationAlternates = 1920365166

Required Variation Alternates. Shortcode: rvrn. his feature is used in fonts that support OpenType Font Variations in order to select alternate glyphs for particular variation instances.

RightBounds = 1920229988

Right Bounds. Shortcode: rtbd. Aligns glyphs by their apparent right extents at the right ends of horizontal lines of text, replacing the default behavior of aligning glyphs by their origins. This feature is called by the Optical Bounds ('opbd') feature.

RightToLeftAlternates = 1920232545

Right-to-left alternates. Shortcode: rtla. This feature applies glyphic variants (other than mirrored forms) appropriate for right-to-left text. (For mirrored forms, see 'rtlm'.)

RightToLeftMirroredForms = 1920232557

Right-to-left mirrored forms. Shortcode: rtlm. This feature applies mirrored forms appropriate for right-to-left text other than for those characters that would be covered by the character-level mirroring step performed by an OpenType layout engine. (For right-to-left glyph alternates, see 'rtla'.)

RubyNotationForms = 1920295545

Ruby Notation Forms. Shortcode: ruby. Japanese typesetting often uses smaller kana glyphs, generally in superscripted form, to clarify the meaning of kanji which may be unfamiliar to the reader. These are called "ruby", from the old typesetting term for four-point-sized type. This feature identifies glyphs in the font which have been designed for this use, substituting them for the default designs.

ScientificInferiors = 1936289382

Scientific Inferiors. Shortcode: sinf. Replaces lining or oldstyle figures with inferior figures (smaller glyphs which sit lower than the standard baseline, primarily for chemical or mathematical notation). May also replace lowercase characters with alphabetic inferiors.

SimplifiedForms = 1936552044

Simplified Forms. Shortcode: smpl. Replaces "traditional" Chinese or Japanese forms with the corresponding "simplified" forms.

SlashedZero = 2053468783

Slashed Zero. Shortcode: zero. Some fonts contain both a default form of zero, and an alternative form which uses a diagonal slash through the counter. Especially in condensed designs, it can be difficult to distinguish between 0 and O (zero and capital O) in any situation where capitals and lining figures may be arbitrarily mixed. This feature allows the user to change from the default 0 to a slashed form.

SmallCapitals = 1936548720

Small Capitals. Shortcode: smcp. This feature turns lowercase characters into small capitals. This corresponds to the common SC font layout. It is generally used for display lines set in Large and small caps, such as titles. Forms related to small capitals, such as oldstyle figures, may be included.

SmallCapitalsFromCapitals = 1664250723

Small Capitals From Capitals. Shortcode: c2sc. This feature turns capital characters into small capitals. It is generally used for words which would otherwise be set in all caps, such as acronyms, but which are desired in small-cap form to avoid disrupting the flow of text.

StretchingGlyphDecomposition = 1937007464

Stretching Glyph Decomposition. Shortcode: stch. Unicode characters, such as the Syriac Abbreviation Mark (U+070F), that enclose other characters need to be able to stretch in order to dynamically adapt to the width of the enclosed text. This feature defines a decomposition set consisting of an odd number of glyphs which describe the stretching glyph. The odd numbered glyphs in the decomposition are fixed reference points which are distributed evenly from the start to the end of the enclosed text. The even numbered glyphs may be repeated as necessary to fill the space between the fixed glyphs. The first and last glyphs may either be simple glyphs with width at the baseline, or mark glyphs. All other decomposition glyphs should have width, but must be defined as mark glyphs.

StylisticAlternates = 1935764596

Stylistic Alternates. Shortcode: salt. Many fonts contain alternate glyph designs for a purely esthetic effect; these don’t always fit into a clear category like swash or historical. As in the case of swash glyphs, there may be more than one alternate form. This feature replaces the default forms with the stylistic alternates.

Subscript = 1937072755

Subscript. Shortcode: subs. The 'subs' feature may replace a default glyph with a subscript glyph, or it may combine a glyph substitution with positioning adjustments for proper placement.

Superscript = 1937076339

Superscript. Shortcode: sups. Replaces lining or oldstyle figures with superior figures (primarily for footnote indication), and replaces lowercase letters with superior letters (primarily for abbreviated French titles).

Swash = 1937208168

Swash. Shortcode: swsh. This feature replaces default character glyphs with corresponding swash glyphs. Note that there may be more than one swash alternate for a given character.

TabularFigures = 1953396077

Tabular Figures. Shortcode: tnum. Replaces figure glyphs set on proportional widths with corresponding glyphs set on uniform (tabular) widths. Tabular widths will generally be the default, but this cannot be safely assumed. Of course this feature would not be present in monospaced designs.

TerminalForm2 = 1718185522

Terminal Form #2. Shortcode: fin2. Replaces the Alaph glyph at the end of Syriac words with its appropriate form, when the preceding base character cannot be joined to, and that preceding base character is not a Dalath, Rish, or dotless Dalath-Rish.

TerminalForm3 = 1718185523

Terminal Form #3. Shortcode: fin3. Replaces Alaph glyphs at the end of Syriac words when the preceding base character is a Dalath, Rish, or dotless Dalath-Rish.

TerminalForms = 1718185569

Terminal Forms. Shortcode: fina. Replaces glyphs for characters that have applicable joining properties with an alternate form when occurring in a final context.

ThirdWidths = 1953982820

Third Widths. Shortcode: twid. Replaces glyphs on other widths with glyphs set on widths of one third of an em. The characters involved are normally figures and some forms of punctuation.

Titling = 1953068140

Titling. Shortcode: titl. This feature replaces the default glyphs with corresponding forms designed specifically for titling. These may be all-capital and/or larger on the body, and adjusted for viewing at larger sizes.

TraditionalForms = 1953653092

Traditional Forms. Shortcode: trad. Replaces 'simplified' Chinese hanzi or Japanese kanji forms with the corresponding 'traditional' forms.

TraditionalNameForms = 1953390957

Traditional Name Forms. Shortcode: tnam. Replaces "simplified" Japanese kanji forms with the corresponding "traditional" forms. This is equivalent to the Traditional Forms feature, but explicitly limited to the traditional forms considered proper for use in personal names (as many as 205 glyphs in some fonts).

TrailingJamoForms = 1953131887

Trailing Jamo Forms. Shortcode: tjmo. Substitutes the trailing jamo form of a cluster.

Unicase = 1970170211

Unicase. Shortcode: unic. This feature maps upper- and lowercase letters to a mixed set of lowercase and small capital forms, resulting in a single case alphabet (for an example of unicase, see the Emigre type family Filosofia). The letters substituted may vary from font to font, as appropriate to the design. If aligning to the x-height, smallcap glyphs may be substituted, or specially designed unicase forms might be used. Substitutions might also include specially designed figures.

VattuVariants = 1986098293

Vattu Variants. Shortcode: vatu. In an Indic consonant conjunct, substitutes a ligature glyph for a base consonant and a following vattu (below-base) form of a conjoining consonant, or for a half form of a consonant and a following vattu form.

VerticalAlternates = 1986359924

Vertical Alternates. Shortcode: vert. Transforms default glyphs into glyphs that are appropriate for upright presentation in vertical writing mode.While the glyphs for most characters in East Asian writing systems remain upright when set in vertical writing mode, some must be transformed — usually by rotation, shifting, or different component ordering — for vertical writing mode.

VerticalAlternatesAndRotation = 1987212338

Vertical Alternates and Rotation. Shortcode: vrt2. Replaces some fixed-width (half-, third- or quarter-width) or proportional-width glyphs (mostly Latin or katakana) with forms suitable for vertical writing (that is, rotated 90 degrees clockwise). Note that these are a superset of the glyphs covered in the 'vert' table.

VerticalAlternatesForRotation = 1987212402

Vertical Alternates for Rotation. Shortcode: vrtr. Transforms default glyphs into glyphs that are appropriate for sideways presentation in vertical writing mode. While the glyphs for most characters in East Asian writing systems remain upright when set in vertical writing mode, glyphs for other characters — such as those of other scripts or for particular Western-style punctuation — are expected to be presented sideways in vertical writing.

VerticalKanaAlternates = 1986752097

Vertical Kana Alternates. Shortcode: vkna. Replaces standard kana with forms that have been specially designed for only vertical writing. This is a typographic optimization for improved fit and more even color. Also see 'hkna'.

VerticalKerning = 1986753134

Vertical Kerning. Shortcode: vkrn Adjusts amount of space between glyphs, generally to provide optically consistent spacing between glyphs. Although a well-designed typeface has consistent inter-glyph spacing overall, some glyph combinations require adjustment for improved legibility. Besides standard adjustment in the vertical direction, this feature can supply size-dependent kerning data via device tables, "cross-stream" kerning in the X text direction, and adjustment of glyph placement independent of the advance adjustment. Note that this feature may apply to runs of more than two glyphs, and would not be used in monospaced fonts. Also note that this feature applies only to text set vertically.

VowelJamoForms = 1986686319

Vowel Jamo Forms. Shortcode: vjmo. Substitutes the vowel jamo form of a cluster.