タイポグラフィ機能一覧

デジタルタイポグラフィシステムによって実現されたタイポグラフィ機能（Typographic Features）は、従来のタイポグラフィをコンピュータシステムで再現するために必要なニーズに応え、さらにその拡張によってデジタルタイポグラフィの可能性を広げた。

一般的に使用されているシステムには、マイクロソフトとアドビによって開発されたOpenType、AppleのApple Advanced Typography（AAT）、および国際SILのGraphiteの3つがある。以下の一覧は、OpenTypeとAATの機能に関する情報を提供する。Graphiteには固定されたタイポグラフィ機能の定義はなく、代わりにフォントが独自の機能を定義できる仕組みを提供している。

 OpenType タイポグラフィ機能 
OpenTypeフォーマットは、特定のフォントがサポートする可能性のあるさまざまなタイポグラフィ機能を定義している。Adobe InDesignやLibreOffice/OpenOffice、Lua/XeTeXの最近のバージョンなどの一部のソフトウェアでは、これらの機能をユーザーが操作できるようになっており、例えば装飾的なデザインが施された文字のバリエーション（Swash / スワッシュ）を有効にしたり、高さの揃った数字（Ranging digits / レンジング数字、あるいは Lining Figures / ライニングフィギュア）とレンジングされていない、オールドスタイルフィギュア（Old-Style Figures）の数字を選択したりすることができる。

また、主要なウェブブラウザもOpenType機能をサポートしており、font-variantやfont-feature-settingsプロパティなどを使用してOpenType機能を設定ことが可能である。

以下の表は、OpenType仕様のバージョン1.8.1で定義されている機能を一覧にしている。「タイプ」欄のコードについては、表の後で説明している。OpenTypeの機能は、特定の言語スクリプトや特定の言語、または特定の書字モードにのみ適用される場合がある。そのため、機能はそれに応じていくつかの表に分けられている。

 主に南アジアの書体（インド系文字/ブラーフミー系文字）向け機能 
（この表は翻訳途中です）
正式名タグタイプ説明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 glyphBelow-base SubstitutionsblwsS4Ligates a consonant with a below-mark.Pre-base FormsprefS4 Replaces halant+consonant at the end of a consonant cluster with a glyph at the beginning. Khmer, Myanmar, Malayalam, TeluguPre-base SubstitutionspresS4,5Ligates consonant combinations.Post-base SubstitutionspstsS4Ligates a final consonant+consonant.Post-base FormspstfS4Substitutes final halant+consonant with special form. Khmer and Gurmukhi, MalayalamDistancedistP2Adjusts 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

 主に東アジアの書体（中国語、日本語、韓国語）向け機能 
正式名タグタイプ説明Simplified FormssmplS1簡略化した字形（簡体字）への置き換えを有効にするTraditional FormstradS1,3中国語簡体字または日本語の漢字において、旧字体への置き換えを有効にするTraditional Name FormstnamS1均等な幅（等幅）の字形への置き換えを有効にするExpert FormsexptS1エキスパート字形への置き換えを有効にするHojo Kanji Formshojo補助漢字を含む字形への置き換えを有効にするNLC Kanji Formsnlck印刷標準字体への置き換えを有効にするJIS 78 Formsjp78S1,3JIS C 6226-1978（JIS78）規格の日本語字形への置き換えを有効にするJIS 83 Formsjp83S1JIS X 0208-1983（JIS83）規格の日本語字形への置き換えを有効にするJIS 90 Formsjp90S1JIS X 0208-1990（JIS90）規格の日本語字形への置き換えを有効にするJIS 04 Formsjp04JIS2004 規格の日本語字形への置き換えを有効にするHangulhnglS1,3韓国語における漢字をハングル文字に置き換える機能を有効にするLeading Jamo FormsljmoS4韓国語の字体における「Leading Jamo」を有効にするTrailing Jamo FormstjmoS4韓国語の字体における「Trailing Jamo」を有効にするVowel Jamo FormsvjmoS4韓国語の字体における「Vowel Jamo」を有効にするFull WidthsfwidS1等幅全角字形（全角）への置き換えを有効にするHalf WidthshwidS1,P1等幅半角字形（半角）への置き換えを有効にするAlternate Half WidthshaltP1字幅半角メトリクスを有効にするThird WidthstwidS1,P1等幅三分字形への置き換えを有効にするQuarter WidthsqwidS1等幅四分字形への置き換えを有効にするProportional WidthspwidS1プロポーショナル字形への置き換えを有効にするProportional AlternatespaltP1プロポーショナルメトリクスを有効にするProportional KanapknaS1「かな」および「かな」関連の字形セットにおいて、プロポーショナル字形への置き換えを有効にするRuby Notation FormsrubyS1ルビ用字形を有効にするHorizontal Kana AlternateshknaS1標準のかなを、横書き専用にデザインされた字形に置き換えるVertical KanavknaS1標準のかなを、縦書き専用にデザインされた字形に置き換えるCentered CJK PunctuationcpctP1句読点やカンマ、ピリオドなどの約物（句読点）を、日本語や中国語などの縦書き、横書きにおいて中央に配置する、「中央配置CJK句読点」を有効にする

 主に西アジア（セム系文字、アラビア語）や他の筆記体向けの機能 
