diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua b/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua index b58040ac72a..c30a4fa942d 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua +++ b/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua @@ -24,11 +24,14 @@ local getid = nuts.getid local getlist = nuts.getlist local setlist = nuts.setlist local setlink = nuts.setlink +local getdirection = nuts.getdirection local takeattr = nuts.takeattr local getsubtype = nuts.getsubtype local getwidth = nuts.getwidth local findtail = nuts.tail +local righttoleft_code = nodes.dirvalues.righttoleft + local hpack_nodes = nuts.hpack local unsetvalue = attributes.unsetvalue @@ -85,17 +88,28 @@ local function handler(head,leftpage,realpageno) -- traverse_list elseif align == 2 then -- flushleft action = leftpage and 2 or 1 end + -- WS: watch this + local direction = getdirection(current) + -- or should this happen at the tex end: + if direction == righttoleft_code then + if action == 1 then + action = 2 + elseif action == 2 then + action = 1 + end + end + -- if action == 1 then local head = getlist(current) setlink(findtail(head),new_stretch(3)) -- append - setlist(current,hpack_nodes(head,getwidth(current),"exactly")) + setlist(current,hpack_nodes(head,getwidth(current),"exactly",direction)) if trace_realign then report_realign("flushing left, align %a, page %a, realpage %a",align,pageno,realpageno) end elseif action == 2 then local list = getlist(current) local head = setlink(new_stretch(3),list) -- prepend - setlist(current,hpack_nodes(head,getwidth(current),"exactly")) + setlist(current,hpack_nodes(head,getwidth(current),"exactly",direction)) if trace_realign then report_realign("flushing right. align %a, page %a, realpage %a",align,pageno,realpageno) end |