diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/math-int.mkiv')
-rw-r--r-- | Master/texmf-dist/tex/context/base/math-int.mkiv | 53 |
1 files changed, 38 insertions, 15 deletions
diff --git a/Master/texmf-dist/tex/context/base/math-int.mkiv b/Master/texmf-dist/tex/context/base/math-int.mkiv index 2af471b5cb4..a99142a0423 100644 --- a/Master/texmf-dist/tex/context/base/math-int.mkiv +++ b/Master/texmf-dist/tex/context/base/math-int.mkiv @@ -33,19 +33,19 @@ %D %D Limits: \setupmathematics[integral=limits] \getbuffer -\chardef\intlimitcode\zerocount % 0 nolimits 1 displaylimits 2 limits +\newconstant\mathintlimitmode % 0 nolimits 1 displaylimits 2 limits \def\intlimits - {\ifcase\intlimitcode \nolimits \or \displaylimits \or \limits \fi} + {\ifcase\mathintlimitmode \nolimits \or \displaylimits \or \limits \fi} \ifx\v!integral\undefined \def\v!integral{integral} \fi \appendtoks \processaction [\mathematicsparameter\v!integral] - [ nolimits=>\chardef\intlimitcode\zerocount, - displaylimits=>\chardef\intlimitcode\plusone, - limits=>\chardef\intlimitcode\plustwo]% + [ nolimits=>\mathintlimitmode\zerocount, + displaylimits=>\mathintlimitmode\plusone, + limits=>\mathintlimitmode\plustwo]% \to \everysetupmathematics \setupmathematics @@ -53,22 +53,45 @@ %D More integrals (AM): -\definemathcommand [iint] {\repeatintegral\plusone } -\definemathcommand [iiint] {\repeatintegral\plustwo } -\definemathcommand [iiiint] {\repeatintegral\plusthree} - %def\integralrepeatsymbol{\intop} \def\integralrepeatsymbol{{\int}} -\def\repeatintegral#1% +% \def\repeatintegral#1% +% {\scratchtoks\emptytoks +% \let\dointlimits\donothing +% \let\dodointlimits\intlimits +% \dorecurse{#1}{\appendtoks \integralrepeatsymbol \dointkern \to \scratchtoks}% +% \appendtoks \intop \dointlimits \dodointlimits \to \scratchtoks +% \edef\dodorepeatintegral{\the\scratchtoks}% +% \futurelet\next\dorepeatintegral} + +% \definemathcommand [iint] {\repeatintegral\plusone } +% \definemathcommand [iiint] {\repeatintegral\plustwo } +% \definemathcommand [iiiint] {\repeatintegral\plusthree} + +\def\fakerepeatintegral#1% {\scratchtoks\emptytoks - \let\dointlimits\donothing - \let\dodointlimits\intlimits - \dorecurse{#1}{\appendtoks \integralrepeatsymbol \dointkern \to \scratchtoks} + \dorecurse{#1}{\appendtoks \integralrepeatsymbol \dointkern \to \scratchtoks}% \appendtoks \intop \dointlimits \dodointlimits \to \scratchtoks - \edef\dodorepeatintegral{\the\scratchtoks}% + \edef\dodorepeatintegral{\the\scratchtoks}} + +\def\repeatintegral#1#2#3% + {\let\dointlimits\donothing + \let\dodointlimits\intlimits + \iffontchar\textfont\zerocount#1\relax + %\edef\dodorepeatintegral{\utfchar{#1}}% + \let\dodorepeatintegral#2% + \else + \fakerepeatintegral{#3}% + \fi \futurelet\next\dorepeatintegral} +% This is a temporary solution, as we will make a virtual glyph in lm. + +\definemathcommand [iint] {\repeatintegral{"222B}\normaliint \plusone } +\definemathcommand [iiint] {\repeatintegral{"222C}\normaliiint \plustwo } +\definemathcommand [iiiint] {\repeatintegral{"222D}\normaliiiint\plusthree} + %D If the \type{\limits} option is used after \type{\iint}, use %D \type{\mathop} and fudge the left hand space a bit to make the %D subscript visually centered. @@ -80,7 +103,7 @@ {\ifx\next\limits \dointlimitcorrection \else \ifx\next\displaylimits \dointlimitcorrection \else \ifx\next\nolimits \donothing \else - \ifcase\intlimitcode\else \dointlimitcorrection \fi\fi\fi\fi + \ifcase\mathintlimitmode\else \dointlimitcorrection \fi\fi\fi\fi \dodorepeatintegral} \def\dointlimitcorrection |