-
Notifications
You must be signed in to change notification settings - Fork 4
/
948.txt
584 lines (466 loc) · 22.6 KB
/
948.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
[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]
** タグ
[32]
[[表]]や[[用字系]]や[[機能][フォント機能]]などの識別には[[タグ]]が使われています。
[DFN[タグ][OpenTypeタグ]]は4文字の[[ASCII文字]]です。
[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]
[[大文字]]は[[私用]] ([[カスタムタグ]]) のために割り振られていることもありますが、
[[タグ]]ごとに状況が違います。(各項参照。)
-*-*-
[33]
[[表]]以外の[[タグ]]は [[Microsoft]] の仕様書に[[登録簿]] (Registry)
があって、そこに登録できることになっています。
[[Microsoft]] を含む[[フォント]]関係事業者各社が登録しているようです。
[34]
なぜか登録制度になっていますが、[[仕様書]]に組み込まれていて、
他の[[規格]]のように[[仕様書]]の改版と独立して登録できる制度とは違うようです。
[35]
[[ISO/IEC]] 版の [[ISO/IEC 14496-22]] も登録簿部分も規格本文に含めています。
[36]
要求を即時に反映できるとか、
通常の[[標準化手続き]]より手軽に登録できるとかのメリットはなさそうで、
名前だけ登録して[[処理モデル]]を明確に定義しないで済む[[相互運用性]]の抜け穴になっているような。
-*-*-
[FIG(short list)[ [43] [[TrueType]] / [[OpenType]] の[[タグ]]
- [F[[CODE[sfntVersion]]]]
- [[表][表タグ]]
- [[機能][フォント機能]]
- [[フォント事業者ID]]
- [[用字系タグ]]
- [[言語系タグ]]
- [[基線タグ]]
- [[メタデータタグ]]
-
@@
[CODE(charname)@en[MVAR]]
]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>