summaryrefslogtreecommitdiff
path: root/tex/context/base
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2018-03-23 14:04:13 +0100
committerContext Git Mirror Bot <phg42.2a@gmail.com>2018-03-23 14:04:13 +0100
commit7eb3892205bf276b2f2db45f806f430e3fab82ac (patch)
treed911b1d908db1928872527fb5380a8f5bfda15e0 /tex/context/base
parent5c46359f4fa543e24e5d4a0a327d41bf8a9ff7c8 (diff)
downloadcontext-7eb3892205bf276b2f2db45f806f430e3fab82ac.tar.gz
2018-03-23 13:20: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/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/lxml-tex.lua9
-rw-r--r--tex/context/base/mkiv/meta-grd.mkiv220
-rw-r--r--tex/context/base/mkiv/meta-imp-mat.mkiv152
-rw-r--r--tex/context/base/mkiv/meta-ini.mkiv6
-rw-r--r--tex/context/base/mkiv/mult-aux.mkiv9
-rw-r--r--tex/context/base/mkiv/mult-low.lua2
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin26081 -> 26100 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin254477 -> 254472 bytes
-rw-r--r--tex/context/base/mkiv/trac-log.lua1
-rw-r--r--tex/context/base/mkiv/util-str.lua2
14 files changed, 273 insertions, 136 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 6603bb01f..63e666b79 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.03.22 19:41}
+\newcontextversion{2018.03.23 13:13}
%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 acfda88dc..efce78a75 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.03.22 19:41}
+\edef\contextversion{2018.03.23 13:13}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 10ae9d1df..0c05ea230 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.03.22 19:41}
+\newcontextversion{2018.03.23 13:13}
%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 cef988ce7..900a7488b 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.03.22 19:41}
+\edef\contextversion{2018.03.23 13:13}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/lxml-tex.lua b/tex/context/base/mkiv/lxml-tex.lua
index f1abab9e7..43b8e16b1 100644
--- a/tex/context/base/mkiv/lxml-tex.lua
+++ b/tex/context/base/mkiv/lxml-tex.lua
@@ -64,10 +64,11 @@ local xmlrename = xml.rename
local variables = interfaces and interfaces.variables or { }
-local settings_to_hash = utilities.parsers.settings_to_hash
-local settings_to_set = utilities.parsers.settings_to_set
-local options_to_hash = utilities.parsers.options_to_hash
-local options_to_array = utilities.parsers.options_to_array
+local parsers = utilities.parsers
+local settings_to_hash = parsers.settings_to_hash
+local settings_to_set = parsers.settings_to_set
+local options_to_hash = parsers.options_to_hash
+local options_to_array = parsers.options_to_array
local insertbeforevalue = utilities.tables.insertbeforevalue
local insertaftervalue = utilities.tables.insertaftervalue
diff --git a/tex/context/base/mkiv/meta-grd.mkiv b/tex/context/base/mkiv/meta-grd.mkiv
index 8b1a934d6..15a4471e7 100644
--- a/tex/context/base/mkiv/meta-grd.mkiv
+++ b/tex/context/base/mkiv/meta-grd.mkiv
@@ -13,6 +13,8 @@
\writestatus{loading}{MetaPost Graphics / Grids}
+\unprotect
+
%D This used to be a \TEX\ method, and a rather old one too. We keep it around but
%D in a more modern way.
%D
@@ -31,85 +33,177 @@
%D {An example of a grid.}
%D {\getbuffer}
-\startuseMPgraphic{grid}{nx,ny,dx,dy,factor,scale,xstep,ystep,xoffset,yoffset,align}
+% \startuseMPgraphic{grid}{nx,ny,dx,dy,factor,scale,xstep,ystep,xoffset,yoffset,align,s:textcolor,s:rulecolor,rulethickness}
+% begingroup ;
+% save dx, dy, wd, ht, ox, oy, ax, ay ;
+%
+% (dx,dy) = (\MPvar{dx},\MPvar{dy})*\MPvar{factor}*\MPvar{scale} ;
+% (wd,ht) = (\MPvar{nx}*dx,\MPvar{ny}*dy) ;
+% (ox,oy) = (\MPvar{xoffset},\MPvar{yoffset}) ;
+% (ax,ay) = if \MPvar{align} = 1 : (dx,dy)/2 else : origin fi ;
+%
+% draw image (
+% for i=0 step dx until wd : draw (i,0) -- (i,ht) ; endfor ;
+% for i=0 step dy until ht : draw (0,i) -- (wd,i) ; endfor ;
+% )
+% withpen pencircle scaled \MPvar{rulethickness}
+% withcolor "\MPvar{rulecolor}" ;
+% draw image (
+% if \MPvar{xstep} > 0 :
+% for i=1 step \MPvar{xstep} until \MPvar{nx} :
+% draw thetextext.bot(decimal i,(i*dx-ax,-ox));
+% endfor ;
+% fi ;
+% if \MPvar{ystep} > 0 :
+% for i=1 step \MPvar{ystep} until \MPvar{ny} :
+% draw thetextext.lft(decimal i,(-oy,i*dy-ay)) ;
+% endfor ;
+% fi ;
+% )
+% withcolor "\MPvar{color}" ;
+% endgroup ;
+% \stopuseMPgraphic
+%
+% less tokens (not used often):
+%
+% \startuseMPgraphic{grid}{\c!nx,\c!ny,\c!dx,\c!dy,\c!factor,\c!scale,\c!xstep,\c!ystep,\c!xoffset,\c!yoffset,\c!align,s:\c!textcolor,s:\c!rulecolor,\c!rulethickness}
+% begingroup ;
+% save dx, dy, wd, ht, ox, oy, ax, ay ;
+%
+% (dx,dy) = (\MPvar\c!dx,\MPvar\c!dy)*\MPvar\c!factor*\MPvar\c!scale ;
+% (wd,ht) = (\MPvar\c!nx*dx,\MPvar\c!ny*dy) ;
+% (ox,oy) = (\MPvar\c!xoffset,\MPvar\c!yoffset) ;
+% (ax,ay) = if \MPvar\c!align = 1 : (\c!dx,\c!dy)/2 else : origin fi ;
+%
+% draw image (
+% for i=0 step dx until wd : draw (i,0) -- (i,ht) ; endfor ;
+% for i=0 step dy until ht : draw (0,i) -- (wd,i) ; endfor ;
+% )
+% withpen pencircle scaled \MPvar\c!rulethickness\space
+% withcolor "\MPvar\c!rulecolor" ;
+% draw image (
+% if \MPvar\c!xstep > 0 :
+% for i=1 step \MPvar\c!xstep until \MPvar\c!nx :
+% draw thetextext.bot(decimal i,(i*dx-ax,-ox));
+% endfor ;
+% fi ;
+% if \MPvar\c!ystep > 0 :
+% for i=1 step \MPvar\c!ystep until \MPvar\c!ny :
+% draw thetextext.lft(decimal i,(-oy,i*dy-ay)) ;
+% endfor ;
+% fi ;
+% )
+% withcolor "\MPvar\c!color" ;
+% endgroup ;
+% \stopuseMPgraphic
+%
+% \def\typo_grid_base[#1]%
+% {\dontleavehmode
+% \hbox\bgroup
+% \getdummyparameters
+% [\c!nx=10,\c!ny=10,\c!dx=.5,\c!dy=.5,\c!xstep=0,\c!ystep=0,%
+% \c!unit=\s!cm,\c!scale=1,\c!factor=1,%
+% \c!offset=.25ex,%
+% \c!xoffset=\directdummyparameter\c!offset,%
+% \c!yoffset=\directdummyparameter\c!offset,%
+% \c!align=,%
+% \c!color=\currentcolorname,%
+% \c!rulecolor=\currentcolorname,%
+% \c!rulethickness=\linewidth,%
+% #1]%
+% \usedummystyleandcolor\c!style\c!color
+% \edef\p_align{\directdummyparameter\c!align}%
+% \edef\p_unit {\directdummyparameter\c!unit}%
+% \useMPgraphic
+% {grid}%
+% {nx=\directdummyparameter\c!nx,%
+% ny=\directdummyparameter\c!ny,%
+% dx=\directdummyparameter\c!dx\p_unit,%
+% dy=\directdummyparameter\c!dy\p_unit,%
+% factor=\directdummyparameter\c!factor,%
+% scale=\directdummyparameter\c!scale,%
+% xstep=\directdummyparameter\c!xstep,%
+% ystep=\directdummyparameter\c!ystep,%
+% xoffset=\directdummyparameter\c!xoffset,%
+% yoffset=\directdummyparameter\c!yoffset,%
+% color=\directdummyparameter\c!color,%
+% rulecolor=\directdummyparameter\c!rulecolor,%
+% rulethickness=\directdummyparameter\c!rulethickness,%
+% align=\ifx\p_align\v!middle\!!plusone\else\!!zerocount\fi}%
+% \egroup}
+%
+% even less tokens wasted (no need to clog the core with hardly
+% used code):
+
+\startuseMPgraphic{meta:grd:basegrid}
begingroup ;
- save nx, ny, dx, dy, wd, ht, xstep, ystep, xoffset, yoffset, align, xalign, yalign ;
+ save sc, dx, dy, wd, ht, ox, oy, ax, ay ;
- numeric nx ; nx := \MPvar{nx} ;
- numeric ny ; ny := \MPvar{ny} ;
- numeric dx ; dx := \MPvar{factor} * \MPvar{scale} * \MPvar{dx} ;
- numeric dy ; dy := \MPvar{factor} * \MPvar{scale} * \MPvar{dy} ;
- numeric wd ; wd := nx * dx ;
- numeric ht ; ht := ny * dy ;
- numeric xstep ; xstep := \MPvar{xstep} ;
- numeric ystep ; ystep := \MPvar{ystep} ;
- numeric xoffset ; xoffset := \MPvar{xoffset} ;
- numeric yoffset ; yoffset := \MPvar{yoffset} ;
- numeric align ; align := \MPvar{align} ;
- numeric xalign ; xalign := 0 ;
- numeric yalign ; yalign := 0 ;
+ sc = \directdummyparameter\c!factor*\directdummyparameter\c!scale ;
+ dx = \MPdpar\directdummyparameter\c!dx*sc ;
+ dy = \MPdpar\directdummyparameter\c!dy*sc ;
+ wd = \directdummyparameter\c!nx*dx ;
+ ht = \directdummyparameter\c!ny*dy ;
+ ox = \MPdpar\directdummyparameter\c!xoffset\relax ;
+ oy = \MPdpar\directdummyparameter\c!yoffset\relax ;
- if align = 1 :
- xalign := dx/2 ;
- yalign := dy/2 ;
+ if "\directdummyparameter\c!align" = "\v!middle" :
+ ax = \MPdpar\directdummyparameter\c!dx/2
+ ay = \MPdpar\directdummyparameter\c!dy/2
+ else :
+ ax = 0 ;
+ ay = 0 ;
fi ;
- for i=0 step dx until wd :
- draw (i,0) -- (i,ht) ;
- endfor ;
- for i=0 step dy until ht :
- draw (0,i) -- (wd,i) ;
- endfor ;
+ draw image (
+ for i=0 step dx until wd : draw (i,0) -- (i,ht) ; endfor ;
+ for i=0 step dy until ht : draw (0,i) -- (wd,i) ; endfor ;
+ )
+ withpen pencircle scaled \MPdpar\directdummyparameter\c!rulethickness\space
+ withcolor "\directdummyparameter\c!rulecolor" ;
- if xstep > 0 :
- for i=1 step xstep until nx :
- draw thetextext.bot(decimal i,(i*dx-xalign,-xoffset)) ;
- endfor ;
- fi ;
- if ystep > 0 :
- for i=1 step ystep until ny :
- draw thetextext.lft(decimal i,(-yoffset,i*dy-yalign)) ;
- endfor ;
- fi ;
+ draw image (
+ if \directdummyparameter\c!xstep > 0 :
+ for i=1 step \directdummyparameter\c!xstep until \directdummyparameter\c!nx :
+ draw thetextext.bot(decimal i,(i*dx-ax,oy));
+ endfor ;
+ fi ;
+ if \directdummyparameter\c!ystep > 0 :
+ for i=1 step \directdummyparameter\c!ystep until \directdummyparameter\c!ny :
+ draw thetextext.lft(decimal i,(ox,i*dy-ay)) ;
+ endfor ;
+ fi ;
+ )
+ withcolor "\directdummyparameter\c!color" ;
endgroup ;
\stopuseMPgraphic
-\unprotect
-
-\unexpanded\def\basegrid
- {\dosingleempty\typo_grid_base}
-
\def\typo_grid_base[#1]%
- {\hbox\bgroup
+ {\dontleavehmode
+ \hbox\bgroup
\getdummyparameters
- [\c!nx=10,\c!ny=10,\c!dx=.5,\c!dy=.5,\c!xstep=0,\c!ystep=0,%
+ [\c!nx=10,\c!ny=10,%
+ \c!dx=.5,\c!dy=.5,%
+ \c!xstep=0,\c!ystep=0,%
\c!unit=\s!cm,\c!scale=1,\c!factor=1,%
- \c!offset=.25ex,\c!xoffset=\directdummyparameter\c!offset,\c!yoffset=\directdummyparameter\c!offset,%
- \c!align=,
+ \c!offset=.25\exheight,%
+ \c!xoffset=\directdummyparameter\c!offset,%
+ \c!yoffset=\directdummyparameter\c!offset,%
+ \c!align=,%
+ \c!color=\currentcolorname,%
+ \c!rulecolor=\currentcolorname,%
+ \c!rulethickness=\linewidth,%
#1]%
\usedummystyleandcolor\c!style\c!color
- \edef\p_align{\directdummyparameter\c!align}%
- \ifx\p_align\v!middle
- \let\p_align\!!plusone
- \else
- \let\p_align\!!zerocount
- \fi
- \useMPgraphic
- {grid}%
- {nx=\directdummyparameter\c!nx,%
- ny=\directdummyparameter\c!ny,%
- dx=\directdummyparameter\c!dx\directdummyparameter\c!unit,%
- dy=\directdummyparameter\c!dy\directdummyparameter\c!unit,%
- factor=\directdummyparameter\c!factor,%
- scale=\directdummyparameter\c!scale,%
- xstep=\directdummyparameter\c!xstep,%
- ystep=\directdummyparameter\c!ystep,%
- xoffset=\directdummyparameter\c!xoffset,%
- yoffset=\directdummyparameter\c!yoffset,%
- align=\p_align}%
- \egroup}
+ \setexpandeddummyparameter\c!dx{\directdummyparameter\c!dx\directdummyparameter\c!unit}%
+ \setexpandeddummyparameter\c!dy{\directdummyparameter\c!dy\directdummyparameter\c!unit}%
+ \useMPgraphic{meta:grd:basegrid}%
+ \egroup}
+
+\unexpanded\def\basegrid
+ {\dosingleempty\typo_grid_base}
\let\grid\basegrid
diff --git a/tex/context/base/mkiv/meta-imp-mat.mkiv b/tex/context/base/mkiv/meta-imp-mat.mkiv
index 11a9ded34..19a5ba385 100644
--- a/tex/context/base/mkiv/meta-imp-mat.mkiv
+++ b/tex/context/base/mkiv/meta-imp-mat.mkiv
@@ -11,78 +11,74 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D This is just an example library not meant for production.
-
% A few accents:
-
+%
% / for cambria
\startMPextensions
- vardef math_stacker_overbracket_shape =
+ vardef math_stacker_bracket_shape(expr delta, rotate) =
image (
draw
(0,OverlayOffset) --
- (0,OverlayHeight-OverlayOffset) --
- (OverlayWidth,OverlayHeight-OverlayOffset) --
+ (0,delta-OverlayOffset) --
+ (OverlayWidth,delta-OverlayOffset) --
(OverlayWidth,OverlayOffset)
withcolor
OverlayLineColor ;
setbounds currentpicture to boundingbox currentpicture bottomenlarged OverlayOffset ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_underbracket_shape =
- math_stacker_overbracket_shape rotated 180
- enddef ;
- vardef math_stacker_overparent_shape =
+ vardef math_stacker_parent_shape(expr delta, rotate) =
image (
draw
(0,OverlayOffset) ...
- (OverlayWidth/2,OverlayHeight-OverlayOffset) ...
+ (OverlayWidth/2,delta-OverlayOffset) ...
(OverlayWidth,OverlayOffset)
withcolor
OverlayLineColor ;
setbounds currentpicture to boundingbox currentpicture bottomenlarged OverlayOffset ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_underparent_shape =
- math_stacker_overparent_shape rotated 180
- enddef ;
- vardef math_stacker_overbrace_shape =
+ vardef math_stacker_brace_shape(expr delta, rotate) =
image (
draw
(0,OverlayOffset) ...
- (OverlayWidth/4-OverlayOffset,OverlayHeight-OverlayOffset) ...
- (OverlayWidth/2-OverlayOffset,OverlayHeight-OverlayOffset) ...
- (OverlayWidth/2,OverlayHeight) &
- (OverlayWidth/2,OverlayHeight) ...
- (OverlayWidth/2+OverlayOffset,OverlayHeight-OverlayOffset) ...
- (3OverlayWidth/4+OverlayOffset,OverlayHeight-OverlayOffset) ...
+ (OverlayWidth/4-OverlayOffset,delta-OverlayOffset) ...
+ (OverlayWidth/2-OverlayOffset,delta-OverlayOffset) ...
+ (OverlayWidth/2,delta) &
+ (OverlayWidth/2,delta) ...
+ (OverlayWidth/2+OverlayOffset,delta-OverlayOffset) ...
+ (3OverlayWidth/4+OverlayOffset,delta-OverlayOffset) ...
(OverlayWidth,OverlayOffset)
withcolor
OverlayLineColor ;
setbounds currentpicture to boundingbox currentpicture bottomenlarged OverlayOffset ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_underbrace_shape =
- math_stacker_overbrace_shape rotated 180
- enddef ;
- vardef math_stacker_overbar_shape =
+ vardef math_stacker_bar_shape(expr rotate) =
image (
draw
(0,OverlayOffset) -- (OverlayWidth,OverlayOffset)
withcolor
OverlayLineColor ;
setbounds currentpicture to boundingbox currentpicture bottomenlarged OverlayOffset ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_underbar_shape =
- math_stacker_overbar_shape rotated 180
- enddef ;
-
% arrows
-
- vardef math_stacker_arrow_shape(expr axis, ex, em) =
+ vardef math_stacker_arrow_shape(expr axis, ex, em, rotate) =
image (
interim ahlength := ex/2;
drawarrow
@@ -90,9 +86,12 @@
withcolor
OverlayLineColor ;
setbounds currentpicture to unitsquare xysized(OverlayWidth,ex) ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_leftrightarrow_shape(expr axis, ex, em) =
+ vardef math_stacker_leftrightarrow_shape(expr axis, ex, em, rotate) =
image (
interim ahlength := ex/2;
drawdblarrow
@@ -100,9 +99,12 @@
withcolor
OverlayLineColor ;
setbounds currentpicture to unitsquare xysized(OverlayWidth,ex) ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_rightoverleftarrow_shape(expr axis, ex, em) =
+ vardef math_stacker_rightoverleftarrow_shape(expr axis, ex, em, rotate) =
image (
interim ahlength := ex/2;
drawdoublearrows
@@ -110,14 +112,11 @@
withcolor
OverlayLineColor ;
setbounds currentpicture to unitsquare xysized(OverlayWidth,ex) ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_leftarrow_shape(expr axis, ex, em) =
- math_stacker_arrow_shape(axis,ex,em)
- enddef ;
- vardef math_stacker_rightarrow_shape(expr axis, ex, em) =
- math_stacker_arrow_shape(axis,ex,em) rotated 180
- enddef ;
% main handler
@@ -131,55 +130,55 @@
\stopMPextensions
\startuniqueMPgraphic{math:stacker:\number"FE3B4}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_overbracket_shape) ;
+ math_stacker_draw_accent(math_stacker_bracket_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE3B5}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_underbracket_shape) ;
+ math_stacker_draw_accent(math_stacker_bracket_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE3DC}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_overparent_shape) ;
+ math_stacker_draw_accent(math_stacker_parent_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE3DD}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_underparent_shape) ;
+ math_stacker_draw_accent(math_stacker_parent_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE3DE}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_overbrace_shape) ;
+ math_stacker_draw_accent(math_stacker_brace_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE3DF}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_underbrace_shape) ;
+ math_stacker_draw_accent(math_stacker_brace_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE33E}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_overbar_shape) ;
+ math_stacker_draw_accent(math_stacker_bar_shape(false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE33F}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_underbar_shape) ;
+ math_stacker_draw_accent(math_stacker_bar_shape(true)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"2190}{axis,ex,em}
- math_stacker_draw_arrow(math_stacker_leftarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em})) ;
+ math_stacker_draw_arrow(math_stacker_arrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"2192}{axis,ex,em}
- math_stacker_draw_arrow(math_stacker_rightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em})) ;
+ math_stacker_draw_arrow(math_stacker_arrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},true)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"2194}{axis,ex,em}
- math_stacker_draw_arrow(math_stacker_leftrightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em})) ;
+ math_stacker_draw_arrow(math_stacker_leftrightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"27F7}{axis,ex,em}
- math_stacker_draw_arrow(math_stacker_leftrightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em})) ;
+ math_stacker_draw_arrow(math_stacker_leftrightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"21C4}{axis,ex,em}
- math_stacker_draw_arrow(math_stacker_rightoverleftarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em})) ;
+ math_stacker_draw_arrow(math_stacker_rightoverleftarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
%D Radicals:
@@ -202,9 +201,46 @@
withcolor OverlayLineColor ;
\stopuniqueMPgraphic
-% \setupmathstackers
-% [vfenced]
-% [color=darkred,
-% alternative=mp]
-
-\endinput
+\continueifinputfile{meta-imp-mat.mkiv}
+
+\setupmathstackers [both] [color=darkred,alternative=mp]
+\setupmathstackers [top] [color=darkred,alternative=mp]
+\setupmathstackers [bottom] [color=darkred,alternative=mp]
+
+\startTEXpage[offset=10pt]
+
+$
+ \overbracket {a+b+c+d} \quad
+ \underbracket {a+b+c+d} \quad
+ \doublebracket {a+b+c+d}
+$
+\blank[2*big]
+$
+ \overparent {a+b+c+d} \quad
+ \underparent {a+b+c+d} \quad
+ \doubleparent {a+b+c+d}
+$
+\blank[2*big]
+$
+ \overbrace {a+b+c+d} \quad
+ \underbrace {a+b+c+d} \quad
+ \doublebrace {a+b+c+d}
+$
+\blank[2*big]
+$
+ \overbar {a+b+c+d} \quad
+ \underbar {a+b+c+d} \quad
+ \doublebar {a+b+c+d}
+$
+\blank[2*big]
+$
+ \overleftarrow {a+b+c+d} \quad
+ \overrightarrow {a+b+c+d}
+$
+\blank[2*big]
+$
+ \underleftarrow {a+b+c+d} \quad
+ \underrightarrow {a+b+c+d}
+$
+
+\stopTEXpage
diff --git a/tex/context/base/mkiv/meta-ini.mkiv b/tex/context/base/mkiv/meta-ini.mkiv
index 5fc89e2f6..61e3523e6 100644
--- a/tex/context/base/mkiv/meta-ini.mkiv
+++ b/tex/context/base/mkiv/meta-ini.mkiv
@@ -1481,6 +1481,12 @@
\fi
\to \everysetupMPgraphics
+%D Some more helpers (see \type {meta-grd.mkiv} for an example of usage):
+
+\def\MPdpar#1#2{\the\dimexpr#1#2\relax\empty}
+\def\MPnpar#1#2{\the\numexpr#1#2\relax\empty}
+\def\MPspar#1#2{"#1#2"}
+
%D Done.
\protect \endinput
diff --git a/tex/context/base/mkiv/mult-aux.mkiv b/tex/context/base/mkiv/mult-aux.mkiv
index 96609c4f0..a1aecc354 100644
--- a/tex/context/base/mkiv/mult-aux.mkiv
+++ b/tex/context/base/mkiv/mult-aux.mkiv
@@ -802,10 +802,11 @@
\letvalue\??dummy\empty
- \def\dummyparameter #1{\begincsname\??dummy#1\endcsname}
- \def\directdummyparameter#1{\begincsname\??dummy#1\endcsname}
-\unexpanded\def\setdummyparameter #1{\expandafter\def\csname\??dummy#1\endcsname}
-\unexpanded\def\letdummyparameter #1{\expandafter\let\csname\??dummy#1\endcsname}
+ \def\dummyparameter #1{\begincsname\??dummy#1\endcsname}
+ \def\directdummyparameter #1{\begincsname\??dummy#1\endcsname}
+\unexpanded\def\setdummyparameter #1{\expandafter\def\csname\??dummy#1\endcsname}
+\unexpanded\def\setexpandeddummyparameter#1{\expandafter\edef\csname\??dummy#1\endcsname}
+\unexpanded\def\letdummyparameter #1{\expandafter\let\csname\??dummy#1\endcsname}
% \unexpanded\def\getdummyparameters
% {\mult_interfaces_get_parameters\??dummy}
diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua
index 84b4189dc..cfe0c59e2 100644
--- a/tex/context/base/mkiv/mult-low.lua
+++ b/tex/context/base/mkiv/mult-low.lua
@@ -294,7 +294,7 @@ return {
--
"getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters",
--
- "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter",
+ "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter",
"usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter",
--
"processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist",
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 6e2441929..ee53ac2b5 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 13610af00..8c98172e1 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/trac-log.lua b/tex/context/base/mkiv/trac-log.lua
index b0da12715..1471bd4c7 100644
--- a/tex/context/base/mkiv/trac-log.lua
+++ b/tex/context/base/mkiv/trac-log.lua
@@ -18,7 +18,6 @@ local datetime = os.date
local openfile = io.open
local runningtex = tex and (tex.jobname or tex.formatname)
-
-- local write_nl = texio and texio.write_nl or print
-- local write = texio and texio.write or io.write
diff --git a/tex/context/base/mkiv/util-str.lua b/tex/context/base/mkiv/util-str.lua
index 9da0c6a2f..c8cc1742b 100644
--- a/tex/context/base/mkiv/util-str.lua
+++ b/tex/context/base/mkiv/util-str.lua
@@ -296,7 +296,7 @@ end
--
-- integer %...i number
-- integer %...d number
--- unsigned %...u number -- no tused
+-- unsigned %...u number -- not used
-- character %...c number
-- hexadecimal %...x number
-- HEXADECIMAL %...X number