[32] 
[[表]]や[[用字系]]や[[機能][フォント機能]]などの識別には[[タグ]]が使われています。
[DFN[[RUBYB[タグ][tag]]][OpenTypeタグ]]は4文字の[[ASCII文字]]です。

* 仕様書

[REFS[

-
[56] 
[CITE@ja-jp[OpenType font file (OpenType 1.9) - Typography | [[Microsoft]] Docs]], [[PeterCon]], [TIME[2022-08-28T12:01:47.000Z]] <https://docs.microsoft.com/ja-jp/typography/opentype/spec/otff#dt_Tag>
- 
[1] 
[CITE@en-us[[[OpenType Layout tag registry]] (OpenType 1.9.1) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2024-05-31T17:42:20.000Z]], [TIME[2024-12-03T06:28:20.372Z]] <https://learn.microsoft.com/en-us/typography/opentype/spec/ttoreg>
-
[6] 
[CITE@en-us[Language system tags (OpenType 1.9.1) - Typography | [[Microsoft Learn]]]], [[PeterCon]], [TIME[2024-07-07T00:58:54.000Z]], [TIME[2024-12-03T07:38:18.913Z]] <https://learn.microsoft.com/en-us/typography/opentype/spec/languagetags>
-
[9] 
[CITE@en-us[Feature tags (OpenType 1.9.1) - Typography | [[Microsoft Learn]]]], [[PeterCon]], [TIME[2024-05-31T17:42:30.000Z]], [TIME[2024-12-03T12:34:07.957Z]] <https://learn.microsoft.com/en-us/typography/opentype/spec/featuretags>


]REFS]

* 構文

[57] 
[[データ型]]としての [DFN[[CODE[Tag]]]] は、
[CODE[uint8]] 
の4つの[[配列]]です。
[ [N[0x20]], [N[0x7E]] ]
で 
[[UTF-8]]
の[[バイト]]と解釈されます。
[SRC[>>56]]

[58] 
[[タグ]]の [N[0x20]] [CODE(charname)@en[SPACE]] は末尾でのみ使えます。
最大3文字で、最初の1文字は [N[0x20]] 以外でなければなりません。
[SRC[>>56]]

[37] 
こういう[[プロトコル要素]]では[[記号]]類は敬遠されがちですが、
[[TrueType]] / [[OpenType]] ではそういう[[忌避]]はないみたいで、
[CODE[OS/2]] [[表]]のように [CODE[/]] が入っていたり、
[CODE[CFF ]] [[表]]のように [CODE[ ][SP]] が入っていたりします。

[39] 
[[大文字・小文字を区別する]]上に、[[大文字]]・[[小文字]]のどちらも使われています。
パッと見た感じ[[大文字]]と[[小文字]]の区別だけで使い分けられているものはまだ無いみたいですが。

;; [38] お陰で[[変数名]]にしたいときに困ります。

[101] 
[[大文字]]は[[私用]] ([[カスタムタグ]]) のために割り振られていることもありますが、
[[タグ]]ごとに状況が違います。(各項参照。 [SEE[ [[フォント機能]] ]])

;; [8] 
[[私用]]が認められていないものもあります。
[[表][表 (OpenType)]]のタグのように、
[[TrueType]] では[[私用]]だったのが [[OpenType]] では[[私用]]でなくなったものもあります。



[4] 
[CITE[OpenType]] 仕様書の文面上では、
[[小文字]]や[[数字]]で構成される[[タグ]]や
[CN[SPACE]]
が含まれる[[タグ]]は [CH[']] で括り、
[[大文字]]や[[数字]]のみで構成される[[タグ]]はそのままとされたり
[CH[']] で括られたりしているようです。

[5] 
[CITE[OpenType]] 仕様書の文面上では、本来 [CC[U+0020]] であるものが表示上の都合として
[CC[U+00A0]] に置き換えられている場合があります。
[SEE[ [[用字系タグ]] ]]

* 登録簿

[33] 
[[表]]以外の[[タグ]]は [[Microsoft]] の仕様書に[[登録簿]] (Registry)
があって、そこに登録できることになっています。
[[Microsoft]] を含む[[フォント]]関係事業者各社が登録しているようです。

[34] 
なぜか登録制度になっていますが、[[仕様書]]に組み込まれていて、
他の[[規格]]のように[[仕様書]]の改版と独立して登録できる制度とは違うようです。

[35] 
[[ISO/IEC]] 版の [[ISO/IEC 14496-22]] も登録簿部分も規格本文に含めています。

[36] 
要求を即時に反映できるとか、
通常の[[標準化手続き]]より手軽に登録できるとかのメリットはなさそうで、
名前だけ登録して[[処理モデル]]を明確に定義しないで済む[[相互運用性]]の抜け穴になっているような。

[2] [[OpenType Layout tag]]
について、
[[フォント開発者]]は、
[[互換性]]と[[フォント]], [[応用]], [[OS]] 
[RUBYB[を超えた利用の簡単][ease of use across]]のため、
登録された[[タグ]]の利用が[RUBYB[推奨][encouraged]]されます。
[SRC[>>1]]

[3] 
新しい [[OpenType Layout tag]] を追加したい[RUBYB[事業者][vendor]]は、
[[Microsoft]]
に連絡する[RUBYB[べきです][should]]。
[SRC[>>1]]

[7] 
[[言語系タグ]]の追加要求は、
[CITE[OpenType]] 仕様書 ([[Microsoft]] の [[Webサイト]]) の[[フィードバック]]フォームか、
[[Microsoft]] の [[GitHub Issues]]
で送信できます。
[SRC[>>6]]

[10] 
[[機能タグ]]について [[Microsoft]] は [DFN[Microsoft Tag Registry]]
として管理していますが、[[フォント開発者]]からの登録も歓迎するとしています。
[SRC[>>9]]
登録内容については[[機能タグ]]参照。


* 種別

[FIG(short list)[ [43] [[TrueType]] / [[OpenType]] の[[タグ]]
- [F[[CODE[sfntVersion]]]]
- [[表][表タグ]]
- [[フォント事業者ID]]
- [DFN[OpenType Layout tag]] [SRC[>>1]]
-- [[用字系タグ]]
-- [[言語系タグ]]
-- [[機能][フォント機能]]
-- [[基線タグ]]
- [[メタデータタグ]]
- 
@@
[CODE(charname)@en[MVAR]]
]FIG]

* メモ