[22] 基底文字の後に任意の個数使えるようです。 連続して挿入したり、 結合文字の連続の最初や最後に挿入したりすることも、 禁止はされていません。 (意味があるかどうかはまた別。)
[5]
U+034F
COMBINING GRAPHEME JOINER
(CGJ
)
は、
言語依存の照合と検索のため、
隣接文字の照合に関与するべく使うものです。
>>4
[6]
CGJ
は、
通常正準的に等価な文字列を区別するためにも使います。
>>4
[13]
Unicode Collation Algorithm
は
collation weighting
の適用前に正規化するため、
その時点で結合文字の順序を入れ替えてしまいます。
CGJ
は
collation key weighting
では通常無視されるのですが、
順序の入れ替えを抑制するので、
結合文字に関する
secondary key weight
の順序に影響が出ます。
これによって、
CGJ
や結合文字の重みを
tailor
することなしに検索や整列で文字列を違って扱わせることができます。
>>4
[14]
UCA
における
contraction
の形成を防ぐためにも使うことが出来ます。
例えばスロバキア語に tailor
した照合では
ch
を単一の単位として扱いますが、
<c, CGJ
, h>
は
c
の後に h
として整列されることになります。
ドイツ語では
ü
を一般的な u-umlaut と解して <u, e> のように整列させるケースと、
稀な u-diaeresis と解して u
に secondary key weight
がついたものとして整列させるケースがあり、
CGJ
により区別できます。
CGJ
や結合文字の重みを
tailor
することなしに実現できます。
>>4
[11]
ヘブライ文字のアクセントやマークは、
分析やテキスト表現のために順序が意味を持つことがあります。
typographical 的にも相互作用します。
にも関わらず結合クラスが等しいので、
正準再順序付けで入れ替えられてしまいます。
そこで
CGJ
で抑制できます。
具体的には
<lamed, patah, hiriq, finalmem>
と
<lamed, hiriq, patah, finalmem>
の区別のために
<lamed, patah, CGJ
, hiriq, finalmem>
のように書きます。
>>4
[1]
通常結合文字の二重ダイアクリティカルマークはかなり外側に表示されます。
その他のダイアクリティカルマークと併用しようとしても、
内側に表示されてしまいます。
二重ダイアクリティカルマークに対してダイアクリティカルマークを表示させたいとき、
CGJ
が使えます。
>>164
[2]
U+0075
U+0361
U+0301
U+0069
は、
ui
の
u
の上に '
がつき、
それと i
の2文字が ⌒
で覆われます。
[3]
U+0075
U+0361
U+034F
U+0301
U+0069
とすると、
ui
の2文字が ⌒
で覆われ、その上の中央に '
がつきます。
>>164
[24] BabelStone Fonts : BabelStone Roman, https://babelstone.co.uk/Fonts/Roman.html
[7]
CGJ
は、
General_Category
= Mn
,
正準結合クラス = 0
の結合文字であって、
format control character
ではありません。
>>4
[8]
正準結合クラス 0 のため、
正準再順序付けによって
CGJ
をまたいだ結合文字の順序変更は行われません。
>>4
つまり通常なら
NFC
などの正規化で整列されてしまう結合文字の順序を維持したい時に使うことが出来ます。
[10]
従って
CGJ
は、
例外的な処理またはレンダリングのために通常なら区別されない結合文字の順序を区別したいとき、
使うことができます。
>>4
[17]
UCA
において
CGJ
を含む列に違う重みを持たせるよう
tailor
する、
例えば
<c, h>
と
<c, CGJ
, h>
で違う重みとすることができますが、
非推奨です。
>>4
[20]
ZWJ
とは違って続け字や合字には影響しません。
>>4
[21]
WORD JOINER
とは違って改行には影響しません。
>>4
[23] UTC #181 properties feedback & recommendations - Google Docs - 24224-utc181-properties-recs.pdf, , https://www.unicode.org/L2/L2024/24224-utc181-properties-recs.pdf#page=19
CGJ
は不可視でかつDefault_Ignorable_Code_Point
なので、 他の処理では問題を起こさないはずとされています。 >>4