-- EXT: print parameters that don't need arguments
do
+ local tex_getattr = tex.getattribute
+ local function getattr(a)
+ local r = tex.getattribute(a)
+ return (r==-0x7FFFFFFF) and 0 or r
+ end
luatexja.unary_pars = {
yalbaselineshift = function(t)
- return print_scaled(tex.getattribute('ltj@yablshift'))..'pt'
+ return print_scaled(getattr('ltj@yablshift'))..'pt'
end,
yjabaselineshift = function(t)
- return print_scaled(tex.getattribute('ltj@ykblshift'))..'pt'
+ return print_scaled(getattr('ltj@ykblshift'))..'pt'
end,
talbaselineshift = function(t)
- return print_scaled(tex.getattribute('ltj@tablshift'))..'pt'
+ return print_scaled(getattr('ltj@tablshift'))..'pt'
end,
tjabaselineshift = function(t)
- return print_scaled(tex.getattribute('ltj@tkblshift'))..'pt'
+ return print_scaled(getattr('ltj@tkblshift'))..'pt'
end,
kanjiskip = function(t)
return print_spec(ltjs.get_stack_skip(stack_table_index.KSK, t))
return ltjs.get_stack_table(stack_table_index.JWP, 0, t)
end,
autospacing = function(t)
- return tex.getattribute('ltj@autospc')
+ return getattr('ltj@autospc')
end,
autoxspacing = function(t)
- return tex.getattribute('ltj@autoxspc')
+ return getattr('ltj@autoxspc')
end,
differentjfm = function(t)
local f, r = luatexja.jfmglue.diffmet_rule, '???'
local base = prefix .. string.format('%X', get_attr_icflag(p))
.. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' '
if pt == 'glyph' then
- s = base .. ' ' .. utf.char(p.char) .. ' '
- .. tostring(p.font)
- .. ' (' .. print_scaled(p.height) .. '+'
+ s = base .. ' ' ..
+ (p.char>=0xF0000 and string.format('(U+%X)', p.char) or utf.char(p.char)) .. ' '
+ .. tostring(p.font) .. ' (' .. print_scaled(p.height) .. '+'
.. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
- .. ' off: (' .. print_scaled(p.xoffset)
- .. ',' .. print_scaled(p.yoffset) .. ')'
+ if p.xoffset~=0 or p.yoffset~=0 then
+ s = s .. ' off: (' .. print_scaled(p.xoffset)
+ .. ',' .. print_scaled(p.yoffset) .. ')'
+ end
print_fn(s)
elseif pt=='hlist' or pt=='vlist' or pt=='unset'or pt=='ins' then
if pt=='ins' then
elseif pt=='noad' then
s = base ; print_fn(s)
if p.nucleus then
- prefix = k .. 'N'; debug_show_node_X(p.nucleus, print_fn);
+ prefix = k .. 'N'; debug_show_node_X(p.nucleus, print_fn, limit);
end
if p.sup then
- prefix = k .. '^'; debug_show_node_X(p.sup, print_fn);
+ prefix = k .. '^'; debug_show_node_X(p.sup, print_fn, limit);
end
if p.sub then
- prefix = k .. '_'; debug_show_node_X(p.sub, print_fn);
+ prefix = k .. '_'; debug_show_node_X(p.sub, print_fn, limit);
end
prefix = k;
elseif pt=='math_char' then