texlive[74839] Master/texmf-dist: eqnlines (3apr25)
commits+karl at tug.org
commits+karl at tug.org
Thu Apr 3 21:50:19 CEST 2025
Revision: 74839
https://tug.org/svn/texlive?view=revision&revision=74839
Author: karl
Date: 2025-04-03 21:50:19 +0200 (Thu, 03 Apr 2025)
Log Message:
-----------
eqnlines (3apr25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/eqnlines/README.txt
trunk/Master/texmf-dist/doc/latex/eqnlines/eqnlines.pdf
trunk/Master/texmf-dist/source/latex/eqnlines/eqnlines.dtx
trunk/Master/texmf-dist/tex/latex/eqnlines/eqnlines-dev.sty
trunk/Master/texmf-dist/tex/latex/eqnlines/eqnlines.sty
Modified: trunk/Master/texmf-dist/doc/latex/eqnlines/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/eqnlines/README.txt 2025-04-03 19:50:08 UTC (rev 74838)
+++ trunk/Master/texmf-dist/doc/latex/eqnlines/README.txt 2025-04-03 19:50:19 UTC (rev 74839)
@@ -1,4 +1,4 @@
-eqnlines v0.6.1
+eqnlines v0.7
Copyright 2024-2025 Niklas Beisert
Based on the latex package amsmath:
@@ -5,8 +5,6 @@
Copyright (C) 1995, 2000, 2013 American Mathematical Society.
Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
--- preview version --
-
eqnlines is a LaTeX2e package providing a framework for typesetting
single- and multi-line equations which extends the established
equation environments of LaTeX and the amsmath package with many
Modified: trunk/Master/texmf-dist/doc/latex/eqnlines/eqnlines.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/eqnlines/eqnlines.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/eqnlines/eqnlines.dtx 2025-04-03 19:50:08 UTC (rev 74838)
+++ trunk/Master/texmf-dist/source/latex/eqnlines/eqnlines.dtx 2025-04-03 19:50:19 UTC (rev 74839)
@@ -23,10 +23,10 @@
% and the derived files eqnlines.sty.
%
%<package|sample>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-%<package&!dev>\ProvidesPackage{eqnlines}[2025/03/27 v0.6.1 Single- and multi-line equations]
-%<package&dev>\ProvidesPackage{eqnlines-dev}[2025/03/27 v0.6.1 Single- and multi-line equations (development)]
+%<package&!dev>\ProvidesPackage{eqnlines}[2025/04/03 v0.7 Single- and multi-line equations]
+%<package&dev>\ProvidesPackage{eqnlines-dev}[2025/04/03 v0.7 Single- and multi-line equations (development)]
%<*driver>
-\def\thedate#1{2025/03/27}\def\theversion#1{v0.6.1}
+\def\thedate#1{2025/04/03}\def\theversion#1{v0.7}
\ProvidesFile{eqnlines.dtx}[\thedate{} \theversion{} eqnlines reference manual file]
\PassOptionsToClass{10pt,a4paper}{article}
\documentclass{ltxdoc}
@@ -57,6 +57,48 @@
\hypersetup{pdfcontactemail={nbeisert at itp.phys.ethz.ch}}
\hypersetup{pdfcontacturl={https://people.phys.ethz.ch/\xmptilde nbeisert/}}
+\usepackage{eqnlines}
+\eqnlinesset{belowtopmode=top,belowtopskip=0pt}
+\def\pstrut{\vphantom{(}}
+\def\bstrut{\vphantom{b}}
+
+\usepackage{verbatim}
+\makeatletter
+\def\example at addline#1{%
+ \g at addto@macro\example at dbuf{#1 }%
+ \g at addto@macro\example at pbuf{\item|#1|}}
+\def\scanexample{%
+ \gdef\example at dbuf{}%
+ \gdef\example at pbuf{}%
+ \begingroup
+ \@bsphack
+ \let\do\@makeother\dospecials
+ \catcode`\^^M\active
+ \def\verbatim at processline{\expandafter\example at addline\expandafter%
+ {\the\verbatim at line}}%
+ \verbatim at start}
+\def\endscanexample{\@esphack\endgroup\ignorespacesafterend}
+\def\printexample{\begingroup
+ \topsep\z at skip\parsep\z at skip\itemsep\z at skip\partopsep\z at skip\parskip\z at skip
+ \trivlist
+ \expandafter\scantokens\expandafter{\example at pbuf}%
+ \endtrivlist
+ \endgroup}
+\def\doexample{\expandafter\scantokens\expandafter{\example at dbuf}}
+\newcommand{\showexampleh}[1][0.5]{\par%
+ \parbox{\dimexpr#1\textwidth\relax}{\printexample}%
+ \parbox{\dimexpr\textwidth-#1\textwidth\relax}{\doexample}%
+ \par\medskip\ignorespaces}
+\newcommand{\showexamplev}{%
+ \printexample
+ \par\medskip
+ \parbox{\textwidth}{\doexample}%
+ \par\medskip\ignorespaces}
+\newenvironment{example}
+ {\parskip\z at skip\par\medskip\hrule\medskip}
+ {\par\hrule\par\medskip}
+\makeatother
+
\newcommand{\TODO}{\textbf{\textcolor{red}{TODO:}} }
\newcommand{\markpkg}[1]{\textsf{#1}}
@@ -158,10 +200,6 @@
\url{https://ctan.org/pkg/eqnlines}}
\maketitle
-\begin{center}
--- preview version --
-\end{center}
-
\begin{abstract}\noindent
\markpkg{eqnlines} is a \LaTeXe{} package providing
a framework for typesetting single- and multi-line equations
@@ -190,7 +228,7 @@
Typesetting mathematical equations is an undisputed strength of \TeX{}.
\LaTeX{} improved the overall management of display equations,
for instance by providing optional numbering.
-It also added elementary functionality for multi-lined equations
+It also added elementary functionality for multi-line equations
with alignment. Some of its deficiencies were addressed by
the multi-line equation environments of the package \ctanpkg{amsmath}
which have become an established standard for these purposes.
@@ -321,7 +359,55 @@
\DescribeEnv{equations}
The package supplies a main maths environment called |equations|
-which accepts a comma-separated list of optional parameters
+which has three principal modes of operation.
+It can display a single-line equation
+just as the \LaTeX{} environment |equation| or
+the symbolic shortcut |\[...\]|:
+%
+\[
+\framebox[8cm]{\pstrut single line}
+\]
+%
+It can display a stack of equations
+analogous to the \ctanpkg{amsmath} environments |gather| and |multline|:
+\unskip\footnote{Arguably, a single-line equation is
+just a stack of equations of height 1.
+Nevertheless, there is a single-line mode
+which prohibits line breaks and which works slightly more efficiently:
+For example, the multi-line modes will process the input
+twice which is not needed for the single-line mode.
+Apart from that, the package takes care that the layout and spacing
+of single-line equations and multi-line equations consisting of a single line
+is the same.}
+%
+\<~[pad]
+\framebox[4cm]{\pstrut stacked line 1}
+\\
+\framebox[7cm]{\pstrut stacked line 2}
+\\
+\framebox[5cm]{\pstrut stacked line 3}
+\\
+\shoveright\framebox[5cm]{\pstrut aligned line 4}
+\>
+%
+It can also display several columns of aligned equations
+analogous to the \ctanpkg{amsmath} environment family |align|:
+%
+\<
+\framebox[1.0cm]{\pstrut 1a-L}\hskip-0.5pt&\framebox[3.0cm]{\pstrut 1a-R}
+&
+\framebox[1.5cm]{\pstrut 1b-L}\hskip-0.5pt&\framebox[3.5cm]{\pstrut 1b-R}
+\\
+\framebox[2.5cm]{\pstrut 2a-L}\hskip-0.5pt&\framebox[4.5cm]{\pstrut 2a-R}
+&
+&\framebox[2cm]{\pstrut 2b-R}
+\\
+&\framebox[4cm]{\pstrut 3a-R}
+\>
+%
+
+The environment |equations|
+accepts a comma-separated list of optional parameters
`|[|\textit{opts}|]|':
%
\begin{center}
@@ -351,8 +437,8 @@
\DescribeKey{single}
\DescribeKey{lines}
\DescribeKey{columns}
-The environment has three principal modes of operation
-which are selected by setting an optional argument as follows:
+The three modes of operation
+are selected by setting an optional argument as follows:
%
\begin{center}
\begin{tabular}{llll}
@@ -389,6 +475,28 @@
to the stacked form (with right alignment) if only a single column is provided
(no `|&|'s).
+\begin{example}
+\begin{scanexample}
+\begin{equations}[single]
+x=\cos\phi
+\end{equations}
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\begin{equations}[lines]
+x=\cos\phi \\ \phi=\arccos x
+\end{equations}
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\begin{equations}[columns]
+x&=\cos\phi & \phi&=\arccos x \\
+ &=(z+z^{-1})/2 & &=-i\log z
+\end{equations}
+\end{scanexample}
+\showexampleh
+\end{example}
+
\DescribeInterfaceMacro{\[...\string\]}
\DescribeInterfaceMacro{\<...\string\>}
\DescribeKey{\string~}
@@ -407,6 +515,33 @@
Both default arguments are preset to |nonumber|
which disables equation numbering, see \secref{sec:numbering}.
+\begin{example}
+\begin{scanexample}
+\[
+x=\cos\phi
+\]
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\<~
+x=\cos\phi \\ \phi=\arccos x
+\>
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\<
+x&=\cos\phi & \phi&=\arccos x \\
+ &=(z+z^{-1})/2 & &=-i\log z
+\>
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\eqnlinesset{sqropt={donumber}}
+\[ x=\cos\phi \]
+\end{scanexample}
+\showexampleh
+\end{example}
+
\DescribeEnv{equation}
\DescribeEnv{multline}
\DescribeEnv{gather}
@@ -414,7 +549,7 @@
The package also supplies or overwrites the \ctanpkg{amsmath}
environments |equation|, |multline|, |gather|, |align| and |flalign|
including their starred variants
-but neither the |alignat| alternative forms nor |split|.
+(but neither the |alignat| alternative forms nor the |split| construction).
It is possible to define further equation environments \textit{env}
with a predefined set of options \textit{opts} using:
%
@@ -423,11 +558,43 @@
|{\eqnaddopt{|\textit{opts}|}\equations}{\endequations}|
\end{center}
+\begin{example}
+\begin{scanexample}
+\begin{equation}
+x=\cos\phi
+\end{equation}
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\begin{gather}
+x=\cos\phi \\ \phi=\arccos x
+\end{gather}
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\begin{align}
+x&=\cos\phi & \phi&=\arccos x \\
+ &=(z+z^{-1})/2 & &=-i\log z
+\end{align}
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\newenvironment{eqnlist}
+ {\eqnaddopt{lines,shape=left}\equations}
+ {\endequations}
+\begin{eqnlist}[nonumber]
+x=\cos\phi \\ \phi=\arccos x
+\end{eqnlist}
+\end{scanexample}
+\showexampleh[0.65]
+\end{example}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Numbering}
\label{sec:numbering}
\DescribeKey{numberline}
+\DescribeKey{nline,n}
The package extends the established interface of \LaTeX{}
and the \ctanpkg{amsmath} package for labelling equations
with numbers or with manually assigned tags.
@@ -435,14 +602,15 @@
individual labelling of the equation lines or
one overall number/tag for the whole block of equations.
The modes are selected by an optional argument
-|numberline=|\textit{mode} as follows:
+|numberline=|\textit{mode} (alternatively |nline| or just |n|)
+as follows:
%
\begin{center}
\begin{tabular}{llll}
name & alt. & description & preset \\
\hline
-|none| & |n| & & preset off\\
-|all| & |a| & individual lines & preset on\\
+|none| & |n| & & all lines, preset off \\
+|all| & |a| & individual lines & all lines \\
|sub| & |s| & & subequations (a,\,b,\,c,\,\ldots) \\
\hline
|first| & |f| & & first line\\
@@ -453,7 +621,61 @@
|here| & |h| & & line indicated by |\numberhere| \\
\end{tabular}
\end{center}
-%
+
+\begin{example}
+\begin{scanexample}
+\begin{equations}[!,numberline=...]
+ x &= \cos\phi \\ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\ &= -i\log z
+\end{equations}
+\end{scanexample}
+\qquad\parbox{0.8\textwidth}{\printexample}
+\par\medskip
+\makebox[0.33\textwidth]{|none|:}\hfil
+\makebox[0.33\textwidth]{|all|:}\hfil
+\makebox[0.33\textwidth]{|sub|:}\par\smallskip
+\begin{minipage}{0.33\textwidth}
+\begin{equations}[!,numberline=none]
+ x &= \cos\phi \\ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\ &= -i\log z
+\end{equations}
+\end{minipage}\vrule\hfill
+\begin{minipage}{0.33\textwidth}
+\begin{equations}[!,numberline=all]
+ x &= \cos\phi \\ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\ &= -i\log z
+\end{equations}
+\end{minipage}\vrule\hfill
+\begin{minipage}{0.33\textwidth}
+\begin{equations}[!,numberline=sub]
+ x &= \cos\phi \\ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\ &= -i\log z
+\end{equations}
+\end{minipage}
+\par\medskip
+\makebox[0.33\textwidth]{|first|:}\hfil
+\makebox[0.33\textwidth]{|middle|:}\hfil
+\makebox[0.33\textwidth]{|last|:}\par\smallskip
+\begin{minipage}{0.33\textwidth}
+\begin{equations}[!,numberline=first]
+ x &= \cos\phi \\ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\ &= -i\log z
+\end{equations}
+\end{minipage}\vrule
+\begin{minipage}{0.33\textwidth}
+\begin{equations}[!,numberline=middle]
+ x &= \cos\phi \\ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\ &= -i\log z
+\end{equations}
+\end{minipage}\vrule
+\begin{minipage}{0.33\textwidth}
+\begin{equations}[!,numberline=last]
+ x &= \cos\phi \\ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\ &= -i\log z
+\end{equations}
+\end{minipage}
+\end{example}
+
\DescribeInterfaceMacro{\nonumber}
\DescribeInterfaceMacro{\donumber}
Numbering can be turned on and off
@@ -466,10 +688,17 @@
|\donumber|
\end{center}
%
-\DescribeKey{*}
-\DescribeKey{!}
-Alternatively, the numbering can be disabled or enabled for the block using
-modifiers (which must be placed \emph{before} further optional arguments):
+\DescribeKey{nonumber}
+\DescribeKey{donumber}
+\DescribeKey{number}
+\DescribeKey{nn,*}
+\DescribeKey{dn,!}
+The numbering can be disabled or enabled for the block
+by the keys |nonumber| or |donumber| (|nn|=`|*|' or |dn|=`|!|' for short)
+or by |number=|\textit{bool} with \textit{bool}
+either |on| or |off| (among several alternative forms).
+Alternatively the number can be switched by using modifiers
+(which cannot be used in conjunction with optional arguments |[|\ldots|]|):
%
\begin{center}
|\[*|\textvisiblespace\,\ldots|\]|
@@ -480,7 +709,8 @@
This allows to define a default behaviour and specify exceptions
where they may occur.
The star modifier following directly the environment declaration
-replaces the starred form of environments (|equation*|, etc.).
+replaces the starred form of environments (|equation*|, etc.)
+and there is no need to adjust the closing statement.
\DescribeInterfaceMacro{\numberhere}
\DescribeInterfaceMacro{\numbernext}
@@ -492,11 +722,74 @@
|\numbernext|
\end{center}
%
-The former macro overrides the position to the present line.
-The latter macro defers the number to the next line,
-e.g.\ if an equation is broken into several lines
-and the last one should receive the number tag.
+The former macro overrides the position to the present line,
+the latter macro defers the number to the next line.
+For example, if an equation is broken into several lines
+one may use the combination |\numbernext \\|
+to assign the number to the last line.
+\begin{example}
+\begin{scanexample}
+\begin{equations}
+ x &= \cos\phi \nonumber \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \nonumber \\
+ &= -i\log z
+\end{equations}
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\begin{equations}*
+ x &= \cos\phi \donumber \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \donumber \\
+ &= -i\log z
+\end{equations}
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\eqnlinesset{numberline=last}
+\<! x &= \cos\phi \\
+ \phi &= \arccos x \>
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\eqnlinesset{angopt=donumber}
+\<* x &= \cos\phi \\
+ \phi &= \arccos x \>
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\begin{equations}
+ x &= \cos\phi \numbernext \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \numbernext \\
+ &= -i\log z
+\end{equations}
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\eqnlinesset{numberline=here}
+\<!
+ x &= \cos\phi \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \numberhere \\
+ &= -i\log z
+\>
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\eqnlinesset{numberline=first}
+\<!
+ x &= \cos\phi \numbernext \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \numbernext \\
+ &= -i\log z
+\>
+\end{scanexample}
+\showexampleh
+\end{example}
+
\DescribeInterfaceMacro{\label}
\DescribeInterfaceMacro{\tag}
Equation numbers can receive \LaTeX{} labels as usual
@@ -509,6 +802,8 @@
|\tag|[|*|]|{|\textit{tag}|}|
\end{center}
%
+A |tag| replaces the equation number,
+|tag*| will drop the decoration by parentheses.
Note that a label and a tag will always apply to the
next number that will be printed, and only a single label
and/or tag may be specified for it. For example, if the present line
@@ -515,10 +810,10 @@
has no numbering, but the following line does,
|\label| or |\tag| will apply to the following line.
The macros |\label| and |\tag|
-can also be instructed to automatically enable numbering
-for the present line or block (|\donumber|).
-By default, numbers are triggered for |\tag|, but not for |\label|
-reflecting the behaviour set forth by \ctanpkg{amsmath}.
+can also be instructed to automatically enable numbering/tagging
+for the present line or block via |\donumber|, see below.
+By default, numbering/tagging is triggered for |\tag|,
+but not for |\label| reflecting the behaviour set forth by \ctanpkg{amsmath}.
By enabling triggering for |\label|, numbers will be produced
only if they have a chance of being referenced.
@@ -542,17 +837,32 @@
the optional argument |label| can be used to assign
a label to the parent number addressing the whole equation block.
-\DescribeInterfaceMacro{\raisetag}
+\DescribeInterfaceMacro{\eqref}
+The macro |\eqref| is the standard method for referring
+to equation numbers via their label.
+This method also uses the layout defined below.
+%
+\begin{center}
+|\eqref{|\textit{label}|}|.
+\end{center}
+%
+\DescribeInterfaceMacro{\tagform}
+\DescribeInterfaceMacro{\tagbox}
+\DescribeInterfaceMacro{\tagboxed}
+For custom typesetting,
+|\tagform| encloses a number/tag with decoration,
+|\tagbox| puts the decorated number in a box
+and |\tagboxed| combines the two.
-\DescribeKey{taglayout}
+\DescribeKey{tagbox}
\DescribeKey{tagform}
The typesetting of equation numbers and tags passes through two macros,
one which defines the layout
-and another one which adds a decoration (brackets).
+and another one which adds a decoration by parentheses.
These two methods can be adjusted via the options:
%
\begin{center}
-|taglayout|[|*|]|={|\textit{code}|}|
+|tagbox|[|*|]|={|\textit{code}|}|
\quad and\quad
|tagform={|\textit{l}|{|\textit{code}|}|\textit{r}|}|
\quad or\quad
@@ -562,18 +872,154 @@
Here, \textit{code} is some macro code
that references the argument `|#1|' containing the
number or tag, and \textit{l} and \textit{r}
-can be opening and closing brackets for the tag presentation.
+can be opening and closing parentheses for the tag presentation.
-\DescribeInterfaceMacro{\eqref}
-The macro |\eqref| is the standard method for referring
-to equation numbers via their label.
-This method also uses the layout defined above.
+\begin{example}
+\eqnlinesset{tagform=[{#1}]}
+\eqnlinesset{tagbox={\textcolor{blue}{#1}}}
+\begin{scanexample}
+\<[!,numberline=last]
+ x &= \cos\phi \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\
+ &= -i\log z
+\>
+\end{scanexample}
+\showexampleh
+\end{example}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Horizontal Adjustment}
\label{sec:adjustment}
-\DescribeKey{margin}
+\DescribeKey{layout}
+\DescribeKey{center}
+\DescribeKey{left}
+First of all, the overall layout can be adjusted
+between central and left alignment
+via |layout=center|, |layout=left| or |center|, |left| for short.
+
+\begin{example}
+\begin{scanexample}
+\<[layout=center]
+ x &= \cos\phi \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\
+ &= -i\log z
+\>
+\end{scanexample}
+\showexampleh[0.35]
+\begin{scanexample}
+\<[layout=left]
+ x &= \cos\phi \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\
+ &= -i\log z
+\>
+\end{scanexample}
+\showexampleh[0.35]
+\end{example}
+
+\DescribeKey{tags}
+\DescribeKey{tagsright}
+\DescribeKey{tagsleft}
+Furthermore, numbers and/or tags may be placed
+on the right or left margin
+via |tags=right|, |tags=left| or |tagsright|, |tagsleft| for short.
+
+\begin{example}
+\begin{scanexample}
+\<[tags=right,!]
+ x &= \cos\phi \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\
+ &= -i\log z
+\>
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\<[tags=left,!]
+ x &= \cos\phi \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\
+ &= -i\log z
+\>
+\end{scanexample}
+\showexampleh
+\end{example}
+
+\DescribeKey{tagmargin}
+\DescribeKey{tagmargin*}
+\DescribeKey{tagmarginratio}
+In central alignment layout, one can impose a tag margin
+|tagmargin={|\textit{dimen}|}|
+which allocates some space to the tag
+such that equation content is centred in the remaining horizontal space.
+The margin can also be set to the width of some text by
+|tagmargin*={|\textit{text}|}| or it can be calculated
+as the maximum width of tags by |tagmargin| without parameter (default).
+The option |tagmarginratio={|\textit{ratio}|}|
+uses the tag margin only for equation blocks
+with a ratio of tags to rows above the given (decimal) ratio
+(a value above 1 uses the tag margin only for single equations with tags;
+default is |0.334|).
+The option |tagmarginthreshold={|\textit{threshold}|}|
+uses the tag margin only if the ratio of spacings would be below
+the given (decimal) threshold (very much off balance;
+default is |0.5|).
+The latter two options together with some tag margin
+can produce a more appealing layout for equation blocks of mixed filling.
+In the following example, the former two equations are centred
+on all horizontal space
+while the latter two equations are centred on the space left of the tag
+(the ratio of spacings without tag margin would be very small here):
+
+\begin{example}
+\begin{scanexample}
+\eqnlinesset{tagmarginthreshold=0.7}
+\[! \framebox[4em]{} \]
+\[! \framebox[8em]{} \]
+\[! \framebox[12em]{} \]
+\[! \framebox[16em]{} \]
+\end{scanexample}
+\showexampleh
+\end{example}
+
+\DescribeKey{leftmargin}
+\DescribeKey{leftmargin*}
+\DescribeKey{minleftmargin}
+\DescribeKey{maxleftmargin}
+In left alignment layout, all equations are left aligned to a left margin
+(|leftmargin| is initialised
+to the first level of enumerations and itemisations).
+It can be set to the width of some text by |leftmargin*={|\textit{text}|}|.
+Depending on the situation, the left margin may be
+reduced or extended to |minleftmargin| or |maxleftmargin|, respectively.
+
+\begin{example}
+\eqnlinesset{layout=left}
+\begin{scanexample}
+\eqnlinesset{layout=left}
+\<
+ x &= \cos\phi \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\
+ &= -i\log z
+\>
+\end{scanexample}
+\showexampleh[0.35]
+\begin{scanexample}
+\<[tags=left,!]
+ x &= \cos\phi \\
+ &= (z+z^{-1})/2 \\
+\phi &= \arccos x \\
+ &= -i\log z
+\>
+\end{scanexample}
+\showexampleh[0.35]
+\end{example}
+
+\DescribeKey{margins}
\DescribeKey{mincolsep}
\DescribeKey{maxcolsep}
The horizontal alignment of columns is fixed for aligned multi-line equations:
@@ -585,14 +1031,33 @@
(option |margins=on|),
but it can be eliminated so that the outer columns
are pushed right to the margin (option |margins=off|).
-In addition, a minimum and maximum width can be specified
-for the column separation (|mincolsep=|\textit{dimen}
-and |maxcolsep=|\textit{dimen}).
-By default, no maximum column separation is set (|maxcolsep*|),
-and all horizontal space is used, otherwise a value
-of |2em| ($\equiv$|\qquad|) is suggested with the minimum separation
-set to |1em| ($\equiv$|\quad|) by default.
+A minimum and maximum column separation can be specified
+via |mincolsep=|\textit{dimen} and |maxcolsep=|\textit{dimen}
+(defaults are |2em| and |1em|)
+or the maximum column separation can be disabled by |maxcolsep*|
+(which is required for |margins=off| to take effect).
+\begin{example}
+\begin{scanexample}
+\<[maxcolsep=2em]
+ x &= \cos\phi & \phi &= \arccos x \\
+ &= (z+z^{-1})/2 & &= -i\log z \>
+\end{scanexample}
+\showexamplev
+\begin{scanexample}
+\<[maxcolsep*]
+ x &= \cos\phi & \phi &= \arccos x \\
+ &= (z+z^{-1})/2 & &= -i\log z \>
+\end{scanexample}
+\showexamplev
+\begin{scanexample}
+\<[maxcolsep*,margins=off]
+ x &= \cos\phi & \phi &= \arccos x \\
+ &= (z+z^{-1})/2 & &= -i\log z \>
+\end{scanexample}
+\showexamplev
+\end{example}
+
For stacks of equations including single equations,
there is just a single alignment column
whose horizontal alignment can be adjusted via a shape scheme or
@@ -618,8 +1083,55 @@
\end{center}
%
Note that the steps shape comes to use in the \ctanpkg{amsmath}
-environment |multline|. The alignment preset
-can be adjusted for individual lines by the macros:
+environment |multline|.
+
+\begin{example}
+\eqnlinesset{pad=2em}
+\begin{scanexample}
+\eqnlinesset{pad=2em}
+\<~[shape=...] x = \cos\phi \\ x = (z+z^{-1})/2 \\
+ \phi = \arccos x \\ \phi = -i\log z \>
+\end{scanexample}
+\qquad\parbox{0.8\textwidth}{\printexample}
+\par\medskip
+\makebox[0.33\textwidth]{|left|:}\hfil
+\makebox[0.33\textwidth]{|center|:}\hfil
+\makebox[0.33\textwidth]{|right|:}\par\smallskip
+\begin{minipage}{0.33\textwidth}
+\<~[shape=left] x = \cos\phi \\ x = (z+z^{-1})/2 \\
+ \phi = \arccos x \\ \phi = -i\log z \>
+\end{minipage}\vrule\hfill
+\begin{minipage}{0.33\textwidth}
+\<~[shape=center] x = \cos\phi \\ x = (z+z^{-1})/2 \\
+ \phi = \arccos x \\ \phi = -i\log z \>
+\end{minipage}\vrule\hfill
+\begin{minipage}{0.33\textwidth}
+\<~[shape=right] x = \cos\phi \\ x = (z+z^{-1})/2 \\
+ \phi = \arccos x \\ \phi = -i\log z \>
+\end{minipage}
+\par\medskip
+\makebox[0.33\textwidth]{|first|:}\hfil
+\makebox[0.33\textwidth]{|hanging|:}\hfil
+\makebox[0.33\textwidth]{|steps|:}\par\smallskip
+\begin{minipage}{0.33\textwidth}
+\<~[shape=first] x = \cos\phi \\ x = (z+z^{-1})/2 \\
+ \phi = \arccos x \\ \phi = -i\log z \>
+\end{minipage}\vrule
+\begin{minipage}{0.33\textwidth}
+\<~[shape=hanging] x = \cos\phi \\ x = (z+z^{-1})/2 \\
+ \phi = \arccos x \\ \phi = -i\log z \>
+\end{minipage}\vrule
+\begin{minipage}{0.33\textwidth}
+\<~[shape=steps] x = \cos\phi \\ x = (z+z^{-1})/2 \\
+ \phi = \arccos x \\ \phi = -i\log z \>
+\end{minipage}
+\end{example}
+
+\DescribeInterfaceMacro{\shoveleft}
+\DescribeInterfaceMacro{\shovecenter}
+\DescribeInterfaceMacro{\shoveright}
+\DescribeKey{indent}
+The alignment preset can be adjusted for individual lines by the macros:
%
\begin{center}
|\shoveleft|[|*|$\vert$|!|$\vert$|[|\textit{dimen}|]|],
@@ -632,7 +1144,6 @@
In contradistinction to \ctanpkg{amsmath},
these macros do not require to specify the cell contents as their argument
(but there is no harm in doing so).
-\DescribeKey{indent}
The macro |\shoveleft| also accepts the modifiers
`|*|' or `|!|' for indentation or hanging indentation by
the standard indentation amount (|indent|=|2em|)
@@ -650,44 +1161,31 @@
Note that |indent*={|\textit{dimen}|}| sets the default indentation amount
and the left padding at the same time.
-\DescribeKey{layout}
-\DescribeKey{center}
-\DescribeKey{left}
-Finally, the overall layout can be adjusted between central and left alignment
-via |layout=center|, |layout=left| or |center|, |left| for short.
+\begin{example}
+\begin{scanexample}
+\eqnlinesset{indent=2em,pad=5em}
+\<~
+\shoveleft \framebox[5em]{left} \\
+\shoveleft* \framebox[5em]{indent} \\
+\shovecenter \framebox[5em]{center} \\
+\shoveright \framebox[5em]{right}
+\>
+\end{scanexample}
+\showexampleh[0.55]
+\begin{scanexample}
+\eqnlinesset{layout=left}
+\eqnlinesset{leftmargin=2em}
+\eqnlinesset{indent=2em}
+\<~
+\shoveleft! \framebox[5em]{outdent} \\
+\shoveleft \framebox[5em]{left} \\
+\shoveleft* \framebox[5em]{indent} \\
+\shoveright \framebox[5em]{right}
+\>
+\end{scanexample}
+\showexampleh[0.55]
+\end{example}
-\DescribeKey{tagmargin}
-\DescribeKey{tagmargin*}
-\DescribeKey{tagmargincalc}
-\DescribeKey{tagmarginratio}
-In central alignment layout, there is the option of imposing a tag margin
-|tagmargin={|\textit{dimen}|}|
-which allocates some space to the tag
-such that equation content is centred in the remaining horizontal space.
-The margin can also be set to the width of some text by
-|tagmargin*={|\textit{text}|}| or it can be calculated
-as the maximum width of tags by |tagmargincalc|.
-The option |tagmarginratio={|\textit{ratio}|}|
-uses the tag margin only for equation blocks
-with a ratio of tags to rows above the given (decimal) ratio
-(a value above 1 uses the tag margin only for single equations with tags).
-The option |tagmarginthreshold={|\textit{threshold}|}|
-uses the tag margin only if the ratio of spacings is below
-the given (decimal) threshold.
-The latter two options together with some tag margin
-can produce a more appealing layout for equation blocks of mixed filling.
-
-\DescribeKey{leftmargin}
-\DescribeKey{leftmargin*}
-\DescribeKey{minleftmargin}
-\DescribeKey{maxleftmargin}
-In left alignment layout, all equations are left aligned to a left margin
-(|leftmargin| is initialised
-to the first level of enumerations and itemisations).
-It can be set to the width of some text by |leftmargin*={|\textit{text}|}|.
-Depending on the situation, the left margin may be
-reduced or extended to |minleftmargin| or |maxleftmargin|, respectively.
-
\DescribeKey{marginbadness}
\DescribeKey{maxbadness}
Finally, we note that within single and stacked equations,
@@ -702,6 +1200,42 @@
raises or lowers the equation tag if needed.
Small values prevent shrinking and higher values allow for more compression.
+\begin{example}
+\begin{scanexample}
+\<~!
+x+x \\
+x+x+x+x \\
+x+x+x+x+x+x \\
+x+x+x+x+x+x+x+x \\
+x+x+x+x+x+x+x+x+x+x \\
+x+x+x+x+x+x+x+x+x+x+x+x \\
+\>
+\end{scanexample}
+\showexampleh[0.6]
+\end{example}
+
+\DescribeKey{mintagsep}
+\DescribeInterfaceMacro{\raisetag}
+If the available space on a line does not suffice to place
+both the equation and its tag
+(with a minimum separation of |mintagsep|; default is |0.5em|),
+a tag will automatically be lowered or raised
+(depending on whether it is placed on the right or left).
+The macro |\raisetag| may be used to fine-tune the vertical placement
+(applies only if the tag is already shifted due to lack of space).
+
+\begin{example}
+\begin{scanexample}
+\[! \phi = -\int \frac{\mathrm{d}x}{\sqrt{1+x^2}} \]
+\end{scanexample}
+\showexampleh[0.8]
+\begin{scanexample}
+\[! x = \frac{\partial}{\partial \phi}\sin\phi
+ \raisetag{0.45\baselineskip} \]
+\end{scanexample}
+\showexampleh[0.85]
+\end{example}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Punctuation}
\label{sec:puctuation}
@@ -718,6 +1252,11 @@
\DescribeKey{punct}
The package supplies a semi-automatic scheme by which
equations are terminated by a specific punctuation mark.
+\footnote{Clearly, the implementation of the scheme
+will takes higher efforts than direct coding.
+Hence, the scheme can be useful in situations
+where equations typically terminate phrases or
+where punctuation is otherwise expected in regular patterns.}
Punctuation marks are set by:
%
\begin{center}
@@ -741,13 +1280,34 @@
The default behaviour can be adjusted to a comma `|,|'
for an individual equation
by declaring `|\eqnpunct,|' before the equation
-(i.e.\ at the end of the textual phrase to which the punctuation mark belongs)
+(i.e.\ at the end of the textual phrase to which the punctuation mark belongs),
+at the end of the equation
or by using the optional argument |[punct={,}]|.
-Likewise, |\eqnpunct{}| and |[punct={}]| eliminate a preset punctuation.
+Likewise, |\eqnpunct{}| and |[punct{}]| eliminate a preset punctuation.
+\begin{example}
+\eqnlinesset{skip=6pt}
+\begin{scanexample}
+\eqnpunctmain.
+The equation
+\[ x = \cos\phi \eqnpunct{} \]
+can also be written as
+\eqnpunct,
+\[ x = (z+z^{-1})/2 \]
+where we assume
+\[ z = \exp(i\phi) \]
+\end{scanexample}
+\showexampleh
+\end{example}
+
+\DescribeInterfaceMacro{\eqnpunctapply}
+In situations, where the punctuation must appear before the end
+of the block, e.g.\ before a ``q.e.d.'',
+it can be invoked manually by |\eqnpunctapply|.
+
\DescribeKey{punctsep}
For convenience, one may also specify a desired space
-(or any other sequence) preceding the punctuation
+(or any other code sequence) preceding the punctuation
by |[punctsep={|\textit{sep}|}]|,
e.g.\ \textit{sep}=|\,| or \textit{sep}=|\|\texttt{\textvisiblespace}.
@@ -762,6 +1322,19 @@
A punctuation item may also be handed on to the next lower level
of punctuation via the starred forms |punct*| and |punctline*|.
+\begin{example}
+\begin{scanexample}
+\eqnpunctcol, \eqnpunctline;
+\eqnpunctmain.
+\< x &= \cos\phi &
+\phi &= \arccos x \\
+ x &= (z+z^{-1})/2 &
+\phi &= -i\log z \>
+\end{scanexample}
+\showexampleh[0.4]
+\end{example}
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Math Classes at Alignment}
\label{sec:classes}
@@ -802,7 +1375,27 @@
the alignment marker. Furthermore, in case of an empty left alignment cell,
the leading math class is changed to |\mathord{}|
so that a following binary operator is not interpreted as a unary one.
+For example, the following two expressions produce (almost) identical output:
+\begin{example}
+\begin{scanexample}
+\<[class=ampeq]
+a &= b+c \\
+ &= d-e \\
+ &\mathrel{}\phantom{=} +f
+\>
+\end{scanexample}
+\showexampleh
+\begin{scanexample}
+\<[class=eqamp]
+a =& b+c \\
+ =& d-e \\
+ & +f
+\>
+\end{scanexample}
+\showexampleh
+\end{example}
+
\DescribeKey{classout}
\DescribeKey{classin}
\DescribeKey{classlead}
@@ -817,18 +1410,23 @@
|classlead={|\textit{class}|}|.
\end{center}
%
-The parameter |classlead| determines the math class just after the alignment
+The parameter |classlead| alternatively |classin*|
+determines the math class just after the alignment
if the cell before alignment is empty.
-
-For example, the following two expressions produce identical output:
+The spacing at the alignment is determined by the pairing
+of the last/first character and the selected math class at the alignment:
%
-\begin{center}
-\begin{tabular}{l}
-|\<[ampeq] a &= b+c \\ &= d-e \\ &\mathrel{}\phantom{=} +f \>|
+\<[classin={},classout={},classlead={}]
+\framebox[1em]{\bstrut}\ \framebox[1em]{\bstrut}\
+\framebox[1em]{\bstrut a}\ \underline{\makebox[3em]{\itshape a-out}}
+\ \vrule&
+\ \underline{\makebox[3em]{\itshape in-b}}\ \framebox[1em]{\bstrut b}
+\ \framebox[1em]{\bstrut}\ \framebox[1em]{\bstrut}
\\
-|\<[eqamp] a =& b+c \\ =& d-e \\ & +f \>|
-\end{tabular}{l}
-\end{center}
+\vrule&
+\ \underline{\makebox[3em]{\itshape lead-c}}\ \framebox[1em]{\bstrut c}
+\ \framebox[1em]{\bstrut}\ \framebox[1em]{\bstrut}
+\>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Vertical Spacing}
@@ -838,7 +1436,7 @@
of the surrounding text.
Hence, the vertical spacing depends on the surrounding text,
in particular on the width and depth of the last line of text.
-Due to this influence it can be difficult to control
+Due to this influence it can be difficult to manually adjust
the spacing accurately.
The package adds several options to control the vertical spacing,
and it also implements a uniform behaviour for all types of equations.
@@ -872,21 +1470,33 @@
and less glue is needed above the equation.
The package implements this basic \TeX{} feature
for all single- and multi-line equation environments.
+
+\begin{example}
+\begin{scanexample}
+example of a long text line:
+\[ \mbox{long mode} \]
+vs.\ short:
+\[ \mbox{short mode} \]
+following line
+\end{scanexample}
+\showexampleh
+\end{example}
+
\TeX{} also reduces the amount of glue below short equations
(potentially to make their spacing appear more uniform).
\DescribeKey{shortmode}
The package allows to adjust the spacing for short equations
-via the global option |shortmode={|\textit{mode}|}|
+via the global option |shortmode=|\textit{mode}
where \textit{mode} takes the values:
%
\begin{center}
\begin{tabular}{lll}
-name & reduced glue \\
+\textit{mode} & reduced glue \\
\hline
|off| & disabled \\
-|above| & above short equations \\
+|above| & above short equations (package default) \\
|belowone| & also below short single-line equations \\
-|belowall| & also below all short single-line equations \\
+|belowall| & also below all short multi-line equations \\
\end{tabular}
\end{center}
%
@@ -897,6 +1507,45 @@
via the optional arguments |short| and |long|
taking the values |above|, |below| or |both|.
+\begin{example}
+\begin{scanexample}
+example of a long text line:
+\[[short] \mbox{forced short} \]
+and short:
+\[[long] \mbox{forced long} \]
+following line
+\end{scanexample}
+\showexampleh
+\end{example}
+
+There are three special situations |cont|, |par| and |top|
+which trigger different spacings:
+|cont| describes the situation
+at the start of an empty horizontal list
+(invoked by |\noindent|)
+or when an equation block directly follows another one;
+here, the space above the equation should be minimal
+(or even negative to remove the space below the previous equation block).
+|par| describes the situation at the beginning of a paragraph
+(invoked by |\par|);
+here, the space above the equation adds to the space between paragraphs.
+|top| describes the situation at the top of a vertical list
+(invoked by |\nointerlineskip|);
+here, one would typically want no space.
+
+\begin{example}
+\eqnlinesset{belowtopmode=long}
+\begin{scanexample}
+\hrule\begin{minipage}{\linewidth}
+\[ \mbox{top} \]
+some text\par
+\[ \mbox{par} \]
+\[ \mbox{cont} \]
+\end{minipage}\hrule
+\end{scanexample}
+\showexampleh
+\end{example}
+
Third, the package provides several means to adjust the
glue around equations:
@@ -908,6 +1557,19 @@
or removed altogether via |noskip|.
These keys also take the values |above|, |below| or |both|.
+\begin{example}
+\begin{scanexample}
+\hrule
+\[[long] \mbox{long default} \]
+\hrule
+\[[medskip] \mbox{medium space} \]
+\hrule
+\[[noskip] \mbox{no space} \]
+\hrule
+\end{scanexample}
+\showexampleh
+\end{example}
+
\DescribeKey{par}
The key |par| controls whether
the equation environments end in horizontal mode (value |cont|)
@@ -937,7 +1599,7 @@
\begin{tabular}{lll}
\ldots\textit{pos}|skip| & both & description \\
\hline
-|...long...| & |skip| & standard amount of glue \\
+|...long...| & |longskip| & regular amount of glue \\
|...short...| & -- & reduced glue for short equations \\
|...cont...| & -- & glue when issued from an empty |\noindent| paragraph \\
|...par...| & -- & glue when starting a paragraph (in vertical mode)\\
@@ -944,27 +1606,30 @@
|...top...| & -- & glue when issued at the top of vertical list \\
|...med...| & |medskip| & medium amount of glue \\\hline
|...tag...| & |tagskip| & glue for outer raised/lowered tags \\
-|...medtag...| & |medtagskip| & glue for outer raised/lowered tags with med \\
-|...partag...| & -- & glue for outer raised/lowered tags with par \\
+|...medtag...| & |medtagskip| & glue for outer raised/lowered tags with medium glue \\
+|...partag...| & -- & glue for outer raised/lowered tags with par skip \\
\end{tabular}
\end{center}
%
\DescribeKey{...mode}
-The situations |cont|, |par| and |top| use the respective glue |above...skip|
-above the equations.
-By default they use |belowlongskip| below the equations, but this setting
-may be adjusted by the global option \textit{pos}|mode|
+The situations \textit{pos}=|cont|, |par| and |top|
+use the respective amount of glue |above|\textit{pos}|skip|
+above the equations and the regular amount of glue |belowlongskip| below.
+These behaviours may be adjusted by the global options
+|above|\textit{pos}|mode| and |below|\textit{pos}|mode|
with the values:
%
\begin{center}
\begin{tabular}{lll}
-name & reduced glue \\
+value & reduced glue \\
\hline
-|long| & regular amount below equations \\
-|short| & short amount below equations \\
-|cont| & |cont| amount below equations \\
-|par| & end the paragraph (only |parmode| and |topmode|) \\
-|top| & end the paragraph without interline skip (|topmode| only) \\
+|long| & regular amount of glue \\
+|short| & reduced glue for short equations \\
+|cont| & amount for empty paragraph \\
+|par| & amount for paragraph (and end the paragraph) \\
+|top| & amount for top (and end the paragraph without interline skip) \\
+|noskip| & no glue \\
+|medskip| & medium amount of glue \\
\end{tabular}
\end{center}
@@ -1008,12 +1673,37 @@
which can be used within arbitrary math content.
It works analogously to |equations| including optional arguments
and modifiers, but it offers a reduced range of functionality
-such as (evidently) no numbering.
+such as (evidently) no numbering
+(yet, the |lines| mode accepts multiple columns here).
Additional arguments are given by
|margin|, |marginleft|, |marginright|
which specify additional margin space
around the equations box.
+\begin{example}
+\begin{scanexample}
+\[\left\{
+\begin{equationsbox}[margin=2em]
+ x &= \cos\phi \\
+\phi &= \arccos x
+\end{equationsbox}
+\right\}\]
+\end{scanexample}
+\showexampleh
+
+\begin{scanexample}
+\[\left[
+\begin{equationsbox}~[shape=l]
+ x = \cos\phi &
+\phi = \arccos x \\
+ x = (z+z^{-1})/2 &
+\phi = -i\log z
+\end{equationsbox}
+\right]\]
+\end{scanexample}
+\showexampleh
+\end{example}
+
\DescribeEnv{subequations}
\DescribeKey{subeqtemplate}
The environment |subequations| group equations contained in the body
@@ -1021,13 +1711,25 @@
of numbering (typically: a,\,b,\,c,\,\ldots).
The numbering layout can be controlled via |subeqtemplate|.
For instance, the default behaviour of adding lowercase latin letters
-to the parent equation number (|\theparentequation|)
+to the parent equation number (|#1|)
is achieved by:
%
\begin{center}
-|subeqtemplate={\theparentequation\alph{equation}}|
+|subeqtemplate={#1\alph{#2}}|
\end{center}
+\begin{example}
+\begin{scanexample}
+\eqnlinesset
+ {subeqtemplate={#1-\roman{#2}}}
+\begin{subequations}
+\[! x = \cos\phi \]
+and
+\[! \phi = \arccos x \]
+\end{subequations}
+\end{scanexample}
+\showexampleh[0.55]
+\end{example}
\DescribeEnv{intertext}
\DescribeInterfaceMacro{\intertext}
@@ -1041,6 +1743,15 @@
The environment accepts several of the vertical spacing adjustments
as an optional argument.
+\begin{example}
+\begin{scanexample}
+\< x &= \cos\phi
+\intertext[medskip]{and}
+\phi &= \arccos x \>
+\end{scanexample}
+\showexampleh
+\end{example}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{General Options}
\label{sec:auxiliary}
@@ -1071,7 +1782,7 @@
& mimic classic \LaTeX/\ctanpkg{amsmath} (layout and dimensions) \\
|defaults=eqnlines|
& \ctanpkg{eqnlines} layout with fontsize-relative dimensions \\
-|rescan| & rescan environment body to allow special commands (e.g.\ |\verb|) \\
+|rescan| & rescan environment body for special commands (e.g.\ |\verb|) \\
|linesfallback| & single column in align mode reverts to lines mode \\
|ampproof| & equip optional argument parsing with protection for |&| \\
|crerror| & invoke an error when `|\\|' is used in a single equation \\
@@ -1092,13 +1803,16 @@
|equation| & bool & provide/overwrite |equation| and |\[|\ldots|\]| \\
|amsmath| & bool & provide/overwrite \ctanpkg{amsmath}
environments and macros \\
+|amsmathends| & bool & patch \ctanpkg{amsmath} environments
+ with individual endings \\
|ang| & bool & provide |\<|\ldots|\>| \\
+|eqref| & bool & provide |\eqref| \\
\end{tabular}
\end{center}
-%
If the above settings are explicitly disabled, the package will only supply
-the general purpose environment |equations| and its boxed cousin |equationsbox|.
+the general purpose environment |equations|
+and its boxed cousin |equationsbox|.
In that case, the specific equation environments and other features
can be activated by the command:
%
@@ -1119,8 +1833,7 @@
provide environment \textit{env} as \textit{name} \\
|sqr| & provide |\[|\ldots|\]| \\
|ang| & provide |\<|\ldots|\>| \\
-\textit{cmd} & provide/overwrite macro |\|\textit{cmd}:\\
-& |eqref|, |notag|, |thetag|, |allowdisplaybreaks|, |numberwithin| \\
+|eqref| & provide/overwrite macro |eqref| \\
|tagform| & provide/overwrite macro |\tagform@|\\
|maketag| & provide/overwrite macro |\maketag@@@|\\
\end{tabular}
@@ -1304,21 +2017,12 @@
%
\begin{itemize}
\item
-a proper manual
+documentation for all features
%
\item
complete code documentation
%
\item
-sample document
-%
-\item
-version of |\eqref| that can handle multiple references and ranges
-enclosed by the default formatting for equation tags
-% syntax such as a - b, c, d (spaces to separate?, labels enclosed by {}?)
-% or completely manual such as \eqref*{\ref{...}--\ref{...},~\ref{...}}
-%
-\item
switch to allow scanning of |\par| within body
%
\item
@@ -1363,6 +2067,22 @@
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph{v0.7:} 2025/04/03
+
+\begin{itemize}
+\item
+manual expanded, examples added
+\item
+fixes for numbering, tagging, options, |linesfallback|, zero lines
+\item
+expansions for vertical spacing modes, tag display, |subeqtemplate|
+\item
+some consolidations
+\item
+internal rearrangements
+\end{itemize}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\paragraph{v0.6.1:} 2025/03/27
\begin{itemize}
@@ -1372,7 +2092,7 @@
|numberline=none| now acts as |numberline=all| and |nonumber|
\item
fixed and extended |tagmargin|
-with |tagmargincalc|, |tagmarginratio| and |tagmarginthreshold|
+with |tagmarginratio| and |tagmarginthreshold|
\item
padding now applies to single-line equations as well
\end{itemize}
@@ -1737,7 +2457,7 @@
% \end{macrocode}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Tagging Support}
+% \subsection{PDF Tagging Support}
%
% \macro{\eql at tagging@...}
% Proper PDF tagging
@@ -1849,28 +2569,28 @@
\let\eql at tagsleft\eql at false
% \end{macrocode}
%
-% \ebool{\eql at flushleft}
-% The boolean parameter |\eql at flushleft|
+% \ebool{\eql at layoutleft}
+% The boolean parameter |\eql at layoutleft|
% specifies whether to use left or central alignment layout:
% \begin{macrocode}
-\let\eql at flushleft\eql at false
+\let\eql at layoutleft\eql at false
% \end{macrocode}
%
-% \ldimen{\eql at flushleftmargin@}
-% \macro{\eql at flushleftmargin@val}
-% \ldimen{\eql at flushleftmarginmin@}
-% \ldimen{\eql at flushleftmarginmax@}
+% \ldimen{\eql at layoutleftmargin@}
+% \macro{\eql at layoutleftmargin@val}
+% \ldimen{\eql at layoutleftmarginmin@}
+% \ldimen{\eql at layoutleftmarginmax@}
% The default width of the left margin in left alignment layout
-% is specified by |\eql at flushleftmargin@|.
-% It may be pushed down to |\eql at flushleftmarginmin@|
-% and up to |\eql at flushleftmarginmax@|:
+% is specified by |\eql at layoutleftmargin@|.
+% It may be pushed down to |\eql at layoutleftmarginmin@|
+% and up to |\eql at layoutleftmarginmax@|:
% \begin{macrocode}
-\newdimen\eql at flushleftmargin@
-\newdimen\eql at flushleftmarginmin@
-\newdimen\eql at flushleftmarginmax@
-\def\eql at flushleftmargin@val{\leftmargini}
-\eql at flushleftmarginmin@\z@
-\eql at flushleftmarginmax@.5\maxdimen
+\newdimen\eql at layoutleftmargin@
+\newdimen\eql at layoutleftmarginmin@
+\newdimen\eql at layoutleftmarginmax@
+\def\eql at layoutleftmargin@val{\leftmargini}
+\eql at layoutleftmarginmin@\z@
+\eql at layoutleftmarginmax@.5\maxdimen
% \end{macrocode}
%
% \ldimen{\eql at tagmargin@}
@@ -1939,11 +2659,11 @@
\def\eql at box@colsep{2em}
% \end{macrocode}
%
-% \macro{\eql at spread}
-% The extra spread of equation lines is specified by |\eql at spread|:
+% \macro{\eql at spread@val}
+% The extra spread of equation lines is specified by |\eql at spread@val|:
% \begin{macrocode}
-\def\eql at spread{\jot}
-\newdimen\eql at spread@amount@
+\def\eql at spread@val{\jot}
+\newdimen\eql at spread@
% \end{macrocode}
%
% \ldimen{\eql at tagfuzz@}
@@ -1968,8 +2688,8 @@
\def\eql at display@depth{\dp\eql at strutbox@}
% \end{macrocode}
%
-% \tcounter{\eql at skip@mode at short@}
-% The setting |\eql at skip@mode at short@| specifies
+% \macro{\eql at skip@mode at short}
+% The setting |\eql at skip@mode at short| specifies
% when a reduced amount of glue should be used around equations
% in case the text line above the equation fits in the space
% that is left available in the first equation line.
@@ -1978,23 +2698,22 @@
% value |2| furthermore reduces the glue below a single equation line and
% value |3| also reduces the glue below multi-line equations:
% \begin{macrocode}
-\newcount\eql at skip@mode at short@
-\eql at skip@mode at short@\tw@
+\def\eql at skip@mode at short{2}
% \end{macrocode}
%
% \begin{macrocode}
-\newcount\eql at skip@mode at cont@
-\eql at skip@mode at cont@\z@
+\def\eql at skip@mode at cont@above{2}
+\def\eql at skip@mode at cont@below{0}
% \end{macrocode}
%
% \begin{macrocode}
-\newcount\eql at skip@mode at par@
-\eql at skip@mode at par@\z@
+\def\eql at skip@mode at par@above{3}
+\def\eql at skip@mode at par@below{0}
% \end{macrocode}
%
% \begin{macrocode}
-\newcount\eql at skip@mode at top@
-\eql at skip@mode at top@\z@
+\def\eql at skip@mode at top@above{4}
+\def\eql at skip@mode at top@below{0}
% \end{macrocode}
%
% \begin{macrocode}
@@ -2101,7 +2820,7 @@
% \paragraph{Multi-Line Align Mode.}
%
% \begin{macrocode}
-\let\eql at align@margins\eql at true
+\let\eql at columns@margins\eql at true
% \end{macrocode}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2180,9 +2899,9 @@
\newdimen\eql at colsep@
% \end{macrocode}
%
-% \tcounter{\eql at align@inter@}
+% \tcounter{\eql at columns@inter@}
% \begin{macrocode}
-\newcount\eql at align@inter@
+\newcount\eql at columns@inter@
% \end{macrocode}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2375,6 +3094,7 @@
% \end{macrocode}
%
% \macro{\eql at punct@apply at block}
+% \imacro{\eqnpunctapply}
% Outputs the punctuation for the current equation block unless disabled
% in analogy to |\eql at punct@apply at line|:
% \begin{macrocode}
@@ -2391,6 +3111,7 @@
\let\eql at punct@col\@empty
\fi
}
+\let\eqnpunctapply\eql at punct@apply at block
% \end{macrocode}
%
%
@@ -2455,258 +3176,6 @@
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \section{Equations Box Environment}
-%
-% \TODO describe
-%
-% \TODO fixed width version (works only towards intercolumn stretch)?
-%
-% \macro{\eql at box@cr}
-% \begin{macrocode}
-\protected\def\eql at box@cr{%
- \eql at ampprotect\eql at testopt@tight\eql at box@cr@\z@
-}
-\def\eql at box@cr@[#1]{%
- \eql at punct@apply at line
- \eql at hook@lineout
- \eql at box@lastfield
- \cr
- \noalign{%
- \vskip\glueexpr#1\relax
- }%
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\let\eql at box@box\vcenter
-% \end{macrocode}
-%
-% \begin{macrocode}
-\def\eql at box@lastfield at odd{%
- &\omit
- \kern-\wd\eql at fieldbox@
- \box\eql at fieldbox@
- \hfil
- &\omit\kern-\eql at colsep@
-}%
-\def\eql at box@lastfield at even{&\omit\kern-\eql at colsep@}
-\def\eql at box@lastfield at lines{&\omit\kern-2\eql at colsep@}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\def\eql at box@open at align{%
-% \TODO templates
- \let\eql at box@lastfield\@empty
- \eql at halign@init{%
-%<dev>\eql at dev{starting new line}%
- }%
- \tabskip\z at skip
- \halign\bgroup
- &%
- \let\eql at box@lastfield\eql at box@lastfield at odd
- \global\setbox\eql at fieldbox@\hbox{%
- \eql at strut@field
- \@lign
- $\m at th\displaystyle
- \eql at hook@colin
- ##%
- \eql at class@innerleft
- \eql at hook@innerleft
- \eql at tagging@mathsave
- $%
- \eql at tagging@mathaddlast
- }%
- \hfil
- \kern\wd\eql at fieldbox@
- \tabskip\z at skip
- &%
- \eql at fieldwidth@\wd\eql at fieldbox@
- \kern-\eql at fieldwidth@
- \box\eql at fieldbox@
- \let\eql at box@lastfield\eql at box@lastfield at even
- \llap{\unhbox\eql at fieldbox@}%
- \hbox{%
- \eql at strut@field
- \@lign
- $\m at th\displaystyle
- \eql at hook@innerright
- \eql at class@innerright at sel
- ##%
- \eql at punct@apply at col
- \eql at hook@colout
- \eql at tagging@mathsave
- $%
- \eql at tagging@mathaddlast
- }%
- \hfil
- \tabskip\eql at colsep@\relax
- \crcr
- \noalign{%
- \eql at hook@blockbefore
- }%
- \eql at hook@blockin
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\def\eql at box@open at lines{%
-% \TODO templates
- \let\shoveleft\eql at adjust@shoveleft
- \let\shovecenter\eql at adjust@shovecenter
- \let\shoveright\eql at adjust@shoveright
- \let\eql at box@lastfield\eql at box@lastfield at lines
- \eql at halign@init{%
-%<dev>\eql at dev{starting line \the\eql at row@}%
- \global\advance\eql at row@\@ne
- }%
- \tabskip\z at skip
- \halign\bgroup
- &%
- \eql at shape@pos@\m at ne
- \setbox\eql at fieldbox@\hbox{%
- \eql at strut@field
- \@lign
- $\m at th\displaystyle
- \eql at hook@colin
- ##%
- \eql at punct@apply at col
- \eql at hook@colout
- \eql at tagging@mathsave
- $%
- \eql at tagging@mathaddlast
- }%
- \ifnum\eql at shape@pos@=\m at ne
- \eql at shape@eval
- \fi
- \ifcase\eql at shape@pos@
- \kern\eql at shape@amount@
- \box\eql at fieldbox@
- \skip@\@flushglue
- \advance\skip@\eql at paddingleft@\relax
- \advance\skip@\eql at paddingright@\relax
- \advance\skip at -\eql at shape@amount@\relax
- \hskip\skip@
- \eql at tagging@alignleft
- \or
- \skip@\@flushglue
- \advance\skip@\eql at paddingleft@\relax
- \hskip\skip@
- \box\eql at fieldbox@
- \skip@\@flushglue
- \advance\skip@\eql at paddingright@\relax
- \hskip\skip@
- \eql at tagging@aligncenter
- \or
- \skip@\@flushglue
- \advance\skip@\eql at paddingleft@\relax
- \advance\skip@\eql at paddingright@\relax
- \hskip\skip@
- \box\eql at fieldbox@
- \eql at tagging@alignright
- \fi
- \tabskip\eql at colsep@\relax
- \crcr
- \noalign{%
- \eql at hook@blockbefore
- }%
- \eql at hook@blockin
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\def\eql at box@close{%
- \ifvmode\else
- \global\eql at totalrows@\eql at row@
- \eql at punct@apply at block
- \eql at box@cr@[\z at skip]%
- \fi
- \crcr
- \noalign{%
- \eql at hook@blockafter
- }%
- \eql at tagging@tablesaveinner
- \egroup
-}
-% \end{macrocode}
-%
-% \macro{\eql at box@start}
-% \begin{macrocode}
-\def\eql at box@start{%
- \relax
- \ifmmode
- \let\eql at box@endmath\@empty
- \else
- $\let\eql at box@endmath=$%
- \fi
- \eql at nextopt@process{equationsbox}%
- \let\eql at punct@block\eql at punct@main
- \let\eql at punct@main\relax
- \eql at colsep@\glueexpr\eql at box@colsep\relax
- \eql at paddingleft@\glueexpr\eql at paddingleft@val\relax
- \eql at paddingright@\glueexpr\eql at paddingright@val\relax
- \eql at indent@\glueexpr\eql at indent@val\relax
- \eql at stack@save at boxed
- \let\eql at flushleft\eql at false
- \eql at row@\z@
- \eql at totalrows@\@M
- \eql at shape@sel
- \hskip\glueexpr\eql at box@marginleft\relax
- \eql at box@box\bgroup
- \eql at display@leave
- \let\\\eql at box@cr
- \ifdefined\eql at box@mode at lines
- \expandafter\eql at box@open at lines
- \else
- \expandafter\eql at box@open at align
- \fi
-}
-% \end{macrocode}
-%
-% \macro{\eql at box@end}
-% \begin{macrocode}
-\newcommand{\eql at box@end}{%
- \eql at box@close
- \egroup
- \eql at tagging@tableaddinner
- \hskip\glueexpr\eql at box@marginright\relax
- \eql at stack@restore
- \eql at box@endmath
-}
-% \end{macrocode}
-%
-% \environment{equationsbox}
-% \begin{macrocode}
-\newenvironment{equationsbox}{%
-%<dev>\eql at dev@enterenv
- \eql at ampprotect\eql at box@testall\eql at box@start
-}{%
- \eql at box@end
-%<dev>\eql at dev@leaveenv
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\def\eql at box@testall{\eql at box@testtilde}
-\def\eql at box@testtilde#1{%
- \eql at ifnextgobble@tight~%
- {\eqnaddopt{lines}\eql at box@testopt{#1}}%
- {\eql at box@testopt{#1}}}
-\def\eql at box@testopt#1{%
- \eql at ifnextchar@tight[%]
- {\eql at box@addopt{#1}}%
- {#1}}
-\def\eql at box@addopt#1[#2]{\eqnaddopt{#2}#1}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\def\eql at mode@aligned{\let\eql at box@mode at lines\eql at false}
-\def\eql at mode@lined{\let\eql at box@mode at lines\eql at true}
-\eql at mode@aligned
-% \end{macrocode}
-%
-%
-% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section{Equation Numbering}
%
% \TODO describe
@@ -2741,6 +3210,20 @@
\def\eql at tag@boxedform#1{\eql at tag@box{\eql at tag@form{#1}}}
% \end{macrocode}
%
+% \begin{macrocode}
+\DeclareRobustCommand{\tagform}{\eql at tag@form}
+\DeclareRobustCommand{\tagbox}{\eql at tag@box}
+\DeclareRobustCommand{\tagboxed}{\eql at tag@boxedform}
+% \end{macrocode}
+%
+% \macro{\eqref}
+% \ctanpkg{amsmath} defines the macro |\eqref|
+% to refer to equation labels in a proper format.
+% We provide it for completeness:
+% \begin{macrocode}
+\DeclareRobustCommand{\eql at eqref}[1]{\textup{\eql at tag@boxedform{\ref{#1}}}}
+% \end{macrocode}
+%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{Raise Tags.}
%
@@ -2762,11 +3245,15 @@
\eql at amsmath@let\raisetag\eql at raisetag@default
% \end{macrocode}
%
-% \TODO maybe introduce a star form to enforce raise?
+% \TODO maybe introduce a star form to enforce raise?
% \begin{macrocode}
-\def\eql at raisetag#1{\global\eql at raisetag@amount@\glueexpr#1\relax}%
+\def\eql at raisetag#1{\global\eql at raisetag@amount@\glueexpr#1\relax}
% \end{macrocode}
%
+% \begin{macrocode}
+\let\eql at raisetag@gobble\@gobble
+% \end{macrocode}
+%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Showkeys Integration}
%
@@ -3060,7 +3547,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at tagbox@print at right{%
+\def\eql at tagbox@print at tagsright{%
\kern-\wd\eql at tagbox@
\box\eql at tagbox@
}
@@ -3068,7 +3555,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at tagbox@print at left{%
+\def\eql at tagbox@print at tagsleft{%
\wd\eql at tagbox@\z@
\box\eql at tagbox@
}
@@ -3076,7 +3563,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at tagbox@print at right@raise{%
+\def\eql at tagbox@print at tagsright@raise{%
\ifnum\eql at row@=\eql at totalrows@
\global\advance\eql at raisetag@firstlast@\tw@
\fi
@@ -3089,7 +3576,7 @@
\box\eql at tagbox@
}}%
}
-\def\eql at tagbox@print at left@raise{%
+\def\eql at tagbox@print at tagsleft@raise{%
\ifnum\eql at row@=\@ne
\global\advance\eql at raisetag@firstlast@\@ne
\fi
@@ -3256,8 +3743,10 @@
% \imacro{\numberhere}
% \begin{macrocode}
\def\numberhere{%
- \ifmeasuring@
- \ifnum\eql at numbering@target@<\z@\else
+ \ifnum\eql at numbering@target@<\z@
+ \donumber
+ \else
+ \ifmeasuring@
\global\eql at numbering@target@\eql at row@
\fi
\fi
@@ -3268,8 +3757,10 @@
% \imacro{\numbernext}
% \begin{macrocode}
\def\numbernext{%
- \ifmeasuring@
- \ifnum\eql at numbering@target@<\z@\else
+ \ifnum\eql at numbering@target@<\z@
+ \nonumber
+ \else
+ \ifmeasuring@
\ifnum\eql at numbering@target@=\eql at row@
\global\advance\eql at numbering@target@\@ne
\fi
@@ -3288,9 +3779,21 @@
\let\eql at numbering@autotag\eql at true
\let\eql at numbering@blocklabel\@undefined
\let\eql at numbering@blocktag\@undefined
+\let\eql at numbering@warn\eql at true
% \end{macrocode}
%
% \begin{macrocode}
+\def\eql at numbering@autoenable{%
+ \global\@eqnswtrue
+ \ifx\eql at numbering@mode\eql at numbering@tab at here
+ \ifnum\eql at numbering@target@=\z@
+ \numberhere
+ \fi
+ \fi
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
\eql at amsmath@after{
\let\eql at print@eqnum at default\print at eqnum
\let\eql at incr@eqnum at default\incr at eqnum
@@ -3314,12 +3817,14 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at label@warn{%
+\def\eql at label{%
\ifdefined\eql at numbering@autolabel
- \global\@eqnswtrue
+ \eql at numbering@autoenable
\fi
- \ifdefined\eql at nextlabel
- \eql at warn@label at multiple\eql at nextlabel
+ \ifdefined\eql at numbering@warn
+ \ifdefined\eql at nextlabel
+ \eql at warn@label at multiple\eql at nextlabel
+ \fi
\fi
\global\edef\eql at nextlabel
}
@@ -3327,33 +3832,20 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at tag@warn{%
- \ifdefined\eql at numbering@autotag
- \global\@eqnswtrue
- \fi
- \ifdefined\eql at nexttag
- \eql at warn@tag at multiple
- \fi
- \eql at tag@makenext
-}
+\let\eql at label@gobble\@gobble
% \end{macrocode}
%
% \TODO describe
% \begin{macrocode}
-\def\eql at label@nowarn{%
- \ifdefined\eql at numbering@autolabel
- \global\@eqnswtrue
- \fi
- \global\edef\eql at nextlabel
-}
-% \end{macrocode}
-%
-% \TODO describe
-% \begin{macrocode}
-\def\eql at tag@nowarn{%
+\def\eql at tag{%
\ifdefined\eql at numbering@autotag
- \global\@eqnswtrue
+ \eql at numbering@autoenable
\fi
+ \ifdefined\eql at numbering@warn
+ \ifdefined\eql at nexttag
+ \eql at warn@tag at multiple
+ \fi
+ \fi
\eql at tag@makenext
}
% \end{macrocode}
@@ -3395,8 +3887,9 @@
%
% \begin{macrocode}
\def\eql at numbering@single at init{%
- \let\label\eql at label@warn
- \let\tag\eql at tag@warn
+ \let\eql at numbering@warn\eql at true
+ \let\label\eql at label
+ \let\tag\eql at tag
\let\raisetag\eql at raisetag
\eql at numbering@target@\m at ne
\let\eql at nextlabel\eql at blocklabel
@@ -3427,8 +3920,9 @@
%
% \begin{macrocode}
\def\eql at numbering@measure at init{%
- \let\label\eql at label@warn
- \let\tag\eql at tag@warn
+ \let\eql at numbering@warn\eql at true
+ \let\label\eql at label
+ \let\tag\eql at tag
\let\raisetag\eql at raisetag
\global\let\eql at nextlabel\eql at blocklabel
\ifdefined\eql at blocktag
@@ -3491,8 +3985,9 @@
% \begin{macrocode}
\def\eql at numbering@print at init{%
\ifnum\eql at numbering@target@<\z@
- \let\label\eql at label@nowarn
- \let\tag\eql at tag@nowarn
+ \let\eql at numbering@warn\eql at false
+ \let\label\eql at label
+ \let\tag\eql at tag
\let\raisetag\eql at raisetag
\let\eql at nextlabel\eql at blocklabel
\ifdefined\eql at blocktag
@@ -3501,9 +3996,9 @@
\let\eql at nexttag\@undefined
\fi
\else
- \let\label\@gobble
+ \let\label\eql at label@gobble
\let\tag\eql at tag@gobble
- \let\raisetag\eql at gobble
+ \let\raisetag\eql at raisetag@gobble
\fi
}
% \end{macrocode}
@@ -3878,6 +4373,13 @@
% \TODO must not use setlength or setcounter when calc is loaded
% \begin{macrocode}
\def\eql at display@close{%
+% \TODO temporary fix
+ \ifdefined\eql at tagging@on
+ \ifdefined\dollardollar at begin\else
+ \belowdisplayskip-\belowdisplayskip
+ \belowdisplayshortskip-\belowdisplayshortskip
+ \fi
+ \fi
\ifdim\eql at display@firstavail@<\z@
\eql at display@firstavail@\z@
\fi
@@ -3884,20 +4386,19 @@
\eql at skip@mode at leave@\z@
\ifdim\eql at halign@prevdepth@=\maxdimen
\ifdim\predisplaysize=-\maxdimen
- \eql at skip@mode at above@\tw@
- \eql at skip@mode at below@\eql at skip@mode at cont@
+ \eql at skip@mode at above@\eql at skip@mode at cont@above\relax
+ \eql at skip@mode at below@\eql at skip@mode at cont@below\relax
\else
\eql at skip@mode at above@\z@
\eql at skip@mode at below@\z@
\advance\eql at display@firstavail@\displayindent
\ifdim\eql at display@firstavail@>\predisplaysize
-% \TODO: process this here or in below ifcase for short?
- \ifcase\eql at skip@mode at short@
+ \ifcase\eql at skip@mode at short\relax
\or
\eql at skip@mode at above@\@ne
\or
\eql at skip@mode at above@\@ne
- \ifnum\eql at row@=\tw@
+ \ifnum\eql at totalrows@=\@ne
\eql at skip@mode at below@\@ne
\fi
\or
@@ -3908,29 +4409,25 @@
\fi
\else
\ifdim\eql at halign@prevdepth@=-\@m\p@
- \eql at skip@mode at above@4\relax
- \eql at skip@mode at below@\eql at skip@mode at top@
- \eql at skip@mode at leave@\z@
- \predisplaypenalty\z@
- \ifcase\eql at skip@mode at top@
- \or
- \or
- \or
- \eql at skip@mode at leave@\@ne
- \or
- \postdisplaypenalty\z@
- \eql at skip@mode at leave@\tw@
- \fi
+ \eql at skip@mode at above@\eql at skip@mode at top@above\relax
+ \eql at skip@mode at below@\eql at skip@mode at top@below\relax
\else
- \eql at skip@mode at above@\thr@@
- \eql at skip@mode at below@\eql at skip@mode at par@
- \eql at skip@mode at leave@\z@
- \predisplaypenalty\z@
- \ifnum\eql at skip@mode at par@=\thr@@
- \eql at skip@mode at leave@\@ne
- \fi
+ \eql at skip@mode at above@\eql at skip@mode at par@above\relax
+ \eql at skip@mode at below@\eql at skip@mode at par@below\relax
\fi
\fi
+ \ifcase\eql at skip@mode at above@
+ \or\or\or
+ \predisplaypenalty\z@
+ \or
+ \predisplaypenalty\z@
+ \fi
+ \ifcase\eql at skip@mode at below@
+ \or\or\or
+ \eql at skip@mode at leave@\@ne
+ \or
+ \eql at skip@mode at leave@\tw@
+ \fi
\ifdefined\eql at skip@force at above
\eql at skip@mode at above@\eql at skip@force at above\relax
\fi
@@ -3940,6 +4437,9 @@
\ifdefined\eql at skip@force at leave
\eql at skip@mode at leave@\eql at skip@force at leave\relax
\fi
+ \ifnum\eql at skip@mode at leave@>\z@
+ \postdisplaypenalty\z@
+ \fi
\ifodd\eql at raisetag@firstlast@
\ifcase\eql at skip@mode at above@
\abovedisplayskip\glueexpr\eql at skip@tag at above\relax
@@ -3972,7 +4472,7 @@
\or
\abovedisplayskip\z at skip
\or
- \abovedisplayskip\glueexpr\eql at skip@medtag at above\relax
+ \abovedisplayskip\glueexpr\eql at skip@med at above\relax
\or
\abovedisplayskip\glueexpr\eql at skip@custom at above\relax
\fi
@@ -4009,7 +4509,7 @@
\or
\belowdisplayskip\z at skip
\or
- \belowdisplayskip\glueexpr\eql at skip@medtag at below\relax
+ \belowdisplayskip\glueexpr\eql at skip@med at below\relax
\or
\belowdisplayskip\glueexpr\eql at skip@custom at below\relax
\fi
@@ -4024,8 +4524,10 @@
\advance\belowdisplayskip\eql at belowspace@
\advance\belowdisplayskip\eql at vspaceskip@
\count@\prevgraf
- \advance\count@\eql at row@
- \advance\count at -\tw@
+ \advance\count@\eql at totalrows@
+ \ifnum\count@>\z@
+ \advance\count@\m at ne
+ \fi
\prevgraf\count@
\global\eql at skip@mode at leave@\eql at skip@mode at leave@
% \TODO temporary fix
@@ -4088,11 +4590,11 @@
% \TODO note on \string\spread at equation
% \begin{macrocode}
\def\eql at halign@spread{%
- \eql at spread@amount@\glueexpr\eql at spread\relax
- \advance\eql at spread@amount@\normalbaselineskip
- \advance\eql at spread@amount at -\baselineskip
- \ifdim\eql at spread@amount@>\z@
- \openup\eql at spread@amount@
+ \eql at spread@\glueexpr\eql at spread@val\relax
+ \advance\eql at spread@\normalbaselineskip
+ \advance\eql at spread@-\baselineskip
+ \ifdim\eql at spread@>\z@
+ \openup\eql at spread@
\ifdefined\spread at equation
\let\spread at equation\@empty
\fi
@@ -4140,11 +4642,11 @@
\ifdim\skip@<\lineskiplimit
\skip@\lineskip
\fi
- \advance\skip at -\eql at spread@amount@\relax
+ \advance\skip at -\eql at spread@\relax
\vskip\skip@
\nointerlineskip
\else
- \vskip-\eql at spread@amount@\relax
+ \vskip-\eql at spread@\relax
\fi
\fi
}
@@ -4383,27 +4885,27 @@
}
% \end{macrocode}
%
-% \macro{\eql at shape@center at ...}
-% \macro{\eql at shape@left at ...}
+% \macro{\eql at shape@layoutcenter at ...}
+% \macro{\eql at shape@layoutleft at ...}
% Define the uniform shape schemes |left|, |center|, |right| and |default|
% for the central and left alignment layout.
% The scheme functions determine the desired alignment and indentation
% for the current row:
% \begin{macrocode}
-\def\eql at shape@center at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
-\def\eql at shape@center at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
-\def\eql at shape@center at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
-\let\eql at shape@center at default\eql at shape@center at center
-\def\eql at shape@left at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
-\def\eql at shape@left at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
-\def\eql at shape@left at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
-\let\eql at shape@left at default\eql at shape@left at left
+\def\eql at shape@layoutcenter at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
+\def\eql at shape@layoutcenter at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
+\def\eql at shape@layoutcenter at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
+\let\eql at shape@layoutcenter at default\eql at shape@layoutcenter at center
+\def\eql at shape@layoutleft at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
+\def\eql at shape@layoutleft at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
+\def\eql at shape@layoutleft at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
+\let\eql at shape@layoutleft at default\eql at shape@layoutleft at left
% \end{macrocode}
%
% The |first| scheme implements left alignment with
% indentation for the first line (unless there is only one line):
% \begin{macrocode}
-\def\eql at shape@center at first{%
+\def\eql at shape@layoutcenter at first{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -4412,7 +4914,7 @@
\fi
\fi
}
-\def\eql at shape@left at first{%
+\def\eql at shape@layoutleft at first{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -4428,7 +4930,7 @@
% In centeral alignment layout all but the first line are indented
% while in left aligned layout the first line has negative indentation:
% \begin{macrocode}
-\def\eql at shape@center at hanging{%
+\def\eql at shape@layoutcenter at hanging{%
\eql at shape@pos@\z@
\eql at shape@amount@\eql at indent@
\ifnum\eql at totalrows@>\@ne
@@ -4437,7 +4939,7 @@
\fi
\fi
}
-\def\eql at shape@left at hanging{%
+\def\eql at shape@layoutleft at hanging{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -4453,7 +4955,7 @@
% In centeral alignment layout the shift operates on the alignment
% whereas in left alignment layout the shift uses indentation:
% \begin{macrocode}
-\def\eql at shape@center at steps{%
+\def\eql at shape@layoutcenter at steps{%
\eql at shape@amount@\z@
\eql at shape@pos@\@ne
\ifnum\eql at totalrows@>\@ne
@@ -4465,7 +4967,7 @@
\fi
\fi
}
-\def\eql at shape@left at steps{%
+\def\eql at shape@layoutleft at steps{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -4489,31 +4991,31 @@
\def\eql at shape@sel{%
\expandafter\let\expandafter\eql at shape@eval
\csname eql at shape%
- @\ifdefined\eql at flushleft left\else center\fi
+ @\ifdefined\eql at layoutleft layoutleft\else layoutcenter\fi
@\eql at shape@mode\endcsname
}
% \end{macrocode}
%
-% \macro{\eql at adjust@shoveleft}
-% \macro{\eql at adjust@shoveright}
-% \macro{\eql at adjust@shovecenter}
+% \macro{\eql at adjust@alignleft}
+% \macro{\eql at adjust@alignright}
+% \macro{\eql at adjust@aligncenter}
% Adjust the alignment of the current equation line.
% For left alignment an optional argument specifies the amount of indentation:
% \begin{macrocode}
-\def\eql at adjust@shoveleft{%
+\def\eql at adjust@alignleft{%
\global\eql at shape@pos@\z@
\eql at srbgroup\eql at ifstar@tight
- {\eql at adjust@shoveleft@[\eql at indent@]}%
+ {\eql at adjust@alignleft@[\eql at indent@]}%
{\eql at ifnextgobble@tight{!}%
- {\eql at adjust@shoveleft@[-\eql at indent@]}%
- {\eql at testopt@tight\eql at adjust@shoveleft@\z@}%
+ {\eql at adjust@alignleft@[-\eql at indent@]}%
+ {\eql at testopt@tight\eql at adjust@alignleft@\z@}%
}%
}
-\def\eql at adjust@shoveleft@[#1]{%
+\def\eql at adjust@alignleft@[#1]{%
\eql at sregroup\global\eql at shape@amount@\glueexpr#1\relax}
-\def\eql at adjust@shovecenter{%
+\def\eql at adjust@aligncenter{%
\global\eql at shape@pos@\@ne\global\eql at shape@amount@\z@}
-\def\eql at adjust@shoveright{%
+\def\eql at adjust@alignright{%
\global\eql at shape@pos@\tw@\global\eql at shape@amount@\z@}
% \end{macrocode}
%
@@ -4612,9 +5114,9 @@
\eql at tagging@alignright
\fi
\csname eql at adjust%
- @\ifdefined\eql at flushleft flushleft\else center\fi
+ @\ifdefined\eql at layoutleft layoutleft\else layoutcenter\fi
@\ifdefined\eql at tagsleft tagsleft\else tagsright\fi
- @\ifcase\eql at shape@pos@ shoveleft\or shovecenter\or shoveright\fi
+ @\ifcase\eql at shape@pos@ alignleft\or aligncenter\or alignright\fi
@tag\endcsname
}
\def\eql at adjust@sel at notag{%
@@ -4627,9 +5129,9 @@
\eql at tagging@alignright
\fi
\csname eql at adjust%
- @\ifdefined\eql at flushleft flushleft\else center\fi
+ @\ifdefined\eql at layoutleft layoutleft\else layoutcenter\fi
@\ifdefined\eql at tagsleft tagsleft\else tagsright\fi
- @\ifcase\eql at shape@pos@ shoveleft\or shovecenter\or shoveright\fi
+ @\ifcase\eql at shape@pos@ alignleft\or aligncenter\or alignright\fi
@notag\endcsname
}
% \end{macrocode}
@@ -4638,10 +5140,10 @@
% \TODO any init needed for left alignment layout? marginleft is used per line!
% \begin{macrocode}
\def\eql at adjust@calc{%
- \ifdefined\eql at flushleft
- \eql at flushleftmargin@\glueexpr\eql at flushleftmargin@val\relax
+ \ifdefined\eql at layoutleft
+ \eql at layoutleftmargin@\glueexpr\eql at layoutleftmargin@val\relax
\else
- \eql at align@inter@\z@
+ \eql at columns@inter@\z@
\eql at adjust@tagmargin
\ifdefined\eql at paddingmax
\eql at marginleft@\z@
@@ -4673,7 +5175,7 @@
%
% \TODO check all these!!
% \begin{macrocode}
-\def\eql at adjust@center at tagsright@shovecenter at notag{%
+\def\eql at adjust@layoutcenter at tagsright@aligncenter at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at fieldwidth@
\ifdim\dimen@>\eql at tagmargin@
@@ -4686,7 +5188,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@center at tagsright@shovecenter at tag{%
+\def\eql at adjust@layoutcenter at tagsright@aligncenter at tag{%
\dimen@\displaywidth
\ifdim\eql at tagwidth@<\eql at tagmargin@
\advance\dimen at -\eql at tagmargin@
@@ -4696,7 +5198,7 @@
\fi
\ifdim\eql at fieldwidth@<\dimen@
\eql at adjust@print at aligncenter\z@\eql at tagmargin@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
@@ -4705,10 +5207,10 @@
\else
\eql at adjust@print at alignright\z@\eql at tagwidth@
\fi
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@center at tagsright@shovecenter at notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutcenter at tagsright@aligncenter at notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
@@ -4716,7 +5218,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@center at tagsleft@shovecenter at notag{%
+\def\eql at adjust@layoutcenter at tagsleft@aligncenter at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\ifdim\eql at fieldwidth@<\dimen@
@@ -4729,7 +5231,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@center at tagsleft@shovecenter at tag{%
+\def\eql at adjust@layoutcenter at tagsleft@aligncenter at tag{%
\dimen@\displaywidth
\ifdim\eql at tagwidth@<\eql at tagmargin@
\advance\dimen at -\eql at tagmargin@
@@ -4738,12 +5240,12 @@
\advance\dimen@\eql at tagmargin@
\fi
\ifdim\eql at fieldwidth@<\dimen@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at aligncenter\eql at tagmargin@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\ifdim\eql at tagwidth@<\eql at tagmargin@
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
@@ -4750,8 +5252,8 @@
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\fi
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@center at tagsleft@shovecenter at notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutcenter at tagsleft@aligncenter at notag
\fi
\fi
\eql at display@firstavail at set\z@
@@ -4760,7 +5262,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@center at tagsright@shoveleft at notag{%
+\def\eql at adjust@layoutcenter at tagsright@alignleft at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at marginleft@
\advance\dimen at -\eql at shape@amount@
@@ -4776,7 +5278,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@center at tagsright@shoveleft at tag{%
+\def\eql at adjust@layoutcenter at tagsright@alignleft at tag{%
\dimen@\eql at marginleft@
\advance\dimen@\eql at shape@amount@
\advance\dimen@\eql at tagwidth@
@@ -4785,7 +5287,7 @@
\dimen@\eql at marginleft@
\advance\dimen@\eql at shape@amount@
\eql at adjust@print at alignleft\dimen@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\ifdim\eql at marginleft@>-\eql at shape@amount@
\eql at adjust@try\eql at tagwidth@
@@ -4792,10 +5294,10 @@
\fi
\ifnum\badness<\eql at maxbadness@
\eql at adjust@print at alignright\z@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@center at tagsright@shoveleft at notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutcenter at tagsright@alignleft at notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
@@ -4803,7 +5305,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@center at tagsleft@shoveright at notag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignright at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\advance\dimen at -\eql at marginright@
@@ -4817,12 +5319,12 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@center at tagsleft@shoveright at tag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignright at tag{%
\dimen@\eql at marginright@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\eql at marginright@
\else
\ifdim\eql at marginright@>\z@
@@ -4829,11 +5331,11 @@
\eql at adjust@try\eql at tagwidth@
\fi
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@center at tagsleft@shoveright at notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutcenter at tagsleft@alignright at notag
\fi
\fi
\eql at display@firstavail at set\z@
@@ -4842,7 +5344,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@center at tagsright@shoveright at notag{%
+\def\eql at adjust@layoutcenter at tagsright@alignright at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\advance\dimen at -\eql at marginright@
@@ -4858,7 +5360,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@center at tagsright@shoveright at tag{%
+\def\eql at adjust@layoutcenter at tagsright@alignright at tag{%
\dimen@\eql at tagmargin@
\advance\dimen@\eql at marginright@
\ifdim\eql at tagwidth@<\dimen@
@@ -4865,15 +5367,15 @@
\eql at adjust@try\dimen@%
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignright\z@\dimen@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
\eql at adjust@print at alignleft\z@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\eql at adjust@print at alignleft\z@\z@
- \eql at tagbox@print at left@raise
+ \eql at tagbox@print at tagsleft@raise
\fi
\fi
\else
@@ -4880,10 +5382,10 @@
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
\eql at adjust@print at alignright\z@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@center at tagsright@shoveright at notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutcenter at tagsright@alignright at notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
@@ -4891,7 +5393,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@center at tagsleft@shoveleft at notag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignleft at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\advance\dimen at -\eql at marginleft@
@@ -4909,7 +5411,7 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@center at tagsleft@shoveleft at tag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignleft at tag{%
\dimen@\eql at tagmargin@
\advance\dimen@\eql at marginleft@
\advance\dimen@\eql at shape@amount@
@@ -4916,15 +5418,15 @@
\ifdim\eql at tagwidth@<\dimen@
\eql at adjust@try\dimen@%
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\dimen@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
+ \eql at tagbox@print at tagsleft@raise
\eql at adjust@print at alignright\z@\z@
\fi
\fi
@@ -4931,11 +5433,11 @@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@center at tagsleft@shoveleft at notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutcenter at tagsleft@alignleft at notag
\fi
\fi
\eql at display@firstavail at set\z@
@@ -4970,7 +5472,7 @@
% \begin{macrocode}
\@tempdima\displaywidth
\advance\@tempdima-\eql at totalwidth@
- \advance\@tempdima-\eql at align@inter@\eql at colsepmin@
+ \advance\@tempdima-\eql at columns@inter@\eql at colsepmin@
\@tempdimb\@tempdima
\advance\@tempdimb-\tw@\eql at tagmargin@
\ifdim\@tempdimb>\z@
@@ -4987,14 +5489,14 @@
% \TODO describe
%
% \begin{macrocode}
-\def\eql at adjust@flushleft at shoveleft{%
- \eql at marginleft@\eql at flushleftmargin@
+\def\eql at adjust@layoutleft at alignleft{%
+ \eql at marginleft@\eql at layoutleftmargin@
\advance\eql at marginleft@\eql at shape@amount@
- \ifdim\eql at marginleft@<\eql at flushleftmarginmin@
- \eql at marginleft@\eql at flushleftmarginmin@
+ \ifdim\eql at marginleft@<\eql at layoutleftmarginmin@
+ \eql at marginleft@\eql at layoutleftmarginmin@
\fi
- \ifdim\eql at marginleft@>\eql at flushleftmarginmax@
- \eql at marginleft@\eql at flushleftmarginmax@
+ \ifdim\eql at marginleft@>\eql at layoutleftmarginmax@
+ \eql at marginleft@\eql at layoutleftmarginmax@
\fi
}
% \end{macrocode}
@@ -5004,13 +5506,13 @@
% good left margin with ragged right
% (allow space between tag and equation in close case)
% \begin{macrocode}
-\def\eql at adjust@flushleft at shoveleft@notag{%
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
+\def\eql at adjust@layoutleft at alignleft@notag{%
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignleft\eql at marginleft@\z@
\else
- \eql at adjust@print at alignleft\eql at flushleftmarginmin@\z@
+ \eql at adjust@print at alignleft\eql at layoutleftmarginmin@\z@
\fi
\else
\eql at adjust@print at alignleft\eql at marginleft@\z@
@@ -5020,12 +5522,12 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@flushleft at tagsright@shoveleft at notag{%
- \eql at adjust@flushleft at shoveleft
- \eql at adjust@flushleft at shoveleft@notag
+\def\eql at adjust@layoutleft at tagsright@alignleft at notag{%
+ \eql at adjust@layoutleft at alignleft
+ \eql at adjust@layoutleft at alignleft@notag
}
-\let\eql at adjust@flushleft at tagsleft@shoveleft at notag
- \eql at adjust@flushleft at tagsright@shoveleft at notag
+\let\eql at adjust@layoutleft at tagsleft@alignleft at notag
+ \eql at adjust@layoutleft at tagsright@alignleft at notag
% \end{macrocode}
%
% \TODO what is worse, extend into margin or raise tag?
@@ -5034,26 +5536,26 @@
% margin with ragged right
% (allow space between tag and equation in close case)
% \begin{macrocode}
-\def\eql at adjust@flushleft at tagsright@shoveleft at tag{%
- \eql at adjust@flushleft at shoveleft
+\def\eql at adjust@layoutleft at tagsright@alignleft at tag{%
+ \eql at adjust@layoutleft at alignleft
\dimen@\eql at marginleft@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignleft\eql at marginleft@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
- \dimen@\eql at flushleftmarginmin@
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
+ \dimen@\eql at layoutleftmarginmin@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\fi
\ifnum\badness<\eql at maxbadness@
- \eql at adjust@print at alignleft\eql at flushleftmarginmin@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at adjust@print at alignleft\eql at layoutleftmarginmin@\eql at tagwidth@
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@flushleft at shoveleft@notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutleft at alignleft@notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
@@ -5060,39 +5562,39 @@
% \end{macrocode}
%
% \begin{macrocode}
-\def\eql at adjust@flushleft at tagsleft@shoveleft at tag{%
- \eql at adjust@flushleft at shoveleft
- \ifdim\eql at tagwidth@<\eql at flushleftmarginmin@
- \eql at tagbox@print at left
- \eql at adjust@flushleft at notag
+\def\eql at adjust@layoutleft at tagsleft@alignleft at tag{%
+ \eql at adjust@layoutleft at alignleft
+ \ifdim\eql at tagwidth@<\eql at layoutleftmarginmin@
+ \eql at tagbox@print at tagsleft
+ \eql at adjust@layoutleft at notag
\else
\ifdim\eql at tagwidth@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at marginleft@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@print at alignleft\eql at flushleftmarginmin@\z@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@print at alignleft\eql at layoutleftmarginmin@\z@
\fi
\fi
\else
- \ifdim\eql at tagwidth@>\eql at flushleftmarginmax@
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveleft@notag
+ \ifdim\eql at tagwidth@>\eql at layoutleftmarginmax@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignleft@notag
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveleft@notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignleft@notag
\fi
\fi
\fi
@@ -5103,46 +5605,46 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@flushleft at shoveright@notag{%
- \eql at marginleft@\eql at flushleftmargin@
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
+\def\eql at adjust@layoutleft at alignright@notag{%
+ \eql at marginleft@\eql at layoutleftmargin@
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignright\eql at marginleft@\z@
\else
- \eql at adjust@print at alignright\eql at flushleftmarginmin@\z@
+ \eql at adjust@print at alignright\eql at layoutleftmarginmin@\z@
\fi
\else
\eql at adjust@print at alignright\eql at marginleft@\z@
\fi
}
-\let\eql at adjust@flushleft at tagsright@shoveright at notag
- \eql at adjust@flushleft at shoveright@notag
-\let\eql at adjust@flushleft at tagsleft@shoveright at notag
- \eql at adjust@flushleft at shoveright@notag
+\let\eql at adjust@layoutleft at tagsright@alignright at notag
+ \eql at adjust@layoutleft at alignright@notag
+\let\eql at adjust@layoutleft at tagsleft@alignright at notag
+ \eql at adjust@layoutleft at alignright@notag
% \end{macrocode}
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@flushleft at tagsright@shoveright at tag{%
+\def\eql at adjust@layoutleft at tagsright@alignright at tag{%
\dimen@\eql at marginleft@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignright\eql at marginleft@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
- \dimen@\eql at flushleftmarginmin@
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
+ \dimen@\eql at layoutleftmarginmin@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\fi
\ifnum\badness<\eql at maxbadness@
- \eql at adjust@print at alignright\eql at flushleftmarginmin@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at adjust@print at alignright\eql at layoutleftmarginmin@\eql at tagwidth@
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@flushleft at shoveright@notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutleft at alignright@notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
@@ -5150,38 +5652,38 @@
%
% \TODO describe
% \begin{macrocode}
-\def\eql at adjust@flushleft at tagsleft@shoveright at tag{%
- \ifdim\eql at tagwidth@<\eql at flushleftmarginmin@
- \eql at tagbox@print at left
- \eql at adjust@flushleft at shoveright@notag
+\def\eql at adjust@layoutleft at tagsleft@alignright at tag{%
+ \ifdim\eql at tagwidth@<\eql at layoutleftmarginmin@
+ \eql at tagbox@print at tagsleft
+ \eql at adjust@layoutleft at alignright@notag
\else
\ifdim\eql at tagwidth@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at marginleft@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@print at alignright\eql at flushleftmarginmin@\z@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@print at alignright\eql at layoutleftmarginmin@\z@
\fi
\fi
\else
- \ifdim\eql at tagwidth@>\eql at flushleftmarginmax@
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveright@notag
+ \ifdim\eql at tagwidth@>\eql at layoutleftmarginmax@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignright@notag
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveright@notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignright@notag
\fi
\fi
\fi
@@ -5191,201 +5693,28 @@
% \end{macrocode}
%
% \begin{macrocode}
-\def\eql at adjust@flushleft at shovecenter{%
+\def\eql at adjust@layoutleft at aligncenter{%
\eql at error{shove center not implemented for left alignment}%
}
-\let\eql at adjust@flushleft at tagsright@shovecenter at notag
- \eql at adjust@flushleft at shovecenter
-\let\eql at adjust@flushleft at tagsright@shovecenter at tag
- \eql at adjust@flushleft at shovecenter
-\let\eql at adjust@flushleft at tagsleft@shovecenter at notag
- \eql at adjust@flushleft at shovecenter
-\let\eql at adjust@flushleft at tagsleft@shovecenter at tag
- \eql at adjust@flushleft at shovecenter
+\let\eql at adjust@layoutleft at tagsright@aligncenter at notag
+ \eql at adjust@layoutleft at aligncenter
+\let\eql at adjust@layoutleft at tagsright@aligncenter at tag
+ \eql at adjust@layoutleft at aligncenter
+\let\eql at adjust@layoutleft at tagsleft@aligncenter at notag
+ \eql at adjust@layoutleft at aligncenter
+\let\eql at adjust@layoutleft at tagsleft@aligncenter at tag
+ \eql at adjust@layoutleft at aligncenter
% \end{macrocode}
%
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \section{Single-Line Equation}
-%
-% \TODO describe
-%
-% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Environment}
-%
-% \begin{macrocode}
-\def\eql at single@cr{%
- \eql at error{Cannot use `\string\\' within display equation.
- Please switch to equations environment}%
-}
-% \end{macrocode}
-%
-% \TODO describe
-% \begin{macrocode}
-\def\eql at single@start{%
- \eql at halign@catchprevdepth
- \eql at tagging@start
- \eql at dollardollar@begin
- \eql at numbering@eval at mode
- \let\eql at numbering@subeq at use\eql at false
- \eql at stack@save at single
-% \end{macrocode}
-%
-% \TODO make other display environments push these!?
-% \begin{macrocode}
- \eql at numbering@single at init
-% \end{macrocode}
-%
-% \begin{macrocode}
- \ifdefined\eql at single@native
- \let\eql at single@start at sel\eql at single@start at native
- \let\eql at single@end at sel\eql at single@end at native
- \let\raisetag\eql at raisetag@default
- \else
- \let\eql at single@start at sel\eql at single@start at adjust
- \let\eql at single@end at sel\eql at single@end at adjust
- \fi
- \ifdefined\eql at single@crerror\else
- \let\\\eql at single@cr
- \fi
- \eql at single@start at sel
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\def\eql at single@end{%
- \eql at punct@apply at block
- \eql at hook@eqout
- \eql at single@end at sel
- \eql at stack@restore
- \eql at dollardollar@end
- \eql at tagging@end
- \eql at halign@leave
-}
-% \end{macrocode}
-%
-% \TODO: try to feed in tagging after catchprevdepth
-% \begin{macrocode}
-\def\eql at single@main{%
- \expandafter\eql at single@start
- \eql at scan@body
- \eql at single@end
-}
-% \end{macrocode}
-%
-% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Native}
-%
-% \begin{macrocode}
-\def\eql at single@start at native{%
-% \mathopen{}%
- \eql at hook@eqin
-}%
-% \end{macrocode}
-%
-% \TODO describe
-% \begin{macrocode}
-\def\eql at single@end at native{%
-% \mathclose{}%
- \if at eqnsw
- \ifdefined\eql at tagsleft
- \leqno
- \else
- \eqno
- \fi
- \eql at compose@print
- \fi
- \ifnum\eql at displaybreak@pen@=\@MM\else
- \postdisplaypenalty\eql at displaybreak@pen@
- \fi
-}%
-% \end{macrocode}
-%
-% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Adjustment}
-%
-% \begin{macrocode}
-\def\eql at single@start at adjust{%
- \eql at totalrows@\@ne
- \eql at row@\z@
- \eql at display@init
- \let\shoveleft\eql at adjust@shoveleft
- \let\shovecenter\eql at adjust@shovecenter
- \let\shoveright\eql at adjust@shoveright
- \eql at adjust@init
- \eql at shape@eval
- \eql at halign@init{}%
-% \end{macrocode}
-%
-% \begin{macrocode}
- \eql at row@\@ne
- \setbox\eql at fieldbox@\hbox\bgroup
- \eql at restore@hfuzz
- \eql at strut@field
- $\m at th\displaystyle%$
- \eql at hook@eqin
-}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\def\eql at single@end at adjust{%
- \eql at tagging@mathsave
- $%$
- \hfil
- \kern\z@
- \egroup
-% \end{macrocode}
-%
-% \begin{macrocode}
- \eql at fieldwidth@\wd\eql at fieldbox@
- \eql at line@height@\ht\eql at fieldbox@
- \eql at line@depth@\dp\eql at fieldbox@
- \eql at totalwidth@\eql at fieldwidth@
- \eql at totalrows@\@ne
-% \end{macrocode}
-%
-% \begin{macrocode}
- \if at eqnsw
- \eql at tagbox@make\eql at compose@print
- \eql at tagrows@\@ne
- \else
- \eql at tagwidth@\z@
- \eql at tagrows@\z@
- \fi
- \eql at tagwidth@max@\eql at tagwidth@
-% \end{macrocode}
-%
-% \begin{macrocode}
- \eql at adjust@calc
-% \end{macrocode}
-%
-% \begin{macrocode}
- \halign{##\cr
- \noalign{\eql at halign@before}%
- \if at eqnsw
- \eql at adjust@sel at tag
- \else
- \eql at adjust@sel at notag
- \fi
- \cr
- \noalign{\eql at halign@after}%
- \eql at tagging@tablesavelines
- }%
- \eql at row@\tw@
- \eql at display@close
-}
-% \end{macrocode}
-%
-%
-% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section{Multi-Line Support}
%
% \TODO describe
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Registers}
+% \subsection{Table Registers}
%
% \TODO can we unite |\eql at fieldlength@tab| and |\eql at tagwidth@tab|
% \TODO then process sequentially not using ifcase?
@@ -5439,12 +5768,12 @@
\let\eql at colwidth@tab\@empty
% \end{macrocode}
%
-% \macro{\eql at align@colwidth at get}
+% \macro{\eql at columns@colwidth at get}
% \begin{macrocode}
-\def\eql at align@colwidth at get#1{%
+\def\eql at columns@colwidth at get#1{%
\ifcase\expandafter#1\eql at colwidth@tab\else\z@\fi
}
-\def\eql at align@colwidth at save{%
+\def\eql at columns@colwidth at save{%
\begingroup
\let\or\relax
\global\edef\eql at colwidth@tab{\or\the\wd\thr@@\eql at colwidth@tab}%
@@ -5527,9 +5856,9 @@
\ifdefined\eql at tagsleft
\eql at display@firstavail at set\z@
\ifdim\eql at tagwidth@>\eql at line@avail@
- \eql at tagbox@print at left@raise
+ \eql at tagbox@print at tagsleft@raise
\else
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\fi
\kern\displaywidth
\else
@@ -5536,9 +5865,9 @@
\kern\displaywidth
\advance\eql at tagwidth@\eql at line@width@
\ifdim\eql at tagwidth@>\displaywidth
- \eql at tagbox@print at right@raise
+ \eql at tagbox@print at tagsright@raise
\else
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\fi
\fi
}
@@ -5626,7 +5955,7 @@
\let\eql at skip@force at below\z@
\let\eql at skip@force at above\z@
\eql at setkeys{intertext}\eql at intertext@opt
- \openup-\eql at spread@amount@
+ \openup-\eql at spread@
\penalty\postdisplaypenalty
\ifcase\eql at skip@force at below\relax
\advance\eql at vspaceskip@\glueexpr\eql at skip@long at below\relax
@@ -5723,92 +6052,383 @@
}
% \end{macrocode}
%
+%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \section{Equations Box Environment}
+%
+% \TODO describe
+%
+% \TODO fixed width version (works only towards intercolumn stretch)?
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Line Breaks}
+%
+% \macro{\eql at box@cr}
+% \begin{macrocode}
+\protected\def\eql at box@cr{%
+ \eql at ampprotect\eql at testopt@tight\eql at box@cr@\z@
+}
+\def\eql at box@cr@[#1]{%
+ \eql at punct@apply at line
+ \eql at hook@lineout
+ \eql at box@lastfield
+ \cr
+ \noalign{%
+ \vskip\glueexpr#1\relax
+ }%
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Stacked Mode}
+%
+% \begin{macrocode}
+\def\eql at box@lastfield at lines{&\omit\kern-2\eql at colsep@}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\eql at box@open at stacked{%
+% \TODO templates
+ \let\shoveleft\eql at adjust@alignleft
+ \let\shovecenter\eql at adjust@aligncenter
+ \let\shoveright\eql at adjust@alignright
+ \let\eql at box@lastfield\eql at box@lastfield at lines
+ \eql at halign@init{%
+%<dev>\eql at dev{starting line \the\eql at row@}%
+ \global\advance\eql at row@\@ne
+ }%
+ \tabskip\z at skip
+ \halign\bgroup
+ &%
+ \eql at shape@pos@\m at ne
+ \setbox\eql at fieldbox@\hbox{%
+ \eql at strut@field
+ \@lign
+ $\m at th\displaystyle
+ \eql at hook@colin
+ ##%
+ \eql at punct@apply at col
+ \eql at hook@colout
+ \eql at tagging@mathsave
+ $%
+ \eql at tagging@mathaddlast
+ }%
+ \ifnum\eql at shape@pos@=\m at ne
+ \eql at shape@eval
+ \fi
+ \ifcase\eql at shape@pos@
+ \kern\eql at shape@amount@
+ \box\eql at fieldbox@
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingleft@\relax
+ \advance\skip@\eql at paddingright@\relax
+ \advance\skip at -\eql at shape@amount@\relax
+ \hskip\skip@
+ \eql at tagging@alignleft
+ \or
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingleft@\relax
+ \hskip\skip@
+ \box\eql at fieldbox@
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingright@\relax
+ \hskip\skip@
+ \eql at tagging@aligncenter
+ \or
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingleft@\relax
+ \advance\skip@\eql at paddingright@\relax
+ \hskip\skip@
+ \box\eql at fieldbox@
+ \eql at tagging@alignright
+ \fi
+ \tabskip\eql at colsep@\relax
+ \crcr
+ \noalign{%
+ \eql at hook@blockbefore
+ }%
+ \eql at hook@blockin
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\eql at mode@stacked{\let\eql at box@open\eql at box@open at stacked}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Aligned Mode}
+%
+% \begin{macrocode}
+\def\eql at box@lastfield at odd{%
+ &\omit
+ \kern-\wd\eql at fieldbox@
+ \box\eql at fieldbox@
+ \hfil
+ &\omit\kern-\eql at colsep@
+}%
+\def\eql at box@lastfield at even{&\omit\kern-\eql at colsep@}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\eql at box@open at aligned{%
+% \TODO templates
+ \let\eql at box@lastfield\@empty
+ \eql at halign@init{%
+%<dev>\eql at dev{starting new line}%
+ }%
+ \tabskip\z at skip
+ \halign\bgroup
+ &%
+ \let\eql at box@lastfield\eql at box@lastfield at odd
+ \global\setbox\eql at fieldbox@\hbox{%
+ \eql at strut@field
+ \@lign
+ $\m at th\displaystyle
+ \eql at hook@colin
+ ##%
+ \eql at class@innerleft
+ \eql at hook@innerleft
+ \eql at tagging@mathsave
+ $%
+ \eql at tagging@mathaddlast
+ }%
+ \hfil
+ \kern\wd\eql at fieldbox@
+ \tabskip\z at skip
+ &%
+ \eql at fieldwidth@\wd\eql at fieldbox@
+ \kern-\eql at fieldwidth@
+ \box\eql at fieldbox@
+ \let\eql at box@lastfield\eql at box@lastfield at even
+ \llap{\unhbox\eql at fieldbox@}%
+ \hbox{%
+ \eql at strut@field
+ \@lign
+ $\m at th\displaystyle
+ \eql at hook@innerright
+ \eql at class@innerright at sel
+ ##%
+ \eql at punct@apply at col
+ \eql at hook@colout
+ \eql at tagging@mathsave
+ $%
+ \eql at tagging@mathaddlast
+ }%
+ \hfil
+ \tabskip\eql at colsep@\relax
+ \crcr
+ \noalign{%
+ \eql at hook@blockbefore
+ }%
+ \eql at hook@blockin
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\eql at mode@aligned{\let\eql at box@open\eql at box@open at aligned}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Main}
%
-% \TODO note that switching from align to lines mode,
-% the width can be incorrect due to different formatting (punctuation only?!).
-% only minor discrpancies expected and lines can adjust
-% \macro{\eql at multi@main}
% \begin{macrocode}
-\let\eql at multi@mode at lines\eql at false
-\def\eql at multi@main{%
- \eql at halign@catchprevdepth
- \eql at tagging@start
- \eql at dollardollar@begin
- \eql at numbering@eval at mode
- \eql at stack@save at multi
- \ifdefined\eql at subequations@active
- \let\eql at numbering@subeq at use\eql at false
- \fi
- \ifdefined\eql at numbering@subeq at use
- \eql at numbering@subeq at init
- \fi
- \let\intertext\eql at intertext
- \let\endintertext\endeql at intertext
- \let\shoveleft\eql at adjust@shoveleft
- \let\shovecenter\eql at adjust@shovecenter
- \let\shoveright\eql at adjust@shoveright
- \ifdefined\eql at multi@mode at lines
- \expandafter\eql at lines@measure
- \else
- \ifdefined\eql at ampproof@active
- \eql at ampproof
+\let\eql at box@box\vcenter
+\let\eql at box@open\@undefined
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\eql at box@close{%
+ \ifvmode\else
+ \global\eql at totalrows@\eql at row@
+ \eql at punct@apply at block
+ \eql at box@cr@[\z at skip]%
\fi
- \expandafter\eql at align@measure
- \fi
- \ifx\eql at numbering@subeq at use\@ne
- \eql at numbering@subeq at revert
- \fi
- \ifdefined\eql at multi@mode at lines\else
- \ifdefined\eql at multi@linesfallback
- \ifnum\eql at totalcolumns@=\@ne
- \let\eql at multi@mode at lines\eql at true
- \eql at shape@set{r}%
-% \eql at lines@measure
- \fi
- \fi
- \fi
- \ifdefined\eql at multi@mode at lines
- \expandafter\eql at lines@print
+ \crcr
+ \noalign{%
+ \eql at hook@blockafter
+ }%
+ \eql at tagging@tablesaveinner
+ \egroup
+}
+% \end{macrocode}
+%
+% \macro{\eql at box@start}
+% \begin{macrocode}
+\def\eql at box@start{%
+ \relax
+ \ifmmode
+ \let\eql at box@endmath\@empty
\else
- \expandafter\eql at align@print
+ $\let\eql at box@endmath=$%
\fi
- \ifdefined\eql at numbering@subeq at use
- \eql at numbering@subeq at close
- \fi
+ \eql at nextopt@process{equationsbox}%
+ \let\eql at punct@block\eql at punct@main
+ \let\eql at punct@main\relax
+ \eql at colsep@\glueexpr\eql at box@colsep\relax
+ \eql at paddingleft@\glueexpr\eql at paddingleft@val\relax
+ \eql at paddingright@\glueexpr\eql at paddingright@val\relax
+ \eql at indent@\glueexpr\eql at indent@val\relax
+ \eql at stack@save at boxed
+ \let\eql at layoutleft\eql at false
+ \eql at row@\z@
+ \eql at totalrows@\@M
+ \eql at shape@sel
+ \hskip\glueexpr\eql at box@marginleft\relax
+ \eql at box@box\bgroup
+ \eql at display@leave
+ \let\\\eql at box@cr
+ \eql at box@open
+}
+% \end{macrocode}
+%
+% \macro{\eql at box@end}
+% \begin{macrocode}
+\newcommand{\eql at box@end}{%
+ \eql at box@close
+ \egroup
+ \eql at tagging@tableaddinner
+ \hskip\glueexpr\eql at box@marginright\relax
\eql at stack@restore
- \eql at dollardollar@end
- \eql at tagging@end
- \eql at halign@leave
+ \eql at box@endmath
}
% \end{macrocode}
%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Environment}
+%
+% \environment{equationsbox}
+% \begin{macrocode}
+\newenvironment{equationsbox}{%
+%<dev>\eql at dev@enterenv
+ \eql at ampprotect\eql at box@testall\eql at box@start
+}{%
+ \eql at box@end
+%<dev>\eql at dev@leaveenv
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\eql at box@testall{\eql at box@testtilde}
+\def\eql at box@testtilde#1{%
+ \eql at ifnextgobble@tight~%
+ {\eqnaddopt{lines}\eql at box@testopt{#1}}%
+ {\eql at box@testopt{#1}}}
+\def\eql at box@testopt#1{%
+ \eql at ifnextchar@tight[%]
+ {\eql at box@addopt{#1}}%
+ {#1}}
+\def\eql at box@addopt#1[#2]{\eqnaddopt{#2}#1}
+% \end{macrocode}
+%
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \section{Single-Line Equation}
+%
% \TODO describe
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Native Mode}
+%
% \begin{macrocode}
-\def\eql at mode@equation{%
- \let\eql at equations@mode at single\eql at true
- \ifdefined\eql at single@doscan
- \let\eql at equations@main\eql at single@main
- \let\eql at equations@end\@empty
+\def\eql at single@start at native{%
+% \mathopen{}%
+ \eql at hook@eqin
+}%
+% \end{macrocode}
+%
+% \TODO describe
+% \begin{macrocode}
+\def\eql at single@end at native{%
+% \mathclose{}%
+ \if at eqnsw
+ \ifdefined\eql at tagsleft
+ \leqno
+ \else
+ \eqno
+ \fi
+ \eql at compose@print
+ \fi
+ \ifnum\eql at displaybreak@pen@=\@MM\else
+ \postdisplaypenalty\eql at displaybreak@pen@
+ \fi
+}%
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Print}
+%
+% \begin{macrocode}
+\def\eql at single@start at print{%
+ \eql at totalrows@\@ne
+ \eql at row@\z@
+ \eql at display@init
+ \let\shoveleft\eql at adjust@alignleft
+ \let\shovecenter\eql at adjust@aligncenter
+ \let\shoveright\eql at adjust@alignright
+ \eql at adjust@init
+ \eql at shape@eval
+ \eql at halign@init{}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \eql at row@\@ne
+ \setbox\eql at fieldbox@\hbox\bgroup
+ \eql at restore@hfuzz
+ \eql at strut@field
+ $\m at th\displaystyle%$
+ \eql at hook@eqin
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\eql at single@end at print{%
+ \eql at tagging@mathsave
+ $%$
+ \hfil
+ \kern\z@
+ \egroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \eql at fieldwidth@\wd\eql at fieldbox@
+ \eql at line@height@\ht\eql at fieldbox@
+ \eql at line@depth@\dp\eql at fieldbox@
+ \eql at totalwidth@\eql at fieldwidth@
+ \eql at totalrows@\@ne
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \if at eqnsw
+ \eql at tagbox@make\eql at compose@print
+ \eql at tagrows@\@ne
\else
- \let\eql at equations@main\@undefined
- \let\eql at equations@end\eql at single@end
+ \eql at tagwidth@\z@
+ \eql at tagrows@\z@
\fi
+ \eql at tagwidth@max@\eql at tagwidth@
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \eql at adjust@calc
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \halign{##\cr
+ \noalign{\eql at halign@before}%
+ \if at eqnsw
+ \eql at adjust@sel at tag
+ \else
+ \eql at adjust@sel at notag
+ \fi
+ \cr
+ \noalign{\eql at halign@after}%
+ \eql at tagging@tablesavelines
+ }%
+ \eql at row@\tw@
+ \eql at display@close
}
-\def\eql at mode@align{%
- \let\eql at equations@mode at single\eql at false
- \let\eql at multi@mode at lines\eql at false
- \let\eql at equations@main\eql at multi@main
- \let\eql at equations@end\@empty
-}
-\def\eql at mode@lines{%
- \let\eql at equations@mode at single\eql at false
- \let\eql at multi@mode at lines\eql at true
- \let\eql at equations@main\eql at multi@main
- \let\eql at equations@end\@empty
-}
-\eql at mode@align
% \end{macrocode}
%
%
@@ -6023,7 +6643,7 @@
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \section{Multi-Line Align Mode}
+% \section{Multi-Line Columns Mode}
%
% \TODO describe
%
@@ -6032,16 +6652,16 @@
%
% \TODO describe
%
-% \macro{\eql at align@add at amp}
-% \macro{\eql at align@completerow}
+% \macro{\eql at columns@add at amp}
+% \macro{\eql at columns@completerow}
% \begin{macrocode}
-\def\eql at align@add at amp#1{\if m#1&\omit\expandafter\eql at align@add at amp\fi}
-\def\eql at align@completerow{%
+\def\eql at columns@add at amp#1{\if m#1&\omit\expandafter\eql at columns@add at amp\fi}
+\def\eql at columns@completerow{%
\count@\eql at totalcolumns@
\advance\count at -\eql at column@
\advance\count@\@ne
\edef\eql at tmp{%
- \expandafter\eql at align@add at amp\romannumeral\number\count@ 000q}%
+ \expandafter\eql at columns@add at amp\romannumeral\number\count@ 000q}%
\eql at tmp
}
% \end{macrocode}
@@ -6051,9 +6671,9 @@
%
% \TODO describe
%
-% \macro{\eql at align@measure at line@begin}
+% \macro{\eql at columns@measure at line@begin}
% \begin{macrocode}
-\def\eql at align@measure at line@begin{%
+\def\eql at columns@measure at line@begin{%
%<dev>\eql at dev{starting line \the\eql at row@}%
\global\eql at column@\z@
\eql at numbering@measure at line@begin
@@ -6062,15 +6682,15 @@
% \end{macrocode}
%
% \begin{macrocode}
-\def\eql at align@measure at field{%
+\def\eql at columns@measure at field{%
\eql at fieldlength@save\eql at column@
\kern\wd\eql at fieldbox@
}
% \end{macrocode}
%
-% \macro{\eql at align@measure at line@end}
+% \macro{\eql at columns@measure at line@end}
% \begin{macrocode}
-\def\eql at align@measure at line@end{%
+\def\eql at columns@measure at line@end{%
\eql at punct@apply at line
\eql at hook@lineout
&\omit
@@ -6077,13 +6697,13 @@
\ifnum\eql at column@>\eql at totalcolumns@
\global\eql at totalcolumns@\eql at column@
\fi
- \eql at align@measure at tag
+ \eql at columns@measure at tag
}
% \end{macrocode}
%
-% \macro{\eql at align@measure at tag}
+% \macro{\eql at columns@measure at tag}
% \begin{macrocode}
-\def\eql at align@measure at tag{%
+\def\eql at columns@measure at tag{%
\ifnum\eql at numbering@target@<\z@
\if at eqnsw
\eql at tagbox@make\eql at compose@measure
@@ -6099,10 +6719,10 @@
}
% \end{macrocode}
%
-% \macro{\eql at align@measure}
+% \macro{\eql at columns@measure}
% \begin{macrocode}
-\def\eql at align@measure{%
-%<dev>\eql at dev@enter\eql at align@measure
+\def\eql at columns@measure{%
+%<dev>\eql at dev@enter\eql at columns@measure
\eql at totalcolumns@\z@
\eql at tagwidth@max@\z@
\let\eql at tagwidth@tab\@empty
@@ -6111,8 +6731,8 @@
\eql at measure@savecounters
\setbox\z@\vbox{%
\eql at numbering@measure at init
- \eql at measure@init\eql at align@measure at line@begin
- \eql at let@cr\eql at align@measure at line@end
+ \eql at measure@init\eql at columns@measure at line@begin
+ \eql at let@cr\eql at columns@measure at line@end
\tabskip\z at skip
\halign{%
&%
@@ -6128,7 +6748,7 @@
$%
}%
\global\eql at fieldwidth@\wd\eql at fieldbox@
- \eql at align@measure at field
+ \eql at columns@measure at field
&%
\global\advance\eql at column@\@ne
\setbox\eql at fieldbox@\hbox{%
@@ -6141,7 +6761,7 @@
\eql at hook@colout
$%
}%
- \eql at align@measure at field
+ \eql at columns@measure at field
\hfil
\crcr
\noalign{%
@@ -6155,7 +6775,7 @@
\ifvmode\else
\eql at punct@apply at block
\eql at hook@blockout
- \eql at align@measure at line@end
+ \eql at columns@measure at line@end
\cr
\fi
\noalign{%
@@ -6165,7 +6785,7 @@
% \TODO should we enforce even columns already here?!
% \TODO should we guard against no columns at all?!
% \begin{macrocode}
- \eql at align@completerow
+ \eql at columns@completerow
\cr
}%
\global\advance\eql at row@-\tw@
@@ -6204,12 +6824,12 @@
\global\setbox\thr@@\lastbox
}%
\ifhbox\thr@@
- \eql at align@colwidth at save
+ \eql at columns@colwidth at save
\repeat
% \end{macrocode}
%
% \begin{macrocode}
-%<dev>\eql at dev@leave\eql at align@measure
+%<dev>\eql at dev@leave\eql at columns@measure
}
% \end{macrocode}
%
@@ -6218,9 +6838,9 @@
%
% \TODO describe
%
-% \macro{\eql at align@print at line@begin}
+% \macro{\eql at columns@print at line@begin}
% \begin{macrocode}
-\def\eql at align@print at line@begin{%
+\def\eql at columns@print at line@begin{%
%<dev>\eql at dev{starting line \the\eql at row@}%
\global\eql at column@\z@
\global\eql at line@pos@\eql at marginleft@
@@ -6233,13 +6853,13 @@
}
% \end{macrocode}
%
-% \macro{\eql at align@print at field}
+% \macro{\eql at columns@print at field}
% \begin{macrocode}
-\def\eql at align@print at field{%
+\def\eql at columns@print at field{%
% \end{macrocode}
% determine available and used space
% \begin{macrocode}
- \dimen@\eql at align@colwidth at get\eql at column@\relax
+ \dimen@\eql at columns@colwidth at get\eql at column@\relax
\ifdim\wd\eql at fieldbox@>\z@
\ifdim\eql at line@width@=\z@
\eql at line@avail@\eql at line@pos@
@@ -6279,7 +6899,7 @@
%
% \box\eql at fieldbox@
%
-% \dimen@\eql at align@colwidth at get\eql at column@\relax
+% \dimen@\eql at columns@colwidth at get\eql at column@\relax
% \advance\dimen at -\wd\eql at fieldbox@
% \ifodd\eql at column@
% \kern\dimen@
@@ -6289,7 +6909,7 @@
% \kern\dimen@
% \fi
%
- \dimen@\eql at align@colwidth at get\eql at column@\relax
+ \dimen@\eql at columns@colwidth at get\eql at column@\relax
\ifodd\eql at column@
\kern\dimen@
\else
@@ -6302,33 +6922,33 @@
% \end{macrocode}
%
% \begin{macrocode}
-\def\eql at align@print at trailright{%
+\def\eql at columns@print at trailright{%
&\omit
\global\advance\eql at column@\@ne
\setbox\eql at fieldbox@\hbox{%
\kern-\wd\eql at fieldbox@\box\eql at fieldbox@
}%
- \eql at align@print at field
+ \eql at columns@print at field
}
% \end{macrocode}
%
-% \macro{\eql at align@print at line@end}
+% \macro{\eql at columns@print at line@end}
% \begin{macrocode}
-\def\eql at align@print at line@end{%
+\def\eql at columns@print at line@end{%
\eql at punct@apply at line
\eql at hook@lineout
% \TODO add an even column with empty stuff if box processing deferred
\ifodd\eql at column@
- \expandafter\eql at align@print at trailright
+ \expandafter\eql at columns@print at trailright
\fi
- \eql at align@completerow
- \eql at align@print at tag
+ \eql at columns@completerow
+ \eql at columns@print at tag
}
% \end{macrocode}
%
-% \macro{\eql at align@print at tag}
+% \macro{\eql at columns@print at tag}
% \begin{macrocode}
-\def\eql at align@print at tag{%
+\def\eql at columns@print at tag{%
\dimen@\eql at totalwidth@
\advance\dimen@\eql at colsep@
\kern-\dimen@
@@ -6349,15 +6969,15 @@
}
% \end{macrocode}
%
-% \macro{\eql at align@print}
+% \macro{\eql at columns@print}
% \begin{macrocode}
-\def\eql at align@print{%
-%<dev>\eql at dev@enter\eql at align@print
- \eql at align@adjust
+\def\eql at columns@print{%
+%<dev>\eql at dev@enter\eql at columns@print
+ \eql at columns@adjust
\eql at display@init
\eql at numbering@print at init
- \eql at print@init\eql at align@print at line@begin
- \eql at let@cr\eql at align@print at line@end
+ \eql at print@init\eql at columns@print at line@begin
+ \eql at let@cr\eql at columns@print at line@end
\tabskip\eql at marginleft@
\halign{%
&%
@@ -6376,7 +6996,7 @@
\eql at tagging@mathaddlast
}%
\global\eql at fieldwidth@\wd\eql at fieldbox@
- \eql at align@print at field
+ \eql at columns@print at field
\tabskip\z at skip
&%
\global\advance\eql at column@\@ne
@@ -6396,7 +7016,7 @@
$%
\eql at tagging@mathaddlast
}%
- \eql at align@print at field
+ \eql at columns@print at field
\hfil
\tabskip\eql at colsep@\relax
\crcr
@@ -6410,13 +7030,13 @@
\ifvmode\else
\eql at punct@apply at block
\eql at hook@blockout
- \eql at align@print at line@end
+ \eql at columns@print at line@end
\cr
\fi
\noalign{%
\eql at hook@blockafter
\eql at halign@after
-%<dev>\eql at dev@leave\eql at align@print
+%<dev>\eql at dev@leave\eql at columns@print
}%
\eql at tagging@tablesavealign
}%
@@ -6431,7 +7051,7 @@
% \TODO does this respect the margin for numbers in centre mode?
%
% \begin{macrocode}
-\def\eql at align@adjust{%
+\def\eql at columns@adjust{%
% \end{macrocode}
%
% \begin{macrocode}
@@ -6448,20 +7068,20 @@
% \TODO should we guard against no columns?!
% \begin{macrocode}
\ifnum\eql at totalcolumns@<\thr@@
- \let\eql at align@margins\eql at true
+ \let\eql at columns@margins\eql at true
\fi
% \end{macrocode}
%
-% Determine the number of intercolumn spaces |\eql at align@inter@|:
+% Determine the number of intercolumn spaces |\eql at columns@inter@|:
% \begin{macrocode}
- \eql at align@inter@\eql at totalcolumns@
- \divide\eql at align@inter@\tw@
- \advance\eql at align@inter@\m at ne
+ \eql at columns@inter@\eql at totalcolumns@
+ \divide\eql at columns@inter@\tw@
+ \advance\eql at columns@inter@\m at ne
% \end{macrocode}
%
% \begin{macrocode}
- \ifdefined\eql at flushleft
- \eql at flushleftmargin@\glueexpr\eql at flushleftmargin@val\relax
+ \ifdefined\eql at layoutleft
+ \eql at layoutleftmargin@\glueexpr\eql at layoutleftmargin@val\relax
\else
\eql at adjust@tagmargin
\fi
@@ -6470,19 +7090,19 @@
% \begin{macrocode}
\eql at colsep@\displaywidth
\advance\eql at colsep@-\eql at totalwidth@
- \ifdefined\eql at flushleft
- \advance\eql at colsep@-\eql at flushleftmargin@
+ \ifdefined\eql at layoutleft
+ \advance\eql at colsep@-\eql at layoutleftmargin@
\else
\advance\eql at colsep@-\eql at tagmargin@
- \ifdefined\eql at align@margins\else
+ \ifdefined\eql at columns@margins\else
\ifdim\eql at tagmargin@>\z@
\advance\eql at colsep@-\eql at tagsepmin@
\fi
\fi
\fi
- \count@\eql at align@inter@
- \ifdefined\eql at align@margins
- \ifdefined\eql at flushleft
+ \count@\eql at columns@inter@
+ \ifdefined\eql at columns@margins
+ \ifdefined\eql at layoutleft
\advance\count@\@ne
\else
\advance\count@\tw@
@@ -6508,26 +7128,26 @@
% Now determine the left margin |\eql at marginleft@|
% \TODO complete
% \begin{macrocode}
- \ifdefined\eql at flushleft
+ \ifdefined\eql at layoutleft
\ifdim\eql at colsep@=\eql at colsepmin@
\eql at marginleft@\displaywidth
\advance\eql at marginleft@-\eql at totalwidth@
- \advance\eql at marginleft@-\eql at align@inter@\eql at colsep@
- \ifdim\eql at marginleft@>\eql at flushleftmargin@
- \eql at marginleft@\eql at flushleftmargin@
+ \advance\eql at marginleft@-\eql at columns@inter@\eql at colsep@
+ \ifdim\eql at marginleft@>\eql at layoutleftmargin@
+ \eql at marginleft@\eql at layoutleftmargin@
\else
- \ifdim\eql at marginleft@<\eql at flushleftmarginmin@
- \eql at marginleft@\eql at flushleftmarginmin@
+ \ifdim\eql at marginleft@<\eql at layoutleftmarginmin@
+ \eql at marginleft@\eql at layoutleftmarginmin@
\fi
\fi
\else
- \eql at marginleft@\eql at flushleftmargin@
+ \eql at marginleft@\eql at layoutleftmargin@
\fi
\else
- \ifdefined\eql at align@margins
+ \ifdefined\eql at columns@margins
\eql at marginleft@\displaywidth
\advance\eql at marginleft@-\eql at totalwidth@
- \advance\eql at marginleft@-\eql at align@inter@\eql at colsep@
+ \advance\eql at marginleft@-\eql at columns@inter@\eql at colsep@
\ifdim\eql at marginleft@<\eql at tagmargin@
\eql at marginleft@\z@
\else
@@ -6555,9 +7175,9 @@
% at the corresponding side as far as possible:
% \begin{macrocode}
\ifdefined\eql at tagsleft
- \let\eql at align@adjust at test\eql at align@adjust at test@tagleft
+ \let\eql at columns@adjust at test\eql at columns@adjust at test@tagleft
\else
- \let\eql at align@adjust at test\eql at align@adjust at test@tagright
+ \let\eql at columns@adjust at test\eql at columns@adjust at test@tagright
\fi
\eql at row@\eql at totalrows@
\loop\ifnum\eql at row@>\z@
@@ -6575,8 +7195,8 @@
\fi
\fi
\ifdim\eql at tagwidth@>\z@
- \eql at align@adjust at calc
- \eql at align@adjust at test
+ \eql at columns@adjust at calc
+ \eql at columns@adjust at test
\fi
\advance\eql at row@\m at ne
\repeat
@@ -6584,7 +7204,7 @@
% From now on |\eql at totalwidth@| will include
% the left margin and the total intercolumn separation:
% \begin{macrocode}
- \advance\eql at totalwidth@\eql at align@inter@\eql at colsep@
+ \advance\eql at totalwidth@\eql at columns@inter@\eql at colsep@
\advance\eql at totalwidth@\eql at marginleft@
}
% \end{macrocode}
@@ -6592,7 +7212,7 @@
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{Calc Space.}
%
-% \macro{\eql at align@adjust at calc}
+% \macro{\eql at columns@adjust at calc}
% Compute the space that is available at the beginning and at the end
% of a particular row |\eql at row@|.
% The space available at the beginning is returned in |\eql at line@avail@|
@@ -6602,9 +7222,9 @@
% The total used width is returned in |\eql at line@width@|
% and |\@tempcntb| describes the last used intercolumn space.
% The available space at the end of the row is given as the difference
-% to |\eql at totalwidth@| and |\eql at align@inter@|:
+% to |\eql at totalwidth@| and |\eql at columns@inter@|:
% \begin{macrocode}
-\def\eql at align@adjust at calc{%
+\def\eql at columns@adjust at calc{%
\eql at line@pos@\z@
\eql at column@\z@
\eql at line@avail@\eql at totalwidth@
@@ -6613,7 +7233,7 @@
\@tempcntb\z@
\edef\@tempb{\eql at fieldlength@get\eql at row@}%
\@for\@tempa:=\@tempb\do
- \eql at align@adjust at calc@col
+ \eql at columns@adjust at calc@col
\advance\@tempcnta\m at ne
\divide\@tempcnta\tw@
\advance\@tempcntb\m at ne
@@ -6621,16 +7241,16 @@
}
% \end{macrocode}
%
-% \macro{\eql at align@adjust at calc@col}
-% The macro |\eql at align@adjust at width@col| iterates over columns.
+% \macro{\eql at columns@adjust at calc@col}
+% The macro |\eql at columns@adjust at width@col| iterates over columns.
% When a non-blank field is encountered,
% the available space on the left will be fixed if it is still undetermined,
% and the total width is updated to the current position:
% \begin{macrocode}
-\def\eql at align@adjust at calc@col{%
+\def\eql at columns@adjust at calc@col{%
\advance\eql at column@\@ne
\@tempdima\@tempa\relax
- \dimen@\eql at align@colwidth at get\eql at column@\relax
+ \dimen@\eql at columns@colwidth at get\eql at column@\relax
\ifdim\@tempdima>\z@
\ifdim\eql at line@width@=\z@
\eql at line@avail@\eql at line@pos@
@@ -6655,10 +7275,10 @@
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{Placement for Right Tags.}
%
-% \macro{\eql at align@adjust at test@tagright}
+% \macro{\eql at columns@adjust at test@tagright}
% Test whether the spacing can be adjusted to make the current row fit:
% \begin{macrocode}
-\def\eql at align@adjust at test@tagright{%
+\def\eql at columns@adjust at test@tagright{%
% \end{macrocode}
% The register |\@tempdima| will hold the amount of available space.
% \begin{macrocode}
@@ -6678,23 +7298,23 @@
% and minimal left margin (in left alignment layout).
% \begin{macrocode}
\dimen@\@tempcntb\eql at colsepmin@
- \ifdefined\eql at flushleft
- \advance\dimen@\eql at flushleftmarginmin@
+ \ifdefined\eql at layoutleft
+ \advance\dimen@\eql at layoutleftmarginmin@
\fi
\ifdim\dimen@>\@tempdima\else
% \end{macrocode}
-% If so, hand over to |\eql at align@adjust at modify@tagright|.
+% If so, hand over to |\eql at columns@adjust at modify@tagright|.
% \begin{macrocode}
- \eql at align@adjust at modify@tagright
+ \eql at columns@adjust at modify@tagright
\fi
\fi
}
% \end{macrocode}
%
-% \macro{\eql at align@adjust at modify@tagright}
+% \macro{\eql at columns@adjust at modify@tagright}
% Adjust the intercolumn space and left margin to make the row fit.
% \begin{macrocode}
-\def\eql at align@adjust at modify@tagright{%
+\def\eql at columns@adjust at modify@tagright{%
% \end{macrocode}
% If there are any intercolumn spaces that contribute to the available space,
% determine how much intercolumn separation would be needed
@@ -6707,10 +7327,10 @@
\ifnum\@tempcntb>\z@
\dimen@\@tempdima
\count@\@tempcntb
- \ifdefined\eql at flushleft
+ \ifdefined\eql at layoutleft
\advance\dimen at -\eql at marginleft@
\else
- \ifdefined\eql at align@margins
+ \ifdefined\eql at columns@margins
\advance\count@\@ne
\fi
\fi
@@ -6741,10 +7361,10 @@
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \paragraph{Placement for Left Tags.}
%
-% \macro{\eql at align@adjust at test@tagleft}
+% \macro{\eql at columns@adjust at test@tagleft}
% Test whether the spacing can be adjusted to make the current row fit:
% \begin{macrocode}
-\def\eql at align@adjust at test@tagleft{%
+\def\eql at columns@adjust at test@tagleft{%
% \end{macrocode}
% The register |\@tempdima| will hold the deficit amount of space
% at the beginning of the row without adjustable space,
@@ -6751,7 +7371,7 @@
% and the register |\count@| will hold the number of
% intercolumn spaces that would contribute to space adjustments.
% \begin{macrocode}
- \count@\eql at align@inter@
+ \count@\eql at columns@inter@
\advance\count at -\@tempcnta
\@tempdima\eql at tagwidth@
\advance\@tempdima-\eql at line@avail@
@@ -6766,8 +7386,8 @@
% If not, first verify that the tag will fit the line
% (or the maxumal left margin in left alignment layout).
% \begin{macrocode}
- \ifdefined\eql at flushleft
- \dimen@\eql at flushleftmarginmax@
+ \ifdefined\eql at layoutleft
+ \dimen@\eql at layoutleftmarginmax@
\else
\dimen@\displaywidth
\fi
@@ -6781,9 +7401,9 @@
\advance\dimen@\@tempdima
\ifdim\dimen@>\displaywidth\else
% \end{macrocode}
-% If so, hand over to |\eql at align@adjust at modify@tagleft|.
+% If so, hand over to |\eql at columns@adjust at modify@tagleft|.
% \begin{macrocode}
- \eql at align@adjust at modify@tagleft
+ \eql at columns@adjust at modify@tagleft
\fi
\fi
\fi
@@ -6792,10 +7412,10 @@
%
% \TODO implement a maximum shift (if tag+sep exceeds max, don't adjust)
% \TODO could this mechanism possibly shift any longer line past the margin?!
-% \macro{\eql at align@adjust at modify@tagleft}
+% \macro{\eql at columns@adjust at modify@tagleft}
% Adjust the intercolumn space and left margin to make the row fit.
% \begin{macrocode}
-\def\eql at align@adjust at modify@tagleft{%
+\def\eql at columns@adjust at modify@tagleft{%
% \end{macrocode}
% If there are any intercolumn spaces that contribute to the available space,
% determine how much intercolumn separation would be needed
@@ -6809,7 +7429,7 @@
\dimen@\displaywidth
\advance\dimen at -\eql at totalwidth@
\advance\dimen at -\@tempdima
- \ifdefined\eql at align@margins
+ \ifdefined\eql at columns@margins
\advance\count@\@ne
\fi
\divide\dimen@\count@
@@ -6823,7 +7443,7 @@
\dimen@\eql at colsepmin@
\fi
\advance\dimen at -\eql at colsep@
- \advance\eql at marginleft@-\eql at align@inter@\dimen@
+ \advance\eql at marginleft@-\eql at columns@inter@\dimen@
\advance\eql at colsep@\dimen@
\fi
\fi
@@ -7123,6 +7743,156 @@
% \end{macrocode}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Single-Line Main}
+%
+% \begin{macrocode}
+\def\eql at single@cr{%
+ \eql at error{Cannot use `\string\\' within display equation.
+ Please switch to equations environment}%
+}
+% \end{macrocode}
+%
+% \TODO describe
+% \begin{macrocode}
+\def\eql at single@start{%
+ \eql at halign@catchprevdepth
+ \eql at tagging@start
+ \eql at dollardollar@begin
+ \eql at numbering@eval at mode
+ \let\eql at numbering@subeq at use\eql at false
+ \eql at stack@save at single
+% \end{macrocode}
+%
+% \TODO make other display environments push these!?
+% \begin{macrocode}
+ \eql at numbering@single at init
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \ifdefined\eql at single@native
+ \let\eql at single@start at sel\eql at single@start at native
+ \let\eql at single@end at sel\eql at single@end at native
+ \let\raisetag\eql at raisetag@default
+ \else
+ \let\eql at single@start at sel\eql at single@start at print
+ \let\eql at single@end at sel\eql at single@end at print
+ \fi
+ \ifdefined\eql at single@crerror\else
+ \let\\\eql at single@cr
+ \fi
+ \eql at single@start at sel
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\eql at single@end{%
+ \eql at punct@apply at block
+ \eql at hook@eqout
+ \eql at single@end at sel
+ \eql at stack@restore
+ \eql at dollardollar@end
+ \eql at tagging@end
+ \eql at halign@leave
+}
+% \end{macrocode}
+%
+% \TODO: try to feed in tagging after catchprevdepth
+% \begin{macrocode}
+\def\eql at single@main{%
+ \expandafter\eql at single@start
+ \eql at scan@body
+ \eql at single@end
+}
+% \end{macrocode}
+%
+% \TODO describe
+% \begin{macrocode}
+\def\eql at mode@equation{%
+ \ifdefined\eql at single@doscan
+ \let\eql at equations@main\eql at single@main
+ \let\eql at equations@end\@empty
+ \else
+ \let\eql at equations@main\@undefined
+ \let\eql at equations@end\eql at single@end
+ \fi
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Multi-Line Main}
+%
+% \TODO note that switching from align to lines mode,
+% the width can be incorrect due to different formatting (punctuation only?!).
+% only minor discrpancies expected and lines can adjust
+% \macro{\eql at multi@main}
+% \begin{macrocode}
+\let\eql at multi@mode at lines\eql at false
+\def\eql at multi@main{%
+ \eql at halign@catchprevdepth
+ \eql at tagging@start
+ \eql at dollardollar@begin
+ \eql at numbering@eval at mode
+ \eql at stack@save at multi
+ \ifdefined\eql at subequations@active
+ \let\eql at numbering@subeq at use\eql at false
+ \fi
+ \ifdefined\eql at numbering@subeq at use
+ \eql at numbering@subeq at init
+ \fi
+ \let\intertext\eql at intertext
+ \let\endintertext\endeql at intertext
+ \let\shoveleft\eql at adjust@alignleft
+ \let\shovecenter\eql at adjust@aligncenter
+ \let\shoveright\eql at adjust@alignright
+ \ifdefined\eql at multi@mode at lines
+ \expandafter\eql at lines@measure
+ \else
+ \ifdefined\eql at ampproof@active
+ \eql at ampproof
+ \fi
+ \expandafter\eql at columns@measure
+ \fi
+ \ifx\eql at numbering@subeq at use\@ne
+ \eql at numbering@subeq at revert
+ \fi
+ \ifdefined\eql at multi@mode at lines\else
+ \ifdefined\eql at multi@linesfallback
+ \ifnum\eql at totalcolumns@=\@ne
+ \let\eql at multi@mode at lines\eql at true
+% \eql at lines@measure
+ \fi
+ \fi
+ \fi
+ \ifdefined\eql at multi@mode at lines
+ \expandafter\eql at lines@print
+ \else
+ \expandafter\eql at columns@print
+ \fi
+ \ifdefined\eql at numbering@subeq at use
+ \eql at numbering@subeq at close
+ \fi
+ \eql at stack@restore
+ \eql at dollardollar@end
+ \eql at tagging@end
+ \eql at halign@leave
+}
+% \end{macrocode}
+%
+% \TODO describe
+% \begin{macrocode}
+\def\eql at mode@columns{%
+ \let\eql at equations@main\eql at multi@main
+ \let\eql at equations@end\@empty
+ \let\eql at multi@mode at lines\eql at false
+}
+\def\eql at mode@lines{%
+ \let\eql at equations@main\eql at multi@main
+ \let\eql at equations@end\@empty
+ \let\eql at multi@mode at lines\eql at true
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Equations Environment}
%
% We now declare the main environment and its symbolic versions.
@@ -7276,71 +8046,7 @@
% \end{macrocode}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Independent Routines of amsmath}
-%
-% \macro{\eqref}
-% \ctanpkg{amsmath} defines the macro |\eqref|
-% to refer to equation labels in a proper format
-% We provide it for completeness:
-% \begin{macrocode}
-\DeclareRobustCommand{\eql at eqref}[1]{\textup{\eql at tag@boxedform{\ref{#1}}}}
-% \end{macrocode}
-%
-% \macro{\numberwithin}
-% \ctanpkg{amsmath} defines the macro |\numberwithin|
-% to specify that equations should be numbered within sections.
-% The \LaTeX{} kernel contains a similar command
-% |\counterwithin| (with a slightly extended syntax) that can be used
-% as a drop-in replacement for |\numberwithin|:
-% \begin{macrocode}
-\DeclareRobustCommand{\eql at numberwithin}[3][\arabic]{%
- \@ifundefined{c@#2}{\@nocounterr{#2}}{%
- \@ifundefined{c@#3}{\@nocounterr{#3}}{%
- \ifdefined\HyOrg at addtoreset
- \HyOrg at addtoreset{#2}{#3}%
- \else
- \@addtoreset{#2}{#3}%
- \fi
- \expandafter\xdef\csname the#2\endcsname{%
- \expandafter\noexpand\csname the#3\endcsname.\noexpand#1{#2}}%
- \ifdefined\theHequation
- \expandafter\xdef\csname theH#2\endcsname{%
- \expandafter\noexpand
- \csname the\@ifundefined{theH#3}{}H#3\endcsname.%
- \noexpand\arabic{#2}}%
- \fi
- }%
- }%
-}
-% \end{macrocode}
-%
-% \imacro{\allowdisplaybreaks}
-% \ctanpkg{amsmath} defines the macro |\allowdisplaybreaks|
-% which we also provide for completeness.
-% The package uses the general setup mechanism instead:
-% \begin{macrocode}
-\DeclareRobustCommand{\eql at allowdisplaybreaks}[1][4]{%
- \eqnlinesset{allowbreaks=#1}%
-}
-% \end{macrocode}
-%
-% \imacro{\notag}
-% \ctanpkg{amsmath} defines the alias |\notag| for |\nonumber|
-% which we also provide for completeness:
-% \begin{macrocode}
-\newcommand{\eql at notag}{\nonumber}
-% \end{macrocode}
-%
-% \imacro{\thetag}
-% \ctanpkg{amsmath} defines |\thetag| to print a tag
-% which we also provide for completeness:
-% \begin{macrocode}
-\newcommand{\eql at thetag}{\leavevmode\eql at tag@boxedform}
-% \end{macrocode}
-%
-%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section{Options}
%
% The package uses the \ctanpkg{keyval} mechanism to parse
@@ -7418,10 +8124,23 @@
\eql at decide@select{#1}{#2}{#3}{%
{,abovebelow,both,tb}{#4#5},%
{above,top,t}{#4},%
- {below,bottom,b}{#5}}%
- }
+ {below,bottom,b}{#5}}}
% \end{macrocode}
%
+% \macro{\eql at decide@situation}
+% \TODO describe
+% \begin{macrocode}
+\def\eql at decide@situation#1#2#3#4{%
+ \eql at decide@select{#1}{#2}{#3}{%
+ {{long}{\def#4{0}}},%
+ {{short}{\def#4{1}}},%
+ {{cont}{\def#4{2}}},%
+ {{par}{\def#4{3}}},%
+ {{top}{\def#4{4}}},%
+ {{noskip}{\def#4{5}}},%
+ {{medskip}{\def#4{6}}}}}
+% \end{macrocode}
+%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Declaration Code}
%
@@ -7482,86 +8201,6 @@
% \end{macrocode}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Parameter Sets}
-%
-% \TODO par at above plus parskip?
-% \begin{macrocode}
-\def\eql at defaults@classic{%
- \def\eql at tagsepmin@val{.5\fontdimen6\textfont\tw@}%
- \def\eql at colsepmax@val{.5\maxdimen}%
- \def\eql at spread{\jot}%
- \let\eql at tagmargin@val\@undefined
- \eql at tagmargin@ratio@\p@
- \def\eql at tagmargin@threshold{0.5}%
- \def\eql at flushleftmargin@val{\leftmargini}%
- \let\eql at display@height\@undefined
- \let\eql at display@depth\@undefined
- \eql at skip@mode at short@\tw@
- \eql at skip@mode at cont@\@ne
- \eql at skip@mode at par@\z@
- \eql at skip@mode at top@\z@
- \def\eql at skip@long at above{\abovedisplayskip}%
- \def\eql at skip@long at below{\belowdisplayskip}%
- \def\eql at skip@short at above{\abovedisplayshortskip}%
- \def\eql at skip@short at below{\belowdisplayshortskip}%
- \def\eql at skip@cont at above{\eql at skip@short at above}%
- \def\eql at skip@cont at below{\eql at skip@short at below}%
- \def\eql at skip@par at above{\eql at skip@long at above}%
- \def\eql at skip@par at below{\eql at skip@long at below}%
- \def\eql at skip@top at above{\eql at skip@long at above}%
- \def\eql at skip@top at below{\eql at skip@long at below}%
- \def\eql at skip@med at above{\abovedisplayskip/2}%
- \def\eql at skip@med at below{\belowdisplayskip/2}%
- \def\eql at skip@medtag at above{\z at skip}%
- \def\eql at skip@medtag at below{\z at skip}%
- \def\eql at skip@tag at above{\z at skip}%
- \def\eql at skip@tag at below{\z at skip}%
-}
-% \end{macrocode}
-%
-% values based on 10pt vs 12pt
-% \begin{macrocode}
-\def\eql at defaults@eqnlines{%
- \def\eql at tagsepmin@val{.5em}%
- \def\eql at colsepmax@val{2em}%
- \def\eql at spread{0.2\normalbaselineskip}%
- \let\eql at tagmargin@val\@undefined
- \eql at tagmargin@ratio at .334\p@
- \def\eql at tagmargin@threshold{0.5}%
- \def\eql at flushleftmargin@val{\leftmargini}%
- \def\eql at display@height{\ht\eql at strutbox@}%
- \def\eql at display@depth{\dp\eql at strutbox@}%
- \eql at skip@mode at short@\@ne
- \eql at skip@mode at cont@\z@
- \eql at skip@mode at par@\z@
- \eql at skip@mode at top@\z@
- \def\eql at skip@long at above{0.75\normalbaselineskip
- \@plus0.25\normalbaselineskip\@minus0.4\normalbaselineskip}%
- \let\eql at skip@long at below\eql at skip@long at above
- \def\eql at skip@short at above{0.0\normalbaselineskip
- \@plus0.25\normalbaselineskip}%
- \def\eql at skip@short at below{0.0\normalbaselineskip
- \@plus0.25\normalbaselineskip}%
- \def\eql at skip@med at above{0.4\normalbaselineskip
- \@plus0.2\normalbaselineskip\@minus0.2\normalbaselineskip}%
- \let\eql at skip@med at below\eql at skip@med at above
- \def\eql at skip@cont at above{\z at skip}%
- \def\eql at skip@cont at below{\eql at skip@long at below}%
- \def\eql at skip@par at above{\eql at skip@long at above}%
- \def\eql at skip@par at below{\eql at skip@long at below}%
- \def\eql at skip@top at above{\z at skip}%
- \def\eql at skip@top at below{\z at skip}%
- \def\eql at skip@tag at above{\z at skip}%
- \def\eql at skip@tag at below{\z at skip}%
- \def\eql at skip@partag at above{\z at skip}%
- \def\eql at skip@partag at below{\z at skip}%
- \def\eql at skip@medtag at above{\z at skip}%
- \def\eql at skip@medtag at below{\z at skip}%
-}
-\eql at defaults@eqnlines
-% \end{macrocode}
-%
-% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Options Declarations}
%
% \TODO describe
@@ -7571,8 +8210,8 @@
%
% \TODO describe
% \begin{macrocode}
-\eql at define@key{equationsbox}{gathered,gather,ga,lines,lined,ln,\string~}[]{%
- \eql at mode@lined}
+\eql at define@key{equationsbox}{gathered,gather,ga,lines,ln,\string~}[]{%
+ \eql at mode@stacked}
\eql at define@key{equationsbox}{aligned,align,al,columns,col,@}[]{%
\eql at mode@aligned}
\eql at define@key{equationsbox}{top,t}[]{\let\eql at box@box\vtop}
@@ -7587,13 +8226,13 @@
% \TODO describe
% \begin{macrocode}
\eql at define@key{equations}{equation,eq,single,1}[]{\eql at mode@equation}
-\eql at define@key{equations}{gathered,gather,ga,lines,lined,ln,\string~}[]{%
+\eql at define@key{equations}{gathered,gather,ga,lines,ln,\string~}[]{%
\eql at mode@lines}
\eql at define@key{equations}{aligned,align,al,columns,col,@}[]{%
- \eql at mode@align}
+ \eql at mode@columns}
\eql at define@key{equations}{native}[true]{%
\eql at decide@bool{#3}{#2}{#1}\eql at single@native%
- \ifdefined\eql at single@native\let\eql at flushleft\eql at false\fi}
+ \ifdefined\eql at single@native\let\eql at layoutleft\eql at false\fi}
\eql at define@key{setup}{native}[true]{%
\eql at decide@bool{#3}{#2}{#1}\eql at single@native}
\eql at define@key{setup}{scanequation}[true]{%
@@ -7611,7 +8250,7 @@
% \TODO describe
% \begin{macrocode}
\def\eql at keycat{equations,equationsbox,setup}
-\eql at define@key\eql at keycat{spread}[\jot]{\def\eql at spread{#1}}
+\eql at define@key\eql at keycat{spread}{\def\eql at spread@val{#1}}
\eql at define@key\eql at keycat{strut}[true]{\eql at decide@if{#3}{#2}{#1}%
{\let\eql at strut@field\eql at strut}{\let\eql at strut@field\relax}}
\eql at define@key\eql at keycat{struttag}[true]{\eql at decide@if{#3}{#2}{#1}%
@@ -7773,33 +8412,27 @@
\eql at define@key{setup}{abovecontskip}{%
\def\eql at skip@cont at above{#1}}
\eql at define@key{setup}{abovecontskip*}[]{%
- \def\eql at skip@cont at above{\eql at spread-\eql at skip@long at below}}
+ \def\eql at skip@cont at above{\eql at spread@val-\eql at skip@long at below}}
\eql at define@key{setup}{belowcontskip}{%
\def\eql at skip@cont at below{#1}}
\eql at define@key{setup}{shortmode}{%
\eql at decide@select{#3}{#2}{#1}{%
- {{off,never,no}{\eql at skip@mode at short@\z@}},%
- {{above,neverbelow,notbelow,belowoff}{\eql at skip@mode at short@\@ne}},%
- {{belowone,belowsingle}{\eql at skip@mode at short@\tw@}},%
- {{belowall,always,on}{\eql at skip@mode at short@\thr@@}}}}
+ {{off,never,no}{\def\eql at skip@mode at short{0}}},%
+ {{above,neverbelow,notbelow,belowoff}{\def\eql at skip@mode at short{1}}},%
+ {{belowone,belowsingle}{\def\eql at skip@mode at short{2}}},%
+ {{belowall,always,on}{\def\eql at skip@mode at short{3}}}}}
+\eql at define@key{setup}{abovecontmode}{%
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at cont@above}
\eql at define@key{setup}{belowcontmode}{%
- \eql at decide@select{#3}{#2}{#1}{%
- {{long}{\eql at skip@mode at cont@\z@}},%
- {{short}{\eql at skip@mode at cont@\@ne}},%
- {{cont}{\eql at skip@mode at cont@\tw@}}}}
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at cont@below}
+\eql at define@key{setup}{aboveparmode}{%
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at par@above}
\eql at define@key{setup}{belowparmode}{%
- \eql at decide@select{#3}{#2}{#1}{%
- {{long}{\eql at skip@mode at par@\z@}},%
- {{short}{\eql at skip@mode at par@\@ne}},%
- {{cont}{\eql at skip@mode at par@\tw@}},%
- {{par}{\eql at skip@mode at par@\thr@@}}}}
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at par@below}
+\eql at define@key{setup}{abovetopmode}{%
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at top@above}
\eql at define@key{setup}{belowtopmode}{%
- \eql at decide@select{#3}{#2}{#1}{%
- {{long}{\eql at skip@mode at top@\z@}},%
- {{short}{\eql at skip@mode at top@\@ne}},%
- {{cont}{\eql at skip@mode at top@\tw@}},%
- {{par}{\eql at skip@mode at top@\thre@@}},%
- {{top}{\eql at skip@mode at top@4\relax}}}}
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at top@below}
% \end{macrocode}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -7819,10 +8452,10 @@
% \TODO describe
% \begin{macrocode}
\def\eql at keycat{equations,setup}
-\eql at define@key\eql at keycat{tagmargin}{\def\eql at tagmargin@val{#1}}
+\eql at define@key\eql at keycat{tagmargin}[]{\def\eql at tagmargin@val{#1}
+ \ifx\eql at tagmargin@val\@empty\let\eql at tagmargin@val\@undefined\fi}
\eql at define@key\eql at keycat{tagmargin*}{%
\settowidth\dimen@{#1}\edef\eql at tagmargin@val{\the\dimen@}}
-\eql at define@key\eql at keycat{tagmargincalc}[]{\let\eql at tagmargin@val\@undefined}
\eql at define@key\eql at keycat{tagmarginratio}{%
\eql at tagmargin@ratio@\dimexpr#1pt\relax}
\eql at define@key\eql at keycat{tagmarginthreshold}{%
@@ -7838,15 +8471,20 @@
%
% \TODO describe
% \begin{macrocode}
-\eql at define@key{setup}{taglayout}{\eql at tag@setbox{#1}}
-\eql at define@key{setup}{taglayout*}{\eql at tag@setbox@{#1}}
+\eql at define@key{setup}{tagbox,taglayout}{\eql at tag@setbox{#1}}
+\eql at define@key{setup}{tagbox,taglayout*}{\eql at tag@setbox@{#1}}
\eql at define@key{setup}{tagform}{\eql at tag@setform#1}
\eql at define@key{setup}{tagform*}{\eql at tag@setform@{#1}}
-\eql at define@key{setup}{subeqtemplate}{\def\eql at subequations@template{#1}}
+\eql at define@key{setup}{subeqtemplate}{%
+ \def\eql at subequations@template####1####2{#1}%
+ \expandafter\def\expandafter\eql at subequations@template\expandafter{%
+ \eql at subequations@template\theparentequation{equation}}%
+}
+%\def\eql at subequations@template{#1}}
\eql at define@key{setup}{autolabel}[true]{%
- \eql at decide@bool{#3}{#2}{#1}\eql at autolabel}
+ \eql at decide@bool{#3}{#2}{#1}\eql at numbering@autolabel}
\eql at define@key{setup}{autotag}[true]{%
- \eql at decide@bool{#3}{#2}{#1}\eql at autotag}
+ \eql at decide@bool{#3}{#2}{#1}\eql at numbering@autotag}
% \end{macrocode}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -7857,8 +8495,10 @@
\def\eql at keycat{equations,setup}
\eql at define@key\eql at keycat{numberline,numline,n}[all]{%
\eql at numbering@set{##1}}
-\eql at define@key\eql at keycat{nonumber,nn,*}[]{\let\eql at numbering@active\eql at false}
-\eql at define@key\eql at keycat{donumber,dn,!}[]{\let\eql at numbering@active\eql at true}
+\eql at define@key\eql at keycat{nonumber,nn,*}[]{%
+ \let\eql at numbering@active\eql at false}
+\eql at define@key\eql at keycat{donumber,dn,!}[]{%
+ \let\eql at numbering@active\eql at true}
\eql at define@key\eql at keycat{number,num}[true]{%
\eql at decide@bool{#3}{#2}{#1}\eql at numbering@active}
\eql at define@key\eql at keycat{tagsleft,leqno}[]{\let\eql at tagsleft\eql at true}
@@ -7876,19 +8516,19 @@
% \begin{macrocode}
\def\eql at keycat{equations,setup}
\eql at define@key\eql at keycat{layout}{\eql at decide@select{#3}{#2}{#1}{%
- {{center,c}{\let\eql at flushleft\eql at false}},%
- {{left,l}{\let\eql at flushleft\eql at true}}}}
-\eql at define@key\eql at keycat{center}[]{\let\eql at flushleft\eql at false}
-\eql at define@key\eql at keycat{flushleft,left}[]{\let\eql at flushleft\eql at true}
-\eql at define@key\eql at keycat{leftmargin}{\def\eql at flushleftmargin@val{#1}}
+ {{center,c}{\let\eql at layoutleft\eql at false}},%
+ {{left,l}{\let\eql at layoutleft\eql at true}}}}
+\eql at define@key\eql at keycat{center}[]{\let\eql at layoutleft\eql at false}
+\eql at define@key\eql at keycat{flushleft,left}[]{\let\eql at layoutleft\eql at true}
+\eql at define@key\eql at keycat{leftmargin}{\def\eql at layoutleftmargin@val{#1}}
\eql at define@key\eql at keycat{leftmargin*}{%
- \settowidth\dimen@{#1}\edef\eql at flushleftmargin@val{\the\dimen@}}
+ \settowidth\dimen@{#1}\edef\eql at layoutleftmargin@val{\the\dimen@}}
\eql at define@key\eql at keycat{minleftmargin}{%
- \eql at flushleftmarginmin@\glueexpr#1\relax}
+ \eql at layoutleftmarginmin@\glueexpr#1\relax}
\eql at define@key\eql at keycat{maxleftmargin}{%
- \eql at flushleftmarginmax@\glueexpr#1\relax}
+ \eql at layoutleftmarginmax@\glueexpr#1\relax}
\eql at define@key\eql at keycat{maxleftmargin*}[]{%
- \eql at flushleftmarginmax@.5\maxdimen}
+ \eql at layoutleftmarginmax@.5\maxdimen}
% \end{macrocode}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -7903,7 +8543,7 @@
\eql at define@key\eql at keycat{maxcolsep}{\def\eql at colsepmax@val{#1}}
\eql at define@key\eql at keycat{maxcolsep*}[]{\def\eql at colsepmax@val{.5\maxdimen}}
\eql at define@key\eql at keycat{margins}[true]{%
- \eql at decide@bool{#3}{#2}{#1}\eql at align@margins}
+ \eql at decide@bool{#3}{#2}{#1}\eql at columns@margins}
\def\eql at keycat{equationsbox,setup}
\eql at define@key\eql at keycat{margin}{%
\def\eql at box@marginleft{#1}\def\eql at box@marginright{#1}}
@@ -7941,7 +8581,7 @@
\def\eql at keycat{equations,equationsbox,setup}
\eql at define@key\eql at keycat{classout}{\eql at class@innerleft at set{#1}}
\eql at define@key\eql at keycat{classin}{\eql at class@innerright at set{#1}}
-\eql at define@key\eql at keycat{classin*}{\eql at class@innerlead at set{#1}}
+\eql at define@key\eql at keycat{classlead,classin*}{\eql at class@innerlead at set{#1}}
\eql at define@key\eql at keycat{ampeq}[]{\eql at class@ampeq}
\eql at define@key\eql at keycat{eqamp}[]{\eql at class@eqamp}
\eql at define@key\eql at keycat{class}{\eql at decide@select{#3}{#2}{#1}{%
@@ -8017,6 +8657,91 @@
% \end{macrocode}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Parameter Sets}
+%
+% \TODO par at above plus parskip?
+% \begin{macrocode}
+\def\eql at defaults@classic{%
+ \eqnlinesset{mintagsep={.5\fontdimen6\textfont2\relax}}%
+ \eqnlinesset{maxcolsep*}%
+ \eqnlinesset{spread={\jot}}%
+ \eqnlinesset{tagmargin}%
+ \eqnlinesset{tagmarginratio=1}%
+ \eqnlinesset{tagmarginthreshold=0.5}%
+ \eqnlinesset{leftmargin={\leftmargini}}%
+ \eqnlinesset{displayheight*}%
+ \eqnlinesset{displaydepth*}%
+ \eqnlinesset{shortmode=belowsingle}%
+ \eqnlinesset{abovecontmode=short}%
+ \eqnlinesset{belowcontmode=short}%
+ \eqnlinesset{aboveparmode=long}%
+ \eqnlinesset{belowparmode=long}%
+ \eqnlinesset{abovetopmode=long}%
+ \eqnlinesset{belowtopmode=long}%
+ \eqnlinesset{abovelongskip={\abovedisplayskip}}%
+ \eqnlinesset{belowlongskip={\belowdisplayskip}}%
+ \eqnlinesset{aboveshortskip={\abovedisplayshortskip}}%
+ \eqnlinesset{belowshortskip={\belowdisplayshortskip}}%
+ \eqnlinesset{abovemedskip={.5\abovedisplayskip}}%
+ \eqnlinesset{belowmedskip={.5\belowdisplayskip}}%
+ \eqnlinesset{abovecontskip=0pt}%
+ \eqnlinesset{belowcontskip=0pt}%
+ \eqnlinesset{aboveparskip=0pt}%
+ \eqnlinesset{belowparskip=0pt}%
+ \eqnlinesset{abovetopskip=0pt}%
+ \eqnlinesset{belowtopskip=0pt}%
+ \eqnlinesset{abovetagskip=0pt}%
+ \eqnlinesset{belowtagskip=0pt}%
+ \eqnlinesset{abovemedtagskip=0pt}%
+ \eqnlinesset{belowmedtagskip=0pt}%
+ \eqnlinesset{abovepartagskip=0pt}%
+ \eqnlinesset{belowpartagskip=0pt}%
+}
+% \end{macrocode}
+%
+% values based on 10pt vs 12pt
+% \begin{macrocode}
+\def\eql at defaults@eqnlines{%
+ \eqnlinesset{mintagsep=.5em}%
+ \eqnlinesset{maxcolsep=2em}%
+ \eqnlinesset{spread={0.2\normalbaselineskip}}%
+ \eqnlinesset{tagmargin}%
+ \eqnlinesset{tagmarginratio=.334}%
+ \eqnlinesset{tagmarginthreshold=0.5}%
+ \eqnlinesset{leftmargin={\leftmargini}}%
+ \eqnlinesset{displayheight}%
+ \eqnlinesset{displaydepth}%
+ \eqnlinesset{shortmode=above}%
+ \eqnlinesset{abovecontmode=noskip}%
+ \eqnlinesset{belowcontmode=long}%
+ \eqnlinesset{aboveparmode=long}%
+ \eqnlinesset{belowparmode=long}%
+ \eqnlinesset{abovetopmode=noskip}%
+ \eqnlinesset{belowtopmode=long}%
+ \eqnlinesset{longskip={0.75\normalbaselineskip
+ plus 0.25\normalbaselineskip minus 0.4\normalbaselineskip}}%
+ \eqnlinesset{aboveshortskip={0.0\normalbaselineskip
+ plus 0.25\normalbaselineskip}}%
+ \eqnlinesset{belowshortskip={0.0\normalbaselineskip
+ plus 0.25\normalbaselineskip}}%
+ \eqnlinesset{medskip={0.4\normalbaselineskip
+ plus 0.2\normalbaselineskip minus 0.2\normalbaselineskip}}%
+ \eqnlinesset{abovecontskip=0pt}%
+ \eqnlinesset{belowcontskip=0pt}%
+ \eqnlinesset{aboveparskip=0pt}%
+ \eqnlinesset{belowparskip=0pt}%
+ \eqnlinesset{abovetopskip=0pt}%
+ \eqnlinesset{belowtopskip=0pt}%
+ \eqnlinesset{abovetagskip=0pt}%
+ \eqnlinesset{belowtagskip=0pt}%
+ \eqnlinesset{abovemedtagskip=0pt}%
+ \eqnlinesset{belowmedtagskip=0pt}%
+ \eqnlinesset{abovepartagskip=0pt}%
+ \eqnlinesset{belowpartagskip=0pt}%
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Component Selection}
%
% \TODO describe
@@ -8041,7 +8766,7 @@
\newenvironment{eql at align}
{\eqnaddopt{align}\equations}{\endequations}
\newenvironment{eql at flalign}
- {\eqnaddopt{align,margins=false}\equations}{\endequations}
+ {\eqnaddopt{align,margins=false,maxcolsep*}\equations}{\endequations}
\newenvironment{eql at equation*}
{\eqnaddopt{nonumber}\eql at equation}{\endequations}
\newenvironment{eql at gather*}
@@ -8338,11 +9063,6 @@
\eql at define@key{provide}{sqr}[]{\eql at provide@sqr}
\eql at define@key{provide}{ang}[]{\eql at provide@ang}
\eql at define@key{provide}{eqref}[]{\eql at provide@cmd{eqref}{#1}}
-\eql at define@key{provide}{notag}[]{\eql at provide@cmd{notag}{#1}}
-\eql at define@key{provide}{thetag}[]{\eql at provide@cmd{thetag}{#1}}
-\eql at define@key{provide}{allowdisplaybreaks}[]{%
- \eql at provide@cmd{allowdisplaybreaks}{#1}}
-\eql at define@key{provide}{numberwithin}[]{\eql at provide@cmd{numberwithin}{#1}}
\eql at define@key{provide}{tagform}[]{%
\def\tagform@##1{\maketag@@@{\eql at tag@form{#1}}}}
\eql at define@key{provide}{maketag}[]{%
@@ -8386,6 +9106,13 @@
\DeclareOption*{\expandafter\eqnlinesset\expandafter{\CurrentOption}}
% \end{macrocode}
%
+% Set defaults for package:
+% \begin{macrocode}
+\eql at defaults@eqnlines
+\eql at mode@columns
+\eql at mode@aligned
+% \end{macrocode}
+%
% Process package options:
% \begin{macrocode}
\ProcessOptions
Modified: trunk/Master/texmf-dist/tex/latex/eqnlines/eqnlines-dev.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/eqnlines/eqnlines-dev.sty 2025-04-03 19:50:08 UTC (rev 74838)
+++ trunk/Master/texmf-dist/tex/latex/eqnlines/eqnlines-dev.sty 2025-04-03 19:50:19 UTC (rev 74839)
@@ -21,7 +21,7 @@
%% version 2008 or later.
%%
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesPackage{eqnlines-dev}[2025/03/27 v0.6.1 Single- and multi-line equations (development)]
+\ProvidesPackage{eqnlines-dev}[2025/04/03 v0.7 Single- and multi-line equations (development)]
\def\eql at dev#1{\PackageInfo{eqnlines-dev}{#1}}
\def\eql at dev@start#1{\eql at dev{starting \string#1}}
\def\eql at dev@enter#1{\eql at dev{entering \string#1}}
@@ -182,13 +182,13 @@
\def\eql at tagging@end{}
\fi
\let\eql at tagsleft\eql at false
-\let\eql at flushleft\eql at false
-\newdimen\eql at flushleftmargin@
-\newdimen\eql at flushleftmarginmin@
-\newdimen\eql at flushleftmarginmax@
-\def\eql at flushleftmargin@val{\leftmargini}
-\eql at flushleftmarginmin@\z@
-\eql at flushleftmarginmax@.5\maxdimen
+\let\eql at layoutleft\eql at false
+\newdimen\eql at layoutleftmargin@
+\newdimen\eql at layoutleftmarginmin@
+\newdimen\eql at layoutleftmarginmax@
+\def\eql at layoutleftmargin@val{\leftmargini}
+\eql at layoutleftmarginmin@\z@
+\eql at layoutleftmarginmax@.5\maxdimen
\newdimen\eql at tagmargin@
\let\eql at tagmargin@val\@undefined
\newdimen\eql at tagmargin@ratio@
@@ -204,20 +204,19 @@
\def\eql at box@marginleft{\z at skip}
\def\eql at box@marginright{\z at skip}
\def\eql at box@colsep{2em}
-\def\eql at spread{\jot}
-\newdimen\eql at spread@amount@
+\def\eql at spread@val{\jot}
+\newdimen\eql at spread@
\newdimen\eql at tagfuzz@
\eql at tagfuzz@16sp\relax
\def\eql at display@height{\ht\eql at strutbox@}
\def\eql at display@depth{\dp\eql at strutbox@}
-\newcount\eql at skip@mode at short@
-\eql at skip@mode at short@\tw@
-\newcount\eql at skip@mode at cont@
-\eql at skip@mode at cont@\z@
-\newcount\eql at skip@mode at par@
-\eql at skip@mode at par@\z@
-\newcount\eql at skip@mode at top@
-\eql at skip@mode at top@\z@
+\def\eql at skip@mode at short{2}
+\def\eql at skip@mode at cont@above{2}
+\def\eql at skip@mode at cont@below{0}
+\def\eql at skip@mode at par@above{3}
+\def\eql at skip@mode at par@below{0}
+\def\eql at skip@mode at top@above{4}
+\def\eql at skip@mode at top@below{0}
\newcount\eql at skip@mode at leave@
\let\eql at skip@force at leave\@undefined
\newcount\eql at skip@mode at above@
@@ -253,7 +252,7 @@
\def\eql at tagsepmin@val{.5\fontdimen6\textfont\tw@}
\def\eql at equations@sqr at opt{equation,nonumber}
\def\eql at equations@ang at opt{align,nonumber}
-\let\eql at align@margins\eql at true
+\let\eql at columns@margins\eql at true
\newbox\eql at fieldbox@
\newbox\eql at tagbox@
\newdimen\eql at fieldwidth@
@@ -271,7 +270,7 @@
\newcount\eql at column@
\newcount\eql at totalcolumns@
\newdimen\eql at colsep@
-\newcount\eql at align@inter@
+\newcount\eql at columns@inter@
\newdimen\eql at display@firstavail@
\def\eql at display@firstavail at set#1{%
\ifnum\eql at row@=\@ne
@@ -364,6 +363,7 @@
\let\eql at punct@col\@empty
\fi
}
+\let\eqnpunctapply\eql at punct@apply at block
\def\eql at class@innerright at sel@{%
\ifdim\eql at fieldwidth@=\z@
\eql at class@innerlead
@@ -392,210 +392,6 @@
\eql at class@innerlead at set{{}}%
}
\eql at class@ampeq
-\protected\def\eql at box@cr{%
- \eql at ampprotect\eql at testopt@tight\eql at box@cr@\z@
-}
-\def\eql at box@cr@[#1]{%
- \eql at punct@apply at line
- \eql at hook@lineout
- \eql at box@lastfield
- \cr
- \noalign{%
- \vskip\glueexpr#1\relax
- }%
-}
-\let\eql at box@box\vcenter
-\def\eql at box@lastfield at odd{%
- &\omit
- \kern-\wd\eql at fieldbox@
- \box\eql at fieldbox@
- \hfil
- &\omit\kern-\eql at colsep@
-}%
-\def\eql at box@lastfield at even{&\omit\kern-\eql at colsep@}
-\def\eql at box@lastfield at lines{&\omit\kern-2\eql at colsep@}
-\def\eql at box@open at align{%
- \let\eql at box@lastfield\@empty
- \eql at halign@init{%
-\eql at dev{starting new line}%
- }%
- \tabskip\z at skip
- \halign\bgroup
- &%
- \let\eql at box@lastfield\eql at box@lastfield at odd
- \global\setbox\eql at fieldbox@\hbox{%
- \eql at strut@field
- \@lign
- $\m at th\displaystyle
- \eql at hook@colin
- ##%
- \eql at class@innerleft
- \eql at hook@innerleft
- \eql at tagging@mathsave
- $%
- \eql at tagging@mathaddlast
- }%
- \hfil
- \kern\wd\eql at fieldbox@
- \tabskip\z at skip
- &%
- \eql at fieldwidth@\wd\eql at fieldbox@
- \kern-\eql at fieldwidth@
- \box\eql at fieldbox@
- \let\eql at box@lastfield\eql at box@lastfield at even
- \llap{\unhbox\eql at fieldbox@}%
- \hbox{%
- \eql at strut@field
- \@lign
- $\m at th\displaystyle
- \eql at hook@innerright
- \eql at class@innerright at sel
- ##%
- \eql at punct@apply at col
- \eql at hook@colout
- \eql at tagging@mathsave
- $%
- \eql at tagging@mathaddlast
- }%
- \hfil
- \tabskip\eql at colsep@\relax
- \crcr
- \noalign{%
- \eql at hook@blockbefore
- }%
- \eql at hook@blockin
-}
-\def\eql at box@open at lines{%
- \let\shoveleft\eql at adjust@shoveleft
- \let\shovecenter\eql at adjust@shovecenter
- \let\shoveright\eql at adjust@shoveright
- \let\eql at box@lastfield\eql at box@lastfield at lines
- \eql at halign@init{%
-\eql at dev{starting line \the\eql at row@}%
- \global\advance\eql at row@\@ne
- }%
- \tabskip\z at skip
- \halign\bgroup
- &%
- \eql at shape@pos@\m at ne
- \setbox\eql at fieldbox@\hbox{%
- \eql at strut@field
- \@lign
- $\m at th\displaystyle
- \eql at hook@colin
- ##%
- \eql at punct@apply at col
- \eql at hook@colout
- \eql at tagging@mathsave
- $%
- \eql at tagging@mathaddlast
- }%
- \ifnum\eql at shape@pos@=\m at ne
- \eql at shape@eval
- \fi
- \ifcase\eql at shape@pos@
- \kern\eql at shape@amount@
- \box\eql at fieldbox@
- \skip@\@flushglue
- \advance\skip@\eql at paddingleft@\relax
- \advance\skip@\eql at paddingright@\relax
- \advance\skip at -\eql at shape@amount@\relax
- \hskip\skip@
- \eql at tagging@alignleft
- \or
- \skip@\@flushglue
- \advance\skip@\eql at paddingleft@\relax
- \hskip\skip@
- \box\eql at fieldbox@
- \skip@\@flushglue
- \advance\skip@\eql at paddingright@\relax
- \hskip\skip@
- \eql at tagging@aligncenter
- \or
- \skip@\@flushglue
- \advance\skip@\eql at paddingleft@\relax
- \advance\skip@\eql at paddingright@\relax
- \hskip\skip@
- \box\eql at fieldbox@
- \eql at tagging@alignright
- \fi
- \tabskip\eql at colsep@\relax
- \crcr
- \noalign{%
- \eql at hook@blockbefore
- }%
- \eql at hook@blockin
-}
-\def\eql at box@close{%
- \ifvmode\else
- \global\eql at totalrows@\eql at row@
- \eql at punct@apply at block
- \eql at box@cr@[\z at skip]%
- \fi
- \crcr
- \noalign{%
- \eql at hook@blockafter
- }%
- \eql at tagging@tablesaveinner
- \egroup
-}
-\def\eql at box@start{%
- \relax
- \ifmmode
- \let\eql at box@endmath\@empty
- \else
- $\let\eql at box@endmath=$%
- \fi
- \eql at nextopt@process{equationsbox}%
- \let\eql at punct@block\eql at punct@main
- \let\eql at punct@main\relax
- \eql at colsep@\glueexpr\eql at box@colsep\relax
- \eql at paddingleft@\glueexpr\eql at paddingleft@val\relax
- \eql at paddingright@\glueexpr\eql at paddingright@val\relax
- \eql at indent@\glueexpr\eql at indent@val\relax
- \eql at stack@save at boxed
- \let\eql at flushleft\eql at false
- \eql at row@\z@
- \eql at totalrows@\@M
- \eql at shape@sel
- \hskip\glueexpr\eql at box@marginleft\relax
- \eql at box@box\bgroup
- \eql at display@leave
- \let\\\eql at box@cr
- \ifdefined\eql at box@mode at lines
- \expandafter\eql at box@open at lines
- \else
- \expandafter\eql at box@open at align
- \fi
-}
-\newcommand{\eql at box@end}{%
- \eql at box@close
- \egroup
- \eql at tagging@tableaddinner
- \hskip\glueexpr\eql at box@marginright\relax
- \eql at stack@restore
- \eql at box@endmath
-}
-\newenvironment{equationsbox}{%
-\eql at dev@enterenv
- \eql at ampprotect\eql at box@testall\eql at box@start
-}{%
- \eql at box@end
-\eql at dev@leaveenv
-}
-\def\eql at box@testall{\eql at box@testtilde}
-\def\eql at box@testtilde#1{%
- \eql at ifnextgobble@tight~%
- {\eqnaddopt{lines}\eql at box@testopt{#1}}%
- {\eql at box@testopt{#1}}}
-\def\eql at box@testopt#1{%
- \eql at ifnextchar@tight[%]
- {\eql at box@addopt{#1}}%
- {#1}}
-\def\eql at box@addopt#1[#2]{\eqnaddopt{#2}#1}
-\def\eql at mode@aligned{\let\eql at box@mode at lines\eql at false}
-\def\eql at mode@lined{\let\eql at box@mode at lines\eql at true}
-\eql at mode@aligned
\def\eql at tag@setbox@#1{%
\def\eql at tag@box##1{#1}%
}
@@ -611,6 +407,10 @@
\eql at tag@setbox{#1}
\eql at tag@setform({#1})
\def\eql at tag@boxedform#1{\eql at tag@box{\eql at tag@form{#1}}}
+\DeclareRobustCommand{\tagform}{\eql at tag@form}
+\DeclareRobustCommand{\tagbox}{\eql at tag@box}
+\DeclareRobustCommand{\tagboxed}{\eql at tag@boxedform}
+\DeclareRobustCommand{\eql at eqref}[1]{\textup{\eql at tag@boxedform{\ref{#1}}}}
\newdimen\eql at raisetag@amount@
\def\eql at raisetag@default{%
\eql at warning{\string\raisetag\space not allowed here}
@@ -617,7 +417,8 @@
\@gobble
}
\eql at amsmath@let\raisetag\eql at raisetag@default
-\def\eql at raisetag#1{\global\eql at raisetag@amount@\glueexpr#1\relax}%
+\def\eql at raisetag#1{\global\eql at raisetag@amount@\glueexpr#1\relax}
+\let\eql at raisetag@gobble\@gobble
\let\eql at SK@loaded\eql at false
\let\eql at SK@label\@gobble
\let\eql at SK@clearlabel\@empty
@@ -802,15 +603,15 @@
\fi
\advance\eql at tagwidth@\eql at tagsepmin@
}
-\def\eql at tagbox@print at right{%
+\def\eql at tagbox@print at tagsright{%
\kern-\wd\eql at tagbox@
\box\eql at tagbox@
}
-\def\eql at tagbox@print at left{%
+\def\eql at tagbox@print at tagsleft{%
\wd\eql at tagbox@\z@
\box\eql at tagbox@
}
-\def\eql at tagbox@print at right@raise{%
+\def\eql at tagbox@print at tagsright@raise{%
\ifnum\eql at row@=\eql at totalrows@
\global\advance\eql at raisetag@firstlast@\tw@
\fi
@@ -823,7 +624,7 @@
\box\eql at tagbox@
}}%
}
-\def\eql at tagbox@print at left@raise{%
+\def\eql at tagbox@print at tagsleft@raise{%
\ifnum\eql at row@=\@ne
\global\advance\eql at raisetag@firstlast@\@ne
\fi
@@ -940,15 +741,19 @@
\let\eql at numbering@active\eql at false
}
\def\numberhere{%
- \ifmeasuring@
- \ifnum\eql at numbering@target@<\z@\else
+ \ifnum\eql at numbering@target@<\z@
+ \donumber
+ \else
+ \ifmeasuring@
\global\eql at numbering@target@\eql at row@
\fi
\fi
}
\def\numbernext{%
- \ifmeasuring@
- \ifnum\eql at numbering@target@<\z@\else
+ \ifnum\eql at numbering@target@<\z@
+ \nonumber
+ \else
+ \ifmeasuring@
\ifnum\eql at numbering@target@=\eql at row@
\global\advance\eql at numbering@target@\@ne
\fi
@@ -959,6 +764,15 @@
\let\eql at numbering@autotag\eql at true
\let\eql at numbering@blocklabel\@undefined
\let\eql at numbering@blocktag\@undefined
+\let\eql at numbering@warn\eql at true
+\def\eql at numbering@autoenable{%
+ \global\@eqnswtrue
+ \ifx\eql at numbering@mode\eql at numbering@tab at here
+ \ifnum\eql at numbering@target@=\z@
+ \numberhere
+ \fi
+ \fi
+}
\eql at amsmath@after{
\let\eql at print@eqnum at default\print at eqnum
\let\eql at incr@eqnum at default\incr at eqnum
@@ -974,36 +788,29 @@
\fi
\fi
}
-\def\eql at label@warn{%
+\def\eql at label{%
\ifdefined\eql at numbering@autolabel
- \global\@eqnswtrue
+ \eql at numbering@autoenable
\fi
- \ifdefined\eql at nextlabel
- \eql at warn@label at multiple\eql at nextlabel
+ \ifdefined\eql at numbering@warn
+ \ifdefined\eql at nextlabel
+ \eql at warn@label at multiple\eql at nextlabel
+ \fi
\fi
\global\edef\eql at nextlabel
}
-\def\eql at tag@warn{%
+\let\eql at label@gobble\@gobble
+\def\eql at tag{%
\ifdefined\eql at numbering@autotag
- \global\@eqnswtrue
+ \eql at numbering@autoenable
\fi
- \ifdefined\eql at nexttag
- \eql at warn@tag at multiple
+ \ifdefined\eql at numbering@warn
+ \ifdefined\eql at nexttag
+ \eql at warn@tag at multiple
+ \fi
\fi
\eql at tag@makenext
}
-\def\eql at label@nowarn{%
- \ifdefined\eql at numbering@autolabel
- \global\@eqnswtrue
- \fi
- \global\edef\eql at nextlabel
-}
-\def\eql at tag@nowarn{%
- \ifdefined\eql at numbering@autotag
- \global\@eqnswtrue
- \fi
- \eql at tag@makenext
-}
\def\eql at blocklabel@set#1{%
\ifdefined\eql at blocklabel
\eql at warn@label at multiple\eql at blocklabel
@@ -1023,8 +830,9 @@
\def\eql at blocktag{*{#1}}%
}
\def\eql at numbering@single at init{%
- \let\label\eql at label@warn
- \let\tag\eql at tag@warn
+ \let\eql at numbering@warn\eql at true
+ \let\label\eql at label
+ \let\tag\eql at tag
\let\raisetag\eql at raisetag
\eql at numbering@target@\m at ne
\let\eql at nextlabel\eql at blocklabel
@@ -1047,8 +855,9 @@
\global\eql at raisetag@amount@\z@
}
\def\eql at numbering@measure at init{%
- \let\label\eql at label@warn
- \let\tag\eql at tag@warn
+ \let\eql at numbering@warn\eql at true
+ \let\label\eql at label
+ \let\tag\eql at tag
\let\raisetag\eql at raisetag
\global\let\eql at nextlabel\eql at blocklabel
\ifdefined\eql at blocktag
@@ -1095,8 +904,9 @@
}
\def\eql at numbering@print at init{%
\ifnum\eql at numbering@target@<\z@
- \let\label\eql at label@nowarn
- \let\tag\eql at tag@nowarn
+ \let\eql at numbering@warn\eql at false
+ \let\label\eql at label
+ \let\tag\eql at tag
\let\raisetag\eql at raisetag
\let\eql at nextlabel\eql at blocklabel
\ifdefined\eql at blocktag
@@ -1105,9 +915,9 @@
\let\eql at nexttag\@undefined
\fi
\else
- \let\label\@gobble
+ \let\label\eql at label@gobble
\let\tag\eql at tag@gobble
- \let\raisetag\eql at gobble
+ \let\raisetag\eql at raisetag@gobble
\fi
}
\def\eql at numbering@print at block@begin{%
@@ -1294,6 +1104,12 @@
\let\vspace\eql at vspace
}
\def\eql at display@close{%
+ \ifdefined\eql at tagging@on
+ \ifdefined\dollardollar at begin\else
+ \belowdisplayskip-\belowdisplayskip
+ \belowdisplayshortskip-\belowdisplayshortskip
+ \fi
+ \fi
\ifdim\eql at display@firstavail@<\z@
\eql at display@firstavail@\z@
\fi
@@ -1300,19 +1116,19 @@
\eql at skip@mode at leave@\z@
\ifdim\eql at halign@prevdepth@=\maxdimen
\ifdim\predisplaysize=-\maxdimen
- \eql at skip@mode at above@\tw@
- \eql at skip@mode at below@\eql at skip@mode at cont@
+ \eql at skip@mode at above@\eql at skip@mode at cont@above\relax
+ \eql at skip@mode at below@\eql at skip@mode at cont@below\relax
\else
\eql at skip@mode at above@\z@
\eql at skip@mode at below@\z@
\advance\eql at display@firstavail@\displayindent
\ifdim\eql at display@firstavail@>\predisplaysize
- \ifcase\eql at skip@mode at short@
+ \ifcase\eql at skip@mode at short\relax
\or
\eql at skip@mode at above@\@ne
\or
\eql at skip@mode at above@\@ne
- \ifnum\eql at row@=\tw@
+ \ifnum\eql at totalrows@=\@ne
\eql at skip@mode at below@\@ne
\fi
\or
@@ -1323,29 +1139,25 @@
\fi
\else
\ifdim\eql at halign@prevdepth@=-\@m\p@
- \eql at skip@mode at above@4\relax
- \eql at skip@mode at below@\eql at skip@mode at top@
- \eql at skip@mode at leave@\z@
- \predisplaypenalty\z@
- \ifcase\eql at skip@mode at top@
- \or
- \or
- \or
- \eql at skip@mode at leave@\@ne
- \or
- \postdisplaypenalty\z@
- \eql at skip@mode at leave@\tw@
- \fi
+ \eql at skip@mode at above@\eql at skip@mode at top@above\relax
+ \eql at skip@mode at below@\eql at skip@mode at top@below\relax
\else
- \eql at skip@mode at above@\thr@@
- \eql at skip@mode at below@\eql at skip@mode at par@
- \eql at skip@mode at leave@\z@
- \predisplaypenalty\z@
- \ifnum\eql at skip@mode at par@=\thr@@
- \eql at skip@mode at leave@\@ne
- \fi
+ \eql at skip@mode at above@\eql at skip@mode at par@above\relax
+ \eql at skip@mode at below@\eql at skip@mode at par@below\relax
\fi
\fi
+ \ifcase\eql at skip@mode at above@
+ \or\or\or
+ \predisplaypenalty\z@
+ \or
+ \predisplaypenalty\z@
+ \fi
+ \ifcase\eql at skip@mode at below@
+ \or\or\or
+ \eql at skip@mode at leave@\@ne
+ \or
+ \eql at skip@mode at leave@\tw@
+ \fi
\ifdefined\eql at skip@force at above
\eql at skip@mode at above@\eql at skip@force at above\relax
\fi
@@ -1355,6 +1167,9 @@
\ifdefined\eql at skip@force at leave
\eql at skip@mode at leave@\eql at skip@force at leave\relax
\fi
+ \ifnum\eql at skip@mode at leave@>\z@
+ \postdisplaypenalty\z@
+ \fi
\ifodd\eql at raisetag@firstlast@
\ifcase\eql at skip@mode at above@
\abovedisplayskip\glueexpr\eql at skip@tag at above\relax
@@ -1387,7 +1202,7 @@
\or
\abovedisplayskip\z at skip
\or
- \abovedisplayskip\glueexpr\eql at skip@medtag at above\relax
+ \abovedisplayskip\glueexpr\eql at skip@med at above\relax
\or
\abovedisplayskip\glueexpr\eql at skip@custom at above\relax
\fi
@@ -1424,7 +1239,7 @@
\or
\belowdisplayskip\z at skip
\or
- \belowdisplayskip\glueexpr\eql at skip@medtag at below\relax
+ \belowdisplayskip\glueexpr\eql at skip@med at below\relax
\or
\belowdisplayskip\glueexpr\eql at skip@custom at below\relax
\fi
@@ -1439,8 +1254,10 @@
\advance\belowdisplayskip\eql at belowspace@
\advance\belowdisplayskip\eql at vspaceskip@
\count@\prevgraf
- \advance\count@\eql at row@
- \advance\count at -\tw@
+ \advance\count@\eql at totalrows@
+ \ifnum\count@>\z@
+ \advance\count@\m at ne
+ \fi
\prevgraf\count@
\global\eql at skip@mode at leave@\eql at skip@mode at leave@
\ifdefined\eql at tagging@on
@@ -1481,11 +1298,11 @@
}
\AtBeginDocument{\eql at strut@make}
\def\eql at halign@spread{%
- \eql at spread@amount@\glueexpr\eql at spread\relax
- \advance\eql at spread@amount@\normalbaselineskip
- \advance\eql at spread@amount at -\baselineskip
- \ifdim\eql at spread@amount@>\z@
- \openup\eql at spread@amount@
+ \eql at spread@\glueexpr\eql at spread@val\relax
+ \advance\eql at spread@\normalbaselineskip
+ \advance\eql at spread@-\baselineskip
+ \ifdim\eql at spread@>\z@
+ \openup\eql at spread@
\ifdefined\spread at equation
\let\spread at equation\@empty
\fi
@@ -1522,11 +1339,11 @@
\ifdim\skip@<\lineskiplimit
\skip@\lineskip
\fi
- \advance\skip at -\eql at spread@amount@\relax
+ \advance\skip at -\eql at spread@\relax
\vskip\skip@
\nointerlineskip
\else
- \vskip-\eql at spread@amount@\relax
+ \vskip-\eql at spread@\relax
\fi
\fi
}
@@ -1654,15 +1471,15 @@
\let\eql at shape@mode\eql at shape@tab at default
\fi
}
-\def\eql at shape@center at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
-\def\eql at shape@center at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
-\def\eql at shape@center at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
-\let\eql at shape@center at default\eql at shape@center at center
-\def\eql at shape@left at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
-\def\eql at shape@left at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
-\def\eql at shape@left at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
-\let\eql at shape@left at default\eql at shape@left at left
-\def\eql at shape@center at first{%
+\def\eql at shape@layoutcenter at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
+\def\eql at shape@layoutcenter at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
+\def\eql at shape@layoutcenter at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
+\let\eql at shape@layoutcenter at default\eql at shape@layoutcenter at center
+\def\eql at shape@layoutleft at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
+\def\eql at shape@layoutleft at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
+\def\eql at shape@layoutleft at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
+\let\eql at shape@layoutleft at default\eql at shape@layoutleft at left
+\def\eql at shape@layoutcenter at first{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -1671,7 +1488,7 @@
\fi
\fi
}
-\def\eql at shape@left at first{%
+\def\eql at shape@layoutleft at first{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -1680,7 +1497,7 @@
\fi
\fi
}
-\def\eql at shape@center at hanging{%
+\def\eql at shape@layoutcenter at hanging{%
\eql at shape@pos@\z@
\eql at shape@amount@\eql at indent@
\ifnum\eql at totalrows@>\@ne
@@ -1689,7 +1506,7 @@
\fi
\fi
}
-\def\eql at shape@left at hanging{%
+\def\eql at shape@layoutleft at hanging{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -1698,7 +1515,7 @@
\fi
\fi
}
-\def\eql at shape@center at steps{%
+\def\eql at shape@layoutcenter at steps{%
\eql at shape@amount@\z@
\eql at shape@pos@\@ne
\ifnum\eql at totalrows@>\@ne
@@ -1710,7 +1527,7 @@
\fi
\fi
}
-\def\eql at shape@left at steps{%
+\def\eql at shape@layoutleft at steps{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -1726,23 +1543,23 @@
\def\eql at shape@sel{%
\expandafter\let\expandafter\eql at shape@eval
\csname eql at shape%
- @\ifdefined\eql at flushleft left\else center\fi
+ @\ifdefined\eql at layoutleft layoutleft\else layoutcenter\fi
@\eql at shape@mode\endcsname
}
-\def\eql at adjust@shoveleft{%
+\def\eql at adjust@alignleft{%
\global\eql at shape@pos@\z@
\eql at srbgroup\eql at ifstar@tight
- {\eql at adjust@shoveleft@[\eql at indent@]}%
+ {\eql at adjust@alignleft@[\eql at indent@]}%
{\eql at ifnextgobble@tight{!}%
- {\eql at adjust@shoveleft@[-\eql at indent@]}%
- {\eql at testopt@tight\eql at adjust@shoveleft@\z@}%
+ {\eql at adjust@alignleft@[-\eql at indent@]}%
+ {\eql at testopt@tight\eql at adjust@alignleft@\z@}%
}%
}
-\def\eql at adjust@shoveleft@[#1]{%
+\def\eql at adjust@alignleft@[#1]{%
\eql at sregroup\global\eql at shape@amount@\glueexpr#1\relax}
-\def\eql at adjust@shovecenter{%
+\def\eql at adjust@aligncenter{%
\global\eql at shape@pos@\@ne\global\eql at shape@amount@\z@}
-\def\eql at adjust@shoveright{%
+\def\eql at adjust@alignright{%
\global\eql at shape@pos@\tw@\global\eql at shape@amount@\z@}
\def\eql at adjust@try#1{%
\setbox\eql at fieldbox@\hbox to\displaywidth{%
@@ -1796,9 +1613,9 @@
\eql at tagging@alignright
\fi
\csname eql at adjust%
- @\ifdefined\eql at flushleft flushleft\else center\fi
+ @\ifdefined\eql at layoutleft layoutleft\else layoutcenter\fi
@\ifdefined\eql at tagsleft tagsleft\else tagsright\fi
- @\ifcase\eql at shape@pos@ shoveleft\or shovecenter\or shoveright\fi
+ @\ifcase\eql at shape@pos@ alignleft\or aligncenter\or alignright\fi
@tag\endcsname
}
\def\eql at adjust@sel at notag{%
@@ -1811,16 +1628,16 @@
\eql at tagging@alignright
\fi
\csname eql at adjust%
- @\ifdefined\eql at flushleft flushleft\else center\fi
+ @\ifdefined\eql at layoutleft layoutleft\else layoutcenter\fi
@\ifdefined\eql at tagsleft tagsleft\else tagsright\fi
- @\ifcase\eql at shape@pos@ shoveleft\or shovecenter\or shoveright\fi
+ @\ifcase\eql at shape@pos@ alignleft\or aligncenter\or alignright\fi
@notag\endcsname
}
\def\eql at adjust@calc{%
- \ifdefined\eql at flushleft
- \eql at flushleftmargin@\glueexpr\eql at flushleftmargin@val\relax
+ \ifdefined\eql at layoutleft
+ \eql at layoutleftmargin@\glueexpr\eql at layoutleftmargin@val\relax
\else
- \eql at align@inter@\z@
+ \eql at columns@inter@\z@
\eql at adjust@tagmargin
\ifdefined\eql at paddingmax
\eql at marginleft@\z@
@@ -1843,7 +1660,7 @@
\fi
\fi
}
-\def\eql at adjust@center at tagsright@shovecenter at notag{%
+\def\eql at adjust@layoutcenter at tagsright@aligncenter at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at fieldwidth@
\ifdim\dimen@>\eql at tagmargin@
@@ -1852,7 +1669,7 @@
\eql at adjust@print at alignleft\z@\z@
\fi
}
-\def\eql at adjust@center at tagsright@shovecenter at tag{%
+\def\eql at adjust@layoutcenter at tagsright@aligncenter at tag{%
\dimen@\displaywidth
\ifdim\eql at tagwidth@<\eql at tagmargin@
\advance\dimen at -\eql at tagmargin@
@@ -1862,7 +1679,7 @@
\fi
\ifdim\eql at fieldwidth@<\dimen@
\eql at adjust@print at aligncenter\z@\eql at tagmargin@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
@@ -1871,14 +1688,14 @@
\else
\eql at adjust@print at alignright\z@\eql at tagwidth@
\fi
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@center at tagsright@shovecenter at notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutcenter at tagsright@aligncenter at notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
-\def\eql at adjust@center at tagsleft@shovecenter at notag{%
+\def\eql at adjust@layoutcenter at tagsleft@aligncenter at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\ifdim\eql at fieldwidth@<\dimen@
@@ -1887,7 +1704,7 @@
\eql at adjust@print at alignright\z@\z@
\fi
}
-\def\eql at adjust@center at tagsleft@shovecenter at tag{%
+\def\eql at adjust@layoutcenter at tagsleft@aligncenter at tag{%
\dimen@\displaywidth
\ifdim\eql at tagwidth@<\eql at tagmargin@
\advance\dimen at -\eql at tagmargin@
@@ -1896,12 +1713,12 @@
\advance\dimen@\eql at tagmargin@
\fi
\ifdim\eql at fieldwidth@<\dimen@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at aligncenter\eql at tagmargin@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\ifdim\eql at tagwidth@<\eql at tagmargin@
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
@@ -1908,13 +1725,13 @@
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\fi
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@center at tagsleft@shovecenter at notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutcenter at tagsleft@aligncenter at notag
\fi
\fi
\eql at display@firstavail at set\z@
}
-\def\eql at adjust@center at tagsright@shoveleft at notag{%
+\def\eql at adjust@layoutcenter at tagsright@alignleft at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at marginleft@
\advance\dimen at -\eql at shape@amount@
@@ -1926,7 +1743,7 @@
\eql at adjust@print at alignright\z@\z@
\fi
}
-\def\eql at adjust@center at tagsright@shoveleft at tag{%
+\def\eql at adjust@layoutcenter at tagsright@alignleft at tag{%
\dimen@\eql at marginleft@
\advance\dimen@\eql at shape@amount@
\advance\dimen@\eql at tagwidth@
@@ -1935,7 +1752,7 @@
\dimen@\eql at marginleft@
\advance\dimen@\eql at shape@amount@
\eql at adjust@print at alignleft\dimen@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\ifdim\eql at marginleft@>-\eql at shape@amount@
\eql at adjust@try\eql at tagwidth@
@@ -1942,14 +1759,14 @@
\fi
\ifnum\badness<\eql at maxbadness@
\eql at adjust@print at alignright\z@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@center at tagsright@shoveleft at notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutcenter at tagsright@alignleft at notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
-\def\eql at adjust@center at tagsleft@shoveright at notag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignright at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\advance\dimen at -\eql at marginright@
@@ -1959,12 +1776,12 @@
\eql at adjust@print at alignleft\z@\z@
\fi
}
-\def\eql at adjust@center at tagsleft@shoveright at tag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignright at tag{%
\dimen@\eql at marginright@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\eql at marginright@
\else
\ifdim\eql at marginright@>\z@
@@ -1971,16 +1788,16 @@
\eql at adjust@try\eql at tagwidth@
\fi
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@center at tagsleft@shoveright at notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutcenter at tagsleft@alignright at notag
\fi
\fi
\eql at display@firstavail at set\z@
}
-\def\eql at adjust@center at tagsright@shoveright at notag{%
+\def\eql at adjust@layoutcenter at tagsright@alignright at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\advance\dimen at -\eql at marginright@
@@ -1992,7 +1809,7 @@
\eql at adjust@print at alignleft\z@\z@
\fi
}
-\def\eql at adjust@center at tagsright@shoveright at tag{%
+\def\eql at adjust@layoutcenter at tagsright@alignright at tag{%
\dimen@\eql at tagmargin@
\advance\dimen@\eql at marginright@
\ifdim\eql at tagwidth@<\dimen@
@@ -1999,15 +1816,15 @@
\eql at adjust@try\dimen@%
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignright\z@\dimen@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
\eql at adjust@print at alignleft\z@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\eql at adjust@print at alignleft\z@\z@
- \eql at tagbox@print at left@raise
+ \eql at tagbox@print at tagsleft@raise
\fi
\fi
\else
@@ -2014,14 +1831,14 @@
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
\eql at adjust@print at alignright\z@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@center at tagsright@shoveright at notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutcenter at tagsright@alignright at notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
-\def\eql at adjust@center at tagsleft@shoveleft at notag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignleft at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\advance\dimen at -\eql at marginleft@
@@ -2035,7 +1852,7 @@
\eql at adjust@print at alignright\z@\z@
\fi
}
-\def\eql at adjust@center at tagsleft@shoveleft at tag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignleft at tag{%
\dimen@\eql at tagmargin@
\advance\dimen@\eql at marginleft@
\advance\dimen@\eql at shape@amount@
@@ -2042,15 +1859,15 @@
\ifdim\eql at tagwidth@<\dimen@
\eql at adjust@try\dimen@%
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\dimen@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
+ \eql at tagbox@print at tagsleft@raise
\eql at adjust@print at alignright\z@\z@
\fi
\fi
@@ -2057,11 +1874,11 @@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@center at tagsleft@shoveleft at notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutcenter at tagsleft@alignleft at notag
\fi
\fi
\eql at display@firstavail at set\z@
@@ -2086,7 +1903,7 @@
\fi
\@tempdima\displaywidth
\advance\@tempdima-\eql at totalwidth@
- \advance\@tempdima-\eql at align@inter@\eql at colsepmin@
+ \advance\@tempdima-\eql at columns@inter@\eql at colsepmin@
\@tempdimb\@tempdima
\advance\@tempdimb-\tw@\eql at tagmargin@
\ifdim\@tempdimb>\z@
@@ -2095,90 +1912,90 @@
\fi
\fi
}
-\def\eql at adjust@flushleft at shoveleft{%
- \eql at marginleft@\eql at flushleftmargin@
+\def\eql at adjust@layoutleft at alignleft{%
+ \eql at marginleft@\eql at layoutleftmargin@
\advance\eql at marginleft@\eql at shape@amount@
- \ifdim\eql at marginleft@<\eql at flushleftmarginmin@
- \eql at marginleft@\eql at flushleftmarginmin@
+ \ifdim\eql at marginleft@<\eql at layoutleftmarginmin@
+ \eql at marginleft@\eql at layoutleftmarginmin@
\fi
- \ifdim\eql at marginleft@>\eql at flushleftmarginmax@
- \eql at marginleft@\eql at flushleftmarginmax@
+ \ifdim\eql at marginleft@>\eql at layoutleftmarginmax@
+ \eql at marginleft@\eql at layoutleftmarginmax@
\fi
}
-\def\eql at adjust@flushleft at shoveleft@notag{%
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
+\def\eql at adjust@layoutleft at alignleft@notag{%
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignleft\eql at marginleft@\z@
\else
- \eql at adjust@print at alignleft\eql at flushleftmarginmin@\z@
+ \eql at adjust@print at alignleft\eql at layoutleftmarginmin@\z@
\fi
\else
\eql at adjust@print at alignleft\eql at marginleft@\z@
\fi
}
-\def\eql at adjust@flushleft at tagsright@shoveleft at notag{%
- \eql at adjust@flushleft at shoveleft
- \eql at adjust@flushleft at shoveleft@notag
+\def\eql at adjust@layoutleft at tagsright@alignleft at notag{%
+ \eql at adjust@layoutleft at alignleft
+ \eql at adjust@layoutleft at alignleft@notag
}
-\let\eql at adjust@flushleft at tagsleft@shoveleft at notag
- \eql at adjust@flushleft at tagsright@shoveleft at notag
-\def\eql at adjust@flushleft at tagsright@shoveleft at tag{%
- \eql at adjust@flushleft at shoveleft
+\let\eql at adjust@layoutleft at tagsleft@alignleft at notag
+ \eql at adjust@layoutleft at tagsright@alignleft at notag
+\def\eql at adjust@layoutleft at tagsright@alignleft at tag{%
+ \eql at adjust@layoutleft at alignleft
\dimen@\eql at marginleft@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignleft\eql at marginleft@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
- \dimen@\eql at flushleftmarginmin@
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
+ \dimen@\eql at layoutleftmarginmin@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\fi
\ifnum\badness<\eql at maxbadness@
- \eql at adjust@print at alignleft\eql at flushleftmarginmin@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at adjust@print at alignleft\eql at layoutleftmarginmin@\eql at tagwidth@
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@flushleft at shoveleft@notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutleft at alignleft@notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
-\def\eql at adjust@flushleft at tagsleft@shoveleft at tag{%
- \eql at adjust@flushleft at shoveleft
- \ifdim\eql at tagwidth@<\eql at flushleftmarginmin@
- \eql at tagbox@print at left
- \eql at adjust@flushleft at notag
+\def\eql at adjust@layoutleft at tagsleft@alignleft at tag{%
+ \eql at adjust@layoutleft at alignleft
+ \ifdim\eql at tagwidth@<\eql at layoutleftmarginmin@
+ \eql at tagbox@print at tagsleft
+ \eql at adjust@layoutleft at notag
\else
\ifdim\eql at tagwidth@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at marginleft@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@print at alignleft\eql at flushleftmarginmin@\z@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@print at alignleft\eql at layoutleftmarginmin@\z@
\fi
\fi
\else
- \ifdim\eql at tagwidth@>\eql at flushleftmarginmax@
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveleft@notag
+ \ifdim\eql at tagwidth@>\eql at layoutleftmarginmax@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignleft@notag
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveleft@notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignleft@notag
\fi
\fi
\fi
@@ -2185,77 +2002,77 @@
\fi
\eql at display@firstavail at set\z@
}
-\def\eql at adjust@flushleft at shoveright@notag{%
- \eql at marginleft@\eql at flushleftmargin@
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
+\def\eql at adjust@layoutleft at alignright@notag{%
+ \eql at marginleft@\eql at layoutleftmargin@
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignright\eql at marginleft@\z@
\else
- \eql at adjust@print at alignright\eql at flushleftmarginmin@\z@
+ \eql at adjust@print at alignright\eql at layoutleftmarginmin@\z@
\fi
\else
\eql at adjust@print at alignright\eql at marginleft@\z@
\fi
}
-\let\eql at adjust@flushleft at tagsright@shoveright at notag
- \eql at adjust@flushleft at shoveright@notag
-\let\eql at adjust@flushleft at tagsleft@shoveright at notag
- \eql at adjust@flushleft at shoveright@notag
-\def\eql at adjust@flushleft at tagsright@shoveright at tag{%
+\let\eql at adjust@layoutleft at tagsright@alignright at notag
+ \eql at adjust@layoutleft at alignright@notag
+\let\eql at adjust@layoutleft at tagsleft@alignright at notag
+ \eql at adjust@layoutleft at alignright@notag
+\def\eql at adjust@layoutleft at tagsright@alignright at tag{%
\dimen@\eql at marginleft@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignright\eql at marginleft@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
- \dimen@\eql at flushleftmarginmin@
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
+ \dimen@\eql at layoutleftmarginmin@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\fi
\ifnum\badness<\eql at maxbadness@
- \eql at adjust@print at alignright\eql at flushleftmarginmin@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at adjust@print at alignright\eql at layoutleftmarginmin@\eql at tagwidth@
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@flushleft at shoveright@notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutleft at alignright@notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
-\def\eql at adjust@flushleft at tagsleft@shoveright at tag{%
- \ifdim\eql at tagwidth@<\eql at flushleftmarginmin@
- \eql at tagbox@print at left
- \eql at adjust@flushleft at shoveright@notag
+\def\eql at adjust@layoutleft at tagsleft@alignright at tag{%
+ \ifdim\eql at tagwidth@<\eql at layoutleftmarginmin@
+ \eql at tagbox@print at tagsleft
+ \eql at adjust@layoutleft at alignright@notag
\else
\ifdim\eql at tagwidth@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at marginleft@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@print at alignright\eql at flushleftmarginmin@\z@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@print at alignright\eql at layoutleftmarginmin@\z@
\fi
\fi
\else
- \ifdim\eql at tagwidth@>\eql at flushleftmarginmax@
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveright@notag
+ \ifdim\eql at tagwidth@>\eql at layoutleftmarginmax@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignright@notag
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveright@notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignright@notag
\fi
\fi
\fi
@@ -2262,123 +2079,17 @@
\fi
\eql at display@firstavail at set\z@
}
-\def\eql at adjust@flushleft at shovecenter{%
+\def\eql at adjust@layoutleft at aligncenter{%
\eql at error{shove center not implemented for left alignment}%
}
-\let\eql at adjust@flushleft at tagsright@shovecenter at notag
- \eql at adjust@flushleft at shovecenter
-\let\eql at adjust@flushleft at tagsright@shovecenter at tag
- \eql at adjust@flushleft at shovecenter
-\let\eql at adjust@flushleft at tagsleft@shovecenter at notag
- \eql at adjust@flushleft at shovecenter
-\let\eql at adjust@flushleft at tagsleft@shovecenter at tag
- \eql at adjust@flushleft at shovecenter
-\def\eql at single@cr{%
- \eql at error{Cannot use `\string\\' within display equation.
- Please switch to equations environment}%
-}
-\def\eql at single@start{%
- \eql at halign@catchprevdepth
- \eql at tagging@start
- \eql at dollardollar@begin
- \eql at numbering@eval at mode
- \let\eql at numbering@subeq at use\eql at false
- \eql at stack@save at single
- \eql at numbering@single at init
- \ifdefined\eql at single@native
- \let\eql at single@start at sel\eql at single@start at native
- \let\eql at single@end at sel\eql at single@end at native
- \let\raisetag\eql at raisetag@default
- \else
- \let\eql at single@start at sel\eql at single@start at adjust
- \let\eql at single@end at sel\eql at single@end at adjust
- \fi
- \ifdefined\eql at single@crerror\else
- \let\\\eql at single@cr
- \fi
- \eql at single@start at sel
-}
-\def\eql at single@end{%
- \eql at punct@apply at block
- \eql at hook@eqout
- \eql at single@end at sel
- \eql at stack@restore
- \eql at dollardollar@end
- \eql at tagging@end
- \eql at halign@leave
-}
-\def\eql at single@main{%
- \expandafter\eql at single@start
- \eql at scan@body
- \eql at single@end
-}
-\def\eql at single@start at native{%
- \eql at hook@eqin
-}%
-\def\eql at single@end at native{%
- \if at eqnsw
- \ifdefined\eql at tagsleft
- \leqno
- \else
- \eqno
- \fi
- \eql at compose@print
- \fi
- \ifnum\eql at displaybreak@pen@=\@MM\else
- \postdisplaypenalty\eql at displaybreak@pen@
- \fi
-}%
-\def\eql at single@start at adjust{%
- \eql at totalrows@\@ne
- \eql at row@\z@
- \eql at display@init
- \let\shoveleft\eql at adjust@shoveleft
- \let\shovecenter\eql at adjust@shovecenter
- \let\shoveright\eql at adjust@shoveright
- \eql at adjust@init
- \eql at shape@eval
- \eql at halign@init{}%
- \eql at row@\@ne
- \setbox\eql at fieldbox@\hbox\bgroup
- \eql at restore@hfuzz
- \eql at strut@field
- $\m at th\displaystyle%$
- \eql at hook@eqin
-}
-\def\eql at single@end at adjust{%
- \eql at tagging@mathsave
- $%$
- \hfil
- \kern\z@
- \egroup
- \eql at fieldwidth@\wd\eql at fieldbox@
- \eql at line@height@\ht\eql at fieldbox@
- \eql at line@depth@\dp\eql at fieldbox@
- \eql at totalwidth@\eql at fieldwidth@
- \eql at totalrows@\@ne
- \if at eqnsw
- \eql at tagbox@make\eql at compose@print
- \eql at tagrows@\@ne
- \else
- \eql at tagwidth@\z@
- \eql at tagrows@\z@
- \fi
- \eql at tagwidth@max@\eql at tagwidth@
- \eql at adjust@calc
- \halign{##\cr
- \noalign{\eql at halign@before}%
- \if at eqnsw
- \eql at adjust@sel at tag
- \else
- \eql at adjust@sel at notag
- \fi
- \cr
- \noalign{\eql at halign@after}%
- \eql at tagging@tablesavelines
- }%
- \eql at row@\tw@
- \eql at display@close
-}
+\let\eql at adjust@layoutleft at tagsright@aligncenter at notag
+ \eql at adjust@layoutleft at aligncenter
+\let\eql at adjust@layoutleft at tagsright@aligncenter at tag
+ \eql at adjust@layoutleft at aligncenter
+\let\eql at adjust@layoutleft at tagsleft@aligncenter at notag
+ \eql at adjust@layoutleft at aligncenter
+\let\eql at adjust@layoutleft at tagsleft@aligncenter at tag
+ \eql at adjust@layoutleft at aligncenter
\let\eql at fieldlength@tab\@empty
\def\eql at fieldlength@save#1{%
\begingroup
@@ -2414,10 +2125,10 @@
\endgroup
}
\let\eql at colwidth@tab\@empty
-\def\eql at align@colwidth at get#1{%
+\def\eql at columns@colwidth at get#1{%
\ifcase\expandafter#1\eql at colwidth@tab\else\z@\fi
}
-\def\eql at align@colwidth at save{%
+\def\eql at columns@colwidth at save{%
\begingroup
\let\or\relax
\global\edef\eql at colwidth@tab{\or\the\wd\thr@@\eql at colwidth@tab}%
@@ -2471,9 +2182,9 @@
\ifdefined\eql at tagsleft
\eql at display@firstavail at set\z@
\ifdim\eql at tagwidth@>\eql at line@avail@
- \eql at tagbox@print at left@raise
+ \eql at tagbox@print at tagsleft@raise
\else
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\fi
\kern\displaywidth
\else
@@ -2480,9 +2191,9 @@
\kern\displaywidth
\advance\eql at tagwidth@\eql at line@width@
\ifdim\eql at tagwidth@>\displaywidth
- \eql at tagbox@print at right@raise
+ \eql at tagbox@print at tagsright@raise
\else
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\fi
\fi
}
@@ -2524,7 +2235,7 @@
\let\eql at skip@force at below\z@
\let\eql at skip@force at above\z@
\eql at setkeys{intertext}\eql at intertext@opt
- \openup-\eql at spread@amount@
+ \openup-\eql at spread@
\penalty\postdisplaypenalty
\ifcase\eql at skip@force at below\relax
\advance\eql at vspaceskip@\glueexpr\eql at skip@long at below\relax
@@ -2606,79 +2317,273 @@
}%
}%
}
-\let\eql at multi@mode at lines\eql at false
-\def\eql at multi@main{%
- \eql at halign@catchprevdepth
- \eql at tagging@start
- \eql at dollardollar@begin
- \eql at numbering@eval at mode
- \eql at stack@save at multi
- \ifdefined\eql at subequations@active
- \let\eql at numbering@subeq at use\eql at false
- \fi
- \ifdefined\eql at numbering@subeq at use
- \eql at numbering@subeq at init
- \fi
- \let\intertext\eql at intertext
- \let\endintertext\endeql at intertext
- \let\shoveleft\eql at adjust@shoveleft
- \let\shovecenter\eql at adjust@shovecenter
- \let\shoveright\eql at adjust@shoveright
- \ifdefined\eql at multi@mode at lines
- \expandafter\eql at lines@measure
- \else
- \ifdefined\eql at ampproof@active
- \eql at ampproof
- \fi
- \expandafter\eql at align@measure
- \fi
- \ifx\eql at numbering@subeq at use\@ne
- \eql at numbering@subeq at revert
- \fi
- \ifdefined\eql at multi@mode at lines\else
- \ifdefined\eql at multi@linesfallback
- \ifnum\eql at totalcolumns@=\@ne
- \let\eql at multi@mode at lines\eql at true
- \eql at shape@set{r}%
+\protected\def\eql at box@cr{%
+ \eql at ampprotect\eql at testopt@tight\eql at box@cr@\z@
+}
+\def\eql at box@cr@[#1]{%
+ \eql at punct@apply at line
+ \eql at hook@lineout
+ \eql at box@lastfield
+ \cr
+ \noalign{%
+ \vskip\glueexpr#1\relax
+ }%
+}
+\def\eql at box@lastfield at lines{&\omit\kern-2\eql at colsep@}
+\def\eql at box@open at stacked{%
+ \let\shoveleft\eql at adjust@alignleft
+ \let\shovecenter\eql at adjust@aligncenter
+ \let\shoveright\eql at adjust@alignright
+ \let\eql at box@lastfield\eql at box@lastfield at lines
+ \eql at halign@init{%
+\eql at dev{starting line \the\eql at row@}%
+ \global\advance\eql at row@\@ne
+ }%
+ \tabskip\z at skip
+ \halign\bgroup
+ &%
+ \eql at shape@pos@\m at ne
+ \setbox\eql at fieldbox@\hbox{%
+ \eql at strut@field
+ \@lign
+ $\m at th\displaystyle
+ \eql at hook@colin
+ ##%
+ \eql at punct@apply at col
+ \eql at hook@colout
+ \eql at tagging@mathsave
+ $%
+ \eql at tagging@mathaddlast
+ }%
+ \ifnum\eql at shape@pos@=\m at ne
+ \eql at shape@eval
\fi
+ \ifcase\eql at shape@pos@
+ \kern\eql at shape@amount@
+ \box\eql at fieldbox@
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingleft@\relax
+ \advance\skip@\eql at paddingright@\relax
+ \advance\skip at -\eql at shape@amount@\relax
+ \hskip\skip@
+ \eql at tagging@alignleft
+ \or
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingleft@\relax
+ \hskip\skip@
+ \box\eql at fieldbox@
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingright@\relax
+ \hskip\skip@
+ \eql at tagging@aligncenter
+ \or
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingleft@\relax
+ \advance\skip@\eql at paddingright@\relax
+ \hskip\skip@
+ \box\eql at fieldbox@
+ \eql at tagging@alignright
+ \fi
+ \tabskip\eql at colsep@\relax
+ \crcr
+ \noalign{%
+ \eql at hook@blockbefore
+ }%
+ \eql at hook@blockin
+}
+\def\eql at mode@stacked{\let\eql at box@open\eql at box@open at stacked}
+\def\eql at box@lastfield at odd{%
+ &\omit
+ \kern-\wd\eql at fieldbox@
+ \box\eql at fieldbox@
+ \hfil
+ &\omit\kern-\eql at colsep@
+}%
+\def\eql at box@lastfield at even{&\omit\kern-\eql at colsep@}
+\def\eql at box@open at aligned{%
+ \let\eql at box@lastfield\@empty
+ \eql at halign@init{%
+\eql at dev{starting new line}%
+ }%
+ \tabskip\z at skip
+ \halign\bgroup
+ &%
+ \let\eql at box@lastfield\eql at box@lastfield at odd
+ \global\setbox\eql at fieldbox@\hbox{%
+ \eql at strut@field
+ \@lign
+ $\m at th\displaystyle
+ \eql at hook@colin
+ ##%
+ \eql at class@innerleft
+ \eql at hook@innerleft
+ \eql at tagging@mathsave
+ $%
+ \eql at tagging@mathaddlast
+ }%
+ \hfil
+ \kern\wd\eql at fieldbox@
+ \tabskip\z at skip
+ &%
+ \eql at fieldwidth@\wd\eql at fieldbox@
+ \kern-\eql at fieldwidth@
+ \box\eql at fieldbox@
+ \let\eql at box@lastfield\eql at box@lastfield at even
+ \llap{\unhbox\eql at fieldbox@}%
+ \hbox{%
+ \eql at strut@field
+ \@lign
+ $\m at th\displaystyle
+ \eql at hook@innerright
+ \eql at class@innerright at sel
+ ##%
+ \eql at punct@apply at col
+ \eql at hook@colout
+ \eql at tagging@mathsave
+ $%
+ \eql at tagging@mathaddlast
+ }%
+ \hfil
+ \tabskip\eql at colsep@\relax
+ \crcr
+ \noalign{%
+ \eql at hook@blockbefore
+ }%
+ \eql at hook@blockin
+}
+\def\eql at mode@aligned{\let\eql at box@open\eql at box@open at aligned}
+\let\eql at box@box\vcenter
+\let\eql at box@open\@undefined
+\def\eql at box@close{%
+ \ifvmode\else
+ \global\eql at totalrows@\eql at row@
+ \eql at punct@apply at block
+ \eql at box@cr@[\z at skip]%
\fi
- \fi
- \ifdefined\eql at multi@mode at lines
- \expandafter\eql at lines@print
+ \crcr
+ \noalign{%
+ \eql at hook@blockafter
+ }%
+ \eql at tagging@tablesaveinner
+ \egroup
+}
+\def\eql at box@start{%
+ \relax
+ \ifmmode
+ \let\eql at box@endmath\@empty
\else
- \expandafter\eql at align@print
+ $\let\eql at box@endmath=$%
\fi
- \ifdefined\eql at numbering@subeq at use
- \eql at numbering@subeq at close
- \fi
+ \eql at nextopt@process{equationsbox}%
+ \let\eql at punct@block\eql at punct@main
+ \let\eql at punct@main\relax
+ \eql at colsep@\glueexpr\eql at box@colsep\relax
+ \eql at paddingleft@\glueexpr\eql at paddingleft@val\relax
+ \eql at paddingright@\glueexpr\eql at paddingright@val\relax
+ \eql at indent@\glueexpr\eql at indent@val\relax
+ \eql at stack@save at boxed
+ \let\eql at layoutleft\eql at false
+ \eql at row@\z@
+ \eql at totalrows@\@M
+ \eql at shape@sel
+ \hskip\glueexpr\eql at box@marginleft\relax
+ \eql at box@box\bgroup
+ \eql at display@leave
+ \let\\\eql at box@cr
+ \eql at box@open
+}
+\newcommand{\eql at box@end}{%
+ \eql at box@close
+ \egroup
+ \eql at tagging@tableaddinner
+ \hskip\glueexpr\eql at box@marginright\relax
\eql at stack@restore
- \eql at dollardollar@end
- \eql at tagging@end
- \eql at halign@leave
+ \eql at box@endmath
}
-\def\eql at mode@equation{%
- \let\eql at equations@mode at single\eql at true
- \ifdefined\eql at single@doscan
- \let\eql at equations@main\eql at single@main
- \let\eql at equations@end\@empty
+\newenvironment{equationsbox}{%
+\eql at dev@enterenv
+ \eql at ampprotect\eql at box@testall\eql at box@start
+}{%
+ \eql at box@end
+\eql at dev@leaveenv
+}
+\def\eql at box@testall{\eql at box@testtilde}
+\def\eql at box@testtilde#1{%
+ \eql at ifnextgobble@tight~%
+ {\eqnaddopt{lines}\eql at box@testopt{#1}}%
+ {\eql at box@testopt{#1}}}
+\def\eql at box@testopt#1{%
+ \eql at ifnextchar@tight[%]
+ {\eql at box@addopt{#1}}%
+ {#1}}
+\def\eql at box@addopt#1[#2]{\eqnaddopt{#2}#1}
+\def\eql at single@start at native{%
+ \eql at hook@eqin
+}%
+\def\eql at single@end at native{%
+ \if at eqnsw
+ \ifdefined\eql at tagsleft
+ \leqno
+ \else
+ \eqno
+ \fi
+ \eql at compose@print
+ \fi
+ \ifnum\eql at displaybreak@pen@=\@MM\else
+ \postdisplaypenalty\eql at displaybreak@pen@
+ \fi
+}%
+\def\eql at single@start at print{%
+ \eql at totalrows@\@ne
+ \eql at row@\z@
+ \eql at display@init
+ \let\shoveleft\eql at adjust@alignleft
+ \let\shovecenter\eql at adjust@aligncenter
+ \let\shoveright\eql at adjust@alignright
+ \eql at adjust@init
+ \eql at shape@eval
+ \eql at halign@init{}%
+ \eql at row@\@ne
+ \setbox\eql at fieldbox@\hbox\bgroup
+ \eql at restore@hfuzz
+ \eql at strut@field
+ $\m at th\displaystyle%$
+ \eql at hook@eqin
+}
+\def\eql at single@end at print{%
+ \eql at tagging@mathsave
+ $%$
+ \hfil
+ \kern\z@
+ \egroup
+ \eql at fieldwidth@\wd\eql at fieldbox@
+ \eql at line@height@\ht\eql at fieldbox@
+ \eql at line@depth@\dp\eql at fieldbox@
+ \eql at totalwidth@\eql at fieldwidth@
+ \eql at totalrows@\@ne
+ \if at eqnsw
+ \eql at tagbox@make\eql at compose@print
+ \eql at tagrows@\@ne
\else
- \let\eql at equations@main\@undefined
- \let\eql at equations@end\eql at single@end
+ \eql at tagwidth@\z@
+ \eql at tagrows@\z@
\fi
+ \eql at tagwidth@max@\eql at tagwidth@
+ \eql at adjust@calc
+ \halign{##\cr
+ \noalign{\eql at halign@before}%
+ \if at eqnsw
+ \eql at adjust@sel at tag
+ \else
+ \eql at adjust@sel at notag
+ \fi
+ \cr
+ \noalign{\eql at halign@after}%
+ \eql at tagging@tablesavelines
+ }%
+ \eql at row@\tw@
+ \eql at display@close
}
-\def\eql at mode@align{%
- \let\eql at equations@mode at single\eql at false
- \let\eql at multi@mode at lines\eql at false
- \let\eql at equations@main\eql at multi@main
- \let\eql at equations@end\@empty
-}
-\def\eql at mode@lines{%
- \let\eql at equations@mode at single\eql at false
- \let\eql at multi@mode at lines\eql at true
- \let\eql at equations@main\eql at multi@main
- \let\eql at equations@end\@empty
-}
-\eql at mode@align
\def\eql at lines@measure at line@begin{%
\eql at dev{starting line \the\eql at row@}%
\eql at numbering@measure at line@begin
@@ -2834,26 +2739,26 @@
}%
\eql at display@close
}
-\def\eql at align@add at amp#1{\if m#1&\omit\expandafter\eql at align@add at amp\fi}
-\def\eql at align@completerow{%
+\def\eql at columns@add at amp#1{\if m#1&\omit\expandafter\eql at columns@add at amp\fi}
+\def\eql at columns@completerow{%
\count@\eql at totalcolumns@
\advance\count at -\eql at column@
\advance\count@\@ne
\edef\eql at tmp{%
- \expandafter\eql at align@add at amp\romannumeral\number\count@ 000q}%
+ \expandafter\eql at columns@add at amp\romannumeral\number\count@ 000q}%
\eql at tmp
}
-\def\eql at align@measure at line@begin{%
+\def\eql at columns@measure at line@begin{%
\eql at dev{starting line \the\eql at row@}%
\global\eql at column@\z@
\eql at numbering@measure at line@begin
\eql at hook@linein
}
-\def\eql at align@measure at field{%
+\def\eql at columns@measure at field{%
\eql at fieldlength@save\eql at column@
\kern\wd\eql at fieldbox@
}
-\def\eql at align@measure at line@end{%
+\def\eql at columns@measure at line@end{%
\eql at punct@apply at line
\eql at hook@lineout
&\omit
@@ -2860,9 +2765,9 @@
\ifnum\eql at column@>\eql at totalcolumns@
\global\eql at totalcolumns@\eql at column@
\fi
- \eql at align@measure at tag
+ \eql at columns@measure at tag
}
-\def\eql at align@measure at tag{%
+\def\eql at columns@measure at tag{%
\ifnum\eql at numbering@target@<\z@
\if at eqnsw
\eql at tagbox@make\eql at compose@measure
@@ -2876,8 +2781,8 @@
\eql at tagwidth@save
\fi
}
-\def\eql at align@measure{%
-\eql at dev@enter\eql at align@measure
+\def\eql at columns@measure{%
+\eql at dev@enter\eql at columns@measure
\eql at totalcolumns@\z@
\eql at tagwidth@max@\z@
\let\eql at tagwidth@tab\@empty
@@ -2886,8 +2791,8 @@
\eql at measure@savecounters
\setbox\z@\vbox{%
\eql at numbering@measure at init
- \eql at measure@init\eql at align@measure at line@begin
- \eql at let@cr\eql at align@measure at line@end
+ \eql at measure@init\eql at columns@measure at line@begin
+ \eql at let@cr\eql at columns@measure at line@end
\tabskip\z at skip
\halign{%
&%
@@ -2903,7 +2808,7 @@
$%
}%
\global\eql at fieldwidth@\wd\eql at fieldbox@
- \eql at align@measure at field
+ \eql at columns@measure at field
&%
\global\advance\eql at column@\@ne
\setbox\eql at fieldbox@\hbox{%
@@ -2916,7 +2821,7 @@
\eql at hook@colout
$%
}%
- \eql at align@measure at field
+ \eql at columns@measure at field
\hfil
\crcr
\noalign{%
@@ -2927,13 +2832,13 @@
\ifvmode\else
\eql at punct@apply at block
\eql at hook@blockout
- \eql at align@measure at line@end
+ \eql at columns@measure at line@end
\cr
\fi
\noalign{%
\eql at hook@blockafter
}%
- \eql at align@completerow
+ \eql at columns@completerow
\cr
}%
\global\advance\eql at row@-\tw@
@@ -2964,11 +2869,11 @@
\global\setbox\thr@@\lastbox
}%
\ifhbox\thr@@
- \eql at align@colwidth at save
+ \eql at columns@colwidth at save
\repeat
-\eql at dev@leave\eql at align@measure
+\eql at dev@leave\eql at columns@measure
}
-\def\eql at align@print at line@begin{%
+\def\eql at columns@print at line@begin{%
\eql at dev{starting line \the\eql at row@}%
\global\eql at column@\z@
\global\eql at line@pos@\eql at marginleft@
@@ -2979,8 +2884,8 @@
\eql at numbering@print at line@begin
\eql at hook@linein
}
-\def\eql at align@print at field{%
- \dimen@\eql at align@colwidth at get\eql at column@\relax
+\def\eql at columns@print at field{%
+ \dimen@\eql at columns@colwidth at get\eql at column@\relax
\ifdim\wd\eql at fieldbox@>\z@
\ifdim\eql at line@width@=\z@
\eql at line@avail@\eql at line@pos@
@@ -3009,7 +2914,7 @@
\ifdim\dp\eql at fieldbox@>\eql at line@depth@
\global\eql at line@depth@\dp\eql at fieldbox@
\fi
- \dimen@\eql at align@colwidth at get\eql at column@\relax
+ \dimen@\eql at columns@colwidth at get\eql at column@\relax
\ifodd\eql at column@
\kern\dimen@
\else
@@ -3018,24 +2923,24 @@
\kern\dimen@
\fi
}
-\def\eql at align@print at trailright{%
+\def\eql at columns@print at trailright{%
&\omit
\global\advance\eql at column@\@ne
\setbox\eql at fieldbox@\hbox{%
\kern-\wd\eql at fieldbox@\box\eql at fieldbox@
}%
- \eql at align@print at field
+ \eql at columns@print at field
}
-\def\eql at align@print at line@end{%
+\def\eql at columns@print at line@end{%
\eql at punct@apply at line
\eql at hook@lineout
\ifodd\eql at column@
- \expandafter\eql at align@print at trailright
+ \expandafter\eql at columns@print at trailright
\fi
- \eql at align@completerow
- \eql at align@print at tag
+ \eql at columns@completerow
+ \eql at columns@print at tag
}
-\def\eql at align@print at tag{%
+\def\eql at columns@print at tag{%
\dimen@\eql at totalwidth@
\advance\dimen@\eql at colsep@
\kern-\dimen@
@@ -3051,13 +2956,13 @@
\kern\displaywidth
\fi
}
-\def\eql at align@print{%
-\eql at dev@enter\eql at align@print
- \eql at align@adjust
+\def\eql at columns@print{%
+\eql at dev@enter\eql at columns@print
+ \eql at columns@adjust
\eql at display@init
\eql at numbering@print at init
- \eql at print@init\eql at align@print at line@begin
- \eql at let@cr\eql at align@print at line@end
+ \eql at print@init\eql at columns@print at line@begin
+ \eql at let@cr\eql at columns@print at line@end
\tabskip\eql at marginleft@
\halign{%
&%
@@ -3076,7 +2981,7 @@
\eql at tagging@mathaddlast
}%
\global\eql at fieldwidth@\wd\eql at fieldbox@
- \eql at align@print at field
+ \eql at columns@print at field
\tabskip\z at skip
&%
\global\advance\eql at column@\@ne
@@ -3095,7 +3000,7 @@
$%
\eql at tagging@mathaddlast
}%
- \eql at align@print at field
+ \eql at columns@print at field
\hfil
\tabskip\eql at colsep@\relax
\crcr
@@ -3109,49 +3014,49 @@
\ifvmode\else
\eql at punct@apply at block
\eql at hook@blockout
- \eql at align@print at line@end
+ \eql at columns@print at line@end
\cr
\fi
\noalign{%
\eql at hook@blockafter
\eql at halign@after
-\eql at dev@leave\eql at align@print
+\eql at dev@leave\eql at columns@print
}%
\eql at tagging@tablesavealign
}%
\eql at display@close
}
-\def\eql at align@adjust{%
+\def\eql at columns@adjust{%
\eql at colsepmin@\glueexpr\eql at colsepmin@val\relax
\ifodd\eql at totalcolumns@
\advance\eql at totalcolumns@\@ne
\fi
\ifnum\eql at totalcolumns@<\thr@@
- \let\eql at align@margins\eql at true
+ \let\eql at columns@margins\eql at true
\fi
- \eql at align@inter@\eql at totalcolumns@
- \divide\eql at align@inter@\tw@
- \advance\eql at align@inter@\m at ne
- \ifdefined\eql at flushleft
- \eql at flushleftmargin@\glueexpr\eql at flushleftmargin@val\relax
+ \eql at columns@inter@\eql at totalcolumns@
+ \divide\eql at columns@inter@\tw@
+ \advance\eql at columns@inter@\m at ne
+ \ifdefined\eql at layoutleft
+ \eql at layoutleftmargin@\glueexpr\eql at layoutleftmargin@val\relax
\else
\eql at adjust@tagmargin
\fi
\eql at colsep@\displaywidth
\advance\eql at colsep@-\eql at totalwidth@
- \ifdefined\eql at flushleft
- \advance\eql at colsep@-\eql at flushleftmargin@
+ \ifdefined\eql at layoutleft
+ \advance\eql at colsep@-\eql at layoutleftmargin@
\else
\advance\eql at colsep@-\eql at tagmargin@
- \ifdefined\eql at align@margins\else
+ \ifdefined\eql at columns@margins\else
\ifdim\eql at tagmargin@>\z@
\advance\eql at colsep@-\eql at tagsepmin@
\fi
\fi
\fi
- \count@\eql at align@inter@
- \ifdefined\eql at align@margins
- \ifdefined\eql at flushleft
+ \count@\eql at columns@inter@
+ \ifdefined\eql at columns@margins
+ \ifdefined\eql at layoutleft
\advance\count@\@ne
\else
\advance\count@\tw@
@@ -3166,26 +3071,26 @@
\eql at colsep@\dimen@
\fi
\fi
- \ifdefined\eql at flushleft
+ \ifdefined\eql at layoutleft
\ifdim\eql at colsep@=\eql at colsepmin@
\eql at marginleft@\displaywidth
\advance\eql at marginleft@-\eql at totalwidth@
- \advance\eql at marginleft@-\eql at align@inter@\eql at colsep@
- \ifdim\eql at marginleft@>\eql at flushleftmargin@
- \eql at marginleft@\eql at flushleftmargin@
+ \advance\eql at marginleft@-\eql at columns@inter@\eql at colsep@
+ \ifdim\eql at marginleft@>\eql at layoutleftmargin@
+ \eql at marginleft@\eql at layoutleftmargin@
\else
- \ifdim\eql at marginleft@<\eql at flushleftmarginmin@
- \eql at marginleft@\eql at flushleftmarginmin@
+ \ifdim\eql at marginleft@<\eql at layoutleftmarginmin@
+ \eql at marginleft@\eql at layoutleftmarginmin@
\fi
\fi
\else
- \eql at marginleft@\eql at flushleftmargin@
+ \eql at marginleft@\eql at layoutleftmargin@
\fi
\else
- \ifdefined\eql at align@margins
+ \ifdefined\eql at columns@margins
\eql at marginleft@\displaywidth
\advance\eql at marginleft@-\eql at totalwidth@
- \advance\eql at marginleft@-\eql at align@inter@\eql at colsep@
+ \advance\eql at marginleft@-\eql at columns@inter@\eql at colsep@
\ifdim\eql at marginleft@<\eql at tagmargin@
\eql at marginleft@\z@
\else
@@ -3207,9 +3112,9 @@
\fi
\fi
\ifdefined\eql at tagsleft
- \let\eql at align@adjust at test\eql at align@adjust at test@tagleft
+ \let\eql at columns@adjust at test\eql at columns@adjust at test@tagleft
\else
- \let\eql at align@adjust at test\eql at align@adjust at test@tagright
+ \let\eql at columns@adjust at test\eql at columns@adjust at test@tagright
\fi
\eql at row@\eql at totalrows@
\loop\ifnum\eql at row@>\z@
@@ -3221,15 +3126,15 @@
\fi
\fi
\ifdim\eql at tagwidth@>\z@
- \eql at align@adjust at calc
- \eql at align@adjust at test
+ \eql at columns@adjust at calc
+ \eql at columns@adjust at test
\fi
\advance\eql at row@\m at ne
\repeat
- \advance\eql at totalwidth@\eql at align@inter@\eql at colsep@
+ \advance\eql at totalwidth@\eql at columns@inter@\eql at colsep@
\advance\eql at totalwidth@\eql at marginleft@
}
-\def\eql at align@adjust at calc{%
+\def\eql at columns@adjust at calc{%
\eql at line@pos@\z@
\eql at column@\z@
\eql at line@avail@\eql at totalwidth@
@@ -3238,16 +3143,16 @@
\@tempcntb\z@
\edef\@tempb{\eql at fieldlength@get\eql at row@}%
\@for\@tempa:=\@tempb\do
- \eql at align@adjust at calc@col
+ \eql at columns@adjust at calc@col
\advance\@tempcnta\m at ne
\divide\@tempcnta\tw@
\advance\@tempcntb\m at ne
\divide\@tempcntb\tw@
}
-\def\eql at align@adjust at calc@col{%
+\def\eql at columns@adjust at calc@col{%
\advance\eql at column@\@ne
\@tempdima\@tempa\relax
- \dimen@\eql at align@colwidth at get\eql at column@\relax
+ \dimen@\eql at columns@colwidth at get\eql at column@\relax
\ifdim\@tempdima>\z@
\ifdim\eql at line@width@=\z@
\eql at line@avail@\eql at line@pos@
@@ -3267,7 +3172,7 @@
\fi
\advance\eql at line@pos@\dimen@
}
-\def\eql at align@adjust at test@tagright{%
+\def\eql at columns@adjust at test@tagright{%
\@tempdima\displaywidth
\advance\@tempdima-\eql at line@width@
\advance\@tempdima-\eql at tagwidth@
@@ -3275,22 +3180,22 @@
\advance\dimen@\@tempcntb\eql at colsep@
\ifdim\dimen@>\@tempdima
\dimen@\@tempcntb\eql at colsepmin@
- \ifdefined\eql at flushleft
- \advance\dimen@\eql at flushleftmarginmin@
+ \ifdefined\eql at layoutleft
+ \advance\dimen@\eql at layoutleftmarginmin@
\fi
\ifdim\dimen@>\@tempdima\else
- \eql at align@adjust at modify@tagright
+ \eql at columns@adjust at modify@tagright
\fi
\fi
}
-\def\eql at align@adjust at modify@tagright{%
+\def\eql at columns@adjust at modify@tagright{%
\ifnum\@tempcntb>\z@
\dimen@\@tempdima
\count@\@tempcntb
- \ifdefined\eql at flushleft
+ \ifdefined\eql at layoutleft
\advance\dimen at -\eql at marginleft@
\else
- \ifdefined\eql at align@margins
+ \ifdefined\eql at columns@margins
\advance\count@\@ne
\fi
\fi
@@ -3308,8 +3213,8 @@
\eql at marginleft@\dimen@
\fi
}
-\def\eql at align@adjust at test@tagleft{%
- \count@\eql at align@inter@
+\def\eql at columns@adjust at test@tagleft{%
+ \count@\eql at columns@inter@
\advance\count at -\@tempcnta
\@tempdima\eql at tagwidth@
\advance\@tempdima-\eql at line@avail@
@@ -3316,8 +3221,8 @@
\dimen@\eql at marginleft@
\advance\dimen@\@tempcnta\eql at colsep@
\ifdim\dimen@<\@tempdima
- \ifdefined\eql at flushleft
- \dimen@\eql at flushleftmarginmax@
+ \ifdefined\eql at layoutleft
+ \dimen@\eql at layoutleftmarginmax@
\else
\dimen@\displaywidth
\fi
@@ -3326,17 +3231,17 @@
\advance\dimen@\eql at totalwidth@
\advance\dimen@\@tempdima
\ifdim\dimen@>\displaywidth\else
- \eql at align@adjust at modify@tagleft
+ \eql at columns@adjust at modify@tagleft
\fi
\fi
\fi
}
-\def\eql at align@adjust at modify@tagleft{%
+\def\eql at columns@adjust at modify@tagleft{%
\ifnum\count@>\z@
\dimen@\displaywidth
\advance\dimen at -\eql at totalwidth@
\advance\dimen at -\@tempdima
- \ifdefined\eql at align@margins
+ \ifdefined\eql at columns@margins
\advance\count@\@ne
\fi
\divide\dimen@\count@
@@ -3345,7 +3250,7 @@
\dimen@\eql at colsepmin@
\fi
\advance\dimen at -\eql at colsep@
- \advance\eql at marginleft@-\eql at align@inter@\dimen@
+ \advance\eql at marginleft@-\eql at columns@inter@\dimen@
\advance\eql at colsep@\dimen@
\fi
\fi
@@ -3477,6 +3382,113 @@
\eql at indent@\glueexpr\eql at indent@val\relax
\eql at tagsepmin@\glueexpr\eql at tagsepmin@val\relax
}
+\def\eql at single@cr{%
+ \eql at error{Cannot use `\string\\' within display equation.
+ Please switch to equations environment}%
+}
+\def\eql at single@start{%
+ \eql at halign@catchprevdepth
+ \eql at tagging@start
+ \eql at dollardollar@begin
+ \eql at numbering@eval at mode
+ \let\eql at numbering@subeq at use\eql at false
+ \eql at stack@save at single
+ \eql at numbering@single at init
+ \ifdefined\eql at single@native
+ \let\eql at single@start at sel\eql at single@start at native
+ \let\eql at single@end at sel\eql at single@end at native
+ \let\raisetag\eql at raisetag@default
+ \else
+ \let\eql at single@start at sel\eql at single@start at print
+ \let\eql at single@end at sel\eql at single@end at print
+ \fi
+ \ifdefined\eql at single@crerror\else
+ \let\\\eql at single@cr
+ \fi
+ \eql at single@start at sel
+}
+\def\eql at single@end{%
+ \eql at punct@apply at block
+ \eql at hook@eqout
+ \eql at single@end at sel
+ \eql at stack@restore
+ \eql at dollardollar@end
+ \eql at tagging@end
+ \eql at halign@leave
+}
+\def\eql at single@main{%
+ \expandafter\eql at single@start
+ \eql at scan@body
+ \eql at single@end
+}
+\def\eql at mode@equation{%
+ \ifdefined\eql at single@doscan
+ \let\eql at equations@main\eql at single@main
+ \let\eql at equations@end\@empty
+ \else
+ \let\eql at equations@main\@undefined
+ \let\eql at equations@end\eql at single@end
+ \fi
+}
+\let\eql at multi@mode at lines\eql at false
+\def\eql at multi@main{%
+ \eql at halign@catchprevdepth
+ \eql at tagging@start
+ \eql at dollardollar@begin
+ \eql at numbering@eval at mode
+ \eql at stack@save at multi
+ \ifdefined\eql at subequations@active
+ \let\eql at numbering@subeq at use\eql at false
+ \fi
+ \ifdefined\eql at numbering@subeq at use
+ \eql at numbering@subeq at init
+ \fi
+ \let\intertext\eql at intertext
+ \let\endintertext\endeql at intertext
+ \let\shoveleft\eql at adjust@alignleft
+ \let\shovecenter\eql at adjust@aligncenter
+ \let\shoveright\eql at adjust@alignright
+ \ifdefined\eql at multi@mode at lines
+ \expandafter\eql at lines@measure
+ \else
+ \ifdefined\eql at ampproof@active
+ \eql at ampproof
+ \fi
+ \expandafter\eql at columns@measure
+ \fi
+ \ifx\eql at numbering@subeq at use\@ne
+ \eql at numbering@subeq at revert
+ \fi
+ \ifdefined\eql at multi@mode at lines\else
+ \ifdefined\eql at multi@linesfallback
+ \ifnum\eql at totalcolumns@=\@ne
+ \let\eql at multi@mode at lines\eql at true
+ \fi
+ \fi
+ \fi
+ \ifdefined\eql at multi@mode at lines
+ \expandafter\eql at lines@print
+ \else
+ \expandafter\eql at columns@print
+ \fi
+ \ifdefined\eql at numbering@subeq at use
+ \eql at numbering@subeq at close
+ \fi
+ \eql at stack@restore
+ \eql at dollardollar@end
+ \eql at tagging@end
+ \eql at halign@leave
+}
+\def\eql at mode@columns{%
+ \let\eql at equations@main\eql at multi@main
+ \let\eql at equations@end\@empty
+ \let\eql at multi@mode at lines\eql at false
+}
+\def\eql at mode@lines{%
+ \let\eql at equations@main\eql at multi@main
+ \let\eql at equations@end\@empty
+ \let\eql at multi@mode at lines\eql at true
+}
\newenvironment{equations}{%
\eql at dev@enterenv
\ifmmode
@@ -3553,31 +3565,6 @@
\end{equations at ang}%
\ignorespaces
}
-\DeclareRobustCommand{\eql at eqref}[1]{\textup{\eql at tag@boxedform{\ref{#1}}}}
-\DeclareRobustCommand{\eql at numberwithin}[3][\arabic]{%
- \@ifundefined{c@#2}{\@nocounterr{#2}}{%
- \@ifundefined{c@#3}{\@nocounterr{#3}}{%
- \ifdefined\HyOrg at addtoreset
- \HyOrg at addtoreset{#2}{#3}%
- \else
- \@addtoreset{#2}{#3}%
- \fi
- \expandafter\xdef\csname the#2\endcsname{%
- \expandafter\noexpand\csname the#3\endcsname.\noexpand#1{#2}}%
- \ifdefined\theHequation
- \expandafter\xdef\csname theH#2\endcsname{%
- \expandafter\noexpand
- \csname the\@ifundefined{theH#3}{}H#3\endcsname.%
- \noexpand\arabic{#2}}%
- \fi
- }%
- }%
-}
-\DeclareRobustCommand{\eql at allowdisplaybreaks}[1][4]{%
- \eqnlinesset{allowbreaks=#1}%
-}
-\newcommand{\eql at notag}{\nonumber}
-\newcommand{\eql at thetag}{\leavevmode\eql at tag@boxedform}
\RequirePackage{keyval}
\def\eql at decide@select#1#2#3#4{%
\def\@tempa{#3}%
@@ -3611,8 +3598,16 @@
\eql at decide@select{#1}{#2}{#3}{%
{,abovebelow,both,tb}{#4#5},%
{above,top,t}{#4},%
- {below,bottom,b}{#5}}%
- }
+ {below,bottom,b}{#5}}}
+\def\eql at decide@situation#1#2#3#4{%
+ \eql at decide@select{#1}{#2}{#3}{%
+ {{long}{\def#4{0}}},%
+ {{short}{\def#4{1}}},%
+ {{cont}{\def#4{2}}},%
+ {{par}{\def#4{3}}},%
+ {{top}{\def#4{4}}},%
+ {{noskip}{\def#4{5}}},%
+ {{medskip}{\def#4{6}}}}}
\def\eql at define@key#1#2{%
\eql at ifnextchar@loose[%]
{\eql at definekey@opt{#1}{#2}}%
@@ -3645,77 +3640,8 @@
}
\newcommand{\eqnaddopt}[1]{%
\expandafter\def\expandafter\eql at nextopt\expandafter{\eql at nextopt,#1}}
-\def\eql at defaults@classic{%
- \def\eql at tagsepmin@val{.5\fontdimen6\textfont\tw@}%
- \def\eql at colsepmax@val{.5\maxdimen}%
- \def\eql at spread{\jot}%
- \let\eql at tagmargin@val\@undefined
- \eql at tagmargin@ratio@\p@
- \def\eql at tagmargin@threshold{0.5}%
- \def\eql at flushleftmargin@val{\leftmargini}%
- \let\eql at display@height\@undefined
- \let\eql at display@depth\@undefined
- \eql at skip@mode at short@\tw@
- \eql at skip@mode at cont@\@ne
- \eql at skip@mode at par@\z@
- \eql at skip@mode at top@\z@
- \def\eql at skip@long at above{\abovedisplayskip}%
- \def\eql at skip@long at below{\belowdisplayskip}%
- \def\eql at skip@short at above{\abovedisplayshortskip}%
- \def\eql at skip@short at below{\belowdisplayshortskip}%
- \def\eql at skip@cont at above{\eql at skip@short at above}%
- \def\eql at skip@cont at below{\eql at skip@short at below}%
- \def\eql at skip@par at above{\eql at skip@long at above}%
- \def\eql at skip@par at below{\eql at skip@long at below}%
- \def\eql at skip@top at above{\eql at skip@long at above}%
- \def\eql at skip@top at below{\eql at skip@long at below}%
- \def\eql at skip@med at above{\abovedisplayskip/2}%
- \def\eql at skip@med at below{\belowdisplayskip/2}%
- \def\eql at skip@medtag at above{\z at skip}%
- \def\eql at skip@medtag at below{\z at skip}%
- \def\eql at skip@tag at above{\z at skip}%
- \def\eql at skip@tag at below{\z at skip}%
-}
-\def\eql at defaults@eqnlines{%
- \def\eql at tagsepmin@val{.5em}%
- \def\eql at colsepmax@val{2em}%
- \def\eql at spread{0.2\normalbaselineskip}%
- \let\eql at tagmargin@val\@undefined
- \eql at tagmargin@ratio at .334\p@
- \def\eql at tagmargin@threshold{0.5}%
- \def\eql at flushleftmargin@val{\leftmargini}%
- \def\eql at display@height{\ht\eql at strutbox@}%
- \def\eql at display@depth{\dp\eql at strutbox@}%
- \eql at skip@mode at short@\@ne
- \eql at skip@mode at cont@\z@
- \eql at skip@mode at par@\z@
- \eql at skip@mode at top@\z@
- \def\eql at skip@long at above{0.75\normalbaselineskip
- \@plus0.25\normalbaselineskip\@minus0.4\normalbaselineskip}%
- \let\eql at skip@long at below\eql at skip@long at above
- \def\eql at skip@short at above{0.0\normalbaselineskip
- \@plus0.25\normalbaselineskip}%
- \def\eql at skip@short at below{0.0\normalbaselineskip
- \@plus0.25\normalbaselineskip}%
- \def\eql at skip@med at above{0.4\normalbaselineskip
- \@plus0.2\normalbaselineskip\@minus0.2\normalbaselineskip}%
- \let\eql at skip@med at below\eql at skip@med at above
- \def\eql at skip@cont at above{\z at skip}%
- \def\eql at skip@cont at below{\eql at skip@long at below}%
- \def\eql at skip@par at above{\eql at skip@long at above}%
- \def\eql at skip@par at below{\eql at skip@long at below}%
- \def\eql at skip@top at above{\z at skip}%
- \def\eql at skip@top at below{\z at skip}%
- \def\eql at skip@tag at above{\z at skip}%
- \def\eql at skip@tag at below{\z at skip}%
- \def\eql at skip@partag at above{\z at skip}%
- \def\eql at skip@partag at below{\z at skip}%
- \def\eql at skip@medtag at above{\z at skip}%
- \def\eql at skip@medtag at below{\z at skip}%
-}
-\eql at defaults@eqnlines
-\eql at define@key{equationsbox}{gathered,gather,ga,lines,lined,ln,\string~}[]{%
- \eql at mode@lined}
+\eql at define@key{equationsbox}{gathered,gather,ga,lines,ln,\string~}[]{%
+ \eql at mode@stacked}
\eql at define@key{equationsbox}{aligned,align,al,columns,col,@}[]{%
\eql at mode@aligned}
\eql at define@key{equationsbox}{top,t}[]{\let\eql at box@box\vtop}
@@ -3723,13 +3649,13 @@
\eql at define@key{equationsbox}{bottom,b}[]{\let\eql at box@box\vbox}
\eql at define@key{equationsbox}{colsep}{\def\eql at box@colsep{#1}}
\eql at define@key{equations}{equation,eq,single,1}[]{\eql at mode@equation}
-\eql at define@key{equations}{gathered,gather,ga,lines,lined,ln,\string~}[]{%
+\eql at define@key{equations}{gathered,gather,ga,lines,ln,\string~}[]{%
\eql at mode@lines}
\eql at define@key{equations}{aligned,align,al,columns,col,@}[]{%
- \eql at mode@align}
+ \eql at mode@columns}
\eql at define@key{equations}{native}[true]{%
\eql at decide@bool{#3}{#2}{#1}\eql at single@native%
- \ifdefined\eql at single@native\let\eql at flushleft\eql at false\fi}
+ \ifdefined\eql at single@native\let\eql at layoutleft\eql at false\fi}
\eql at define@key{setup}{native}[true]{%
\eql at decide@bool{#3}{#2}{#1}\eql at single@native}
\eql at define@key{setup}{scanequation}[true]{%
@@ -3739,7 +3665,7 @@
\eql at define@key{setup}{angopt}[]{%
\def\eql at equations@ang at opt{align,#1}}
\def\eql at keycat{equations,equationsbox,setup}
-\eql at define@key\eql at keycat{spread}[\jot]{\def\eql at spread{#1}}
+\eql at define@key\eql at keycat{spread}{\def\eql at spread@val{#1}}
\eql at define@key\eql at keycat{strut}[true]{\eql at decide@if{#3}{#2}{#1}%
{\let\eql at strut@field\eql at strut}{\let\eql at strut@field\relax}}
\eql at define@key\eql at keycat{struttag}[true]{\eql at decide@if{#3}{#2}{#1}%
@@ -3879,42 +3805,36 @@
\eql at define@key{setup}{abovecontskip}{%
\def\eql at skip@cont at above{#1}}
\eql at define@key{setup}{abovecontskip*}[]{%
- \def\eql at skip@cont at above{\eql at spread-\eql at skip@long at below}}
+ \def\eql at skip@cont at above{\eql at spread@val-\eql at skip@long at below}}
\eql at define@key{setup}{belowcontskip}{%
\def\eql at skip@cont at below{#1}}
\eql at define@key{setup}{shortmode}{%
\eql at decide@select{#3}{#2}{#1}{%
- {{off,never,no}{\eql at skip@mode at short@\z@}},%
- {{above,neverbelow,notbelow,belowoff}{\eql at skip@mode at short@\@ne}},%
- {{belowone,belowsingle}{\eql at skip@mode at short@\tw@}},%
- {{belowall,always,on}{\eql at skip@mode at short@\thr@@}}}}
+ {{off,never,no}{\def\eql at skip@mode at short{0}}},%
+ {{above,neverbelow,notbelow,belowoff}{\def\eql at skip@mode at short{1}}},%
+ {{belowone,belowsingle}{\def\eql at skip@mode at short{2}}},%
+ {{belowall,always,on}{\def\eql at skip@mode at short{3}}}}}
+\eql at define@key{setup}{abovecontmode}{%
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at cont@above}
\eql at define@key{setup}{belowcontmode}{%
- \eql at decide@select{#3}{#2}{#1}{%
- {{long}{\eql at skip@mode at cont@\z@}},%
- {{short}{\eql at skip@mode at cont@\@ne}},%
- {{cont}{\eql at skip@mode at cont@\tw@}}}}
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at cont@below}
+\eql at define@key{setup}{aboveparmode}{%
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at par@above}
\eql at define@key{setup}{belowparmode}{%
- \eql at decide@select{#3}{#2}{#1}{%
- {{long}{\eql at skip@mode at par@\z@}},%
- {{short}{\eql at skip@mode at par@\@ne}},%
- {{cont}{\eql at skip@mode at par@\tw@}},%
- {{par}{\eql at skip@mode at par@\thr@@}}}}
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at par@below}
+\eql at define@key{setup}{abovetopmode}{%
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at top@above}
\eql at define@key{setup}{belowtopmode}{%
- \eql at decide@select{#3}{#2}{#1}{%
- {{long}{\eql at skip@mode at top@\z@}},%
- {{short}{\eql at skip@mode at top@\@ne}},%
- {{cont}{\eql at skip@mode at top@\tw@}},%
- {{par}{\eql at skip@mode at top@\thre@@}},%
- {{top}{\eql at skip@mode at top@4\relax}}}}
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at top@below}
\def\eql at keycat{equations,subequations}
\eql at define@key\eql at keycat{label}{\eql at blocklabel@set{#1}}
\eql at define@key\eql at keycat{tag}{\eql at blocktag@set{#1}}
\eql at define@key\eql at keycat{tag*}{\eql at blocktag@setstar{#1}}
\def\eql at keycat{equations,setup}
-\eql at define@key\eql at keycat{tagmargin}{\def\eql at tagmargin@val{#1}}
+\eql at define@key\eql at keycat{tagmargin}[]{\def\eql at tagmargin@val{#1}
+ \ifx\eql at tagmargin@val\@empty\let\eql at tagmargin@val\@undefined\fi}
\eql at define@key\eql at keycat{tagmargin*}{%
\settowidth\dimen@{#1}\edef\eql at tagmargin@val{\the\dimen@}}
-\eql at define@key\eql at keycat{tagmargincalc}[]{\let\eql at tagmargin@val\@undefined}
\eql at define@key\eql at keycat{tagmarginratio}{%
\eql at tagmargin@ratio@\dimexpr#1pt\relax}
\eql at define@key\eql at keycat{tagmarginthreshold}{%
@@ -3923,20 +3843,26 @@
\eql at define@key\eql at keycat{mintagwidth}{%
\settowidth\dimen@{#1}\edef\eql at tagsepmin@val{\the\dimen@}}
\eql at define@key\eql at keycat{mintagwidth*}{\settowidth\eql at tagwidthmin@{#1}}
-\eql at define@key{setup}{taglayout}{\eql at tag@setbox{#1}}
-\eql at define@key{setup}{taglayout*}{\eql at tag@setbox@{#1}}
+\eql at define@key{setup}{tagbox,taglayout}{\eql at tag@setbox{#1}}
+\eql at define@key{setup}{tagbox,taglayout*}{\eql at tag@setbox@{#1}}
\eql at define@key{setup}{tagform}{\eql at tag@setform#1}
\eql at define@key{setup}{tagform*}{\eql at tag@setform@{#1}}
-\eql at define@key{setup}{subeqtemplate}{\def\eql at subequations@template{#1}}
+\eql at define@key{setup}{subeqtemplate}{%
+ \def\eql at subequations@template####1####2{#1}%
+ \expandafter\def\expandafter\eql at subequations@template\expandafter{%
+ \eql at subequations@template\theparentequation{equation}}%
+}
\eql at define@key{setup}{autolabel}[true]{%
- \eql at decide@bool{#3}{#2}{#1}\eql at autolabel}
+ \eql at decide@bool{#3}{#2}{#1}\eql at numbering@autolabel}
\eql at define@key{setup}{autotag}[true]{%
- \eql at decide@bool{#3}{#2}{#1}\eql at autotag}
+ \eql at decide@bool{#3}{#2}{#1}\eql at numbering@autotag}
\def\eql at keycat{equations,setup}
\eql at define@key\eql at keycat{numberline,numline,n}[all]{%
\eql at numbering@set{##1}}
-\eql at define@key\eql at keycat{nonumber,nn,*}[]{\let\eql at numbering@active\eql at false}
-\eql at define@key\eql at keycat{donumber,dn,!}[]{\let\eql at numbering@active\eql at true}
+\eql at define@key\eql at keycat{nonumber,nn,*}[]{%
+ \let\eql at numbering@active\eql at false}
+\eql at define@key\eql at keycat{donumber,dn,!}[]{%
+ \let\eql at numbering@active\eql at true}
\eql at define@key\eql at keycat{number,num}[true]{%
\eql at decide@bool{#3}{#2}{#1}\eql at numbering@active}
\eql at define@key\eql at keycat{tagsleft,leqno}[]{\let\eql at tagsleft\eql at true}
@@ -3947,19 +3873,19 @@
{{left,l}{\let\eql at tagsleft\eql at true}}}}
\def\eql at keycat{equations,setup}
\eql at define@key\eql at keycat{layout}{\eql at decide@select{#3}{#2}{#1}{%
- {{center,c}{\let\eql at flushleft\eql at false}},%
- {{left,l}{\let\eql at flushleft\eql at true}}}}
-\eql at define@key\eql at keycat{center}[]{\let\eql at flushleft\eql at false}
-\eql at define@key\eql at keycat{flushleft,left}[]{\let\eql at flushleft\eql at true}
-\eql at define@key\eql at keycat{leftmargin}{\def\eql at flushleftmargin@val{#1}}
+ {{center,c}{\let\eql at layoutleft\eql at false}},%
+ {{left,l}{\let\eql at layoutleft\eql at true}}}}
+\eql at define@key\eql at keycat{center}[]{\let\eql at layoutleft\eql at false}
+\eql at define@key\eql at keycat{flushleft,left}[]{\let\eql at layoutleft\eql at true}
+\eql at define@key\eql at keycat{leftmargin}{\def\eql at layoutleftmargin@val{#1}}
\eql at define@key\eql at keycat{leftmargin*}{%
- \settowidth\dimen@{#1}\edef\eql at flushleftmargin@val{\the\dimen@}}
+ \settowidth\dimen@{#1}\edef\eql at layoutleftmargin@val{\the\dimen@}}
\eql at define@key\eql at keycat{minleftmargin}{%
- \eql at flushleftmarginmin@\glueexpr#1\relax}
+ \eql at layoutleftmarginmin@\glueexpr#1\relax}
\eql at define@key\eql at keycat{maxleftmargin}{%
- \eql at flushleftmarginmax@\glueexpr#1\relax}
+ \eql at layoutleftmarginmax@\glueexpr#1\relax}
\eql at define@key\eql at keycat{maxleftmargin*}[]{%
- \eql at flushleftmarginmax@.5\maxdimen}
+ \eql at layoutleftmarginmax@.5\maxdimen}
\def\eql at keycat{equations,setup}
\eql at define@key\eql at keycat{marginbadness}{\eql at marginbadness@#1\relax}
\eql at define@key\eql at keycat{maxbadness}{\eql at maxbadness@#1\relax}
@@ -3967,7 +3893,7 @@
\eql at define@key\eql at keycat{maxcolsep}{\def\eql at colsepmax@val{#1}}
\eql at define@key\eql at keycat{maxcolsep*}[]{\def\eql at colsepmax@val{.5\maxdimen}}
\eql at define@key\eql at keycat{margins}[true]{%
- \eql at decide@bool{#3}{#2}{#1}\eql at align@margins}
+ \eql at decide@bool{#3}{#2}{#1}\eql at columns@margins}
\def\eql at keycat{equationsbox,setup}
\eql at define@key\eql at keycat{margin}{%
\def\eql at box@marginleft{#1}\def\eql at box@marginright{#1}}
@@ -3991,7 +3917,7 @@
\def\eql at keycat{equations,equationsbox,setup}
\eql at define@key\eql at keycat{classout}{\eql at class@innerleft at set{#1}}
\eql at define@key\eql at keycat{classin}{\eql at class@innerright at set{#1}}
-\eql at define@key\eql at keycat{classin*}{\eql at class@innerlead at set{#1}}
+\eql at define@key\eql at keycat{classlead,classin*}{\eql at class@innerlead at set{#1}}
\eql at define@key\eql at keycat{ampeq}[]{\eql at class@ampeq}
\eql at define@key\eql at keycat{eqamp}[]{\eql at class@eqamp}
\eql at define@key\eql at keycat{class}{\eql at decide@select{#3}{#2}{#1}{%
@@ -4043,6 +3969,80 @@
\eql at define@key{setup}{eqref}[true]{%
\eql at error@packageoption{#2}%
\eql at decide@bool{#3}{#2}{#1}\eql at provide@opt at eqref}
+\def\eql at defaults@classic{%
+ \eqnlinesset{mintagsep={.5\fontdimen6\textfont2\relax}}%
+ \eqnlinesset{maxcolsep*}%
+ \eqnlinesset{spread={\jot}}%
+ \eqnlinesset{tagmargin}%
+ \eqnlinesset{tagmarginratio=1}%
+ \eqnlinesset{tagmarginthreshold=0.5}%
+ \eqnlinesset{leftmargin={\leftmargini}}%
+ \eqnlinesset{displayheight*}%
+ \eqnlinesset{displaydepth*}%
+ \eqnlinesset{shortmode=belowsingle}%
+ \eqnlinesset{abovecontmode=short}%
+ \eqnlinesset{belowcontmode=short}%
+ \eqnlinesset{aboveparmode=long}%
+ \eqnlinesset{belowparmode=long}%
+ \eqnlinesset{abovetopmode=long}%
+ \eqnlinesset{belowtopmode=long}%
+ \eqnlinesset{abovelongskip={\abovedisplayskip}}%
+ \eqnlinesset{belowlongskip={\belowdisplayskip}}%
+ \eqnlinesset{aboveshortskip={\abovedisplayshortskip}}%
+ \eqnlinesset{belowshortskip={\belowdisplayshortskip}}%
+ \eqnlinesset{abovemedskip={.5\abovedisplayskip}}%
+ \eqnlinesset{belowmedskip={.5\belowdisplayskip}}%
+ \eqnlinesset{abovecontskip=0pt}%
+ \eqnlinesset{belowcontskip=0pt}%
+ \eqnlinesset{aboveparskip=0pt}%
+ \eqnlinesset{belowparskip=0pt}%
+ \eqnlinesset{abovetopskip=0pt}%
+ \eqnlinesset{belowtopskip=0pt}%
+ \eqnlinesset{abovetagskip=0pt}%
+ \eqnlinesset{belowtagskip=0pt}%
+ \eqnlinesset{abovemedtagskip=0pt}%
+ \eqnlinesset{belowmedtagskip=0pt}%
+ \eqnlinesset{abovepartagskip=0pt}%
+ \eqnlinesset{belowpartagskip=0pt}%
+}
+\def\eql at defaults@eqnlines{%
+ \eqnlinesset{mintagsep=.5em}%
+ \eqnlinesset{maxcolsep=2em}%
+ \eqnlinesset{spread={0.2\normalbaselineskip}}%
+ \eqnlinesset{tagmargin}%
+ \eqnlinesset{tagmarginratio=.334}%
+ \eqnlinesset{tagmarginthreshold=0.5}%
+ \eqnlinesset{leftmargin={\leftmargini}}%
+ \eqnlinesset{displayheight}%
+ \eqnlinesset{displaydepth}%
+ \eqnlinesset{shortmode=above}%
+ \eqnlinesset{abovecontmode=noskip}%
+ \eqnlinesset{belowcontmode=long}%
+ \eqnlinesset{aboveparmode=long}%
+ \eqnlinesset{belowparmode=long}%
+ \eqnlinesset{abovetopmode=noskip}%
+ \eqnlinesset{belowtopmode=long}%
+ \eqnlinesset{longskip={0.75\normalbaselineskip
+ plus 0.25\normalbaselineskip minus 0.4\normalbaselineskip}}%
+ \eqnlinesset{aboveshortskip={0.0\normalbaselineskip
+ plus 0.25\normalbaselineskip}}%
+ \eqnlinesset{belowshortskip={0.0\normalbaselineskip
+ plus 0.25\normalbaselineskip}}%
+ \eqnlinesset{medskip={0.4\normalbaselineskip
+ plus 0.2\normalbaselineskip minus 0.2\normalbaselineskip}}%
+ \eqnlinesset{abovecontskip=0pt}%
+ \eqnlinesset{belowcontskip=0pt}%
+ \eqnlinesset{aboveparskip=0pt}%
+ \eqnlinesset{belowparskip=0pt}%
+ \eqnlinesset{abovetopskip=0pt}%
+ \eqnlinesset{belowtopskip=0pt}%
+ \eqnlinesset{abovetagskip=0pt}%
+ \eqnlinesset{belowtagskip=0pt}%
+ \eqnlinesset{abovemedtagskip=0pt}%
+ \eqnlinesset{belowmedtagskip=0pt}%
+ \eqnlinesset{abovepartagskip=0pt}%
+ \eqnlinesset{belowpartagskip=0pt}%
+}
\newenvironment{eql at gathered}
{\eqnaddopt{lines}\equationsbox}{\endequationsbox}
\newenvironment{eql at multlined}
@@ -4059,7 +4059,7 @@
\newenvironment{eql at align}
{\eqnaddopt{align}\equations}{\endequations}
\newenvironment{eql at flalign}
- {\eqnaddopt{align,margins=false}\equations}{\endequations}
+ {\eqnaddopt{align,margins=false,maxcolsep*}\equations}{\endequations}
\newenvironment{eql at equation*}
{\eqnaddopt{nonumber}\eql at equation}{\endequations}
\newenvironment{eql at gather*}
@@ -4304,11 +4304,6 @@
\eql at define@key{provide}{sqr}[]{\eql at provide@sqr}
\eql at define@key{provide}{ang}[]{\eql at provide@ang}
\eql at define@key{provide}{eqref}[]{\eql at provide@cmd{eqref}{#1}}
-\eql at define@key{provide}{notag}[]{\eql at provide@cmd{notag}{#1}}
-\eql at define@key{provide}{thetag}[]{\eql at provide@cmd{thetag}{#1}}
-\eql at define@key{provide}{allowdisplaybreaks}[]{%
- \eql at provide@cmd{allowdisplaybreaks}{#1}}
-\eql at define@key{provide}{numberwithin}[]{\eql at provide@cmd{numberwithin}{#1}}
\eql at define@key{provide}{tagform}[]{%
\def\tagform@##1{\maketag@@@{\eql at tag@form{#1}}}}
\eql at define@key{provide}{maketag}[]{%
@@ -4323,6 +4318,9 @@
\DeclareOption{leqno}{\eqnlinesset{tagsleft}}
\DeclareOption{fleqn}{\eqnlinesset{left}}
\DeclareOption*{\expandafter\eqnlinesset\expandafter{\CurrentOption}}
+\eql at defaults@eqnlines
+\eql at mode@columns
+\eql at mode@aligned
\ProcessOptions
\def\eql at error@packageoption#1{%
\eql at error{may only use `#1' as a package option}%
Modified: trunk/Master/texmf-dist/tex/latex/eqnlines/eqnlines.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/eqnlines/eqnlines.sty 2025-04-03 19:50:08 UTC (rev 74838)
+++ trunk/Master/texmf-dist/tex/latex/eqnlines/eqnlines.sty 2025-04-03 19:50:19 UTC (rev 74839)
@@ -21,7 +21,7 @@
%% version 2008 or later.
%%
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesPackage{eqnlines}[2025/03/27 v0.6.1 Single- and multi-line equations]
+\ProvidesPackage{eqnlines}[2025/04/03 v0.7 Single- and multi-line equations]
\let\eql at false\@undefined
\let\eql at true\@empty
\ifdefined\dollardollar at begin
@@ -175,13 +175,13 @@
\def\eql at tagging@end{}
\fi
\let\eql at tagsleft\eql at false
-\let\eql at flushleft\eql at false
-\newdimen\eql at flushleftmargin@
-\newdimen\eql at flushleftmarginmin@
-\newdimen\eql at flushleftmarginmax@
-\def\eql at flushleftmargin@val{\leftmargini}
-\eql at flushleftmarginmin@\z@
-\eql at flushleftmarginmax@.5\maxdimen
+\let\eql at layoutleft\eql at false
+\newdimen\eql at layoutleftmargin@
+\newdimen\eql at layoutleftmarginmin@
+\newdimen\eql at layoutleftmarginmax@
+\def\eql at layoutleftmargin@val{\leftmargini}
+\eql at layoutleftmarginmin@\z@
+\eql at layoutleftmarginmax@.5\maxdimen
\newdimen\eql at tagmargin@
\let\eql at tagmargin@val\@undefined
\newdimen\eql at tagmargin@ratio@
@@ -197,20 +197,19 @@
\def\eql at box@marginleft{\z at skip}
\def\eql at box@marginright{\z at skip}
\def\eql at box@colsep{2em}
-\def\eql at spread{\jot}
-\newdimen\eql at spread@amount@
+\def\eql at spread@val{\jot}
+\newdimen\eql at spread@
\newdimen\eql at tagfuzz@
\eql at tagfuzz@16sp\relax
\def\eql at display@height{\ht\eql at strutbox@}
\def\eql at display@depth{\dp\eql at strutbox@}
-\newcount\eql at skip@mode at short@
-\eql at skip@mode at short@\tw@
-\newcount\eql at skip@mode at cont@
-\eql at skip@mode at cont@\z@
-\newcount\eql at skip@mode at par@
-\eql at skip@mode at par@\z@
-\newcount\eql at skip@mode at top@
-\eql at skip@mode at top@\z@
+\def\eql at skip@mode at short{2}
+\def\eql at skip@mode at cont@above{2}
+\def\eql at skip@mode at cont@below{0}
+\def\eql at skip@mode at par@above{3}
+\def\eql at skip@mode at par@below{0}
+\def\eql at skip@mode at top@above{4}
+\def\eql at skip@mode at top@below{0}
\newcount\eql at skip@mode at leave@
\let\eql at skip@force at leave\@undefined
\newcount\eql at skip@mode at above@
@@ -246,7 +245,7 @@
\def\eql at tagsepmin@val{.5\fontdimen6\textfont\tw@}
\def\eql at equations@sqr at opt{equation,nonumber}
\def\eql at equations@ang at opt{align,nonumber}
-\let\eql at align@margins\eql at true
+\let\eql at columns@margins\eql at true
\newbox\eql at fieldbox@
\newbox\eql at tagbox@
\newdimen\eql at fieldwidth@
@@ -264,7 +263,7 @@
\newcount\eql at column@
\newcount\eql at totalcolumns@
\newdimen\eql at colsep@
-\newcount\eql at align@inter@
+\newcount\eql at columns@inter@
\newdimen\eql at display@firstavail@
\def\eql at display@firstavail at set#1{%
\ifnum\eql at row@=\@ne
@@ -357,6 +356,7 @@
\let\eql at punct@col\@empty
\fi
}
+\let\eqnpunctapply\eql at punct@apply at block
\def\eql at class@innerright at sel@{%
\ifdim\eql at fieldwidth@=\z@
\eql at class@innerlead
@@ -385,206 +385,6 @@
\eql at class@innerlead at set{{}}%
}
\eql at class@ampeq
-\protected\def\eql at box@cr{%
- \eql at ampprotect\eql at testopt@tight\eql at box@cr@\z@
-}
-\def\eql at box@cr@[#1]{%
- \eql at punct@apply at line
- \eql at hook@lineout
- \eql at box@lastfield
- \cr
- \noalign{%
- \vskip\glueexpr#1\relax
- }%
-}
-\let\eql at box@box\vcenter
-\def\eql at box@lastfield at odd{%
- &\omit
- \kern-\wd\eql at fieldbox@
- \box\eql at fieldbox@
- \hfil
- &\omit\kern-\eql at colsep@
-}%
-\def\eql at box@lastfield at even{&\omit\kern-\eql at colsep@}
-\def\eql at box@lastfield at lines{&\omit\kern-2\eql at colsep@}
-\def\eql at box@open at align{%
- \let\eql at box@lastfield\@empty
- \eql at halign@init{%
- }%
- \tabskip\z at skip
- \halign\bgroup
- &%
- \let\eql at box@lastfield\eql at box@lastfield at odd
- \global\setbox\eql at fieldbox@\hbox{%
- \eql at strut@field
- \@lign
- $\m at th\displaystyle
- \eql at hook@colin
- ##%
- \eql at class@innerleft
- \eql at hook@innerleft
- \eql at tagging@mathsave
- $%
- \eql at tagging@mathaddlast
- }%
- \hfil
- \kern\wd\eql at fieldbox@
- \tabskip\z at skip
- &%
- \eql at fieldwidth@\wd\eql at fieldbox@
- \kern-\eql at fieldwidth@
- \box\eql at fieldbox@
- \let\eql at box@lastfield\eql at box@lastfield at even
- \llap{\unhbox\eql at fieldbox@}%
- \hbox{%
- \eql at strut@field
- \@lign
- $\m at th\displaystyle
- \eql at hook@innerright
- \eql at class@innerright at sel
- ##%
- \eql at punct@apply at col
- \eql at hook@colout
- \eql at tagging@mathsave
- $%
- \eql at tagging@mathaddlast
- }%
- \hfil
- \tabskip\eql at colsep@\relax
- \crcr
- \noalign{%
- \eql at hook@blockbefore
- }%
- \eql at hook@blockin
-}
-\def\eql at box@open at lines{%
- \let\shoveleft\eql at adjust@shoveleft
- \let\shovecenter\eql at adjust@shovecenter
- \let\shoveright\eql at adjust@shoveright
- \let\eql at box@lastfield\eql at box@lastfield at lines
- \eql at halign@init{%
- \global\advance\eql at row@\@ne
- }%
- \tabskip\z at skip
- \halign\bgroup
- &%
- \eql at shape@pos@\m at ne
- \setbox\eql at fieldbox@\hbox{%
- \eql at strut@field
- \@lign
- $\m at th\displaystyle
- \eql at hook@colin
- ##%
- \eql at punct@apply at col
- \eql at hook@colout
- \eql at tagging@mathsave
- $%
- \eql at tagging@mathaddlast
- }%
- \ifnum\eql at shape@pos@=\m at ne
- \eql at shape@eval
- \fi
- \ifcase\eql at shape@pos@
- \kern\eql at shape@amount@
- \box\eql at fieldbox@
- \skip@\@flushglue
- \advance\skip@\eql at paddingleft@\relax
- \advance\skip@\eql at paddingright@\relax
- \advance\skip at -\eql at shape@amount@\relax
- \hskip\skip@
- \eql at tagging@alignleft
- \or
- \skip@\@flushglue
- \advance\skip@\eql at paddingleft@\relax
- \hskip\skip@
- \box\eql at fieldbox@
- \skip@\@flushglue
- \advance\skip@\eql at paddingright@\relax
- \hskip\skip@
- \eql at tagging@aligncenter
- \or
- \skip@\@flushglue
- \advance\skip@\eql at paddingleft@\relax
- \advance\skip@\eql at paddingright@\relax
- \hskip\skip@
- \box\eql at fieldbox@
- \eql at tagging@alignright
- \fi
- \tabskip\eql at colsep@\relax
- \crcr
- \noalign{%
- \eql at hook@blockbefore
- }%
- \eql at hook@blockin
-}
-\def\eql at box@close{%
- \ifvmode\else
- \global\eql at totalrows@\eql at row@
- \eql at punct@apply at block
- \eql at box@cr@[\z at skip]%
- \fi
- \crcr
- \noalign{%
- \eql at hook@blockafter
- }%
- \eql at tagging@tablesaveinner
- \egroup
-}
-\def\eql at box@start{%
- \relax
- \ifmmode
- \let\eql at box@endmath\@empty
- \else
- $\let\eql at box@endmath=$%
- \fi
- \eql at nextopt@process{equationsbox}%
- \let\eql at punct@block\eql at punct@main
- \let\eql at punct@main\relax
- \eql at colsep@\glueexpr\eql at box@colsep\relax
- \eql at paddingleft@\glueexpr\eql at paddingleft@val\relax
- \eql at paddingright@\glueexpr\eql at paddingright@val\relax
- \eql at indent@\glueexpr\eql at indent@val\relax
- \eql at stack@save at boxed
- \let\eql at flushleft\eql at false
- \eql at row@\z@
- \eql at totalrows@\@M
- \eql at shape@sel
- \hskip\glueexpr\eql at box@marginleft\relax
- \eql at box@box\bgroup
- \eql at display@leave
- \let\\\eql at box@cr
- \ifdefined\eql at box@mode at lines
- \expandafter\eql at box@open at lines
- \else
- \expandafter\eql at box@open at align
- \fi
-}
-\newcommand{\eql at box@end}{%
- \eql at box@close
- \egroup
- \eql at tagging@tableaddinner
- \hskip\glueexpr\eql at box@marginright\relax
- \eql at stack@restore
- \eql at box@endmath
-}
-\newenvironment{equationsbox}{%
- \eql at ampprotect\eql at box@testall\eql at box@start
-}{%
- \eql at box@end
-}
-\def\eql at box@testall{\eql at box@testtilde}
-\def\eql at box@testtilde#1{%
- \eql at ifnextgobble@tight~%
- {\eqnaddopt{lines}\eql at box@testopt{#1}}%
- {\eql at box@testopt{#1}}}
-\def\eql at box@testopt#1{%
- \eql at ifnextchar@tight[%]
- {\eql at box@addopt{#1}}%
- {#1}}
-\def\eql at box@addopt#1[#2]{\eqnaddopt{#2}#1}
-\def\eql at mode@aligned{\let\eql at box@mode at lines\eql at false}
-\def\eql at mode@lined{\let\eql at box@mode at lines\eql at true}
-\eql at mode@aligned
\def\eql at tag@setbox@#1{%
\def\eql at tag@box##1{#1}%
}
@@ -600,6 +400,10 @@
\eql at tag@setbox{#1}
\eql at tag@setform({#1})
\def\eql at tag@boxedform#1{\eql at tag@box{\eql at tag@form{#1}}}
+\DeclareRobustCommand{\tagform}{\eql at tag@form}
+\DeclareRobustCommand{\tagbox}{\eql at tag@box}
+\DeclareRobustCommand{\tagboxed}{\eql at tag@boxedform}
+\DeclareRobustCommand{\eql at eqref}[1]{\textup{\eql at tag@boxedform{\ref{#1}}}}
\newdimen\eql at raisetag@amount@
\def\eql at raisetag@default{%
\eql at warning{\string\raisetag\space not allowed here}
@@ -606,7 +410,8 @@
\@gobble
}
\eql at amsmath@let\raisetag\eql at raisetag@default
-\def\eql at raisetag#1{\global\eql at raisetag@amount@\glueexpr#1\relax}%
+\def\eql at raisetag#1{\global\eql at raisetag@amount@\glueexpr#1\relax}
+\let\eql at raisetag@gobble\@gobble
\let\eql at SK@loaded\eql at false
\let\eql at SK@label\@gobble
\let\eql at SK@clearlabel\@empty
@@ -791,15 +596,15 @@
\fi
\advance\eql at tagwidth@\eql at tagsepmin@
}
-\def\eql at tagbox@print at right{%
+\def\eql at tagbox@print at tagsright{%
\kern-\wd\eql at tagbox@
\box\eql at tagbox@
}
-\def\eql at tagbox@print at left{%
+\def\eql at tagbox@print at tagsleft{%
\wd\eql at tagbox@\z@
\box\eql at tagbox@
}
-\def\eql at tagbox@print at right@raise{%
+\def\eql at tagbox@print at tagsright@raise{%
\ifnum\eql at row@=\eql at totalrows@
\global\advance\eql at raisetag@firstlast@\tw@
\fi
@@ -812,7 +617,7 @@
\box\eql at tagbox@
}}%
}
-\def\eql at tagbox@print at left@raise{%
+\def\eql at tagbox@print at tagsleft@raise{%
\ifnum\eql at row@=\@ne
\global\advance\eql at raisetag@firstlast@\@ne
\fi
@@ -929,15 +734,19 @@
\let\eql at numbering@active\eql at false
}
\def\numberhere{%
- \ifmeasuring@
- \ifnum\eql at numbering@target@<\z@\else
+ \ifnum\eql at numbering@target@<\z@
+ \donumber
+ \else
+ \ifmeasuring@
\global\eql at numbering@target@\eql at row@
\fi
\fi
}
\def\numbernext{%
- \ifmeasuring@
- \ifnum\eql at numbering@target@<\z@\else
+ \ifnum\eql at numbering@target@<\z@
+ \nonumber
+ \else
+ \ifmeasuring@
\ifnum\eql at numbering@target@=\eql at row@
\global\advance\eql at numbering@target@\@ne
\fi
@@ -948,6 +757,15 @@
\let\eql at numbering@autotag\eql at true
\let\eql at numbering@blocklabel\@undefined
\let\eql at numbering@blocktag\@undefined
+\let\eql at numbering@warn\eql at true
+\def\eql at numbering@autoenable{%
+ \global\@eqnswtrue
+ \ifx\eql at numbering@mode\eql at numbering@tab at here
+ \ifnum\eql at numbering@target@=\z@
+ \numberhere
+ \fi
+ \fi
+}
\eql at amsmath@after{
\let\eql at print@eqnum at default\print at eqnum
\let\eql at incr@eqnum at default\incr at eqnum
@@ -963,36 +781,29 @@
\fi
\fi
}
-\def\eql at label@warn{%
+\def\eql at label{%
\ifdefined\eql at numbering@autolabel
- \global\@eqnswtrue
+ \eql at numbering@autoenable
\fi
- \ifdefined\eql at nextlabel
- \eql at warn@label at multiple\eql at nextlabel
+ \ifdefined\eql at numbering@warn
+ \ifdefined\eql at nextlabel
+ \eql at warn@label at multiple\eql at nextlabel
+ \fi
\fi
\global\edef\eql at nextlabel
}
-\def\eql at tag@warn{%
+\let\eql at label@gobble\@gobble
+\def\eql at tag{%
\ifdefined\eql at numbering@autotag
- \global\@eqnswtrue
+ \eql at numbering@autoenable
\fi
- \ifdefined\eql at nexttag
- \eql at warn@tag at multiple
+ \ifdefined\eql at numbering@warn
+ \ifdefined\eql at nexttag
+ \eql at warn@tag at multiple
+ \fi
\fi
\eql at tag@makenext
}
-\def\eql at label@nowarn{%
- \ifdefined\eql at numbering@autolabel
- \global\@eqnswtrue
- \fi
- \global\edef\eql at nextlabel
-}
-\def\eql at tag@nowarn{%
- \ifdefined\eql at numbering@autotag
- \global\@eqnswtrue
- \fi
- \eql at tag@makenext
-}
\def\eql at blocklabel@set#1{%
\ifdefined\eql at blocklabel
\eql at warn@label at multiple\eql at blocklabel
@@ -1012,8 +823,9 @@
\def\eql at blocktag{*{#1}}%
}
\def\eql at numbering@single at init{%
- \let\label\eql at label@warn
- \let\tag\eql at tag@warn
+ \let\eql at numbering@warn\eql at true
+ \let\label\eql at label
+ \let\tag\eql at tag
\let\raisetag\eql at raisetag
\eql at numbering@target@\m at ne
\let\eql at nextlabel\eql at blocklabel
@@ -1036,8 +848,9 @@
\global\eql at raisetag@amount@\z@
}
\def\eql at numbering@measure at init{%
- \let\label\eql at label@warn
- \let\tag\eql at tag@warn
+ \let\eql at numbering@warn\eql at true
+ \let\label\eql at label
+ \let\tag\eql at tag
\let\raisetag\eql at raisetag
\global\let\eql at nextlabel\eql at blocklabel
\ifdefined\eql at blocktag
@@ -1084,8 +897,9 @@
}
\def\eql at numbering@print at init{%
\ifnum\eql at numbering@target@<\z@
- \let\label\eql at label@nowarn
- \let\tag\eql at tag@nowarn
+ \let\eql at numbering@warn\eql at false
+ \let\label\eql at label
+ \let\tag\eql at tag
\let\raisetag\eql at raisetag
\let\eql at nextlabel\eql at blocklabel
\ifdefined\eql at blocktag
@@ -1094,9 +908,9 @@
\let\eql at nexttag\@undefined
\fi
\else
- \let\label\@gobble
+ \let\label\eql at label@gobble
\let\tag\eql at tag@gobble
- \let\raisetag\eql at gobble
+ \let\raisetag\eql at raisetag@gobble
\fi
}
\def\eql at numbering@print at block@begin{%
@@ -1281,6 +1095,12 @@
\let\vspace\eql at vspace
}
\def\eql at display@close{%
+ \ifdefined\eql at tagging@on
+ \ifdefined\dollardollar at begin\else
+ \belowdisplayskip-\belowdisplayskip
+ \belowdisplayshortskip-\belowdisplayshortskip
+ \fi
+ \fi
\ifdim\eql at display@firstavail@<\z@
\eql at display@firstavail@\z@
\fi
@@ -1287,19 +1107,19 @@
\eql at skip@mode at leave@\z@
\ifdim\eql at halign@prevdepth@=\maxdimen
\ifdim\predisplaysize=-\maxdimen
- \eql at skip@mode at above@\tw@
- \eql at skip@mode at below@\eql at skip@mode at cont@
+ \eql at skip@mode at above@\eql at skip@mode at cont@above\relax
+ \eql at skip@mode at below@\eql at skip@mode at cont@below\relax
\else
\eql at skip@mode at above@\z@
\eql at skip@mode at below@\z@
\advance\eql at display@firstavail@\displayindent
\ifdim\eql at display@firstavail@>\predisplaysize
- \ifcase\eql at skip@mode at short@
+ \ifcase\eql at skip@mode at short\relax
\or
\eql at skip@mode at above@\@ne
\or
\eql at skip@mode at above@\@ne
- \ifnum\eql at row@=\tw@
+ \ifnum\eql at totalrows@=\@ne
\eql at skip@mode at below@\@ne
\fi
\or
@@ -1310,29 +1130,25 @@
\fi
\else
\ifdim\eql at halign@prevdepth@=-\@m\p@
- \eql at skip@mode at above@4\relax
- \eql at skip@mode at below@\eql at skip@mode at top@
- \eql at skip@mode at leave@\z@
- \predisplaypenalty\z@
- \ifcase\eql at skip@mode at top@
- \or
- \or
- \or
- \eql at skip@mode at leave@\@ne
- \or
- \postdisplaypenalty\z@
- \eql at skip@mode at leave@\tw@
- \fi
+ \eql at skip@mode at above@\eql at skip@mode at top@above\relax
+ \eql at skip@mode at below@\eql at skip@mode at top@below\relax
\else
- \eql at skip@mode at above@\thr@@
- \eql at skip@mode at below@\eql at skip@mode at par@
- \eql at skip@mode at leave@\z@
- \predisplaypenalty\z@
- \ifnum\eql at skip@mode at par@=\thr@@
- \eql at skip@mode at leave@\@ne
- \fi
+ \eql at skip@mode at above@\eql at skip@mode at par@above\relax
+ \eql at skip@mode at below@\eql at skip@mode at par@below\relax
\fi
\fi
+ \ifcase\eql at skip@mode at above@
+ \or\or\or
+ \predisplaypenalty\z@
+ \or
+ \predisplaypenalty\z@
+ \fi
+ \ifcase\eql at skip@mode at below@
+ \or\or\or
+ \eql at skip@mode at leave@\@ne
+ \or
+ \eql at skip@mode at leave@\tw@
+ \fi
\ifdefined\eql at skip@force at above
\eql at skip@mode at above@\eql at skip@force at above\relax
\fi
@@ -1342,6 +1158,9 @@
\ifdefined\eql at skip@force at leave
\eql at skip@mode at leave@\eql at skip@force at leave\relax
\fi
+ \ifnum\eql at skip@mode at leave@>\z@
+ \postdisplaypenalty\z@
+ \fi
\ifodd\eql at raisetag@firstlast@
\ifcase\eql at skip@mode at above@
\abovedisplayskip\glueexpr\eql at skip@tag at above\relax
@@ -1374,7 +1193,7 @@
\or
\abovedisplayskip\z at skip
\or
- \abovedisplayskip\glueexpr\eql at skip@medtag at above\relax
+ \abovedisplayskip\glueexpr\eql at skip@med at above\relax
\or
\abovedisplayskip\glueexpr\eql at skip@custom at above\relax
\fi
@@ -1411,7 +1230,7 @@
\or
\belowdisplayskip\z at skip
\or
- \belowdisplayskip\glueexpr\eql at skip@medtag at below\relax
+ \belowdisplayskip\glueexpr\eql at skip@med at below\relax
\or
\belowdisplayskip\glueexpr\eql at skip@custom at below\relax
\fi
@@ -1426,8 +1245,10 @@
\advance\belowdisplayskip\eql at belowspace@
\advance\belowdisplayskip\eql at vspaceskip@
\count@\prevgraf
- \advance\count@\eql at row@
- \advance\count at -\tw@
+ \advance\count@\eql at totalrows@
+ \ifnum\count@>\z@
+ \advance\count@\m at ne
+ \fi
\prevgraf\count@
\global\eql at skip@mode at leave@\eql at skip@mode at leave@
\ifdefined\eql at tagging@on
@@ -1468,11 +1289,11 @@
}
\AtBeginDocument{\eql at strut@make}
\def\eql at halign@spread{%
- \eql at spread@amount@\glueexpr\eql at spread\relax
- \advance\eql at spread@amount@\normalbaselineskip
- \advance\eql at spread@amount at -\baselineskip
- \ifdim\eql at spread@amount@>\z@
- \openup\eql at spread@amount@
+ \eql at spread@\glueexpr\eql at spread@val\relax
+ \advance\eql at spread@\normalbaselineskip
+ \advance\eql at spread@-\baselineskip
+ \ifdim\eql at spread@>\z@
+ \openup\eql at spread@
\ifdefined\spread at equation
\let\spread at equation\@empty
\fi
@@ -1509,11 +1330,11 @@
\ifdim\skip@<\lineskiplimit
\skip@\lineskip
\fi
- \advance\skip at -\eql at spread@amount@\relax
+ \advance\skip at -\eql at spread@\relax
\vskip\skip@
\nointerlineskip
\else
- \vskip-\eql at spread@amount@\relax
+ \vskip-\eql at spread@\relax
\fi
\fi
}
@@ -1641,15 +1462,15 @@
\let\eql at shape@mode\eql at shape@tab at default
\fi
}
-\def\eql at shape@center at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
-\def\eql at shape@center at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
-\def\eql at shape@center at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
-\let\eql at shape@center at default\eql at shape@center at center
-\def\eql at shape@left at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
-\def\eql at shape@left at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
-\def\eql at shape@left at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
-\let\eql at shape@left at default\eql at shape@left at left
-\def\eql at shape@center at first{%
+\def\eql at shape@layoutcenter at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
+\def\eql at shape@layoutcenter at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
+\def\eql at shape@layoutcenter at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
+\let\eql at shape@layoutcenter at default\eql at shape@layoutcenter at center
+\def\eql at shape@layoutleft at left{\eql at shape@pos@\z@\eql at shape@amount@\z@}
+\def\eql at shape@layoutleft at center{\eql at shape@pos@\@ne\eql at shape@amount@\z@}
+\def\eql at shape@layoutleft at right{\eql at shape@pos@\tw@\eql at shape@amount@\z@}
+\let\eql at shape@layoutleft at default\eql at shape@layoutleft at left
+\def\eql at shape@layoutcenter at first{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -1658,7 +1479,7 @@
\fi
\fi
}
-\def\eql at shape@left at first{%
+\def\eql at shape@layoutleft at first{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -1667,7 +1488,7 @@
\fi
\fi
}
-\def\eql at shape@center at hanging{%
+\def\eql at shape@layoutcenter at hanging{%
\eql at shape@pos@\z@
\eql at shape@amount@\eql at indent@
\ifnum\eql at totalrows@>\@ne
@@ -1676,7 +1497,7 @@
\fi
\fi
}
-\def\eql at shape@left at hanging{%
+\def\eql at shape@layoutleft at hanging{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -1685,7 +1506,7 @@
\fi
\fi
}
-\def\eql at shape@center at steps{%
+\def\eql at shape@layoutcenter at steps{%
\eql at shape@amount@\z@
\eql at shape@pos@\@ne
\ifnum\eql at totalrows@>\@ne
@@ -1697,7 +1518,7 @@
\fi
\fi
}
-\def\eql at shape@left at steps{%
+\def\eql at shape@layoutleft at steps{%
\eql at shape@pos@\z@
\eql at shape@amount@\z@
\ifnum\eql at totalrows@>\@ne
@@ -1713,23 +1534,23 @@
\def\eql at shape@sel{%
\expandafter\let\expandafter\eql at shape@eval
\csname eql at shape%
- @\ifdefined\eql at flushleft left\else center\fi
+ @\ifdefined\eql at layoutleft layoutleft\else layoutcenter\fi
@\eql at shape@mode\endcsname
}
-\def\eql at adjust@shoveleft{%
+\def\eql at adjust@alignleft{%
\global\eql at shape@pos@\z@
\eql at srbgroup\eql at ifstar@tight
- {\eql at adjust@shoveleft@[\eql at indent@]}%
+ {\eql at adjust@alignleft@[\eql at indent@]}%
{\eql at ifnextgobble@tight{!}%
- {\eql at adjust@shoveleft@[-\eql at indent@]}%
- {\eql at testopt@tight\eql at adjust@shoveleft@\z@}%
+ {\eql at adjust@alignleft@[-\eql at indent@]}%
+ {\eql at testopt@tight\eql at adjust@alignleft@\z@}%
}%
}
-\def\eql at adjust@shoveleft@[#1]{%
+\def\eql at adjust@alignleft@[#1]{%
\eql at sregroup\global\eql at shape@amount@\glueexpr#1\relax}
-\def\eql at adjust@shovecenter{%
+\def\eql at adjust@aligncenter{%
\global\eql at shape@pos@\@ne\global\eql at shape@amount@\z@}
-\def\eql at adjust@shoveright{%
+\def\eql at adjust@alignright{%
\global\eql at shape@pos@\tw@\global\eql at shape@amount@\z@}
\def\eql at adjust@try#1{%
\setbox\eql at fieldbox@\hbox to\displaywidth{%
@@ -1783,9 +1604,9 @@
\eql at tagging@alignright
\fi
\csname eql at adjust%
- @\ifdefined\eql at flushleft flushleft\else center\fi
+ @\ifdefined\eql at layoutleft layoutleft\else layoutcenter\fi
@\ifdefined\eql at tagsleft tagsleft\else tagsright\fi
- @\ifcase\eql at shape@pos@ shoveleft\or shovecenter\or shoveright\fi
+ @\ifcase\eql at shape@pos@ alignleft\or aligncenter\or alignright\fi
@tag\endcsname
}
\def\eql at adjust@sel at notag{%
@@ -1798,16 +1619,16 @@
\eql at tagging@alignright
\fi
\csname eql at adjust%
- @\ifdefined\eql at flushleft flushleft\else center\fi
+ @\ifdefined\eql at layoutleft layoutleft\else layoutcenter\fi
@\ifdefined\eql at tagsleft tagsleft\else tagsright\fi
- @\ifcase\eql at shape@pos@ shoveleft\or shovecenter\or shoveright\fi
+ @\ifcase\eql at shape@pos@ alignleft\or aligncenter\or alignright\fi
@notag\endcsname
}
\def\eql at adjust@calc{%
- \ifdefined\eql at flushleft
- \eql at flushleftmargin@\glueexpr\eql at flushleftmargin@val\relax
+ \ifdefined\eql at layoutleft
+ \eql at layoutleftmargin@\glueexpr\eql at layoutleftmargin@val\relax
\else
- \eql at align@inter@\z@
+ \eql at columns@inter@\z@
\eql at adjust@tagmargin
\ifdefined\eql at paddingmax
\eql at marginleft@\z@
@@ -1830,7 +1651,7 @@
\fi
\fi
}
-\def\eql at adjust@center at tagsright@shovecenter at notag{%
+\def\eql at adjust@layoutcenter at tagsright@aligncenter at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at fieldwidth@
\ifdim\dimen@>\eql at tagmargin@
@@ -1839,7 +1660,7 @@
\eql at adjust@print at alignleft\z@\z@
\fi
}
-\def\eql at adjust@center at tagsright@shovecenter at tag{%
+\def\eql at adjust@layoutcenter at tagsright@aligncenter at tag{%
\dimen@\displaywidth
\ifdim\eql at tagwidth@<\eql at tagmargin@
\advance\dimen at -\eql at tagmargin@
@@ -1849,7 +1670,7 @@
\fi
\ifdim\eql at fieldwidth@<\dimen@
\eql at adjust@print at aligncenter\z@\eql at tagmargin@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
@@ -1858,14 +1679,14 @@
\else
\eql at adjust@print at alignright\z@\eql at tagwidth@
\fi
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@center at tagsright@shovecenter at notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutcenter at tagsright@aligncenter at notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
-\def\eql at adjust@center at tagsleft@shovecenter at notag{%
+\def\eql at adjust@layoutcenter at tagsleft@aligncenter at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\ifdim\eql at fieldwidth@<\dimen@
@@ -1874,7 +1695,7 @@
\eql at adjust@print at alignright\z@\z@
\fi
}
-\def\eql at adjust@center at tagsleft@shovecenter at tag{%
+\def\eql at adjust@layoutcenter at tagsleft@aligncenter at tag{%
\dimen@\displaywidth
\ifdim\eql at tagwidth@<\eql at tagmargin@
\advance\dimen at -\eql at tagmargin@
@@ -1883,12 +1704,12 @@
\advance\dimen@\eql at tagmargin@
\fi
\ifdim\eql at fieldwidth@<\dimen@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at aligncenter\eql at tagmargin@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\ifdim\eql at tagwidth@<\eql at tagmargin@
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
@@ -1895,13 +1716,13 @@
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\fi
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@center at tagsleft@shovecenter at notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutcenter at tagsleft@aligncenter at notag
\fi
\fi
\eql at display@firstavail at set\z@
}
-\def\eql at adjust@center at tagsright@shoveleft at notag{%
+\def\eql at adjust@layoutcenter at tagsright@alignleft at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at marginleft@
\advance\dimen at -\eql at shape@amount@
@@ -1913,7 +1734,7 @@
\eql at adjust@print at alignright\z@\z@
\fi
}
-\def\eql at adjust@center at tagsright@shoveleft at tag{%
+\def\eql at adjust@layoutcenter at tagsright@alignleft at tag{%
\dimen@\eql at marginleft@
\advance\dimen@\eql at shape@amount@
\advance\dimen@\eql at tagwidth@
@@ -1922,7 +1743,7 @@
\dimen@\eql at marginleft@
\advance\dimen@\eql at shape@amount@
\eql at adjust@print at alignleft\dimen@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\ifdim\eql at marginleft@>-\eql at shape@amount@
\eql at adjust@try\eql at tagwidth@
@@ -1929,14 +1750,14 @@
\fi
\ifnum\badness<\eql at maxbadness@
\eql at adjust@print at alignright\z@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@center at tagsright@shoveleft at notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutcenter at tagsright@alignleft at notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
-\def\eql at adjust@center at tagsleft@shoveright at notag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignright at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\advance\dimen at -\eql at marginright@
@@ -1946,12 +1767,12 @@
\eql at adjust@print at alignleft\z@\z@
\fi
}
-\def\eql at adjust@center at tagsleft@shoveright at tag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignright at tag{%
\dimen@\eql at marginright@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\eql at marginright@
\else
\ifdim\eql at marginright@>\z@
@@ -1958,16 +1779,16 @@
\eql at adjust@try\eql at tagwidth@
\fi
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@center at tagsleft@shoveright at notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutcenter at tagsleft@alignright at notag
\fi
\fi
\eql at display@firstavail at set\z@
}
-\def\eql at adjust@center at tagsright@shoveright at notag{%
+\def\eql at adjust@layoutcenter at tagsright@alignright at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\advance\dimen at -\eql at marginright@
@@ -1979,7 +1800,7 @@
\eql at adjust@print at alignleft\z@\z@
\fi
}
-\def\eql at adjust@center at tagsright@shoveright at tag{%
+\def\eql at adjust@layoutcenter at tagsright@alignright at tag{%
\dimen@\eql at tagmargin@
\advance\dimen@\eql at marginright@
\ifdim\eql at tagwidth@<\dimen@
@@ -1986,15 +1807,15 @@
\eql at adjust@try\dimen@%
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignright\z@\dimen@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
\eql at adjust@print at alignleft\z@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
\eql at adjust@print at alignleft\z@\z@
- \eql at tagbox@print at left@raise
+ \eql at tagbox@print at tagsleft@raise
\fi
\fi
\else
@@ -2001,14 +1822,14 @@
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
\eql at adjust@print at alignright\z@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@center at tagsright@shoveright at notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutcenter at tagsright@alignright at notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
-\def\eql at adjust@center at tagsleft@shoveleft at notag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignleft at notag{%
\dimen@\displaywidth
\advance\dimen at -\eql at tagmargin@
\advance\dimen at -\eql at marginleft@
@@ -2022,7 +1843,7 @@
\eql at adjust@print at alignright\z@\z@
\fi
}
-\def\eql at adjust@center at tagsleft@shoveleft at tag{%
+\def\eql at adjust@layoutcenter at tagsleft@alignleft at tag{%
\dimen@\eql at tagmargin@
\advance\dimen@\eql at marginleft@
\advance\dimen@\eql at shape@amount@
@@ -2029,15 +1850,15 @@
\ifdim\eql at tagwidth@<\dimen@
\eql at adjust@try\dimen@%
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\dimen@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
+ \eql at tagbox@print at tagsleft@raise
\eql at adjust@print at alignright\z@\z@
\fi
\fi
@@ -2044,11 +1865,11 @@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@center at tagsleft@shoveleft at notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutcenter at tagsleft@alignleft at notag
\fi
\fi
\eql at display@firstavail at set\z@
@@ -2073,7 +1894,7 @@
\fi
\@tempdima\displaywidth
\advance\@tempdima-\eql at totalwidth@
- \advance\@tempdima-\eql at align@inter@\eql at colsepmin@
+ \advance\@tempdima-\eql at columns@inter@\eql at colsepmin@
\@tempdimb\@tempdima
\advance\@tempdimb-\tw@\eql at tagmargin@
\ifdim\@tempdimb>\z@
@@ -2082,90 +1903,90 @@
\fi
\fi
}
-\def\eql at adjust@flushleft at shoveleft{%
- \eql at marginleft@\eql at flushleftmargin@
+\def\eql at adjust@layoutleft at alignleft{%
+ \eql at marginleft@\eql at layoutleftmargin@
\advance\eql at marginleft@\eql at shape@amount@
- \ifdim\eql at marginleft@<\eql at flushleftmarginmin@
- \eql at marginleft@\eql at flushleftmarginmin@
+ \ifdim\eql at marginleft@<\eql at layoutleftmarginmin@
+ \eql at marginleft@\eql at layoutleftmarginmin@
\fi
- \ifdim\eql at marginleft@>\eql at flushleftmarginmax@
- \eql at marginleft@\eql at flushleftmarginmax@
+ \ifdim\eql at marginleft@>\eql at layoutleftmarginmax@
+ \eql at marginleft@\eql at layoutleftmarginmax@
\fi
}
-\def\eql at adjust@flushleft at shoveleft@notag{%
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
+\def\eql at adjust@layoutleft at alignleft@notag{%
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignleft\eql at marginleft@\z@
\else
- \eql at adjust@print at alignleft\eql at flushleftmarginmin@\z@
+ \eql at adjust@print at alignleft\eql at layoutleftmarginmin@\z@
\fi
\else
\eql at adjust@print at alignleft\eql at marginleft@\z@
\fi
}
-\def\eql at adjust@flushleft at tagsright@shoveleft at notag{%
- \eql at adjust@flushleft at shoveleft
- \eql at adjust@flushleft at shoveleft@notag
+\def\eql at adjust@layoutleft at tagsright@alignleft at notag{%
+ \eql at adjust@layoutleft at alignleft
+ \eql at adjust@layoutleft at alignleft@notag
}
-\let\eql at adjust@flushleft at tagsleft@shoveleft at notag
- \eql at adjust@flushleft at tagsright@shoveleft at notag
-\def\eql at adjust@flushleft at tagsright@shoveleft at tag{%
- \eql at adjust@flushleft at shoveleft
+\let\eql at adjust@layoutleft at tagsleft@alignleft at notag
+ \eql at adjust@layoutleft at tagsright@alignleft at notag
+\def\eql at adjust@layoutleft at tagsright@alignleft at tag{%
+ \eql at adjust@layoutleft at alignleft
\dimen@\eql at marginleft@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignleft\eql at marginleft@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
- \dimen@\eql at flushleftmarginmin@
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
+ \dimen@\eql at layoutleftmarginmin@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\fi
\ifnum\badness<\eql at maxbadness@
- \eql at adjust@print at alignleft\eql at flushleftmarginmin@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at adjust@print at alignleft\eql at layoutleftmarginmin@\eql at tagwidth@
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@flushleft at shoveleft@notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutleft at alignleft@notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
-\def\eql at adjust@flushleft at tagsleft@shoveleft at tag{%
- \eql at adjust@flushleft at shoveleft
- \ifdim\eql at tagwidth@<\eql at flushleftmarginmin@
- \eql at tagbox@print at left
- \eql at adjust@flushleft at notag
+\def\eql at adjust@layoutleft at tagsleft@alignleft at tag{%
+ \eql at adjust@layoutleft at alignleft
+ \ifdim\eql at tagwidth@<\eql at layoutleftmarginmin@
+ \eql at tagbox@print at tagsleft
+ \eql at adjust@layoutleft at notag
\else
\ifdim\eql at tagwidth@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at marginleft@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@print at alignleft\eql at flushleftmarginmin@\z@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@print at alignleft\eql at layoutleftmarginmin@\z@
\fi
\fi
\else
- \ifdim\eql at tagwidth@>\eql at flushleftmarginmax@
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveleft@notag
+ \ifdim\eql at tagwidth@>\eql at layoutleftmarginmax@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignleft@notag
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignleft\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveleft@notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignleft@notag
\fi
\fi
\fi
@@ -2172,77 +1993,77 @@
\fi
\eql at display@firstavail at set\z@
}
-\def\eql at adjust@flushleft at shoveright@notag{%
- \eql at marginleft@\eql at flushleftmargin@
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
+\def\eql at adjust@layoutleft at alignright@notag{%
+ \eql at marginleft@\eql at layoutleftmargin@
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignright\eql at marginleft@\z@
\else
- \eql at adjust@print at alignright\eql at flushleftmarginmin@\z@
+ \eql at adjust@print at alignright\eql at layoutleftmarginmin@\z@
\fi
\else
\eql at adjust@print at alignright\eql at marginleft@\z@
\fi
}
-\let\eql at adjust@flushleft at tagsright@shoveright at notag
- \eql at adjust@flushleft at shoveright@notag
-\let\eql at adjust@flushleft at tagsleft@shoveright at notag
- \eql at adjust@flushleft at shoveright@notag
-\def\eql at adjust@flushleft at tagsright@shoveright at tag{%
+\let\eql at adjust@layoutleft at tagsright@alignright at notag
+ \eql at adjust@layoutleft at alignright@notag
+\let\eql at adjust@layoutleft at tagsleft@alignright at notag
+ \eql at adjust@layoutleft at alignright@notag
+\def\eql at adjust@layoutleft at tagsright@alignright at tag{%
\dimen@\eql at marginleft@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\ifnum\badness<\eql at marginbadness@
\eql at adjust@print at alignright\eql at marginleft@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\else
- \ifdim\eql at flushleftmarginmin@<\eql at marginleft@
- \dimen@\eql at flushleftmarginmin@
+ \ifdim\eql at layoutleftmarginmin@<\eql at marginleft@
+ \dimen@\eql at layoutleftmarginmin@
\advance\dimen@\eql at tagwidth@
\eql at adjust@try\dimen@
\fi
\ifnum\badness<\eql at maxbadness@
- \eql at adjust@print at alignright\eql at flushleftmarginmin@\eql at tagwidth@
- \eql at tagbox@print at right
+ \eql at adjust@print at alignright\eql at layoutleftmarginmin@\eql at tagwidth@
+ \eql at tagbox@print at tagsright
\else
- \eql at adjust@flushleft at shoveright@notag
- \eql at tagbox@print at right@raise
+ \eql at adjust@layoutleft at alignright@notag
+ \eql at tagbox@print at tagsright@raise
\fi
\fi
}
-\def\eql at adjust@flushleft at tagsleft@shoveright at tag{%
- \ifdim\eql at tagwidth@<\eql at flushleftmarginmin@
- \eql at tagbox@print at left
- \eql at adjust@flushleft at shoveright@notag
+\def\eql at adjust@layoutleft at tagsleft@alignright at tag{%
+ \ifdim\eql at tagwidth@<\eql at layoutleftmarginmin@
+ \eql at tagbox@print at tagsleft
+ \eql at adjust@layoutleft at alignright@notag
\else
\ifdim\eql at tagwidth@<\eql at marginleft@
\eql at adjust@try\eql at marginleft@
\ifnum\badness<\eql at marginbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at marginleft@\z@
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@print at alignright\eql at flushleftmarginmin@\z@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@print at alignright\eql at layoutleftmarginmin@\z@
\fi
\fi
\else
- \ifdim\eql at tagwidth@>\eql at flushleftmarginmax@
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveright@notag
+ \ifdim\eql at tagwidth@>\eql at layoutleftmarginmax@
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignright@notag
\else
\eql at adjust@try\eql at tagwidth@
\ifnum\badness<\eql at maxbadness@
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\eql at adjust@print at alignright\eql at tagwidth@\z@
\else
- \eql at tagbox@print at left@raise
- \eql at adjust@flushleft at shoveright@notag
+ \eql at tagbox@print at tagsleft@raise
+ \eql at adjust@layoutleft at alignright@notag
\fi
\fi
\fi
@@ -2249,123 +2070,17 @@
\fi
\eql at display@firstavail at set\z@
}
-\def\eql at adjust@flushleft at shovecenter{%
+\def\eql at adjust@layoutleft at aligncenter{%
\eql at error{shove center not implemented for left alignment}%
}
-\let\eql at adjust@flushleft at tagsright@shovecenter at notag
- \eql at adjust@flushleft at shovecenter
-\let\eql at adjust@flushleft at tagsright@shovecenter at tag
- \eql at adjust@flushleft at shovecenter
-\let\eql at adjust@flushleft at tagsleft@shovecenter at notag
- \eql at adjust@flushleft at shovecenter
-\let\eql at adjust@flushleft at tagsleft@shovecenter at tag
- \eql at adjust@flushleft at shovecenter
-\def\eql at single@cr{%
- \eql at error{Cannot use `\string\\' within display equation.
- Please switch to equations environment}%
-}
-\def\eql at single@start{%
- \eql at halign@catchprevdepth
- \eql at tagging@start
- \eql at dollardollar@begin
- \eql at numbering@eval at mode
- \let\eql at numbering@subeq at use\eql at false
- \eql at stack@save at single
- \eql at numbering@single at init
- \ifdefined\eql at single@native
- \let\eql at single@start at sel\eql at single@start at native
- \let\eql at single@end at sel\eql at single@end at native
- \let\raisetag\eql at raisetag@default
- \else
- \let\eql at single@start at sel\eql at single@start at adjust
- \let\eql at single@end at sel\eql at single@end at adjust
- \fi
- \ifdefined\eql at single@crerror\else
- \let\\\eql at single@cr
- \fi
- \eql at single@start at sel
-}
-\def\eql at single@end{%
- \eql at punct@apply at block
- \eql at hook@eqout
- \eql at single@end at sel
- \eql at stack@restore
- \eql at dollardollar@end
- \eql at tagging@end
- \eql at halign@leave
-}
-\def\eql at single@main{%
- \expandafter\eql at single@start
- \eql at scan@body
- \eql at single@end
-}
-\def\eql at single@start at native{%
- \eql at hook@eqin
-}%
-\def\eql at single@end at native{%
- \if at eqnsw
- \ifdefined\eql at tagsleft
- \leqno
- \else
- \eqno
- \fi
- \eql at compose@print
- \fi
- \ifnum\eql at displaybreak@pen@=\@MM\else
- \postdisplaypenalty\eql at displaybreak@pen@
- \fi
-}%
-\def\eql at single@start at adjust{%
- \eql at totalrows@\@ne
- \eql at row@\z@
- \eql at display@init
- \let\shoveleft\eql at adjust@shoveleft
- \let\shovecenter\eql at adjust@shovecenter
- \let\shoveright\eql at adjust@shoveright
- \eql at adjust@init
- \eql at shape@eval
- \eql at halign@init{}%
- \eql at row@\@ne
- \setbox\eql at fieldbox@\hbox\bgroup
- \eql at restore@hfuzz
- \eql at strut@field
- $\m at th\displaystyle%$
- \eql at hook@eqin
-}
-\def\eql at single@end at adjust{%
- \eql at tagging@mathsave
- $%$
- \hfil
- \kern\z@
- \egroup
- \eql at fieldwidth@\wd\eql at fieldbox@
- \eql at line@height@\ht\eql at fieldbox@
- \eql at line@depth@\dp\eql at fieldbox@
- \eql at totalwidth@\eql at fieldwidth@
- \eql at totalrows@\@ne
- \if at eqnsw
- \eql at tagbox@make\eql at compose@print
- \eql at tagrows@\@ne
- \else
- \eql at tagwidth@\z@
- \eql at tagrows@\z@
- \fi
- \eql at tagwidth@max@\eql at tagwidth@
- \eql at adjust@calc
- \halign{##\cr
- \noalign{\eql at halign@before}%
- \if at eqnsw
- \eql at adjust@sel at tag
- \else
- \eql at adjust@sel at notag
- \fi
- \cr
- \noalign{\eql at halign@after}%
- \eql at tagging@tablesavelines
- }%
- \eql at row@\tw@
- \eql at display@close
-}
+\let\eql at adjust@layoutleft at tagsright@aligncenter at notag
+ \eql at adjust@layoutleft at aligncenter
+\let\eql at adjust@layoutleft at tagsright@aligncenter at tag
+ \eql at adjust@layoutleft at aligncenter
+\let\eql at adjust@layoutleft at tagsleft@aligncenter at notag
+ \eql at adjust@layoutleft at aligncenter
+\let\eql at adjust@layoutleft at tagsleft@aligncenter at tag
+ \eql at adjust@layoutleft at aligncenter
\let\eql at fieldlength@tab\@empty
\def\eql at fieldlength@save#1{%
\begingroup
@@ -2401,10 +2116,10 @@
\endgroup
}
\let\eql at colwidth@tab\@empty
-\def\eql at align@colwidth at get#1{%
+\def\eql at columns@colwidth at get#1{%
\ifcase\expandafter#1\eql at colwidth@tab\else\z@\fi
}
-\def\eql at align@colwidth at save{%
+\def\eql at columns@colwidth at save{%
\begingroup
\let\or\relax
\global\edef\eql at colwidth@tab{\or\the\wd\thr@@\eql at colwidth@tab}%
@@ -2458,9 +2173,9 @@
\ifdefined\eql at tagsleft
\eql at display@firstavail at set\z@
\ifdim\eql at tagwidth@>\eql at line@avail@
- \eql at tagbox@print at left@raise
+ \eql at tagbox@print at tagsleft@raise
\else
- \eql at tagbox@print at left
+ \eql at tagbox@print at tagsleft
\fi
\kern\displaywidth
\else
@@ -2467,9 +2182,9 @@
\kern\displaywidth
\advance\eql at tagwidth@\eql at line@width@
\ifdim\eql at tagwidth@>\displaywidth
- \eql at tagbox@print at right@raise
+ \eql at tagbox@print at tagsright@raise
\else
- \eql at tagbox@print at right
+ \eql at tagbox@print at tagsright
\fi
\fi
}
@@ -2511,7 +2226,7 @@
\let\eql at skip@force at below\z@
\let\eql at skip@force at above\z@
\eql at setkeys{intertext}\eql at intertext@opt
- \openup-\eql at spread@amount@
+ \openup-\eql at spread@
\penalty\postdisplaypenalty
\ifcase\eql at skip@force at below\relax
\advance\eql at vspaceskip@\glueexpr\eql at skip@long at below\relax
@@ -2593,79 +2308,269 @@
}%
}%
}
-\let\eql at multi@mode at lines\eql at false
-\def\eql at multi@main{%
- \eql at halign@catchprevdepth
- \eql at tagging@start
- \eql at dollardollar@begin
- \eql at numbering@eval at mode
- \eql at stack@save at multi
- \ifdefined\eql at subequations@active
- \let\eql at numbering@subeq at use\eql at false
- \fi
- \ifdefined\eql at numbering@subeq at use
- \eql at numbering@subeq at init
- \fi
- \let\intertext\eql at intertext
- \let\endintertext\endeql at intertext
- \let\shoveleft\eql at adjust@shoveleft
- \let\shovecenter\eql at adjust@shovecenter
- \let\shoveright\eql at adjust@shoveright
- \ifdefined\eql at multi@mode at lines
- \expandafter\eql at lines@measure
- \else
- \ifdefined\eql at ampproof@active
- \eql at ampproof
- \fi
- \expandafter\eql at align@measure
- \fi
- \ifx\eql at numbering@subeq at use\@ne
- \eql at numbering@subeq at revert
- \fi
- \ifdefined\eql at multi@mode at lines\else
- \ifdefined\eql at multi@linesfallback
- \ifnum\eql at totalcolumns@=\@ne
- \let\eql at multi@mode at lines\eql at true
- \eql at shape@set{r}%
+\protected\def\eql at box@cr{%
+ \eql at ampprotect\eql at testopt@tight\eql at box@cr@\z@
+}
+\def\eql at box@cr@[#1]{%
+ \eql at punct@apply at line
+ \eql at hook@lineout
+ \eql at box@lastfield
+ \cr
+ \noalign{%
+ \vskip\glueexpr#1\relax
+ }%
+}
+\def\eql at box@lastfield at lines{&\omit\kern-2\eql at colsep@}
+\def\eql at box@open at stacked{%
+ \let\shoveleft\eql at adjust@alignleft
+ \let\shovecenter\eql at adjust@aligncenter
+ \let\shoveright\eql at adjust@alignright
+ \let\eql at box@lastfield\eql at box@lastfield at lines
+ \eql at halign@init{%
+ \global\advance\eql at row@\@ne
+ }%
+ \tabskip\z at skip
+ \halign\bgroup
+ &%
+ \eql at shape@pos@\m at ne
+ \setbox\eql at fieldbox@\hbox{%
+ \eql at strut@field
+ \@lign
+ $\m at th\displaystyle
+ \eql at hook@colin
+ ##%
+ \eql at punct@apply at col
+ \eql at hook@colout
+ \eql at tagging@mathsave
+ $%
+ \eql at tagging@mathaddlast
+ }%
+ \ifnum\eql at shape@pos@=\m at ne
+ \eql at shape@eval
\fi
+ \ifcase\eql at shape@pos@
+ \kern\eql at shape@amount@
+ \box\eql at fieldbox@
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingleft@\relax
+ \advance\skip@\eql at paddingright@\relax
+ \advance\skip at -\eql at shape@amount@\relax
+ \hskip\skip@
+ \eql at tagging@alignleft
+ \or
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingleft@\relax
+ \hskip\skip@
+ \box\eql at fieldbox@
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingright@\relax
+ \hskip\skip@
+ \eql at tagging@aligncenter
+ \or
+ \skip@\@flushglue
+ \advance\skip@\eql at paddingleft@\relax
+ \advance\skip@\eql at paddingright@\relax
+ \hskip\skip@
+ \box\eql at fieldbox@
+ \eql at tagging@alignright
+ \fi
+ \tabskip\eql at colsep@\relax
+ \crcr
+ \noalign{%
+ \eql at hook@blockbefore
+ }%
+ \eql at hook@blockin
+}
+\def\eql at mode@stacked{\let\eql at box@open\eql at box@open at stacked}
+\def\eql at box@lastfield at odd{%
+ &\omit
+ \kern-\wd\eql at fieldbox@
+ \box\eql at fieldbox@
+ \hfil
+ &\omit\kern-\eql at colsep@
+}%
+\def\eql at box@lastfield at even{&\omit\kern-\eql at colsep@}
+\def\eql at box@open at aligned{%
+ \let\eql at box@lastfield\@empty
+ \eql at halign@init{%
+ }%
+ \tabskip\z at skip
+ \halign\bgroup
+ &%
+ \let\eql at box@lastfield\eql at box@lastfield at odd
+ \global\setbox\eql at fieldbox@\hbox{%
+ \eql at strut@field
+ \@lign
+ $\m at th\displaystyle
+ \eql at hook@colin
+ ##%
+ \eql at class@innerleft
+ \eql at hook@innerleft
+ \eql at tagging@mathsave
+ $%
+ \eql at tagging@mathaddlast
+ }%
+ \hfil
+ \kern\wd\eql at fieldbox@
+ \tabskip\z at skip
+ &%
+ \eql at fieldwidth@\wd\eql at fieldbox@
+ \kern-\eql at fieldwidth@
+ \box\eql at fieldbox@
+ \let\eql at box@lastfield\eql at box@lastfield at even
+ \llap{\unhbox\eql at fieldbox@}%
+ \hbox{%
+ \eql at strut@field
+ \@lign
+ $\m at th\displaystyle
+ \eql at hook@innerright
+ \eql at class@innerright at sel
+ ##%
+ \eql at punct@apply at col
+ \eql at hook@colout
+ \eql at tagging@mathsave
+ $%
+ \eql at tagging@mathaddlast
+ }%
+ \hfil
+ \tabskip\eql at colsep@\relax
+ \crcr
+ \noalign{%
+ \eql at hook@blockbefore
+ }%
+ \eql at hook@blockin
+}
+\def\eql at mode@aligned{\let\eql at box@open\eql at box@open at aligned}
+\let\eql at box@box\vcenter
+\let\eql at box@open\@undefined
+\def\eql at box@close{%
+ \ifvmode\else
+ \global\eql at totalrows@\eql at row@
+ \eql at punct@apply at block
+ \eql at box@cr@[\z at skip]%
\fi
- \fi
- \ifdefined\eql at multi@mode at lines
- \expandafter\eql at lines@print
+ \crcr
+ \noalign{%
+ \eql at hook@blockafter
+ }%
+ \eql at tagging@tablesaveinner
+ \egroup
+}
+\def\eql at box@start{%
+ \relax
+ \ifmmode
+ \let\eql at box@endmath\@empty
\else
- \expandafter\eql at align@print
+ $\let\eql at box@endmath=$%
\fi
- \ifdefined\eql at numbering@subeq at use
- \eql at numbering@subeq at close
- \fi
+ \eql at nextopt@process{equationsbox}%
+ \let\eql at punct@block\eql at punct@main
+ \let\eql at punct@main\relax
+ \eql at colsep@\glueexpr\eql at box@colsep\relax
+ \eql at paddingleft@\glueexpr\eql at paddingleft@val\relax
+ \eql at paddingright@\glueexpr\eql at paddingright@val\relax
+ \eql at indent@\glueexpr\eql at indent@val\relax
+ \eql at stack@save at boxed
+ \let\eql at layoutleft\eql at false
+ \eql at row@\z@
+ \eql at totalrows@\@M
+ \eql at shape@sel
+ \hskip\glueexpr\eql at box@marginleft\relax
+ \eql at box@box\bgroup
+ \eql at display@leave
+ \let\\\eql at box@cr
+ \eql at box@open
+}
+\newcommand{\eql at box@end}{%
+ \eql at box@close
+ \egroup
+ \eql at tagging@tableaddinner
+ \hskip\glueexpr\eql at box@marginright\relax
\eql at stack@restore
- \eql at dollardollar@end
- \eql at tagging@end
- \eql at halign@leave
+ \eql at box@endmath
}
-\def\eql at mode@equation{%
- \let\eql at equations@mode at single\eql at true
- \ifdefined\eql at single@doscan
- \let\eql at equations@main\eql at single@main
- \let\eql at equations@end\@empty
+\newenvironment{equationsbox}{%
+ \eql at ampprotect\eql at box@testall\eql at box@start
+}{%
+ \eql at box@end
+}
+\def\eql at box@testall{\eql at box@testtilde}
+\def\eql at box@testtilde#1{%
+ \eql at ifnextgobble@tight~%
+ {\eqnaddopt{lines}\eql at box@testopt{#1}}%
+ {\eql at box@testopt{#1}}}
+\def\eql at box@testopt#1{%
+ \eql at ifnextchar@tight[%]
+ {\eql at box@addopt{#1}}%
+ {#1}}
+\def\eql at box@addopt#1[#2]{\eqnaddopt{#2}#1}
+\def\eql at single@start at native{%
+ \eql at hook@eqin
+}%
+\def\eql at single@end at native{%
+ \if at eqnsw
+ \ifdefined\eql at tagsleft
+ \leqno
+ \else
+ \eqno
+ \fi
+ \eql at compose@print
+ \fi
+ \ifnum\eql at displaybreak@pen@=\@MM\else
+ \postdisplaypenalty\eql at displaybreak@pen@
+ \fi
+}%
+\def\eql at single@start at print{%
+ \eql at totalrows@\@ne
+ \eql at row@\z@
+ \eql at display@init
+ \let\shoveleft\eql at adjust@alignleft
+ \let\shovecenter\eql at adjust@aligncenter
+ \let\shoveright\eql at adjust@alignright
+ \eql at adjust@init
+ \eql at shape@eval
+ \eql at halign@init{}%
+ \eql at row@\@ne
+ \setbox\eql at fieldbox@\hbox\bgroup
+ \eql at restore@hfuzz
+ \eql at strut@field
+ $\m at th\displaystyle%$
+ \eql at hook@eqin
+}
+\def\eql at single@end at print{%
+ \eql at tagging@mathsave
+ $%$
+ \hfil
+ \kern\z@
+ \egroup
+ \eql at fieldwidth@\wd\eql at fieldbox@
+ \eql at line@height@\ht\eql at fieldbox@
+ \eql at line@depth@\dp\eql at fieldbox@
+ \eql at totalwidth@\eql at fieldwidth@
+ \eql at totalrows@\@ne
+ \if at eqnsw
+ \eql at tagbox@make\eql at compose@print
+ \eql at tagrows@\@ne
\else
- \let\eql at equations@main\@undefined
- \let\eql at equations@end\eql at single@end
+ \eql at tagwidth@\z@
+ \eql at tagrows@\z@
\fi
+ \eql at tagwidth@max@\eql at tagwidth@
+ \eql at adjust@calc
+ \halign{##\cr
+ \noalign{\eql at halign@before}%
+ \if at eqnsw
+ \eql at adjust@sel at tag
+ \else
+ \eql at adjust@sel at notag
+ \fi
+ \cr
+ \noalign{\eql at halign@after}%
+ \eql at tagging@tablesavelines
+ }%
+ \eql at row@\tw@
+ \eql at display@close
}
-\def\eql at mode@align{%
- \let\eql at equations@mode at single\eql at false
- \let\eql at multi@mode at lines\eql at false
- \let\eql at equations@main\eql at multi@main
- \let\eql at equations@end\@empty
-}
-\def\eql at mode@lines{%
- \let\eql at equations@mode at single\eql at false
- \let\eql at multi@mode at lines\eql at true
- \let\eql at equations@main\eql at multi@main
- \let\eql at equations@end\@empty
-}
-\eql at mode@align
\def\eql at lines@measure at line@begin{%
\eql at numbering@measure at line@begin
\eql at hook@linein
@@ -2815,25 +2720,25 @@
}%
\eql at display@close
}
-\def\eql at align@add at amp#1{\if m#1&\omit\expandafter\eql at align@add at amp\fi}
-\def\eql at align@completerow{%
+\def\eql at columns@add at amp#1{\if m#1&\omit\expandafter\eql at columns@add at amp\fi}
+\def\eql at columns@completerow{%
\count@\eql at totalcolumns@
\advance\count at -\eql at column@
\advance\count@\@ne
\edef\eql at tmp{%
- \expandafter\eql at align@add at amp\romannumeral\number\count@ 000q}%
+ \expandafter\eql at columns@add at amp\romannumeral\number\count@ 000q}%
\eql at tmp
}
-\def\eql at align@measure at line@begin{%
+\def\eql at columns@measure at line@begin{%
\global\eql at column@\z@
\eql at numbering@measure at line@begin
\eql at hook@linein
}
-\def\eql at align@measure at field{%
+\def\eql at columns@measure at field{%
\eql at fieldlength@save\eql at column@
\kern\wd\eql at fieldbox@
}
-\def\eql at align@measure at line@end{%
+\def\eql at columns@measure at line@end{%
\eql at punct@apply at line
\eql at hook@lineout
&\omit
@@ -2840,9 +2745,9 @@
\ifnum\eql at column@>\eql at totalcolumns@
\global\eql at totalcolumns@\eql at column@
\fi
- \eql at align@measure at tag
+ \eql at columns@measure at tag
}
-\def\eql at align@measure at tag{%
+\def\eql at columns@measure at tag{%
\ifnum\eql at numbering@target@<\z@
\if at eqnsw
\eql at tagbox@make\eql at compose@measure
@@ -2856,7 +2761,7 @@
\eql at tagwidth@save
\fi
}
-\def\eql at align@measure{%
+\def\eql at columns@measure{%
\eql at totalcolumns@\z@
\eql at tagwidth@max@\z@
\let\eql at tagwidth@tab\@empty
@@ -2865,8 +2770,8 @@
\eql at measure@savecounters
\setbox\z@\vbox{%
\eql at numbering@measure at init
- \eql at measure@init\eql at align@measure at line@begin
- \eql at let@cr\eql at align@measure at line@end
+ \eql at measure@init\eql at columns@measure at line@begin
+ \eql at let@cr\eql at columns@measure at line@end
\tabskip\z at skip
\halign{%
&%
@@ -2882,7 +2787,7 @@
$%
}%
\global\eql at fieldwidth@\wd\eql at fieldbox@
- \eql at align@measure at field
+ \eql at columns@measure at field
&%
\global\advance\eql at column@\@ne
\setbox\eql at fieldbox@\hbox{%
@@ -2895,7 +2800,7 @@
\eql at hook@colout
$%
}%
- \eql at align@measure at field
+ \eql at columns@measure at field
\hfil
\crcr
\noalign{%
@@ -2906,13 +2811,13 @@
\ifvmode\else
\eql at punct@apply at block
\eql at hook@blockout
- \eql at align@measure at line@end
+ \eql at columns@measure at line@end
\cr
\fi
\noalign{%
\eql at hook@blockafter
}%
- \eql at align@completerow
+ \eql at columns@completerow
\cr
}%
\global\advance\eql at row@-\tw@
@@ -2943,10 +2848,10 @@
\global\setbox\thr@@\lastbox
}%
\ifhbox\thr@@
- \eql at align@colwidth at save
+ \eql at columns@colwidth at save
\repeat
}
-\def\eql at align@print at line@begin{%
+\def\eql at columns@print at line@begin{%
\global\eql at column@\z@
\global\eql at line@pos@\eql at marginleft@
\global\eql at line@width@\z@
@@ -2956,8 +2861,8 @@
\eql at numbering@print at line@begin
\eql at hook@linein
}
-\def\eql at align@print at field{%
- \dimen@\eql at align@colwidth at get\eql at column@\relax
+\def\eql at columns@print at field{%
+ \dimen@\eql at columns@colwidth at get\eql at column@\relax
\ifdim\wd\eql at fieldbox@>\z@
\ifdim\eql at line@width@=\z@
\eql at line@avail@\eql at line@pos@
@@ -2986,7 +2891,7 @@
\ifdim\dp\eql at fieldbox@>\eql at line@depth@
\global\eql at line@depth@\dp\eql at fieldbox@
\fi
- \dimen@\eql at align@colwidth at get\eql at column@\relax
+ \dimen@\eql at columns@colwidth at get\eql at column@\relax
\ifodd\eql at column@
\kern\dimen@
\else
@@ -2995,24 +2900,24 @@
\kern\dimen@
\fi
}
-\def\eql at align@print at trailright{%
+\def\eql at columns@print at trailright{%
&\omit
\global\advance\eql at column@\@ne
\setbox\eql at fieldbox@\hbox{%
\kern-\wd\eql at fieldbox@\box\eql at fieldbox@
}%
- \eql at align@print at field
+ \eql at columns@print at field
}
-\def\eql at align@print at line@end{%
+\def\eql at columns@print at line@end{%
\eql at punct@apply at line
\eql at hook@lineout
\ifodd\eql at column@
- \expandafter\eql at align@print at trailright
+ \expandafter\eql at columns@print at trailright
\fi
- \eql at align@completerow
- \eql at align@print at tag
+ \eql at columns@completerow
+ \eql at columns@print at tag
}
-\def\eql at align@print at tag{%
+\def\eql at columns@print at tag{%
\dimen@\eql at totalwidth@
\advance\dimen@\eql at colsep@
\kern-\dimen@
@@ -3028,12 +2933,12 @@
\kern\displaywidth
\fi
}
-\def\eql at align@print{%
- \eql at align@adjust
+\def\eql at columns@print{%
+ \eql at columns@adjust
\eql at display@init
\eql at numbering@print at init
- \eql at print@init\eql at align@print at line@begin
- \eql at let@cr\eql at align@print at line@end
+ \eql at print@init\eql at columns@print at line@begin
+ \eql at let@cr\eql at columns@print at line@end
\tabskip\eql at marginleft@
\halign{%
&%
@@ -3052,7 +2957,7 @@
\eql at tagging@mathaddlast
}%
\global\eql at fieldwidth@\wd\eql at fieldbox@
- \eql at align@print at field
+ \eql at columns@print at field
\tabskip\z at skip
&%
\global\advance\eql at column@\@ne
@@ -3071,7 +2976,7 @@
$%
\eql at tagging@mathaddlast
}%
- \eql at align@print at field
+ \eql at columns@print at field
\hfil
\tabskip\eql at colsep@\relax
\crcr
@@ -3085,7 +2990,7 @@
\ifvmode\else
\eql at punct@apply at block
\eql at hook@blockout
- \eql at align@print at line@end
+ \eql at columns@print at line@end
\cr
\fi
\noalign{%
@@ -3096,37 +3001,37 @@
}%
\eql at display@close
}
-\def\eql at align@adjust{%
+\def\eql at columns@adjust{%
\eql at colsepmin@\glueexpr\eql at colsepmin@val\relax
\ifodd\eql at totalcolumns@
\advance\eql at totalcolumns@\@ne
\fi
\ifnum\eql at totalcolumns@<\thr@@
- \let\eql at align@margins\eql at true
+ \let\eql at columns@margins\eql at true
\fi
- \eql at align@inter@\eql at totalcolumns@
- \divide\eql at align@inter@\tw@
- \advance\eql at align@inter@\m at ne
- \ifdefined\eql at flushleft
- \eql at flushleftmargin@\glueexpr\eql at flushleftmargin@val\relax
+ \eql at columns@inter@\eql at totalcolumns@
+ \divide\eql at columns@inter@\tw@
+ \advance\eql at columns@inter@\m at ne
+ \ifdefined\eql at layoutleft
+ \eql at layoutleftmargin@\glueexpr\eql at layoutleftmargin@val\relax
\else
\eql at adjust@tagmargin
\fi
\eql at colsep@\displaywidth
\advance\eql at colsep@-\eql at totalwidth@
- \ifdefined\eql at flushleft
- \advance\eql at colsep@-\eql at flushleftmargin@
+ \ifdefined\eql at layoutleft
+ \advance\eql at colsep@-\eql at layoutleftmargin@
\else
\advance\eql at colsep@-\eql at tagmargin@
- \ifdefined\eql at align@margins\else
+ \ifdefined\eql at columns@margins\else
\ifdim\eql at tagmargin@>\z@
\advance\eql at colsep@-\eql at tagsepmin@
\fi
\fi
\fi
- \count@\eql at align@inter@
- \ifdefined\eql at align@margins
- \ifdefined\eql at flushleft
+ \count@\eql at columns@inter@
+ \ifdefined\eql at columns@margins
+ \ifdefined\eql at layoutleft
\advance\count@\@ne
\else
\advance\count@\tw@
@@ -3141,26 +3046,26 @@
\eql at colsep@\dimen@
\fi
\fi
- \ifdefined\eql at flushleft
+ \ifdefined\eql at layoutleft
\ifdim\eql at colsep@=\eql at colsepmin@
\eql at marginleft@\displaywidth
\advance\eql at marginleft@-\eql at totalwidth@
- \advance\eql at marginleft@-\eql at align@inter@\eql at colsep@
- \ifdim\eql at marginleft@>\eql at flushleftmargin@
- \eql at marginleft@\eql at flushleftmargin@
+ \advance\eql at marginleft@-\eql at columns@inter@\eql at colsep@
+ \ifdim\eql at marginleft@>\eql at layoutleftmargin@
+ \eql at marginleft@\eql at layoutleftmargin@
\else
- \ifdim\eql at marginleft@<\eql at flushleftmarginmin@
- \eql at marginleft@\eql at flushleftmarginmin@
+ \ifdim\eql at marginleft@<\eql at layoutleftmarginmin@
+ \eql at marginleft@\eql at layoutleftmarginmin@
\fi
\fi
\else
- \eql at marginleft@\eql at flushleftmargin@
+ \eql at marginleft@\eql at layoutleftmargin@
\fi
\else
- \ifdefined\eql at align@margins
+ \ifdefined\eql at columns@margins
\eql at marginleft@\displaywidth
\advance\eql at marginleft@-\eql at totalwidth@
- \advance\eql at marginleft@-\eql at align@inter@\eql at colsep@
+ \advance\eql at marginleft@-\eql at columns@inter@\eql at colsep@
\ifdim\eql at marginleft@<\eql at tagmargin@
\eql at marginleft@\z@
\else
@@ -3182,9 +3087,9 @@
\fi
\fi
\ifdefined\eql at tagsleft
- \let\eql at align@adjust at test\eql at align@adjust at test@tagleft
+ \let\eql at columns@adjust at test\eql at columns@adjust at test@tagleft
\else
- \let\eql at align@adjust at test\eql at align@adjust at test@tagright
+ \let\eql at columns@adjust at test\eql at columns@adjust at test@tagright
\fi
\eql at row@\eql at totalrows@
\loop\ifnum\eql at row@>\z@
@@ -3196,15 +3101,15 @@
\fi
\fi
\ifdim\eql at tagwidth@>\z@
- \eql at align@adjust at calc
- \eql at align@adjust at test
+ \eql at columns@adjust at calc
+ \eql at columns@adjust at test
\fi
\advance\eql at row@\m at ne
\repeat
- \advance\eql at totalwidth@\eql at align@inter@\eql at colsep@
+ \advance\eql at totalwidth@\eql at columns@inter@\eql at colsep@
\advance\eql at totalwidth@\eql at marginleft@
}
-\def\eql at align@adjust at calc{%
+\def\eql at columns@adjust at calc{%
\eql at line@pos@\z@
\eql at column@\z@
\eql at line@avail@\eql at totalwidth@
@@ -3213,16 +3118,16 @@
\@tempcntb\z@
\edef\@tempb{\eql at fieldlength@get\eql at row@}%
\@for\@tempa:=\@tempb\do
- \eql at align@adjust at calc@col
+ \eql at columns@adjust at calc@col
\advance\@tempcnta\m at ne
\divide\@tempcnta\tw@
\advance\@tempcntb\m at ne
\divide\@tempcntb\tw@
}
-\def\eql at align@adjust at calc@col{%
+\def\eql at columns@adjust at calc@col{%
\advance\eql at column@\@ne
\@tempdima\@tempa\relax
- \dimen@\eql at align@colwidth at get\eql at column@\relax
+ \dimen@\eql at columns@colwidth at get\eql at column@\relax
\ifdim\@tempdima>\z@
\ifdim\eql at line@width@=\z@
\eql at line@avail@\eql at line@pos@
@@ -3242,7 +3147,7 @@
\fi
\advance\eql at line@pos@\dimen@
}
-\def\eql at align@adjust at test@tagright{%
+\def\eql at columns@adjust at test@tagright{%
\@tempdima\displaywidth
\advance\@tempdima-\eql at line@width@
\advance\@tempdima-\eql at tagwidth@
@@ -3250,22 +3155,22 @@
\advance\dimen@\@tempcntb\eql at colsep@
\ifdim\dimen@>\@tempdima
\dimen@\@tempcntb\eql at colsepmin@
- \ifdefined\eql at flushleft
- \advance\dimen@\eql at flushleftmarginmin@
+ \ifdefined\eql at layoutleft
+ \advance\dimen@\eql at layoutleftmarginmin@
\fi
\ifdim\dimen@>\@tempdima\else
- \eql at align@adjust at modify@tagright
+ \eql at columns@adjust at modify@tagright
\fi
\fi
}
-\def\eql at align@adjust at modify@tagright{%
+\def\eql at columns@adjust at modify@tagright{%
\ifnum\@tempcntb>\z@
\dimen@\@tempdima
\count@\@tempcntb
- \ifdefined\eql at flushleft
+ \ifdefined\eql at layoutleft
\advance\dimen at -\eql at marginleft@
\else
- \ifdefined\eql at align@margins
+ \ifdefined\eql at columns@margins
\advance\count@\@ne
\fi
\fi
@@ -3283,8 +3188,8 @@
\eql at marginleft@\dimen@
\fi
}
-\def\eql at align@adjust at test@tagleft{%
- \count@\eql at align@inter@
+\def\eql at columns@adjust at test@tagleft{%
+ \count@\eql at columns@inter@
\advance\count at -\@tempcnta
\@tempdima\eql at tagwidth@
\advance\@tempdima-\eql at line@avail@
@@ -3291,8 +3196,8 @@
\dimen@\eql at marginleft@
\advance\dimen@\@tempcnta\eql at colsep@
\ifdim\dimen@<\@tempdima
- \ifdefined\eql at flushleft
- \dimen@\eql at flushleftmarginmax@
+ \ifdefined\eql at layoutleft
+ \dimen@\eql at layoutleftmarginmax@
\else
\dimen@\displaywidth
\fi
@@ -3301,17 +3206,17 @@
\advance\dimen@\eql at totalwidth@
\advance\dimen@\@tempdima
\ifdim\dimen@>\displaywidth\else
- \eql at align@adjust at modify@tagleft
+ \eql at columns@adjust at modify@tagleft
\fi
\fi
\fi
}
-\def\eql at align@adjust at modify@tagleft{%
+\def\eql at columns@adjust at modify@tagleft{%
\ifnum\count@>\z@
\dimen@\displaywidth
\advance\dimen at -\eql at totalwidth@
\advance\dimen at -\@tempdima
- \ifdefined\eql at align@margins
+ \ifdefined\eql at columns@margins
\advance\count@\@ne
\fi
\divide\dimen@\count@
@@ -3320,7 +3225,7 @@
\dimen@\eql at colsepmin@
\fi
\advance\dimen at -\eql at colsep@
- \advance\eql at marginleft@-\eql at align@inter@\dimen@
+ \advance\eql at marginleft@-\eql at columns@inter@\dimen@
\advance\eql at colsep@\dimen@
\fi
\fi
@@ -3446,6 +3351,113 @@
\eql at indent@\glueexpr\eql at indent@val\relax
\eql at tagsepmin@\glueexpr\eql at tagsepmin@val\relax
}
+\def\eql at single@cr{%
+ \eql at error{Cannot use `\string\\' within display equation.
+ Please switch to equations environment}%
+}
+\def\eql at single@start{%
+ \eql at halign@catchprevdepth
+ \eql at tagging@start
+ \eql at dollardollar@begin
+ \eql at numbering@eval at mode
+ \let\eql at numbering@subeq at use\eql at false
+ \eql at stack@save at single
+ \eql at numbering@single at init
+ \ifdefined\eql at single@native
+ \let\eql at single@start at sel\eql at single@start at native
+ \let\eql at single@end at sel\eql at single@end at native
+ \let\raisetag\eql at raisetag@default
+ \else
+ \let\eql at single@start at sel\eql at single@start at print
+ \let\eql at single@end at sel\eql at single@end at print
+ \fi
+ \ifdefined\eql at single@crerror\else
+ \let\\\eql at single@cr
+ \fi
+ \eql at single@start at sel
+}
+\def\eql at single@end{%
+ \eql at punct@apply at block
+ \eql at hook@eqout
+ \eql at single@end at sel
+ \eql at stack@restore
+ \eql at dollardollar@end
+ \eql at tagging@end
+ \eql at halign@leave
+}
+\def\eql at single@main{%
+ \expandafter\eql at single@start
+ \eql at scan@body
+ \eql at single@end
+}
+\def\eql at mode@equation{%
+ \ifdefined\eql at single@doscan
+ \let\eql at equations@main\eql at single@main
+ \let\eql at equations@end\@empty
+ \else
+ \let\eql at equations@main\@undefined
+ \let\eql at equations@end\eql at single@end
+ \fi
+}
+\let\eql at multi@mode at lines\eql at false
+\def\eql at multi@main{%
+ \eql at halign@catchprevdepth
+ \eql at tagging@start
+ \eql at dollardollar@begin
+ \eql at numbering@eval at mode
+ \eql at stack@save at multi
+ \ifdefined\eql at subequations@active
+ \let\eql at numbering@subeq at use\eql at false
+ \fi
+ \ifdefined\eql at numbering@subeq at use
+ \eql at numbering@subeq at init
+ \fi
+ \let\intertext\eql at intertext
+ \let\endintertext\endeql at intertext
+ \let\shoveleft\eql at adjust@alignleft
+ \let\shovecenter\eql at adjust@aligncenter
+ \let\shoveright\eql at adjust@alignright
+ \ifdefined\eql at multi@mode at lines
+ \expandafter\eql at lines@measure
+ \else
+ \ifdefined\eql at ampproof@active
+ \eql at ampproof
+ \fi
+ \expandafter\eql at columns@measure
+ \fi
+ \ifx\eql at numbering@subeq at use\@ne
+ \eql at numbering@subeq at revert
+ \fi
+ \ifdefined\eql at multi@mode at lines\else
+ \ifdefined\eql at multi@linesfallback
+ \ifnum\eql at totalcolumns@=\@ne
+ \let\eql at multi@mode at lines\eql at true
+ \fi
+ \fi
+ \fi
+ \ifdefined\eql at multi@mode at lines
+ \expandafter\eql at lines@print
+ \else
+ \expandafter\eql at columns@print
+ \fi
+ \ifdefined\eql at numbering@subeq at use
+ \eql at numbering@subeq at close
+ \fi
+ \eql at stack@restore
+ \eql at dollardollar@end
+ \eql at tagging@end
+ \eql at halign@leave
+}
+\def\eql at mode@columns{%
+ \let\eql at equations@main\eql at multi@main
+ \let\eql at equations@end\@empty
+ \let\eql at multi@mode at lines\eql at false
+}
+\def\eql at mode@lines{%
+ \let\eql at equations@main\eql at multi@main
+ \let\eql at equations@end\@empty
+ \let\eql at multi@mode at lines\eql at true
+}
\newenvironment{equations}{%
\ifmmode
\eql at error@mathmode{\string\begin{\@currenvir}}%
@@ -3516,31 +3528,6 @@
\end{equations at ang}%
\ignorespaces
}
-\DeclareRobustCommand{\eql at eqref}[1]{\textup{\eql at tag@boxedform{\ref{#1}}}}
-\DeclareRobustCommand{\eql at numberwithin}[3][\arabic]{%
- \@ifundefined{c@#2}{\@nocounterr{#2}}{%
- \@ifundefined{c@#3}{\@nocounterr{#3}}{%
- \ifdefined\HyOrg at addtoreset
- \HyOrg at addtoreset{#2}{#3}%
- \else
- \@addtoreset{#2}{#3}%
- \fi
- \expandafter\xdef\csname the#2\endcsname{%
- \expandafter\noexpand\csname the#3\endcsname.\noexpand#1{#2}}%
- \ifdefined\theHequation
- \expandafter\xdef\csname theH#2\endcsname{%
- \expandafter\noexpand
- \csname the\@ifundefined{theH#3}{}H#3\endcsname.%
- \noexpand\arabic{#2}}%
- \fi
- }%
- }%
-}
-\DeclareRobustCommand{\eql at allowdisplaybreaks}[1][4]{%
- \eqnlinesset{allowbreaks=#1}%
-}
-\newcommand{\eql at notag}{\nonumber}
-\newcommand{\eql at thetag}{\leavevmode\eql at tag@boxedform}
\RequirePackage{keyval}
\def\eql at decide@select#1#2#3#4{%
\def\@tempa{#3}%
@@ -3574,8 +3561,16 @@
\eql at decide@select{#1}{#2}{#3}{%
{,abovebelow,both,tb}{#4#5},%
{above,top,t}{#4},%
- {below,bottom,b}{#5}}%
- }
+ {below,bottom,b}{#5}}}
+\def\eql at decide@situation#1#2#3#4{%
+ \eql at decide@select{#1}{#2}{#3}{%
+ {{long}{\def#4{0}}},%
+ {{short}{\def#4{1}}},%
+ {{cont}{\def#4{2}}},%
+ {{par}{\def#4{3}}},%
+ {{top}{\def#4{4}}},%
+ {{noskip}{\def#4{5}}},%
+ {{medskip}{\def#4{6}}}}}
\def\eql at define@key#1#2{%
\eql at ifnextchar@loose[%]
{\eql at definekey@opt{#1}{#2}}%
@@ -3607,77 +3602,8 @@
}
\newcommand{\eqnaddopt}[1]{%
\expandafter\def\expandafter\eql at nextopt\expandafter{\eql at nextopt,#1}}
-\def\eql at defaults@classic{%
- \def\eql at tagsepmin@val{.5\fontdimen6\textfont\tw@}%
- \def\eql at colsepmax@val{.5\maxdimen}%
- \def\eql at spread{\jot}%
- \let\eql at tagmargin@val\@undefined
- \eql at tagmargin@ratio@\p@
- \def\eql at tagmargin@threshold{0.5}%
- \def\eql at flushleftmargin@val{\leftmargini}%
- \let\eql at display@height\@undefined
- \let\eql at display@depth\@undefined
- \eql at skip@mode at short@\tw@
- \eql at skip@mode at cont@\@ne
- \eql at skip@mode at par@\z@
- \eql at skip@mode at top@\z@
- \def\eql at skip@long at above{\abovedisplayskip}%
- \def\eql at skip@long at below{\belowdisplayskip}%
- \def\eql at skip@short at above{\abovedisplayshortskip}%
- \def\eql at skip@short at below{\belowdisplayshortskip}%
- \def\eql at skip@cont at above{\eql at skip@short at above}%
- \def\eql at skip@cont at below{\eql at skip@short at below}%
- \def\eql at skip@par at above{\eql at skip@long at above}%
- \def\eql at skip@par at below{\eql at skip@long at below}%
- \def\eql at skip@top at above{\eql at skip@long at above}%
- \def\eql at skip@top at below{\eql at skip@long at below}%
- \def\eql at skip@med at above{\abovedisplayskip/2}%
- \def\eql at skip@med at below{\belowdisplayskip/2}%
- \def\eql at skip@medtag at above{\z at skip}%
- \def\eql at skip@medtag at below{\z at skip}%
- \def\eql at skip@tag at above{\z at skip}%
- \def\eql at skip@tag at below{\z at skip}%
-}
-\def\eql at defaults@eqnlines{%
- \def\eql at tagsepmin@val{.5em}%
- \def\eql at colsepmax@val{2em}%
- \def\eql at spread{0.2\normalbaselineskip}%
- \let\eql at tagmargin@val\@undefined
- \eql at tagmargin@ratio at .334\p@
- \def\eql at tagmargin@threshold{0.5}%
- \def\eql at flushleftmargin@val{\leftmargini}%
- \def\eql at display@height{\ht\eql at strutbox@}%
- \def\eql at display@depth{\dp\eql at strutbox@}%
- \eql at skip@mode at short@\@ne
- \eql at skip@mode at cont@\z@
- \eql at skip@mode at par@\z@
- \eql at skip@mode at top@\z@
- \def\eql at skip@long at above{0.75\normalbaselineskip
- \@plus0.25\normalbaselineskip\@minus0.4\normalbaselineskip}%
- \let\eql at skip@long at below\eql at skip@long at above
- \def\eql at skip@short at above{0.0\normalbaselineskip
- \@plus0.25\normalbaselineskip}%
- \def\eql at skip@short at below{0.0\normalbaselineskip
- \@plus0.25\normalbaselineskip}%
- \def\eql at skip@med at above{0.4\normalbaselineskip
- \@plus0.2\normalbaselineskip\@minus0.2\normalbaselineskip}%
- \let\eql at skip@med at below\eql at skip@med at above
- \def\eql at skip@cont at above{\z at skip}%
- \def\eql at skip@cont at below{\eql at skip@long at below}%
- \def\eql at skip@par at above{\eql at skip@long at above}%
- \def\eql at skip@par at below{\eql at skip@long at below}%
- \def\eql at skip@top at above{\z at skip}%
- \def\eql at skip@top at below{\z at skip}%
- \def\eql at skip@tag at above{\z at skip}%
- \def\eql at skip@tag at below{\z at skip}%
- \def\eql at skip@partag at above{\z at skip}%
- \def\eql at skip@partag at below{\z at skip}%
- \def\eql at skip@medtag at above{\z at skip}%
- \def\eql at skip@medtag at below{\z at skip}%
-}
-\eql at defaults@eqnlines
-\eql at define@key{equationsbox}{gathered,gather,ga,lines,lined,ln,\string~}[]{%
- \eql at mode@lined}
+\eql at define@key{equationsbox}{gathered,gather,ga,lines,ln,\string~}[]{%
+ \eql at mode@stacked}
\eql at define@key{equationsbox}{aligned,align,al,columns,col,@}[]{%
\eql at mode@aligned}
\eql at define@key{equationsbox}{top,t}[]{\let\eql at box@box\vtop}
@@ -3685,13 +3611,13 @@
\eql at define@key{equationsbox}{bottom,b}[]{\let\eql at box@box\vbox}
\eql at define@key{equationsbox}{colsep}{\def\eql at box@colsep{#1}}
\eql at define@key{equations}{equation,eq,single,1}[]{\eql at mode@equation}
-\eql at define@key{equations}{gathered,gather,ga,lines,lined,ln,\string~}[]{%
+\eql at define@key{equations}{gathered,gather,ga,lines,ln,\string~}[]{%
\eql at mode@lines}
\eql at define@key{equations}{aligned,align,al,columns,col,@}[]{%
- \eql at mode@align}
+ \eql at mode@columns}
\eql at define@key{equations}{native}[true]{%
\eql at decide@bool{#3}{#2}{#1}\eql at single@native%
- \ifdefined\eql at single@native\let\eql at flushleft\eql at false\fi}
+ \ifdefined\eql at single@native\let\eql at layoutleft\eql at false\fi}
\eql at define@key{setup}{native}[true]{%
\eql at decide@bool{#3}{#2}{#1}\eql at single@native}
\eql at define@key{setup}{scanequation}[true]{%
@@ -3701,7 +3627,7 @@
\eql at define@key{setup}{angopt}[]{%
\def\eql at equations@ang at opt{align,#1}}
\def\eql at keycat{equations,equationsbox,setup}
-\eql at define@key\eql at keycat{spread}[\jot]{\def\eql at spread{#1}}
+\eql at define@key\eql at keycat{spread}{\def\eql at spread@val{#1}}
\eql at define@key\eql at keycat{strut}[true]{\eql at decide@if{#3}{#2}{#1}%
{\let\eql at strut@field\eql at strut}{\let\eql at strut@field\relax}}
\eql at define@key\eql at keycat{struttag}[true]{\eql at decide@if{#3}{#2}{#1}%
@@ -3841,42 +3767,36 @@
\eql at define@key{setup}{abovecontskip}{%
\def\eql at skip@cont at above{#1}}
\eql at define@key{setup}{abovecontskip*}[]{%
- \def\eql at skip@cont at above{\eql at spread-\eql at skip@long at below}}
+ \def\eql at skip@cont at above{\eql at spread@val-\eql at skip@long at below}}
\eql at define@key{setup}{belowcontskip}{%
\def\eql at skip@cont at below{#1}}
\eql at define@key{setup}{shortmode}{%
\eql at decide@select{#3}{#2}{#1}{%
- {{off,never,no}{\eql at skip@mode at short@\z@}},%
- {{above,neverbelow,notbelow,belowoff}{\eql at skip@mode at short@\@ne}},%
- {{belowone,belowsingle}{\eql at skip@mode at short@\tw@}},%
- {{belowall,always,on}{\eql at skip@mode at short@\thr@@}}}}
+ {{off,never,no}{\def\eql at skip@mode at short{0}}},%
+ {{above,neverbelow,notbelow,belowoff}{\def\eql at skip@mode at short{1}}},%
+ {{belowone,belowsingle}{\def\eql at skip@mode at short{2}}},%
+ {{belowall,always,on}{\def\eql at skip@mode at short{3}}}}}
+\eql at define@key{setup}{abovecontmode}{%
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at cont@above}
\eql at define@key{setup}{belowcontmode}{%
- \eql at decide@select{#3}{#2}{#1}{%
- {{long}{\eql at skip@mode at cont@\z@}},%
- {{short}{\eql at skip@mode at cont@\@ne}},%
- {{cont}{\eql at skip@mode at cont@\tw@}}}}
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at cont@below}
+\eql at define@key{setup}{aboveparmode}{%
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at par@above}
\eql at define@key{setup}{belowparmode}{%
- \eql at decide@select{#3}{#2}{#1}{%
- {{long}{\eql at skip@mode at par@\z@}},%
- {{short}{\eql at skip@mode at par@\@ne}},%
- {{cont}{\eql at skip@mode at par@\tw@}},%
- {{par}{\eql at skip@mode at par@\thr@@}}}}
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at par@below}
+\eql at define@key{setup}{abovetopmode}{%
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at top@above}
\eql at define@key{setup}{belowtopmode}{%
- \eql at decide@select{#3}{#2}{#1}{%
- {{long}{\eql at skip@mode at top@\z@}},%
- {{short}{\eql at skip@mode at top@\@ne}},%
- {{cont}{\eql at skip@mode at top@\tw@}},%
- {{par}{\eql at skip@mode at top@\thre@@}},%
- {{top}{\eql at skip@mode at top@4\relax}}}}
+ \eql at decide@situation{#3}{#2}{#1}\eql at skip@mode at top@below}
\def\eql at keycat{equations,subequations}
\eql at define@key\eql at keycat{label}{\eql at blocklabel@set{#1}}
\eql at define@key\eql at keycat{tag}{\eql at blocktag@set{#1}}
\eql at define@key\eql at keycat{tag*}{\eql at blocktag@setstar{#1}}
\def\eql at keycat{equations,setup}
-\eql at define@key\eql at keycat{tagmargin}{\def\eql at tagmargin@val{#1}}
+\eql at define@key\eql at keycat{tagmargin}[]{\def\eql at tagmargin@val{#1}
+ \ifx\eql at tagmargin@val\@empty\let\eql at tagmargin@val\@undefined\fi}
\eql at define@key\eql at keycat{tagmargin*}{%
\settowidth\dimen@{#1}\edef\eql at tagmargin@val{\the\dimen@}}
-\eql at define@key\eql at keycat{tagmargincalc}[]{\let\eql at tagmargin@val\@undefined}
\eql at define@key\eql at keycat{tagmarginratio}{%
\eql at tagmargin@ratio@\dimexpr#1pt\relax}
\eql at define@key\eql at keycat{tagmarginthreshold}{%
@@ -3885,20 +3805,26 @@
\eql at define@key\eql at keycat{mintagwidth}{%
\settowidth\dimen@{#1}\edef\eql at tagsepmin@val{\the\dimen@}}
\eql at define@key\eql at keycat{mintagwidth*}{\settowidth\eql at tagwidthmin@{#1}}
-\eql at define@key{setup}{taglayout}{\eql at tag@setbox{#1}}
-\eql at define@key{setup}{taglayout*}{\eql at tag@setbox@{#1}}
+\eql at define@key{setup}{tagbox,taglayout}{\eql at tag@setbox{#1}}
+\eql at define@key{setup}{tagbox,taglayout*}{\eql at tag@setbox@{#1}}
\eql at define@key{setup}{tagform}{\eql at tag@setform#1}
\eql at define@key{setup}{tagform*}{\eql at tag@setform@{#1}}
-\eql at define@key{setup}{subeqtemplate}{\def\eql at subequations@template{#1}}
+\eql at define@key{setup}{subeqtemplate}{%
+ \def\eql at subequations@template####1####2{#1}%
+ \expandafter\def\expandafter\eql at subequations@template\expandafter{%
+ \eql at subequations@template\theparentequation{equation}}%
+}
\eql at define@key{setup}{autolabel}[true]{%
- \eql at decide@bool{#3}{#2}{#1}\eql at autolabel}
+ \eql at decide@bool{#3}{#2}{#1}\eql at numbering@autolabel}
\eql at define@key{setup}{autotag}[true]{%
- \eql at decide@bool{#3}{#2}{#1}\eql at autotag}
+ \eql at decide@bool{#3}{#2}{#1}\eql at numbering@autotag}
\def\eql at keycat{equations,setup}
\eql at define@key\eql at keycat{numberline,numline,n}[all]{%
\eql at numbering@set{##1}}
-\eql at define@key\eql at keycat{nonumber,nn,*}[]{\let\eql at numbering@active\eql at false}
-\eql at define@key\eql at keycat{donumber,dn,!}[]{\let\eql at numbering@active\eql at true}
+\eql at define@key\eql at keycat{nonumber,nn,*}[]{%
+ \let\eql at numbering@active\eql at false}
+\eql at define@key\eql at keycat{donumber,dn,!}[]{%
+ \let\eql at numbering@active\eql at true}
\eql at define@key\eql at keycat{number,num}[true]{%
\eql at decide@bool{#3}{#2}{#1}\eql at numbering@active}
\eql at define@key\eql at keycat{tagsleft,leqno}[]{\let\eql at tagsleft\eql at true}
@@ -3909,19 +3835,19 @@
{{left,l}{\let\eql at tagsleft\eql at true}}}}
\def\eql at keycat{equations,setup}
\eql at define@key\eql at keycat{layout}{\eql at decide@select{#3}{#2}{#1}{%
- {{center,c}{\let\eql at flushleft\eql at false}},%
- {{left,l}{\let\eql at flushleft\eql at true}}}}
-\eql at define@key\eql at keycat{center}[]{\let\eql at flushleft\eql at false}
-\eql at define@key\eql at keycat{flushleft,left}[]{\let\eql at flushleft\eql at true}
-\eql at define@key\eql at keycat{leftmargin}{\def\eql at flushleftmargin@val{#1}}
+ {{center,c}{\let\eql at layoutleft\eql at false}},%
+ {{left,l}{\let\eql at layoutleft\eql at true}}}}
+\eql at define@key\eql at keycat{center}[]{\let\eql at layoutleft\eql at false}
+\eql at define@key\eql at keycat{flushleft,left}[]{\let\eql at layoutleft\eql at true}
+\eql at define@key\eql at keycat{leftmargin}{\def\eql at layoutleftmargin@val{#1}}
\eql at define@key\eql at keycat{leftmargin*}{%
- \settowidth\dimen@{#1}\edef\eql at flushleftmargin@val{\the\dimen@}}
+ \settowidth\dimen@{#1}\edef\eql at layoutleftmargin@val{\the\dimen@}}
\eql at define@key\eql at keycat{minleftmargin}{%
- \eql at flushleftmarginmin@\glueexpr#1\relax}
+ \eql at layoutleftmarginmin@\glueexpr#1\relax}
\eql at define@key\eql at keycat{maxleftmargin}{%
- \eql at flushleftmarginmax@\glueexpr#1\relax}
+ \eql at layoutleftmarginmax@\glueexpr#1\relax}
\eql at define@key\eql at keycat{maxleftmargin*}[]{%
- \eql at flushleftmarginmax@.5\maxdimen}
+ \eql at layoutleftmarginmax@.5\maxdimen}
\def\eql at keycat{equations,setup}
\eql at define@key\eql at keycat{marginbadness}{\eql at marginbadness@#1\relax}
\eql at define@key\eql at keycat{maxbadness}{\eql at maxbadness@#1\relax}
@@ -3929,7 +3855,7 @@
\eql at define@key\eql at keycat{maxcolsep}{\def\eql at colsepmax@val{#1}}
\eql at define@key\eql at keycat{maxcolsep*}[]{\def\eql at colsepmax@val{.5\maxdimen}}
\eql at define@key\eql at keycat{margins}[true]{%
- \eql at decide@bool{#3}{#2}{#1}\eql at align@margins}
+ \eql at decide@bool{#3}{#2}{#1}\eql at columns@margins}
\def\eql at keycat{equationsbox,setup}
\eql at define@key\eql at keycat{margin}{%
\def\eql at box@marginleft{#1}\def\eql at box@marginright{#1}}
@@ -3953,7 +3879,7 @@
\def\eql at keycat{equations,equationsbox,setup}
\eql at define@key\eql at keycat{classout}{\eql at class@innerleft at set{#1}}
\eql at define@key\eql at keycat{classin}{\eql at class@innerright at set{#1}}
-\eql at define@key\eql at keycat{classin*}{\eql at class@innerlead at set{#1}}
+\eql at define@key\eql at keycat{classlead,classin*}{\eql at class@innerlead at set{#1}}
\eql at define@key\eql at keycat{ampeq}[]{\eql at class@ampeq}
\eql at define@key\eql at keycat{eqamp}[]{\eql at class@eqamp}
\eql at define@key\eql at keycat{class}{\eql at decide@select{#3}{#2}{#1}{%
@@ -4005,6 +3931,80 @@
\eql at define@key{setup}{eqref}[true]{%
\eql at error@packageoption{#2}%
\eql at decide@bool{#3}{#2}{#1}\eql at provide@opt at eqref}
+\def\eql at defaults@classic{%
+ \eqnlinesset{mintagsep={.5\fontdimen6\textfont2\relax}}%
+ \eqnlinesset{maxcolsep*}%
+ \eqnlinesset{spread={\jot}}%
+ \eqnlinesset{tagmargin}%
+ \eqnlinesset{tagmarginratio=1}%
+ \eqnlinesset{tagmarginthreshold=0.5}%
+ \eqnlinesset{leftmargin={\leftmargini}}%
+ \eqnlinesset{displayheight*}%
+ \eqnlinesset{displaydepth*}%
+ \eqnlinesset{shortmode=belowsingle}%
+ \eqnlinesset{abovecontmode=short}%
+ \eqnlinesset{belowcontmode=short}%
+ \eqnlinesset{aboveparmode=long}%
+ \eqnlinesset{belowparmode=long}%
+ \eqnlinesset{abovetopmode=long}%
+ \eqnlinesset{belowtopmode=long}%
+ \eqnlinesset{abovelongskip={\abovedisplayskip}}%
+ \eqnlinesset{belowlongskip={\belowdisplayskip}}%
+ \eqnlinesset{aboveshortskip={\abovedisplayshortskip}}%
+ \eqnlinesset{belowshortskip={\belowdisplayshortskip}}%
+ \eqnlinesset{abovemedskip={.5\abovedisplayskip}}%
+ \eqnlinesset{belowmedskip={.5\belowdisplayskip}}%
+ \eqnlinesset{abovecontskip=0pt}%
+ \eqnlinesset{belowcontskip=0pt}%
+ \eqnlinesset{aboveparskip=0pt}%
+ \eqnlinesset{belowparskip=0pt}%
+ \eqnlinesset{abovetopskip=0pt}%
+ \eqnlinesset{belowtopskip=0pt}%
+ \eqnlinesset{abovetagskip=0pt}%
+ \eqnlinesset{belowtagskip=0pt}%
+ \eqnlinesset{abovemedtagskip=0pt}%
+ \eqnlinesset{belowmedtagskip=0pt}%
+ \eqnlinesset{abovepartagskip=0pt}%
+ \eqnlinesset{belowpartagskip=0pt}%
+}
+\def\eql at defaults@eqnlines{%
+ \eqnlinesset{mintagsep=.5em}%
+ \eqnlinesset{maxcolsep=2em}%
+ \eqnlinesset{spread={0.2\normalbaselineskip}}%
+ \eqnlinesset{tagmargin}%
+ \eqnlinesset{tagmarginratio=.334}%
+ \eqnlinesset{tagmarginthreshold=0.5}%
+ \eqnlinesset{leftmargin={\leftmargini}}%
+ \eqnlinesset{displayheight}%
+ \eqnlinesset{displaydepth}%
+ \eqnlinesset{shortmode=above}%
+ \eqnlinesset{abovecontmode=noskip}%
+ \eqnlinesset{belowcontmode=long}%
+ \eqnlinesset{aboveparmode=long}%
+ \eqnlinesset{belowparmode=long}%
+ \eqnlinesset{abovetopmode=noskip}%
+ \eqnlinesset{belowtopmode=long}%
+ \eqnlinesset{longskip={0.75\normalbaselineskip
+ plus 0.25\normalbaselineskip minus 0.4\normalbaselineskip}}%
+ \eqnlinesset{aboveshortskip={0.0\normalbaselineskip
+ plus 0.25\normalbaselineskip}}%
+ \eqnlinesset{belowshortskip={0.0\normalbaselineskip
+ plus 0.25\normalbaselineskip}}%
+ \eqnlinesset{medskip={0.4\normalbaselineskip
+ plus 0.2\normalbaselineskip minus 0.2\normalbaselineskip}}%
+ \eqnlinesset{abovecontskip=0pt}%
+ \eqnlinesset{belowcontskip=0pt}%
+ \eqnlinesset{aboveparskip=0pt}%
+ \eqnlinesset{belowparskip=0pt}%
+ \eqnlinesset{abovetopskip=0pt}%
+ \eqnlinesset{belowtopskip=0pt}%
+ \eqnlinesset{abovetagskip=0pt}%
+ \eqnlinesset{belowtagskip=0pt}%
+ \eqnlinesset{abovemedtagskip=0pt}%
+ \eqnlinesset{belowmedtagskip=0pt}%
+ \eqnlinesset{abovepartagskip=0pt}%
+ \eqnlinesset{belowpartagskip=0pt}%
+}
\newenvironment{eql at gathered}
{\eqnaddopt{lines}\equationsbox}{\endequationsbox}
\newenvironment{eql at multlined}
@@ -4021,7 +4021,7 @@
\newenvironment{eql at align}
{\eqnaddopt{align}\equations}{\endequations}
\newenvironment{eql at flalign}
- {\eqnaddopt{align,margins=false}\equations}{\endequations}
+ {\eqnaddopt{align,margins=false,maxcolsep*}\equations}{\endequations}
\newenvironment{eql at equation*}
{\eqnaddopt{nonumber}\eql at equation}{\endequations}
\newenvironment{eql at gather*}
@@ -4266,11 +4266,6 @@
\eql at define@key{provide}{sqr}[]{\eql at provide@sqr}
\eql at define@key{provide}{ang}[]{\eql at provide@ang}
\eql at define@key{provide}{eqref}[]{\eql at provide@cmd{eqref}{#1}}
-\eql at define@key{provide}{notag}[]{\eql at provide@cmd{notag}{#1}}
-\eql at define@key{provide}{thetag}[]{\eql at provide@cmd{thetag}{#1}}
-\eql at define@key{provide}{allowdisplaybreaks}[]{%
- \eql at provide@cmd{allowdisplaybreaks}{#1}}
-\eql at define@key{provide}{numberwithin}[]{\eql at provide@cmd{numberwithin}{#1}}
\eql at define@key{provide}{tagform}[]{%
\def\tagform@##1{\maketag@@@{\eql at tag@form{#1}}}}
\eql at define@key{provide}{maketag}[]{%
@@ -4283,6 +4278,9 @@
\DeclareOption{leqno}{\eqnlinesset{tagsleft}}
\DeclareOption{fleqn}{\eqnlinesset{left}}
\DeclareOption*{\expandafter\eqnlinesset\expandafter{\CurrentOption}}
+\eql at defaults@eqnlines
+\eql at mode@columns
+\eql at mode@aligned
\ProcessOptions
\def\eql at error@packageoption#1{%
\eql at error{may only use `#1' as a package option}%
More information about the tex-live-commits
mailing list.