<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
には
<dfn>annotation characters</dfn>
と称する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">特別<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Specials</title></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>の一種のようですが、
ほとんど使われていません。</p><section><h1>代替</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</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:">HTML</anchor> の <code>ruby</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>などの機能によって記述するべきです。</p></section><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="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> 
<cite>The Unicode Standard, Version 13.0 - ch23.pdf</cite>, <time>2020-03-09T17:53:52.000Z</time>, <time>2020-12-13T07:28:31.667Z</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/ch23.pdf#G27446">https://www.unicode.org/versions/latest/ch23.pdf#G27446</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><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">The Unicode Standard</anchor>, Version 12.0 - ch23.pdf</cite> (<time>2019-03-02 07:15:46 +09:00</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/ch23.pdf#G15944">https://www.unicode.org/versions/latest/ch23.pdf#G15944</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> 
<dfn>interlinear annotation</dfn>
は、
<dfn>annotated</dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>群の列に関係付けられた
<dfn>annotating text</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></src>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">paired stateful controls</anchor> です。</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> 
通常の<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:">annotated</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>の一部として扱います。
<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="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:">annotation character</anchor>
に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対応</anchor>する場合にあっては、
base text
を annotate されていない<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="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:">annotating text</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">main</rt></rubyb><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="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 
ただし、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotating text</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">base text</rt></rubyb>と同種の<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>のアルゴリズムでアクセス可能です。
<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="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:">annotation character</anchor>
に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対応</anchor>する場合にあっては、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotating text</anchor>
中の
annotating character
を通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>意味</anchor><rt xmlns="http://www.w3.org/1999/xhtml">semantics</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><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:">annotation character</anchor> は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotating text</anchor> と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotated</anchor> text
を区切り、
これを annotation の一部として示すものです。 <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><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="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotation characters</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%3Aannotation-characters">https://chars.suikawiki.org/set/%24unicode%3Aannotation-characters</anchor-external></li></ul></refs><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> 
<dfn><code class="char">U+FFF9</code></dfn>
<dfn><code class="charname" xml:lang="en">INTERLINEAR ANNOTATION ANCHOR</code></dfn>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">interlinear annotation</anchor> の前に来る 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="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 
<dfn><code class="char">U+FFFA</code></dfn>
<dfn><code class="charname" xml:lang="en">INTERLINEAR ANNOTATION SEPARATOR</code></dfn>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキストストリーム</anchor>中の base character 群を次の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotation character</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="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <code class="char">U+FFFA</code> は複数あっても構わず、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">複数部分<rt xmlns="http://www.w3.org/1999/xhtml">multipart</rt></rubyb>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotating text</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="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> 
<dfn><code class="char">U+FFFB</code></dfn>
<dfn><code class="charname" xml:lang="en">INTERLINEAR ANNOTATION TERMINATOR</code></dfn>
は、
annotation object を終端する
(通常の<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="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:">annotation character</anchor> は、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">外部<rt xmlns="http://www.w3.org/1999/xhtml">out-of-band</rt></rubyb>情報が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字ストリーム</anchor>に関連付けられているときに内部処理で使います。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotation</anchor>
の正確な性質や<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">書式付け<rt xmlns="http://www.w3.org/1999/xhtml">formatting</rt></rubyb>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平文ストリーム</anchor>の一部ではない追加の情報に依存します。
これは <code class="char">U+FFFC</code> <code class="charname" xml:lang="en">OBJECT REPLACEMENT CHARACTER</code>
とよく似ていますが、
<code class="char">U+FFFC</code>
はこの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>によって不透明なオブジェクトを隠すのに対し、
annotation の場合それ自体はテキストなのであります。
<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><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="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <cite xmlns="http://www.w3.org/1999/xhtml">Unicode Standard</cite> の規定はあやふやで用語も揺れまくっていて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">行間を読む</anchor>他ない惨状です。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の <code xmlns="http://www.w3.org/1999/xhtml">ruby</code>
を知っていれば、だいたい何をやりたかったのかは推測できます。</comment-p></section><section><h1>構文</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> 
anchor 文字は、
対応する
terminator 文字の前になければなりません。
<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> 
annotation
は入れ子にして構いません。
<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><figure class="railroad"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">interlinear annotation</anchor></figcaption><ol><li><code>U+FFF9</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotated</anchor></li><li>+<ol><li><code>U+FFFA</code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotating text</anchor></li></ol></li><li><code>U+FFFB</code></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotated</anchor> と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotating text</anchor>
に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改段落</anchor>を含むことはできません (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal>)。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>でも良いのかは定かではありません。</p></section><section><h1>文脈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotation character</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>と<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">注釈付け<rt xmlns="http://www.w3.org/1999/xhtml">annotating</rt></rubyb>の<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="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:">annotation character</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平文</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>がある場合を除き、
<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">strongly discouraged</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><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotation character</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:">interlinear annotation character</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotating text</anchor>
を削除するかのいずれかとするべきです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平文</anchor>の出力時に送信者が受信者を知らない場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">interlinear annotation character</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotating text</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></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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装</anchor>は、
anchor 文字の後、
terminator 文字の前に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改段落</anchor>が出現した場合、
開いている <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotation</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> 
組になっていない
anchor 文字や
terminator 文字は、
無視するべきです。
<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="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> 
anchor 文字と
terminator 文字の組の外側に出現した 
separator 文字は、
無視するべきです。
<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="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">照合</anchor>では、
annotation
を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整列キー</anchor>として使うことを想定する特殊な場合を除き、
無視するか、
任意選択により前処理して <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">tie breaker</anchor> としてのみ使うこととするのが普通です。
annotation base character 群は無視せず、
通常の<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></section><section><h1>レンダリング</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> 
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">書式付け<rt xmlns="http://www.w3.org/1999/xhtml">formatting</rt></rubyb>に関する情報は、
<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">out-of-band</rt></rubyb>に示されるかもしれません。
従って annotation marker は別情報源の情報にアクセスできる実装のための
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">placeholder</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="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</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:">JIS X 4051</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>
と説明されていますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 4051</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ルビ</anchor>のモデルに
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotation characters</anchor>
がどう当てはまりどう処理しどう表示するべきなのか、
説明が無さすぎます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> 
<cite>Unicode Standard</cite> の利用例図 <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>
にある通り、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ルビ</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>されることが想定されていますが、
利用方法は実装依存となっていて <cite>Unicode Standard</cite>
は完全に丸投げしています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> 
意図通りに正しくレンダリングする実装があるのかは不明であり、
主要な実装では皆無です。外部情報が必要とされ、
具体的なことは何も定められていないのですから、
実装できるはずもありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> 
未対応の実装は、
通常の未対応の<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="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;33</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bidi</anchor> アルゴリズムは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">interlinear annotation</anchor>
を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotated text</anchor> 
に置き換えた上で各々の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotated text</anchor>
が視覚的に連続するよう
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bidirectional format control character</anchor>
で囲んだ主たるテキストに適用するべきであり、
更にそれぞれの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annotating text</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></section><section><h1>実装</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <cite xml:lang="ja">5-0-5. Solstitium(txt→縦書きPDF変換ソフト)</cite>, <time>2020-11-12T14:58:48.000Z</time>, <time>2021-01-15T08:58:23.368Z</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.akenotsuki.com/eyeben/fonts/solstitium.html">http://www.akenotsuki.com/eyeben/fonts/solstitium.html</anchor-external></p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> 
<time>1996-04-18</time>, <time>1996-04-19</time>に
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Junichiro Kida</anchor>
が
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">8th Unicode conference</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>について講演しました <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="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;47</anchor-internal> #page=3</src>。
これが大いに話題になりました。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> 
<time>2024-08-26T03:50:50.500Z</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://ipsj.ixsq.nii.ac.jp/ej/index.php?action=pages_view_main&amp;active_action=repository_action_common_download&amp;item_id=59153&amp;item_no=1&amp;attribute_id=1&amp;file_no=1&amp;page_id=13&amp;block_id=8">https://ipsj.ixsq.nii.ac.jp/ej/index.php?action=pages_view_main&amp;active_action=repository_action_common_download&amp;item_id=59153&amp;item_no=1&amp;attribute_id=1&amp;file_no=1&amp;page_id=13&amp;block_id=8</anchor-external></li></ul><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="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> ここから分岐 <sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>ruby=&quot;&quot;</anchor> </sw-see></comment-p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> <cite xml:lang="ja">98055.pdf</cite>, 
Februrary 22, 1998,
<time>2005-04-07T21:19:01.000Z</time>, <time>2024-08-26T03:53:55.896Z</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/L1998/98055.pdf">https://www.unicode.org/L2/L1998/98055.pdf</anchor-external></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal> この時点では最終版より複雑なものが書けた。提案者
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Asmus Freytag</anchor>
は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 役員。</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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <time xmlns="http://www.w3.org/1999/xhtml">1994年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">1994</attrvalue></time>頃まで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Microsoft</anchor> 社員。</comment-p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <cite xml:lang="ja">L2/98-281 - 98281r.pdf</cite>, <time>2005-09-07T17:28:58.000Z</time>, <time>2024-08-26T07:37:58.252Z</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/L1998/98281r.pdf#page=20">https://www.unicode.org/L2/L1998/98281r.pdf#page=20</anchor-external></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;53</anchor-internal> 会議踊ってんなーw</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <cite xml:lang="ja">Unicode Meeting Minutes UTC 78, L2 #175 - 98419.pdf</cite>, <time>2005-09-07T17:29:28.000Z</time>, <time>2024-08-26T07:39:13.440Z</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/L1998/98419.pdf#page=24">https://www.unicode.org/L2/L1998/98419.pdf#page=24</anchor-external></li></ul><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> 
<cite xml:lang="ja">8929-re-ken.PDF - 98312.pdf</cite>, <time>2002-09-27T02:37:00.000Z</time>, <time>2024-08-26T03:57:41.520Z</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/L1998/98312.pdf#page=6">https://www.unicode.org/L2/L1998/98312.pdf#page=6</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> 
<cite>Source: Interlinear annotation ad hoc group</cite>, <time>2024-08-26T03:58:32.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://www.unicode.org/L2/L1998/98421.htm">https://www.unicode.org/L2/L1998/98421.htm</anchor-external></li></ul><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <cite>L2 Document Register 1998</cite>, <time>2024-08-26T03:59:13.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://www.unicode.org/L2/L1998/Register-1998.html">https://www.unicode.org/L2/L1998/Register-1998.html</anchor-external></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;50</anchor-internal> にはこの他にもいくつか関連文書が掲載されているが、本文は非公開。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> 
<cite>Body</cite>, <time>2024-08-26T07:42:41.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://www.unicode.org/L2/L1999/99176.htm">https://www.unicode.org/L2/L1999/99176.htm</anchor-external></li></ul></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</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:">HTML</anchor>
はこの機能を使わず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の仕組みに載せた
<code>ruby</code>
<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="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> 
もうちょっとうまいことモデル化して定義してあれば、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bidi</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>状構造をうまく扱える世界が実現していたかもしれないのに、
残念なことです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">21世紀</anchor>初頭にこれが出てきたときこんなの誰が実装するんだ阿呆か?みたいな空気だったそうですが(実際誰も実装しないで死んでったわけですが)、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bidi</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>も意外とこの方法で良かったかも知れんですよね。知らんけど。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bidi</anchor> もそれは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プレインテキスト</anchor>用で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</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:">HTML要素</anchor>の2段構えで全然良かった。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</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:">20世紀</anchor>の情報機器があまり対応してなかったりした 
(そして21世紀に入って何十年か経った今もいささか厳しい)
のは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ルビ</anchor>がない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本語</anchor>の処理にも苦労してたからで、
要らなかった、オプションだったからでは決してなくて。</p><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>要らんやろってのは<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:">bidi</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:">SNS</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="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</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:">bidi</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="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ARIB STD-B3のルビ</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>とは別のパケット構造で区切られていました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</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>2,3文字と決まっているのだし、そうでないものも一般的な日本語文で出現するパターンは限られているのだから、それを <code>GSUB</code> と <code>GPOS</code> でがんばれば今や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> フォント1つで「実装」できちゃいそうでは? もちろんこの方法には色々な限界があるのだけれども、それが問題になるところでは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の <code>ruby</code> でも <cite>Microsoft Word</cite> でも使えばよくて、今の普通の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">plain text</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">振り仮名</anchor>を全く使えないという問題は8割くらい解決できればそれでいいっていう考え方もあるんじゃないかな。 <time>2025-08-27T09:24:27.863Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</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>よりも宜しくないのがネックになるかも。) <time>2025-08-27T09:25:38.686Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">漢文</anchor>も難題とされてきたけど、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;57</anchor-internal> の手法でいいのであれば、 interlinear annotation と例の使い道のわからない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">漢文</anchor>ブロックの文字を活かして plain text でもかなりのことができちゃうんじゃないかなあ。 <time>2025-08-27T09:27:09.713Z</time></p></section></body></html>