summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/context/documents/general/manuals/musings.pdfbin5724808 -> 2647 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-cs.pdfbin853712 -> 853563 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-de.pdfbin853673 -> 853525 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-en.pdfbin857071 -> 856925 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-fr.pdfbin849591 -> 849445 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-it.pdfbin856208 -> 856054 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-cs.pdfbin346837 -> 346696 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-de.pdfbin431140 -> 430993 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-en.pdfbin344793 -> 344652 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-fr.pdfbin347539 -> 347391 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-it.pdfbin346669 -> 346518 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-nl.pdfbin345411 -> 345264 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-ro.pdfbin508150 -> 508003 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-nl.pdfbin846743 -> 846610 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-ro.pdfbin851264 -> 851107 bytes
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-fonts.tex12
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-nodes.tex3
-rw-r--r--metapost/context/base/mpiv/mp-mlib.mpiv40
-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-cs.mkii1
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv10
-rw-r--r--tex/context/base/mkiv/core-def.mkiv2
-rw-r--r--tex/context/base/mkiv/font-ini.lua35
-rw-r--r--tex/context/base/mkiv/font-mps.lua23
-rw-r--r--tex/context/base/mkiv/page-cst.mkiv5
-rw-r--r--tex/context/base/mkiv/page-mul.mkiv13
-rw-r--r--tex/context/base/mkiv/page-set.mkiv17
-rw-r--r--tex/context/base/mkiv/page-smp.mkiv59
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin26112 -> 26196 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin269238 -> 269257 bytes
-rw-r--r--tex/context/base/mkiv/strc-flt.mkvi72
-rw-r--r--tex/context/base/mkiv/strc-sec.mkiv9
-rw-r--r--tex/context/base/mkiv/syst-aux.mkiv56
-rw-r--r--tex/context/interface/mkii/keys-cs.xml1
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin857071 -> 856925 bytes
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin60772 -> 60771 bytes
-rw-r--r--tex/context/modules/mkiv/m-old-columnsets.mkiv7
-rw-r--r--tex/context/modules/mkiv/m-old-multicolumns.mkiv7
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua10
-rw-r--r--tex/generic/context/luatex/luatex-fonts-mis.lua4
42 files changed, 244 insertions, 148 deletions
diff --git a/doc/context/documents/general/manuals/musings.pdf b/doc/context/documents/general/manuals/musings.pdf
index 9d1daa346..bb70fac4c 100644
--- a/doc/context/documents/general/manuals/musings.pdf
+++ b/doc/context/documents/general/manuals/musings.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-cs.pdf b/doc/context/documents/general/qrcs/setup-cs.pdf
index 415d1499a..efb4fb952 100644
--- a/doc/context/documents/general/qrcs/setup-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-de.pdf b/doc/context/documents/general/qrcs/setup-de.pdf
index 025c45f65..fe5c22ca8 100644
--- a/doc/context/documents/general/qrcs/setup-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-en.pdf b/doc/context/documents/general/qrcs/setup-en.pdf
index 1ac6e7764..9c45d463f 100644
--- a/doc/context/documents/general/qrcs/setup-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-fr.pdf b/doc/context/documents/general/qrcs/setup-fr.pdf
index affc42206..e15cff82c 100644
--- a/doc/context/documents/general/qrcs/setup-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-it.pdf b/doc/context/documents/general/qrcs/setup-it.pdf
index af1556843..5aae4072a 100644
--- a/doc/context/documents/general/qrcs/setup-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
index 3012ce5aa..0b99cc06c 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-de.pdf b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
index 85b6639c9..c451eb621 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-en.pdf b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
index f877428b9..248a1c798 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
index 8708d7a7a..c4cceecdc 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-it.pdf b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
index f52cdaa38..56c41f819 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
index 2f33274ca..7a3c3c84a 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
index 5ab86805e..ab17871a0 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-nl.pdf b/doc/context/documents/general/qrcs/setup-nl.pdf
index fcb0cbb71..26f6e3f8c 100644
--- a/doc/context/documents/general/qrcs/setup-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-ro.pdf b/doc/context/documents/general/qrcs/setup-ro.pdf
index c16d44b87..c43d9ba17 100644
--- a/doc/context/documents/general/qrcs/setup-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-ro.pdf
Binary files differ
diff --git a/doc/context/sources/general/manuals/luatex/luatex-fonts.tex b/doc/context/sources/general/manuals/luatex/luatex-fonts.tex
index 189e3295e..6f71877fb 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-fonts.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-fonts.tex
@@ -713,9 +713,15 @@ font.setfont(<number> n, <table> f)
\stopfunctioncall
Note that at the moment, each access to the \type {font.fonts} or call to \type
-{font.getfont} creates a \LUA\ table for the whole font. This process can be
-quite slow. In a later version of \LUATEX, this interface will change (it will
-start using userdata objects instead of actual tables).
+{font.getfont} creates a \LUA\ table for the whole font unless you cached it.
+This process can be quite slow.
+
+\startfunctioncall
+<table> p = font.getparameters(<number> n)
+\stopfunctioncall
+
+This one will return a table of the parameters as known to \TEX. These can be
+different from the ones in the cached table.
Also note the following: assignments can only be made to fonts that have already
been defined in \TEX, but have not been accessed {\it at all\/} since that
diff --git a/doc/context/sources/general/manuals/luatex/luatex-nodes.tex b/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
index 2793a1af7..40324cd7b 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
@@ -312,7 +312,8 @@ to make the encapsulating box fit its dimensions. For instance, in a paragraph
lines normally have glue representing spaces and these stretch or shrink to make
the content fit in the available space. The \type {effective_glue} function that
takes a glue node and a parent (hlist or vlist) returns the effective width of
-that glue item.
+that glue item. When you pass \type {true} as third argument the value will be
+rounded.
A \nod {glue_spec} node is a special kind of node that is used for storing a set
of glue values in registers. Originally they were also used to store properties
diff --git a/metapost/context/base/mpiv/mp-mlib.mpiv b/metapost/context/base/mpiv/mp-mlib.mpiv
index 807b91dbd..b7fc60b21 100644
--- a/metapost/context/base/mpiv/mp-mlib.mpiv
+++ b/metapost/context/base/mpiv/mp-mlib.mpiv
@@ -1131,59 +1131,59 @@ enddef ;
numeric currentoutlinetext ; currentoutlinetext := 0 ;
-vardef mfun_do_outline_text_flush (expr kind, n, x, y) (text t) =
+vardef mfun_do_outline_text_flush (expr kind, n, x, y, c) (text t) =
if kind = "f" :
- mfun_do_outline_text_f (n, x, y) (t)
+ mfun_do_outline_text_f (n, x, y, c) (t)
elseif kind = "d" :
- mfun_do_outline_text_d (n, x, y) (t)
+ mfun_do_outline_text_d (n, x, y, c) (t)
elseif kind = "b" :
- mfun_do_outline_text_b (n, x, y) (t)
+ mfun_do_outline_text_b (n, x, y, c) (t)
elseif kind = "r" :
- mfun_do_outline_text_r (n, x, y) (t)
+ mfun_do_outline_text_r (n, x, y, c) (t)
elseif kind = "p" :
- mfun_do_outline_text_p (n, x, y) (t)
+ mfun_do_outline_text_p (n, x, y, c) (t)
elseif kind = "u" :
- mfun_do_outline_text_u (n, x, y) (t)
+ mfun_do_outline_text_u (n, x, y, c) (t)
else :
- mfun_do_outline_text_n (n, x, y) (t)
+ mfun_do_outline_text_n (n, x, y, c) (t)
fi ;
enddef ;
vardef mfun_do_outline_rule_flush (expr kind, x, y, w, h) =
- mfun_do_outline_text_flush (kind, 1, x, y) (fullsquare xyscaled(w,h))
+ mfun_do_outline_text_flush (kind, 1, x, y, "") (fullsquare xyscaled(w,h))
enddef ;
numeric mfun_do_outline_n ; mfun_do_outline_n := 0 ;
-vardef mfun_do_outline_text_f (expr n, x, y) (text t) =
+vardef mfun_do_outline_text_f (expr n, x, y, c) (text t) =
mfun_do_outline_n := 0 ;
for i=t :
mfun_do_outline_n := mfun_do_outline_n + 1 ;
- if mfun_do_outline_n = n : fill else : nofill fi (i shifted(x,y)) mfun_do_outline_options_f withpen pencircle scaled 0 ;
+ if mfun_do_outline_n = n : fill else : nofill fi (i shifted(x,y)) mfun_do_outline_options_f withpen pencircle scaled 0 withprescript c ;
endfor ;
enddef ;
-vardef mfun_do_outline_text_u (expr n, x, y) (text t) =
+vardef mfun_do_outline_text_u (expr n, x, y, c) (text t) =
mfun_do_outline_n := 0 ;
for i=t :
mfun_do_outline_n := mfun_do_outline_n + 1 ;
- if mfun_do_outline_n = n : fillup else : nofill fi (i shifted(x,y)) mfun_do_outline_options_f ;
+ if mfun_do_outline_n = n : fillup else : nofill fi (i shifted(x,y)) mfun_do_outline_options_f withprescript c ;
endfor ;
enddef ;
-vardef mfun_do_outline_text_d (expr n, x, y) (text t) =
+vardef mfun_do_outline_text_d (expr n, x, y, c) (text t) =
for i=t :
draw i shifted(x,y) mfun_do_outline_options_d ;
endfor ;
enddef ;
-vardef mfun_do_outline_text_p (expr n, x, y) (text t) =
+vardef mfun_do_outline_text_p (expr n, x, y, c) (text t) =
for i=t :
- draw i shifted(x,y) ;
+ draw i shifted(x,y) withprescript c ;
endfor ;
enddef ;
-vardef mfun_do_outline_text_b (expr n, x, y) (text t) =
+vardef mfun_do_outline_text_b (expr n, x, y, c) (text t) =
mfun_do_outline_n := 0 ;
for i=t :
mfun_do_outline_n := mfun_do_outline_n + 1 ;
@@ -1194,18 +1194,18 @@ vardef mfun_do_outline_text_b (expr n, x, y) (text t) =
endfor ;
enddef ;
-vardef mfun_do_outline_text_r (expr n, x, y) (text t) =
+vardef mfun_do_outline_text_r (expr n, x, y, c) (text t) =
mfun_do_outline_n := 0 ;
for i=t :
draw i shifted(x,y) mfun_do_outline_options_d ;
endfor ;
for i=t :
mfun_do_outline_n := mfun_do_outline_n + 1 ;
- if mfun_do_outline_n = n : fill else : nofill fi (i shifted(x,y)) mfun_do_outline_options_f ;
+ if mfun_do_outline_n = n : fill else : nofill fi (i shifted(x,y)) mfun_do_outline_options_f;
endfor ;
enddef ;
-vardef mfun_do_outline_text_n (expr n, x, y) (text t) =
+vardef mfun_do_outline_text_n (expr n, x, y, c) (text t) =
mfun_do_outline_n := 0 ;
for i=t :
mfun_do_outline_n := mfun_do_outline_n + 1 ;
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 17a5a0f62..2d0987f26 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.09.25 14:14}
+\newcontextversion{2018.09.26 14:26}
%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 3cfcb8828..42417ac1e 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.09.25 14:14}
+\edef\contextversion{2018.09.26 14:26}
%D For those who want to use this:
diff --git a/tex/context/base/mkii/mult-cs.mkii b/tex/context/base/mkii/mult-cs.mkii
index ffb685a10..b07eb00f6 100644
--- a/tex/context/base/mkii/mult-cs.mkii
+++ b/tex/context/base/mkii/mult-cs.mkii
@@ -1241,6 +1241,7 @@
\setinterfaceconstant{textstyle}{styltextu}
\setinterfaceconstant{textwidth}{sirkatextu}
\setinterfaceconstant{threshold}{threshold}
+\setinterfaceconstant{time}{time}
\setinterfaceconstant{title}{titul}
\setinterfaceconstant{titlecolor}{barvatitulek}
\setinterfaceconstant{titlecommand}{titlecommand}
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 8bb291480..3d6861ab4 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.09.25 14:14}
+\newcontextversion{2018.09.26 14:26}
%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 2ea76e361..21b83b486 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -42,7 +42,7 @@
%D has to match \type {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2018.09.25 14:14}
+\edef\contextversion{2018.09.26 14:26}
\edef\contextkind {beta}
%D For those who want to use this:
@@ -320,9 +320,11 @@
\loadmarkfile{page-pst}
\loadmkvifile{page-mbk}
-\loadmarkfile{page-mul} % partly overloaded
-\loadmarkfile{page-mix} % new
-\loadmarkfile{page-set}
+%loadmarkfile{page-mul} % \usecolumns[old-multicolumns]
+\loadmarkfile{page-mix}
+\loadmarkfile{page-smp}
+%loadmarkfile{page-set} % \usecolumns[old-columnsets]
+\loadmarkfile{page-cst}
\loadmarkfile{page-pcl} % new
\loadmarkfile{pack-lyr}
\loadmarkfile{pack-pos}
diff --git a/tex/context/base/mkiv/core-def.mkiv b/tex/context/base/mkiv/core-def.mkiv
index 9dbb16f5c..95f7f2577 100644
--- a/tex/context/base/mkiv/core-def.mkiv
+++ b/tex/context/base/mkiv/core-def.mkiv
@@ -39,7 +39,7 @@
% \flushcommentanchors
\flushnotes
\synchronizenotes
- \OTRSETshowstatus
+ % \OTRSETshowstatus
\registerparoptions
% \flushsyncpositions
\flushpostponednodedata
diff --git a/tex/context/base/mkiv/font-ini.lua b/tex/context/base/mkiv/font-ini.lua
index 3d5dd27a2..d42652e0e 100644
--- a/tex/context/base/mkiv/font-ini.lua
+++ b/tex/context/base/mkiv/font-ini.lua
@@ -10,22 +10,33 @@ if not modules then modules = { } end modules ['font-ini'] = {
<p>Not much is happening here.</p>
--ldx]]--
-local allocate = utilities.storage.allocate
+local allocate = utilities.storage.allocate
+local sortedhash = table.sortedhash
-fonts = fonts or { }
-local fonts = fonts
+fonts = fonts or { }
+local fonts = fonts
-fonts.hashes = fonts.hashes or { identifiers = allocate() }
-fonts.tables = fonts.tables or { }
-fonts.helpers = fonts.helpers or { }
-fonts.tracers = fonts.tracers or { } -- for the moment till we have move to moduledata
-fonts.specifiers = fonts.specifiers or { } -- in format !
+local identifiers = allocate()
-fonts.analyzers = { } -- not needed here
-fonts.readers = { }
-fonts.definers = { methods = { } }
-fonts.loggers = { register = function() end }
+fonts.hashes = fonts.hashes or { identifiers = identifiers }
+fonts.tables = fonts.tables or { }
+fonts.helpers = fonts.helpers or { }
+fonts.tracers = fonts.tracers or { } -- for the moment till we have move to moduledata
+fonts.specifiers = fonts.specifiers or { } -- in format !
+
+fonts.analyzers = { } -- not needed here
+fonts.readers = { }
+fonts.definers = { methods = { } }
+fonts.loggers = { register = function() end }
if context then
+
+ font.originaleach = font.each
+
+ function font.each()
+ return sortedhash(identifiers)
+ end
+
fontloader = nil
+
end
diff --git a/tex/context/base/mkiv/font-mps.lua b/tex/context/base/mkiv/font-mps.lua
index 766468c57..167d7f214 100644
--- a/tex/context/base/mkiv/font-mps.lua
+++ b/tex/context/base/mkiv/font-mps.lua
@@ -6,6 +6,7 @@ if not modules then modules = { } end modules ['font-mps'] = {
license = "see context related readme files"
}
+local tostring = tostring
local concat = table.concat
local formatters = string.formatters
@@ -35,6 +36,17 @@ local f_draw = formatters["draw %s;"]
local f_boundingbox = formatters["((%.6F,%.6F)--(%.6F,%.6F)--(%.6F,%.6F)--(%.6F,%.6F)--cycle)"]
local f_vertical = formatters["((%.6F,%.6F)--(%.6F,%.6F))"]
+directives.register("metapost.stripzeros", function()
+
+ f_moveto = formatters["(%.6N,%.6N)"]
+ f_lineto = formatters["--(%.6N,%.6N)"]
+ f_curveto = formatters["..controls(%.6N,%.6N)and(%.6N,%.6N)..(%.6N,%.6N)"]
+
+ f_boundingbox = formatters["((%.6N,%.6N)--(%.6N,%.6N)--(%.6N,%.6N)--(%.6N,%.6N)--cycle)"]
+ f_vertical = formatters["((%.6N,%.6N)--(%.6N,%.6N))"]
+
+end)
+
function metapost.boundingbox(d,factor)
local bounds = d.boundingbox
local factor = factor or 1
@@ -276,11 +288,17 @@ local parameters = fonts.hashes.parameters
local shapes = fonts.hashes.shapes
local topaths = metapost.paths
-local f_code = formatters["mfun_do_outline_text_flush(%q,%i,%.6F,%.6F)(%,t);"]
+local f_code = formatters["mfun_do_outline_text_flush(%q,%i,%.6F,%.6F,%q)(%,t);"]
local f_rule = formatters["mfun_do_outline_rule_flush(%q,%.6F,%.6F,%.6F,%.6F);"]
local f_bounds = formatters["checkbounds(%.6F,%.6F,%.6F,%.6F);"]
local s_nothing = "(origin scaled 10)"
+directives.register("metapost.stripzeros", function()
+ f_code = formatters["mfun_do_outline_text_flush(%q,%i,%.6N,%.6N,%q)(%,t);"]
+ f_rule = formatters["mfun_do_outline_rule_flush(%q,%.6N,%.6N,%.6N,%.6N);"]
+ f_bounds = formatters["checkbounds(%.6N,%.6N,%.6N,%.6N);"]
+end)
+
local sc = 10
local fc = number.dimenfactors.bp * sc / 10
@@ -303,13 +321,14 @@ function metapost.output(kind,font,char,advance,shift,ex)
local advance = advance or 0
local exfactor = ex or 0
local wfactor = 1
+ local detail = kind == "p" and tostring(char) or ""
if exfactor ~= 0 then
wfactor = (1+(ex/units)/1000)
xfactor = xfactor * wfactor
end
local paths = topaths(glyf,xfactor,yfactor)
if paths then
- local code = f_code(kind,#paths,advance,shift,paths)
+ local code = f_code(kind,#paths,advance,shift,detail,paths)
return code, character.width * fc * wfactor
else
return "", 0
diff --git a/tex/context/base/mkiv/page-cst.mkiv b/tex/context/base/mkiv/page-cst.mkiv
index f6eede68a..37df4e8b1 100644
--- a/tex/context/base/mkiv/page-cst.mkiv
+++ b/tex/context/base/mkiv/page-cst.mkiv
@@ -765,7 +765,7 @@
% state start | repeat
-% for now (transition)
+%D The old one:
\let\definecolumnset \definepagegrid
\let\setupcolumnset \setuppagegrid
@@ -782,5 +782,6 @@
\let\setupcolumnsetarea \setuppagegridarea
\let\setupcolumnsetareatext\setuppagegridareatext
-\protect
+%D It ends here.
+\protect \endinput
diff --git a/tex/context/base/mkiv/page-mul.mkiv b/tex/context/base/mkiv/page-mul.mkiv
index 51040a28e..69771bf78 100644
--- a/tex/context/base/mkiv/page-mul.mkiv
+++ b/tex/context/base/mkiv/page-mul.mkiv
@@ -1848,4 +1848,17 @@
\s!page_otr_command_test_column =\page_mul_command_test_column
]
+\installfloatmethod \s!multicolumn \v!here \page_mul_place_float_here
+\installfloatmethod \s!multicolumn \v!force \page_mul_place_float_force
+\installfloatmethod \s!multicolumn \v!top \page_mul_place_float_top
+\installfloatmethod \s!multicolumn \v!bottom \page_mul_place_float_bottom
+
+\appendtoks
+ \flushingcolumnfloatsfalse
+\to \everybeforesectionheadhandle
+
+\appendtoks
+ \flushingcolumnfloatstrue
+\to \everyaftersectionheadhandle
+
\protect \endinput
diff --git a/tex/context/base/mkiv/page-set.mkiv b/tex/context/base/mkiv/page-set.mkiv
index d5bfe657e..f2755195a 100644
--- a/tex/context/base/mkiv/page-set.mkiv
+++ b/tex/context/base/mkiv/page-set.mkiv
@@ -2626,6 +2626,23 @@
% \s!page_otr_command_flush_margin_blocks =\page_set_command_flush_margin_blocks, % not used
]
+\installfloatmethod \s!columnset \v!here \page_set_place_float_here
+\installfloatmethod \s!columnset \v!force \page_set_place_float_force
+\installfloatmethod \s!columnset \v!top \page_set_place_float_top
+\installfloatmethod \s!columnset \v!bottom \page_set_place_float_bottom
+\installfloatmethod \s!columnset \v!page \page_set_place_float_page
+\installfloatmethod \s!columnset \s!tblr \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!lrtb \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!tbrl \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!rltb \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!fxtb \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!btlr \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!lrbt \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!btrl \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!rlbt \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!fxbt \page_set_place_float_slot
+\installfloatmethod \s!columnset \s!fixd \page_set_place_float_force
+
\protect \endinput
% extreme examples (1)
diff --git a/tex/context/base/mkiv/page-smp.mkiv b/tex/context/base/mkiv/page-smp.mkiv
new file mode 100644
index 000000000..2711c9944
--- /dev/null
+++ b/tex/context/base/mkiv/page-smp.mkiv
@@ -0,0 +1,59 @@
+%D \module
+%D [ file=page-smp, % was: core-mul, page-mul
+%D version=1998.03.15,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Simple Multi Column Output,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect
+
+%D The old one:
+
+\definemixedcolumns
+ [\v!columns]
+ % compatible with columns default :
+ [\c!balance=\v!yes,
+ \c!blank={\v!line,\v!fixed}]
+
+\unexpanded\def\setupcolumns
+ {\setupmixedcolumns[\v!columns]}
+
+%D This will be replaced by mixed box.
+
+\unexpanded\def\startsimplecolumns
+ {\dosingleempty\page_simple_start}
+
+\def\page_simple_start[#1]%
+ {\bgroup
+ \setsimplecolumnshsize[#1]%
+ \nopenalties
+ \setbox\scratchbox\vbox\bgroup
+ \forgetall} % \blank[\v!disable]
+
+\unexpanded\def\stopsimplecolumns
+ {\removebottomthings
+ \egroup
+ \rigidcolumnbalance\scratchbox
+ \egroup}
+
+\unexpanded\def\setsimplecolumnshsize[#1]%
+ {\getdummyparameters
+ [\c!width=\hsize,
+ \c!distance=1.5\bodyfontsize,
+ \c!n=2,
+ \c!lines=0,
+ #1]%
+ \edef\rigidcolumnlines
+ {\directdummyparameter\c!lines}%
+ \setrigidcolumnhsize
+ {\directdummyparameter\c!width}%
+ {\directdummyparameter\c!distance}%
+ {\directdummyparameter\c!n}}
+
+\protect \endinput
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 395dfd172..5d0bf9406 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 270d4ef92..c7ffdbd8b 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-flt.mkvi b/tex/context/base/mkiv/strc-flt.mkvi
index f3fb1182c..805a6edc7 100644
--- a/tex/context/base/mkiv/strc-flt.mkvi
+++ b/tex/context/base/mkiv/strc-flt.mkvi
@@ -2329,6 +2329,8 @@
\definesystemconstant{fxbt}
\definesystemconstant{fixd}
+% can move to page-one:
+
\installfloatmethod \s!singlecolumn \v!here \page_one_place_float_here
\installfloatmethod \s!singlecolumn \v!force \page_one_place_float_force
\installfloatmethod \s!singlecolumn \v!left \page_one_place_float_left
@@ -2364,76 +2366,6 @@
\installfloatmethod \s!singlecolumn \s!fxbt \page_one_place_float_bottom
\installfloatmethod \s!singlecolumn \s!fixd \page_one_place_float_force
-\installfloatmethod \s!multicolumn \v!here \page_mul_place_float_here
-\installfloatmethod \s!multicolumn \v!force \page_mul_place_float_force
-%installfloatmethod \s!multicolumn \v!left
-%installfloatmethod \s!multicolumn \v!right
-%installfloatmethod \s!multicolumn \v!text
-\installfloatmethod \s!multicolumn \v!top \page_mul_place_float_top
-\installfloatmethod \s!multicolumn \v!bottom \page_mul_place_float_bottom
-%installfloatmethod \s!multicolumn \v!auto
-%installfloatmethod \s!multicolumn \v!margin
-%installfloatmethod \s!multicolumn \v!opposite
-%installfloatmethod \s!multicolumn \v!page
-%installfloatmethod \s!multicolumn \v!leftpage
-%installfloatmethod \s!multicolumn \v!rightpage
-%installfloatmethod \s!multicolumn \v!inmargin
-%installfloatmethod \s!multicolumn \v!inleft
-%installfloatmethod \s!multicolumn \v!inright
-%installfloatmethod \s!multicolumn \v!leftmargin
-%installfloatmethod \s!multicolumn \v!rightmargin
-%installfloatmethod \s!multicolumn \v!leftedge
-%installfloatmethod \s!multicolumn \v!rightedge
-%installfloatmethod \s!multicolumn \v!somewhere
-%installfloatmethod \s!multicolumn \v!backspace
-%installfloatmethod \s!multicolumn \v!cutspace
-%installfloatmethod \s!multicolumn \s!tblr
-%installfloatmethod \s!multicolumn \s!lrtb
-%installfloatmethod \s!multicolumn \s!tbrl
-%installfloatmethod \s!multicolumn \s!rltb
-%installfloatmethod \s!multicolumn \s!fxtb
-%installfloatmethod \s!multicolumn \s!btlr
-%installfloatmethod \s!multicolumn \s!lrbt
-%installfloatmethod \s!multicolumn \s!btrl
-%installfloatmethod \s!multicolumn \s!rlbt
-%installfloatmethod \s!multicolumn \s!fxbt
-%installfloatmethod \s!multicolumn \s!fixd
-
-\installfloatmethod \s!columnset \v!here \page_set_place_float_here
-\installfloatmethod \s!columnset \v!force \page_set_place_float_force
-%installfloatmethod \s!columnset \v!left
-%installfloatmethod \s!columnset \v!right
-%installfloatmethod \s!columnset \v!text
-\installfloatmethod \s!columnset \v!top \page_set_place_float_top
-\installfloatmethod \s!columnset \v!bottom \page_set_place_float_bottom
-%installfloatmethod \s!columnset \v!auto
-%installfloatmethod \s!columnset \v!margin
-%installfloatmethod \s!columnset \v!opposite
-\installfloatmethod \s!columnset \v!page \page_set_place_float_page
-%installfloatmethod \s!columnset \v!leftpage
-%installfloatmethod \s!columnset \v!rightpage
-%installfloatmethod \s!columnset \v!inmargin
-%installfloatmethod \s!columnset \v!inleft
-%installfloatmethod \s!columnset \v!inright
-%installfloatmethod \s!columnset \v!leftmargin
-%installfloatmethod \s!columnset \v!rightmargin
-%installfloatmethod \s!columnset \v!leftedge
-%installfloatmethod \s!columnset \v!rightedge
-%installfloatmethod \s!columnset \v!somewhere
-%installfloatmethod \s!columnset \v!backspace
-%installfloatmethod \s!columnset \v!cutspace
-\installfloatmethod \s!columnset \s!tblr \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!lrtb \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!tbrl \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!rltb \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!fxtb \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!btlr \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!lrbt \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!btrl \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!rlbt \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!fxbt \page_set_place_float_slot
-\installfloatmethod \s!columnset \s!fixd \page_set_place_float_force
-
%D Local floats:
\installcorenamespace{localfloats}
diff --git a/tex/context/base/mkiv/strc-sec.mkiv b/tex/context/base/mkiv/strc-sec.mkiv
index 637db03f4..8f6038da7 100644
--- a/tex/context/base/mkiv/strc-sec.mkiv
+++ b/tex/context/base/mkiv/strc-sec.mkiv
@@ -869,6 +869,9 @@
\ifdefined\triggerautostructurelevel \else \let\triggerautostructurelevel\relax \fi
+\newtoks\everybeforesectionheadhandle
+\newtoks\everyaftersectionheadhandle
+
\def\strc_sectioning_handle#1#2#3% name data userdata (we can move #1 to the caller)
{\xdef\currenthead {#1}%
\xdef\currentheadcoupling{\sectionheadcoupling\currenthead}%
@@ -882,7 +885,7 @@
\strc_sectioning_initialize_placement
\strc_sectioning_initialize_number
%
- \flushingcolumnfloatsfalse
+ \the\everybeforesectionheadhandle
%
% todo: also mark (for header)
%
@@ -968,7 +971,9 @@
\strc_sectioning_after_nop
\fi\fi
\fi
- \flushingcolumnfloatstrue
+ %
+ \the\everyaftersectionheadhandle
+ %
\setfalse\c_strc_sectioning_ignore_page
% ignorespaces prevents spaces creeping in when after=\dontleavehmode
\dostarttagged\t!sectioncontent\empty
diff --git a/tex/context/base/mkiv/syst-aux.mkiv b/tex/context/base/mkiv/syst-aux.mkiv
index 6ba3e0e66..a23563f3c 100644
--- a/tex/context/base/mkiv/syst-aux.mkiv
+++ b/tex/context/base/mkiv/syst-aux.mkiv
@@ -573,7 +573,7 @@
\def\setgvalue #1{\expandafter\gdef\csname#1\endcsname}
\def\setevalue #1{\expandafter\edef\csname#1\endcsname}
\def\setxvalue #1{\expandafter\xdef\csname#1\endcsname}
-\def\getvalue #1{\csname#1\endcsname}
+\def\getvalue #1{\csname#1\endcsname} % maybe: \begincsname#1\endcsname
\def\letvalue #1{\expandafter\let \csname#1\endcsname}
\def\letgvalue #1{\expandafter\glet\csname#1\endcsname}
\def\resetvalue #1{\expandafter\let \csname#1\endcsname\empty}
@@ -4395,28 +4395,6 @@
\expandafter\let\expandafter\recurselevel\csname\??recurseindex\the\outerrecurse\endcsname
\global\advance\outerrecurse \minusone}
-\unexpanded\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
- {\global\advance\outerrecurse \plusone
- \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1##2{#4}%
- \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
- \ifnum#3>\zerocount\relax
- \ifnum#2<#1\relax
- \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
- \else
- \let\syst_helpers_stepwise_next\syst_helpers_stepwise_recurse
- \fi
- \else
- \ifnum#3<\zerocount\relax
- \ifnum#1<#2\relax
- \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
- \else
- \let\syst_helpers_stepwise_next\syst_helpers_stepwise_reverse
- \fi
- \else
- \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
- \fi
- \fi\normalexpanded{\syst_helpers_stepwise_next{\number#1}{\number#2}{\number#3}}}
-
\unexpanded\def\doloop#1%
{\global\advance\outerrecurse \plusone
\expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1##2{#1}%
@@ -4424,8 +4402,32 @@
\let\endofloop\syst_helpers_loop
\syst_helpers_loop1} % no \plusone else \recurselevel wrong
-% faster
-
+% for instance:
+%
+% \unexpanded\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
+% {\global\advance\outerrecurse \plusone
+% \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1##2{#4}%
+% \expandafter\glet\csname\??recurseindex \the\outerrecurse\endcsname\recurselevel
+% \ifnum#3>\zerocount\relax
+% \ifnum#2<#1\relax
+% \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
+% \else
+% \let\syst_helpers_stepwise_next\syst_helpers_stepwise_recurse
+% \fi
+% \else
+% \ifnum#3<\zerocount\relax
+% \ifnum#1<#2\relax
+% \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
+% \else
+% \let\syst_helpers_stepwise_next\syst_helpers_stepwise_reverse
+% \fi
+% \else
+% \let\syst_helpers_stepwise_next\syst_helpers_stepwise_exit
+% \fi
+% \fi\normalexpanded{\syst_helpers_stepwise_next{\number#1}{\number#2}{\number#3}}}
+%
+% faster:
+%
% \unexpanded\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
% {\global\advance\outerrecurse \plusone
% \expandafter\gdef\csname\??recurseaction\the\outerrecurse\endcsname##1##2{#4}%
@@ -4437,10 +4439,12 @@
% \ifnum#1<#2\else r\fi
% \fi\fi
% \expandafter\endcsname\normalexpanded{{\number#1}{\number#2}{\number#3}}}
-
+%
% \let\@swr \syst_helpers_stepwise_exit
% \let\@swrd\syst_helpers_stepwise_recurse
% \let\@swrr\syst_helpers_stepwise_reverse
+%
+% nicer:
\installsystemnamespace{recursestepwise}
diff --git a/tex/context/interface/mkii/keys-cs.xml b/tex/context/interface/mkii/keys-cs.xml
index a4a6b3582..8e1e4a457 100644
--- a/tex/context/interface/mkii/keys-cs.xml
+++ b/tex/context/interface/mkii/keys-cs.xml
@@ -1247,6 +1247,7 @@
<cd:constant name='textstyle' value='styltextu'/>
<cd:constant name='textwidth' value='sirkatextu'/>
<cd:constant name='threshold' value='threshold'/>
+ <cd:constant name='time' value='time'/>
<cd:constant name='title' value='titul'/>
<cd:constant name='titlecolor' value='barvatitulek'/>
<cd:constant name='titlecommand' value='titlecommand'/>
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 1ac6e7764..9c45d463f 100644
--- a/tex/context/interface/mkiv/i-context.pdf
+++ b/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index 75e3265b4..c7a9f2005 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/tex/context/modules/mkiv/m-old-columnsets.mkiv b/tex/context/modules/mkiv/m-old-columnsets.mkiv
new file mode 100644
index 000000000..d840cbc91
--- /dev/null
+++ b/tex/context/modules/mkiv/m-old-columnsets.mkiv
@@ -0,0 +1,7 @@
+\writeline
+\writestatus{system}{Using old columnset mechanism.}
+\writeline
+
+\input page-set.mkiv
+
+\endinput
diff --git a/tex/context/modules/mkiv/m-old-multicolumns.mkiv b/tex/context/modules/mkiv/m-old-multicolumns.mkiv
new file mode 100644
index 000000000..a2fb1503b
--- /dev/null
+++ b/tex/context/modules/mkiv/m-old-multicolumns.mkiv
@@ -0,0 +1,7 @@
+\writeline
+\writestatus{system}{Using old multicolumn mechanism.}
+\writeline
+
+\input page-mul.mkiv
+
+\endinput
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index b76e2042b..45caa3ee4 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 : 09/25/18 14:14:33
+-- merge date : 09/26/18 14:26:41
do -- begin closure to overcome local limits and interference
@@ -9049,9 +9049,11 @@ if not modules then modules={} end modules ['font-ini']={
license="see context related readme files"
}
local allocate=utilities.storage.allocate
+local sortedhash=table.sortedhash
fonts=fonts or {}
local fonts=fonts
-fonts.hashes=fonts.hashes or { identifiers=allocate() }
+local identifiers=allocate()
+fonts.hashes=fonts.hashes or { identifiers=identifiers }
fonts.tables=fonts.tables or {}
fonts.helpers=fonts.helpers or {}
fonts.tracers=fonts.tracers or {}
@@ -9061,6 +9063,7 @@ fonts.readers={}
fonts.definers={ methods={} }
fonts.loggers={ register=function() end }
if context then
+
--removed
end
@@ -9096,6 +9099,9 @@ table.setmetatableindex(marks,function(t,k)
return marks
end
end)
+function font.each()
+ return table.sortedhash(fonts.hashes.identifiers)
+end
end -- closure
diff --git a/tex/generic/context/luatex/luatex-fonts-mis.lua b/tex/generic/context/luatex/luatex-fonts-mis.lua
index d3cfd70a9..b472b86dd 100644
--- a/tex/generic/context/luatex/luatex-fonts-mis.lua
+++ b/tex/generic/context/luatex/luatex-fonts-mis.lua
@@ -29,3 +29,7 @@ table.setmetatableindex(marks,function(t,k)
return marks
end
end)
+
+function font.each()
+ return table.sortedhash(fonts.hashes.identifiers)
+end