diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2015-05-18 13:15:04 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2015-05-18 13:15:04 +0200 |
commit | 53ff76b73cd1f373ecdfb0f7f17df6f352621d6e (patch) | |
tree | ba75e57f8ab12bf8edfb429bd6455e9dfca9512c /tex/context/base/trac-vis.lua | |
parent | b55577d0998160c0174e250b542016ecd6ca9056 (diff) | |
download | context-53ff76b73cd1f373ecdfb0f7f17df6f352621d6e.tar.gz |
2015-05-18 12:28:00
Diffstat (limited to 'tex/context/base/trac-vis.lua')
-rw-r--r-- | tex/context/base/trac-vis.lua | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/tex/context/base/trac-vis.lua b/tex/context/base/trac-vis.lua index a20e42d1a..b54182798 100644 --- a/tex/context/base/trac-vis.lua +++ b/tex/context/base/trac-vis.lua @@ -471,8 +471,10 @@ local function ruledbox(head,current,vertical,layer,what,simple,previous) if wd ~= 0 then local ht = getfield(current,"height") local dp = getfield(current,"depth") + local shift = getfield(current,"shift") local next = getnext(current) - local prev = previous -- getprev(current) ... prev can be wrong in math mode < 0.78.3 + local prev = previous + -- local prev = getprev(current) -- prev can be wrong in math mode < 0.78.3 setfield(current,"next",nil) setfield(current,"prev",nil) local linewidth = emwidth/fraction @@ -533,7 +535,22 @@ local function ruledbox(head,current,vertical,layer,what,simple,previous) new_rule(wd-2*linewidth,ht,-ht+linewidth) ) if baseskip then - info = linked_nodes(info,baseskip,baseline) + info = linked_nodes(info,baseskip,baseline) -- could be in previous linked + end + local shft + if shift == 0 then + shift = nil + else + local sh = shift > 0 and shift or 0 + local sd = shift < 0 and - shift or 0 + shft = fast_hpack(new_rule(2*emwidth/fraction,sh,sd)) + setfield(shft,"width",0) + if sh > 0 then + setfield(shft,"height",0) + end + if sd > 0 then + setfield(shft,"depth",0) + end end setlisttransparency(info,c_text) info = fast_hpack(info) @@ -541,11 +558,18 @@ local function ruledbox(head,current,vertical,layer,what,simple,previous) setfield(info,"height",0) setfield(info,"depth",0) setattr(info,a_layer,layer) - local info = linked_nodes(current,new_kern(-wd),info) + local info = linked_nodes(shft,current,new_kern(-wd),info) info = fast_hpack(info,wd) if vertical then info = vpack_nodes(info) end + if shift then + setfield(current,"shift",0) + setfield(info,"width",wd) + setfield(info,"height",ht) + setfield(info,"depth",dp) + setfield(info,"shift",shift) + end if next then setfield(info,"next",next) setfield(next,"prev",info) |