diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/math-stc.mkvi')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/math-stc.mkvi | 159 |
1 files changed, 103 insertions, 56 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-stc.mkvi b/Master/texmf-dist/tex/context/base/mkiv/math-stc.mkvi index 92325d0afd0..8048bf92364 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/math-stc.mkvi +++ b/Master/texmf-dist/tex/context/base/mkiv/math-stc.mkvi @@ -86,11 +86,19 @@ \def\math_stackers_regular {\mathstylehbox{\usemathstackerscolorparameter\c!color - \Umathaccent\fam\zerocount\scratchunicode{\hskip\scratchwidth}}} + \hskip\d_math_stackers_offset_l + \Umathaccent\fam\zerocount\scratchunicode + {\hskip\dimexpr\scratchwidth-\d_math_stackers_offset_l-\d_math_stackers_offset_r}% + \hskip\d_math_stackers_offset_r + }} \def\math_stackers_stretch % we don't have that one yet {\mathstylehbox{\usemathstackerscolorparameter\c!color - \Umathaccent\fam\zerocount\scratchunicode{\hskip\hsize}}} + \hskip\d_math_stackers_offset_l + \Umathaccent\fam\zerocount\scratchunicode + {\hskip\dimexpr\hsize-\d_math_stackers_offset_l-\d_math_stackers_offset_r}% + \hskip\d_math_stackers_offset_r + }} % these delimiters are a unuseable as they don't center for small arguments: % @@ -499,7 +507,7 @@ \dostoptagged \mathstackersparameter\c!right\relax \endgroup} - %\math_stackers_start_group} + %\math_stackers_stop_group} \unexpanded\def\definemathextensible {\dotripleempty\math_stackers_define_normal} @@ -566,14 +574,33 @@ \edef\currentmathstackers{#category}% \edef\p_limits{\mathstackersparameter\c!mathlimits}% \ifx\p_limits\v!yes - \def\math_stackers_stop_group{\egroup\endgroup\limits}% + \def\math_stackers_stop_group{\egroup\endgroup\ordlimits}% \mathop\bgroup \else \let\math_stackers_stop_group\endgroup \fi} -\unexpanded\def\math_stackers_make_double#top#bottom#category#codepoint#codeextra#text% +\newconstant\c_math_stackers_top +\newconstant\c_math_stackers_bottom +\newconstant\c_math_stackers_codepoint +\newconstant\c_math_stackers_extracode +\newdimen \d_math_stackers_offset_l +\newdimen \d_math_stackers_offset_r + +\setupmathstackers[lt=\zeropoint,rt=\zeropoint,lb=\zeropoint,rb=\zeropoint] + +\unexpanded\def\math_stackers_make_double#top#bottom#category#codepoint#codeextra% {\math_stackers_start_group{#category}% + \c_math_stackers_top #top\relax + \c_math_stackers_bottom #bottom\relax + \c_math_stackers_codepoint#codepoint\relax + \c_math_stackers_extracode#codeextra\relax + \dosingleempty\math_stackers_make_double_indeed} + +\unexpanded\def\math_stackers_make_double_indeed[#settings]#text% + {\iffirstargument + \setupcurrentmathstackers[#settings]% + \fi \mathstackersparameter\c!left\relax \dostarttagged\t!mathstacker\currentmathstackers \ifmmode\math_class_by_parameter\mathstackersparameter\else\dontleavehmode\fi @@ -587,7 +614,7 @@ \scratchleftoffset \zeropoint \scratchrightoffset\zeropoint % - \math_stackers_check_unicode{#codepoint}% + \math_stackers_check_unicode\c_math_stackers_codepoint % \ifx\math_stackers_middle\empty \setbox\scratchboxthree\emptyhbox @@ -602,24 +629,37 @@ \fi \advance\scratchwidth2\scratchhoffset % + %\scratchunicode\c_math_stackers_codepoint + \ifcase\c_math_stackers_bottom + \d_math_stackers_offset_l\mathstackersparameter{lt}% + \d_math_stackers_offset_r\mathstackersparameter{rt}% + \else\ifcase\c_math_stackers_top + \d_math_stackers_offset_l\mathstackersparameter{lb}% + \d_math_stackers_offset_r\mathstackersparameter{rb}% + \else + \d_math_stackers_offset_l\mathstackersparameter{lt}% + \d_math_stackers_offset_r\mathstackersparameter{rt}% + \fi\fi \setbox\scratchboxtwo\csname\??mathstackersalternative\p_alternative\endcsname \setbox\scratchboxthree\hpack to \scratchwidth{\hss\box\scratchboxthree\hss}% % - \scratchunicode#codeextra\relax - \ifcase\scratchunicode\else + \ifcase\c_math_stackers_extracode\else + \scratchunicode\c_math_stackers_extracode + \d_math_stackers_offset_l\mathstackersparameter{lb}% + \d_math_stackers_offset_r\mathstackersparameter{rb}% \setbox\scratchboxone\csname\??mathstackersalternative\p_alternative\endcsname \fi % \math_stackers_normalize_three % analysis - \ifcase#bottom\relax - \ifcase#top\relax + \ifcase\c_math_stackers_bottom + \ifcase\c_math_stackers_top \dosettagproperty\s!subtype\t!munderover \else \dosettagproperty\s!subtype\t!mover \fi \else - \ifcase#top\relax + \ifcase\c_math_stackers_top \dosettagproperty\s!subtype\t!munder \else % brrr @@ -633,7 +673,7 @@ \math_stackers_stop_tagged % \ifdim\htdp\scratchboxtwo>\zeropoint - \ifcase#bottom\else + \ifcase\c_math_stackers_bottom\else \kern-\scratchwidth % under \math_stackers_start_tagged_bot @@ -643,7 +683,7 @@ +\ht\scratchboxtwo +\mathstackersparameter\c!distance % was \c!voffset \relax - \ifcase#top\relax + \ifcase\c_math_stackers_top \box\scratchboxtwo \else \box\scratchboxone @@ -651,7 +691,7 @@ \egroup \math_stackers_stop_tagged \fi - \ifcase#top\else + \ifcase\c_math_stackers_top\else \kern-\scratchwidth % over \math_stackers_start_tagged_top @@ -665,7 +705,6 @@ \egroup \math_stackers_stop_tagged \fi - % \fi}% \dostoptagged \mathstackersparameter\c!right\relax @@ -696,10 +735,6 @@ \setuevalue{#1}{\math_stackers_make_double\plusone \plusone\noexpand\currentmathstackers{\number#2}{\number#3}}% \fi} -\unexpanded\def\mathover {\begingroup\dosingleempty\math_stackers_handle_over } -\unexpanded\def\mathunder {\begingroup\dosingleempty\math_stackers_handle_under } -\unexpanded\def\mathdouble{\begingroup\dodoubleempty\math_stackers_handle_double} - \unexpanded\def\definemathover {\dotripleargument \math_stackers_define_over } \unexpanded\def\definemathunder {\dotripleargument \math_stackers_define_under } \unexpanded\def\definemathdouble{\doquadrupleargument\math_stackers_define_double} @@ -713,29 +748,41 @@ \def\math_stackers_define_double[#category][#command][#topcode][#bottomcode]% {\setuvalue{#command}{\math_stackers_handle_direct\plusone\plusone{#category}{#topcode}{#bottomcode}}} -\unexpanded\def\mathover {\begingroup\dosingleempty\math_stackers_handle_over } -\unexpanded\def\mathunder {\begingroup\dosingleempty\math_stackers_handle_under } -\unexpanded\def\mathdouble{\begingroup\dosingleempty\math_stackers_handle_double} +\unexpanded\def\mathover {\begingroup\dodoubleempty\math_stackers_handle_over } +\unexpanded\def\mathunder {\begingroup\dodoubleempty\math_stackers_handle_under } +\unexpanded\def\mathdouble{\begingroup\dodoubleempty\math_stackers_handle_double} -\def\math_stackers_handle_over[#category]#topcode#text% - {\math_stackers_make_double\plusone\zerocount - {\iffirstargument#category\else\v!top\fi}% +\def\math_stackers_handle_over[#category][#settings]#topcode#text% + {\edef\currentmathstackers{\iffirstargument#category\else\v!top\fi}% + \ifsecondargument + \setupcurrentmathstackers[#settings]% + \fi + \math_stackers_make_double\plusone\zerocount + {\currentmathstackers}% {#topcode}% {0}% {#text}% \endgroup} -\def\math_stackers_handle_under[#category]#bottomcode#text% - {\math_stackers_make_double\zerocount\plusone - {\iffirstargument#category\else\v!bottom\fi}% +\def\math_stackers_handle_under[#category][#settings]#bottomcode#text% + {\edef\currentmathstackers{\iffirstargument#category\else\v!bottom\fi}% + \ifsecondargument + \setupcurrentmathstackers[#settings]% + \fi + \math_stackers_make_double\zerocount\plusone + {\currentmathstackers}% {#bottomcode}% {0}% {#text}% \endgroup} -\def\math_stackers_handle_double[#category]#topcode#bottomcode#text% - {\math_stackers_make_double\plusone\plusone - {\iffirstargument#category\else\v!both\fi}% +\def\math_stackers_handle_double[#category][#settings]#topcode#bottomcode#text% + {\edef\currentmathstackers{\iffirstargument#category\else\v!both\fi}% + \ifsecondargument + \setupcurrentmathstackers[#settings]% + \fi + \math_stackers_make_double\plusone\plusone + {\currentmathstackers}% {#topcode}% {#bottomcode}% {#text}% @@ -1189,39 +1236,39 @@ % alternatively we can move the original to FE* -\definemathoverextensible [vfenced] [overbar] ["FE33E] % ["203E] -\definemathunderextensible [vfenced] [underbar] ["FE33F] % ["203E] -\definemathdoubleextensible [vfenced] [doublebar] ["FE33E] ["FE33F] +\definemathoverextensible [\v!vfenced] [overbar] ["FE33E] % ["203E] +\definemathunderextensible [\v!vfenced] [underbar] ["FE33F] % ["203E] +\definemathdoubleextensible [\v!vfenced] [doublebar] ["FE33E] ["FE33F] -\definemathoverextensible [vfenced] [overbrace] ["FE3DE] % ["023DE] -\definemathunderextensible [vfenced] [underbrace] ["FE3DF] % ["023DF] -\definemathdoubleextensible [vfenced] [doublebrace] ["FE3DE] ["FE3DF] +\definemathoverextensible [\v!vfenced] [overbrace] ["FE3DE] % ["023DE] +\definemathunderextensible [\v!vfenced] [underbrace] ["FE3DF] % ["023DF] +\definemathdoubleextensible [\v!vfenced] [doublebrace] ["FE3DE] ["FE3DF] -\definemathoverextensible [vfenced] [overparent] ["FE3DC] % ["023DC] -\definemathunderextensible [vfenced] [underparent] ["FE3DD] % ["023DD] -\definemathdoubleextensible [vfenced] [doubleparent] ["FE3DC] ["FE3DD] +\definemathoverextensible [\v!vfenced] [overparent] ["FE3DC] % ["023DC] +\definemathunderextensible [\v!vfenced] [underparent] ["FE3DD] % ["023DD] +\definemathdoubleextensible [\v!vfenced] [doubleparent] ["FE3DC] ["FE3DD] -\definemathoverextensible [vfenced] [overbracket] ["FE3B4] % ["023B4] -\definemathunderextensible [vfenced] [underbracket] ["FE3B5] % ["023B5] -\definemathdoubleextensible [vfenced] [doublebracket] ["FE3B4] ["FE3B5] +\definemathoverextensible [\v!vfenced] [overbracket] ["FE3B4] % ["023B4] +\definemathunderextensible [\v!vfenced] [underbracket] ["FE3B5] % ["023B5] +\definemathdoubleextensible [\v!vfenced] [doublebracket] ["FE3B4] ["FE3B5] % \unexpanded\def\mathopwithlimits#1#2{\mathop{#1{#2}}\limits} %D For mathml: -\definemathdoubleextensible [both] [overbarunderbar] ["FE33E] ["FE33F] -\definemathdoubleextensible [both] [overbraceunderbrace] ["FE3DE] ["FE3DF] -\definemathdoubleextensible [both] [overparentunderparent] ["FE3DC] ["FE3DD] -\definemathdoubleextensible [both] [overbracketunderbracket] ["FE3B4] ["FE3B5] - -\definemathovertextextensible [bothtext] [overbartext] ["FE33E] -\definemathundertextextensible [bothtext] [underbartext] ["FE33F] -\definemathovertextextensible [bothtext] [overbracetext] ["FE3DE] -\definemathundertextextensible [bothtext] [underbracetext] ["FE3DF] -\definemathovertextextensible [bothtext] [overparenttext] ["FE3DC] -\definemathundertextextensible [bothtext] [underparenttext] ["FE3DD] -\definemathovertextextensible [bothtext] [overbrackettext] ["FE3B4] -\definemathundertextextensible [bothtext] [underbrackettext] ["FE3B5] +\definemathdoubleextensible [\v!both] [overbarunderbar] ["FE33E] ["FE33F] +\definemathdoubleextensible [\v!both] [overbraceunderbrace] ["FE3DE] ["FE3DF] +\definemathdoubleextensible [\v!both] [overparentunderparent] ["FE3DC] ["FE3DD] +\definemathdoubleextensible [\v!both] [overbracketunderbracket] ["FE3B4] ["FE3B5] + +\definemathovertextextensible [\v!bothtext] [overbartext] ["FE33E] +\definemathundertextextensible [\v!bothtext] [underbartext] ["FE33F] +\definemathovertextextensible [\v!bothtext] [overbracetext] ["FE3DE] +\definemathundertextextensible [\v!bothtext] [underbracetext] ["FE3DF] +\definemathovertextextensible [\v!bothtext] [overparenttext] ["FE3DC] +\definemathundertextextensible [\v!bothtext] [underparenttext] ["FE3DD] +\definemathovertextextensible [\v!bothtext] [overbrackettext] ["FE3B4] +\definemathundertextextensible [\v!bothtext] [underbrackettext] ["FE3B5] %D Some bonus ones (for the moment here): |