From 7eb3892205bf276b2f2db45f806f430e3fab82ac Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Fri, 23 Mar 2018 14:04:13 +0100 Subject: 2018-03-23 13:20:00 --- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/lxml-tex.lua | 9 +- tex/context/base/mkiv/meta-grd.mkiv | 220 +++++++++++++++------ tex/context/base/mkiv/meta-imp-mat.mkiv | 152 ++++++++------ tex/context/base/mkiv/meta-ini.mkiv | 6 + tex/context/base/mkiv/mult-aux.mkiv | 9 +- tex/context/base/mkiv/mult-low.lua | 2 +- tex/context/base/mkiv/status-files.pdf | Bin 26081 -> 26100 bytes tex/context/base/mkiv/status-lua.pdf | Bin 254477 -> 254472 bytes tex/context/base/mkiv/trac-log.lua | 1 - tex/context/base/mkiv/util-str.lua | 2 +- tex/context/interface/mkiv/i-context.pdf | Bin 848385 -> 848520 bytes tex/context/interface/mkiv/i-readme.pdf | Bin 61034 -> 61033 bytes tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 17 files changed, 274 insertions(+), 137 deletions(-) (limited to 'tex') 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 Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf index 13610af00..8c98172e1 100644 Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf 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 diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf index 97254d3ef..a3b7f46de 100644 Binary files a/tex/context/interface/mkiv/i-context.pdf and b/tex/context/interface/mkiv/i-context.pdf differ diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf index 1a8314fe2..633d4ed7e 100644 Binary files a/tex/context/interface/mkiv/i-readme.pdf and b/tex/context/interface/mkiv/i-readme.pdf differ diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 5e9caf71e..cf09a9c71 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 : 03/22/18 19:41:33 +-- merge date : 03/23/18 13:13:05 do -- begin closure to overcome local limits and interference -- cgit v1.2.3