summaryrefslogtreecommitdiff
path: root/tex/context/base
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2018-01-24 12:00:59 +0100
committerContext Git Mirror Bot <phg42.2a@gmail.com>2018-01-24 12:00:59 +0100
commit7ce2f30f31421eb46d07ff65cbf9fcbda1d6612a (patch)
treecb78bde46cd0939d74075a8047ec8d9bf0210a4a /tex/context/base
parent35a569ef13b42755e7469cf93d3e4982e12252d6 (diff)
downloadcontext-7ce2f30f31421eb46d07ff65cbf9fcbda1d6612a.tar.gz
2018-01-24 10:57:00
Diffstat (limited to 'tex/context/base')
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkii/mult-ro.mkii1
-rw-r--r--tex/context/base/mkiv/char-prv.lua14
-rw-r--r--tex/context/base/mkiv/cldf-stp.lua4
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv4
-rw-r--r--tex/context/base/mkiv/font-con.lua4
-rw-r--r--tex/context/base/mkiv/font-ctx.lua10
-rw-r--r--tex/context/base/mkiv/font-ini.mkvi8
-rw-r--r--tex/context/base/mkiv/font-syn.lua56
-rw-r--r--tex/context/base/mkiv/luat-cod.lua17
-rw-r--r--tex/context/base/mkiv/math-fbk.lua7
-rw-r--r--tex/context/base/mkiv/mult-def.lua4
-rw-r--r--tex/context/base/mkiv/node-ser.lua1
-rw-r--r--tex/context/base/mkiv/page-sid.mkiv27
-rw-r--r--tex/context/base/mkiv/spac-ver.mkiv19
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin25545 -> 25561 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin250920 -> 250934 bytes
-rw-r--r--tex/context/base/mkiv/strc-def.mkiv69
-rw-r--r--tex/context/base/mkiv/strc-flt.mkvi3
-rw-r--r--tex/context/base/mkiv/supp-box.lua39
-rw-r--r--tex/context/base/mkiv/trac-vis.mkiv2
23 files changed, 230 insertions, 65 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index fe034a5fc..ca0154089 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2018.01.19 13:42}
+\newcontextversion{2018.01.24 10:47}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index 0704eecb1..f9a9e1c6c 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2018.01.19 13:42}
+\edef\contextversion{2018.01.24 10:47}
%D For those who want to use this:
diff --git a/tex/context/base/mkii/mult-ro.mkii b/tex/context/base/mkii/mult-ro.mkii
index ad4e4f214..80f45102b 100644
--- a/tex/context/base/mkii/mult-ro.mkii
+++ b/tex/context/base/mkii/mult-ro.mkii
@@ -849,6 +849,7 @@
\setinterfaceconstant{headerstate}{stareantet}
\setinterfaceconstant{headlabel}{etichetatitlu}
\setinterfaceconstant{headnumber}{numartitlu}
+\setinterfaceconstant{headseparator}{headseparator}
\setinterfaceconstant{headstyle}{stiltitlu}
\setinterfaceconstant{height}{inaltime}
\setinterfaceconstant{hfactor}{hfactor}
diff --git a/tex/context/base/mkiv/char-prv.lua b/tex/context/base/mkiv/char-prv.lua
index 95aec3bb8..9a4f44dd2 100644
--- a/tex/context/base/mkiv/char-prv.lua
+++ b/tex/context/base/mkiv/char-prv.lua
@@ -106,6 +106,20 @@ characters.private={
mathname="mapsfromchar",
unicodeslot=0xFE324,
},
+ [0xFE33E]={
+ description="TOP OF 0x023E",
+ mathclass="topaccent",
+ mathextensible="r",
+ mathstretch="h",
+ unicodeslot=0xFE33E,
+ },
+ [0xFE33F]={
+ description="BOTTOM OF 0x023E",
+ mathclass="botaccent",
+ mathextensible="r",
+ mathstretch="h",
+ unicodeslot=0xFE33E,
+ },
[0xFE350]={
category="sm",
description="MATHEMATICAL DOUBLE ARROW LEFT END",
diff --git a/tex/context/base/mkiv/cldf-stp.lua b/tex/context/base/mkiv/cldf-stp.lua
index d548e6ac4..389cfb7f7 100644
--- a/tex/context/base/mkiv/cldf-stp.lua
+++ b/tex/context/base/mkiv/cldf-stp.lua
@@ -18,8 +18,8 @@ if not modules then modules = { } end modules ['cldf-stp'] = {
-- ...
-- context.step(nil|...)
-- ...
--- context.step(nil|...)
--- ...
+-- context.step(nil|...)
+-- ...
-- end)
-- ...
-- context.step(nil|...)
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 1242ca657..175a90c27 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{2018.01.19 13:42}
+\newcontextversion{2018.01.24 10:47}
%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 ca15299f4..90b424dc9 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -41,7 +41,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2018.01.19 13:42}
+\edef\contextversion{2018.01.24 10:47}
\edef\contextkind {beta}
%D For those who want to use this:
@@ -269,7 +269,7 @@
\loadmarkfile{spac-hor}
\loadmarkfile{spac-ali}
\loadmarkfile{spac-flr}
-\loadmarkfile{spac-ver}
+\loadmarkfile{spac-ver} % beware, hooks into strc-sec
\loadmarkfile{spac-lin}
\loadmarkfile{spac-pag}
\loadmarkfile{spac-par}
diff --git a/tex/context/base/mkiv/font-con.lua b/tex/context/base/mkiv/font-con.lua
index f4fe474c3..bad4140f3 100644
--- a/tex/context/base/mkiv/font-con.lua
+++ b/tex/context/base/mkiv/font-con.lua
@@ -841,7 +841,7 @@ function constructors.scale(tfmdata,specification)
local ok = false
for i=1,#vc do
local key = vc[i][1]
- if key == "right" or key == "down" then
+ if key == "right" or key == "down" or key == "rule" then
ok = true
break
end
@@ -1044,8 +1044,6 @@ function constructors.hashfeatures(specification) -- will be overloaded
local features = specification.features
if features then
local t, n = { }, 0
--- inspect(features)
--- for category, list in next, features do
for category, list in sortedhash(features) do
if next(list) then
local hasher = hashmethods[category]
diff --git a/tex/context/base/mkiv/font-ctx.lua b/tex/context/base/mkiv/font-ctx.lua
index ec7eabb53..638cd9b3a 100644
--- a/tex/context/base/mkiv/font-ctx.lua
+++ b/tex/context/base/mkiv/font-ctx.lua
@@ -17,7 +17,7 @@ local context, commands = context, commands
local format, gmatch, match, find, lower, upper, gsub, byte, topattern = string.format, string.gmatch, string.match, string.find, string.lower, string.upper, string.gsub, string.byte, string.topattern
local concat, serialize, sort, fastcopy, mergedtable = table.concat, table.serialize, table.sort, table.fastcopy, table.merged
local sortedhash, sortedkeys, sequenced = table.sortedhash, table.sortedkeys, table.sequenced
-local settings_to_hash, hash_to_string = utilities.parsers.settings_to_hash, utilities.parsers.hash_to_string
+local settings_to_hash, hash_to_string, settings_to_array = utilities.parsers.settings_to_hash, utilities.parsers.hash_to_string, utilities.parsers.settings_to_array
local formatcolumns = utilities.formatters.formatcolumns
local mergehashes = utilities.parsers.mergehashes
local formatters = string.formatters
@@ -3086,3 +3086,11 @@ else
report_adding("adding characters to %!font:name! is not yet supported",id)
end
end
+
+implement {
+ name = "addfontpath",
+ arguments = "string",
+ actions = function(list)
+ names.addruntimepath(settings_to_array(list))
+ end
+}
diff --git a/tex/context/base/mkiv/font-ini.mkvi b/tex/context/base/mkiv/font-ini.mkvi
index 91459d18e..ee20d7b32 100644
--- a/tex/context/base/mkiv/font-ini.mkvi
+++ b/tex/context/base/mkiv/font-ini.mkvi
@@ -2832,4 +2832,12 @@
% \let\fontalternative#alternative%
% \font_helpers_synchronize_font}}
+%D \macros
+%D {addfontpath}
+%D
+%D A way to add a path at runtime (no need to generate database):
+
+\unexpanded\def\usefontpath[#1]%
+ {\clf_addfontpath{#1}}
+
\protect \endinput
diff --git a/tex/context/base/mkiv/font-syn.lua b/tex/context/base/mkiv/font-syn.lua
index 52ddf621f..4a9b81be2 100644
--- a/tex/context/base/mkiv/font-syn.lua
+++ b/tex/context/base/mkiv/font-syn.lua
@@ -16,7 +16,7 @@ if not modules then modules = { } end modules ['font-syn'] = {
local next, tonumber, type, tostring = next, tonumber, type, tostring
local sub, gsub, match, find, lower, upper = string.sub, string.gsub, string.match, string.find, string.lower, string.upper
-local concat, sort, fastcopy = table.concat, table.sort, table.fastcopy
+local concat, sort, fastcopy, tohash = table.concat, table.sort, table.fastcopy, table.tohash
local serialize, sortedhash = table.serialize, table.sortedhash
local lpegmatch = lpeg.match
local unpack = unpack or table.unpack
@@ -35,6 +35,7 @@ local splitname = file.splitname
local basename = file.basename
local nameonly = file.nameonly
local pathpart = file.pathpart
+local suffixonly = file.suffix
local filejoin = file.join
local is_qualified_path = file.is_qualified_path
local exists = io.exists
@@ -423,9 +424,10 @@ filters.list = {
-- to be considered: loop over paths per list entry (so first all otf ttf etc)
-names.fontconfigfile = "fonts.conf" -- a bit weird format, bonus feature
-names.osfontdirvariable = "OSFONTDIR" -- the official way, in minimals etc
-names.extrafontsvariable = "EXTRAFONTS" -- the official way, in minimals etc
+names.fontconfigfile = "fonts.conf" -- a bit weird format, bonus feature
+names.osfontdirvariable = "OSFONTDIR" -- the official way, in minimals etc
+names.extrafontsvariable = "EXTRAFONTS" -- the official way, in minimals etc
+names.runtimefontsvariable = "RUNTIMEFONTS" -- the official way, in minimals etc
filters.paths = { }
filters.names = { }
@@ -1515,10 +1517,54 @@ end
-- end
-- end
+local runtimefiles = { }
+local runtimedone = false
+
+local function addruntimepath(path)
+ names.load()
+ local paths = type(path) == "table" and path or { path }
+ local suffixes = tohash(filters.list)
+ for i=1,#paths do
+ local path = resolveprefix(paths[i])
+ if path ~= "" then
+ local list = dir.glob(path.."/*")
+ for i=1,#list do
+ local fullname = list[i]
+ local suffix = lower(suffixonly(fullname))
+ if suffixes[suffix] then
+ local c = cleanfilename(fullname)
+ runtimefiles[c] = fullname
+ if trace_names then
+ report_names("adding runtime filename %a for %a",c,fullname)
+ end
+ end
+ end
+ end
+ end
+end
+
+local function addruntimefiles(variable)
+ local paths = variable and resolvers.expandedpathlistfromvariable(variable)
+ if paths and #paths > 0 then
+ addruntimepath(paths)
+ end
+end
+
+names.addruntimepath = addruntimepath
+names.addruntimefiles = addruntimefiles
+
function names.getfilename(askedname,suffix) -- last resort, strip funny chars
+ if not runtimedone then
+ addruntimefiles(names.runtimefontsvariable)
+ runtimedone = true
+ end
+ local cleanname = cleanfilename(askedname,suffix)
+ local found = runtimefiles[cleanname]
+ if found then
+ return found
+ end
names.load()
local files = names.data.files
- local cleanname = cleanfilename(askedname,suffix)
local found = files and files[cleanname] or ""
if found == "" and is_reloaded() then
files = names.data.files
diff --git a/tex/context/base/mkiv/luat-cod.lua b/tex/context/base/mkiv/luat-cod.lua
index ad7f34270..5a2dc30cc 100644
--- a/tex/context/base/mkiv/luat-cod.lua
+++ b/tex/context/base/mkiv/luat-cod.lua
@@ -13,10 +13,19 @@ local texconfig, lua = texconfig, lua
-- some basic housekeeping
-texconfig.kpse_init = false
-texconfig.shell_escape = 't'
-texconfig.max_print_line = 100000
-texconfig.max_in_open = 1000
+texconfig.kpse_init = false
+texconfig.shell_escape = 't'
+
+texconfig.error_line = 79 -- frozen / large values can crash
+texconfig.expand_depth = 10000
+texconfig.half_error_line = 50 -- frozen
+texconfig.max_in_open = 1000
+texconfig.max_print_line = 100000
+texconfig.max_strings = 500000
+texconfig.nest_size = 1000
+texconfig.param_size = 25000
+texconfig.save_size = 100000
+texconfig.stack_size = 10000
-- registering bytecode chunks
diff --git a/tex/context/base/mkiv/math-fbk.lua b/tex/context/base/mkiv/math-fbk.lua
index dd3b84bd6..c10388570 100644
--- a/tex/context/base/mkiv/math-fbk.lua
+++ b/tex/context/base/mkiv/math-fbk.lua
@@ -15,6 +15,7 @@ local report_fallbacks = logs.reporter("math","fallbacks")
local formatters = string.formatters
local fastcopy = table.fastcopy
local byte = string.byte
+local sortedhash = table.sortedhash
local fallbacks = { }
mathematics.fallbacks = fallbacks
@@ -114,7 +115,7 @@ function fallbacks.apply(target,original)
}
target.mathrelation = data
--
- for k, v in next, virtualcharacters do
+ for k, v in sortedhash(virtualcharacters) do
if not characters[k] then
local tv = type(v)
local cd = nil
@@ -123,7 +124,7 @@ function fallbacks.apply(target,original)
elseif tv == "number" then
cd = characters[v]
elseif tv == "function" then
- cd = v(data)
+ cd = v(data) -- ,k
end
if cd then
characters[k] = cd
@@ -314,7 +315,7 @@ local function accent_to_extensible(target,newchr,original,oldchr,height,depth,s
local characters = target.characters
local olddata = characters[oldchr]
-- brrr ... pagella has only next
- if olddata and not olddata.commands and olddata.width > 0 then
+ if olddata and not olddata.commands then -- not: and olddata.width > 0
local addprivate = fonts.helpers.addprivate
if swap then
swap = characters[swap]
diff --git a/tex/context/base/mkiv/mult-def.lua b/tex/context/base/mkiv/mult-def.lua
index 59c2ed605..49371fee8 100644
--- a/tex/context/base/mkiv/mult-def.lua
+++ b/tex/context/base/mkiv/mult-def.lua
@@ -8202,6 +8202,10 @@ return {
["pe"]="تبدیل‌سر",
["ro"]="conversietitlu",
},
+ ["headseparator"]={
+ ["en"]="headseparator",
+ ["nl"]="kopscheider",
+ },
["header"]={
["cs"]="zahlavi",
["de"]="kopfzeile",
diff --git a/tex/context/base/mkiv/node-ser.lua b/tex/context/base/mkiv/node-ser.lua
index f1be21f84..7ed2b8d00 100644
--- a/tex/context/base/mkiv/node-ser.lua
+++ b/tex/context/base/mkiv/node-ser.lua
@@ -106,6 +106,7 @@ nodes.ignorablefields = ignore
local function astable(n,sparse) -- not yet ok, might get obsolete anyway
n = tonode(n)
local f = getfields(n)
+ local t = { }
for i=1,#f do
local v = f[i]
local d = n[v]
diff --git a/tex/context/base/mkiv/page-sid.mkiv b/tex/context/base/mkiv/page-sid.mkiv
index e8f2b03a4..46e4cd073 100644
--- a/tex/context/base/mkiv/page-sid.mkiv
+++ b/tex/context/base/mkiv/page-sid.mkiv
@@ -204,7 +204,13 @@
\def\page_sides_flush_floats_text
{\par
- \ifdim\dimexpr\d_page_sides_vsize-\d_page_sides_bottomskip-\pagetotal\relax>\zeropoint % -\pagedepth
+ \ifdim\dimexpr
+ \d_page_sides_vsize
+ \ifnum\c_anch_backgrounds_text_level>\plusone
+ -\d_page_sides_bottomskip
+ \fi
+ -\pagetotal
+ \relax>\zeropoint % -\pagedepth
\page_sides_flush_floats_progress
\page_sides_flush_floats_after_none
\fi
@@ -271,7 +277,14 @@
\forgetall
\offinterlineskip
\doloop
- {\scratchdimen\dimexpr\d_page_sides_vsize-\d_page_sides_bottomskip-\pagetotal-\pagedepth\relax
+ {\scratchdimen\dimexpr
+ \d_page_sides_vsize
+ \ifnum\c_anch_backgrounds_text_level>\plusone
+ -\d_page_sides_bottomskip
+ \fi
+ -\pagetotal
+ -\pagedepth
+ \relax
\ifdim\scratchdimen>\onepoint % good enough, if we change it it will become a threshold
\ifnum\recurselevel>\plushundred % safeguard, sort of deadcycles
\exitloop
@@ -863,10 +876,10 @@
%D We need to hook it into the other otr's. This code will be adapted once we rename
%D the callers. We use \type {\def} as they can be redefined! Some will become obsolete
-\def\checksidefloat {\page_sides_check_floats}
-\def\flushsidefloats {\page_sides_flush_floats_text}
-\def\flushsidefloatsafterpar{\page_sides_flush_floats_after_par}
-\def\forgetsidefloats {\page_sides_forget_floats}
-%def\synchronizesidefloats {\page_sides_synchronize_floats}
+\unexpanded\def\checksidefloat {\page_sides_check_floats}
+\unexpanded\def\flushsidefloats {\page_sides_flush_floats_text}
+\unexpanded\def\flushsidefloatsafterpar{\page_sides_flush_floats_after_par}
+\unexpanded\def\forgetsidefloats {\page_sides_forget_floats}
+%unexpanded\def\synchronizesidefloats {\page_sides_synchronize_floats}
\protect \endinput
diff --git a/tex/context/base/mkiv/spac-ver.mkiv b/tex/context/base/mkiv/spac-ver.mkiv
index 1e173f5e8..7c84eef45 100644
--- a/tex/context/base/mkiv/spac-ver.mkiv
+++ b/tex/context/base/mkiv/spac-ver.mkiv
@@ -2220,14 +2220,23 @@
\definevspacing[\s!default] [\v!white] % was big for a while
-% \dorecurse{10} % todo: other values < 4000
-% {\normalexpanded{\definevspacing[\v!samepage-\recurselevel][penalty:\the\numexpr4000+250*\recurselevel\relax]}}
-
\newcount\c_spac_vspacing_special_base \c_spac_vspacing_special_base = 32250 % 4000
\newcount\c_spac_vspacing_special_step \c_spac_vspacing_special_step = 10 % 250
-\dorecurse{10}
- {\normalexpanded{\definevspacing[\v!samepage-\recurselevel][penalty:\the\numexpr\c_spac_vspacing_special_base+\c_spac_vspacing_special_step*\recurselevel\relax]}}
+\unexpanded\def\spac_vspacing_define_same_page#1%
+ {\normalexpanded{\definevspacing
+ [\v!samepage-#1]%
+ [penalty:\the\numexpr\c_spac_vspacing_special_base+\c_spac_vspacing_special_step*#1\relax]}}
+
+\dorecurse{20}{\spac_vspacing_define_same_page{#1}}
+
+\ifdefined\everydefinesection
+ \appendtoks
+ \spac_vspacing_define_same_page\maxstructuredepth
+ \to \everydefinesection
+\else
+ % the order has changed so this code has to move to strf-def.mkiv then
+\fi
\definevspacing[\v!default] [\v!big] % todo: needs to adapt to \setupblank
\definevspacing[\v!before] [\v!default] % but we need to avoid circular references
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 39922f868..2cfc16874 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index b7a223056..c9db9f1d6 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/strc-def.mkiv b/tex/context/base/mkiv/strc-def.mkiv
index db97d8626..8d1fa371f 100644
--- a/tex/context/base/mkiv/strc-def.mkiv
+++ b/tex/context/base/mkiv/strc-def.mkiv
@@ -181,6 +181,75 @@
[\v!appendix\c!label=\v!subsubsection,
\v!bodypart\c!label=\v!subsubsection] % bijlageconversie=\Character
+% extras
+
+\definesection[\s!section-8] % subsubsubsubsubsection
+\definesection[\s!section-9] % subsubsubsubsubsubsection
+\definesection[\s!section-10] % subsubsubsubsubsubsubsection
+\definesection[\s!section-11] % subsubsubsubsubsubsubsubsection
+\definesection[\s!section-12] % subsubsubsubsubsubsubsubsubsection
+
+\definehead
+ [\v!subsubsubsubsubsection]
+ [\c!section=\s!section-8,
+ \c!default=\v!subsubsubsubsection]
+
+\definehead
+ [\v!subsubsubsubsubsubsection]
+ [\c!section=\s!section-9,
+ \c!default=\v!subsubsubsubsubsection]
+
+\definehead
+ [\v!subsubsubsubsubsubsubsection]
+ [\c!section=\s!section-10,
+ \c!default=\v!subsubsubsubsubsubsection]
+
+\definehead
+ [\v!subsubsubsubsubsubsubsubsection]
+ [\c!section=\s!section-11,
+ \c!default=\v!subsubsubsubsubsubsubsection]
+
+\definehead
+ [\v!subsubsubsubsubsubsubsubsubsection]
+ [\c!section=\s!section-12,
+ \c!default=\v!subsubsubsubsubsubsubsubsection]
+
+\definehead
+ [\v!subsubsubsubsubsubject]
+ [\c!coupling=\v!subsubsubsubsubsection,
+ \c!default=\v!subsubsubsubsubsection,
+ \c!incrementnumber=\v!no]
+
+\definehead
+ [\v!subsubsubsubsubsubsubject]
+ [\c!coupling=\v!subsubsubsubsubsubsection,
+ \c!default=\v!subsubsubsubsubsubsection,
+ \c!incrementnumber=\v!no]
+
+\definehead
+ [\v!subsubsubsubsubsubsubsubject]
+ [\c!coupling=\v!subsubsubsubsubsubsubsection,
+ \c!default=\v!subsubsubsubsubsubsubsection,
+ \c!incrementnumber=\v!no]
+
+\definehead
+ [\v!subsubsubsubsubsubsubsubsubject]
+ [\c!coupling=\v!subsubsubsubsubsubsubsubsection,
+ \c!default=\v!subsubsubsubsubsubsubsubsection,
+ \c!incrementnumber=\v!no]
+
+\definehead
+ [\v!subsubsubsubsubsubsubsubsubsubject]
+ [\c!coupling=\v!subsubsubsubsubsubsubsubsubsection,
+ \c!default=\v!subsubsubsubsubsubsubsubsubsection,
+ \c!incrementnumber=\v!no]
+
+\defineprefixset
+ [\v!all]
+ [section-1,section-2,section-3,section-4,section-5,section-6,section-7,%
+ section-8,section-9,section-10,section-11,section-12]
+ []
+
% \setuphead
\setuphead
diff --git a/tex/context/base/mkiv/strc-flt.mkvi b/tex/context/base/mkiv/strc-flt.mkvi
index 2d085b62b..78fe0b400 100644
--- a/tex/context/base/mkiv/strc-flt.mkvi
+++ b/tex/context/base/mkiv/strc-flt.mkvi
@@ -344,7 +344,8 @@
\hbox{\usefloatcaptionstyleandcolor\c!headstyle\c!headcolor\thecurrentfloatnumber}%
\ifnofloatcaption \else \ifemptyfloatcaption \else
\doifelsenothing{\floatcaptionparameter\c!spaceinbetween}
- {\scratchskip\floatcaptionparameter\c!distance\relax
+ {\floatcaptionparameter\c!headseparator\relax
+ \scratchskip\floatcaptionparameter\c!distance\relax
\dotfskip\scratchskip\emergencystretch.5\scratchskip}
{\blank[\floatcaptionparameter\c!spaceinbetween]}%
\fi \fi
diff --git a/tex/context/base/mkiv/supp-box.lua b/tex/context/base/mkiv/supp-box.lua
index 1193c30b6..664477cfc 100644
--- a/tex/context/base/mkiv/supp-box.lua
+++ b/tex/context/base/mkiv/supp-box.lua
@@ -35,6 +35,7 @@ local tonode = nuts.tonode
----- getfield = nuts.getfield
local getnext = nuts.getnext
local getprev = nuts.getprev
+local getboth = nuts.getboth
local getdisc = nuts.getdisc
local getid = nuts.getid
local getlist = nuts.getlist
@@ -80,9 +81,8 @@ local texsetdimen = tex.setdimen
local function hyphenatedlist(head,usecolor)
local current = head and tonut(head)
while current do
- local id = getid(current)
- local next = getnext(current)
- local prev = getprev(current)
+ local id = getid(current)
+ local prev, next = getboth(current)
if id == disc_code then
local pre, post, replace = getdisc(current)
if not usecolor then
@@ -99,31 +99,14 @@ local function hyphenatedlist(head,usecolor)
flush_list(replace)
end
setdisc(current)
- setboth(current)
--- local list = setlink (
--- pre and new_penalty(10000),
--- pre,
--- current,
--- post,
--- post and new_penalty(10000)
--- )
--- local tail = find_tail(list)
--- if prev then
--- setlink(prev,list)
--- end
--- if next then
--- setlink(tail,next)
--- end
- setlink (
- prev, -- there had better be one
- pre and new_penalty(10000),
- pre,
- current,
- post,
- post and new_penalty(10000),
- next
- )
- -- flush_node(current)
+ if pre then
+ setlink(prev,new_penalty(10000),pre)
+ setlink(find_tail(pre),current)
+ end
+ if post then
+ setlink(current,new_penalty(10000),post)
+ setlink(find_tail(post),next)
+ end
elseif id == vlist_code or id == hlist_code then
hyphenatedlist(getlist(current))
end
diff --git a/tex/context/base/mkiv/trac-vis.mkiv b/tex/context/base/mkiv/trac-vis.mkiv
index 922e78a7c..a6a3fa5a2 100644
--- a/tex/context/base/mkiv/trac-vis.mkiv
+++ b/tex/context/base/mkiv/trac-vis.mkiv
@@ -1,6 +1,6 @@
%D \module
%D [ file=trac-vis, % replaces supp-vis plus some s-* modules
-%D version=2112.06.23, % 1996.10.21,
+%D version=2012.06.23, % 1996.10.21,
%D title=\CONTEXT\ Tracing Macros,
%D subtitle=Visualization,
%D author=Hans Hagen,