require('lualibs')
-tableunpack = table.unpack
------------------------------------------------------------------------
local function load_lua(fn)
userid_table.BPAR = luatexbase.newuserwhatsitid('begin_par', 'luatexja') -- 「段落始め」
userid_table.DIR = luatexbase.newuserwhatsitid('direction', 'luatexja') -- 組方向
userid_table.BOXB = luatexbase.newuserwhatsitid('box_boundary', 'luatexja') -- 「ボックス始め・終わり」
+userid_table.JA_AL_BDD = luatexbase.newuserwhatsitid('ja_al_boundary', 'luatexja')
local dir_table = {}
luatexja.dir_table = dir_table
if luatexja_debug then load_module('debug') end
+load_module('lotf_aux'); local ltju = luatexja.lotf_aux
load_module('charrange'); local ltjc = luatexja.charrange
load_module('stack'); local ltjs = luatexja.stack
load_module('direction'); local ltjd = luatexja.direction -- +1 hlist +1 attr_list
end
local prefix, inner_depth
-
+local utfchar = utf.char
local function debug_show_node_X(p,print_fn, limit)
local k = prefix
local s
.. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' '
if pt == 'glyph' then
s = base .. ' ' ..
- (p.char>=0xF0000 and string.format('(U+%X)', p.char) or utf.char(p.char)) .. ' '
+ (p.char<0xF0000 and utfchar(p.char) or '')
+ .. string.format(' (U+%X) ', p.char)
.. tostring(p.font) .. ' (' .. print_scaled(p.height) .. '+'
.. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
if p.xoffset~=0 or p.yoffset~=0 then
.. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
.. ', dir=' .. tostring(node.has_attribute(p, attr_dir))
print_fn(s)
+ elseif pt=='disc' then
+ print_fn(s)
+ local bid = inner_depth
+ if inner_depth < limit then
+ prefix, inner_depth = k.. 'p.', inner_depth + 1
+ for q in node.traverse(p.pre) do
+ debug_show_node_X(q, print_fn, limit)
+ end
+ prefix = k.. 'P.'
+ for q in node.traverse(p.post) do
+ debug_show_node_X(q, print_fn, limit)
+ end
+ prefix = k.. 'R.'
+ for q in node.traverse(p.replace) do
+ debug_show_node_X(q, print_fn, limit)
+ end
+ end
+ prefix=k
elseif pt == 'glue' then
s = base .. ' ' .. print_spec(p)
if get_attr_icflag(p)>icflag_table.KINSOKU
end
prefix = k;
elseif pt=='math_char' then
- s = base .. ' fam: ' .. p.fam .. ' , char = ' .. utf.char(p.char)
+ s = base .. ' fam: ' .. p.fam .. ' , char = ' .. utfchar(p.char)
print_fn(s)
elseif pt=='sub_box' or pt=='sub_mlist' then
print_fn(base)