-
Notifications
You must be signed in to change notification settings - Fork 4
/
350.txt
229 lines (170 loc) · 9.03 KB
/
350.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
* 仕様書
[REFS[
- [7] [CITE[The Unicode Standard, Version 13.0 - ch02.pdf]], [TIME[2020-03-09T17:53:32.000Z]], [TIME[2020-12-22T05:59:12.190Z]] <https://www.unicode.org/versions/latest/ch02.pdf#M9.38680.Title.2.General.Structure>
- [20]
[CITE@ja-jp[OpenType specification overview (OpenType 1.9) - Typography | [[Microsoft]] Docs]], [[PeterCon]], [TIME[2022-08-26T12:07:26.000Z]] <https://docs.microsoft.com/ja-jp/typography/opentype/spec/overview>
-[22] [CITE@ja-jp[Advanced typographic tables - OpenType Layout (OpenType 1.9) - Typography | [[Microsoft]] Docs]], [[PeterCon]], [TIME[2022-08-28T01:17:05.000Z]] <https://docs.microsoft.com/ja-jp/typography/opentype/spec/ttochap1#characters-versus-glyphs>
]REFS]
* 意味
[9]
[CITE[The Unicode Standard]]
における[RUBYB[グリフ][glyph]]は、
[[文字][Unicode文字]]が[[レンダリング]]、[RUBYB[[[表示]]][display]]されるときに持つことができる[[文字][Unicode文字]]の[RUBYB[図形][shape]]です。
[[文字][Unicode文字]]とは違って[[グリフ]]は[RUBYB[[[画面]]][screen]]や[[紙]]に1つ[[以上]]の[[文字]]の特定の[RUBYB[表現][representation]]として出現するものです。
[SRC[>>7]]
[10]
[[グリフ]]の[[レパートリ]]は、[[フォント]]となります。
[SRC[>>7]]
[11]
[[グリフ]]の[RUBYB[図形][shape]]と[[グリフ]]の識別・選択の手法は、
個々の[[フォント]][[事業者]]や関係する[[規格]]の責となるところであって、
[CITE[The Unicode Standard]]
では定めていません。
[SRC[>>7]]
[16]
[[グリフ]]の選択は、前後の[[文字]]の文脈によって左右されることがあります。
[SRC[>>7]]
[17]
[[グリフ]]の選択は、[[フォントサイズ]]、[[添字]]その他書式付けによって左右されることもあります。
[SRC[>>7]]
-*-*-
[23]
[[OpenType]] においては、
[[利用者]]が[RUBYB[見た][view]]り[RUBYB[印刷][print]]したりするのは[RUBYB[[[文字]]][character]]ではなく、
[DFN[[RUBYB[グリフ][glyph]]]]です。
[[文字]]とは[[データ]]中で[[数値表現][文字符号]]を持った抽象[RUBYB[[[実体]]][entity]]であり、
[[グリフ]]は[[文字]]を[RUBYB[視覚化][visualization]]したものです。
[SRC[>>22]]
[25]
[[OpenType]] [[フォント]]は[[グリフ]]の[RUBYB[[[集成]]][collection]]を含んでいます。
[SRC[>>22]]
** グリフの抽象性
[14]
[[文字]]と[[グリフ]]の関係では[[文字]]は抽象的な存在で1つの[[文字]]でもいろいろな[[グリフ]]があり得ると説明されますが、
[[グリフ]]もまた抽象的な存在だと説明されることがあります。
[27]
実際[[フォント]]に含まれる特定の[[グリフ]]データは[[フォントサイズ]]、
[[文字色]]、
その他の装飾、
[[ラスター化]]手法といった要素で違った[[グリフ]]画像に変換されて出力されます。
この意味で[[グリフ]]データは[[グリフ]]画像を抽象化したものと言い得ます。
;; [28] [[グリフ]]データ = [[クラス]]、
[[グリフ]]画像 = [[実現値]]と言ってもいいでしょうか。
[29]
が普段はあまりこのレベルの厳密な用語遣いはされていないようです。
[FIG(quote)[
[FIGCAPTION[
[1]
[CITE@en[[[RFC 3536]] - Terminology Used in Internationalization in the IETF]] ([TIME[2011-01-29 02:14:52 +09:00]] 版) <http://tools.ietf.org/html/rfc3536#page-5>
]FIGCAPTION]
> A glyph is an abstract form that represents one or more glyph
images. The term "glyph" is often a synonym for glyph image,
which is the actual, concrete image of a glyph representation
having been rasterized or otherwise imaged onto some display
surface. In displaying character data, one or more glyphs may be
selected to depict a particular character. These glyphs are
selected by a rendering engine during composition and layout
processing. <UNICODE>
]FIG]
[30] ここでは[[グリフ]] = [[グリフ]]画像だとされていますが、
どちらかといえば[[グリフ]] = [[グリフ]]データで使われていることが多いような感覚が。
* グリフとUnicode文字
[12]
1つの[[文字]]に、
複数の[[グリフ]]が対応することがあります。
[[イタリック]]、
[[孤立形]]、
[[語末形]]、
[[言語]]差、
その他いろいろな[[グリフ]]の違いがありえます。
[SRC[>>7]]
[13]
[[合字]]のように、
1つの[[グリフ]]が、
複数の[[文字]]の列に対応することがあります。
[SRC[>>7]]
[15]
[[アラビア文字]]や[[インド系文字]]の[[フォント]]のように、
[[Unicode文字]]の数より遥かに多くの[[グリフ]]が必要となる場合があります。
[SRC[>>7]]
[18]
[CITE[The Unicode Standard]]
は、
同じテキスト内容が同じように蓄積され、
交換可能な[[文字符号]]の列となるようにするべく、
[[文字]]と[[グリフ]]の既定の関係を記述するものの、
[RUBYB[洗練された組版][fine typography]]のためにはより詳しい規則が必要となるだろうとしています。
[SRC[>>7]]
[19] 実際かなり多くの事項、表示に関わるほとんどの事項は実装依存とされ、
詳細が省かれております。 [[相互運用性]]に乏しいことも少なくありません。
[26]
[[OpenType]] においては [[shaping]] における前処理を経た[[文字コード]](列)を、
[[フォント]]の [CODE[cmap]] によって[[文字コード]]から[[グリフID]]に変換します。
更に[[フォント]]の [CODE[GDEF]] [[表]]データに基づき[[グリフID]]に一定の演算を施すことで、
最終的な[[グリフ]](列)を得ます。
一連の操作によって入力の[[文字コード]]列と出力の[[グリフ]]列の表示は順序関係が逆転することもありますし、
[[文字]]よりも[[グリフ]]が増えたり減ったりもします。
* レンダリング
[SEE[ [[文字のレンダリング]], [[グリフの選択]] ]]
[21]
[[グリフ]]の[[アウトライン]]データの[[ラスター化]]の手法は仕様書で定められていますが、
環境に合わせて適宜[[仕立て]]て良いとされています。
[SRC[>>20]]
* グリフの識別
[FIG(short list)[ [5] [[グリフ]]識別
- [[グリフID]]
- [[グリフ名]]
- [[ISO/IEC 10036]]
- [[[CODE[GSUB]]代替グリフの選択]]
]FIG]
* グリフの交換
[31]
[[グリフ]]の[[情報交換]]には[[グリフ]]を集めた[[フォント]]の形が普通です。
[SEE[ [[フォント]], [[外字]] ]]
[32]
[[外字]]のような [[ad hoc]] な[[情報交換]]には一般の[[画像形式]]が使われることもあります。
* グリフの付加情報
[33]
狭義の[[グリフ]]は[[図形]]データそのものですが、実用上は様々な付加情報が必要になります。
その種別と記述や[[グリフ]]本体との関連付けの方法は、
[[フォント形式]]や[[プラットフォーム]]等で違っています。
[34]
ほとんどの[[フォント形式]]は、[[文字コード]] ([[フォント符号化]])
と[[グリフ]]の対応関係を記述できます。
[[OpenType]]
の場合
[CODE[cmap]]
[[表][OpenType表]]で記述します。
[38]
[[OpenType]] では [CODE[post][post (OpenType)]] [[表][OpenType表]]によって[[グリフ名]]を記述できます。
[35]
[[OpenType]] では [CODE[GPOS]] [[表][OpenType表]]によって[[グリフ]]に[[レンダリング]]のための位置調整情報を与えられます。
[37]
[[OpenType]] では [CODE[BASE][BASE (OpenType)]] [[表][OpenType表]]等で単一の[[グリフ]]ではなくすべての[[グリフ]]に共通する[[基線]]情報を与えられます。
[36]
[[OpenType]] では [CODE[GDEF]] [[表]]で[[グリフ]]を分類し、
直接または間接に、付随する情報を与えられます。
* 関連
[24]
[[字形]]と[[グリフ]]は同じような意味で曖昧に使われることがあります。
[[グリフ]]は[[フォント]]や[[印刷]]・表示技術的な視座、
[[字形]]は[[文字]]体系的な視座、
という[[ニュアンス]]の違いがあります。
[39]
[[グリフ的部分集合]]
[40]
[[グリフ合成]]
* 歴史
[2] [CITE[Introduction – SVG 1.1 (Second Edition)]]
( ([TIME[2011-08-10 12:35:27 +09:00]] 版))
<http://www.w3.org/TR/2011/REC-SVG11-20110816/intro.html#TermGlyph>
[3] [CITE@en[RFC 6365 - Terminology Used in Internationalization in the IETF]]
([TIME[2011-09-10 19:11:51 +09:00]] 版)
<http://tools.ietf.org/html/rfc6365#page-7>
[4] [CITE@en[Character Model for the World Wide Web 1.0: Fundamentals]]
( ([TIME[2005-02-15 14:24:00 +09:00]] 版))
<http://www.w3.org/TR/charmod/#sec-VisualRenderingUnits>
[6] [CITE@en[SSML 1.0 say-as attribute values]]
([TIME[2018-10-09 22:31:33 +09:00]])
<https://www.w3.org/TR/2005/NOTE-ssml-sayas-20050526/#S3.4glyphs>
[8] [[外字]]