diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-06-25 15:40:51 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-06-25 15:40:51 +0200 |
commit | b2a2304cbb0c65040d7b118ac9b857d304e333e6 (patch) | |
tree | ed5212e37a91ec78c12d9f72ca1186a59c139b40 /tex/context/base/mkiv/spac-ver.lua | |
parent | b2276ae7a04a9f9c35403e508670049d8c3e4b3e (diff) | |
download | context-b2a2304cbb0c65040d7b118ac9b857d304e333e6.tar.gz |
2016-06-25 14:42:00
Diffstat (limited to 'tex/context/base/mkiv/spac-ver.lua')
-rw-r--r-- | tex/context/base/mkiv/spac-ver.lua | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/tex/context/base/mkiv/spac-ver.lua b/tex/context/base/mkiv/spac-ver.lua index 9a439e5c2..f1f5757b7 100644 --- a/tex/context/base/mkiv/spac-ver.lua +++ b/tex/context/base/mkiv/spac-ver.lua @@ -126,6 +126,7 @@ local skipcodes = nodes.skipcodes local penalty_code = nodecodes.penalty local kern_code = nodecodes.kern local glue_code = nodecodes.glue +local insert_code = nodecodes.ins local hlist_code = nodecodes.hlist local vlist_code = nodecodes.vlist local localpar_code = nodecodes.localpar @@ -1957,14 +1958,37 @@ function vspacing.collapsevbox(n,aslist) -- for boxes but using global a_snapmet end -- This one is needed to prevent bleeding of prevdepth to the next page --- which doesn't work well with forced skips. - -local outer = texnest[0] - -function vspacing.resetprevdepth() - if texlists.hold_head then - outer.prevdepth = 0 +-- which doesn't work well with forced skips. I'm not that sure if the +-- following is a good way out. + +do + + local outer = texnest[0] + local reset = true + local trace = false + local report = logs.reporter("vspacing") + + directives.register("vspacing.resetprevdepth",function(v) reset = v end) + trackers.register ("vspacing.resetprevdepth",function(v) trace = v end) + + function vspacing.resetprevdepth() + if reset then + local head = texlists.hold_head + local skip = 0 + while head and head.id == insert_code do + head = head.next + skip = skip + 1 + end + if head then + outer.prevdepth = 0 + end + if trace then + report("prevdepth %s at page %i, skipped %i, value %p", + head and "reset" or "kept",tex.getcount("realpageno"),skip,outer.prevdepth) + end + end end + end -- interface |