summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl')
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl342
1 files changed, 194 insertions, 148 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl
index 53c34c56716..1724634ada1 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl
@@ -56,7 +56,11 @@
\c!distance=\zerocount,
\c!topspace=\zeropoint,
\c!bottomspace=\zeropoint,
- \c!factor=\v!auto]
+ % \c!overflow=\v!no,
+ \c!overflow=\v!auto,
+ \c!alternative=\v!big,
+ \c!factor=\v!auto,
+ \c!snap=\mathematicsparameter\c!snap] % "28
\appendtoks
\ifcstok{\mathfenceparameter\c!define}\v!yes
@@ -64,8 +68,6 @@
\fi
\to \everydefinemathfence
-% we need the direct use of \Udelimiter because of { etc
-
%D So we can do:
%D
%D \starttyping
@@ -96,8 +98,8 @@
% todo : class -> number
-\newconditional\c_math_fenced_mirror \settrue \c_math_fenced_mirror
-\newconditional\c_math_fenced_sized \setfalse\c_math_fenced_sized
+\newconditional\c_math_fenced_mirror \c_math_fenced_mirror\conditionaltrue
+\newconditional\c_math_fenced_sized \c_math_fenced_sized \conditionalfalse
\newinteger \c_math_fence_nesting
\installcorenamespace {mathfencesize}
@@ -109,17 +111,12 @@
\let\math_fenced_trace\donothing
-\def\math_fenced_force_size#1#2%
- {\c_attr_mathsize\numexpr
- #1*\plushundred
- +\ifcsname\??mathfencesize#2\endcsname\lastnamedcs\else#2\fi
- \relax}
-
-\def\math_fenced_common_factor_none
- {\math_fenced_force_size\bigmathdelimitervariant\c_math_fence_nesting\relax
- \Uvextensible
- \s!axis
- \s!exact}
+\def\math_fenced_common_factor_none % a weird one anyway
+ {\Uvextensible
+ \s!axis\space
+ \s!exact\space
+ \s!variant \mathvariantslot\fam \numexpr\c_math_fence_nesting\relax}
+ % \s!variant \mathvariantslot\fam \numexpr\c_math_fence_nesting+\plusone\relax}
\def\math_fenced_common_factor_fixed
{\Uvextensible
@@ -141,6 +138,42 @@
\s!axis
\s!exact}
+\def\math_fenced_common_factor_size
+ {\Uvextensible
+ \math_fenced_set_variant}
+
+\def\math_fenced_common_factor_empty#1%
+ {\ifconditional\c_math_fenced_level_mode
+ \Uvextensible
+ \else
+ #1% \Uleft \Umiddle \Uleft
+ \ifx#1\Umiddle
+ \ifx\p_overflow\v!auto
+ middle %
+ nooverflow %
+ \orelse\ifx\p_overflow\v!no
+ nooverflow %
+ \fi
+ \fi
+ \fi}
+
+\def\math_fenced_common_factor_auto#1%
+ {\ifconditional\c_math_fenced_level_mode
+ \Uvextensible
+ \math_fenced_set_variant
+ \else
+ #1% \Uleft \Umiddle \Uleft
+ \math_fenced_set_variant
+ \ifx#1\Umiddle
+ \ifx\p_overflow\v!auto
+ middle %
+ nooverflow %
+ \orelse\ifx\p_overflow\v!no
+ nooverflow %
+ \fi
+ \fi
+ \fi}
+
% \startTEXpage[offset=1dk]
% \dm { \fenced[brace][middle="7C] { \frac{p}{q} \fence p,q \in \naturalnumbers} }\par
% \dm { \fenced[brace][middle=`|] { \frac{p}{q} \fence p,q \in \naturalnumbers} }\par
@@ -151,19 +184,21 @@
\newconstant\c_math_fenced_class
\newinteger \c_math_fence_check
+\integerdef\c_math_factor_fenced\zerocount
+
+\installglobalmacrostack\c_math_factor_fenced
+
\protected\def\math_fenced_common#1#2#3#4% \Uwhatever class symbol source
{\c_math_fenced_class\math_class_by_parameter\mathfenceparameter#2%
\math_fenced_check_size_mismatch % we need to catch an unbalanced \F as we are sequential
\ifconditional\c_math_fenced_sized
\orelse\ifconditional\c_math_fenced_level_mode
\ifnum\c_math_fenced_class=\mathopencode
- % \hpack{\infofont<L:\number\c_math_fenced_level:\number\c_attr_mathsize>}%
- \integerdef\c_math_fenced_stack\c_attr_mathsize
+ \integerdef\c_math_fenced_stack\c_math_fenced_level
\push_macro_c_math_fenced_stack
\orelse\ifnum\c_math_fenced_class=\mathclosecode
\pop_macro_c_math_fenced_stack
- \c_attr_mathsize\c_math_fenced_stack
- % \hpack{\infofont<R:\number\c_math_fenced_level:\number\c_attr_mathsize>}%
+ \c_math_fenced_level\c_math_fenced_stack
\fi
\fi
\edef\p_fence{#3}%
@@ -171,40 +206,43 @@
\ifnum\c_math_fenced_class=\mathmiddlecode\else#1.\relax\fi
\else
\edef\p_factor {\mathfenceparameter\c!factor}%
+ \edef\p_overflow {\mathfenceparameter\c!overflow}%
\edef\p_size {\mathfenceparameter\c!size}%
\edef\p_mathclass{\mathfenceparameter\c!mathclass}%
+ \edef\p_inline_factor{\ifconditional\indisplaymath\mathfenceparameter\c!displayfactor\else\mathfenceparameter\c!inlinefactor\fi}%
+ \scratchcounter\math_tags_mfunctionlabattribute\plusthree{\currentglobalmathfence}{\mathfenceparameter\c!mathmeaning}\relax
+ \ifempty\p_inline_factor
+ % nothing
+ \orelse\ifx#1\Uleft
+ \push_macro_c_math_factor_fenced
+ \integerdef\c_math_factor_fenced\p_inline_factor\relax
+ \orelse\ifx#1\Uright
+ \pop_macro_c_math_factor_fenced
+ \fi
\ifnum\c_math_fenced_level>\zerocount
\math_fenced_common_factor_fixed
+ \math_fenced_set_variant
\orelse\ifconditional\c_math_fenced_sized
\math_fenced_common_factor_fixed
\orelse\ifempty\p_factor
- \ifconditional\c_math_fenced_level_mode
- \Uvextensible
- \else
- #1% \Uleft \Umiddle \Uleft
- \ifx#1\Umiddle
- nooverflow %
- \fi
- \fi
+ \math_fenced_common_factor_empty#1%
\orelse\ifx\p_factor\v!auto
- \ifconditional\c_math_fenced_level_mode
- \Uvextensible
- \else
- #1% \Uleft \Umiddle \Uleft
- \ifx#1\Umiddle
- nooverflow %
- \fi
- \fi
+ \math_fenced_common_factor_auto#1%
\orelse\ifx\p_factor\v!none
\math_fenced_common_factor_none
\orelse\ifx\p_factor\v!fixed
\math_fenced_common_factor_fixed
\orelse\ifx\p_factor\v!force
\math_fenced_common_factor_force
+ \orelse\ifx\p_factor\v!size
+ \math_fenced_common_factor_size
\else
\math_fenced_common_factor_unknown
\fi
\usedcolorparameterattributes{\mathfenceparameter\c!color}%
+ \ifcase\scratchcounter\else
+ \s!attr \mathcategoryattribute \scratchcounter % will change
+ \fi
\s!class
\ifx\p_fence\v!none
\mathghostcode
@@ -213,25 +251,41 @@
\else
\mathcodechecked\p_mathclass
\fi
- \s!source
- \numexpr\namedboxanchor{\mathfenceparameter#4}\relax
+ \s!source \numexpr\namedboxanchor{\mathfenceparameter#4}\relax
%
\s!top \mathfenceparameter\c!topspace
\s!bottom \mathfenceparameter\c!bottomspace
%
+ \ifzero\c_math_factor_fenced\else
+ \s!factor \c_math_factor_fenced
+ \fi
+ %
+ \ifcstok{\mathfenceparameter\c!snap}\v!yes
+ \s!single\space
+ \fi
+ %
\math_fenced_trace
\ifx\p_fence\v!none
- \Udelimiter\mathghostcode\fam\zerocount
- \orelse\ifchknum\p_fence\or
- \Udelimiter\mathghostcode\fam\p_fence
+ % todo: test with \nomathchar
+ \Umathchar\mathghostcode\fam\zerocount
+ \orelse\ifchknumber\p_fence\or
+ \Umathchar\mathghostcode\fam\lastchknumber
\else
\p_fence
\fi
- \fi
- % we could use \s!attr \c_math_fenced_stack here
- \ifconditional\c_math_fenced_sized
- \orelse\ifcase\c_math_fenced_level
- \c_attr_mathsize\attributeunsetvalue
+ \fi}
+
+\def\math_fenced_set_variant
+ {\ifconditional\c_math_fenced_level_mode
+ \s!variant \mathvariantslot\fam \c_math_fenced_level
+ \orelse\ifempty\p_size
+ % nothing
+ \orelse\ifcsname\??mathfencesize\p_size\endcsname
+ \s!variant \mathvariantslot\fam \numexpr\lastnamedcs\relax
+ \orelse\ifcstok{\mathfenceparameter\c!alternative}\v!big
+ \s!variant \mathvariantslot\fam \numexpr\p_size\relax
+ \orelse\ifcstok{\lastnamedcs}\v!small
+ \s!variant \numexpr\p_size\relax
\fi}
\def\math_fenced_left
@@ -246,9 +300,9 @@
{\math_fenced_common\Umiddle\c!middleclass\math_fenced_p_middle\c!middlesource}
\def\math_fenced_middle_sized
- {\settrue\c_math_fenced_sized
+ {\c_math_fenced_sized\conditionaltrue
\math_fenced_middle_normal
- \setfalse\c_math_fenced_sized}
+ \c_math_fenced_sized\conditionalfalse}
\appendtoks
\let\math_fenced_middle\math_fenced_middle_normal
@@ -319,12 +373,12 @@
\protected\def\math_fenced_fenced_start#1%
{\begingroup
%{\beginmathgroup
- \edef\currentmathfence{#1}%
+ \cdef\currentmathfence{#1}%
\math_fenced_fenced_common
\math_fenced_left}
\protected\def\math_fenced_fenced_stop#1%
- {\edef\currentmathfence{#1}%
+ {\cdef\currentmathfence{#1}%
\math_fenced_right
\stopusemathstyleparameter
\endgroup}
@@ -340,7 +394,7 @@
% \definemathfence [tupdownarrows] [text] [\c!left="2191,\c!right="2193]
\def\math_fenced_check#1%
- {\iftok{\mathfenceparameter#1}\emptytoks\letmathfenceparameter#1\v!none\fi}
+ {\ifempty{\mathfenceparameter#1}\letmathfenceparameter#1\v!none\fi}
\appendtoks
\math_fenced_check\c!left
@@ -361,12 +415,11 @@
\s!rightclass \mathunspacedcode
\s!class \mathunspacedcode
\s!source \numexpr\namedboxanchor{\mathfenceparameter#4}\relax
- \Udelimiter\mathghostcode\fam\p_fence}
+ \Umathchar\mathghostcode\fam\p_fence}
-\tolerant\protected\def\math_fenced_horizontal#1#*[#2]#:#*#3#4%
- {% \csname math\mathfenceparameter\c!mathclass\endcsname
- \mathord \bgroup % class here
- \setlocalmathfencecurrent{#1}% \edef\currentmathfence{#1}%
+\tolerant\protected\def\math_fenced_horizontal#1#*[#S#2]#:#*#3#4%
+ {\mathord \bgroup % class here
+ \setlocalmathfencecurrent{#1}% \cdef\currentmathfence{#1}%
\setupcurrentmathfence[#2]%
% \usemathstyleparameter\mathfenceparameter\c!mathstyle
\setmathsmalltextbox\scratchboxone\hbox{\usemathfencestyleandcolor\c!leftstyle \c!leftcolor #3}%
@@ -404,56 +457,51 @@
\c!define=\v!yes,
\c!distance=.125\emwidth]
-\tolerant\protected\def\math_fenced_vertical#1#*[#2]%
- {\begingroup
+% \tolerant\protected\def\math_fenced_vertical#1#*[#S#2]%
+% {\begingroup
+% %{\beginmathgroup
+% \setlocalmathfencecurrent{#1}% \cdef\currentmathfence{#1}%
+% \c_math_fenced_level_mode\conditionalfalse
+% \resetmathfenceparameter\c!size
+% \letmathfenceparameter\c!factor\v!auto
+% \ifparameter#2\or
+% \setupcurrentmathfence[#2]%
+% \fi
+% \math_fenced_fenced_common
+% \math_fenced_fenced_indeed_adapt}
+
+% \protected\def\math_fenced_fenced_indeed_adapt#1%
+% {\c_math_fenced_sized\conditionalfalse
+% \math_fenced_left
+% #1%
+% \c_math_fenced_sized\conditionalfalse
+% \math_fenced_right
+% \math_fenced_fenced_indeed_finish}
+
+% \protected\def\math_fenced_fenced_indeed_finish
+% {\stopusemathstyleparameter
+% \endgroup}
+% %\endmathgroup}
+
+\tolerant\protected\def\math_fenced_vertical#1#*[#S#2]#:#3%
%{\beginmathgroup
- \setlocalmathfencecurrent{#1}% \edef\currentmathfence{#1}%
- % under test:
- \setfalse\c_math_fenced_level_mode
- \c_attr_mathsize\attributeunsetvalue
- %
+ {\begingroup
+ \setlocalmathfencecurrent{#1}% \cdef\currentmathfence{#1}%
+ \c_math_fenced_level_mode\conditionalfalse
\resetmathfenceparameter\c!size
\letmathfenceparameter\c!factor\v!auto
- % so far
\ifparameter#2\or
\setupcurrentmathfence[#2]%
- \bigmathdelimitervariant\mathfenceparameter\c!alternative\relax
\fi
\math_fenced_fenced_common
- \edef\p_size{\mathfenceparameter\c!size}%
- \ifempty\p_size
- \expandafter\math_fenced_fenced_indeed_adapt
- \else
- \expandafter\math_fenced_fenced_indeed_fixed
- \fi}
-
-\protected\def\math_fenced_fenced_indeed_finish
- {\stopusemathstyleparameter
- \endgroup}
- %\endmathgroup}
-
-\protected\def\math_fenced_fenced_indeed_fixed#1%
- {\math_fenced_force_size\bigmathdelimitervariant\p_size
- \settrue\c_math_fenced_sized
- \math_fenced_left
- \setfalse\c_math_fenced_sized
- \let\math_fenced_middle\math_fenced_middle_sized
- % \enforced\let\middle\math_fenced_middle_sized
-\begingroup
- #1% otherwise middle interferes
-\endgroup
- \settrue\c_math_fenced_sized
- \math_fenced_right
- \setfalse\c_math_fenced_sized
- \math_fenced_fenced_indeed_finish}
-
-\protected\def\math_fenced_fenced_indeed_adapt#1%
- {\setfalse\c_math_fenced_sized
+ \c_math_fenced_sized\conditionalfalse
\math_fenced_left
- #1%
- \setfalse\c_math_fenced_sized
+ #3%
+ \c_math_fenced_sized\conditionalfalse
\math_fenced_right
- \math_fenced_fenced_indeed_finish}
+ \stopusemathstyleparameter
+ \endgroup}
+ %\endmathgroup}
\protected\def\math_fenced_direct[#1]%
{\math_fenced_fenced{#1}}
@@ -462,9 +510,9 @@
\enforced\let\fenced\math_fenced_direct
\to \everymathematics
-\permanent\tolerant\protected\def\startmathfenced[#1]#*[#2]%
+\permanent\tolerant\protected\def\startmathfenced[#1]#*[#S#2]%
{\begingroup
- \def\currentmathfence{#1}%
+ \cdef\currentmathfence{#1}%
\setupcurrentmathfence[#2]%
\math_fenced_fenced_start{#1}}
@@ -557,14 +605,13 @@
\defcsname\??fencelevels+\endcsname{\advanceby\c_math_fenced_level\plusone }
\defcsname\??fencelevels-\endcsname{\advanceby\c_math_fenced_level\minusone }
-\defcsname\??fencelevels=\endcsname {\c_math_fenced_level\zerocount}
+\defcsname\??fencelevels=\endcsname {\c_math_fenced_level\zerocount}
\letcsname\??fencelevels*\endcsname\donothing
\def\math_fenced_check_size_mismatch
{\ifnum\c_math_fence_check=\c_math_fence_nesting
- \c_attr_mathsize\attributeunsetvalue
- \setfalse\c_math_fenced_level_mode
+ \c_math_fenced_level_mode\conditionalfalse
\c_math_fenced_level\zerocount
\fi}
@@ -572,32 +619,31 @@
{\ifconditional\c_math_fenced_level_mode\else
\c_math_fence_check\c_math_fence_nesting
\fi
- \settrue\c_math_fenced_level_mode
+ \c_math_fenced_level_mode\conditionaltrue
\ifchknum#1\or
\c_math_fenced_level#1\relax
\orelse\ifcsname\??fencelevels#1\endcsname
\lastnamedcs
\else
\c_math_fenced_level\zerocount
- \fi
- \math_fenced_force_size\bigmathdelimitervariant\c_math_fenced_level\relax}
+ \fi}
% \appendtoks
% \enforced\aliased\let|\letterbar
% %\enforced\aliased\let\bar\letterbar
% \to \everymathematics
-\definemathfence [parenthesis] [\c!left="0028,\c!right="0029]
-\definemathfence [bracket] [\c!left="005B,\c!right="005D]
-\definemathfence [brace] [\c!left="007B,\c!right="007D]
+\definemathfence [parenthesis] [\c!left="0028,\c!right="0029,define=yes]% some kind of meaning
+\definemathfence [bracket] [\c!left="005B,\c!right="005D,define=yes]% some kind of meaning
+\definemathfence [brace] [\c!left="007B,\c!right="007D,define=yes]% some kind of meaning
\definemathfence [bar] [\c!left="007C,\c!right="007C]
\definemathfence [doublebar] [\c!left="2016,\c!right="2016]
\definemathfence [triplebar] [\c!left="2980,\c!right="2980]
\definemathfence [angle] [\c!left="27E8,\c!right="27E9]
\definemathfence [doubleangle] [\c!left="27EA,\c!right="27EB]
\definemathfence [solidus] [\c!left="2044,\c!right="2044]
-\definemathfence [ceiling] [\c!left="2308,\c!right="2309]
-\definemathfence [floor] [\c!left="230A,\c!right="230B]
+\definemathfence [ceiling] [\c!left="2308,\c!right="2309,define=yes]% Have meaning
+\definemathfence [floor] [\c!left="230A,\c!right="230B,define=yes]% Have meaning
\definemathfence [moustache] [\c!left="23B0,\c!right="23B1]
\definemathfence [uppercorner] [\c!left="231C,\c!right="231D]
\definemathfence [lowercorner] [\c!left="231E,\c!right="231F]
@@ -676,14 +722,15 @@
% Different intervals. The variants are the ones suggested by Bourbaki.
-\definemathfence [interval] [\c!left="005B,\c!right="005D]
-\definemathfence [openinterval] [interval] [\c!left="0028,\c!right="0029]
-\definemathfence [closedinterval] [interval] [\c!left="005B,\c!right="005D]
-\definemathfence [leftopeninterval] [interval] [\c!left="0028,\c!right="005D]
-\definemathfence [rightopeninterval] [interval] [\c!left="005B,\c!right="0029]
-\definemathfence [varopeninterval] [interval] [\c!left="005D,\c!right="005B]
-\definemathfence [varleftopeninterval] [interval] [\c!left="005D,\c!right="005D]
-\definemathfence [varrightopeninterval] [interval] [\c!left="005B,\c!right="005B]
+\definemathfence [interval] [\c!left="005B,\c!right="005D,define=yes]
+\definemathfence [openinterval] [interval] [\c!left="0028,\c!right="0029,define=yes]
+\definemathfence [closedinterval] [interval] [\c!left="005B,\c!right="005D,define=yes]
+\definemathfence [leftopeninterval] [interval] [\c!left="0028,\c!right="005D,define=yes]
+\definemathfence [rightopeninterval] [interval] [\c!left="005B,\c!right="0029,define=yes]
+\definemathfence [varopeninterval] [interval] [\c!left="005D,\c!right="005B,define=yes]
+\definemathfence [varleftopeninterval] [interval] [\c!left="005D,\c!right="005D,define=yes]
+\definemathfence [varrightopeninterval] [interval] [\c!left="005B,\c!right="005B,define=yes]
+\definemathfence [integerinterval] [interval] [\c!left="27E6,\c!right="27E7,define=yes]
\immutable\protected\def\Linterval {\math_fenced_fenced_start{interval}}
\immutable\protected\def\Lointerval {\math_fenced_fenced_start{openinterval}}
@@ -737,7 +784,7 @@
\def\math_fenced_x_middle
{\math_fenced_common\Umiddle\c!middleclass\math_fenced_x_p_middle\c!middlesource}
-% the expandafter permits \left\Uchar...
+% the expandafter permits \left\tocharacter...
\protected\def\lfence{\afterassignment\math_fenced_x_left \expandafter\let\expandafter\math_fenced_x_p_left}
\protected\def\rfence{\afterassignment\math_fenced_x_right \expandafter\let\expandafter\math_fenced_x_p_right}
@@ -751,7 +798,7 @@
% \let\leftorright\relax
-\newconditional\c_math_fenced_unknown \settrue\c_math_fenced_unknown
+\newconditional\c_math_fenced_unknown \c_math_fenced_unknown\conditionaltrue
% \permanent\protected\def\installmathfencepair#1#2#3#4%
% {\letcsname\??mathleft \normalmeaningless#1\endcsname#2%
@@ -968,32 +1015,24 @@
%D As we have overloaded \type {\left} and \type {\right} we also need a more
%D clever version of the following:
-% variants:
+% alternatives:
%
-% 1: step 1
-% 2: step 2
-% 3: htdp * 1.33^n
-% 4: size * 1.33^n
-
-\setnewconstant\bigmathdelimitervariant\plusthree
-
-\appendtoks
- \bigmathdelimitervariant\mathfenceparameter\c!alternative\relax % controls lua
-\to \everysetupmathfence
-
-\setupmathfence[\c!alternative=5] % the rest will probably go
+% small: step 1
+% big : take step from lfg
\permanent\protected\def\choosemathbig
{\mathortext\math_choosemathbig_math\math_choosemathbig_text}
\protected\def\math_choosemathbig_math#1#2% so we accept \big{||} as well
- {\math_fenced_force_size\bigmathdelimitervariant{#1}\relax
+ {\begingroup
+ \edef\p_size{#1}%
\Uvextensible
\s!axis
\s!exact
+ \math_fenced_set_variant
#2%
\relax
- \c_attr_mathsize\attributeunsetvalue}
+ \endgroup}
\protected\def\math_choosemathbig_text#1#2% so we accept \big{||} as well
{\naturalhbox\bgroup
@@ -1005,14 +1044,12 @@
\egroup}
\permanent\protected\def\mathdelimiterstep#1#2% not used, only in example
- {\begingroup
- \math_fenced_force_size\plusone{#1}%
- \Uvextensible
+ {\Uvextensible
\s!axis
\s!exact
+ \s!variant\numexpr#1\relax % always from original sizes not lfg
#2%
- \relax
- \endgroup}
+ \relax}
\definemathcommand [big] {\choosemathbig1}
\definemathcommand [Big] {\choosemathbig2}
@@ -1074,13 +1111,13 @@
\permanent\protected\def\enableautofences
{\clf_enableautofences
- \setfalse\c_math_fences_auto
+ \c_math_fences_auto\conditionalfalse
\glet\clf_enableautofences\relax % onlyonce anyway
- \enforced\permanent\protected\gdef\enableautofences{\settrue\c_math_fences_auto}%
+ \enforced\permanent\protected\gdef\enableautofences{\c_math_fences_auto\conditionaltrue}%
\enableautofences}
\permanent\protected\def\disableautofences
- {\setfalse\c_math_fences_auto}
+ {\c_math_fences_auto\conditionalfalse}
\permanent\protected\def\math_fences_used_left
{\ifconditional\c_math_fences_auto
@@ -1172,7 +1209,7 @@
\s!yoffset -.1\exheight
\s!target \registeredboxanchor
\s!to \zeropoint
- {\darkblue\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting}\hss}%
+ {\darkblue\hss\mathindexfont\ruledhbox{\the\c_math_fence_nesting}\hss}%
\endlocalcontrol
\s!source \registeredboxanchor
}
@@ -1189,7 +1226,7 @@
% \s!yoffset -.1\exheight
% \s!target \registeredboxanchor
% \s!to \zeropoint
-% {\darkblue\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting B}\hss}%
+% {\darkblue\hss\mathindexfont\ruledhbox{\the\c_math_fence_nesting B}\hss}%
% \registeranchorbox
% \registeredboxanchor
% \plusone
@@ -1198,7 +1235,7 @@
% \s!yoffset .1\exheight
% \s!target \registeredboxanchor
% \s!to \zeropoint
-% {\darkgreen\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting T}\hss}%
+% {\darkgreen\hss\mathindexfont\ruledhbox{\the\c_math_fence_nesting T}\hss}%
% \registeranchorbox
% \registeredboxanchor
% \plusone
@@ -1207,7 +1244,7 @@
% \s!xoffset -.1\emwidth
% \s!target \registeredboxanchor
% \s!to \zeropoint
-% {\darkred\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting L}}%
+% {\darkred\hss\mathindexfont\ruledhbox{\the\c_math_fence_nesting L}}%
% \registeranchorbox
% \registeredboxanchor
% \plusone
@@ -1216,7 +1253,7 @@
% \s!xoffset .1\emwidth
% \s!target \registeredboxanchor
% \s!to \zeropoint
-% {\darkyellow\mathindexfont\ruledhbox{\number\c_math_fence_nesting R}\hss}%
+% {\darkyellow\mathindexfont\ruledhbox{\the\c_math_fence_nesting R}\hss}%
% \endlocalcontrol
% \s!source \registeredboxanchor
% }
@@ -1258,4 +1295,13 @@
\definemathfence [tuparrow] [\v!text][\c!middle="2191]
\definemathfence [tdownarrow] [\v!text][\c!middle="2193]
+% A few meaningful definitions
+\definemathfence [abs] [bar] [define=yes]
+\definemathfence [innerproduct][angle] [define=yes,middle=`|]
+\definemathfence [integerpart] [bracket] [define=yes]
+\definemathfence [norm] [doublebar] [define=yes]
+\definemathfence [set] [brace] [define=yes,middle=`|]
+\definemathfence [sequence] [parenthesis][define=yes]
+\definemathfence [tuple] [parenthesis][define=yes]
+
\protect