summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/math-fen.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/math-fen.mkxl')
-rw-r--r--tex/context/base/mkiv/math-fen.mkxl829
1 files changed, 0 insertions, 829 deletions
diff --git a/tex/context/base/mkiv/math-fen.mkxl b/tex/context/base/mkiv/math-fen.mkxl
deleted file mode 100644
index 4d19fb210..000000000
--- a/tex/context/base/mkiv/math-fen.mkxl
+++ /dev/null
@@ -1,829 +0,0 @@
-%D \module
-%D [ file=math-fen,
-%D version=2012.02.18,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Fences,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Math Macros / Fences}
-
-\unprotect
-
-% maybe always "method=auto" for:
-%
-% \switchtobodyfont[cambria]
-% \ruledhbox{$f(x)$}
-% \ruledhbox{\mathdelimitersmode6$f\left(x\right)$}
-% \ruledhbox{\mathdelimitersmode7$f\left(x\right)$}
-% \ruledhbox{$f\left(\frac{1}{x}\right)$}
-
-% todo: mathstyle
-
-% \definemathfence [fancybracket] [bracket] [command=yes,color=blue]
-%
-% test $|x|$ test \par
-% test $||x||$ test (okay) \par
-% test $a\left|\frac{1}{b}\right|c$ test \par
-% test $a\left||\frac{1}{b}\right||c$ test (not okay) \par
-%
-% \setupmathfences [color=red]
-%
-% test $a\fenced[bar]{\frac{1}{b}}c$ test \par
-% test $a\fenced[doublebar]{\frac{1}{b}}c$ test \par
-% test $a\fenced[bracket]{\frac{1}{b}}c$ test \par
-% test $a\fancybracket{\frac{1}{b}}c$ test \par
-
-\installcorenamespace{mathfences}
-
-\installcommandhandler \??mathfences {mathfence} \??mathfences
-
-\aliased\let\setupmathfences\setupmathfence
-
-\setupmathfences
- [\c!method=, % maybe always \v!auto
- \c!left=,
- \c!right=,
- \c!middle=,
- \c!mathstyle=,
- \c!color=,
- \c!command=,
- \c!mathclass=,
- \c!factor=\v!auto]
-
-\appendtoks
- \edef\p_command{\mathfenceparameter\c!command}%
- \ifx\p_command\v!yes
- \setuevalue\currentmathfence{\math_fenced_fenced[\currentmathfence]}%
- \fi
-\to \everydefinemathfence
-
-% we need the direct use of \Udelimiter because of { etc
-
-%D So we can do:
-%D
-%D \starttyping
-%D $ a + \fenced[bar][size=1] {\frac {b} {c}} + d $
-%D $ a + \fenced[bar][size=2] {\frac {b} {c}} + d $
-%D $ a + \fenced[bar][size=3] {\frac {b} {c}} + d $
-%D $ a + \fenced[bar][size=4] {\frac {b} {c}} + d $
-%D $ a + \fenced[bar][size=big] {\frac {b} {c}} + d $
-%D $ a + \fenced[bar][size=Big] {\frac {b} {c}} + d $
-%D $ a + \fenced[bar][size=bigg]{\frac {b} {c}} + d $
-%D $ a + \fenced[bar][size=Bigg]{\frac {b} {c}} + d $
-%D $ a + \fenced[bar][factor=1] {\frac {b} {c}} + d $
-%D $ a + \fenced[bar][factor=2] {\frac {b} {c}} + d $
-%D $ a + \fenced[bar][factor=4] {\frac {b} {c}} + d $
-%D $ a + \fenced[bar] {\frac {b} {c}} + d $
-%D \stoptyping
-
-\newconditional\c_math_fenced_mirror \settrue \c_math_fenced_mirror
-\newconditional\c_math_fenced_sized \setfalse\c_math_fenced_sized
-
-\installcorenamespace {mathfencesize}
-
-\setvalue{\??mathfencesize big}{1}
-\setvalue{\??mathfencesize Big}{2}
-\setvalue{\??mathfencesize bigg}{3}
-\setvalue{\??mathfencesize Bigg}{4}
-
-\def\math_fenced_force_size#1#2%
- {\c_attr_mathsize\numexpr
- #1*\plushundred
- +\ifcsname\??mathfencesize#2\endcsname\lastnamedcs\else#2\fi
- \relax}
-
-\protected\def\math_fenced_inject#1#2#3#4%
- {\ifx#1\empty
- #2.%
- \else
- \edef\p_mathclass{\mathfenceparameter\c!mathclass}%
- \ifconditional\c_math_fenced_sized
- \let\p_factor\v!fixed
- \else
- \edef\p_factor{\mathfenceparameter\c!factor}%
- \fi
- \ifempty\p_factor
- \ifempty\p_mathclass
- #2%
- \else
- #3%
- \s!class\p_mathclass
- \fi
- \orelse\ifx\p_factor\v!auto
- \ifempty\p_mathclass
- #2%
- \else
- #3%
- \s!class\p_mathclass
- \fi
- \orelse\ifx\p_factor\v!none
- #3%
- \s!height\zeropoint
- \s!depth\zeropoint
- \ifempty\p_mathclass\else
- \s!class\p_mathclass
- \fi
- \s!axis
- % #2%
- \else
- \scratchdimen\ifx\p_factor\v!fixed\scaledpoint\else\dimexpr\p_factor\bodyfontsize/2\relax\fi
- #3%
- \s!height\scratchdimen
- \s!depth\scratchdimen
- \ifempty\p_mathclass\else
- \s!class\p_mathclass
- \fi
- \s!axis
- \fi
- \Udelimiter#4\fam#1\relax
- \fi}
-
-\permanent\def\math_fenced_left
- {\edef\p_left
- {\ifconditional\c_math_fenced_mirror
- \ifconditional\c_math_right_to_left
- \mathfenceparameter\c!right
- \else
- \mathfenceparameter\c!left
- \fi
- \else
- \mathfenceparameter\c!left
- \fi}%
- \math_fenced_color_push
- \math_fenced_inject\p_left\normalleft\Uleft\plusfour
- \math_fenced_color_pop}
-
-\permanent\def\math_fenced_middle
- {\edef\p_middle{\mathfenceparameter\c!middle}%
- \mskip\thinmuskip
- \math_fenced_color_push
- \math_fenced_inject\p_middle\normalmiddle\Umiddle\plusfour
- \math_fenced_color_pop
- \mskip\thinmuskip}
-
-\permanent\def\math_fenced_right
- {\edef\p_right
- {\ifconditional\c_math_fenced_mirror
- \ifconditional\c_math_right_to_left
- \mathfenceparameter\c!left
- \else
- \mathfenceparameter\c!right
- \fi
- \else
- \mathfenceparameter\c!right
- \fi}%
- \math_fenced_color_push
- \math_fenced_inject\p_right\normalright\Uright\plusfive
- \math_fenced_color_pop}
-
-\def\math_fenced_color_do_push{\pushcolor[\p_math_fenced_color]}
-\let\math_fenced_color_do_pop \popcolor
-
-\let\math_fenced_color_push\donothing
-\let\math_fenced_color_pop \donothing
-
-\aliased\let\fence \relax
-\aliased\let\fenced\relax
-
-\newcount\c_math_fenced_nesting
-
-\protected\def\math_fenced_fenced_common
- {\startusemathstyleparameter\mathfenceparameter
- \enforced\let\fence\math_fenced_middle
- \edef\p_math_fenced_color{\mathfenceparameter\c!color}%
- \ifempty\p_math_fenced_color
- \let\math_fenced_color_push\donothing
- \let\math_fenced_color_pop \donothing
- \else
- \let\math_fenced_color_push\math_fenced_color_do_push
- \let\math_fenced_color_pop \math_fenced_color_do_pop
- \fi}
-
-\protected\def\math_fenced_fenced_start#1%
- {\advance\c_math_fenced_nesting\plusone
- \begingroup
- \edef\currentmathfence{#1}%
- \math_fenced_fenced_common
- \math_fenced_left}
-
-\protected\def\math_fenced_fenced_stop#1%
- {\edef\currentmathfence{#1}%
- \math_fenced_right
- \stopusemathstyleparameter
- \endgroup
- \advance\c_math_fenced_nesting\minusone}
-
-\tolerant\protected\def\math_fenced_fenced[#1]#*[#2]%
- {\advance\c_math_fenced_nesting\plusone
- \begingroup
- \edef\currentmathfence{#1}%
- \ifparameter#2\or\setupcurrentmathfence[#2]\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
- \advance\c_math_fenced_nesting\minusone}
-
-\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
- #1%
- \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
- \math_fenced_left
- #1%
- \setfalse\c_math_fenced_sized
- \math_fenced_right
- \math_fenced_fenced_indeed_finish}
-
-\appendtoks
- \enforced\let\fenced\math_fenced_fenced
-\to \everymathematics
-
-% todo: | in mathmode letter
-%
-% \appendtoks
-% \let\bar\letterbar
-% \to \everymathematics
-%
-% but then we don't have it in embedded text too so ...
-
-\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 [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 [moustache] [\c!left="23B0,\c!right="23B1]
-\definemathfence [uppercorner] [\c!left="231C,\c!right="231D]
-\definemathfence [lowercorner] [\c!left="231E,\c!right="231F]
-\definemathfence [group] [\c!left="27EE,\c!right="27EF]
-\definemathfence [openbracket] [\c!left="27E6,\c!right="27E7]
-
-\definemathfence [nothing]
-
-\definemathfence [mirrored] % \v!mirrored
-
-\definemathfence [mirroredparenthesis] [mirrored] [\c!right="0028,\c!left="0029]
-\definemathfence [mirroredbracket] [mirrored] [\c!right="005B,\c!left="005D]
-\definemathfence [mirroredbrace] [mirrored] [\c!right="007B,\c!left="007D]
-\definemathfence [mirroredbar] [mirrored] [\c!right="007C,\c!left="007C]
-\definemathfence [mirroreddoublebar] [mirrored] [\c!right="2016,\c!left="2016]
-\definemathfence [mirroredtriplebar] [mirrored] [\c!right="2980,\c!left="2980]
-\definemathfence [mirroredangle] [mirrored] [\c!right="27E8,\c!left="27E9]
-\definemathfence [mirroreddoubleangle] [mirrored] [\c!right="27EA,\c!left="27EB]
-\definemathfence [mirroredsolidus] [mirrored] [\c!right="2044,\c!left="2044]
-\definemathfence [mirroredceiling] [mirrored] [\c!right="2308,\c!left="2309]
-\definemathfence [mirroredfloor] [mirrored] [\c!right="230A,\c!left="230B]
-\definemathfence [mirroredmoustache] [mirrored] [\c!right="23B0,\c!left="23B1]
-\definemathfence [mirroreduppercorner] [mirrored] [\c!right="231C,\c!left="231D]
-\definemathfence [mirroredlowercorner] [mirrored] [\c!right="231E,\c!left="231F]
-\definemathfence [mirroredgroup] [mirrored] [\c!right="27EE,\c!left="27EF]
-\definemathfence [mirroredopenbracket] [mirrored] [\c!right="27E6,\c!left="27E7]
-
-\definemathfence [mirrorednothing] [mirrored]
-
-%D A bonus:
-
-\pushoverloadmode
-
-\immutable\protected\def\Lparenthesis {\math_fenced_fenced_start{parenthesis}} \immutable\protected\def\Rparenthesis {\math_fenced_fenced_stop {parenthesis}}
-\immutable\protected\def\Lbracket {\math_fenced_fenced_start{bracket}} \immutable\protected\def\Rbracket {\math_fenced_fenced_stop {bracket}}
-\immutable\protected\def\Lbrace {\math_fenced_fenced_start{brace}} \immutable\protected\def\Rbrace {\math_fenced_fenced_stop {brace}}
-\immutable\protected\def\Langle {\math_fenced_fenced_start{angle}} \immutable\protected\def\Rangle {\math_fenced_fenced_stop {angle}}
-\immutable\protected\def\Ldoubleangle {\math_fenced_fenced_start{doubleangle}} \immutable\protected\def\Rdoubleangle {\math_fenced_fenced_stop {doubleangle}}
-\immutable\protected\def\Lbar {\math_fenced_fenced_start{bar}} \immutable\protected\def\Rbar {\math_fenced_fenced_stop {bar}}
-\immutable\protected\def\Ldoublebar {\math_fenced_fenced_start{doublebar}} \immutable\protected\def\Rdoublebar {\math_fenced_fenced_stop {doublebar}}
-\immutable\protected\def\Ltriplebar {\math_fenced_fenced_start{triplebar}} \immutable\protected\def\Rtriplebar {\math_fenced_fenced_stop {triplebar}}
-\immutable\protected\def\Lsolidus {\math_fenced_fenced_start{solidus}} \immutable\protected\def\Rsolidus {\math_fenced_fenced_stop {solidus}}
-\immutable\protected\def\Lfloor {\math_fenced_fenced_start{floor}} \immutable\protected\def\Rfloor {\math_fenced_fenced_stop {floor}}
-\immutable\protected\def\Lceiling {\math_fenced_fenced_start{ceiling}} \immutable\protected\def\Rceiling {\math_fenced_fenced_stop {ceiling}}
-\immutable\protected\def\Lmoustache {\math_fenced_fenced_start{moustache}} \immutable\protected\def\Rmoustache {\math_fenced_fenced_stop {moustache}}
-\immutable\protected\def\Luppercorner {\math_fenced_fenced_start{uppercorner}} \immutable\protected\def\Ruppercorner {\math_fenced_fenced_stop {uppercorner}}
-\immutable\protected\def\Llowercorner {\math_fenced_fenced_start{lowercorner}} \immutable\protected\def\Rlowercorner {\math_fenced_fenced_stop {lowercorner}}
-\immutable\protected\def\Lgroup {\math_fenced_fenced_start{group}} \immutable\protected\def\Rgroup {\math_fenced_fenced_stop {group}}
-\immutable\protected\def\Lopenbracket {\math_fenced_fenced_start{openbracket}} \immutable\protected\def\Ropenbracket {\math_fenced_fenced_stop {openbracket}}
-\immutable\protected\def\Lnothing {\math_fenced_fenced_start{nothing}} \immutable\protected\def\Rnothing {\math_fenced_fenced_stop {nothing}}
-
-\immutable\protected\def\Lparenthesismirrored {\math_fenced_fenced_stop {mirroredparenthesis}} \immutable\protected\def\Rparenthesismirrored {\math_fenced_fenced_start{mirroredparenthesis}}
-\immutable\protected\def\Lbracketmirrored {\math_fenced_fenced_stop {mirroredbracket}} \immutable\protected\def\Rbracketmirrored {\math_fenced_fenced_start{mirroredbracket}}
-\immutable\protected\def\Lbracemirrored {\math_fenced_fenced_stop {mirroredbrace}} \immutable\protected\def\Rbracemirrored {\math_fenced_fenced_start{mirroredbrace}}
-\immutable\protected\def\Langlemirrored {\math_fenced_fenced_stop {mirroredangle}} \immutable\protected\def\Ranglemirrored {\math_fenced_fenced_start{mirroredangle}}
-\immutable\protected\def\Ldoubleanglemirrored {\math_fenced_fenced_stop {mirroreddoubleangle}} \immutable\protected\def\Rdoubleanglemirrored {\math_fenced_fenced_start{mirroreddoubleangle}}
-\immutable\protected\def\Lbarmirrored {\math_fenced_fenced_stop {mirroredbar}} \immutable\protected\def\Rbarmirrored {\math_fenced_fenced_start{mirroredbar}}
-\immutable\protected\def\Ldoublebarmirrored {\math_fenced_fenced_stop {mirroreddoublebar}} \immutable\protected\def\Rdoublebarmirrored {\math_fenced_fenced_start{mirroreddoublebar}}
-\immutable\protected\def\Ltriplebarmirrored {\math_fenced_fenced_stop {mirroredtriplebar}} \immutable\protected\def\Rtriplebarmirrored {\math_fenced_fenced_start{mirroredtriplebar}}
-\immutable\protected\def\Lsolidusmirrored {\math_fenced_fenced_stop {mirroredsolidus}} \immutable\protected\def\Rsolidusmirrored {\math_fenced_fenced_start{mirroredsolidus}}
-\immutable\protected\def\Lfloormirrored {\math_fenced_fenced_stop {mirroredfloor}} \immutable\protected\def\Rfloormirrored {\math_fenced_fenced_start{mirroredfloor}}
-\immutable\protected\def\Lceilingmirrored {\math_fenced_fenced_stop {mirroredceiling}} \immutable\protected\def\Rceilingmirrored {\math_fenced_fenced_start{mirroredceiling}}
-\immutable\protected\def\Lmoustachemirrored {\math_fenced_fenced_stop {mirroredmoustache}} \immutable\protected\def\Rmoustachemirrored {\math_fenced_fenced_start{mirroredmoustache}}
-\immutable\protected\def\Luppercornermirrored {\math_fenced_fenced_stop {mirroreduppercorner}} \immutable\protected\def\Ruppercornermirrored {\math_fenced_fenced_start{mirroreduppercorner}}
-\immutable\protected\def\Llowercornermirrored {\math_fenced_fenced_stop {mirroredlowercorner}} \immutable\protected\def\Rlowercornermirrored {\math_fenced_fenced_start{mirroredlowercorner}}
-\immutable\protected\def\Lgroupmirrored {\math_fenced_fenced_stop {mirroredgroup}} \immutable\protected\def\Rgroupmirrored {\math_fenced_fenced_start{mirroredgroup}}
-\immutable\protected\def\Lopenbracketmirrored {\math_fenced_fenced_stop {mirroredopenbracket}} \immutable\protected\def\Ropenbracketmirrored {\math_fenced_fenced_start{mirroredopenbracket}}
-\immutable\protected\def\Lnothingmirrored {\math_fenced_fenced_stop {mirrorednothing}} \immutable\protected\def\Rnothingmirrored {\math_fenced_fenced_start{mirrorednothing}}
-
-\definemathfence [interval] [\c!left="2997,\c!right="2998]
-\definemathfence [openinterval] [interval] [\c!left="2998,\c!right="2998]
-\definemathfence [leftopeninterval] [interval] [\c!left="2997,\c!right="2997]
-\definemathfence [rightopeninterval] [interval] [\c!left="2998,\c!right="2998]
-
-\immutable\protected\def\Linterval {\math_fenced_fenced_start{interval}}
-\immutable\protected\def\Lointerval {\math_fenced_fenced_start{openinterval}}
-\immutable\protected\def\Llointerval {\math_fenced_fenced_start{leftopeninterval}}
-\immutable\protected\def\Lrointerval {\math_fenced_fenced_start{rightopeninterval}}
-
-\immutable\protected\def\Rinterval {\math_fenced_fenced_stop {interval}}
-\immutable\protected\def\Rointerval {\math_fenced_fenced_stop {openinterval}}
-\immutable\protected\def\Rlointerval {\math_fenced_fenced_stop {leftopeninterval}}
-\immutable\protected\def\Rrointerval {\math_fenced_fenced_stop {rightopeninterval}}
-
-% \startformula
-% \left{ \frac{1}{a} \right}
-% \left[ \frac{1}{b} \right]
-% \left( \frac{1}{c} \right)
-% \left< \frac{1}{d} \right>
-% \left| \frac{1}{e} \right|
-% \stopformula
-
-\popoverloadmode
-
-\installcorenamespace{mathleft}
-\installcorenamespace{mathright}
-\installcorenamespace{mathmiddle}
-
-\pushoverloadmode
-
-\protected\def\left {\afterassignment\math_left \let\nexttoken}
-\protected\def\right {\afterassignment\math_right \let\nexttoken}
-\protected\def\middle{\afterassignment\math_middle\let\nexttoken}
-
-\popoverloadmode
-
-\let\leftorright\relax
-
-\newconditional\c_math_fenced_done
-\newconditional\c_math_fenced_unknown \settrue\c_math_fenced_unknown
-
-\protected\def\installmathfencepair#1#2#3#4%
- {\letcsname\??mathleft \normalmeaning#1\endcsname#2%
- \letcsname\??mathright\normalmeaning#3\endcsname#4}
-
-\def\math_unknown_left {\setfalse\c_math_fenced_done\ifconditional\c_math_fenced_unknown\normalleft \nexttoken\fi}
-\def\math_unknown_right {\setfalse\c_math_fenced_done\ifconditional\c_math_fenced_unknown\normalright \nexttoken\fi}
-\def\math_unknown_middle{\setfalse\c_math_fenced_done\ifconditional\c_math_fenced_unknown\normalmiddle\nexttoken\fi}
-
-\letvalue{\??mathleft \s!unknown}\math_unknown_left
-\letvalue{\??mathright \s!unknown}\math_unknown_right
-\letvalue{\??mathmiddle\s!unknown}\math_unknown_middle
-
-\def\math_left
- {\settrue\c_math_fenced_done
- \ifcsname\??mathleft\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_left
- \fi}
-
-\def\math_right
- {\settrue\c_math_fenced_done
- \ifcsname\??mathright\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_right
- \fi}
-
-\def\math_middle
- {\settrue\c_math_fenced_done
- \ifcsname\??mathmiddle\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_middle
- \fi}
-
-\protected\def\lfence#1%
- {\settrue\c_math_fenced_done
- \let\nexttoken#1%
- \ifcsname\??mathleft\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_left
- \fi}
-
-\protected\def\rfence#1%
- {\settrue\c_math_fenced_done
- \let\nexttoken#1%
- \ifcsname\??mathright\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_right
- \fi}
-
-\protected\def\mfence#1%
- {\settrue\c_math_fenced_done
- \let\nexttoken#1%
- \ifcsname\??mathmiddle\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_middle
- \fi}
-
-\normalexpanded{\installmathfencepair {|\detokenize {|}} \Ldoublebar {|\detokenize {|}} \Rdoublebar}
-\normalexpanded{\installmathfencepair {|\detokenize{||}} \Ltriplebar {|\detokenize{||}} \Rtriplebar}
-
-\installmathfencepair \bgroup \Lbrace \egroup \Rbrace
-\installmathfencepair \egroup \Rbracemirrored \bgroup \Lbracemirrored
-
-\installmathfencepair \letteropenbrace \Lbrace \letterclosebrace \Rbrace % as we escape in mp textexts
-
-\installmathfencepair . \Lnothing . \Rnothing
-\installmathfencepair . \Rnothingmirrored . \Lnothingmirrored
-
-\installmathfencepair [ \Lbracket ] \Rbracket
-\installmathfencepair ] \Rbracketmirrored [ \Lbracketmirrored
-
-\installmathfencepair ( \Lparenthesis ) \Rparenthesis
-\installmathfencepair ) \Rparenthesismirrored ( \Lparenthesismirrored
-
-\installmathfencepair < \Langle > \Rangle
-\installmathfencepair > \Ranglemirrored < \Langlemirrored
-
-\installmathfencepair / \Lsolidus / \Rsolidus
-%installmathfencepair / \Rsolidusmirrored / \Lsolidusmirrored
-
-\installmathfencepair | \Lbar | \Rbar
-%installmathfencepair | \Rbarmirrored | \Lbarmirrored
-
-\installmathfencepair ⌊ \Lfloor ⌋ \Rfloor
-\installmathfencepair ⌋ \Rfloormirrored ⌊ \Lfloormirrored
-\installmathfencepair ⌈ \Lceiling ⌉ \Rceiling
-\installmathfencepair ⌉ \Rceilingmirrored ⌈ \Lceilingmirrored
-
-\installmathfencepair ⟨ \Langle ⟩ \Rangle
-\installmathfencepair ⟩ \Ranglemirrored ⟨ \Langlemirrored
-
-\installmathfencepair ⟪ \Ldoubleangle ⟫ \Rdoubleangle
-\installmathfencepair ⟫ \Rdoubleanglemirrored ⟪ \Ldoubleanglemirrored
-
-\installmathfencepair ‖ \Ldoublebar ‖ \Rdoublebar
-%installmathfencepair ‖ \Rdoublebarmirrored ‖ \Ldoublebarmirrored
-
-\installmathfencepair ⦀ \Ltriplebar ⦀ \Rtriplebar
-%installmathfencepair ⦀ \Rtriplebarmirrored ⦀ \Ltriplebarmirrored
-
-% \installmathfencepair { \Lbrace } \Rbrace
-% \installmathfencepair } \Rbracemirrored { \Lbracemirrored
-
-\installmathfencepair ⦗ \Linterval ⦘ \Rinterval
-
-\appendtoks
- \ignorediscretionaries % so $\mtext{a|b}$ works, this is ok because it's an \hbox
-\to \everymathematics
-
-% We unofficial support some synonyms as we need them for some fuzzy web related math.
-
-% The names in char-def.lua (historic mess):
-
-\pushoverloadmode
-
-\aliased\let\lbrack \lbracket
-\aliased\let\rbrack \rbracket
-\aliased\let\lceiling \lceil
-\aliased\let\rceiling \rceil
-\aliased\let\lparenthesis\lparent
-\aliased\let\rparenthesis\rparent
-\aliased\let\lparen \lparent
-\aliased\let\rparen \rparent
-
-% Just defined:
-
-\aliased\let\Lceil \Lceiling
-\aliased\let\Rceil \Rceiling
-\aliased\let\Lparent\Lparenthesis
-\aliased\let\Rparent\Rparenthesis
-\aliased\let\Lparen \Lparenthesis
-\aliased\let\Rparen \Rparenthesis
-
-\installmathfencepair \lbrace \Lbrace \rbrace \Rbrace
-\installmathfencepair \lbracket \Lbracket \rbracket \Rbracket
-\installmathfencepair \lbrack \Lbracket \rbracket \Rbracket
-\installmathfencepair \lparenthesis \Lparenthesis \rparenthesis \Rparenthesis
-\installmathfencepair \lparent \Lparenthesis \rparent \Rparenthesis
-\installmathfencepair \lparen \Lparenthesis \rparen \Rparenthesis
-\installmathfencepair \langle \Langle \rangle \Rangle
-\installmathfencepair \llangle \Ldoubleangle \rrangle \Rdoubleangle
-%installmathfencepair \lbar \Lbar \rbar \Rbar
-\installmathfencepair \lVert \Ldoublebar \rVert \Rdoublebar
-\installmathfencepair \vert \Lbar \vert \Rbar
-\installmathfencepair \solidus \Lsolidus \solidus \Rsolidus
-\installmathfencepair \lfloor \Lfloor \rfloor \Rfloor
-\installmathfencepair \lceiling \Lceiling \rceiling \Rceiling
-\installmathfencepair \lceil \Lceiling \rceil \Rceiling
-
-\installmathfencepair \ulcorner \Luppercorner \urcorner \Ruppercorner
-\installmathfencepair \llcorner \Llowercorner \lrcorner \Rlowercorner
-\installmathfencepair \lmoustache \Lmoustache \rmoustache \Rmoustache
-\installmathfencepair \llbracket \Lopenbracket \rrbracket \Ropenbracket
-\installmathfencepair \lgroup \Lgroup \rgroup \Rgroup
-
-\installmathfencepair \linterval \Linterval \rinterval \Rinterval
-%installmathfencepair \linterv \Linterval \rinterv \Rinterval
-\installmathfencepair \lointerval \Linterval \rointerval \Rinterval
-\installmathfencepair \llointerval \Llointerval \rlointerval \Rlointerval
-\installmathfencepair \lrointerval \Lrointerval \rrointerval \Rrointerval
-
-\aliased\let\textlbar\lbar \aliased\let\mathlbar\Lbar
-\aliased\let\textrbar\lbar \aliased\let\mathrbar\Rbar
-
-\immutable\protected\def\lbar{\mathortext\mathlbar\textlbar}
-\immutable\protected\def\rbar{\mathortext\mathrbar\textrbar}
-
-% \setupmathfences[color=darkgreen]
-
-\permanent\protected\def\{{\mathortext\lbrace \letterleftbrace } % or maybe a chardef
-\permanent\protected\def\}{\mathortext\rbrace \letterrightbrace } % or maybe a chardef
-\permanent\protected\def\[{\mathortext\lbracket \letterleftbracket } % or maybe a chardef
-\permanent\protected\def\]{\mathortext\rbracket \letterrightbracket } % or maybe a chardef
-\permanent\protected\def\({\mathortext\lparenthesis\letterleftparenthesis } % or maybe a chardef
-\permanent\protected\def\){\mathortext\rparenthesis\letterrightparenthesis} % or maybe a chardef
-\permanent\protected\def\|{\mathortext\vert \letterbar } % or maybe a chardef
-%permanent\protected\def\/{\mathortext\solidus \letterslash } % or maybe a chardef
-
-\installmathfencepair \{ \Lbrace \} \Rbrace
-\installmathfencepair \[ \Lbracket \] \Rbracket
-\installmathfencepair \( \Lparenthesis \) \Rparenthesis
-\installmathfencepair \< \Langle \> \Rangle
-\installmathfencepair \| \Lbar \| \Rbar
-
-\popoverloadmode
-
-%D As we have overloaded \type {\left} and \type {\right} we also need a more
-%D clever version of the following:
-
-% methods:
-%
-% 1: none
-% 2: lua
-% 3: tex
-
-% variants:
-%
-% 1: step 1
-% 2: step 2
-% 3: htdp * 1.33^n
-% 4: size * 1.33^n
-
-\setnewconstant\bigmathdelimitermethod \plusone
-\setnewconstant\bigmathdelimitervariant\plusthree
-
-\protected\def\plainbigdelimiters % traditional method
- {\bigmathdelimitermethod\plustwo}
-
-\plainbigdelimiters % is default for the moment but not so nice
-
-% \setconstant\bigmathdelimitermethod\plusone
-
-\installcorenamespace{mathbig}
-
-\setvalue{\??mathbig1}{0.85}
-\setvalue{\??mathbig2}{1.15}
-\setvalue{\??mathbig3}{1.45}
-\setvalue{\??mathbig4}{1.75}
-
-\protected\def\choosemathbig#1#2% so we accept \big{||} as well
- {{\naturalhbox\bgroup
- \startimath
- \ifcase\bigmathdelimitermethod
- \math_fenced_step#2\relax
- \or
- \math_fenced_force_size\bigmathdelimitervariant{#1}\relax
- \math_fenced_step#2\relax
- \else
- \math_fenced_step#2{\vpack to\csname\??mathbig#1\endcsname\bodyfontsize{}}%
- \fi
- \nulldelimiterspace\zeropoint\relax
- \mathsurround\zeropoint
- \stopimath
- \egroup}}
-
-% needs testing:
-%
-% \protected\def\choosemathbig#1#2% so we accept \big{||} as well
-% {{\naturalhbox\bgroup
-% \startimath
-% \ifcase\bigmathdelimitermethod
-% \Uvextensible#2\relax
-% \or
-% \math_fenced_force_size\bigmathdelimitervariant{#1}\relax
-% \Uvextensible#2\relax
-% \else
-% \scratchdimen.5\dimexpr\csname\??mathbig\number#1\endcsname\bodyfontsize+1.1\exheight\relax
-% \Uvextensible\s!axis \s!depth \scratchdimen \s!height \scratchdimen #2\relax
-% \fi
-% \nulldelimiterspace\zeropoint\relax
-% \mathsurround\zeropoint
-% \stopimath
-% \egroup}}
-
-\def\math_fenced_step#1#2%
- {\setfalse\c_math_fenced_unknown
- \setfalse\c_math_fenced_done
- \left#1\relax
- \ifconditional\c_math_fenced_done
- #2%
- \right.\relax
- \else
- \left.\relax
- #2%
- \setfalse\c_math_fenced_done
- \right#1\relax
- \ifconditional\c_math_fenced_done
- \else
- \right.\relax
- \fi
- \fi}
-
-\protected\def\mathdelimiterstep#1#2%
- {\begingroup
- \math_fenced_force_size\plusone{#1}%
- \math_fenced_step#2\relax
- \endgroup}
-
-\definemathcommand [big] {\choosemathbig1}
-\definemathcommand [Big] {\choosemathbig2}
-\definemathcommand [bigg] {\choosemathbig3}
-\definemathcommand [Bigg] {\choosemathbig4}
-
-\definemathcommand [bigl] [open] [one] {\big}
-\definemathcommand [bigm] [rel] [one] {\big}
-\definemathcommand [bigr] [close] [one] {\big}
-\definemathcommand [Bigl] [open] [one] {\Big}
-\definemathcommand [Bigm] [rel] [one] {\Big}
-\definemathcommand [Bigr] [close] [one] {\Big}
-\definemathcommand [biggl] [open] [one] {\bigg}
-\definemathcommand [biggm] [rel] [one] {\bigg}
-\definemathcommand [biggr] [close] [one] {\bigg}
-\definemathcommand [Biggl] [open] [one] {\Bigg}
-\definemathcommand [Biggm] [rel] [one] {\Bigg}
-\definemathcommand [Biggr] [close] [one] {\Bigg}
-
-% \definemathfence [integral] [\c!left="222B]
-%
-% \protected\def\Lintegral {\math_fenced_fenced_start{integral}}
-% \protected\def\Rintegral {\math_fenced_fenced_stop {integral}}
-%
-% \installmathfencepair \lintegral \Lintegral \rintegral \Rintegral
-%
-% \left\lintegral
-% \vrule height 3cm depth 3cm
-% \right\rintegral
-
-%definemathfence [fancybracket] [bracket] [command=yes,color=red]
-
-% experimental accents:
-%
-% \definemathoverextensible [top] [hoed] ["FE302]
-% \definemathoverextensible [top] [slang] ["FE303]
-
-%D The nested fences recovery code is needed for mathml and the original
-%D code can still be found in the mkiv file.
-
-\definesystemattribute[mathautofence][public]
-
-\let\math_fences_normal_left \left
-\let\math_fences_normal_right \right
-\let\math_fences_normal_middle\middle
-\let\math_fences_normal_both \leftorright
-
-\protected\def\math_fences_auto_left #1{\c_attr_mathautofence\plusone #1\c_attr_mathautofence\attributeunsetvalue}
-\protected\def\math_fences_auto_right #1{\c_attr_mathautofence\plustwo #1\c_attr_mathautofence\attributeunsetvalue}
-\protected\def\math_fences_auto_middle#1{\c_attr_mathautofence\plusthree#1\c_attr_mathautofence\attributeunsetvalue}
-\protected\def\math_fences_auto_both #1{\c_attr_mathautofence\plusfour #1\c_attr_mathautofence\attributeunsetvalue}
-
-\permanent\let\autofenceopen \math_fences_auto_left % for testing
-\permanent\let\autofenceclose \math_fences_auto_right % for testing
-\permanent\let\autofenceleft \math_fences_auto_left % for testing
-\permanent\let\autofenceright \math_fences_auto_right % for testing
-\permanent\let\autofencemiddle\math_fences_auto_middle % for testing
-\permanent\let\autofenceboth \math_fences_auto_both % for testing
-
-% fences are used not that often (i.e. no performance issue) so we can use a state
-% instead of \let ... also some state variable can come in handy in the future
-
-\newconditional\c_math_fences_auto
-
-\protected\def\enableautofences
- {\clf_enableautofences
- \glet\clf_enableautofences\relax % onlyonce anyway
- \protected\gdef\enableautofences{\settrue\c_math_fences_auto}%
- \enableautofences}
-
-\protected\def\disableautofences
- {\setfalse\c_math_fences_auto}
-
-\protected\def\math_fences_used_left
- {\ifconditional\c_math_fences_auto
- \expandafter\math_fences_auto_left
- \else
- \expandafter\math_fences_normal_left
- \fi}
-
-\protected\def\math_fences_used_right
- {\ifconditional\c_math_fences_auto
- \expandafter\math_fences_auto_right
- \else
- \expandafter\math_fences_normal_right
- \fi}
-
-\protected\def\math_fences_used_middle
- {\ifconditional\c_math_fences_auto
- \expandafter\math_fences_auto_middle
- \else
- \expandafter\math_fences_normal_middle
- \fi}
-
-\protected\def\math_fences_used_both
- {\ifconditional\c_math_fences_auto
- \expandafter\math_fences_auto_both
- \else
- \expandafter\math_fences_normal_both
- \fi}
-
-\permanent\let\left \math_fences_used_left
-\permanent\let\right \math_fences_used_right
-\permanent\let\middle \math_fences_used_middle
-\permanent\let\leftorright\math_fences_used_both
-
-% wrappers
-
-\protected\def\startcheckedfences
- {\begingroup
- \enableautofences}
-
-\protected\def\stopcheckedfences
- {\endgroup}
-
-% \appendtoks
- % maybe: safeguard against overloading
- %
- % \let\left \math_fences_used_left
- % \let\right \math_fences_used_right
- % \let\middle \math_fences_used_middle
- % \let\leftorright\math_fences_used_both
-% \to \everymathematics
-
-\appendtoks
- \ifempty\currentmathfence
- \doifelse{\mathfenceparameter\c!state}\v!auto\enableautofences\disableautofences
- \fi
-\to \everysetupmathfence
-
-\newconstant\c_math_fences_delimiters_mode \c_math_fences_delimiters_mode"16 % \numexpr"02+"04+"10\relax
-
-%unexpanded\def\enableautofencemode {\mathdelimitersmode\plussix} % the shift (1) is too fragile
-\protected\def\enableautofencemode {\mathdelimitersmode\c_math_fences_delimiters_mode}
-
-\protected\def\disableautofencemode{\mathdelimitersmode\zerocount}
-
-\appendtoks
- \ifempty\currentmathfence
- \doifelse{\mathfenceparameter\c!method}\v!auto\enableautofencemode\disableautofencemode
- \fi
-\to \everysetupmathfence
-
-% some day default: \setupmathfences[\c!state=\v!auto]
-
-%D The next characters were used for constructing nicer extensibles but
-%D nowadays we have real characters.
-
-\Umathchardef\braceld\zerocount \defaultmathfamily "FF07A
-\Umathchardef\bracerd\zerocount \defaultmathfamily "FF07B
-\Umathchardef\bracelu\zerocount \defaultmathfamily "FF07C
-\Umathchardef\braceru\zerocount \defaultmathfamily "FF07D
-
-\protect