-
-do
- local node_remove, node_next, node_prev = node.remove, node.next, node.prev
- function luatexja.node_remove (head, current)
- if head==current then
- local q, r = node_next(current), node_prev(current)
- current.next = nil
- if q then q.prev = r end
- if r and node_next(r)==current then -- r is "real prev"
- r.next = q
- end
- return q, q
- else
- return node_remove(head, current)
- end
- end
-
- local Dnode = node.direct or node
- if Dnode~=node then
- local Dnode_remove = Dnode.remove
- local Dnode_next, Dnode_prev = Dnode.getnext, node.getprev
- local getfield, setfield = Dnode.getfield, Dnode.setfield
- function luatexja.Dnode_remove (head, current)
- if head==current then
- local q, r = Dnode_next(current), Dnode_prev(current)
- setfield(current, 'next', nil)
- if q then setfield(q, 'prev', r) end
- if r and Dnode_next(r) == current then -- r is "real prev"
- setfield(r, 'next', q)
- end
- return q, q
- else
- return Dnode_remove(head, current)
- end
- end
- else
- luatexja.Dnode_remove = luatexja.node_remove
- end
-
-end
-
+userid_table.DIR = luatexbase.newuserwhatsitid('direction', 'luatexja') -- 組方向
+userid_table.BOXB = luatexbase.newuserwhatsitid('box_boundary', 'luatexja') -- 「ボックス始め・終わり」
+
+local dir_table = {}
+luatexja.dir_table = dir_table
+dir_table.dir_dtou = 1
+dir_table.dir_tate = 3
+dir_table.dir_yoko = 4
+dir_table.dir_math_mod = 8
+dir_table.dir_node_auto = 128 -- 組方向を合わせるために自動で作られたもの
+dir_table.dir_node_manual = 256 -- 寸法代入によって作られたもの
+dir_table.dir_utod = dir_table.dir_tate + dir_table.dir_math_mod
+ -- 「縦数式ディレクション」 in pTeX