（この表は翻訳途中です）
正式名タグタイプ説明Cursive PositioningcursP3Precise positioning of a letter's connection to an adjacent oneJustification AlternatesjaltS3User selectable wider and narrower alternates, used especially for justifyingMark Positioning via SubstitutionmsetS5Used in Windows 95 for positioning of Arabic marksRequired Contextual AlternatesrcltS6Contextual alternates required for correct text display which differs from the default join for other letters, required especially important by ArabicRequired 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 #2med2S5SyriacTerminal FormsfinaS1Substitutes a special form of a letter at end of words (required by Arabic and Syriac)Terminal Form #2fin2S5SyriacTerminal Form #3fin3S5SyriacFinal Glyph on Line AlternatesfaltS3Replaces final glyph on the line with an alternateStretching Glyph DecompositionstchS2Substitutes a special form of a stretchy glyph onto one or more letters (required by Syriac)

 大小の2つの字形を持つアルファベット（ラテン文字、ギリシャ文字、キリル文字など）向けの機能 
正式名タグタイプ説明Small CapssmcpS1小文字をスモールキャップスに置き換えるCapitals to Small Capsc2scS1大文字をスモールキャップスに置き換えるPetite CapspcapS1小文字をプチキャップスに置き換えるCapitals to Petite Capsc2pcS1大文字をプチキャップスに置き換えるUnicaseunicS1ユニケースに置き換えるCapital SpacingcpspP1大文字同士の間隔を調整するための機能を有効にするCase Sensitive FormscaseP1大文字専用の記号や約物のデザイン調整を行う機能を有効にするItalicsitalS1欧文字形を対応するイタリック字形に置き換えるOrdinalsordnS6,4アルファベット字形を対応する上付き序数表記に置き換える

 書字方向に依存する機能 
（この表は一部翻訳途中です）
正式名タグタイプ説明Alternative Vertical MetricsvaltP1Positions shorter characters to be centered vertically with full-height charactersAlternative Vertical Half MetricsvhalP1縦組み字幅半角メトリクスを有効にするProportional Alternate Vertical MetricsvpalP1縦組みプロポーショナルメトリクスを有効にするVertical AlternatesvertS1縦書きモードの場合に縦書き用に調整された字形に置き換える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 shapeVertical KerningvkrnP2,8縦組みペアカーニングを有効にする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 presentationRight-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

 数字や数学記号向けの機能 
（この表は一部翻訳途中です）
正式名タグタイプ説明Lining FigureslnumS1数値字形をライニング数字に置き換えるOldstyle FiguresonumS1数値字形をオールドスタイル数字に置き換えるProportional FigurespnumS1均等な幅（等幅）の数値字形セットを、対応するプロポーショナルな幅の字形セットに置き換えるTabular FigurestnumS1プロポーショナルな幅の数値字形セットを、対応する均等な幅（等幅）の字形セットに置き換えるFractionsfracS4スラッシュで区切られた数字を斜線による分数に置き換えるAlternative FractionsafrcS4Converts figures separated by slash with alternative stacked fraction formDenominatordnomS1Converts to appropriate fraction denominator form, invoked by fracNumeratornumrS1Converts to appropriate fraction numerator form, invoked by fracScientific 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 0Mathematical GreekmgrkS1Replaces Greek characters with special forms for use in mathematicsFlattened 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.

 全文字体系向けのリガチャ、および代替字形の機能 
