Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TTWG BiDi関係メモ #8

Open
himorin opened this issue Jan 19, 2021 · 0 comments
Open

TTWG BiDi関係メモ #8

himorin opened this issue Jan 19, 2021 · 0 comments

Comments

@himorin
Copy link
Owner

himorin commented Jan 19, 2021

  • XSL-FO 2.0 (2.0の改訂になるとCSSの最新っぽい感になる)
    • Unicode BiDi: UAX #9的にBiDiレベルが変わる場所でfo:bidi-overrideが入るように変換時にツリーが書き換えられるが、失敗するところでは手動で入れられる
    • writing mode properties
      • direction: inlineにのみ効く
        • inline-levelに影響させるにはunicode-bidiがembedかbidi-overrideでないといけない
        • 初期値は上位からのwriting-modeに合わせて設定され、必要ならこの設定値で上書きされる
      • unicode-bidi: UAX #9的BiDiのレベルの制御
        • embed: inline-elementにおいてレベルを上げる (LRE/RLE/PDF)
        • bidi-override: directionでの指示で上書きする (LRO/RLO/PDF)
  • UAX #9
    • 文字毎のbidi type: strong/weak/neutral
    • bidi control文字、embed/override/isolate
    • UBAの4段階処理: パラグラフ分割、文字毎情報初期化、レベル・bidi処理をアサインしていく、表示用に再配列
    • 計算アルゴリズム
      • パラグラフレベル(Px)では文字のbidi typeからparagraph embedding levelを設定、またisolating runというbidiが変化しない部分に分割
      • 明示的処理(Xx)では先頭から制御文字を探してbidi embedding levelを順次計算していく
      • Weak bidi typeについて前後を参照しながらbidi embedding levelを順次計算(Wx)していく
      • Neutralについて前後文字のtypeにより計算(Nx)し、open/closeの方向も変更しながらアサイン、残ったものはembedded
      • Isolateについて処理(Ix)
      • 高次のマークアップによる上書き (HLx)
        • HL1: P3処理(paragraph embedding levelの決定)を上書きし、指定されたbidiの設定を適用する (ltr/rtl)
        • HL2: W2処理(数値のAN/ENの処理、ALあるときにANにする)を上書きし、EN/ANを明示的に設定
        • HL3: explicit directional formatting characterの定義をマークアップ仕様で行える
        • HL4: 特定の状況下で表示の際に変更可能にする (編集画面とか)、HL1の一般形
        • HL5: 直前文字の設定のようなコンテキストの指定を可能にする、HL3の一般形
        • HL6: 特定のコンテキストでBidi_Mirroredが適用されたように扱う
  • TTML issues
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant