summaryrefslogtreecommitdiff
path: root/macros/luatex/generic/luatexja/src/ltj-setwidth.lua
diff options
context:
space:
mode:
Diffstat (limited to 'macros/luatex/generic/luatexja/src/ltj-setwidth.lua')
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-setwidth.lua15
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