summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/strc-mat.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/strc-mat.mkxl')
-rw-r--r--tex/context/base/mkiv/strc-mat.mkxl1308
1 files changed, 0 insertions, 1308 deletions
diff --git a/tex/context/base/mkiv/strc-mat.mkxl b/tex/context/base/mkiv/strc-mat.mkxl
deleted file mode 100644
index e72be7d3e..000000000
--- a/tex/context/base/mkiv/strc-mat.mkxl
+++ /dev/null
@@ -1,1308 +0,0 @@
-%D \module
-%D [ file=strc-mat,
-%D version=2008.10.20,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Math Numbering,
-%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 Structure Macros / Math Numbering}
-
-\registerctxluafile{strc-mat}{}
-
-% -- we have potential for captions
-% -- this module will use the commandhandler
-% -- key/value pairs will be added (I have no time now)
-
-\unprotect
-
-\setupformulas
- [%\c!way=,
- %\c!blockway=,
- %\c!sectionnumber=,
- %\c!conversion=\v!numbers,
- %\c!numberstyle=,
- %\c!numbercolor=,
- %\c!numbercommand=,
- %\c!margin=,
- %\c!align=,
- %\c!separator=,
- \c!grid=\v!math,
- \c!location=\v!right,
- \c!left=(,
- \c!right=),
- \c!expansion=\v!yes, % maybe automatically
- \c!spacebefore=\v!big,
- \c!spaceafter=\formulaparameter\c!spacebefore,
- \c!width=\hsize,
- \c!leftmargin=\zeropoint,
- \c!rightmargin=\zeropoint,
- \c!indentnext=\v!no,
- \c!alternative=\s!default,
- \c!strut=\v!no,
- \c!numberstrut=\v!yes, % \v!no \v!yes \v!always
- \c!distance=2\emwidth]
-
-\setupformulaframed
- [%c!location=<auto set>,
- %c!width=<auto set>,
- %c!align=<auto set>,
- \c!offset=.5\exheight]
-
-\ifdefined\matheqnogapstep
- % we're ok, now we have that quad in the distance which is
- % more consistent and not depending on the text font in math
- \matheqnogapstep\zerocount
-\else
- % we will keep this for a while
- \setupformulas[\c!distance=\emwidth]
-\fi
-
-% \ifdefined\mathdisplayskipmode
-% \mathdisplayskipmode\plustwo % only when not zero / needs adapted space handler
-% \fi
-
-% \mathdisplayskipmode\plusthree
-%
-% \hbox\bgroup
-% \setbox0\vbox\bgroup
-% xxxxxxxxx\par
-% \vskip-\baselineskip
-% $$a^2_2$$\par
-% xxxxxxxxx\par
-% \egroup
-% \box0
-% \vbox\bgroup
-% xxxxxxxxx\par
-% \vskip-\baselineskip
-% $$a^2$$\par
-% xxxxxxxxx\par
-% \egroup
-% \vbox\bgroup
-% xxxxxxxxx
-% \vskip-\baselineskip
-% $$a_2$$
-% xxxxxxxxx
-% \egroup
-% \egroup
-%
-% \hbox\bgroup
-% \setbox0\vbox\bgroup
-% xxxxxxxxx\par
-% \ctxlua{tex.prevdepth=-1000 *65536}
-% $$a^2_2$$\par
-% xxxxxxxxx\par
-% \egroup
-% \box0
-% \vbox\bgroup
-% xxxxxxxxx\par
-% \ctxlua{tex.prevdepth=-1000 *65536}
-% $$a^2$$\par
-% xxxxxxxxx\par
-% \egroup
-% \vbox\bgroup
-% xxxxxxxxx
-% \ctxlua{tex.prevdepth=-1000 *65536}
-% $$a_2$$
-% xxxxxxxxx
-% \egroup
-% \egroup
-
-\setupsubformulas % subformulas could be last in chain
- [\c!indentnext=\formulaparameter\c!indentnext]
-
-\definecounter % one ?
- [\v!formula]
-
-\defineconversionset
- [\v!formula]
- [numbers,characters] % no \v! ?
-
-\installcounterassociation{formula} \registerformulacounter\v!formula % currently we only have one
-
-\appendtoks
- \synchronizeformulacounters
-\to \everysetupformula
-
-% \appendtoks
-% \synchronizeformulacounters
-% \to \everydefineformula
-
-\setupformulas
- [\c!numberconversionset=\v!formula] % why forgotten
-
-\appendtoks
- \normalexpanded{\definelist[\currentformula]}% is expansion needed?
- \frozen\instance\setuevalue{\e!start\currentformula\v!formula}{\strc_formulas_start_formula{\currentformula}}%
- \frozen\instance\setuevalue{\e!stop \currentformula\v!formula}{\strc_formulas_stop_formula}%
-\to \everydefineformula
-
-\definelist[\v!formula]
-
-\permanent\setuvalue{\e!start\v!formula}{\strc_formulas_start_formula{}}
-\permanent\setuvalue{\e!stop \v!formula}{\strc_formulas_stop_formula}
-
-\let\strc_formulas_start_formula\relax % defined later
-\let\strc_formulas_stop_formula \relax % defined later
-
-\permanent\tolerant\protected\def\defineformulaalternative[#1]#*[#2]#*[#3]%
- {\setvalue{\e!start#1\v!formula}{#2}%
- \setvalue{\e!stop #1\v!formula}{#3}}
-
-% sp = single line paragraph sd = single line display
-% mp = multi line paragraph md = multy line display
-
-\defineformulaalternative[\s!default][\startdisplaymath][\stopdisplaymath]
-\defineformulaalternative[\s!single] [\startdisplaymath][\stopdisplaymath]
-\defineformulaalternative[\s!multi] [\startdisplaymath][\stopdisplaymath]
-
-\defineformula
- [sp]
- [\c!spacebefore=\v!none,
- \c!spaceafter=\v!none,
- \c!indentnext=\v!no,
- \c!alternative=\s!single]
-
-\defineformula
- [sd]
- [\c!spacebefore=\v!none,
- \c!spaceafter=\v!none,
- \c!indentnext=\v!yes,
- \c!alternative=\s!single]
-
-\defineformula
- [mp]
- [\c!indentnext=\v!no,
- \c!alternative=\s!multi]
-
-\defineformula
- [md]
- [\c!indentnext=\v!yes,
- \c!alternative=\s!multi]
-
-\newtoks\everyresetformulas
-
-\appendtoks
- \let\currentformula\empty % to be checked:
-\to \everyresetformulas
-
-% implementation
-
-\protected\def\strc_formulas_store_number#1#2#3#4#5% ref, todo:str, \sync % todo: title etc (like float)
- {\settrue\c_strc_formulas_handle_number
- \strc_counters_register_component
- {formula}%
- \setupcurrentformula \formulaparameter \detokenizedformulaparameter
- \relax \relax \relax
- [\c!name=\v!formula,\s!counter=\v!formula,%
- \s!hascaption=\v!yes,\s!hastitle=\v!yes,\s!hasnumber=\v!yes,%\s!haslevel=#6,%
- \c!reference=#1,\c!title=\namedformulaentry,\c!bookmark=]%
- [#2]%
- \glet\namedformulaentry\empty % \relax
- \glet#3\m_strc_counters_last_registered_index
- \glet#4\m_strc_counters_last_registered_synchronize
- \glet#5\m_strc_counters_last_registered_attribute}
-
-% modes: 0=unset, 1=forced, 2=none, 3=reference
-
-\newconstant\c_strc_formulas_place_number_mode
-\newconstant\c_strc_formulas_number_mode
-\newconstant\c_strc_formulas_sub_number_mode
-\newconstant\c_strc_formulas_nested_number_mode
-
-\appendtoks
- \c_strc_formulas_place_number_mode \zerocount
- \c_strc_formulas_number_mode \zerocount
- \c_strc_formulas_sub_number_mode \zerocount
- \c_strc_formulas_nested_number_mode\zerocount
-\to \everyresetformulas
-
-\newconditional\c_strc_formulas_handle_number
-\newconditional\c_strc_formulas_inside_place
-\newconditional\c_strc_formulas_inside_place_sub
-\newconditional\c_strc_formulas_inside_formulas
-\newconditional\c_strc_formulas_inside_formulas_sub
-
-\appendtoks
- \global\setfalse\c_strc_formulas_inside_place
- \global\setfalse\c_strc_formulas_inside_place_sub
-\to \everyresetformulas
-
-\def\strc_formulas_place_number_noneed
- {\doif{\formulaparameter\c!numberstrut}\v!always\strut}
-
-\def\strc_formulas_place_numbering % place formula
- {\settrue\c_strc_formulas_handle_number
- \strc_formulas_check_reference\c_strc_formulas_place_number_mode\currentplaceformulareference
- \ifnum\c_strc_formulas_place_number_mode=\plustwo
- \glet\strc_formulas_place_number\strc_formulas_place_number_noneed
- \else
- \glet\strc_formulas_place_number\strc_formulas_place_number_indeed
- \fi
- \glet\strc_formulas_place_number_nested\strc_formulas_place_number_nested_indeed}
-
-\def\strc_formulas_handle_number % formulas
- {\strc_formulas_check_reference\c_strc_formulas_number_mode\currentformulasreference}
-
-\def\strc_formulas_handle_sub_number_indeed % sub formulas
- {\strc_formulas_check_reference\c_strc_formulas_sub_number_mode\currentsubformulasreference
- \strc_counters_increment\v!formula
- \strc_formulas_store_number
- \currentsubformulasreference
- \empty
- \currentsubformulasnumber
- \currentsubformulassynchronize
- \currentsubformulasattribute}
-
-\def\strc_formulas_handle_sub_number % sub formulas
- {\iftrialtypesetting
- \strc_counters_save\v!formula
- \strc_formulas_handle_sub_number_indeed
- \strc_counters_restore\v!formula
- \else
- \strc_formulas_handle_sub_number_indeed
- \fi}
-
-\let\strc_formulas_reference_trace\relax
-\let\strc_formulas_reference_show \relax
-
-\permanent\protected\def\placecurrentformulanumber
- {\begingroup
- \rm % determines the distance and main font
- \edef\p_location{\formulaparameter\c!location}%
- \ifx\p_location\v!right
- \hskip\formulaparameter\c!distance
- \fi
- \begingroup
- \useformulastyleandcolor\c!numberstyle\c!numbercolor
- \formulaparameter\c!numbercommand
- {\edef\p_strut{\formulaparameter\c!numberstrut}%
- \ifx\p_strut\v!always
- \strut
- \orelse\ifx\p_strut\v!yes
- \strut
- \fi
- \formulaparameter\c!left
- \namedtaggedlabeltexts
- \t!formulalabel \v!formula
- \t!formulanumber\v!formula
- {\ignorespaces\strc_formulas_place_current_number\removeunwantedspaces}%
- \formulaparameter\c!right}%
- \endgroup
- \ifx\p_location\v!left
- \hskip\formulaparameter\c!distance
- \fi
- \endgroup}
-
-\protected\def\strc_formulas_place_current_number
- {\ifempty\namedformulaentry
- \strc_formulas_handle_current_references
- \labeltexts\currentformula{\convertedcounter[\v!formula][]}%
- \else
- \expandafter % hm, the next one reset \namedformulaentry
- \strc_formulas_handle_current_references
- \namedformulaentry
- \fi}
-
-\permanent\def\theformuladestinationattribute#1%
- {\iflocation\ifx#1\relax\orelse\ifempty#1\else
- \c_attr_destination#1%
- \glet#1\relax
- \fi\fi}
-
-\let\currentplaceformulaattribute\relax
-\let\currentformulaattribute \relax
-\let\currentsubformulaattribute \relax
-\let\currentformulasattribute \relax
-
-\let\currentplaceformulanumber\relax
-\let\currentformulanumber \relax
-\let\currentsubformulanumber \relax
-\let\currentformulasnumber \relax
-
-\mutable\let\currentformulasreference \empty
-\mutable\let\currentformulareference \empty
-\mutable\let\currentsubformulareference \empty
-\mutable\let\currentnestedformulareference\empty
-
-\appendtoks
- \glet\currentformulasreference \empty
- \glet\currentformulareference \empty
- \glet\currentsubformulareference \empty
- \glet\currentnestedformulareference\empty
-\to \everyresetformulas
-
-\mutable\let\currentformulassuffix \empty
-\mutable\let\currentformulasuffix \empty
-\mutable\let\currentsubformulasuffix \empty
-\mutable\let\currentnestedformulasuffix\empty
-
-\appendtoks
- \glet\currentformulassuffix \empty
- \glet\currentformulasuffix \empty
- \glet\currentsubformulasuffix \empty
- \glet\currentnestedformulasuffix\empty
-\to \everyresetformulas
-
-\let\currentplaceformulasynchronize\relax
-\let\currentformulasynchronize \relax
-\let\currentsubformulasynchronize \relax
-\let\currentformulassynchronize \relax
-
-\appendtoks
- \glet\currentplaceformulasynchronize \relax
- \glet\currentformulassynchronize \relax
- \glet\currentsubformulassynchronize \relax
- \glet\currentnestedformulasynchronize\relax
-\to \everyresetformulas
-
-% currently we do the number, some day we will do the (sub) formula
-
-\def\strc_formulas_handle_current_references
- {\strc_formulas_reference_show
- \ifnum\c_strc_formulas_place_number_mode=\plusthree
- \strc_formulas_store_number
- \currentplaceformulareference
- \empty
- \currentplaceformulanumber
- \currentplaceformulasynchronize
- \currentplaceformulaattribute
- \currentplaceformulasynchronize
- \glet\currentplaceformulasynchronize\relax
- \theformuladestinationattribute\currentplaceformulaattribute
- \fi
- \ifnum\c_strc_formulas_number_mode=\plusthree
- \strc_formulas_store_number
- \currentformulasreference
- \empty
- \currentformulasnumber
- \currentformulassynchronize
- \currentformulasattribute
- \currentformulassynchronize
- \glet\currentformulassynchronize\relax
- \theformuladestinationattribute\currentformulasattribute
- \fi
- \ifnum\c_strc_formulas_sub_number_mode=\plusthree
- \currentsubformulassynchronize
- \glet\currentsubformulassynchronize\relax
- \fi
- \ifnum\c_strc_formulas_nested_number_mode=\plusthree
- \strc_formulas_store_number
- \currentnestedformulareference
- \empty
- \currentnestedformulanumber
- \currentnestedformulasynchronize
- \currentnestedformulaattribute
- \currentnestedformulasynchronize
- \glet\currentnestedformulasynchronize\relax
- \theformuladestinationattribute\currentnestedformulaattribute
- \fi}
-
-% needs checking ... too many:
-
-\def\strc_formulas_handle_numbering_indeed
- {\ifempty\namedformulaentry
- \strc_counters_increment\v!formula
- \doiftext\currentplaceformulasuffix{\strc_counters_setown_sub\v!formula\plustwo\currentplaceformulasuffix}%
- \fi
- \placecurrentformulanumber}
-
-\def\strc_formulas_handle_numbering
- {\iftrialtypesetting
- \strc_counters_save\v!formula
- \strc_formulas_handle_numbering_indeed
- \strc_counters_restore\v!formula
- \else
- \strc_formulas_handle_numbering_indeed
- \fi}
-
-\def\strc_formulas_handle_sub_numbering_indeed
- {\let\strc_formulas_handle_sub_numbering\relax % else error: see math/numbering-001.tex
- \doifelsetext\currentsubformulasuffix
- {\strc_counters_setown_sub\v!formula\plustwo\currentsubformulasuffix}
- {\strc_counters_increment_sub\v!formula\plustwo}%
- \placecurrentformulanumber}
-
-\def\strc_formulas_handle_sub_numbering
- {\iftrialtypesetting
- \strc_counters_save\v!formula
- \strc_formulas_handle_sub_numbering_indeed
- \strc_counters_restore\v!formula
- \else
- \strc_formulas_handle_sub_numbering_indeed
- \fi}
-
-\def\strc_formulas_number_indeed
- {\ifconditional\c_strc_formulas_handle_number
- \hbox\bgroup
- % main counter
- \ifconditional\c_strc_formulas_inside_formulas_sub
- % nothing
- \else
- \ifcase\c_strc_formulas_number_mode
- \ifcase\c_strc_formulas_place_number_mode
- \strc_formulas_handle_numbering
- \or
- \strc_formulas_handle_numbering
- \or
- % nothing
- \or
- \strc_formulas_handle_numbering
- \fi
- \or
- \strc_formulas_handle_numbering
- \or
- % nothing
- \or
- \strc_formulas_handle_numbering
- \fi
- \fi
- % subcounter
- \ifconditional\c_strc_formulas_inside_formulas_sub
- \ifcase\c_strc_formulas_sub_number_mode
- \strc_formulas_handle_sub_numbering % was nothing
- \or
- \strc_formulas_handle_sub_numbering
- \or
- % nothing
- \or
- \strc_formulas_handle_sub_numbering
- \fi
- \fi
- \strc_formulas_reference_trace
- \egroup
- \fi}
-
-\installstructurelistprocessor\v!formula % to be checked ...
- {\let\currentlistentrynumber \structurelistgenericnumber
- \let\currentlistentrytitle \structurelistgenerictitle
- \let\currentlistentrypagenumber\structurelistpagenumber
- \strc_lists_apply_renderingsetup}
-
-\newif\ifinformula
-
-%D We need a hook into the plain math alignment macros
-%D
-%D \starttyping
-%D \displaylines
-%D \eqalignno
-%D \eqalignno
-%D \stoptyping
-%D
-%D Otherwise we get a missing \type {$$} error reported.
-
-\pushoverloadmode
-
-\let\reqno\eqno % no longer valid as we just nil it
-
-\let\math_native_leqno\leqno
-\let\math_native_reqno\reqno
-
-\protected\def\normaleqno#1{\writestatus\m!system{no native (l)eqno equation number support}}
-
-\let\normalleqno\normaleqno
-\let\normalreqno\normaleqno
-
-\let\leqno\normaleqno
-\let\reqno\normaleqno
-\let\eqno \normaleqno
-
-\popoverloadmode
-
-%D \macros
-%D {startsubformulas}
-
-% \placeformula
-% \startsubformulas[Maxwell]
-% \startformulas
-% \startformula \startalign
-% \NC \nabla\cdot\bf E \NC = \frac{\rho}{\varepsilon_0} \NR[Maxwell 1]
-% \NC \nabla\times\bf E \NC = - \frac{\partial\bf B}{\partial t} \NR[Maxwell II]
-% \stopalign \stopformula
-% \startformula \startalign
-% \NC \nabla\cdot \bf B \NC = 0 \NR[Maxwell III]
-% \NC \nabla\times\bf B \NC = \mu_0{\bf j}+\varepsilon_0\mu_0\frac{\partial\bf E}{\partial t} \NR[Maxwell IV]
-% \stopalign \stopformula
-% \stopformulas
-% \stopsubformulas
-%
-% Maxwell : \in [Maxwell] and II : \in [Maxwell II]
-
-%D Tricky stuff:
-
-\abovedisplayskip \zeropoint
-\abovedisplayshortskip \zeropoint % evt. 0pt minus 3pt
-\belowdisplayskip \zeropoint
-\belowdisplayshortskip \zeropoint % evt. 0pt minus 3pt
-
-\predisplaypenalty \zerocount
-\postdisplaypenalty \zerocount % -5000 goes wrong, see penalty at \section
-\mathdisplayskipmode \plusthree % because align also adds
-
-% \predisplaygapfactor \zerocount % default is 2000
-
-\protected\def\strc_formulas_forget_display_skips
- {\mathdisplayskipmode \plusthree
- \abovedisplayskip \zeropoint
- \belowdisplayskip \zeropoint
- \abovedisplayshortskip\zeropoint
- \belowdisplayshortskip\zeropoint}
-
-\newdimen\d_strc_formulas_display_skip_left
-\newdimen\d_strc_formulas_display_skip_right
-\newdimen\d_strc_formulas_display_margin_left
-\newdimen\d_strc_formulas_display_margin_right
-\newdimen\d_strc_formulas_display_pre_threshold
-\newdimen\d_strc_formulas_display_width
-
-\newconstant\c_strc_formulas_mode % this will go away
-\newconstant\c_strc_formulas_space_model
-
-\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, we might use \plusfour in the future
-
-\newconditional\c_strc_formulas_tight
-
-\newbox\b_strc_formulas_number
-\newbox\b_strc_formulas_content
-
-\def\strc_formulas_flush_content_and_number
- {\noindentation
- % \dontleavehmode
- \kern\d_strc_formulas_display_margin_left
- \ifcase\wd\b_strc_formulas_number
- \hbox to \displaywidth \bgroup
- \hfill
- \box\b_strc_formulas_content
- \hfill
- \egroup
- \orelse\ifdim\dimexpr\wd\b_strc_formulas_content+\wd\b_strc_formulas_number\relax>\displaywidth
- \vbox \bgroup
- \hsize\displaywidth
- \box\b_strc_formulas_content
- \par
- \ifx\p_location\v!left
- \box\b_strc_formulas_number\hfill
- \else
- \hfill\box\b_strc_formulas_number
- \fi
- \egroup
- \else
- \hbox to \displaywidth \bgroup
- \ifx\p_location\v!left
- \rlap{\box\b_strc_formulas_number}%
- \hfill\box\b_strc_formulas_content\hfill
- \else
- \hfill\box\b_strc_formulas_content\hfill
- \llap{\box\b_strc_formulas_number}%
- \fi
- \egroup
- \fi}
-
-\installcorenamespace{mathdisplayspacemodel}
-
-\setvalue{\??mathdisplayspacemodel\v!before:1}% old
- {\ifx\p_spacebefore\v!none
- % nothing
- \else
- \directvspacing\p_spacebefore
- \fi}
-
-\setvalue{\??mathdisplayspacemodel\v!after:1}% old
- {\prevdepth .5\strutdp
- \edef\p_spaceafter{\formulaparameter\c!spaceafter}%
- \ifx\p_spaceafter\v!none
- % nothing
- \else
- \directvspacing\p_spaceafter
- \fi}
-
-\setvalue{\??mathdisplayspacemodel\v!before:2}% old
- {\ifx\p_spacebefore\v!none
- % nothing
- \else
- \directvspacing\p_spacebefore
- \fi
- \prevdepth-\maxdimen} % texbook pagina 79-80
-
-\setvalue{\??mathdisplayspacemodel\v!after:2}% old
- {\prevdepth\lineheight
- \edef\p_spaceafter{\formulaparameter\c!spaceafter}%
- \ifx\p_spaceafter\v!none
- % nothing
- \else
- \directvspacing\p_spaceafter
- \fi}
-
-\setvalue{\??mathdisplayspacemodel\v!before:3}%
- {% not ok, try \stopformula\par\startformula vs \stopformula\startformula
- \let\m_spacebefore\empty
- \ifvmode
- \ifdim\lastskip>\zeropoint\else
- \ifdim\prevdepth<\zeropoint\else
- \ifdim\prevdepth<\strutdp
- % maybe add a tracing option here
- \ifgridsnapping
- \let\m_spacebefore\v!depth
- \else
- \edef\m_spacebefore{\the\dimexpr\strutdp-\prevdepth\relax}%
- \fi
- \fi
- \fi
- \fi
- \nointerlineskip
- \fi
- \ifempty\m_spacebefore
- \ifx\p_spacebefore\v!none
- % nothing
- \orelse\ifempty\p_spacebefore
- \directvspacing\currentvspacing
- \else
- \directvspacing{\p_spacebefore,\the\scratchdimen}%
- \fi
- \else
- \ifx\p_spacebefore\v!none
- \directvspacing{\m_spacebefore}%
- \orelse\ifempty\p_spacebefore
- \directvspacing{\m_spacebefore,\currentvspacing}%
- \else
- \directvspacing{\m_spacebefore,\p_spacebefore}%
- \fi
- \fi}
-
-\setvalue{\??mathdisplayspacemodel\v!after:3}%
- {\prevdepth\strutdp % \directvspacing\v!depth
- \ifx\p_spaceafter\v!none
- % nothing
- \orelse\ifempty\p_spaceafter
- \directvspacing\currentvspacing
- \else
- \directvspacing\p_spaceafter
- \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
- \orelse\ifempty\p_spacebefore
- \directvspacing\currentvspacing
- \else
- \directvspacing{\p_spacebefore,\the\scratchdimen}%
- \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
- \orelse\ifempty\p_spaceafter
- \directvspacing\currentvspacing
- \else
- \directvspacing\p_spaceafter
- \fi}
-
-\permanent\protected\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
-
-\permanent\protected\def\beforedisplayspace
- {\ifhmode
- \par
- \fi
- \ifvmode
- \edef\p_spacebefore{\formulaparameter\c!spacebefore}%
- \begincsname\??mathdisplayspacemodel\v!before:\number\c_strc_formulas_space_model\endcsname
- \fi
- \ifhmode
- \par
- \fi
- \page_sides_check_floats_indeed} % probably needs more
-
-\permanent\protected\def\afterdisplayspace
- {\ifhmode
- \par
- \fi
- \ifvmode
- \edef\p_spaceafter{\formulaparameter\c!spaceafter}%
- \begincsname\??mathdisplayspacemodel\v!after:\number\c_strc_formulas_space_model\endcsname
- \fi
- \ifhmode
- \par
- \fi}
-
-\permanent\protected\def\setdisplaydimensions
- {\displayindent\dimexpr
- \d_strc_formulas_display_skip_left
- +\d_strc_formulas_display_margin_left
- \relax
- \displaywidth\d_strc_formulas_display_width
- %\setlocalhsize
- %\displaywidth\localhsize
- \ifdim\hangindent>\zeropoint
- \advance\displayindent\hangindent
- \else
- \advance\displaywidth\hangindent
- \fi
- \advance\displaywidth\dimexpr
- -\displayindent
- -\d_strc_formulas_display_skip_right
- -\d_strc_formulas_display_margin_right
- \relax
- \hsize\displaywidth} % new, else overfull in itemize
-
-\protected\def\strc_formulas_start_formula#1%
- {\dodoubleempty\strc_formulas_start_formula_indeed[#1]}
-
-% \newskip\formulastrutht
-% \newskip\formulastrutdp
-
-%D \startbuffer
-%D \startformula[9pt] x = 1 \stopformula
-%D \startformula[7pt] x = 1 \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\setvalue{\??formulaoption\v!packed}%
- {\c_strc_formulas_space_model\zerocount}
-
-\setvalue{\??formulaoption\v!tight}%
- {\settrue\c_strc_formulas_tight}
-
-\setvalue{\??formulaoption\v!middle}%
- {\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}%
- \fi}
-
-\setvalue{\??formulaoption\v!halfline}%
- {\ifgridsnapping
- \setformulaparameter\c!grid{\v!math:\v!halfline}%
- \fi}
-
-\setvalue{\??formulaoption-\v!line}%
- {\ifgridsnapping
- \setformulaparameter\c!grid{\v!math:-\v!line}%
- \fi}
-
-\setvalue{\??formulaoption-\v!halfline}%
- {\ifgridsnapping
- \setformulaparameter\c!grid{\v!math:-\v!halfline}%
- \fi}
-
-% when we have 1.0.6 we wil use \mathpenaltiesmode
-%
-% \prebinoppenalty -100
-% \prerelpenalty -100
-
-\def\strc_math_set_split
- {\edef\p_split{\formulaparameter\c!split}%
- \ifx\p_split\v!yes
- \global\c_strc_math_vertical\plusone
- \orelse\ifx\p_split\v!page
- \global\c_strc_math_vertical\plustwo
- \else
- \global\c_strc_math_vertical\zerocount
- \fi
- \ifcase\c_strc_math_vertical
- % \mathpenaltiesmode \zerocount
- \clf_setmathpenalties\zerocount
- \clf_resetmathhang
- \else
- % \mathpenaltiesmode \plusone
- \clf_setmathpenalties\plusone
- \edef\p_hang{\formulaparameter\c!hang}%
- \ifx\p_hang\v!none
- \global\setfalse\c_strc_math_indent
- \clf_resetmathhang
- \else
- \global\settrue\c_strc_math_indent
- \clf_setmathhang {%
- method {\p_hang}%
- distance \formulaparameter\c!distance
- }%
- \fi
- \fi}
-
-\setupformula
- [\c!split=\v!no,
- \c!distance=\zeropoint,
- %\c!interlinespace=1.5\lineheight,
- \c!interlinespace=,
- \c!hang=\v!none]
-
-% for the moment (when testing) we use a penalty 1
-
-\protected\def\strc_math_align_here{\ifmmode\penalty\plusone\fi}%
-\protected\def\strc_math_break_here{\ifmmode\hfill\break \fi}%
-
-\appendtoks
- \let\alignhere\strc_math_align_here
- \let\breakhere\strc_math_break_here
-\to \everymathematics
-
-\protected\def\strc_formulas_start_formula_indeed[#1][#2]% setting leftskip adaption is slow !
- {\ifhmode
- \par
- \fi
- \bgroup % HERE
- \iftrialtypesetting\else
- \global\advance\c_strc_formulas_n\plusone
- \fi
- \def\currentformula{#1}%
- \strc_math_set_split
- \dostarttaggedchained\t!formula\currentformula\??formula
- \setfalse\c_strc_formulas_tight
- \d_strc_formulas_display_skip_left \leftskip
- \d_strc_formulas_display_skip_right \rightskip
- \d_strc_formulas_display_width \formulaparameter\c!width\relax
- \d_strc_formulas_display_margin_left \formulaparameter\c!leftmargin\relax
- \d_strc_formulas_display_margin_right\formulaparameter\c!rightmargin\relax
- \ifsecondargument
- \doifelseassignment{#2}% this is new, so that we can also set the grid
- {\setupcurrentformula[#2]%
- \edef\p_option{\formulaparameter\c!option}}%
- {\edef\p_option{\formulaparameter\c!option}%
- \edef\p_option{\ifempty\p_option\else\p_option,\fi#2}}%
- \else
- \edef\p_option{\formulaparameter\c!option}%
- \fi
- \ifempty\p_option \else
- \rawprocesscommacommand[\p_option]\strc_formulas_option
- \fi
- \edef\p_margin{\formulaparameter\c!margin}%
- \ifempty\p_margin \else
- \dosetleftskipadaption\p_margin
- \d_strc_formulas_display_margin_left\leftskipadaption
- \fi
- \let\strc_formulas_start_formula\strc_formulas_start_formula_nested
- \strc_formulas_forget_display_skips
- \the\everybeforedisplayformula
- \csname\e!start\formulaparameter\c!alternative\v!formula\endcsname}
-
-\protected\def\strc_formulas_start_formula_nested#1%
- {\bgroup
- \let\strc_formulas_stop_formula\strc_formulas_stop_formula_nested
- \dostarttagged\t!subformula\empty}
-
-\protected\def\strc_formulas_stop_formula_nested
- {\dostoptagged
- \egroup}
-
-% tagging of formulanumbers is not ok (we get two display maths blobs)
-
-\newcount\c_strc_formulas_n
-
-\ifdefined\dotagregisterformula \else \let\dotagregisterformula\gobbleoneargument \fi
-
-\protected\def\strc_formulas_stop_formula
- {\strc_formulas_place_number % in case it hasn't happened yet
- \strc_formulas_flush_number % in case we are in native mode
- \dostarttagged\t!formulacontent\empty
- \dotagregisterformula\c_strc_formulas_n
- \csname\e!stop\formulaparameter\c!alternative\v!formula\endcsname
- \dostoptagged
- \dostoptagged
- \nonoindentation
- \useindentnextparameter\formulaparameter
- \egroup
- \hangafter\minusone % added for side floats
- \hangindent\zeropoint % added for side floats
- \setfalse\c_strc_formulas_handle_number
- \the\everyresetformulas
- \dorechecknextindentation} % here ?
-
-% experiment:
-
-\def\strc_formulas_set_grid_snapping
- {\edef\p_grid{\formulaparameter\c!grid}%
- \ifempty\p_grid \else
- \spac_grids_snap_value_auto\p_grid
- \fi}
-
-\appendtoks
- \ifgridsnapping
- \strc_formulas_set_grid_snapping
- \fi
-\to \everybeforedisplayformula
-
-% \protected\def\switchtoformulabodyfont
-% {\switchtobodyfont}
-
-\setuvalue{\v!formula}{\dosingleempty\strc_formulas_formula}
-
-\def\strc_formulas_formula[#1]#2% todo: tagged
- {\begingroup
- \edef\p_direct{#1}%
- \ifempty\p_direct \else
- \rawprocesscommalist[\p_direct]\strc_formulas_option
- \fi
- % not : \def\strc_formulas_formula[##1]##2{\mathematics{##2}}%
- \mathematics{#2}%
- \endgroup}
-
-%D \starttyping
-%D % test \par % no preceding hlist
-%D % $$x$$ % preceding hlist
-%D % \noindent $$x$$ % no preceding hlist
-%D \startformula x \stopformula % now has \noindent (in mkii we messed with baselineskip)
-%D \stoptyping
-
-\permanent\protected\def\startdisplaymath
- {\ifhmode
- \par
- \fi
- \bgroup
- \informulatrue
- \beforedisplayspace
- \setdisplaydimensions
- \ifcase\c_strc_formulas_mode
- \noindent % prevents that tex injects empty line (when using native display mechanism)
- \Ucheckedstartdisplaymath
- \the\everydisplay % new (probably too much)
- \or
- \setbox\b_strc_formulas_content\hbox\bgroup
- \normalUstartmath
- \displaystyle
- \the\everydisplay % new (probably too much)
- \else
- \expandafter\startinnermath
- \fi
- \begingroup} % less interference with upcoming a \over b
-
-\permanent\protected\def\stopdisplaymath
- {\endgroup % less interference with upcoming a \over b
- \ifcase\c_strc_formulas_mode
- \Ucheckedstopdisplaymath
- \or
- \normalUstopmath
- \egroup
- \strc_formulas_flush_content_and_number
- \else
- \expandafter\stopinnermath
- \fi
- \afterdisplayspace
- \egroup}
-
-% already defined
-%
-% \let\startinnermath\empty
-% \let\stopinnermath \empty
-
-% \defineformulaalternative[multi][\begindmath][\enddmath]
-%
-% \fakewords{20}{40}\epar
-% \placeformula {a} $$ \fakespacingformula $$
-% \fakewords{20}{40}\epar
-% \placeformula {b} \startformule \fakespacingformula \stopformule
-% \placeformula {b} \startformule \fakespacingformula \stopformule
-% \fakewords{20}{40}\epar
-% \placeformula {c} \startmdformule \fakespacingformula \stopmdformule
-% \placeformula {c} \startmdformule \fakespacingformula \stopmdformule
-% \fakewords{20}{40}\epar
-% \placeformula {d} \startmpformule \fakespacingformula \stopmpformule
-% \placeformula {d} \startmpformule \fakespacingformula \stopmpformule
-% \fakewords{20}{40}\epar
-% \placeformula {e} \startsdformule \fakespacingformula \stopsdformule
-% \placeformula {e} \startsdformule \fakespacingformula \stopsdformule
-% \fakewords{20}{40}\epar
-% \placeformula {f} \startspformule \fakespacingformula \stopspformule
-% \placeformula {f} \startspformule \fakespacingformula \stopspformule
-% \fakewords{20}{40}
-
-\permanent\protected\def\startsubformulas
- {\dosingleempty\strc_formulas_start_sub_formulas}
-
-\def\strc_formulas_start_sub_formulas[#1]%
- {\edef\currentsubformulasreference{#1}%
- \global\settrue\c_strc_formulas_inside_formulas_sub
- \strc_formulas_handle_sub_number}
-
-\permanent\protected\def\stopsubformulas
- {\nonoindentation
- \useindentnextparameter\subformulaparameter
- \the\everyresetformulas % to be checked
- \global\setfalse\c_strc_formulas_inside_formulas_sub
- \dorechecknextindentation} % here ?
-
-%D Named subformulas (to be redone)
-
-\permanent\protected\def\startnamedsubformulas
- {\dosingleempty\strc_formulas_start_named_sub_formulas}
-
-\def\strc_formulas_start_named_sub_formulas[#1]#2%
- {\setformulalistentry{#2}%
- \startsubformulas[#1]}
-
-\permanent\protected\def\stopnamedsubformulas
- {\stopsubformulas}
-
-%D Experimental goodie:
-%D
-%D \startbuffer
-%D \placelist[formula][criterium=text] \blank[2*big]
-%D \placenamedformula[one]{first} \startformula a = 1 \stopformula \endgraf
-%D \placeformula \startformula a = 2 \stopformula \endgraf
-%D \placenamedformula {second} \startformula a = 3 \stopformula \endgraf
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\permanent\protected\def\startformulas{\strc_formulas_start_formulas}
-
-\permanent\letcsname\e!stop\v!formulas\endcsname\relax
-
-\protected\def\strc_formulas_nested_formula_start
- {\hbox to \displaywidth \bgroup
- \hsize\displaywidth
- \hss
- %\Ustartmath
- \dostarttagged\t!formulacontent\empty
- \csname\e!start\formulaparameter\c!alternative\v!formula\endcsname}
-
-\protected\def\strc_formulas_nested_formula_stop
- {\csname\e!stop\formulaparameter\c!alternative\v!formula\endcsname
- \dostoptagged
- %\Ustopmath
- \hss
- \egroup
- \hss}
-
-\normalexpanded{\tolerant\def\noexpand\strc_formulas_start_formulas[#1]#:#2\csname\e!stop\v!formulas\endcsname}%
- {\startformula
- \dostarttagged\t!formulaset\empty
- \global\settrue\c_strc_formulas_inside_formulas
- \edef\currentformulasreference{#1}%
- \strc_formulas_handle_number
- \let\currentformula\empty
- \strc_formulas_forget_display_skips
- \enforced\protected\def\startformula
- {\advance\scratchcounter\plusone
- \expandafter\gobbleuntil\csname\e!stop\v!formula\endcsname}%
- \scratchcounter\zerocount
- #2% preroll
- \hbox to \displaywidth \bgroup
- \divide\displaywidth\scratchcounter
- \hss
- \enforced\let\startformula\strc_formulas_nested_formula_start
- \enforced\let\stopformula \strc_formulas_nested_formula_stop
- #2%
- \egroup
- \global\setfalse\c_strc_formulas_inside_formulas
- \dostoptagged
- \stopformula
- \the\everyresetformulas
- \hangafter\minusone % added for side floats
- \hangindent\zeropoint} % added for side floats
-
-% place
-
-\def\m_strc_formulas_flag_inhibit{-}
-\def\m_strc_formulas_flag_force {+}
-
-\def\strc_formulas_check_reference#1#2%
- {#1\unless\ifempty\namedformulaentry % \relax % new 29/8/2010
- \plusthree
- \orelse\ifempty#2%
- \zerocount
- \orelse\ifx#2\m_strc_formulas_flag_force
- \plusone
- \orelse\ifx#2\m_strc_formulas_flag_inhibit
- \plustwo
- \else
- \plusthree
- \fi}
-
-\permanent\protected\def\formulanumber
- {\strc_formulas_number} % for the moment
-
-\tolerant\protected\def\strc_formulas_number[#1]%
- {\def\currentformulareference{#1}%
- \strc_formulas_place_number_in_box}
-
-\permanent\protected\def\placeformula {\global\settrue\c_strc_formulas_inside_place}
-\permanent\protected\def\placesubformula{\global\settrue\c_strc_formulas_inside_place_sub}
-
-\tolerant\protected\def\strc_formulas_place[#1]%
- {\def\currentplaceformulareference{#1}%
- \let\currentplaceformulasuffix\empty
- \doifelsenextbgroup\strc_formulas_place_yes\strc_formulas_place_nop} % [ref]{}
-
-\protected\def\strc_formulas_place_yes#1%
- {\def\currentplaceformulasuffix{#1}%
- \strc_formulas_place_nop}
-
-\protected\def\strc_formulas_place_nop
- {\doifelsenextchar$\strc_formulas_place_pickup\strc_formulas_place_indeed} % [ref]$$ [ref]\start
-
-\protected\def\strc_formulas_place_indeed
- {\strc_formulas_place_numbering}
-
-\protected\def\strc_formulas_place_pickup$$#1$$%
- {\strc_formulas_place_numbering
- \strc_formulas_start_formula{}#1\strc_formulas_stop_formula}
-
-% \let\startplaceformula\placeformula
-% \let\stopplaceformula \relax
-
-% \startplaceformula \startformula e=mc^2 \stopformula \stopplaceformula
-% \startplaceformula[-] \startformula e=mc^2 \stopformula \stopplaceformula
-% \startplaceformula[x] \startformula e=mc^2 \stopformula \stopplaceformula
-% \startplaceformula[reference=foo] \startformula e=mc^2 \stopformula \stopplaceformula
-% \startplaceformula[title=whatever] \startformula e=mc^2 \stopformula \stopplaceformula
-% \startplaceformula[suffix=x] \startformula e=mc^2 \stopformula \stopplaceformula
-
-\let\currentplaceformulareference\empty
-\let\currentplaceformulasuffix \empty
-
-\permanent\tolerant\protected\def\startplaceformula[#1]%
- {\begingroup
- \global\settrue\c_strc_formulas_inside_place
- \ifparameter#1\or
- \expandafter\strc_formulas_start_place_yes
- \else
- \expandafter\strc_formulas_start_place_nop
- \fi[#1]}
-
-\def\strc_formulas_start_place_yes[#1]%
- {\doifassignmentelse{#1}\strc_formulas_start_place_parameters\strc_formulas_start_place_reference[#1]}
-
-\def\strc_formulas_start_place_nop[#1]%
- {\let\currentplaceformulareference\empty
- \let\currentplaceformulasuffix \empty
- \strc_formulas_place_nop}
-
-\def\strc_formulas_start_place_reference[#1]%
- {\edef\currentplaceformulareference{#1}%
- \let\currentplaceformulasuffix\empty
- %\doifelsenextbgroup\strc_formulas_place_yes\strc_formulas_place_nop} % [ref]{}
- \strc_formulas_place_nop}
-
-\def\strc_formulas_start_place_parameters[#1]%
- {\letdummyparameter\c!title \empty
- \letdummyparameter\c!reference\empty
- \letdummyparameter\c!suffix \empty
- \getdummyparameters[#1]%
- \edef\currentplaceformulatitle {\dummyparameter\c!title}%
- \edef\currentplaceformulareference{\dummyparameter\c!reference}%
- \edef\currentplaceformulasuffix {\dummyparameter\c!suffix}%
- \ifempty\currentplaceformulatitle\else
- \normalexpanded{\setformulalistentry{\currentplaceformulatitle}}%
- \fi
- \doifelsenextbgroup\strc_formulas_place_yes\strc_formulas_place_nop} % [ref]{}
-
-\permanent\protected\def\stopplaceformula
- {\relax
- \endgroup}
-
-% to be checked
-
-\let\strc_formulas_place_number \relax
-\let\strc_formulas_place_number_nested\gobbletwoarguments
-
-\def\strc_formulas_place_number_nested_indeed#1#2%
- {\def\currentnestedformulareference{#1}%
- \def\currentnestedformulasuffix{#2}%
- \strc_formulas_check_reference\c_strc_formulas_nested_number_mode\currentnestedformulareference
- \ifcase\c_strc_formulas_nested_number_mode
- % nothing
- \or
- \glet\strc_formulas_place_number\relax
- \expandafter\strc_formulas_number % hm, looks ahead for []
- \or
- % nothing
- \or
- \glet\strc_formulas_place_number\relax
- \expandafter\strc_formulas_number % hm, looks ahead for []
- \fi}
-
-\def\strc_formulas_place_number_indeed
- {\strc_formulas_place_number_in_box}
-
-\def\strc_formulas_place_number_in_box
- {\dostarttagged\t!formulacaption\empty
- \global\setbox\b_strc_formulas_number\naturalhbox{\strc_formulas_number_indeed}%
- \dostoptagged}
-
-\def\strc_formulas_flush_number
- {\ifcase\c_strc_formulas_mode
- \ifzeropt\wd\b_strc_formulas_number
- % nothing to be done
- \orelse\ifx\p_location\v!left
- \math_native_leqno{\box\b_strc_formulas_number}%
- \else
- \math_native_reqno{\box\b_strc_formulas_number}%
- \fi
- \fi}
-
-% todo
-
-\permanent\tolerant\protected\def\placenamedformula[#1]%
- {\ifarguments
- \expandafter\strc_formulase_place_named_nop
- \else
- \expandafter\strc_formulase_place_named_yes
- \fi[#1]}
-
-\def\strc_formulase_place_named_yes[#1]#2%
- {\setformulalistentry{#2}%
- \placeformula[#1]}
-
-\def\strc_formulase_place_named_nop[#1]#2%
- {\setformulalistentry{#2}%
- \placeformula}
-
-\mutable\let\namedformulaentry\empty % \relax % this will become a key/value so that we can do bookmarks
-
-\permanent\protected\def\setformulalistentry#1%
- {\gdef\namedformulaentry{#1}}
-
-\protect \endinput
-
-% \abovedisplayshortskip0pt \belowdisplayshortskip0pt \abovedisplayskip0pt \belowdisplayskip0pt \forgetall
-%
-% test \par $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
-% test \par $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
-% test plus \par \prevdepth \maxdimen $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
-% test minus \par \prevdepth-\maxdimen $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
-%
-% \parskip\baselineskip
-%
-% test \par $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
-% test \par $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
-% test plus \par \prevdepth \maxdimen $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par
-% test minus \par \prevdepth-\maxdimen $$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$$ \par test \par