<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">The Unicode Standard</anchor>, Version 13.0 - ch23.pdf</cite>, <time>2020-03-09T17:53:52.000Z</time>, <time>2020-12-13T07:04:21.399Z</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/Unicode13.0.0/ch23.pdf#G16327">https://www.unicode.org/versions/Unicode13.0.0/ch23.pdf#G16327</anchor-external></li><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 xml:lang="en-us">UAX #9: Unicode Bidirectional Algorithm</cite>, <time>2020-03-06T22:23:12.000Z</time>, <time>2020-12-13T07:03:33.128Z</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://unicode.org/reports/tr9/#Directional_Formatting_Characters">https://unicode.org/reports/tr9/#Directional_Formatting_Characters</anchor-external></li><li><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> <cite xml:lang="en-us">UAX #44: Unicode Character Database</cite>, <time>2020-03-06T22:23:11.000Z</time>, <time>2020-12-13T07:04:05.388Z</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/reports/tr44/#Bidi_Control">https://www.unicode.org/reports/tr44/#Bidi_Control</anchor-external></li></ul></refs></section><section><h1>意味</h1><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> 
<dfn>bidirectional ordering controls</dfn>
である<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>は、
<cite>The Unicode Standard</cite>
で規定されています。
その用途は 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UAX #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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bidirectional ordering controls</anchor>
は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">書式制御文字</anchor>です。</p><p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UCD</anchor>
には<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>Bidi_Control</code></dfn>
があります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UAX #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="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></p><p><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:">bidirectional ordering controls</anchor>
と
<code>Bidi_Control</code>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字の集合</anchor>として一致しているようです。</p><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="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bidirectional ordering controls</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%3Abidirectional-ordering-controls">https://chars.suikawiki.org/set/%24unicode%3Abidirectional-ordering-controls</anchor-external></li><li><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>Bidi_Control</code>
の一覧
<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%3ABidi_Control">https://chars.suikawiki.org/set/%24unicode%3ABidi_Control</anchor-external></li></ul></refs></section><section><h1>構文</h1><p><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 class="charname" xml:lang="en">LRE</code>,
<code class="charname" xml:lang="en">RLE</code>,
<code class="charname" xml:lang="en">LRO</code>,
<code class="charname" xml:lang="en">RLO</code>
は、
通常
<code class="charname" xml:lang="en">PDF</code>
と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">組にして使います<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">paired stateful controls</title></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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><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> 
<code class="charname" xml:lang="en">LRI</code>,
<code class="charname" xml:lang="en">RLI</code>,
<code class="charname" xml:lang="en">FSI</code>
は、
通常
<code class="charname" xml:lang="en">PDI</code>
と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">組にして使います<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">paired stateful controls</title></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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></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> 
<code class="char">U+200E</code> <code class="charname" xml:lang="en">LEFT-TO-RIGHT MARK</code>,
<code>U+200F</code> <code class="charname" xml:lang="en">RIGHT-TO-LEFT MARK</code>,
<sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+061C</sw-cc> <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ARABIC LETTER MARK</sw-cn>
は、
単独で用います。
<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><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> 不可視で文脈を提供するという点では
<code xmlns="http://www.w3.org/1999/xhtml" class="charname" xml:lang="en">ZWJ</code>,
<code xmlns="http://www.w3.org/1999/xhtml" class="charname" xml:lang="en">ZWNJ</code>
と似ています。</comment-p></section><section><h1>処理</h1><p><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> 
<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>処理では、
無視する<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><p><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> 
ただし、<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:">bidi</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p></section><section><h1>レンダリング</h1><p><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> <cite xml:lang="ja-jp">OpenType development (LEGACY INFORMATION) - Typography | Microsoft Docs</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">nihar</anchor>, <time>2022-08-27T06:51:43.000Z</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://docs.microsoft.com/ja-jp/typography/develop/otdevinfo#suggested-glyphs-for-complex-scripts">https://docs.microsoft.com/ja-jp/typography/develop/otdevinfo#suggested-glyphs-for-complex-scripts</anchor-external></p></section><section><h1><sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+061C</sw-cc> <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ARABIC LETTER MARK</sw-cn></h1><p><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> <cite xml:lang="ja">Microsoft Word - 11-005-arabic-letter-mark.doc - 11005-arabic-letter-mark.pdf</cite>, <time>2011-01-18T00:58:46.000Z</time>, <time>2024-07-08T01:19:22.570Z</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="http://www.unicode.org/L2/L2011/11005-arabic-letter-mark.pdf">http://www.unicode.org/L2/L2011/11005-arabic-letter-mark.pdf</anchor-external></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> <cite xml:lang="ja">16306-alm-script-prop.pdf</cite>, <time>2016-10-28T21:16:26.000Z</time>, <time>2024-07-08T01:19:29.334Z</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/L2/L2016/16306-alm-script-prop.pdf">https://www.unicode.org/L2/L2016/16306-alm-script-prop.pdf</anchor-external></p></section><section><h1>メモ</h1></section></body></html>