summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/math-ini.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/math-ini.mkxl')
-rw-r--r--tex/context/base/mkxl/math-ini.mkxl41
1 files changed, 41 insertions, 0 deletions
diff --git a/tex/context/base/mkxl/math-ini.mkxl b/tex/context/base/mkxl/math-ini.mkxl
index b8c69b78c..e269ed535 100644
--- a/tex/context/base/mkxl/math-ini.mkxl
+++ b/tex/context/base/mkxl/math-ini.mkxl
@@ -577,6 +577,7 @@
% +\checkligatureclassoptioncode
+\checkkernpairclassoptioncode
% +\flattenclassoptioncode
+ +\obeynestingclassoptioncode
\relax
\setmathoptions\mathrelationcode\numexpr
@@ -586,6 +587,7 @@
+\checkkernpairclassoptioncode
% +\flattenclassoptioncode
% +\omitpenaltyclassoptioncode
+ +\obeynestingclassoptioncode
\relax
\setmathoptions\mathopencode\numexpr
@@ -594,6 +596,7 @@
% +\openfenceclassoptioncode
% +\checkligatureclassoptioncode
+\checkkernpairclassoptioncode
+ +\pushnestingclassoptioncode
\relax
\setmathoptions\mathclosecode\numexpr
@@ -603,6 +606,7 @@
% +\checkligatureclassoptioncode
+\checkkernpairclassoptioncode
+\raiseprimeclassoptioncode
+ +\popnestingclassoptioncode
\relax
\setmathoptions\mathpunctuationcode\numexpr
@@ -612,6 +616,7 @@
% +\flattenclassoptioncode
+\checkkernpairclassoptioncode
+\removeitaliccorrectionclassoptioncode
+ +\obeynestingclassoptioncode
\relax
\setmathoptions\mathvariablecode\numexpr
@@ -4666,6 +4671,42 @@
\permanent\protected\def\mathscriptbelow{\math_axis_inject\plustwo\plusone}
\permanent\protected\def\mathscriptontop{\math_axis_inject\plustwo\plustwo}
+%D \macros{kt}
+%D
+%D Bonus (keep together):
+%D
+%D \startbuffer
+%D test $a + b + c + d + x + x + e + f + g = h$ test
+%D test $a + b + c + \keeptogether{\red d + x + x + e + f} + g = h$ test
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startlines \getbuffer \stoplines
+
+\mathinlinepenaltyfactor = 1500 % a reasonable default
+\mathdisplaypenaltyfactor = 1000
+
+\permanent\tolerant\protected\def\definemathnesting[#1]#*[#2]#*[#3]%
+ {\frozen\protected\edefcsname#1\endcsname{\math_nesting{#2}{#3}}}
+
+\protected\def\math_nesting#1#2%
+ {\groupedcommand
+ {\mathboundary\plustwo
+ \ifconditional\indisplaymath
+ \ifchknum#2\or#2\else\mathdisplaypenaltyfactor\fi
+ \else
+ \ifchknum#1\or#1\else\mathinlinepenaltyfactor\fi
+ \fi
+ \relax}%
+ {\mathboundary\plusone}}
+
+\permanent\tolerant\protected\def\mathnesting[#1]#*[#2]%
+ {\math_nesting{#1}{#2}}
+
+\definemathnesting[mathtogether][1500][1000]
+\definemathnesting[mathloose] [500][1000]
+
\protect \endinput
% % not used (yet)