--------------------- idea
--- 2 node の間に glue/kern/penalty を挿入する.
--- 基本方針: char node q と char node p の間
-
--- Np: 「p を核とする塊」
--- first: 最初の node,nuc: p,last: 最後の node
--- id: 核 node の種類
--- Nq: 「q を核とする塊」
--- 実際の glue は Np.last, Nq.first の間に挿入される
--- Bp: Np.last, Nq.first の間の penalty node 達の配列
-
--- Np, Nq, Bp, widow_Bp について
--- Np, Nq は別々のテーブル.
--- 1回のループごとに Nq = Np, Np = (new table) となるのは効率が悪いので,
--- Np <-> Nq 入れ替え,その後 Np をクリアすることでテーブルを再利用.
--- 同様の関係は Bp, widow_Bp にも.
-
-
--- 核の定義:
--- node x が non-char node のときは,x のみ
--- x が char_node のときは,
--- - x が \accent の第二引数だったとき
--- [kern2 kern y kern2] x の 3 node が核に加わる
--- - x の直後に \/ 由来 kern があったとき
--- その \/ 由来の kern が核に加わる
--- p, q の走査で無視するもの:
--- ins, mark, adjust, whatsit, penalty
---
--- Nq.last .. Bp.first .... Bp[last] .... * .. Np.first
--- *: jfm glue はここに入る
-