summaryrefslogtreecommitdiff
path: root/tex/context/base/math-fen.mkiv
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2013-08-26 13:20:27 +0300
committerMarius <mariausol@gmail.com>2013-08-26 13:20:27 +0300
commit5daf461e4bab33e6e88e2dc3659784af7379e288 (patch)
treec55adc4a0d6657c862e0d0a03ac725683c10e367 /tex/context/base/math-fen.mkiv
parentb6f6c4c5b717aff92a2dedb07a0ebd42ecbee846 (diff)
downloadcontext-5daf461e4bab33e6e88e2dc3659784af7379e288.tar.gz
beta 2013.08.26 12:08
Diffstat (limited to 'tex/context/base/math-fen.mkiv')
-rw-r--r--tex/context/base/math-fen.mkiv48
1 files changed, 46 insertions, 2 deletions
diff --git a/tex/context/base/math-fen.mkiv b/tex/context/base/math-fen.mkiv
index 2a05ac5a1..8d8ad7ae7 100644
--- a/tex/context/base/math-fen.mkiv
+++ b/tex/context/base/math-fen.mkiv
@@ -78,8 +78,11 @@
\let\fence \relax
\let\fenced\relax
+\newcount\c_math_fenced_nesting
+
\unexpanded\def\math_fenced_fenced_start#1%
- {\begingroup
+ {\advance\c_math_fenced_nesting\plusone
+ \begingroup
\edef\currentmathfence{#1}%
\startusemathstyleparameter\mathfenceparameter
\let\fence\math_fenced_middle
@@ -97,7 +100,8 @@
{\edef\currentmathfence{#1}%
\math_fenced_right
\stopusemathstyleparameter
- \endgroup}
+ \endgroup
+ \advance\c_math_fenced_nesting\minusone}
\unexpanded\def\math_fenced_fenced[#1]#2%
{\math_fenced_fenced_start{#1}%
@@ -319,6 +323,46 @@
% \definemathoverextensible [top] [hoed] ["FE302]
% \definemathoverextensible [top] [slang] ["FE303]
+%D This is needed for mathml (used in mrow, so it gets reset):
+
+\let\math_fences_saved_left \left
+\let\math_fences_saved_middle\middle
+\let\math_fences_saved_right \right
+
+\unexpanded\def\math_fences_checked_left
+ {\math_fences_saved_left}
+
+\unexpanded\def\math_fences_checked_middle
+ {\ifcase\c_math_fenced_nesting
+ \expandafter\math_fences_saved_middle
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+\unexpanded\def\math_fences_checked_right
+ {\ifcase\c_math_fenced_nesting
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\math_fences_saved_right
+ \fi}
+
+\unexpanded\def\math_fences_finish
+ {\ifcase\c_math_fenced_nesting\else
+ \right.\relax % error, todo: nil spacing
+ \expandafter\math_fences_finish
+ \fi}
+
+\unexpanded\def\startcheckedfences
+ {\begingroup
+ %\let\left \math_fences_checked_left
+ \let\middle\math_fences_checked_middle
+ \let\right \math_fences_checked_right
+ \c_math_fenced_nesting\zerocount}
+
+\unexpanded\def\stopcheckedfences
+ {\math_fences_finish
+ \endgroup}
+
%D The next characters were used for constructing nicer extensibles but
%D nowadays we have real characters.