/
484.txt
176 lines (130 loc) · 8.32 KB
/
484.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
[1] [DFN[[CODE(MIME)[font/[VAR[*]]]]]] は、[[フォント]]のデータに使われることのある[[媒体型]]です。
* 仕様書
[REFS[
- [7] '''[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>'''
- [41] [CITE@en[CSS Fonts Module Level 3]] ([TIME[2016-12-31 17:32:15 +09:00]]) <https://drafts.csswg.org/css-fonts/#src-desc>
-- [276] 旧 [CITE@en[CSS Fonts Module Level 3]] ([TIME[2013-09-17 15:52:00 +09:00]] 版) <http://dev.w3.org/csswg/css-fonts/#src-desc>
]REFS]
* 意味
[12] 本[[最上位型]]の [[MIME型]]で識別される[[内容]]が、
これを[[フォント]]データとして処理するためには[[フォントレンダリングエンジン]]など
(場合によっては[[テキストレイアウトエンジン]]や [[shaping engine]] も。)
の特定の[RUBYB[[[図形]]]@en[graphic]][[部分システム]]が必要であり、
それには更に一定水準の [[CPU]] 性能や[[メモリー]]容量のような[[ハードウェア]]能力が必要である、
ということを示しています。 [SRC[>>7]]
[13] [[データ形式]]や[[フォント]]情報の解釈方法などは特に定めません [SRC[>>7]]。
[14] [[MIME型]]の[F[部分型]]が、[[フォント]]形式の名前を表します [SRC[>>7]]。
* 処理
[15] 未知の [CODE(MIME)@en[font/[VAR[*]]]] [[MIME型]]は、
[CODE(MIME)@en[application/octet-stream]] として扱う[RUBYB[べき]@en[should]]です
[SRC[>>7]]。
[16] 共通の[[フォント]]処理システムのようなものがあれば、
未知の [[MIME型]]であってもそちらに渡しても構いません [SRC[>>7]]。
* 素片識別子
[38] 新しい [[MIME型]]を登録する場合、複数の[[フォント]]を含めることができるなら、
[[素片識別子]]も定義する[RUBYB[べき]@en[should]]です [SRC[>>7]]。
[39] 単一の[[フォント]]しか含まれない場合にどうするべきかには何の言及もありません。
[40] 複数の[[フォント]]が含まれるべき場合に採用しなければならないとは書かれていませんが、
次のような[[素片識別子]]が規定されており、採用されることが期待されているものと推測されます。
-*-*-
[17] [[font collection]] の[[素片識別子]]は、
[[ISO/IEC 14496-22:2015]] [[PostScript name]] ([[name ID]] = [N[6]])
によって特定の[[フォント]]を識別します [SRC[>>7]]。
[23] すなわち、 [ [CODE(char)[U+0031]], [CODE(char)[U+007E]] ] の[[文字]]のうち、
[CODE[ [ ]], [CODE[ ] ]], [CODE[(]], [CODE[)]], [CODE[{]], [CODE[}]],
[CODE[<]], [CODE[>]], [CODE[/]], [CODE[%]] を''除いた''もので構成される63[[文字]][[以下]]の[[文字列]]です。
[SRC[>>7]]
[REFS[
- [37] 認められる[[文字]]の一覧:
[CITE@en[Character set "a character in PostScript name"]] ([TIME[2017-03-02 19:14:15 +09:00]]) <https://chars.suikawiki.org/set/%24rfc8081%3Apostscript-name-char>
]REFS]
;; [24] [[空文字列]]は認められるのでしょうか?
[25] このうち、 [CODE["]], [CODE[#]], [CODE[\]], [CODE[^]], [CODE[`]], [CODE[|]]
は [[RFC 3986]] [[素片識別子]]では使うことができず、[[パーセント符号化]]しなければなりません
[SRC[>>7]]。
[27] [[URL]] [VAR[URL]] で [[font collection]] [VAR[コレクション]]から選ばれるべき[[フォント]]は、
次のように決定します [SRC[>>7]]。
[FIG(steps)[
= [26] [VAR[URL]] の[F[素片識別子]]が [CODE[null]] でない場合、
== [28] [VAR[名前]]を、[VAR[URL]] の[F[素片識別子]]に[[パーセント復号]]を適用した結果に設定します。
== [29] [VAR[フォント]]を、[VAR[コレクション]]内の [F[PostScript name]] が[VAR[名前]]の[[フォント]]に設定します。
== [30] [VAR[フォント]]が [CODE[null]] でない場合、
=== [31] [VAR[フォント]]を返し、ここで停止します。
== [32] それ以外の場合、
=== [33] [VAR[コレクション]]内の最初の[[フォント]]を返します。
= [34] それ以外の場合、
== [35] [VAR[コレクション]]内の最初の[[フォント]]を返します。
]FIG]
[36] なお、[VAR[コレクション]]内の[[フォント]]の順序は[[フォント]]の改訂により変化する可能性がありますから、
最初の[[フォント]]が選ばれることに依存するのは懸命ではありません [SRC[>>7]]。
-*-*-
[277] [[css-fonts]] は、 (特に [CODE[font/[VAR[*]]]] に限らず) [[フォント]]の[[素片識別子]]が定義されていない場合に、
整数 ([[1起源]]) の[[素片識別子]]で識別する[SHOULD[べき]]だと規定しています [SRC[>>41]]。
-*-*-
[42] 個別の[[フォント]]形式の[[素片識別子]]は、各 [[MIME型]]の項を参照。
* 一覧
[FIG(list short)[ [2] [CODE(MIME)@en[font/[VAR[*]]]] [[MIME型]]の一覧
,[CODE(MIME)@en[[[font/x-bdf]]]]
,[CODE(MIME)@en[[[font/x-dos]]]]
,[CODE(MIME)@en[[[font/eot]]]]
,[CODE(MIME)@en[[[x-font/eot]]]]
,[CODE(MIME)@en[[[font/x-figlet]]]]
,[CODE(MIME)@en[[[font/x-framemaker]]]]
,[CODE(MIME)@en[[[font/x-libgrx]]]]
,[CODE(MIME)@en[[[font/vnd.ms-fontobject]]]]
,[CODE(MIME)@en[[[font/opentype]]]]
,[CODE(MIME)@en[[[font/otf]]]]
,[CODE(MIME)@en[[[font/x-sunos-news]]]]
,[CODE(MIME)@en[[[font/x-pcf]]]]
,[CODE(MIME)@en[[[font/x-linux-psf]]]]
,[CODE(MIME)@en[[[font/x-snf]]]]
,[CODE(MIME)@en[[[font/x-speedo]]]]
,[CODE(MIME)@en[[[font/x-tex]]]]
,[CODE(MIME)@en[[[font/x-tex-tfm]]]]
,[CODE(MIME)@en[[[font/truetype]]]]
,[CODE(MIME)@en[[[font/ttf]]]]
,[CODE(MIME)@en[[[x-font/ttf]]]]
,[CODE(MIME)@en[[[font/type1]]]]
,[CODE(MIME)@en[[[font/x-vfont]]]]
,[CODE(MIME)@en[[[font/x-hp-windows]]]]
,[CODE(MIME)@en[[[font/woff]]]]
,[CODE(MIME)@en[[[font/x-woff]]]]
,[CODE(MIME)@en[[[x-font/woff]]]]
]FIG]
* 関連
[3] ちなみに、他に [CODE(MIME)[[[application/x-font]]]]
というのも使われていることがわかっています。
* 歴史
[8] [CODE[font/[VAR[*]]]] は古くから提案され、[[非標準]]ながら長年あちこちで使われてきました。
しかし [[IETF]] は[[最上位型]]の新規追加に極めて慎重で、
現実に歩み寄ることを頑なに拒み続けてきました。
[18]
[CITE[Web Printing]] ([CODE[1998-05-13 20:45:28 +09:00]] 版) <http://www.w3.org/Printing/chase.html>
([[名無しさん]])
[19]
[CITE@en[draft-singer-font-mime-00 - The Font Primary Content Type for Multipurpose Internet Mail Extensions]] ([TIME[2008-05-25 11:55:34 +09:00]] 版) <http://tools.ietf.org/html/draft-singer-font-mime-00>
** 承認
[10] 2010年代に入り、 [[Web Fonts]] の普及により[[フォント]]の [[MIME型]]に再び注目が集まりました。
[[W3C]] で[[フォント]]や [[CSS]] に関する作業を担当する [[Chris Lilley]]
が中心となり、正式に [CODE[font/[VAR[*]]]] を[[標準化]]する動きが起きました。
[TIME[2017年2月][2017-02]]になって、ようやく [DFN[RFC 8081]] が出版されるに至りました。
[20] [CITE[IRC logs: freenode / #whatwg / 20100628]]
([TIME[2010-07-04 18:57:06 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20100628#l-498>
[21] [CITE[IRC logs: freenode / #whatwg / 20121031]]
( ([TIME[2012-11-23 14:34:19 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20121031#l-895>
[22] [CITE[IRC logs: freenode / #whatwg / 20121117]]
( ([TIME[2012-12-02 12:59:20 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20121117>
[4] [CITE@en[draft-singer-font-mime-00 - The Font Primary Content Type for Multipurpose Internet Mail Extensions]]
([TIME[2015-01-25 21:17:37 +09:00]] 版)
<https://tools.ietf.org/html/draft-singer-font-mime-00>
[5] [CITE@en[Re: Font MIME types]]
([[Chris Lilley]] 著, [TIME[2015-04-23 02:04:40 +09:00]] 版)
<https://lists.w3.org/Archives/Public/www-style/2015Apr/0334.html>
[6] [CITE@en[draft-ietf-justfont-toplevel-06 - The font Top Level Type]]
([TIME[2016-12-20 05:28:30 +09:00]])
<https://tools.ietf.org/html/draft-ietf-justfont-toplevel-06>
[9] [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>
[11] それにしても [[IETF]] が関わるとあらゆる出来事の進みが遅くなるんですね!