<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite>The Unicode Standard, Version 13.0 - ch03.pdf</cite>, <time>2020-03-09T17:53:34.000Z</time>, <time>2020-12-31T08:45:19.650Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.unicode.org/versions/latest/ch03.pdf#G50313">https://www.unicode.org/versions/latest/ch03.pdf#G50313</anchor-external></li></ul></refs></section><section><h1>結合クラス</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>は、
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor><ruby xmlns="http://www.w3.org/1999/xhtml">結合<rt>けつごう</rt></ruby>クラス<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">結合クラス</title></anchor><rt xmlns="http://www.w3.org/1999/xhtml">combining class</rt></rubyb></f></dfn>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">特性<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字特性</title></anchor> <dfn><code>Canonical_Combining_Class</code></dfn>, <dfn><code>ccc</code></dfn>)
を持ちます。
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合クラス</f>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正準順序付けアルゴリズム</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合マーク</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正準等価性</anchor>の決定に使う
[ <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">254</n> ] 
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> D104</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 
<code>Canonical_Combining_Class</code>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UCD</anchor>
の
<code>UnicodeData.txt</code>
で定義されます。
<dfn><code>DerivedCombiningClass.txt</code></dfn>
にも収録されています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> D104</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 
データファイルに明記されていないときの既定値は、
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> D104</src></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 
<code>ccc</code>
が
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
以外なのは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合マーク</anchor>だけです。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> D104</src><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 
<code>ccc</code>
が非 <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
のほとんどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合マーク</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">nonspacing mark</anchor>
です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> D104</src></li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">nonspacing mark</anchor>
には、
<code>ccc</code>
が非 <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
では<em>ない</em>ものもあります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> D104</src></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 
<code>ccc</code> = <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合文字</anchor>には、
例えば
<code class="charname" xml:lang="en">CGJ</code>
があります。</li></ul><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> 
<code>Canonical_Combining_Class</code> ごとの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor>の一覧
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://chars.suikawiki.org/set#:~:text=$unicode:Canonical_Combining_Class:">https://chars.suikawiki.org/set#:~:text=$unicode:Canonical_Combining_Class:</anchor-external><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 
<code>ccc</code> = <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号点</anchor>の一覧
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://chars.suikawiki.org/set/%24unicode%3ACanonical_Combining_Class%3A0">https://chars.suikawiki.org/set/%24unicode%3ACanonical_Combining_Class%3A0</anchor-external></li></ul></li></ul></refs><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ruby xmlns="http://www.w3.org/1999/xhtml">固定位置<rt>こていいち</rt></ruby>クラス<rt xmlns="http://www.w3.org/1999/xhtml">fixed position class</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合クラス</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分集合</anchor>で、
範囲
[ <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">10</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">199</n> ]
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> D105</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">固定位置クラス</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘブライ文字</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アラビア文字</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シリア文字</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テルグ文字</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タイ文字</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラオス文字</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">チベット文字</anchor>の少数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合マーク</anchor>のみに適用され、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">grapheme base</anchor>
に対して固定された位置に出現するものを表しています。
適用対象となる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合文字</anchor>には
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Arabic vowel point</anchor>
や
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Indic matras</anchor>
のような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">母音記号</anchor>の一部が含まれますが、
すべてではありません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> D105</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">固定位置クラス</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化形</anchor>の正式な標準化に先立つ開発の初期段階に由来する歴史的遺物とされます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> D105</src></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> 
<code>ccc</code>
は、元々、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">typograph的相互作用</anchor>を持つ
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">nonspacing mark</anchor>
を同じ値でグループ化すべく定められました。
<code>ccc</code>
を使って行われる
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">canonical ordering</anchor>
は、
通常は、</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <var>C1</var> と <var>C2</var> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">typograph的相互作用</anchor>するなら、
&lt;<var>C1</var>, <var>C2</var>&gt;,
&lt;<var>C2</var>, <var>C1</var>&gt;
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正準等価</anchor>では<em>ない</em></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <var>C1</var> と <var>C2</var> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">typograph的相互作用</anchor><em>しない</em>なら、
&lt;<var>C1</var>, <var>C2</var>&gt;,
&lt;<var>C2</var>, <var>C1</var>&gt;
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正準等価</anchor>である</li></ul><p>... となります。
ところが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">固定位置クラス</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合文字</anchor>など、
一部には
<code>ccc</code>
が違うのに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">typograph的相互作用</anchor>するケースもあります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 
それ故に
<code>ccc</code>
が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">規定</anchor>として使われるのは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正準順序付けアルゴリズム</anchor>だけです。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> 
<code>ccc</code>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合文字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">typograph的相互作用</anchor>については<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">指針</anchor>としてのみ扱う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> (<time>2024-08-25T23:05:31.000Z</time>, <time>2025-01-18T12:28:32.636Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.unicode.org/Public/16.0.0/ucd/extracted/DerivedCombiningClass.txt">https://www.unicode.org/Public/16.0.0/ucd/extracted/DerivedCombiningClass.txt</anchor-external></p></section></body></html>