summaryrefslogtreecommitdiff
path: root/tex/context/modules/mkiv/x-mathml.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/modules/mkiv/x-mathml.mkiv')
-rw-r--r--tex/context/modules/mkiv/x-mathml.mkiv37
1 files changed, 31 insertions, 6 deletions
diff --git a/tex/context/modules/mkiv/x-mathml.mkiv b/tex/context/modules/mkiv/x-mathml.mkiv
index 50d31da0e..ea7f7d2e9 100644
--- a/tex/context/modules/mkiv/x-mathml.mkiv
+++ b/tex/context/modules/mkiv/x-mathml.mkiv
@@ -66,9 +66,13 @@
\xmlmapvalue {mml:math:dir} {ltr} {\setfalse\c_math_right_to_left\math_basics_synchronize_direction}
\xmlmapvalue {mml:math:dir} {rtl} {\settrue \c_math_right_to_left\math_basics_synchronize_direction}
+\edef\mmlconstantone {1}
+\edef\mmlconstantfalse{false}
+
\startxmlsetups mml:math
\begingroup
\enableautofences
+ \enableautofencemode
\xmlval {mml:math:dir} {\xmlatt{#1}{dir}} {}
\xmlval {mml:math:display} {\xmlatt{#1}{display}} {
\xmlval {mml:math:mode} {\xmlatt{#1}{mode}} {
@@ -87,6 +91,7 @@
\startxmlsetups mml:imath
\inlinemathematics {
\enableautofences
+ \enableautofencemode
%\math_fences_checked_start
%\MMLhack
\xmlflush{#1}
@@ -97,6 +102,7 @@
\startxmlsetups mml:dmath
\displaymathematics {
\enableautofences
+ \enableautofencemode
%\math_fences_checked_start
%\MMLhack
\xmlflush{#1}
@@ -107,8 +113,9 @@
%D First we define some general formula elements.
\startxmlsetups mml:formula
- \edef\mmlformulalabel {\xmlatt{#1}{label}\xmlatt{#1}{id}}
- \edef\mmlformulasublabel{\xmlatt{#1}{sublabel}\xmlatt{#1}{id}}
+ \edef\mmlformulaid {\xmlatt{#1}{id}}
+ \edef\mmlformulalabel {\xmlatt{#1}{label}\mmlformulaid}
+ \edef\mmlformulasublabel{\xmlatt{#1}{sublabel}\mmlformulaid}
\doifsomething\mmlformulalabel{\placeformula[\mmlformulalabel]{\mmlformulasublabel}}
\startformula
%\MMLhack
@@ -1934,12 +1941,28 @@
% spacing between - and 2 is taken care of by tex itself
\startxmlsetups mml:mo
- \doif {\xmlatt{#1}{maxsize}} {1} {\settrue\mmlignoredelimiter}
- \doif {\xmlatt{#1}{stretchy}} {false} {\settrue\mmlignoredelimiter}
+ \edef\mmlattvalue{\xmlatt{#1}{maxsize}}
+ \ifx\mmlattvalue\mmlconstantone
+ \settrue\mmlignoredelimiter
+ \else
+ \edef\mmlattvalue{\xmlatt{#1}{stretchy}}
+ \ifx\mmlattvalue\mmlconstantfalse
+ \settrue\mmlignoredelimiter
+ \fi
+ \fi
+ \edef\mmlattvalue{\xmlatt{#1}{lspace}}
+ \ifx\mmlattvalue\empty\else
+ \hskip\mmlattvalue\relax % todo: check for dimension
+ \fi
\ctxmodulemathml{mo("#1")}
+ \edef\mmlattvalue{\xmlatt{#1}{rspace}}
+ \ifx\mmlattvalue\empty\else
+ \hskip\mmlattvalue\relax % todo: check for dimension
+ \fi
\setfalse\mmlignoredelimiter
\stopxmlsetups
+
% \startxmlsetups mml:mfenced % {} around separator is needed for spacing
% \def\MMLleft {\left }% weird
% \def\MMLright {\right}
@@ -2030,7 +2053,8 @@
\vcenter {
\framed
[frame=off,strut=no,background={\mmlmenclosenotation}] % offset is kind of undefined
- {\startimath
+ {
+ \startpickupmath
\expanded{\doifelseinset {mml:enclose:longdiv} {\mmlmenclosenotation}} {
\overline{\left)\strut\xmlflush{#1}\right.}
} {
@@ -2048,7 +2072,8 @@
}
}
}
- \stopimath}
+ \stoppickupmath
+ }
}
}
}