（この表は一部翻訳途中です）
正式名タグタイプ説明Access All AlternatesaaltS1,3Special feature: used to present user with choice all alternate forms of the characterSwashswshS1,3スワッシュ字形に置き換えるContextual SwashcswhS8Converts letter to a swashed version based on characters around the letterContextual AlternatescaltS6Applies a second substitution feature based on a match of a character pattern within a context of surrounding patternsHistorical FormshistS1Obsolete forms of characters to be applied at the user's discretion, cf. hligLocalized FormsloclS1ローカライズされた字形で置き換える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–cv99S3Multiple variants of a single character, which may not apply to many other characters, see references for voluminous documentationStylistic AlternatessaltS1,3装飾的な代替字形に置き換えるStylistic Set 1 – 20ss01-ss20S1Replaces character with one from a font-specific set of stylistic alternativesSubscriptsubsS1下付き文字に置き換えるSuperscriptsupsS1上付き文字に置き換えるTitling AlternatestitlS1Replaces characters with forms suited for large type, as in titlesRequired Variation AlternatesrvrnS1Special variants of a single character, which need apply to specific font variation, required by variable fontsContextual LigaturescligS8Applies a second ligature feature based on a match of a character pattern within a context of surrounding patternsDiscretionary LigaturesdligS4装飾的な効果を目的とする場合や特定のデザインに合わせて使用するリガチャ（合字）を有効にするHistorical LigatureshligS1Obsolete ligatures to be applied at the user's discretionStandard LigaturesligaS4Replaces (by default) sequence of characters with a single ligature glyph

 全文字体系向けの配置機能 
（この表は一部翻訳途中です）
正式名タグタイプ説明Glyph Composition/DecompositionccmpS4,2字体組版や分解を有効にするKerningkernP2,8カーニング（字形間のスペース調整）を有効にするMark PositioningmarkP4,5Fine positioning of a mark glyph to a base characterMark-to-mark PositioningmkmkP6Fine positioning of a mark glyph to another mark characterOptical 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.

 全文字体系向けの特殊機能 
正式名タグタイプ説明Optical sizesizeオプティカルサイズを有効にするOrnamentsornmS3,1装飾的な図形や記号を提供する機能（オーナメント）を有効にする

 置換および配置コードの凡例 
以下は、上記の表で「タイプ」列に使用されているOpenTypeのルックアップテーブルについて説明する。Sは置換を、Pは配置を表す。多くの場合、1つの機能が複数の種類のテーブルで実装できること、そして仕様によってはテーブルの種類が明示されていないことがある点に注意が必要である。
タイプ表記正式なタイプ名説明S1GSUB 1単一の字形を別の字形に単純に置換S2GSUB 21つの文字を複数の字形に置換S3GSUB 3バリアント（異体字）の選択S4GSUB 4リガチャ（合字）S5GSUB 5コンテキスト（文脈）に応じた置換S6GSUB 6連鎖コンテキスト置換S7GSUB 764kBを超えるGSUBテーブルの拡張S8GSUB 8逆連鎖コンテキスト置換P1GPOS 1単一の字形の位置調整P2GPOS 2ペアの字形の位置調整P3GPOS 3筆記体の接続（文字がつながって見えるような位置調整）P4GPOS 4基本字形に対するマーク字形（発音記号など）の位置調整P5GPOS 5リガチャに対するマーク字形の位置調整P6GPOS 6別のマーク字形に対するマーク字形の位置調整P7GPOS 7コンテキストに応じた位置調整P8GPOS 8拡張されたコンテキスト位置調整P9GPOS 964kBを超えるGPOSテーブルの拡張

 AAT タイポグラフィ機能 
他の値と相互排他的に1つの値を取る機能：

 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