/
13.txt
196 lines (158 loc) · 5.54 KB
/
13.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
* 仕様書
[REFS[
- [142] [CITE[The Unicode Standard, Version 13.0 - ch02.pdf]], [TIME[2020-03-09T17:53:32.000Z]], [TIME[2020-12-06T08:54:12.180Z]]
<https://www.unicode.org/versions/latest/ch02.pdf#G1708>
- [1]
[CITE[The Unicode Standard, Version 13.0 - ch03.pdf]], [TIME[2020-03-09T17:53:34.000Z]], [TIME[2020-12-06T03:41:31.993Z]] <https://www.unicode.org/versions/latest/ch03.pdf#G52443
-- [115] [CSECTION[Application of Combining Marks]]
<https://www.unicode.org/versions/latest/ch03.pdf#G50030>
]REFS]
* 書記素基底
[3] [[特性][特性 (UCD)]]
[DFN[[CODE[Grapheme_Base]]]]
の[[文字]]には、
[[基底文字]]が含まれますが、
[CODE[U+FF9E]], [CODE[U+FF9F]]
は含まれません。
ほとんどの
[[spacing mark]]
が含まれます。
[SRC[>>1 D58]]
[2]
[DFN[[RUBYB[書記素基底][grapheme base]]]]は、
[[特性][特性 (UCD)]]
[CODE[Grapheme_Base]]
の[[文字]]か、
[[標準韓音節ブロック]]です。
[SRC[>>1 D58]]
[4]
[[書記素基底]]は[[拡張済基底]]と似ていますが、多少の出入りがあります。
[REFS[
- [9] [CODE[Grapheme_Base]] の一覧:
<https://chars.suikawiki.org/set/%24unicode%3AGrapheme_Base>
- [11]
[[基底文字]]と
[CODE[Grapheme_Base]]
の比較
<https://chars.suikawiki.org/set/compare?expr1=%24unicode%3Abase-character&expr2=%24unicode%3AGrapheme_Base>
]REFS]
* 書記素拡張子
[5]
[DFN[[RUBYB[書記素拡張子][grapheme extender]]]]は、
[[特性][特性 (UCD)]]
[DFN[[CODE[Grapheme_Extend]]]]
の[[文字]]です。
すべての
[[nonspacing mark]]、
[CODE(charname)@en[ZWJ]],
[CODE(charname)@en[ZWNJ]],
[CODE[U+FF9E]],
[CODE[U+FF9F]],
一部の [[spacing mark]]
が含まれます。
[SRC[>>1 D59]]
[6]
[CODE(charname)@en[ZWJ]],
[CODE(charname)@en[ZWNJ]]
は、
前後が他の[[書記素拡張子]]の列のとき、
それを分断しないように[[書記素拡張子]]に含まれています。
[SRC[>>1 D59]]
[7]
[[書記素基底]]と[[書記素拡張子]]は、[[互いに素]]です。
[SRC[>>1 D59]]
[8]
[CODE[Grapheme_Extend]]
は
[CODE[Grapheme_Cluster_Break]] = [CODE[Extend]]
から導出されたものですが、完全には一致しません。
[SRC[>>1 D59]]
[REFS[
- [10] [CODE[Graphme_Extend]] の一覧
<https://chars.suikawiki.org/set/%24unicode%3AGrapheme_Extend>
- [12] [[spacing mark]]
が
[CODE[Grapheme_Base]]
と
[CODE[Grapheme_Extend]]
のどちらに属するか見る
<https://chars.suikawiki.org/set/compare?expr=$unicode:spacing-mark&expr=$unicode:Grapheme_Base%20-%20$unicode:base-character&expr=$unicode:Grapheme_Extend%20-%20$unicode:nonspacing-mark>
]REFS]
* 書記素クラスター
[13]
[DFN[[RUBYB[書記素クラスター][grapheme cluster]]]]は、
[[UAX #29]]
[[書記素クラスター境界]]間の[[テキスト]]です。
[SRC[>>1 D60]]
[14]
[[UAX #29]]
は[[拡張済書記素クラスター]]と[[遺物書記素クラスター]]を定義している上に、
[[tailor]]
可能と定めています。
[SRC[>>1 D60]]
[19]
[DFN[[RUBYB[拡張済書記素クラスター][extended grapheme cluster]]]]は、
[[UAX #29]]
[[拡張済書記素クラスター境界]]の間の[[テキスト]]です。
[SRC[>>1 D61]]
[15]
[[書記素クラスター]]は[[テキスト]]の水平に segment 化可能な単位です。
いくつかの[[書記素基底]]と、
それに適用されるいくつかの
[[nonspacing mark]]
を合わせたものです。
[SRC[>>1 D60]]
[16] [[結合文字列]]と[[書記素クラスター]]は似ていますが、
同じではありません。
[[結合文字列]]は主に[[正規化]]、
[[比較][文字列の比較]]、
[[検索]]のような処理に関係してきます。
[[書記素クラスター]]は主に
[[text rendering]]
や[[カーソル]]配置、
[[テキストの選択]]のような処理に関係してきます。
[[比較][文字列の比較]]や[[検索]]に関係することもあります。
[SRC[>>1 D60]]
[18]
多くの処理においては、
[[書記素クラスター]]は、
[[書記素基底]]と同じ[[特性][特性 (UCD)]]の1つの[[文字]]のような挙動を示します。
[SRC[>>1 D60]]
-*-*-
[20]
[DFN[[RUBYB[関連付けられた書記素基底][associated grapheme base]]]]は、
[[nonspacing mark]]
が属する[[書記素クラスター]]中の[[書記素基底]]です。
[SRC[>>115 D61b]]
[22]
[[nonspacing mark]]
は、
[[関連付けられた書記素基底]]に[DFN[[RUBYB[適用する][apply]]]]といいます
([DFN[[RUBYB[図形的適用][graphical application]]]])。
[SRC[>>115 D61b]]
;;
[21] [[関連付けられた基底文字]]とそれへの[[適用][関連付けられた基底文字]]と似た意味ですが、少しずつ定義が違います。
[23]
[CODE[Vertical_Orientation]]
は[[書記素クラスター]]の最初の[[文字]]によって定義されます。
[SEE[ [CODE[Vertical_Orientation]] ]]
-*-*-
[24]
[[書記素クラスター]]は、
大まかに言って一般の[[利用者]]が
「[RUBYB[[[文字]]][character]]」
と認識するものを表しています。
[[Unicode]]
は[[結合文字]]その他の仕組みを導入し
「文字」
より細かな単位を[[文字][Unicode文字]]と呼んでしまっているため、
齟齬が生じています。
* 応用
[17]
[[UTR #50]]
や
[CITE[[[CSS Writing Modes]]]]
は[[書記素クラスター]]を使って[[書字方向]]の処理を定めています。
* 関連
[SEE[ [[組合せて使う文字]] ]]
* メモ