diff options
Diffstat (limited to 'tex')
| -rw-r--r-- | tex/context/base/context-version.pdf | bin | 4248 -> 4244 bytes | |||
| -rw-r--r-- | tex/context/base/mkiv/cont-new.mkiv | 2 | ||||
| -rw-r--r-- | tex/context/base/mkiv/context.mkiv | 2 | ||||
| -rw-r--r-- | tex/context/base/mkiv/file-job.lua | 9 | ||||
| -rw-r--r-- | tex/context/base/mkiv/scrn-pag.mkvi | 4 | ||||
| -rw-r--r-- | tex/context/base/mkiv/spac-ver.lua | 235 | ||||
| -rw-r--r-- | tex/context/base/mkiv/spac-ver.mkiv | 21 | ||||
| -rw-r--r-- | tex/context/base/mkiv/status-files.pdf | bin | 9118 -> 9202 bytes | |||
| -rw-r--r-- | tex/context/base/mkiv/status-lua.pdf | bin | 267492 -> 267502 bytes | |||
| -rw-r--r-- | tex/context/base/mkiv/tabl-tbl.mkiv | 19 | ||||
| -rw-r--r-- | tex/generic/context/luatex/luatex-fonts-merged.lua | 2 | 
11 files changed, 212 insertions, 82 deletions
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf Binary files differindex 4e5d56b7b..4f0a9fe9c 100644 --- a/tex/context/base/context-version.pdf +++ b/tex/context/base/context-version.pdf diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index c0ff11262..d553acc4c 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -11,7 +11,7 @@  %C therefore copyrighted by \PRAGMA. See mreadme.pdf for  %C details. -\newcontextversion{2016.04.01 13:01} +\newcontextversion{2016.04.04 13:06}  %D This file is loaded at runtime, thereby providing an excellent place for  %D hacks, patches, extensions and new features. diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index b85e16f7b..886ca1c63 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -39,7 +39,7 @@  %D up and the dependencies are more consistent.  \edef\contextformat {\jobname} -\edef\contextversion{2016.04.01 13:01} +\edef\contextversion{2016.04.04 13:06}  \edef\contextkind   {beta}  %D For those who want to use this: diff --git a/tex/context/base/mkiv/file-job.lua b/tex/context/base/mkiv/file-job.lua index 19a02c477..602c41a11 100644 --- a/tex/context/base/mkiv/file-job.lua +++ b/tex/context/base/mkiv/file-job.lua @@ -9,6 +9,7 @@ if not modules then modules = { } end modules ['file-job'] = {  -- in retrospect dealing it's not that bad to deal with the nesting  -- and push/poppign at the tex end +local rawget = rawget  local gsub, match, find = string.gsub, string.match, string.find  local insert, remove, concat = table.insert, table.remove, table.concat  local validstring, formatters = string.valid, string.formatters @@ -25,6 +26,7 @@ local implement         = interfaces.implement  local trace_jobfiles    = false  trackers.register("system.jobfiles", function(v) trace_jobfiles = v end)  local report_jobfiles   = logs.reporter("system","jobfiles") +local report_functions  = logs.reporter("system","functions")  local texsetcount       = tex.setcount  local elements          = interfaces.elements @@ -849,6 +851,13 @@ document = document or {              modes        = allocate(),          },      }, +    functions = table.setmetatablenewindex(function(t,k,v) +        if rawget(t,k) then +            report_functions("overloading document function %a",k) +        end +        rawset(t,k,v) +        return v +    end),  }  function document.setargument(key,value) diff --git a/tex/context/base/mkiv/scrn-pag.mkvi b/tex/context/base/mkiv/scrn-pag.mkvi index 5624b9045..7a7effdc4 100644 --- a/tex/context/base/mkiv/scrn-pag.mkvi +++ b/tex/context/base/mkiv/scrn-pag.mkvi @@ -254,8 +254,8 @@     \c!option=\v!auto]  \appendtoks -    \global\let\scrn_canvas_synchronize_simple \scrn_canvas_synchronize_simple -    \global\let\scrn_canvas_synchronize_complex\scrn_canvas_synchronize_complex +    \global\let\scrn_canvas_synchronize_simple \scrn_canvas_synchronize_simple_indeed +    \global\let\scrn_canvas_synchronize_complex\scrn_canvas_synchronize_complex_indeed  \to \everysetupinteractionscreen  %D Conditional page breaks: diff --git a/tex/context/base/mkiv/spac-ver.lua b/tex/context/base/mkiv/spac-ver.lua index 637e469f3..e81e8b81d 100644 --- a/tex/context/base/mkiv/spac-ver.lua +++ b/tex/context/base/mkiv/spac-ver.lua @@ -133,6 +133,17 @@ local hlist_code          = nodecodes.hlist  local vlist_code          = nodecodes.vlist  local localpar_code       = nodecodes.localpar +local userskip_code              = skipcodes.userskip +local lineskip_code              = skipcodes.lineskip +local baselineskip_code          = skipcodes.baselineskip +local parskip_code               = skipcodes.parskip +local abovedisplayskip_code      = skipcodes.abovedisplayskip +local belowdisplayskip_code      = skipcodes.belowdisplayskip +local abovedisplayshortskip_code = skipcodes.abovedisplayshortskip +local belowdisplayshortskip_code = skipcodes.belowdisplayshortskip +local topskip_code               = skipcodes.topskip +local splittopskip_code          = skipcodes.splittopskip +  local vspacing            = builders.vspacing or { }  builders.vspacing         = vspacing @@ -609,6 +620,7 @@ local categories = allocate {       [7] = 'goback',       [8] = 'together', -- not used (?)       [9] = 'overlay', +    [10] = 'notopskip',  }  vspacing.categories = categories @@ -869,8 +881,8 @@ local function nodes_to_string(head)          local ty = nodecodes[id]          if id == penalty_code then              t[#t+1] = formatters["%s:%s"](ty,getfield(current,"penalty")) -        elseif id == glue_code then -- or id == kern_code then -- to be tested -            t[#t+1] = formatters["%s:%p"](ty,current) +        elseif id == glue_code then +            t[#t+1] = formatters["%s:%s:%p"](ty,skipcodes[getsubtype(current)],getfield(current,"width"))          elseif id == kern_code then              t[#t+1] = formatters["%s:%p"](ty,getfield(current,"kern"))          else @@ -886,12 +898,12 @@ local function reset_tracing(head)  end  local function trace_skip(str,sc,so,sp,data) -    trace_list[#trace_list+1] = { "skip", formatters["%s | %p | category %s | order %s | penalty %s"](str, data, sc or "-", so or "-", sp or "-") } +    trace_list[#trace_list+1] = { "skip", formatters["%s | %p | category %s | order %s | penalty %s"](str, getfield(data,"width"), sc or "-", so or "-", sp or "-") }      tracing_info = true  end  local function trace_natural(str,data) -    trace_list[#trace_list+1] = { "skip", formatters["%s | %p"](str, data) } +    trace_list[#trace_list+1] = { "skip", formatters["%s | %p"](str, getfield(data,"width")) }      tracing_info = true  end @@ -913,7 +925,7 @@ local function trace_done(str,data)      if getid(data) == penalty_code then          trace_list[#trace_list+1] = { "penalty", formatters["%s | %s"](str,getfield(data,"penalty")) }      else -        trace_list[#trace_list+1] = { "glue", formatters["%s | %p"](str,data) } +        trace_list[#trace_list+1] = { "glue", formatters["%s | %p"](str,getfield(data,"width")) }      end      tracing_info = true  end @@ -936,19 +948,6 @@ end  -- alignment box begin_of_par vmode_par hmode_par insert penalty before_display after_display -local skipcodes = nodes.skipcodes - -local userskip_code              = skipcodes.userskip -local lineskip_code              = skipcodes.lineskip -local baselineskip_code          = skipcodes.baselineskip -local parskip_code               = skipcodes.parskip -local abovedisplayskip_code      = skipcodes.abovedisplayskip -local belowdisplayskip_code      = skipcodes.belowdisplayskip -local abovedisplayshortskip_code = skipcodes.abovedisplayshortskip -local belowdisplayshortskip_code = skipcodes.belowdisplayshortskip -local topskip_code               = skipcodes.topskip -local splittopskip_code          = skipcodes.splittopskip -  function vspacing.snapbox(n,how)      local sv = snapmethods[how]      if sv then @@ -1270,7 +1269,9 @@ local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also      local function flush(why)          if penalty_data then              local p = new_penalty(penalty_data) -            if trace then trace_done("flushed due to " .. why,p) end +            if trace then +                trace_done("flushed due to " .. why,p) +            end              if penalty_data >= 10000 then -- or whatever threshold?                  local prev = getprev(current)                  if getid(prev) == glue_code then -- maybe go back more, or maybe even push back before any glue @@ -1295,16 +1296,22 @@ local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also          end          if glue_data then              if force_glue then -                if trace then trace_done("flushed due to forced " .. why,glue_data) end +                if trace then +                    trace_done("flushed due to forced " .. why,glue_data) +                end                  head = forced_skip(head,current,getfield(glue_data,"width") or 0,"before",trace)                  free_node(glue_data)              else                  local w = getfield(glue_data,"width")                  if w ~= 0 then -                    if trace then trace_done("flushed due to non zero " .. why,glue_data) end +                    if trace then +                        trace_done("flushed due to non zero " .. why,glue_data) +                    end                      head = insert_node_before(head,current,glue_data)                  elseif getfield(glue_data,"stretch") ~= 0 or getfield(glue_data,"shrink") ~= 0 then -                    if trace then trace_done("flushed due to stretch/shrink in" .. why,glue_data) end +                    if trace then +                        trace_done("flushed due to stretch/shrink in" .. why,glue_data) +                    end                      head = insert_node_before(head,current,glue_data)                  else                   -- report_vspacing("needs checking (%s): %p",skipcodes[getsubtype(glue_data)],w) @@ -1313,7 +1320,9 @@ local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also              end          end -        if trace then trace_node(current) end +        if trace then +            trace_node(current) +        end          glue_order, glue_data, force_glue = 0, nil, false          penalty_order, penalty_data, natural_penalty = 0, nil, nil          parskip, ignore_parskip, ignore_following, ignore_whitespace = nil, false, false, false @@ -1344,7 +1353,9 @@ local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also              texgetdimen("bodyfontstrutheight"), texgetdimen("bodyfontstrutdepth")          )      end -    if trace then trace_info("start analyzing",where,what) end +    if trace then +        trace_info("start analyzing",where,what) +    end  -- local headprev = getprev(head) @@ -1397,7 +1408,9 @@ local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also              current = getnext(current)          elseif id == penalty_code then           -- natural_penalty = getfield(current,"penalty") -         -- if trace then trace_done("removed penalty",current) end +         -- if trace then +         --     trace_done("removed penalty",current) +         -- end           -- head, current = remove_node(head, current, true)  -- if nobreakfound == nil then @@ -1428,9 +1441,11 @@ local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also                          getpagelist()                          local p = specialmethods[specialmethod](pagehead,pagetail,current,sp)                          if p then -                            if trace then -                                trace_skip("previous special penalty %a is changed to %a using method %a",sp,p,specialmethod) -                            end +                         -- todo: other tracer +                         -- +                         -- if trace then +                         --     trace_skip("previous special penalty %a is changed to %a using method %a",sp,p,specialmethod) +                         -- end                              special_penalty = sp                              sp = p                          end @@ -1448,7 +1463,9 @@ local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also                      elseif penalty_order == so and sp > penalty_data then                          penalty_data = sp                      end -                    if trace then trace_skip("penalty in skip",sc,so,sp,current) end +                    if trace then +                        trace_skip("penalty in skip",sc,so,sp,current) +                    end  -- if nobreakfound then  --     penalty_data = 10000 @@ -1460,9 +1477,13 @@ local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also                      head, current = remove_node(head, current, true)                  elseif not sc then  -- if not sc then                      if glue_data then -                        if trace then trace_done("flush",glue_data) end +                        if trace then +                            trace_done("flush",glue_data) +                        end                          head = insert_node_before(head,current,glue_data) -                        if trace then trace_natural("natural",current) end +                        if trace then +                            trace_natural("natural",current) +                        end                          current = getnext(current)                      else                          -- not look back across head @@ -1474,15 +1495,23 @@ local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also                                  setfield(previous,"width",  (getfield(previous,"width")   or 0) + (getfield(current,"width")   or 0))                                  setfield(previous,"stretch",(getfield(previous,"stretch") or 0) + (getfield(current,"stretch") or 0))                                  setfield(previous,"shrink", (getfield(previous,"shrink")  or 0) + (getfield(current,"shrink")  or 0)) -                                if trace then trace_natural("removed",current) end +                                if trace then +                                    trace_natural("removed",current) +                                end                                  head, current = remove_node(head, current, true) -                                if trace then trace_natural("collapsed",previous) end +                                if trace then +                                    trace_natural("collapsed",previous) +                                end                              else -                                if trace then trace_natural("filler",current) end +                                if trace then +                                    trace_natural("filler",current) +                                end                                  current = getnext(current)                              end                          else -                            if trace then trace_natural("natural (no prev)",current) end +                            if trace then +                                trace_natural("natural (no prev)",current) +                            end                              current = getnext(current)                          end                      end @@ -1491,7 +1520,9 @@ local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also  local next = getnext(current)  if not experiment or next then                      ignore_following = true -                    if trace then trace_skip("disable",sc,so,sp,current) end +                    if trace then +                        trace_skip("disable",sc,so,sp,current) +                    end                      head, current = remove_node(head, current, true)  else      current = next @@ -1500,7 +1531,9 @@ end  local next = getnext(current)  if not experiment or next then                      keep_together = true -                    if trace then trace_skip("together",sc,so,sp,current) end +                    if trace then +                        trace_skip("together",sc,so,sp,current) +                    end                      head, current = remove_node(head, current, true)  else      current = next @@ -1514,23 +1547,33 @@ else      current = next  end                  elseif sc == discard then -                    if trace then trace_skip("discard",sc,so,sp,current) end +                    if trace then +                        trace_skip("discard",sc,so,sp,current) +                    end                      head, current = remove_node(head, current, true)                  elseif sc == overlay then                      -- todo (overlay following line over previous -                    if trace then trace_skip("overlay",sc,so,sp,current) end +                    if trace then +                        trace_skip("overlay",sc,so,sp,current) +                    end                          -- beware: head can actually be after the affected nodes as                          -- we look back ... some day head will the real head                      head, current = check_experimental_overlay(head,current,a_snapmethod)                  elseif ignore_following then -                    if trace then trace_skip("disabled",sc,so,sp,current) end +                    if trace then +                        trace_skip("disabled",sc,so,sp,current) +                    end                      head, current = remove_node(head, current, true)                  elseif not glue_data then -                    if trace then trace_skip("assign",sc,so,sp,current) end +                    if trace then +                        trace_skip("assign",sc,so,sp,current) +                    end                      glue_order = so                      head, current, glue_data = remove_node(head, current)                  elseif glue_order < so then -                    if trace then trace_skip("force",sc,so,sp,current) end +                    if trace then +                        trace_skip("force",sc,so,sp,current) +                    end                      glue_order = so                      free_node(glue_data)                      head, current, glue_data = remove_node(head, current) @@ -1540,41 +1583,57 @@ end                          local cw = getfield(current,"width")   or 0                          local gw = getfield(glue_data,"width") or 0                          if cw > gw then -                            if trace then trace_skip("largest",sc,so,sp,current) end +                            if trace then +                                trace_skip("largest",sc,so,sp,current) +                            end                              free_node(glue_data)                              head, current, glue_data = remove_node(head,current)                          else -                            if trace then trace_skip("remove smallest",sc,so,sp,current) end +                            if trace then +                                trace_skip("remove smallest",sc,so,sp,current) +                            end                              head, current = remove_node(head, current, true)                          end                      elseif sc == goback then -                        if trace then trace_skip("goback",sc,so,sp,current) end +                        if trace then +                            trace_skip("goback",sc,so,sp,current) +                        end                          free_node(glue_data)                          head, current, glue_data = remove_node(head,current)                      elseif sc == force then                          -- last one counts, some day we can provide an accumulator and largest etc                          -- but not now -                        if trace then trace_skip("force",sc,so,sp,current) end +                        if trace then +                            trace_skip("force",sc,so,sp,current) +                        end                          free_node(glue_data)                          head, current, glue_data = remove_node(head, current)                      elseif sc == penalty then -                        if trace then trace_skip("penalty",sc,so,sp,current) end +                        if trace then +                            trace_skip("penalty",sc,so,sp,current) +                        end                          free_node(glue_data)                          glue_data = nil                          head, current = remove_node(head, current, true)                      elseif sc == add then -                        if trace then trace_skip("add",sc,so,sp,current) end +                        if trace then +                            trace_skip("add",sc,so,sp,current) +                        end                          setfield(old,"width",  (getfield(glue_data,"width")   or 0) + (getfield(current,"width")   or 0))                          setfield(old,"stretch",(getfield(glue_data,"stretch") or 0) + (getfield(current,"stretch") or 0))                          setfield(old,"shrink", (getfield(glue_data,"shrink")  or 0) + (getfield(current,"shrink")  or 0))                          -- toto: order                          head, current = remove_node(head, current, true)                      else -                        if trace then trace_skip("unknown",sc,so,sp,current) end +                        if trace then +                            trace_skip("unknown",sc,so,sp,current) +                        end                          head, current = remove_node(head, current, true)                      end                  else -                    if trace then trace_skip("unknown",sc,so,sp,current) end +                    if trace then +                        trace_skip("unknown",sc,so,sp,current) +                    end                      head, current = remove_node(head, current, true)                  end                  if sc == force then @@ -1590,11 +1649,15 @@ end                              report_snapper("lineskip set to zero")                          end                      else -                        if trace then trace_skip("lineskip",sc,so,sp,current) end +                        if trace then +                            trace_skip("lineskip",sc,so,sp,current) +                        end                          flush("lineskip")                      end                  else -                    if trace then trace_skip("lineskip",sc,so,sp,current) end +                    if trace then +                        trace_skip("lineskip",sc,so,sp,current) +                    end                      flush("lineskip")                  end                  current = getnext(current) @@ -1608,34 +1671,50 @@ end                              report_snapper("baselineskip set to zero")                          end                      else -                        if trace then trace_skip("baselineskip",sc,so,sp,current) end +                        if trace then +                            trace_skip("baselineskip",sc,so,sp,current) +                        end                          flush("baselineskip")                      end                  else -                    if trace then trace_skip("baselineskip",sc,so,sp,current) end +                    if trace then +                        trace_skip("baselineskip",sc,so,sp,current) +                    end                      flush("baselineskip")                  end                  current = getnext(current)              elseif subtype == parskip_code then                  -- parskip always comes later                  if ignore_whitespace then -                    if trace then trace_natural("ignored parskip",current) end +                    if trace then +                        trace_natural("ignored parskip",current) +                    end                      head, current = remove_node(head, current, true)                  elseif glue_data then                      local wp = getfield(current,"width") or 0                      if ((w ~= 0) and (w > (getfield(glue_data,"width") or 0))) then                          glue_data = current                          head, current = remove_node(head, current) -                        if trace then trace_natural("taking parskip",current) end +                        if trace then +                            trace_natural("taking parskip",current) +                        end                      else                          head, current = remove_node(head, current, true) -                        if trace then trace_natural("removed parskip",current) end +                        if trace then +                            trace_natural("removed parskip",current) +                        end                      end                  else -                    if trace then trace_natural("honored parskip",current) end +                    if trace then +                        trace_natural("honored parskip",current) +                    end                      head, current, glue_data = remove_node(head, current)                  end              elseif subtype == topskip_code or subtype == splittopskip_code then +                local next = getnext(current) +                if next and getattr(next,a_skipcategory) == 10 then -- no top skip +                    nuts.setglue(current) -- zero +                end                  if snap then                      local s = getattr(current,a_snapmethod)                      if s and s ~= 0 then @@ -1646,35 +1725,47 @@ end                              report_snapper("topskip snapped from %p to %p for %a",w,cw,where)                          end                      else -                        if trace then trace_skip("topskip",sc,so,sp,current) end +                        if trace then +                            trace_skip("topskip",sc,so,sp,current) +                        end                          flush("topskip")                      end                  else -                    if trace then trace_skip("topskip",sc,so,sp,current) end +                    if trace then +                        trace_skip("topskip",sc,so,sp,current) +                    end                      flush("topskip")                  end                  current = getnext(current)              elseif subtype == abovedisplayskip_code then                  -- -                if trace then trace_skip("above display skip (normal)",sc,so,sp,current) end +                if trace then +                    trace_skip("above display skip (normal)",sc,so,sp,current) +                end                  flush("above display skip (normal)")                  current = getnext(current)                  --              elseif subtype == belowdisplayskip_code then                  -- -                if trace then trace_skip("below display skip (normal)",sc,so,sp,current) end +                if trace then +                    trace_skip("below display skip (normal)",sc,so,sp,current) +                end                  flush("below display skip (normal)")                  current = getnext(current)                 --              elseif subtype == abovedisplayshortskip_code then                  -- -                if trace then trace_skip("above display skip (short)",sc,so,sp,current) end +                if trace then +                    trace_skip("above display skip (short)",sc,so,sp,current) +                end                  flush("above display skip (short)")                  current = getnext(current)                  --              elseif subtype == belowdisplayshortskip_code then                  -- -                if trace then trace_skip("below display skip (short)",sc,so,sp,current) end +                if trace then +                    trace_skip("below display skip (short)",sc,so,sp,current) +                end                  flush("below display skip (short)")                  current = getnext(current)                  -- @@ -1685,7 +1776,9 @@ end                          report_snapper("glue %p of type %a kept",w,skipcodes[subtype])                      end                  end -                if trace then trace_skip(formatters["glue of type %a"](subtype),sc,so,sp,current) end +                if trace then +                    trace_skip(formatters["glue of type %a"](subtype),sc,so,sp,current) +                end                  flush("some glue")                  current = getnext(current)              end @@ -1694,7 +1787,9 @@ end              current = getnext(current)          end      end -    if trace then trace_info("stop analyzing",where,what) end +    if trace then +        trace_info("stop analyzing",where,what) +    end   -- if natural_penalty and (not penalty_data or natural_penalty > penalty_data) then   --     penalty_data = natural_penalty   -- end @@ -1705,7 +1800,9 @@ end      if penalty_data then          tail = find_node_tail(head)          local p = new_penalty(penalty_data) -        if trace then trace_done("result",p) end +        if trace then +            trace_done("result",p) +        end          head, tail = insert_node_after(head,tail,p)       -- if penalty_data > special_penalty_min and penalty_data < special_penalty_max then              local props = properties[p] @@ -1720,7 +1817,9 @@ end      end      if glue_data then          if not tail then tail = find_node_tail(head) end -        if trace then trace_done("result",glue_data) end +        if trace then +            trace_done("result",glue_data) +        end          if force_glue then              head, tail = forced_skip(head,tail,getfield(glue_data,"width") or 0,"after",trace)              free_node(glue_data) diff --git a/tex/context/base/mkiv/spac-ver.mkiv b/tex/context/base/mkiv/spac-ver.mkiv index 4fe1012e9..6ae96b7ec 100644 --- a/tex/context/base/mkiv/spac-ver.mkiv +++ b/tex/context/base/mkiv/spac-ver.mkiv @@ -1756,14 +1756,16 @@  % experimental code, not yet interfaced:  % category: -% 0 == discard                             discard -% 1 == only if larger                      largest -% 2 == force even if smaller               force -% 3 == only take penalty component         penalty -% 4 == add to existing skip                add -% 5 == disable (ignore following)          disable -% 6 == kill whitespace                     nowhite -% 7 == discard previous                    back +% +%  0 == discard                             discard +%  1 == only if larger                      largest +%  2 == force even if smaller               force +%  3 == only take penalty component         penalty +%  4 == add to existing skip                add +%  5 == disable (ignore following)          disable +%  6 == kill whitespace                     nowhite +%  7 == discard previous                    back +% 10 == no topskip  %  % penalty: larger wins  % order: larger wins @@ -1790,6 +1792,9 @@     \fi\fi     \clf_vspacingsetamount{#1}} +\def\spac_vspacing_no_topskip % use grouped +  {\attribute\skipcategoryattribute\plusten} +  % \installcorenamespace{vspacingamountnormal}  % \installcorenamespace{vspacingamountgrid} diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf Binary files differindex 70ffa14c3..5b21c27a2 100644 --- a/tex/context/base/mkiv/status-files.pdf +++ b/tex/context/base/mkiv/status-files.pdf diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf Binary files differindex 5739174e5..68a17780b 100644 --- a/tex/context/base/mkiv/status-lua.pdf +++ b/tex/context/base/mkiv/status-lua.pdf diff --git a/tex/context/base/mkiv/tabl-tbl.mkiv b/tex/context/base/mkiv/tabl-tbl.mkiv index 36254cf1f..c8d7d5aae 100644 --- a/tex/context/base/mkiv/tabl-tbl.mkiv +++ b/tex/context/base/mkiv/tabl-tbl.mkiv @@ -1917,11 +1917,28 @@     \tabl_tabulate_nobreak_inject     \stoptabulatenoalign} +% \unexpanded\def\tabl_tabulate_ML_second_indeed +%   {\tabl_tabulate_column_rule_separator_inject +%    \tabl_tabulate_hrule_inject +%    \vskip-\p_rulethickness\relax +%    \tabl_tabulate_hrule_inject +%    \tabl_tabulate_break_no +%    \tabl_tabulate_column_rule_separator_inject +%    \stoptabulatenoalign} + +\def\spac_vspacing_no_topskip % use grouped +  {\attribute\skipcategoryattribute\plusten} +  \unexpanded\def\tabl_tabulate_ML_second_indeed -  {\tabl_tabulate_column_rule_separator_inject +  {\tabl_tabulate_break_no +   \tabl_tabulate_column_rule_separator_inject +   \tabl_tabulate_break_no     \tabl_tabulate_hrule_inject     \vskip-\p_rulethickness\relax +   \begingroup +   \spac_vspacing_no_topskip     \tabl_tabulate_hrule_inject +   \endgroup     \tabl_tabulate_break_no     \tabl_tabulate_column_rule_separator_inject     \stoptabulatenoalign} diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index c8cf3f626..e4ae182b7 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@  -- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua  -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date  : 04/01/16 13:01:46 +-- merge date  : 04/04/16 13:06:24  do -- begin closure to overcome local limits and interference  | 
