→Unicodeのノウハウ
>Fet-Fe 細編集の要約なし |
>Fet-Fe |
||
216行目: | 216行目: | ||
ゼロ幅接合子(U+200D)もゼロ幅の文字であるが、こちらは接合することのできる文字を接合形に変形する。 | ゼロ幅接合子(U+200D)もゼロ幅の文字であるが、こちらは接合することのできる文字を接合形に変形する。 | ||
デーヴァナーガリーの子音字にヴィラーマを付けたものは後続の子音字と結合するが、ゼロ幅接合子を置けば後続子音字が無くても接合形をとる。 | デーヴァナーガリーの子音字にヴィラーマを付けたものは後続の子音字と結合するが、ゼロ幅接合子を置けば後続子音字が無くても接合形をとる。 | ||
ञ + | ञ + ◌् + U+200D → ञ् + U+200D → ञ् | ||
アラビア文字でも同様になる。 | アラビア文字でも同様になる。 | ||
223行目: | 223行目: | ||
この例ではカシーダ(ARABIC TATWEEL、U+0640)を用いてبを頭字形にしているが、カシーダの分長くなってしまうので<span lang="ar" dir="rtl">«ب‍؜Toshiba»</span>のようにゼロ幅接合子を用いるのが良い。 | この例ではカシーダ(ARABIC TATWEEL、U+0640)を用いてبを頭字形にしているが、カシーダの分長くなってしまうので<span lang="ar" dir="rtl">«ب‍؜Toshiba»</span>のようにゼロ幅接合子を用いるのが良い。 | ||
なおソーステキスト上では<code>ب&#x200D;&#x061C;Toshiba</code>のように[[#双方向テキスト|Arabic letter mark]]と組み合わせている。 | なおソーステキスト上では<code>ب&#x200D;&#x061C;Toshiba</code>のように[[#双方向テキスト|Arabic letter mark]]と組み合わせている。 | ||
これは本来L属性扱いになるゼロ幅接合子をAL属性に変えるためである。 | |||
=== 双方向テキスト === | === 双方向テキスト === | ||
230行目: | 230行目: | ||
そのため普通にアラビア文字などrtl属性の文字を書くと、ピリオドがラテン文字のものと共通しているためにそれだけ右側に行ってしまう。 | そのため普通にアラビア文字などrtl属性の文字を書くと、ピリオドがラテン文字のものと共通しているためにそれだけ右側に行ってしまう。 | ||
: <span lang="ar">أَقْتُلُ تَاكَاهِيرُو كَارَاسَاوَا.</span> | :<span lang="ar">أَقْتُلُ تَاكَاهِيرُو كَارَاسَاوَا.</span> | ||
ピリオドの後ろにRight-to-left mark (U+200F, <code>&rlm;</code>)やArabic letter mark(U+061C)を付ければ正しい表示がなされる。 | ピリオドの後ろにRight-to-left mark (RLM, U+200F, <code>&rlm;</code>)やArabic letter mark(ALM, U+061C)を付ければ正しい表示がなされる。 | ||
下の例では、<code><nowiki><span lang=" | 下の例では、<code><nowiki><span lang="he">אהרוג את טאקאהירו קאראסאווה.&rlm;</span></nowiki></code>と<code><nowiki><span lang="ar">أَقْتُلُ تَاكَاهِيرُو كَارَاسَاوَا.&#x061C;</span></nowiki></code>と記述した。 | ||
:<span lang=" | :<span lang="he">אהרוג את טאקאהירו קאראסאווה.‏</span> | ||
:<span lang="ar">أَقْتُلُ تَاكَاهِيرُو كَارَاسَاوَا.؜</span> | :<span lang="ar">أَقْتُلُ تَاكَاهِيرُو كَارَاسَاوَا.؜</span> | ||
RLMとALMとの違いは、Unicodeの双方向アルゴリズム<ref>[http://www.unicode.org/reports/tr9/ Unicode® Standard Annex #9 UNICODE BIDIRECTIONAL ALGORITHM]</ref>に関係している。 | |||
Unicodeの各文字にはBidirectional Character Typeが設定されている<ref>[https://www.unicode.org/reports/tr9/#Bidirectional_Character_Types 3.2 Bidirectional Character Types] - Unicode</ref>。 | |||
このうち強い属性としてはL (左から右)、R (右から左)、AL (アラビア文字の右から左)がある。 | |||
RLMはR属性、ALMはAL属性を持つ。 | |||
これらは双方向アルゴリズムに於いて後続する弱い属性の扱いに影響する。 | |||
例えば[https://www.unicode.org/reports/tr9/#W2 W2]という手続きでは、AL属性の文字の後ろにEN (European Number)が後続する場合、そのENはAN (Arabic Number)扱いになるが、R属性に後続するENはENのままとなる。 | |||
AL属性の文字には、アラビア文字の他にもシリア文字、ターナ文字、ハニーフィー・ロヒンギャ文字、ソグド文字などがある<ref>[https://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedBidiClass.txt DerivedBidiClass.txt] - Unicode</ref>。 | |||
HTMLで同様の動作をさせるには[[#dir属性]]を参照。この方法と組み合わせても良い<ref>[https://www.w3.org/TR/unicode-xml/#Format Format Characters Suitable for Use with Markup] - W3C Working Group Note</ref>。 | HTMLで同様の動作をさせるには[[#dir属性]]を参照。この方法と組み合わせても良い<ref>[https://www.w3.org/TR/unicode-xml/#Format Format Characters Suitable for Use with Markup] - W3C Working Group Note</ref>。 |