[44] 
[DFN[TrueType]] と [DFN[OpenType]] は現在最も広く使われている[[フォント形式]]です。

* 仕様書

[REFS[
- [3] 
[CITE@en-us[[[OpenType specification]] - Typography | Microsoft Docs]], [[PeterCon]], [TIME[2020-10-03 18:41:14 +09:00]] <https://docs.microsoft.com/en-us/typography/opentype/spec/>
--
[53] 
[CITE@ja-jp[OpenType font file (OpenType 1.9) - Typography | [[Microsoft]] Docs]], [[PeterCon]], [TIME[2022-08-28T11:57:05.000Z]] <https://docs.microsoft.com/ja-jp/typography/opentype/spec/otff#filenames>
--
[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>
--
[63] 
[CITE@ja-jp[OpenType font file (OpenType 1.9) - Typography | [[Microsoft]] Docs]], [[PeterCon]], [TIME[2022-08-28T13:00:54.000Z]] <https://docs.microsoft.com/ja-jp/typography/opentype/spec/otff#versionNumbers>
--
[92] 
[CITE@ja-jp[OpenType font file (OpenType 1.9) - Typography | [[Microsoft]] Docs]], [[PeterCon]], [TIME[2022-08-28T14:01:52.000Z]] <https://docs.microsoft.com/ja-jp/typography/opentype/spec/otff#sfntVersion>
--
[99] 
[CITE@ja-jp[OpenType font file (OpenType 1.9) - Typography | [[Microsoft]] Docs]], [[PeterCon]], [TIME[2022-08-29T08:31:03.000Z]] <https://docs.microsoft.com/ja-jp/typography/opentype/spec/otff#ttc-header>
- [42] 
[CITE@en[Fonts - TrueType Reference Manual - Apple Developer]], [[Apple Inc.]], [TIME[2022-07-12T17:06:25.000Z]], [TIME[2022-08-26T11:53:35.216Z]] <https://developer.apple.com/fonts/TrueType-Reference-Manual/>
]REFS]

[20] 
当初 [[Apple]] が [[TrueType]] を開発し [[Microsoft]] も採用しましたが、
後に [[Microsoft]] と [[Adobe]] がそれを拡張する形で [[OpenType]] を開発しました。

[21] 
現在 [[Apple]] は自社ウェブサイトで [[TrueType]] の[[仕様書]]を公開しています 
[SRC[>>42]]。
[[Microsoft]] は自社ウェブサイトで [[OpenType]] の[[仕様書]]を公開しています
[SRC[>>3]]。

[22] 
従って [[TrueType]] よりも [[OpenType]] 
の方が新しいバージョンで機能が豊富ということになるのですが、
[[仕様書]]としては別物で、技術的に共通でも仕様書は同内容ではありません。
そして両者それぞれに改訂されているので、
[[OpenType]] 仕様書になく [[TrueType]] 仕様書にはある機能もいくつかあります。
この機能は [[Apple]] の仕様書を見よ、
この機能は [[Microsoft]] の仕様書を見よ、
と相互に参照しあっています。

[23] 
両仕様書には、 [[Microsoft]] はこう実装している、
[[Apple]] はこう実装している、
名前を挙げずにこういう実装もある、
というような記述も含まれています。
公的な[[工業標準]]というよりは企業の技術公開文書という性質の強い、
私的な規格ですが、[[事実上の標準]]の地位を得ています。

;; [24] 
曖昧な記述が多く[[行間を読む]]ことや実装状況を自分で調べることが必要で、
技術ドキュメントとしては良くても[[工業標準]]としてみると品質には不満がありますが、、、
[[仕様書]]だけを読んで[[相互運用可能]]に実装できるとはとても思えません。

[28] 
[[Apple]] も [[Microsoft]] も自社の技術文書の公開サイトの1項目として仕様書を提供しているので、
仕様書として独立した形になっていないのが困ったところです。

[29] 本段落執筆時点では
[[Microsoft]] 版の変更履歴に
「Version 1.9
Released December 2021」
と書かれているのですが、
ページの日付 (おそらく  [[Microsoft]] のドキュメント管理システムがつけているもの)
は
「2022/06/16」
となっていて、半年新しいことになってます。でもそれが何を意味しているのかわかりません。

[30] 
[[Webサイト]]で最新版(だけ)が公開されているのに、バージョンがついていて、
でもそのバージョンと無関係に更新されていて、今見てるのがバージョン何なのかわからない、
引用して数年後に記述が食い違っていたらどう理解したらいいのかわからない、
という困った状況です。

-*-*-

[25] 
[[ISO/IEC]]
で
[DFN[ISO/IEC 14496-22]]
として[[国際標準]]になっています。
[[規格票]]は
[[ISO]] の
[[Webサイト]]で無償公開されています [SRC[>>41]]。
その内容は [[Microsoft]] の [[OpenType]] 仕様書をアレンジしたもののようです。
(そんな品質でも[[国際標準]]になれるのですね。)

[27] 
[TIME[令和4(2022)年][2022]]時点の最新版は[TIME[西暦2020年版][2020]]です。
一方 [[Microsoft]] 版の最新版は[TIME[西暦2021年][2021]]のものです。
こうしたものは一度[[国際標準]]の判子を押されたら後は放置されがちですが、
比較的きちんとメンテナンスされているみたいですね。

[26] 
一般には [[ISO/IEC]] よりも [[Microsoft]] の仕様書が参照されているようです。
両者の内容は完全に一致しているわけではないのですが、
差分ははっきりしないので、
[[ISO/IEC]] 版を参照するのはリスキーといえます。

[31] 
[[Microsoft]] の仕様書には

>
OpenType 1.9 incorporates revisions in Draft Amendment 2 of the 4th edition of the ISO/IEC 14496-22 “Open Font Format” standard. 

と書かれています。ということは(少なくてもこの版では)
まず [[ISO/IEC]] 版の改訂を作って、それを
[[Microsoft]] 版に適用する、という順番で開発してるようです。
[[DAM]] 段階で先走ってるのは、投票で覆ることはないという前提で進んでるのでしょうか。

[REFS[
-
[41] 
[CITE[Publicly Available Standards]], [[ISO (International Organization for Standardization)]], [TIME[2022-08-17T07:16:29.000Z]], [TIME[2022-08-26T11:50:13.545Z]] <https://standards.iso.org/ittf/PubliclyAvailableStandards/#:~:text=14496>
]REFS]

* 入門

[4] [TIME[2011-04-18T15:00:00.000Z]], [TIME[2020-12-27T10:05:42.313Z]] <https://www.iwatafont.co.jp/news/img/about_font.pdf>

[8] [CITE@ja[OpenType フォント・フォーマット]], [TIME[2020-12-28T08:42:37.000Z]] <https://aznote.jakou.com/prog/opentype/index.html>

* フォントファイル

[FIG(short list)[ [59] [[OpenType]] [[フォント]]データ
- [[グリフ]]
- [[用字系]]
- [[言語系]]
- [[feature][feature (OpenType)]]
- [[フォント単位]]
- [[OpenTypeの座標]]
]FIG]

[FIG(short list)[ [7] [[OpenType]] [[ファイル]]
- [[大エンディアン]]
- [CODE[LONGDATETIME]]
- [[タグ][OpenTypeタグ]]
- [[OpenTypeにおける文字コード]]
- [[IETF言語タグ]]
- [[表][表 (OpenType)]]
- [[記録][記録 (OpenType)]]
- [CODE[Offset16]]
- [CODE[Offset24]]
- [CODE[Offset32]]
- [[font collection]]
]FIG]


** 版と書式

[60] 
[[仕様書]]は度々改訂されて[[版番号]]が付いていますが、
新しい仕様は古い仕様への追加と修正なので、
([[OpenType]] と [[TrueType]] の違い >>22 を除けば)
常に最新版の[[仕様書]]を参照をすれば間違いありません。
この意味で[[仕様書]]の版は重要ではありません。

-*-*-

[61] 
[[OpenType]] [[フォント]]ファイル中で使われるいくつかの構造には[RUBYB[[[版]]][version]]があります。
[[版]]によって[RUBYB[[[欄]]][field]]が増減したり、解釈が変わったりすることがあります。
[[フォント]]の生成時には適切な[[版番号]]を設定する必要がありますし、
[[フォント]]の解釈時には[[版番号]]によって処理を変更する必要があります。

[62] 
この各構造の[[版]]は、[[仕様書]]の[[版]]とは連動していません。
また、ある構造の[[版]]がこれなら他の構造の[[版]]はこれ、
といった制約も基本的にはなくて、
各構造の記述や実装の都合でそれぞれ好きに選べるようです。

[83] 
ほとんどの[[版番号]]は[RUBYB[大版][major version]]と[RUBYB[小版][minor version]]で表されます。
小版に相当する番号のみで構成されることもあります。


[64] 
[[版番号]]のデータ形式は5種類あります。
[SRC[>>63]]

- [65] 
[CODE[uint16]]。[SRC[>>63]]
-- [80] 値は小版に相当します。
[SRC[>>63]]
-- [67] 普通は [N[0]] 版から始まります。[SRC[>>63]]
-- [66] いくつかの[[表][OpenType表]]で使われています。[SRC[>>63]]
- [68] 
[CODE[uint16]] と [CODE[uint16]] の組。 [SRC[>>63]]
--
[81] 値はそれぞれ大版と小版を表します。 [SRC[>>63]]
-- [71] [VAR[大]].[VAR[小]]のように[[小数]]表記されます。
-- [70] 普通は 1.0 版から始まります。[SRC[>>63]]
-- [69] いくつかの[[表][OpenType表]]で使われています。 [SRC[>>63]]
- [74] 
[CODE[uint32]]。 [SRC[>>63]]
--[82] 
値は小版に相当します。
[SRC[>>63]]
-- [75] 
[CODE[DSIG]] [[表][OpenType表]]と 
[CODE[meta]] [[表][OpenType表]]でのみ使われています。 [SRC[>>63]]
- [76] 
[DFN[[CODE[Version16Dot16]]]]。 [SRC[>>63]]
-- [77] 
[CODE[maxp]] [[表][OpenType表]]と
[CODE[post][post (OpenType)]] [[表][OpenType表]]と
[CODE[vhea]] [[表][OpenType表]]でのみ使われています。
将来他では使いません。 [SRC[>>63]]
--[78] 
32ビットのうち、上位16ビットが大版を表します。
その続きの4ビットが小版を表し、 [ [N[0]], [N[9]] ] のいずれかとします。
残り12ビットは [N[0]] にします。
[SRC[>>63]]
- [72] 
[CODE[uint32]]。 [SRC[>>63]]
-- [73] 
値は決められたうちから選びます ([[列挙型]] [SRC[>>63]])。
-- [79] 
[F[[CODE[sfntVersion]]]]
で使われています。
値は[[タグ][OpenTypeタグ]]と解釈されています。
[SRC[>>63]]

[84] 
[[表][OpenType表]]を読む実装は、
[[版番号]]を検査しなければ[RUBYB[なりません][must]]。
[SRC[>>63]]

[85] 
小版(だけ)の変更は、
その[RUBYB[書式変更][format change]]が[RUBYB[互換性のある拡張][compatible extension]]であることを意味しています。
当該大版を理解する実装は、
小版に関わらず安全に処理を進められます。
対応していない小版で拡張された[RUBYB[欄][field]]を検知できないだけです。
[SRC[>>63]]


[87] 
[RUBYB[未定義][undefined]]や[RUBYB[予約][reserved]]とされた欄は、
小版の変更により意味を割り当てられることがあります。
実装はその値に何ら仮定を置く[RUBYB[べきではなく][should never]]、
それらを無視できます。
[[フォント]]を出力する際は、
[N[0]]
を常に書き込む[RUBYB[べきです][should]]。
[[検証器]]は非 [N[0]] のとき警告する[RUBYB[べきです][should]]。
[SRC[>>63]]

[86] 
大版が認識できないときは、
その[[表][OpenType表]]を読んでは[RUBYB[なりません][must not]]。
[[表][OpenType表]]が存在しないものと扱う[RUBYB[べきです][should]]。
[SRC[>>63]]

[89] 
[CODE[post][post (OpenType)]]
のように実際に大版の違いで[[欄]]があったりなかったりする事例があります。
[CODE[post][post (OpenType)]]
の場合は数値が大きな (そして新しい) 大版で以前の大版にあった[[欄]]が削除されていたり、
数値が大きな大版が現在主に使われているものではなかったりします。

-*-*-

[88] 
いくつかの[[部分表]]には [CODE[uint16]]
の[RUBYB[[[型]]][type]]や[RUBYB[[[書式]]][format]]があります。
[[型]]や[[書式]]も[[版]]と同じく構造を定める役割を担っています。

[EG[
[90] 例えば [[lookup]] に [F[[CODE[lookupType]]]] があります。
]EG]

[91] [[型]]や[[書式]]はどちらかというと大版の違いに近いものです。
機能性が値によって大きく違っていたり、
[[欄]]の構成がまったく違っていたりします。

** [CODE[sfntVersion]]

[93] 
単独の[[フォント]]の最上位に当たる
[CODE[TableDirectory]]
[[表][OpenType表]]には
[CODE[uint32]] の
[DFN[[F[[CODE[sfntVersion]]]]]]
[[欄]]があり [SRC[>>92]]、
[[フォント]]の [[OpenType]] の[[版]]を表します。

;; [94] [[フォント]]データの[[版]]では''ありません''。

[96] 
この[[欄]]の値は[[版]]を表す[[タグ][OpenTypeタグ]]である
[SRC[>>63]]
ないし[[タグ][OpenTypeタグ]]と解釈し得ることがある [SRC[>>92]]
とされています。
この[[欄]]の一部の値は[[タグ][OpenTypeタグ]]の構文要件を満たしていません。

[95] 
[[TrueType]] [[outline]] の [[OpenType]] [[フォント]]では、値
[N[0x00010000]]
を使う[RUBYB[べき][should]]とされます。 
[SRC[>>92]]

[97] 
[[CFF]] データを含む [[OpenType]] [[フォント]]では、値
[CODE[OTTO]]
([N[0x4F54544F]])
を使う[RUBYB[べき][should]]とされます。
[SRC[>>92]]

[98] 
[[OpenType]] [[フォント]]は [[TrueType]] [[フォント]]を表す
[CODE[true]],
[CODE[typ1]]
を使う[RUBYB[べきではない][should not]]とされます。
[SRC[>>92]]

[100] 
[[OpenType]] [[font collection]] の [[TTCヘッダー]]では、
[DFN[[F[[CODE[ttcTag]]]]]]
[[欄]]と呼ばれており、
値
[CODE[ttcf]]
とします。
[SRC[>>99]]

* TrueType vs OpenType

[102] [CITE@ja[5-4. フォントの技術情報]], [TIME[2023-06-25T10:48:51.000Z]], [TIME[2023-07-15T10:04:40.430Z]] <http://www.akenotsuki.com/eyeben/fonts/fontinfo.html>


* MIME 型

[FIG(short list)[ [10] [[TrueType]] と [[OpenType]] の[[MIME型]]
- [CODE[font/opentype]]
- [CODE[font/otf]]
- [CODE[application/x-truetype-font]]
- [CODE[x-font/ttf]]
- [CODE[font/ttf]]
- [CODE[font/collection]]
]FIG]

[FIG(data short list)[ [12] [[MIME型]]
:[[MIME型]]: [DFN[[CODE[font/opentype]]]]
:説明:[[OpenType]] [[フォント]]
:[[拡張子]]:[CODE[.otf]]
]FIG]
[FIG(data short list)[ [13] [[MIME型]]
:[[MIME型]]: [DFN[[CODE[font/otf]]]]
:説明:[[OpenType]] [[フォント]]
:[[拡張子]]:[CODE[.otf]]
]FIG]
[FIG(data short list)[ [14] [[MIME型]]
:[[MIME型]]: [DFN[[CODE[application/x-truetype-font]]]]
:説明:[[TrueType]] [[フォント]]
:[[拡張子]]:[CODE[.ttf]]
]FIG]
[FIG(data short list)[ [15] [[MIME型]]
:[[MIME型]]: [DFN[[CODE[x-font/ttf]]]]
:説明:[[TrueType]] [[フォント]]
:[[拡張子]]:[CODE[.ttf]]
]FIG]
[FIG(data short list)[ [16] [[MIME型]]
:[[MIME型]]: [DFN[[CODE[font/ttf]]]]
:説明:[[TrueType]] [[フォント]]
:[[拡張子]]:[CODE[.ttf]]
]FIG]

[2] [CITE@en[[[RFC 8081]] - The "font" Top-Level Media Type]] ([TIME[2017-03-01 12:40:02 +09:00]]) <https://tools.ietf.org/html/rfc8081#section-4.4.3>


[FIG(quote)[
[FIGCAPTION[
[5] [CITE@en[ffmpeg Documentation]]
([TIME[2020-09-30T16:23:40.000Z]], [TIME[2020-10-01T08:03:14.025Z]])
<https://ffmpeg.org/ffmpeg.html#stdin-option>
]FIGCAPTION]

> Note that for Matroska you also have to set the mimetype metadata tag:
> ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
> (assuming that the attachment stream will be third in the output file).

]FIG]


* 拡張子

[11] 
[DFN[[CODE[.otf]]]], [CODE[.otc]] ([[OpenType]]),
[DFN[[CODE[.ttf]]]], [CODE[.ttc]] ([[TrueType]])
がよく使われています。

[54] 
[[OpenType]] [[フォント]]ファイルは、[[拡張子]]
[CODE[.otf]],
[CODE[.ttf]],
[CODE[.otc]],
[CODE[.ttc]]
を使う[RUBYB[べき][should]]です。
[SRC[>>53]]

[55] 
[CODE[.otc]],
[CODE[.ttc]]
は、
[[font collection file]]
にのみ使う[RUBYB[べき][should]]です。
[SRC[>>53]]


[40] 
[[TrueType]] 形式で[[グリフ]]が格納された [[OpenType]] [[フォント]]を
[CODE[.ttf]] ファイルとするなど、
[CODE[.otf]] 系と [CODE[.ttf]] 系はあまり厳密に使い分けられていません
(し[[拡張子]]で区別しても意味はありません)。

* 処理

[SEE[ [[文字のレンダリング]] ]]

* 実装

[47] 
[[Microsoft]] は
[DFN[OpenType Layout Services library]] ([DFN[OTLS]])
を開発し
[[Windows]] に搭載しています。
[[OpenType]] [[フォント]]による[[文字のレンダリング]]のための
[[API]]
を [[Windowsアプリケーション]]に提供しています。
[SRC[>>46]]

[48] 
提携企業に公開しているらしいですが、 [[OSS]] ではなさそうです。

[46] [CITE@ja-jp[OpenType glyph processing (part 1) - Typography | Microsoft Docs]], [[alib-ms]], [TIME[2022-08-27T04:04:36.000Z]] <https://docs.microsoft.com/ja-jp/typography/develop/processing-part1>

>The OpenType font format is the central element of the Windows glyph processing model. The OpenType Layout Services library (OTLS), on the other hand, is not essential, but it has great benefits to application developers who need to support glyph processing but want to be insulated from details of the font file format. 

[49] [[欧米]]や[[東アジア]]の古くからの[[文字のレンダリング]]処理だけなら
[[OTLS]]
で実現できるのですが、[[インド系文字]]なども扱うには
[[Uniscribe]] が必要になります。
([[Uniscribe]] は [[OTLS]] を置き換えるものではなく、
[[OTLS]] と併用するか、 [[OTLS]] を内部で間接的に呼び出す形になります。)


-*-*-

[50] 
その他に各種 [[OS]], [[DTP]] ソフトウェア, [[フォント]]編集等のソフトウェア,
[[Webブラウザー]]などが [[OpenType]] や [[TrueType]] を実装しています。
その対応の程度は様々です。

[51] 
近年では [[Webフォント]]の普及と機能拡張が進んで、 
[[OS]] よりも [[Webブラウザー]]の方が [[OpenType]]
の実装として高機能化してきているかもしれません。


[1] 
[CODE[ttfdump]],
[[opentype.js]],
[[Typr]]

[6] [CITE[fonts - What is the status of TTF support in Internet Explorer? - Stack Overflow]]
([TIME[2015-02-16 17:58:22 +09:00]] 版)
<http://stackoverflow.com/questions/17694143/what-is-the-status-of-ttf-support-in-internet-explorer>

[103] [CITE@en[OpenType font viewer]], [TIME[2023-08-20T10:08:58.000Z]], [TIME[2023-08-20T11:52:18.044Z]] <https://manakai.github.io/otfontviewer/>

[104] [CITE@en[manakai/opentypejs: A modified copy of opentype.js]], [TIME[2023-08-20T11:52:55.000Z]] <https://github.com/manakai/opentypejs>

* 歴史

[45] [CITE@ja-jp[OpenType overview - Typography | Microsoft Docs]], [[PeterCon]], [TIME[2022-08-27T03:36:46.000Z]] <https://docs.microsoft.com/ja-jp/typography/opentype/>

[52] [CITE@en[Issues · MicrosoftDocs/typography-issues · GitHub]], [TIME[2022-08-27T14:14:52.000Z]] <https://github.com/MicrosoftDocs/typography-issues/issues>

[106] [CITE@en-US[Standards – MPEG]], [TIME[2024-05-01T10:13:01.000Z]] <https://www.mpeg.org/standards/MPEG-4/22/>


* メモ


[9] [CITE[OpenTypeフォント: vanillaの日記]]
([TIME[2021-06-09T05:11:37.000Z]])
<http://vanillasky-room.cocolog-nifty.com/blog/2008/02/opentype-e54f.html>

[17] [CITE@en-US[OpenType Feature File Specification | afdko]], [TIME[2022-07-01T23:34:25.000Z]], [TIME[2022-08-18T02:28:48.894Z]] <http://adobe-type-tools.github.io/afdko/OpenTypeFeatureFileSpecification.html>


[18] 
[[全字庫フォント]]:
[CODE[name]] [[表]]に[[Unicode]]名の他に
[[MacChineseTrad]] 名も入っている (ものもある)。

[19] 
[CITE[Nosutaru-dot M+H 10 Regular]]:
[CODE[name]] [[表]]に[[Unicode]]名の他に
[[MacJapanese]] 名も入っている。
[[MacRoman]] 名はほぼ全項目に入っている。


[105] [CITE@en[GitHub - MPEGGroup/OpenFontFormat: Official MPEG repository to discuss issues on Open Font Format (ISO/IEC 14496-22)]], [TIME[2023-09-11T03:57:19.000Z]] <https://github.com/MPEGGroup/OpenFontFormat>

[107] 
[CITE@en[GitHub - harfbuzz/boring-expansion-spec: Better-Engineered Font Formats; Part 1. Boring Expansion]], [TIME[2024-11-25T03:46:46.000Z]] <https://github.com/harfbuzz/boring-expansion-spec>



-*-*-


[139] 
[CITE[OpenType]] の仕様書には、様々な当事者が明確な定義なく登場します。


- [33] text-processing client [SRC[>>32]]
- [128] client [SRC[>>32]]
- [125] text-layout engine [SRC[>>118]]
- [34] basic text layout implementations [SRC[>>32]]
- [37] legacy platform implementations [SRC[>>35, >>101]]
- [108] legacy platforms [SRC[>>101]]
- [38] new text-layout implementations [SRC[>>35]]
- [123] implementations [SRC[>>118]]
- [112] Windows GDI implementation [SRC[>>101]]
- [113] Windows GDI [SRC[>>101]]
- [119] conforming implementation(s) [SRC[>>118]]
- [39] target applications [SRC[>>35]]
- [43] layout engines [SRC[>>35]]
- [57] font production tools [SRC[>>35]]
- [58] application(s) [SRC[>>101, >>118]]
- [122] conforming applications [SRC[>>118]]
- [114] legacy applications [SRC[>>101]]
- [120] OpenType applications [SRC[>>118]]
- [126] application environment [SRC[>>118]]
- [127] host environment [SRC[>>118]]
- [115] type designer [SRC[>>101]]
- [142] font [SRC[>>141]]
- [117] implementation [SRC[>>116]] ([[フォント]])
- [121] conforming fonts [SRC[>>118]]
- [143] new fonts [SRC[>>141]]
- [36] font developer(s) [SRC[>>32, >>35, >>118]]
- [109] font designer(s) [SRC[>>32, >>101]]
- [137] manufacturer [SRC[>>138]]
- [110] font vendors [SRC[>>101]]
- [111] some vendors [SRC[>>101]]
- [124] higher-level framework [SRC[>>118]]
- [130] user [SRC[>>129]]
- [131] math layout handler [SRC[>>129]]
- [132] typographers [SRC[>>129]]

[140] 
こうした当事者の種別を表す語がなく、誰に対する要件なのか不明な文章もかなり多いです。

[REFS[

- [32] 
[CITE@ja-jp[GPOS — Glyph Positioning Table (OpenType 1.9.1) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2024-05-31T17:42:24.000Z]], [TIME[2024-12-04T08:02:08.651Z]] <https://learn.microsoft.com/ja-jp/typography/opentype/spec/gpos>
- [35] [CITE@ja-jp[hhea - Horizontal header table (OpenType 1.9.1) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2024-05-31T17:42:19.000Z]], [TIME[2024-12-04T08:03:40.008Z]] <https://learn.microsoft.com/ja-jp/typography/opentype/spec/hhea>
- [101] 
[CITE@ja-jp[OS/2 - OS/2 and Windows metrics table (OpenType 1.9.1) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2024-05-31T17:42:30.000Z]], [TIME[2024-12-04T08:07:09.927Z]] <https://learn.microsoft.com/ja-jp/typography/opentype/spec/os2>
- [116] 
[CITE@ja-jp[VORG — Vertical origin table (OpenType 1.9.1) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2024-05-31T17:42:17.000Z]], [TIME[2024-12-04T08:17:07.875Z]] <https://learn.microsoft.com/ja-jp/typography/opentype/spec/vorg>
- [118] 
[CITE@ja-jp[SVG - Scalable vector graphics table (OpenType 1.9.1) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2024-05-31T17:42:32.000Z]], [TIME[2024-12-04T08:18:37.977Z]] <https://learn.microsoft.com/ja-jp/typography/opentype/spec/svg>
- [129] 
[CITE@en-us[Registered features, a-e (OpenType 1.9.1) - Typography | [[Microsoft Learn]]]], [[PeterCon]], [TIME[2024-07-07T00:58:54.000Z]], [TIME[2024-12-11T10:04:55.418Z]] <https://learn.microsoft.com/en-us/typography/opentype/spec/features_ae>
- [138] 
[CITE@en-us[Registered features, f-j (OpenType 1.9.1) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2024-05-31T17:42:16.000Z]], [TIME[2025-12-24T13:55:15.990Z]] <https://learn.microsoft.com/en-us/typography/opentype/spec/features_fj?source=recommendations#jp78>
- [141] 
[CITE@en-us[Registered features, k-o (OpenType 1.9.1) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2024-05-31T17:42:31.000Z]], [TIME[2025-12-26T13:35:36.939Z]] <https://learn.microsoft.com/en-us/typography/opentype/spec/features_ko#kern>


]REFS]





[FIG(quote)[
[FIGCAPTION[
[133] [CITE@ja[GT書体 - Wikipedia]]
([TIME[2024-12-29T05:39:18.000Z]], [TIME[2025-01-11T01:48:11.136Z]])
<https://ja.wikipedia.org/wiki/GT%E6%9B%B8%E4%BD%93#cite_note-6>
]FIGCAPTION]

> どちらも本質的にはTrueTypeなのであるが、通常の市販などされている文字鏡フォントは、一般の漢字を差し替えるようなフォントで提供されているのに対し、超漢字(B-right/V)ではフォントに関してTRONコードとの対応をTrueTypeデータに外付けするような方式を取っており、そのための特殊フォーマットとなっている。

]FIG]




[134] 
[[OpenType]] の開発のしづらさどうにからないものかねえ。

[135] 
既存の完成されたツールを使う以外のことがとても難しい。開発環境とかデバッグ用の便利なものが全然ない。

[136] 
そして [[OpenType.js]] のような一見気軽に使えそうなものは完成度が低い。
