diff options
Diffstat (limited to 'tex/context/base/mkiv/strc-mat.mkiv')
-rw-r--r-- | tex/context/base/mkiv/strc-mat.mkiv | 75 |
1 files changed, 47 insertions, 28 deletions
diff --git a/tex/context/base/mkiv/strc-mat.mkiv b/tex/context/base/mkiv/strc-mat.mkiv index c6b277991..775d2aca1 100644 --- a/tex/context/base/mkiv/strc-mat.mkiv +++ b/tex/context/base/mkiv/strc-mat.mkiv @@ -566,7 +566,7 @@ \newconstant\c_strc_math_vertical % experiment \c_strc_formulas_mode \plustwo % 0=native 1=simple (old) 2=align (new) -\c_strc_formulas_space_model\plusthree % replaces \plusone +\c_strc_formulas_space_model\plusthree % replaces \plusone, we might use \plusfour in the future \newconditional\c_strc_formulas_tight @@ -641,33 +641,6 @@ \directvspacing\p_spaceafter \fi} -% \def\strc_math_obey_depth -% {\ifvmode\ifdim\prevdepth<\zeropoint\else\ifdim\prevdepth<\strutdp -% % maybe add a tracing option here -% \ifgridsnapping -% \directvspacing\v!depth -% \else -% \kern\dimexpr\strutdp-\prevdepth\relax -% \prevdepth\strutdp -% \fi -% \fi\fi\fi} -% -% \setvalue{\??mathdisplayspacemodel\v!before:3}% -% {% not ok, try \stopformula\par\startformula vs \stopformula\startformula -% \ifdim\lastskip>\zeropoint -% % bah -% \else -% \strc_math_obey_depth % somehow \fakenextstrutline doesn't work here -% \nointerlineskip -% \fi -% \ifx\p_spacebefore\v!none -% % nothing -% \else\ifx\p_spacebefore\empty -% \directvspacing\currentvspacing -% \else -% \directvspacing\p_spacebefore -% \fi\fi} - \setvalue{\??mathdisplayspacemodel\v!before:3}% {% not ok, try \stopformula\par\startformula vs \stopformula\startformula \let\m_spacebefore\empty @@ -714,6 +687,49 @@ \directvspacing\p_spaceafter \fi\fi} +\newconditional\c_math_model_four_indeed + +\setvalue{\??mathdisplayspacemodel\v!before:4}% + {% not ok, try \stopformula\par\startformula vs \stopformula\startformula + \ifvmode + \ifinner + \csname\??mathdisplayspacemodel\v!before:3\endcsname + \else + \settrue\c_math_model_four_indeed + \forcestrutdepth + \nointerlineskip + \ifx\p_spacebefore\v!none + % nothing + \else\ifx\p_spacebefore\empty + \directvspacing\currentvspacing + \else + \directvspacing{\p_spacebefore,\the\scratchdimen}% + \fi\fi + \fi + \else + \csname\??mathdisplayspacemodel\v!before:3\endcsname + \fi} + +\setvalue{\??mathdisplayspacemodel\v!after:4}% + {\ifconditional\c_math_model_four_indeed + \setfalse\c_math_model_four_indeed + \forcestrutdepth + \else + \prevdepth\strutdp % \directvspacing\v!depth + \fi + \ifx\p_spaceafter\v!none + % nothing + \else\ifx\p_spaceafter\empty + \directvspacing\currentvspacing + \else + \directvspacing\p_spaceafter + \fi\fi} + +\unexpanded\def\setdisplaymathspacemodel[#1]% + {\ifcsname\??mathdisplayspacemodel\v!before:\number#1\endcsname + \c_strc_formulas_space_model#1\relax + \fi} + % \newtoks\everybeforedisplay % \appendtoks\page_sides_check_floats_indeed\to\everybeforedisplay @@ -785,6 +801,9 @@ {\d_strc_formulas_display_skip_left \zeropoint \d_strc_formulas_display_skip_right\zeropoint} +\setvalue{\??formulaoption\v!depth}% + {\c_strc_formulas_space_model\plusfour} + \setvalue{\??formulaoption\v!line}% {\ifgridsnapping \setformulaparameter\c!grid{\v!math:\v!line}% |