diff options
Diffstat (limited to 'macros/luatex/generic/luatexja/src/ltj-setwidth.lua')
-rw-r--r-- | macros/luatex/generic/luatexja/src/ltj-setwidth.lua | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/macros/luatex/generic/luatexja/src/ltj-setwidth.lua b/macros/luatex/generic/luatexja/src/ltj-setwidth.lua index 03ec44fe13..a4073936f0 100644 --- a/macros/luatex/generic/luatexja/src/ltj-setwidth.lua +++ b/macros/luatex/generic/luatexja/src/ltj-setwidth.lua @@ -33,7 +33,6 @@ local getoffsets = node.direct.getoffsets or function(n) local node_traverse_id = node.direct.traverse_id local node_traverse = node.direct.traverse -local node_new = node.direct.new local node_copy = node.direct.copy local node_remove = node.direct.remove local node_tail = node.direct.tail @@ -43,6 +42,7 @@ local set_attr = node.direct.set_attribute local node_insert_before = node.direct.insert_before local node_insert_after = node.direct.insert_after local round = tex.round +local node_new = luatexja.dnode_new local id_glyph = node.id 'glyph' local id_kern = node.id 'kern' @@ -76,6 +76,7 @@ do end end + local ltjw = {} --export luatexja.setwidth = ltjw @@ -114,7 +115,7 @@ local function capsule_glyph_yoko(p, met, char_data, head, dir) setoffsets(p, xo - fshift.left, yo - kbl - fshift.down) return node_next(p), head, p elseif ht_diff >= 0 and dp_diff >=0 then -- rule - local box = node_new(id_rule,rule_subtype) + local box = node_new(id_rule, rule_subtype, p) local xo, yo = getoffsets(p) setoffsets(p, xo, yo - kbl - fshift.down) setwhd(box, 0, fheight - kbl, fdepth + kbl) @@ -140,7 +141,7 @@ local function capsule_glyph_yoko(p, met, char_data, head, dir) setoffsets(p, xo + char_data.align*(fwidth-pwidth) - fshift.left, yo - fshift.down); setnext(p, nil) - local box = node_new(id_hlist) + local box = node_new(id_hlist, nil, p) setwhd(box, fwidth, fheight, fdepth) setfield(box, 'head', p) setfield(box, 'shift', kbl) @@ -170,7 +171,7 @@ local function capsule_glyph_tate_rot(p, met, char_data, head, dir, asc) setoffsets(p, xo + char_data.align*(fwidth-pwidth) - fshift.left, yo - fshift.down - asc); setnext(p, nil) - local box = node_new(id_hlist) + local box = node_new(id_hlist, nil, p) setwhd(box, fwidth, fheight, fdepth) setfield(box, 'head', p) setfield(box, 'shift', kbl) @@ -216,7 +217,7 @@ local function capsule_glyph_tate(p, met, char_data, head, dir) local y_shift = xo + (has_attr(p,attr_tkblshift) or 0) local q head, q = node_remove(head, p) - local box = node_new(id_hlist) + local box = node_new(id_hlist, nil, p) setwhd(box, fwidth, fheight, fdepth) setfield(box, 'shift', y_shift) setdir(box, dir) @@ -254,7 +255,7 @@ local function capsule_glyph_math(p, met, char_data) = - getfield(p, 'yoffset') + (has_attr(p,attr_ykblshift) or 0) setfield(p, 'yoffset', -fshift.down) setfield(p, 'xoffset', getfield(p, 'xoffset') + char_data.align*(fwidth-pwidth) - fshift.left) - local box = node_new(id_hlist); + local box = node_new(id_hlist, nil, p); setwhd(box, fwidth, fheight, fdepth) setfield(box, 'head', p) setfield(box, 'shift', y_shift) @@ -307,7 +308,7 @@ do setfield(lp, 'yoffset', getfield(lp, 'yoffset') - y_adjust) end if adj_depth>node_depth then - local r = node_new(id_rule,rule_subtype) + local r = node_new(id_rule,rule_subtype, head) setwhd(r, 0, 0, adj_depth); setdir(r, tex_dir) set_attr(r, attr_icflag, PROCESSED) if field=='post' then |