[8] U+200D
ZERO WIDTH JOINER
は、
インド系諸文字において consonant-conjuct context (virama の直後)
にあって当該 conjunct の表示を制御します。 >>1
[20]
ANSEL の C1制御文字 JOINER
は
Unicode の ZWJ
に対応付けられています。
[29] BabelStone Fonts : BabelStone Roman, https://babelstone.co.uk/Fonts/Roman.html
[23] OpenType development (LEGACY INFORMATION) - Typography | Microsoft Docs, nihar, https://docs.microsoft.com/ja-jp/typography/develop/otdevinfo#suggested-glyphs-for-complex-scripts
[25] 26487 - ZWJ (U+200D) format control should NOT be rendered with its own glyph - chromium, https://bugs.chromium.org/p/chromium/issues/detail?id=26487
[38] CJK統合漢字合字に対応したフォントは
ZWJ
で漢字を連結する形になっていて、
liga
などで置換しています。
[198]
>>38 この ZWJ
を使った合字、
横書きならうまくいきますが、
縦書きだと Windows の Chrome だと
liga
だろうと ccmp
だろうと、
認識されずに前後2文字ばらばらに縦に並べられてしまいます。
[200]
ZWJ
の合字でなく基底文字と結合文字の
ccmp
だと縦書きでも正常に表示されます。
結合文字でなく ZWJ
が入る時は合字化の処理より先に縦書きのための書記素クラスターの分割が行われてしまうということなのでしょうか。
[201]
Windows の Firefox だと ccmp
は正常に合字化されます。
liga
はデフォルトで無視されますが、
font-feature-settings: "liga"
だと正常に合字化されます。
(Chrome はそれを指定しても変わらない。)
横書きなら自動適用される liga
が縦書きだとデフォルト無効なのでしょうか。
[24] CJK統合漢字だけでなく仮名でも同じ問題があります。 やはり Chrome では駄目、 Firefox では正常です。
[31]
似た意味の文字だと ZWJ
の他に WJ
でも同じような不具合があります。
[32]
CGJ
ではこのような問題は起きません。 ZWJ
とは意味が微妙に違い、
CGJ
では ZWJ
の代替にはならないのですが、
やむを得ず他の文字で代替するなら CGJ
が一番ましかもしれません。
[10] 逆を表す ZERO WIDTH NON-JOINER
もあります。
[17]
ZWSP
とは違って
word break
や
line break
には影響しません。
>>18
[19]
文脈を提供する文字という機能は
LRM
,
RLM
,
ALM
と似ています。
[22] 2011-08-six-years-of-persian-domain-names.pdf, , https://persian-computing.org/archives/IRNIC/2011-08-six-years-of-persian-domain-names.pdf
[14] Emoji ZWJ Sequences Catalog () http://www.unicode.org/emoji/charts/emoji-zwj-sequences.html
[13] Editorial: remove ZERO WIDTH JOINER characters (ricea著, ) https://github.com/whatwg/streams/commit/c58d42aa731cd494c522c90e6eeefd66cbc25b3b
[26] CSS に 4 つの新しい国際化機能を導入 | Blog | Chrome for Developers, , https://developer.chrome.com/blog/css-i18n-features?hl=ja
境界検出は ML エンジンによって実行されるため、意図したとおりの結果が得られない可能性があります。そのような場合は、ブレークポイントを手動で調整できます。
<wbr>
タグまたは Zero Width Space(​
)は中断可能な点を適用し、Zero Width Joiner(‍
)は中断を防ぎます。
[27] 日本語に ZWSP
や ZWJ
を挿入させる慣習は現在存在しないわけだが、これによって今後増えたりするんだろうか?
ZWJ
入の絵文字列だと (表示上は1文字だろうが2文字だろうが) 文字列の選択に対して1文字扱いになりますが、 漢字列の方は2文字扱いです。 適切なフォントがあれば Firefox は横書きでも縦書きでも1文字、なければ2文字で表示し、 Chrome は横書きなら1文字か2文字、縦書きならフォントがあろうが2文字で表示します。 ということは Firefox も Chrome も既知のZWJ
かどうかで挙動を変えているのですが、 Chrome はそれとは別に縦書きの実装が弱いと考えられます。