summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/math-frc.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/math-frc.mkxl')
-rw-r--r--tex/context/base/mkiv/math-frc.mkxl833
1 files changed, 0 insertions, 833 deletions
diff --git a/tex/context/base/mkiv/math-frc.mkxl b/tex/context/base/mkiv/math-frc.mkxl
deleted file mode 100644
index b232868cd..000000000
--- a/tex/context/base/mkiv/math-frc.mkxl
+++ /dev/null
@@ -1,833 +0,0 @@
-%D \module
-%D [ file=math-frc,
-%D version=2013.04.06, % 2007.07.19,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Fractions,
-%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 / Fractions}
-
-\unprotect
-
-%D I need to check it all again as there was a bug in luatex with dimensions that could
-%D resulted in side effects that made me mess with spacing.
-
-\permanent\protected\def\topstrut{\vrule\s!width\zeropoint\s!height\strutht\s!depth\zeropoint\relax}
-\permanent\protected\def\botstrut{\vrule\s!width\zeropoint\s!height\zeropoint\s!depth\strutdp\relax}
-
-\permanent\protected\def\mathtopstrut{\setbox\scratchbox\mathstylehbox{(}\vrule\s!width\zeropoint\s!height\ht\scratchbox\s!depth\zeropoint\relax}
-\permanent\protected\def\mathbotstrut{\setbox\scratchbox\mathstylehbox{(}\vrule\s!width\zeropoint\s!height\zeropoint\s!depth\dp\scratchbox\relax}
-
-%D This module is reimplemented in \MKIV\ style.
-
-\registerctxluafile{math-frc}{}
-
-%D \macros
-%D {frac, xfrac, xxfrac}
-%D
-%D This is another one Tobias asked for. It replaces the primitive \type
-%D {\over}. We also take the opportunity to handle math style restoring,
-%D which makes sure units and chemicals come out ok. The \type {\frac}
-%D macro kind of replaces the awkward \type {\over} primitive. Say that
-%D we have the following formulas:
-%D
-%D \startbuffer[sample]
-%D test $\frac {1}{2}$ test $$1 + \frac {1}{2} = 1.5$$
-%D test $\xfrac {1}{2}$ test $$1 + \xfrac {1}{2} = 1.5$$
-%D test $\xxfrac{1}{2}$ test $$1 + \xxfrac{1}{2} = 1.5$$
-%D \stopbuffer
-%D
-%D \typebuffer[sample]
-%D
-%D With the most straightforward definitions, we get:
-%D
-%D \startbuffer[code]
-%D \def\dofrac#1#2#3{\relax\mathematics{{{#1{#2}}\over{#1{#3}}}}}
-%D
-%D \def\frac {\dofrac\mathstyle}
-%D \def\xfrac {\dofrac\scriptstyle}
-%D \def\xxfrac{\dofrac\scriptscriptstyle}
-%D \stopbuffer
-%D
-%D \typebuffer[code] \getbuffer[code,sample]
-%D
-%D Since this does not work well, we can try:
-%D
-%D \startbuffer[code]
-%D \def\xfrac #1#2{\hbox{$\dofrac\scriptstyle {#1}{#2}$}}
-%D \def\xxfrac#1#2{\hbox{$\dofrac\scriptscriptstyle{#1}{#2}$}}
-%D \stopbuffer
-%D
-%D \typebuffer[code] \getbuffer[code,sample]
-%D
-%D This for sure looks better than:
-%D
-%D \startbuffer[code]
-%D \def\xfrac #1#2{{\scriptstyle \dofrac\relax{#1}{#2}}}
-%D \def\xxfrac#1#2{{\scriptscriptstyle\dofrac\relax{#1}{#2}}}
-%D \stopbuffer
-%D
-%D \typebuffer[code] \getbuffer[code,sample]
-%D
-%D So we stick to the next definitions (watch the local overloading of
-%D \type {\xfrac}).
-%D
-%D In the meantime, in \LUATEX, we have better control over styles so the
-%D following macros are different from the \MKII\ ones.
-
-% obsolete, is now c!mathstyle
-%
-% 0=auto, 1=displaystyle, 2=textstyle, 3=scriptstyle, 4=scriptscriptstyle, 5=mathstyle
-%
-% $\mathfracmode0 \frac{1}{2}$
-% $\mathfracmode1 \frac{1}{2}$
-% $\mathfracmode2 \frac{1}{2}$
-% $\mathfracmode3 \frac{1}{2}$
-% $\mathfracmode4 \frac{1}{2}$
-% $\mathfracmode5 \frac{1}{2}$
-%
-% we keep the constant for a while
-
-\setnewconstant\mathfracmode\zerocount
-
-\installcorenamespace{mathfractions}
-\installcorenamespace{mathfractionstyle}
-\installcorenamespace{mathfractionalternative}
-
-\installcommandhandler \??mathfractions {mathfraction} \??mathfractions
-
-\aliased\let\setupmathfractions\setupmathfraction
-
-% color only applies to rule, use regular color for rest
-
-\setupmathfractions
- [\c!mathstyle=,
- \c!alternative=\v!inner,
- \c!margin=\zeropoint,
- \c!rulethickness=.25\exheight,
- \c!left=0x2E,
- \c!right=0x2E,
- \c!strut=\v!yes,
- \c!topdistance=,
- \c!bottomdistance=,
- \c!rule=\v!auto]
-
-\appendtoks
- \instance\setuevalue{\currentmathfraction}{\math_frac{\currentmathfraction}}%
-\to \everydefinemathfraction
-
-% Sometimes users want control over the distances:
-
-\let\math_fraction_set_distance\relax
-
-\appendtoks
- \math_fraction_set_distance
-\to \everymathematics
-
-% why only displaystyle .. a bit weak
-
-\protected\def\math_fraction_set_distance_top
- {\Umathfractionnumup \displaystyle\m_math_fraction_distance_top
- \relax}
-
-\protected\def\math_fraction_set_distance_bot
- {\Umathfractiondenomdown\displaystyle\m_math_fraction_distance_bot
- \relax}
-
-\protected\def\math_fraction_set_distance_all
- {\Umathfractionnumup \displaystyle\m_math_fraction_distance_top
- \Umathfractiondenomdown\displaystyle\m_math_fraction_distance_bot
- \relax}
-
-\appendtoks
- \ifempty\currentmathfraction
- \edef\m_math_fraction_distance_top{\mathfractionparameter\c!topdistance}%
- \edef\m_math_fraction_distance_bot{\mathfractionparameter\c!bottomdistance}%
- \ifempty\m_math_fraction_distance_top
- \ifempty\m_math_fraction_distance_bot
- \let\math_fraction_set_distance\relax
- \else
- \let\math_fraction_set_distance\math_fraction_set_distance_bot
- \fi
- \else
- \ifempty\m_math_fraction_distance_bot
- \let\math_fraction_set_distance\math_fraction_set_distance_top
- \else
- \let\math_fraction_set_distance\math_fraction_set_distance_all
- \fi
- \fi
- \fi
-\to \everysetupmathfraction
-
-% So far for control.
-
-\installcorenamespace{mathfractionstrut}
-
-\def\math_frac_no_strut
- {\enforced\let\m_fractions_strut_top\relax
- \enforced\let\m_fractions_strut_bot\relax}
-
-\setvalue{\??mathfractionstrut\v!yes}%
- {\enforced\let\m_fractions_strut_top\mathstrut
- \enforced\let\m_fractions_strut_bot\mathstrut}
-
-\setvalue{\??mathfractionstrut\v!math}%
- {\enforced\let\m_fractions_strut_top\mathstrut
- \enforced\let\m_fractions_strut_bot\mathstrut}
-
-\letvalue{\??mathfractionstrut\v!no}\math_frac_no_strut
-
-\setvalue{\??mathfractionstrut\v!tight}%
- {\enforced\let\m_fractions_strut_top\mathbotstrut % indeed swapped name
- \enforced\let\m_fractions_strut_bot\mathtopstrut} % indeed swapped name
-
-\math_frac_no_strut
-
-\newdimen\d_math_fraction_margin
-
-\protected\def\math_frac#1%
- {\begingroup
- \edef\currentmathfraction{#1}%
- %
- \edef\p_math_fraction_fences{\mathfractionparameter\c!fences}%
- \ifempty\p_math_fraction_fences \else
- \math_fenced_fenced_start\p_math_fraction_fences
- \fi
- %
- \d_math_fraction_margin\mathfractionparameter\c!margin
- %
- \edef\p_math_fractions_color{\mathfractionparameter\c!color}%
- %
- \edef\p_math_fractions_strut{\mathfractionparameter\c!strut}%
- \ifcsname\??mathfractionstrut\p_math_fractions_strut\endcsname
- \lastnamedcs
- \else
- \math_frac_no_strut
- \fi
- %
- \ifempty\p_math_fractions_color
- \expandafter\math_frac_normal
- \else
- \expandafter\math_frac_colored
- \fi}
-
-\protected\def\math_frac_wrapup
- {\ifempty\p_math_fraction_fences \else
- \math_fenced_fenced_stop\p_math_fraction_fences
- \fi
- \endgroup}
-
-\protected\def\math_frac_colored#1#2%
- {\savecolor
- \colo_helpers_activate\p_math_fractions_color
- \math_frac_normal{\restorecolor#1}{\restorecolor#2}}
-
-\protected\def\math_frac_normal
- {\expandnamespaceparameter\??mathfractionalternative\mathfractionparameter\c!alternative\v!inner}
-
-% we use utfchar anyway so we can as well do all at the lua end
-
-\def\math_frac_no_delim{0x2E}
-
-\def\math_frac_command
- {\clf_mathfraction
- {\mathfractionparameter\c!rule}%
- \ifempty\p_math_fraction_fences
- \mathfractionparameter\c!left \space
- \mathfractionparameter\c!right\space
- \else
- \math_frac_no_delim\space
- \math_frac_no_delim\space
- \fi
- \dimexpr\mathfractionparameter\c!rulethickness\relax
- \relax}
-
-% Having a \withmarginornot{#1}{#2} makes not much sense nor do 4 tests or 4 redundant
-% kerns (longer node lists plus possible interference). A split in normal and margin
-% also makes testing easier. When left and right margins are needed we might merge the
-% variants again. After all, these are not real installers.
-
-% the denominator is in cramped!
-
-\setvalue{\??mathfractionalternative\v!inner}%
- {\ifcase\d_math_fraction_margin
- \expandafter\math_fraction_inner_normal
- \else
- \expandafter\math_fraction_inner_margin
- \fi}
-
-\setvalue{\??mathfractionalternative\v!outer}%
- {\ifcase\d_math_fraction_margin
- \expandafter\math_fraction_outer_normal
- \else
- \expandafter\math_fraction_outer_margin
- \fi}
-
-\setvalue{\??mathfractionalternative\v!both}%
- {\ifcase\d_math_fraction_margin
- \expandafter\math_fraction_both_normal
- \else
- \expandafter\math_fraction_both_margin
- \fi}
-
-% todo: store first state and reuse second time
-
-% \def\math_fraction_inner_normal#1#2%
-% {\Ustack{%
-% {%
-% {\usemathstyleparameter\mathfractionparameter{\m_fractions_strut_top#1}}%
-% \math_frac_command
-% {\usemathstyleparameter\mathfractionparameter{\m_fractions_strut_bot#2}}%
-% }%
-% }%
-% \math_frac_wrapup}
-%
-% \def\math_fraction_outer_normal#1#2%
-% {\Ustack{%
-% \usemathstyleparameter\mathfractionparameter
-% {%
-% {\m_fractions_strut_top#1}%
-% \math_frac_command
-% {\m_fractions_strut_bot#2}%
-% }%
-% }%
-% \math_frac_wrapup}
-%
-% \def\math_fraction_both_normal#1#2%
-% {\Ustack{%
-% \usemathstyleparameter\mathfractionparameter
-% {%
-% {\usemathstyleparameter\mathfractionparameter\m_fractions_strut_top#1}%
-% \math_frac_command
-% {\usemathstyleparameter\mathfractionparameter\m_fractions_strut_bot#2}%
-% }%
-% }%
-% \math_frac_wrapup}
-%
-% \def\math_fraction_inner_margin#1#2%
-% {\Ustack{%
-% {%
-% {\kern\d_math_fraction_margin
-% \usemathstyleparameter\mathfractionparameter{\m_fractions_strut_top#1}%
-% \kern\d_math_fraction_margin}%
-% \math_frac_command
-% {\kern\d_math_fraction_margin
-% \usemathstyleparameter\mathfractionparameter{\m_fractions_strut_bot#2}%
-% \kern\d_math_fraction_margin}%
-% }%
-% }%
-% \math_frac_wrapup}
-%
-% \def\math_fraction_outer_margin#1#2%
-% {\Ustack{%
-% \usemathstyleparameter\mathfractionparameter
-% {%
-% {\kern\d_math_fraction_margin
-% \m_fractions_strut_top#1%
-% \kern\d_math_fraction_margin}%
-% \math_frac_command
-% {\kern\d_math_fraction_margin
-% \m_fractions_strut_bot#2%
-% \kern\d_math_fraction_margin}%
-% }%
-% }%
-% \math_frac_wrapup}
-%
-% \def\math_fraction_both_margin#1#2%
-% {\Ustack{%
-% \usemathstyleparameter\mathfractionparameter
-% {%
-% {\kern\d_math_fraction_margin
-% \usemathstyleparameter\mathfractionparameter\m_fractions_strut_top#1%
-% \kern\d_math_fraction_margin}%
-% \math_frac_command
-% {\kern\d_math_fraction_margin
-% \usemathstyleparameter\mathfractionparameter\m_fractions_strut_bot#2%
-% \kern\d_math_fraction_margin}%
-% }%
-% }%
-% \math_frac_wrapup}
-
-\def\math_frac_command_u
- {\clf_umathfraction
- {\mathfractionparameter\c!rule}%
- \ifx\p_math_fraction_fences\empty
- \mathfractionparameter\c!left \space
- \mathfractionparameter\c!right\space
- \else
- \math_frac_no_delim\space
- \math_frac_no_delim\space
- \fi
- \dimexpr\mathfractionparameter\c!rulethickness\relax
- \relax}
-
-\def\math_fraction_inner_normal#1#2%
- {\Ustack{% forces num style
- \math_frac_command_u
- {\usemathstyleparameter\mathfractionparameter{\m_fractions_strut_top#1}}%
- {\usemathstyleparameter\mathfractionparameter{\m_fractions_strut_bot#2}}%
- }%
- \math_frac_wrapup}
-
-\def\math_fraction_outer_normal#1#2%
- {\Ustack{% forces num style
- \usemathstyleparameter\mathfractionparameter
- \math_frac_command_u
- {\m_fractions_strut_top#1}%
- {\m_fractions_strut_bot#2}%
- }%
- \math_frac_wrapup}
-
-\def\math_fraction_both_normal#1#2%
- {\Ustack{% forces num style
- \usemathstyleparameter\mathfractionparameter
- \math_frac_command_u
- {\usemathstyleparameter\mathfractionparameter\m_fractions_strut_top#1}%
- {\usemathstyleparameter\mathfractionparameter\m_fractions_strut_bot#2}%
- }%
- \math_frac_wrapup}
-
-\def\math_fraction_inner_margin#1#2%
- {\Ustack{%
- {%
- \math_frac_command_u
- {\kern\d_math_fraction_margin
- \usemathstyleparameter\mathfractionparameter{\m_fractions_strut_top#1}%
- \kern\d_math_fraction_margin}%
- {\kern\d_math_fraction_margin
- \usemathstyleparameter\mathfractionparameter{\m_fractions_strut_bot#2}%
- \kern\d_math_fraction_margin}%
- }%
- }%
- \math_frac_wrapup}
-
-\def\math_fraction_outer_margin#1#2%
- {\Ustack{%
- \usemathstyleparameter\mathfractionparameter
- {%
- \math_frac_command_u
- {\kern\d_math_fraction_margin
- \m_fractions_strut_top#1%
- \kern\d_math_fraction_margin}%
- {\kern\d_math_fraction_margin
- \m_fractions_strut_bot#2%
- \kern\d_math_fraction_margin}%
- }%
- }%
- \math_frac_wrapup}
-
-\def\math_fraction_both_margin#1#2%
- {\Ustack{%
- \usemathstyleparameter\mathfractionparameter
- {%
- \math_frac_command_u
- {\kern\d_math_fraction_margin
- \usemathstyleparameter\mathfractionparameter\m_fractions_strut_top#1%
- \kern\d_math_fraction_margin}%
- {\kern\d_math_fraction_margin
- \usemathstyleparameter\mathfractionparameter\m_fractions_strut_bot#2%
- \kern\d_math_fraction_margin}%
- }%
- }%
- \math_frac_wrapup}
-
-\definemathfraction[xfrac] [\c!alternative=\v!inner,\c!mathstyle=\s!script]
-\definemathfraction[xxfrac][\c!alternative=\v!inner,\c!mathstyle=\s!scriptscript]
-
-\let\normalxfrac\xfrac
-
-\protected\def\xfrac#1#2{\normalxfrac{\let\xfrac\xxfrac#1}{\let\xfrac\xxfrac#2}}
-
-%D Spacing (sensitive for definition of \triggermathstyle:
-
-% \ifcase\contextlmtxmode
-
-\permanent\protected\def\nomathfractiongaps {\normalexpanded{\math_no_fraction_gaps \mathstyletrigger\mathstyle}} % maybe collect settings
-\permanent\protected\def\overlaymathfractiongaps{\normalexpanded{\math_overlay_fraction_gaps\mathstyletrigger\mathstyle}} % maybe collect settings
-
-\protected\def\math_no_fraction_gaps#1%
- {\Umathfractionnumup #1\zeropoint
- \Umathfractiondenomdown#1\zeropoint}
-
-\protected\def\math_overlay_fraction_gaps#1%
- {\Umathfractionnumup #1\zeropoint
- \Umathfractionnumvgap #1\zeropoint
- %Umathfractionrule #1\zeropoint
- \Umathfractiondenomvgap#1\zeropoint
- \Umathfractiondenomdown#1\zeropoint}
-
-% \else
-
-% \protected\def\math_no_fraction_gaps
-% {\Umathfractionnumup \mathstyle\zeropoint
-% \Umathfractiondenomdown\mathstyle\zeropoint}
-%
-% \protected\def\math_overlay_fraction_gaps
-% {\Umathfractionnumup \mathstyle\zeropoint
-% \Umathfractionnumvgap \mathstyle\zeropoint
-% %Umathfractionrule \mathstyle\zeropoint
-% \Umathfractiondenomvgap\mathstyle\zeropoint
-% \Umathfractiondenomdown\mathstyle\zeropoint}
-
-% \fi
-
-\installcorenamespace{mathfractiondistance}
-
-\letvalue{\??mathfractiondistance\v!none }\nomathfractiongaps
-\letvalue{\??mathfractiondistance\v!no }\nomathfractiongaps
-\letvalue{\??mathfractiondistance\v!overlay}\overlaymathfractiongaps
-
-\setupmathfractions
- [\c!distance=\v!none]
-
-\appendtoks
- \edef\p_distance{\rootmathfractionparameter\c!distance}%
- \ifempty\p_distance\else
- \ifcsname\??mathfractiondistance\p_distance\endcsname
- \lastnamedcs
- \fi
- \fi
-\to \everymathematics
-
-% theshold is new!
-
-\let\math_fraction_set_threshold_inline \relax
-\let\math_fraction_set_threshold_display\relax
-
-\appendtoks
- \math_fraction_set_threshold_inline
- \math_fraction_set_threshold_display
-\to \everymathematics
-
-\appendtoks
- \ifempty\currentmathfraction
- \edef\p_threshold{\mathfractionparameter\c!inlinethreshold}%
- \ifempty\p_threshold
- \let\math_fraction_set_threshold_inline\relax
- \orelse\ifx\p_threshold\v!auto
- \let\math_fraction_set_threshold_inline\relax
- \else
- \let\math_fraction_set_threshold_inline\math_fraction_set_theshold_inline
- \fi
- \edef\p_threshold{\mathfractionparameter\c!displaythreshold}%
- \ifempty\p_threshold
- \let\math_fraction_set_threshold_display\relax
- \orelse\ifx\p_threshold\v!auto
- \let\math_fraction_set_threshold_display\relax
- \else
- \let\math_fraction_set_threshold_display\math_fraction_set_theshold_display
- \fi
- \fi
-\to \everysetupmathfraction
-
-\def\math_fraction_set_theshold_inline
- {\edef\p_threshold{\mathfractionparameter\c!inlinethreshold}%
- \Umathfractiondelsize\textstyle \p_threshold\dimexpr\textface\relax
- \Umathfractiondelsize\scriptstyle \p_threshold\dimexpr\scriptface\relax
- \Umathfractiondelsize\scriptscriptstyle\p_threshold\dimexpr\scriptscriptface\relax}
-
-\def\math_fraction_set_theshold_display
- {\edef\p_threshold{\mathfractionparameter\c!displaythreshold}%
- \Umathfractiondelsize\displaystyle \p_threshold\dimexpr\textface\relax}
-
-%D \macros
-%D {dfrac, tfrac, frac, dbinom, tbinom, binom}
-%D
-%D \startbuffer
-%D $\dfrac {1}{2} \tfrac {1}{2} \frac {1}{2}$
-%D $\dbinom{1}{2} \tbinom{1}{2} \binom{1}{2}$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D \getbuffer
-
-% $$
-% {{a}\over{b}} +
-% {{a}\overwithdelims(){b}} +
-% {{a}\atopwithdelims(){b}} +
-% {{a}\abovewithdelims()\zeropoint{b}} +
-% \left({{a}\over{b}}\right)
-% $$
-
-% \dorecurse {10} { % weird
-% $$ {{a}\abovewithdelims()#1pt{b}} $$
-% }
-
-\definemathfraction[i:frac] [\c!alternative=\v!inner,\c!mathstyle=] % was script and then small but nothing needed
-\definemathfraction[i:tfrac][\c!alternative=\v!inner,\c!mathstyle=\s!text] % was script (before luatex fix)
-\definemathfraction[i:sfrac][\c!alternative=\v!inner,\c!mathstyle=\s!scriptscript]
-\definemathfraction[i:dfrac][\c!alternative=\v!inner,\c!mathstyle=\s!display]
-
-\definemathfraction[d:frac] [\c!alternative=\v!inner,\c!mathstyle=\s!cramped] % was cramped,text
-\definemathfraction[d:tfrac][\c!alternative=\v!both ,\c!mathstyle={\s!cramped,\s!text}] % was cramped,script (before luatex fix)
-\definemathfraction[d:sfrac][\c!alternative=\v!both ,\c!mathstyle={\s!cramped,\s!scriptscript}]
-\definemathfraction[d:dfrac][\c!alternative=\v!inner,\c!mathstyle=\s!display]
-
-%D \protected\def\ShowMathFractions#1#2%
-%D {\dontleavehmode
-%D \begingroup
-%D \showmathstruts
-%D \mathematics{x+\tfrac{#1}{#2}+1+\frac{#1}{#2}+2+\sfrac{#1}{#2}+g}%
-%D \endgroup}
-%D
-%D The default \type {tfrac}, \type {frac} and \type \sfrac} look like this:
-%D
-%D \blank
-%D \ShowMathFractions{a}{a}\par
-%D \ShowMathFractions{1}{x}\par
-%D \ShowMathFractions{a}{b}\par
-%D \ShowMathFractions{1}{b}\par
-%D \blank
-
-\permanent\protected\def\frac {\csname\inlineordisplaymath id:frac\endcsname}
-\permanent\protected\def\tfrac{\csname\inlineordisplaymath id:tfrac\endcsname}
-\permanent\protected\def\sfrac{\csname\inlineordisplaymath id:sfrac\endcsname}
-\permanent\protected\def\dfrac{\csname\inlineordisplaymath id:dfrac\endcsname}
-
-\definemathfraction[ams] [\c!strut=\v!no,\c!alternative=\v!outer]
-\definemathfraction[i:ams:frac][ams][\c!mathstyle={\s!cramped,\s!text}]
-\definemathfraction[d:ams:frac][ams][\c!mathstyle={\s!cramped,\s!display}]
-
-\permanent\protected\def\ctxfrac{\csname\inlineordisplaymath id:frac\endcsname}
-\permanent\protected\def\amsfrac{\csname\inlineordisplaymath id:ams:frac\endcsname}
-
-% \appendtoks
-% \doifelse{\mathfractionparameter\c!option}{ams}%
-% {\let\frac\amsfrac}%
-% {\let\frac\ctxfrac}%
-% \to \everysetupmathfraction
-
-\appendtoks
- \doifelse{\mathematicsparameter\c!fractions}{ams}%
- {\enforced\let\frac\amsfrac}%
- {\enforced\let\frac\ctxfrac}%
-\to \everysetupmathematics
-
-% \definemathfraction[ddfrac][\c!mathstyle=\s!display]
-% \definemathfraction[ttfrac][\c!mathstyle=\s!text]
-% \definemathfraction[ssfrac][\c!mathstyle=\s!script]
-
-% \protected\def\binom #1#2{{\Ustack {{#1}\normalabovewithdelims()\zeropoint{#2}}}}
-% \protected\def\dbinom#1#2{{\displaystyle{{#1}\normalabovewithdelims()\zeropoint{#2}}}}
-% \protected\def\tbinom#1#2{{\textstyle {{#1}\normalabovewithdelims()\zeropoint{#2}}}}
-
-\definemathfraction
- [binom]
- [\c!alternative=\v!outer,
- \c!rule=\v!no,
- \c!left=0x28,
- \c!right=0x29,
- \c!mathstyle=\s!auto]
-
-\definemathfraction
- [dbinom]
- [binom]
- [\c!mathstyle=\s!display]
-
-\definemathfraction
- [tbinom]
- [binom]
- [\c!mathstyle=\s!text]
-
-%D \macros
-%D {cfrac}
-%D
-%D \startbuffer
-%D $\cfrac{12}{3} \cfrac[l]{12}{3} \cfrac[c]{12}{3} \cfrac[r]{12}{3}$
-%D $\cfrac{1}{23} \cfrac[l]{1}{23} \cfrac[c]{1}{23} \cfrac[r]{1}{23}$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D Now we can align every combination we want:
-%D
-%D \startbuffer
-%D $\cfrac{12}{3} \cfrac[l]{12}{3} \cfrac[c]{12}{3} \cfrac[r]{12}{3}$
-%D $\cfrac{1}{23} \cfrac[l]{1}{23} \cfrac[c]{1}{23} \cfrac[r]{1}{23}$
-%D $\cfrac[cl]{12}{3} \cfrac[cc]{12}{3} \cfrac[cr]{12}{3}$
-%D $\cfrac[lc]{1}{23} \cfrac[cc]{1}{23} \cfrac[rc]{1}{23}$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-
-\permanent\protected\def\cfrac
- {\doifelsenextoptionalcs\math_cfrac_yes\math_cfrac_nop}
-
-\def\math_cfrac_nop {\math_cfrac_indeed[cc]}
-\def\math_cfrac_yes[#1]{\math_cfrac_indeed[#1cc]}
-
-\def\math_cfrac_indeed[#1#2#3]#4#5%
- {{\displaystyle
- \frac
- {\strut
- \ifx r#1\hfill\fi#4\ifx l#1\hfill\fi}%
- {\ifx r#2\hfill\fi#5\ifx l#2\hfill\fi}%
- \kern-\nulldelimiterspace}}
-
-%D \macros
-%D {splitfrac, splitdfrac}
-%D
-%D Occasionally one needs to typeset multi||line fractions.
-%D These commands use \tex{genfrac} to create such fractions.
-%D
-%D \startbuffer
-%D \startformula
-%D a=\frac{
-%D \splitfrac{xy + xy + xy + xy + xy}
-%D {+ xy + xy + xy + xy}
-%D }
-%D {z}
-%D =\frac{
-%D \splitdfrac{xy + xy + xy + xy + xy}
-%D {+ xy + xy + xy + xy}
-%D }
-%D {z}
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D These macros are based on Michael J.~Downes posting on
-%D comp.text.tex on 2001/12/06 but adapted a bit.
-
-\protected\def\splitfrac #1#2{{\textstyle {{\textstyle#1\quad\hfill}\normalabove\zeropoint{\textstyle\hfill\quad\mathstrut#2}}}}
-\protected\def\splitdfrac#1#2{{\displaystyle{{ #1\quad\hfill}\normalabove\zeropoint{ \hfill\quad\mathstrut#2}}}}
-
-%D For testing:
-
-% \protected\def\ShowMathFractions#1#2%
-% {\mathematics{x+\tfrac{#1}{#2}+1+\frac{#1}{#2}+2+\sfrac{#1}{#2}+g}}
-
-%D More fracking (for Alan):
-
-\protected\def\math_frac_colored_vulgar#1#2%
- {\savecolor
- \colo_helpers_activate\p_math_fractions_color
- {\restorecolor#1}\Uskewed/{\restorecolor#2}}
-
-\protected\def\math_frac_normal_vulgar#1#2%
- {{#1}\Uskewed/{#2}}
-
-\permanent\protected\def\vfrac#1#2%
- {\bgroup
- \edef\p_math_fractions_color{\namedmathfractionparameter\s!vfrac\c!color}%
- \ifempty\p_math_fractions_color
- \expandafter\math_frac_normal_vulgar
- \else
- \expandafter\math_frac_colored_vulgar
- \fi
- {#1}%
- {#2}%
- \egroup}
-
-\appendtoks
- \edef\p_hfactor{\namedmathfractionparameter\s!vfrac\c!hfactor}%
- \edef\p_vfactor{\namedmathfractionparameter\s!vfrac\c!vfactor}%
- \Umathskewedfractionhgap\textstyle \p_hfactor\fontemwidth \mathstylefont\textstyle
- \Umathskewedfractionhgap\scriptstyle \p_hfactor\fontemwidth \mathstylefont\scriptstyle
- \Umathskewedfractionhgap\scriptscriptstyle\p_hfactor\fontemwidth \mathstylefont\scriptscriptstyle
- \Umathskewedfractionvgap\textstyle \p_vfactor\fontexheight\mathstylefont\textstyle
- \Umathskewedfractionvgap\scriptstyle \p_vfactor\fontexheight\mathstylefont\scriptstyle
- \Umathskewedfractionvgap\scriptscriptstyle\p_vfactor\fontexheight\mathstylefont\scriptscriptstyle
-\to \everysetupmathfraction
-
-\setupmathfraction
- [\s!vfrac]
- [\c!hfactor=.2,
- \c!vfactor=.1]
-
-\protect \endinput
-
-% I have no clue what \mthfrac and \mthsqrt are supposed to do but
-% I guess that it can be done with tweaking luatex's math parameters.
-% Otherwise I'll write something from scratch.
-
-% \def\math_stylebuilders_frac#1#2#3#4#5#6#7%
-% {\begingroup
-% \mathsurround\zeropoint
-% \setbox0\hbox{$#1 #6$}%
-% \setbox2\hbox{$#1 #7$}%
-% \dimen0\wd\ifdim\wd2>\wd0 2\else 0\fi
-% \setbox4\hbox to \dimen0{\leaders\hbox{#4}\hss#5}%
-% \mathord{\vcenter{{\offinterlineskip
-% \hbox to \dimen0{\hss\box0\hss}%
-% \kern\ht4%
-% \hbox to \dimen0{\hss\copy4\hss}%
-% \kern\ht4%
-% \hbox to \dimen0{\hss\box2\hss}}}}%
-% \endgroup}
-%
-% \def\math_stylebuilders_sqrt#1#2#3#4#5%
-% {\begingroup
-% \mathsurround\zeropoint
-% \setbox0\hbox{$#1 #5$}%
-% \ht0\dimexpr1.05\ht0+\onepoint\relax
-% \dp0\dimexpr1.05\dp0+\onepoint\relax
-% \setbox4\hbox to \wd0{\mr#2\leaders\hbox{#3}\hfill#4}%
-% \delimitershortfall\zeropoint
-% \nulldelimiterspace\zeropoint
-% \setbox2\hbox{$\left\delimiter"0270370 \vrule \s!height\ht0 \s!depth \dp0 \s!width\zeropoint\right.$}% is this the right code point?
-% \mathord{\vcenter{\hbox{\copy2\rlap{\raise\dimexpr\ht2-\ht4\relax\copy4}\copy0}}}%
-% \endgroup}
-%
-% \def\mthfrac#1#2#3#4#5{\mathchoice
-% {\math_stylebuilders_frac\displaystyle \textface {#1}{#2}{#3}{#4}{#5}}%
-% {\math_stylebuilders_frac\textstyle \textface {#1}{#2}{#3}{#4}{#5}}%
-% {\math_stylebuilders_frac\scriptstyle \scriptface {#1}{#2}{#3}{#4}{#5}}%
-% {\math_stylebuilders_frac\scriptscriptstyle\scriptscriptface{#1}{#2}{#3}{#4}{#5}}}
-%
-% \def\mthsqrt#1#2#3{\mathchoice
-% {\math_stylebuilders_sqrt\displaystyle \textface{#1}{#2}{#3}}%
-% {\math_stylebuilders_sqrt\textstyle \textface{#1}{#2}{#3}}%
-% {\math_stylebuilders_sqrt\scriptstyle \textface{#1}{#2}{#3}}%
-% {\math_stylebuilders_sqrt\scriptscriptstyle\textface{#1}{#2}{#3}}}
-
-% \protected\def\mthfrac#1#2#3{[mthfrac: #1 #2 #3]}
-% \protected\def\mthsqrt#1#2#3{[mthsqrt: #1 #2 #3]}
-
-% used for prototyping \Uskewed
-%
-% \protected\def\skewedfractiona#1#2{%
-% \raise
-% \Umathskewedfractionvgap\textstyle
-% \hbox\bgroup
-% $\scriptstyle#1\hskip\dimexpr\Umathskewedfractionhgap\scriptstyle/2\relax$%
-% \egroup
-% \hbox to \zeropoint\bgroup
-% \hss$\textstyle/$\hss
-% \egroup
-% \lower
-% \Umathskewedfractionvgap\textstyle
-% \hbox\bgroup
-% $\hskip\dimexpr\Umathskewedfractionhgap\scriptstyle/2\relax\scriptstyle#2$%
-% \egroup
-% }
-%
-% \protected\def\skewedfractionb#1#2{%
-% \raise
-% \Umathskewedfractionvgap\textstyle
-% \hbox\bgroup
-% $\scriptstyle#1\hskip\dimexpr\Umathskewedfractionhgap\textstyle/2\relax$%
-% \egroup
-% \hbox to \zeropoint\bgroup
-% \hss$\textstyle/$\hss
-% \egroup
-% \lower
-% \Umathskewedfractionvgap\textstyle
-% \hbox\bgroup
-% $\hskip\dimexpr\Umathskewedfractionhgap\textstyle/2\relax\scriptstyle#2$%
-% \egroup
-% }
-%
-% $\skewedfractiona{1}{2}$
-% $\skewedfractionb{1}{2}$