LuaTeX-jaのグルー挿入の仕様

フォーラム #57219 の内容だと判りにくいと思うので、 仕様の策定のサンプルとして用意しました。 ここに書かれている内容自体は、あまり吟味されたものでなく、 また pTeX での仕様でも現状の LuaTeX-ja の仕様でもないことに注意してください。

凡例

[K] 和文間空白(kanjiskip)
[X] 和欧文間空白(xkanjiskip)
[M] JFM に基づくグルー
  • 「安全な」hbox = 空でなく垂直変位のない hbox

原則

  • [K] と [X] は択一の関係とし、一括して挙動を定める。
  • グループ境界や \relax 等の「ノードを生じない」要素はそもそも LuaTeX-ja の callback の処理の中で判別できないので、 これらは自動的に無視される。

透過条件

要素 [K]/[X] [M]
(2) 安全な hbox の境界 ×
(3) 空の hbox × ×
(4a) 明示的ペナルティ ×
(4b) 明示的グルー × ×
(4c) 明示的カーン × ×
(5) 数式境界 ×

適用([K]/[X])

要素 Z 和文-Z 間 Z-和文間
(a) 欧文文字 X X
(b) 和文文字 K K
(c) 非透過 hbox 先頭 - -
(c') 非透過 hbox 末尾 - -
(d) (行分割後)行頭 - -
(d') (行分割後)行末 - -
(e) 矩形 - -
(4b) 明示的グルー - -
(4c) 明示的カーン - -
  • X = [X] を挿入。 ただし、autoxspacing、jaxspmode、alxspmode の設定により抑止される場合あり。
  • K = [K] を挿入 ただし、autospacing の設定により抑止される場合あり。
  • - = 挿入なし。
  • ただし「挿入なし」の場合、 和文前後で行分割可能にするために、 実際にはゼロのグルーかペナルティが必要かも知れない。

適用([M])

(省略)