デジタルタイポグラフィシステムによって可能になったタイポグラフィ機能は、従来のタイポグラフィを再現するためにコンピュータシステムに課せられた多くの要求を解決し、多くの新機能によって可能性を広げてきました。一般的に使用されているシステムは、MicrosoftとAdobeが考案したOpenType、AppleのApple Advanced Typography(AAT)、そしてSILのGraphiteの3つです。以下のリストは、OpenTypeとAATの機能に関する情報を提供します。Graphiteには固定された機能セットはなく、コンピュータフォントが独自の機能を定義する方法を提供します。
OpenTypeのタイポグラフィック機能
OpenType形式は、特定のフォントがサポートできる様々なタイポグラフィック機能を定義します。Adobe InDesign、LibreOffice / OpenOffice 、 Lua / XeTeXの最新バージョンなどのソフトウェアでは、ユーザーがこれらの機能を制御できます。例えば、装飾的な大文字(スワッシュキャップ)を有効にしたり、数値を範囲指定(フルハイト)と範囲指定なし(オールドスタイル、または小文字)に切り替えたりできます。一部のウェブブラウザは、CSSfont-feature-settings Fonts Module Level 3仕様に準拠したOpenType機能もサポートしており、OpenType機能はプロパティを介して直接設定することも、より高レベルのメカニズムを介して間接的に設定することもできます。
以下の表は、OpenType仕様バージョン1.8.1で定義されている機能の一覧です。「type」列のコードについては、表の後に説明します。OpenType機能は、特定の言語スクリプト、特定の言語、または特定の書字方向にのみ適用される場合があります。これらの機能は、必要に応じて複数の表に分割されています。
南アジアのアルファベット音節文字(インド語/ブラーフミー語)を主目的とする、または南アジアのアルファベット音節文字でのみ必要とされる機能
| 長い名前 | タグ | タイプ | 説明 |
|---|
| ベース上フォーム | abvf | S1 | 母音記号の基底より上の部分を置き換えます。クメール語および類似の文字体系で使用します。 |
| ベースマークの配置 | abvm | P4,5 | マーク グリフをベース グリフの上に配置します。 |
| 塩基置換 | abvs | S4 | 子音を上の記号と連結します。 |
| ベース下フォーム | blwf | S4 | ハラント+子音の組み合わせを下付き文字に置き換えます。 |
| ベース下マークの配置 | blwm | P4,5 | マークグリフをベースグリフの下に配置します |
| 塩基以下の置換 | blws | S4 | 子音を下の記号で連結します。 |
| プレベースフォーム | pref | S4 [議論あり–議論] | 子音連結の末尾のハラント+子音を、先頭のグリフに置き換えます。クメール語、ミャンマー語、マラヤーラム語、テルグ語 |
| 塩基置換前 | pres | S4,5 | 子音の組み合わせを連結します。 |
| 塩基後置換 | psts | S4 | 最後の子音と子音を連結します。 |
| ポストベースフォーム | pstf | S4 | 末尾のハラント+子音を特殊形に置き換えます。クメール語、グルムキー語、マラヤーラム語 |
| 距離 | dist | P2 | グリフ間の水平位置を調整します。(「kern」とは異なり、常に有効です。) |
| アカンド | akhn | S4 | ヒンディー語で「壊れない」という意味。子音+ハラント+子音を連結します。通常は k-ss と j-ny の組み合わせのみに使用します。 |
| ハラントフォーム | haln | S4 | 末尾の子音+ halantのグリフを置き換えます。 |
| ハーフフォーム | half | S4 | 子音 + ハラント を半音形式で置き換え、それが接続詞の一部であることを示します。 |
| ヌクタフォーム | nukt | S4 | 子音+ nukta (ドットマーク) を単一のグリフに置き換えます。 |
| ラカールフォーム | rkrf | S4 | halant+ra をrakarグリフに置き換えて、それが接続詞の一部であることを示します。 |
| Rephフォーム | rphf | S4 | 最初の ra+halant を、接続詞の一部であることを示す
最後のreph記号に置き換えます。 |
| ヴァットゥの変種 | vatu | S4 | 子音+rakar の組み合わせをvattu異形合字に置き換えます。 |
| 接続詞 | cjct | S4 | 子音+ハラント+子音を連結し、接続詞の一部を示します。 |
| Roの後の接続形 | cfar | S1 | クメール語 |
東アジアのテトラグラム(中国語、日本語、韓国語)を主な対象とする、または東アジアのテトラグラムでのみ必要な機能
| 長い名前 | タグ | タイプ | 説明 |
|---|
| 簡略化されたフォーム | smpl | S1 | サイノグラムを簡略版に置き換えます。言語に依存する可能性があります。 |
| 伝統的な形式 | trad | S1,3 | 中国語の文字を繁体字
に置き換えます |
| 伝統的な名前の形式 | tnam | S1 | 固有名詞の代替表現 |
| エキスパートフォーム | expt | S1 | いくつかの日本語テトラグラムの代替表記 |
| 方丈漢字フォーム | hojo | | 方丈記は日本語の四字熟語の代わりになる |
| NLC漢字フォーム | nlck | | NLCは日本語の四文字表記の代替となる |
| JIS 78フォーム | jp78 | S1,3 | JIS C 6226-1978は日本語のテトラグラムの代替であり、Unicodeではアクセスできない。 |
| JIS 83フォーム | jp83 | S1 | JIS X 0208-1983 は日本語のテトラグラムの代替であり、Unicode ではアクセスできない |
| JIS 90フォーム | jp90 | S1 | JIS X 0208-1990 は日本語のテトラグラムの代替であり、Unicode ではアクセスできない |
| JIS 04 フォーム | jp04 | | JIS 2004 は日本語のテトラグラムの代替文字であり、Unicode ではアクセスできません。 |
| ハングル | hngl | S1,3 | 中国語の文字を韓国語のハングルに翻訳します |
| 主要なJamoフォーム | ljmo | S4 | 合成された韓国語ハングル四文字の最初の子音グループ |
| 末尾の字母形 | tjmo | S4 | 合成された韓国語ハングルテトラグラムの最後の子音グループ |
| 母音字母 | vjmo | S4 | 合成された韓国語ハングル四文字の母音の中間グループ |
| 全幅 | fwid | S1 | プロポーショナル文字を全角バージョンに置き換えます(特に中国語内のラテン文字の場合) |
| 半角 | hwid | S1、P1 | 等間隔の文字を半角バージョンに置き換えます |
| 交互の半角文字 | halt | P1 | 全角グリフを半角スペースに再配置します |
| 3番目の幅 | twid | S1、P1 | 等間隔の文字を 1/3 幅のバージョンに置き換えます (句読点など) |
| 1/4幅 | qwid | S1 | 等間隔のグリフを四分の一幅のグリフに置き換えます(句読点など) |
| 比例幅 | pwid | S1 | 等間隔のグリフを比例したグリフに置き換えます |
| 比例交代 | palt | P1 | 等幅文字をグリフ幅に応じて再配置します |
| 比例かな | pkna | S1 | グリッドタイポグラフィなしでアルファベットと一緒に使用する仮名 |
| Ruby記法の形式 | ruby | S1 | ルビ文字、小さな文字 |
| 横書きかな交互表記 | hkna | S1 | 横書き仮名文字の代替形式。例:長音符の|の代わりにーを使用する。cf.vkna |
| 縦書きかな | vkna | S1 | 縦書き用の代替日本語仮名表記。例:ちょうおんぷの場合はーの代わりに|を使用します。cf.hkna |
| 中央揃えのCJK句読点 | cpct | P1 | 句読点を垂直方向と水平方向に配置する |
西アジア(セム語、アラビア語)およびその他の筆記体やフォントを主に対象とした、またはそれらにのみ必要な機能
| 長い名前 | タグ | タイプ | 説明 |
|---|
| 筆記体の配置 | curs | P3 | 文字と隣接する文字の接続の正確な位置 |
| 正当化の代替 | jalt | S3 | ユーザーが選択できる幅の広い代替と狭い代替。特に両端揃えに使用されます。 |
| 交代によるマークの位置 | mset | シーズン5 | Windows 95でアラビア数字の位置を指定するために使用 |
| 必要な文脈的代替 | rclt | シーズン6 | 文脈に応じた代替文字は、他の文字のデフォルトの結合とは異なる正しいテキスト表示に必要であり、アラビア語では特に重要です。 |
| 必要な合字 | rlig | S3 | テキストを正しく表示するために必要な合字(任意のスクリプト、ただし筆記体) |
| 孤立した形態 | isol | S1 | 単語の外側にある文字の特殊な形を代用します(アラビア語とシリア語で必須) |
| 初期フォーム | init | S1 | 単語の先頭にある文字の特殊な形式を置き換えます(アラビア語とシリア語で必須) |
| 中間形態 | medi | S1 | 単語内の他の文字の間に特殊な形式の文字を置き換えます(アラビア語とシリア語で必須) |
| 内側フォーム #2 | med2 | シーズン5 | シリア語 |
| 端末フォーム | fina | S1 | 単語の末尾の文字を特別な形式で置き換えます(アラビア語とシリア語で必須) |
| 端末フォーム #2 | fin2 | シーズン5 | シリア語 |
| 端末フォーム #3 | fin3 | シーズン5 | シリア語 |
| 行末のグリフの代替 | falt | S3 | 行の最後のグリフを別のグリフに置き換えます |
| 伸縮グリフ分解 | stch | シーズン2 | 1 つ以上の文字に特殊な形式の伸縮性のあるグリフを代用します (シリア語で必須) |
二分法(大文字・小文字)のアルファベット(ラテン文字、ギリシャ文字、キリル文字など)向けの機能
| 長い名前 | タグ | タイプ | 説明 |
|---|
| スモールキャップ | smcp | S1 | 小文字を小文字に
置き換えます |
| 大文字から小文字へ | c2sc | S1 | 大文字を小文字に置き換えます |
| プチキャップ | pcap | S1 | 小文字を大文字に置き換えます |
| 大文字から小文字へ | c2pc | S1 | 大文字を小文字に置き換えます |
| ユニケース | unic | S1 | 小文字と大文字を単一の文字セットに置き換えます |
| 首都の間隔 | cpsp | P1 | 大文字のテキストの文字間隔を調整します |
| 大文字と小文字を区別するフォーム | case | P1 | 文字、特に句読点をすべて大文字のテキストに適した形式に置き換えます。titl |
| イタリック体 | ital | S1 | 文字を対応するイタリック体
の文字に置き換えます |
| 序数 | ordn | S6,4 | 数字の後に使用するために文字を序数に置き換えます |
筆記方向に応じた機能
| 長い名前 | タグ | タイプ | 説明 |
|---|
| 代替垂直指標 | valt | P1 | 短い文字をフルハイトの文字の垂直方向の中央に配置する |
| 代替垂直ハーフメトリック | vhal | P1 | 文字を半分の高さで垂直方向に中央揃えに配置します |
| 比例交互垂直メトリック | vpal | P1 | プロポーショナルなフルハイト文字の中央にグリフを垂直方向に再配置します |
| 垂直交互 | vert | S1 | のサブセットvrt2: 後者の機能を優先する |
| 垂直交互運動と回転 | vrt2 | S1 | 文字を縦書きに適した形式に置き換えます(90°回転させることも可能)。 |
| 回転のための垂直交互配置 | vrtr | S1 | 文字を縦書きに適した形に置き換える(シフトや形状変更など) |
| 垂直カーニング | vkrn | P2,8 | 形状に基づいて文字の垂直方向の配置を細かく調整 |
| 左から右へのグリフの交互表示 | ltra | S1 | 文字を左から右への表示に適した形式に置き換えます(鏡像形式を除く) |
| 左から右への鏡像フォーム | ltrm | S1 | 文字を左から右への表示に適した鏡像の形式で置き換えます |
| 右から左へのグリフの交互表示 | rtla | S1 | 文字を右から左への表示に適した形式に置き換えます(鏡像形式を除く) |
| 右から左への反転形式 | rtlm | S1 | 文字を、右から左への表示に適した反転形式で置き換えます。 |
数字と数学のための機能
| 長い名前 | タグ | タイプ | 説明 |
|---|
| ライニングフィギュア | lnum | S1 | 数字を大文字のテキストに合うように文字に置き換えます。tnum |
| オールドスタイルフィギュア | onum | S1 | 数字を旧式の大文字数字に置き換え、多くの場合、pnum |
| 比例数字 | pnum | S1 | 数字を比例幅のグリフに置き換えます。onum |
| 表形式の図 | tnum | S1 | 数字を均一な幅のグリフに置き換えます。lnum |
| 分数 | frac | S4 | スラッシュで区切られた数字を斜線分数に変換します |
| 代替分数 | afrc | S4 | スラッシュで区切られた数字を、代替の積み重ね分数形式に変換します。 |
| 分母 | dnom | S1 | 適切な分数分母形式に変換します。frac |
| 分子 | numr | S1 | 適切な分数分子形式に変換します。frac |
| 科学的に劣る者たち | sinf | S1 | 「H 2 O」、「SO x」、「YC b C r 」のように(ただし、これらのプレーンなHTMLサブとスーパーとは異なり、同じフォントの太さと定義済みの位置を使用します) |
| ゼロを削減 | zero | S1 | 0の数字を斜線付きの0に置き換えます |
| 数学ギリシャ語 | mgrk | S1 | ギリシャ文字を数学で使用するための特殊な形式に置き換えます |
| 平坦化されたアクセント形式 | flac | | この機能は、数式のレイアウト中に個々のグリフに適用されます。 |
| ドットレスフォーム | dtls | | 点のない形式は、その上に数学的なアクセントを配置するための基本形式として使用されます。 |
| 数式スクリプトスタイルの代替 | ssty | | この機能には、スクリプトレベルを示すパラメータを指定できます。1 は単純な下付き文字と上付き文字、2 は第 2 レベルの下付き文字と上付き文字(つまり、スクリプト上のスクリプト)などです。(現在は最初の 2 つの代替文字のみが使用されます。)この機能でカバーされていないグリフについては、下付き文字と上付き文字には元のグリフが使用されます。 |
| 長い名前 | タグ | タイプ | 説明 |
|---|
| すべての代替にアクセス | aalt | S1,3 | 特別な機能: ユーザーに文字の代替形式をすべて選択肢として提示するために使用されます |
| スワッシュ | swsh | S1,3 | 文字を置き換えるか、複数のスワッシュバージョン
を表示します。 |
| コンテキストスワッシュ | cswh | S8 | 文字の周囲の文字に基づいて文字をスワッシュバージョンに変換します |
| 文脈的代替 | calt | シーズン6 | 周囲のパターンのコンテキスト内での文字パターンの一致に基づいて、2番目の置換機能を適用します。 |
| 歴史的形態 | hist | S1 | ユーザーの裁量で適用される廃止された文字形式。cf.hlig |
| ローカライズされたフォーム | locl | S1 | スクリプト言語に基づいて文字を優先形式に置き換えます |
| ランダム化 | rand | S3 | 文字をランダムな形式で置き換えます(手書きをシミュレートすることを目的としています) |
| 代替注釈形式 | nalt | S1,3 | 丸で囲まれた数字、反転された文字などにユーザーがアクセスできるようにします。 |
| キャラクターバリアント1~99 | cv01– cv99 | S3 | 1つの文字に複数のバリエーションがあり、他の多くの文字には適用されない可能性があります。膨大なドキュメントについては参考文献を参照してください。 |
| 文体の代替 | salt | S1,3 | 文字のスタイル上の代替文字を置き換えるか、代替文字の一覧を表示します。 |
| スタイルセット 1 – 20 | ss01- ss20 | S1 | 文字をフォント固有のスタイルの選択肢から 1 つに置き換えます |
| 添字 | subs | S1 | 文字を下付き文字バージョンに置き換えます。cf.numr |
| 上付き文字 | sups | S1 | 文字を上付き文字に置き換えます。cf.dnom |
| タイトル代替 | titl | S1 | タイトルなどの大きな文字に適した形式で文字を置き換えます |
| 必要なバリエーションの代替 | rvrn | S1 | 可変フォントに必要な、特定のフォントバリエーションに適用する必要がある単一文字の特別なバリエーション |
| 文脈合字 | clig | S8 | 周囲のパターンのコンテキスト内での文字パターンの一致に基づいて、2番目の合字機能を適用します。 |
| 任意の合字 | dlig | S4 | ユーザーの裁量で適用される合字 |
| 歴史的な合字 | hlig | S1 | 廃止された合字はユーザーの裁量で適用されます |
| 標準合字 | liga | S4 | 文字列を単一の合字グリフに置き換えます(デフォルト)。 |
すべてのスクリプトを対象とした位置決め機能
| 長い名前 | タグ | タイプ | 説明 |
|---|
| グリフの合成/分解 | ccmp | S4,2 | 文字列の合字置換を呼び出すか、文字をグリフの文字列に置き換えます。例えば、入力文字の順序を効果的に変更できるロジックを提供します。 |
| カーニング | kern | P2,8 | グリフの形状に基づいて、グリフ間の水平方向の微調整 |
| マークの位置 | mark | P4,5 | マークグリフを基本文字に細かく配置する |
| マーク間の位置決め | mkmk | P6 | マークグリフを別のマーク文字に細かく配置する |
| 光学的境界 | opbd | P1 | テキストを正確に配置するために、行の先頭と末尾のグリフの位置を変更します。 |
| 左境界 | lfbd | P1 | 行末のグリフの位置を変更します。 によって呼び出されますopbd。 |
| 右境界 | rtbd | P1 | 行の先頭のグリフの位置を変更します。 によって呼び出されますopbd。 |
すべてのスクリプトを対象とした特別な機能
| 長い名前 | タグ | タイプ | 説明 |
|---|
| 光学サイズ | size | | ルックアップではありません: 機能のテーブルは、フォントの選択を支援するために、フォントの外観と意図に関する情報をアプリケーションに提供します。 |
| 装飾品 | ornm | S3,1 | 箇条書き文字の装飾的な代替文字 • |
置換コードと位置コードの凡例
以下に、上記の表の「タイプ」列で使用されているOpenTypeルックアップテーブルのタイプを示します。Sは置換、Pは位置指定を表します。1つの機能が複数のタイプのテーブルで実装される場合があり、仕様書でテーブルタイプが明示的に示されていない場合もあることに注意してください。
| 略称。 | タイプ | 説明 |
|---|
| S1 | GSUB 1 | あるグリフを別のグリフに単純に置き換える |
| シーズン2 | GSUB 2 | 1つの文字を複数のグリフに置き換える |
| S3 | GSUB 3 | 変異体選択 |
| S4 | GSUB 4 | 合字 |
| シーズン5 | GSUB 5 | 文脈的置換 |
| シーズン6 | GSUB 6 | 連鎖的な文脈置換 |
| S7 | GSUB 7 | 64KBを超えるGSUBテーブルの拡張 |
| S8 | GSUB 8 | 逆連鎖文脈置換 |
| P1 | GPOS 1 | 単一グリフの配置 |
| P2 | GPOS 2 | グリフのペアの配置 |
| P3 | GPOS 3 | 筆記体の添付 |
| P4 | GPOS 4 | ベースに対するマークグリフの配置 |
| P5 | GPOS 5 | 合字に対するマークグリフの配置 |
| P6 | GPOS 6 | マークグリフを他のマークグリフに対して相対的に配置 |
| P7 | GPOS 7 | 文脈的ポジショニング |
| P8 | GPOS 8 | 拡張された文脈的ポジショニング |
| P9 | GPOS 9 | 64KBを超えるGPOSテーブルの拡張 |
AATのタイポグラフィ機能
1 つの値をとり、他の値とは相互に排他的な機能:
- 注釈
nalt- 注釈なし
- ボックス注釈
- 角丸ボックス注釈
- 円注釈
- 逆円注釈
- 括弧注釈
- 期間注釈
- ローマ数字注釈
- ダイヤモンド注釈
- キャラクターの代替
- 代替なし
- ...
rand; aalt, calt, falt, jalt, salt, ssXX, hkna/vkna, rtla, vrt2
- 文字の形状
half, ruby; ljmo, vjmo, tjmo- 伝統的な文字
trad - 簡体字
smpl - JIS 1978文字
jp78 - JIS 1983文字
jp83 - JIS 1990文字
jp90 - 繁体字、代替セット 1...5
tnam, hojo, nlck - エキスパートキャラクター
expt, locl
- CJKラテン文字間隔
- 半角
hwid, halt - 比例
pwid, palt - デフォルトのラテン語
- 全角ラテン文字
fwid
- 筆記体のつながり
init, medi/med2, fina/fin2/fin3; haln, nukt, vatu, rphf, pres, pstf/psts- 接続されていない
isol - 部分的に接続
calt, clig - 筆記体
curs
- 設計の複雑さ
- 発音区別符号
- 発音区別記号を表示
- 発音区別記号を非表示
- 発音区別符号を分解する
ccmp
- 分数
- 分数なし
- 縦書きの分数
afrc - 対角分数
frac, dnom, numr
- 表意文字の間隔
- かな間隔
- 文字ケース
case- 大文字と小文字
- すべて大文字
- すべて小文字
- スモールキャップ
smcp, pcap - 初期キャップ
c2sc, c2pc - 頭文字大文字と小文字大文字
- 数字ケース
- 数字の間隔
- オーナメントセット
ornm- なし
- ディンバット
- 円周率の文字
- フルロン
- 装飾的なボーダー
- 国際シンボル
- 数学記号
mgrk
- テキスト間隔
- 比例
pwid, palt - 等幅フォント
fwid - 半角
hwid, halt - 普通
- 垂直位置
- 垂直位置なし
- 上司
supr - 劣等者たち
subs, sinf - 序数
ordn
いくつかの値を取る機能:
- 合字
- 必要な合字
rlig, clig - 一般的な合字
liga - 珍しい合字
hlig, dlig - ロゴ
- リバス・ピクチャーズ
- 二重母音合字
- 角付き合字
- 角付き合字(省略形)
- 数学的追加事項
- ハイフンからマイナス('-' → '−')
- アスタリスクで乗算する('*' → '×')
- スラッシュで割り算 ('/' → '÷')
- 不等号合字
- 指数
- スマートスワッシュ
swsh, cswh- 単語の頭文字のスワッシュ
- 単語の末尾のスワッシュ
- 線の最初のスワッシュ
- 行末スワッシュ
falt - 非最終スワッシュ
jalt
- スタイルオプション
- スタイルオプションなし
- 表示テキスト
size - 刻印されたテキスト
- 光るキャップ
- タイトルキャップ
titl - トールキャップ
- 翻字
locl - タイポグラフィの追加機能
- ハイフンからエムダッシュへ('--' → '—')
- ハイフンからエンダッシュへ('-' → '–')
- スラッシュなしのゼロ
zero - 疑問詞を形成する(「!?」/「?!」→「‽」)
- スマートクォート ('"'"' → '“'”')
- ピリオドを省略記号に変更 ('...' → '…')
オンにできるバイナリ機能:
- すべてのタイポグラフィック機能
- 言語の再配置
- 重複する文字
- 垂直置換
外部リンク
- 「レイアウトタグレジストリ」、OpenType仕様、Microsoft、2021年12月9日
- 「フォント機能レジストリ」、フォント、Apple– AATレイアウトタグの仕様
- Adobe Fonts の OpenType ユーザーガイド(PDF)、Adobe
- OpenType置換機能の紹介、タイポグラフィーが大好きです