texlive[43071] Master/texmf-dist: breqn (28jan17)
commits+karl at tug.org
commits+karl at tug.org
Sat Jan 28 23:59:01 CET 2017
Revision: 43071
http://tug.org/svn/texlive?view=revision&revision=43071
Author: karl
Date: 2017-01-28 23:59:01 +0100 (Sat, 28 Jan 2017)
Log Message:
-----------
breqn (28jan17)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/breqn/breqn.pdf
trunk/Master/texmf-dist/doc/latex/breqn/flexisym.pdf
trunk/Master/texmf-dist/doc/latex/breqn/mathstyle.pdf
trunk/Master/texmf-dist/source/latex/breqn/breqn.dtx
trunk/Master/texmf-dist/source/latex/breqn/flexisym.dtx
trunk/Master/texmf-dist/source/latex/breqn/mathstyle.dtx
trunk/Master/texmf-dist/tex/latex/breqn/breqn.sty
trunk/Master/texmf-dist/tex/latex/breqn/cmbase.sym
trunk/Master/texmf-dist/tex/latex/breqn/flexisym.sty
trunk/Master/texmf-dist/tex/latex/breqn/mathpazo.sym
trunk/Master/texmf-dist/tex/latex/breqn/mathptmx.sym
trunk/Master/texmf-dist/tex/latex/breqn/mathstyle.sty
trunk/Master/texmf-dist/tex/latex/breqn/msabm.sym
Added Paths:
-----------
trunk/Master/texmf-dist/doc/latex/breqn/README.md
Added: trunk/Master/texmf-dist/doc/latex/breqn/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/breqn/README.md (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/breqn/README.md 2017-01-28 22:59:01 UTC (rev 43071)
@@ -0,0 +1,43 @@
+# The BREQN packages
+
+This is the latest repository for the breqn package, originally developed by Michael J. Downes and later taken over by Morten Høgholm.
+
+The version of the package here will be used as the source for current CTAN releases.
+
+Internal updates are planned but no major development is expected. Contributors welcome — if you dare.
+
+Feedback should be directed to the Issue Tracker at:
+ <https://github.com/wspr/breqn/issues>
+
+## Installation
+
+Running TeX on each dtx file extracts the runtime files. See the dtx
+files for details.
+
+## The code
+
+### breqn
+
+The breqn package facilitates automatic line-breaking of displayed
+math expressions. The package was originally developed by Michael
+J. Downes.
+
+### flexisym
+
+This package turns math symbols into macros.
+Is is required by breqn so that breqn can make intelligent decisions
+with respect to line-breaking and other details.
+
+### mathstyle
+
+Ensures uniform syntax for math subscript (_) and superscript (^)
+operations so that they always take exactly one argument.
+Grants access to the current mathstyle which eases several tasks such
+as avoiding the many pitfalls of \mathchoice and \mathpalette.
+This package is used by flexisym.
+
+## Release notes
+
+* v0.98e (2017/01/27)
+
+ * Fix in `\mathchoice` to allow use under recent versions of LuaTeX
Modified: trunk/Master/texmf-dist/doc/latex/breqn/breqn.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/breqn/flexisym.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/breqn/mathstyle.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/breqn/breqn.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/breqn/breqn.dtx 2017-01-28 01:05:31 UTC (rev 43070)
+++ trunk/Master/texmf-dist/source/latex/breqn/breqn.dtx 2017-01-28 22:59:01 UTC (rev 43071)
@@ -4,6 +4,7 @@
% Copyright (C) 2007-2008 by Morten Hoegholm
% Copyright (C) 2007-2014 by Lars Madsen
% Copyright (C) 2007-2014 by Will Robertson
+% Copyright (C) 2010-2017 by Joseph Wright
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -77,7 +78,8 @@
Copyright (C) 1997-2003 by Michael J. Downes
Copyright (C) 2007-2008 by Morten Hoegholm
Copyright (C) 2007-2014 by Lars Madsen
-Copyright (C) 2007-2014 by Will Robertson
+Copyright (C) 2007-2017 by Will Robertson
+Copyright (C) 2010-2017 by Joseph Wright
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -122,7 +124,7 @@
%</ignore>
%<*driver>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{breqn.drv}[2015/08/11 v0.98d breqn]
+\ProvidesFile{breqn.drv}[2017/01/27 0.98e breqn]
\documentclass{ltxdoc}
\CodelineIndex
\EnableCrossrefs
@@ -147,7 +149,7 @@
\makeatletter
{\catcode`\%=12
- \long\gdef\@gobble at percent@space#1{\ifx
+ \long\gdef\@gobble at percent@space#1{\ifx
#1%\expandafter\@gobble\else\expandafter#1\fi}}
@@ -157,7 +159,7 @@
\newcounter{xio}
\newenvironment{xio}{% example input and output
\par\addvspace\bigskipamount
- \hbox{\itshape
+ \hbox{\itshape
\refstepcounter{xio}\kern-\p@ Example \thexio}\@nobreaktrue
\immediate\openout\tmp at out\jobname.tmp \relax
\begingroup
@@ -240,13 +242,13 @@
% \maketitle
% \begin{abstract}
% The \pkg{breqn} package facilitates automatic line-breaking of
-% displayed math expressions.
+% displayed math expressions.
% \end{abstract}
%
-%
+%
% \tableofcontents
-%
%
+%
% \part{User's guide}
%
% \section{A bit of history}
@@ -275,8 +277,8 @@
% The recommended way of loading the \pkg{breqn} package is to load it
% \emph{after} other packages dealing with math, \ie, after
% \pkg{amsmath}, \pkg{amssymb}, or packages such as \pkg{mathpazo} or
-% \pkg{mathptmx}.
-%
+% \pkg{mathptmx}.
+%
% The \pkg{flexisym} package (described in section \vref{flexisym}) is
% required by \pkg{breqn} and ensures the math symbols are set up
% correctly. By default \pkg{breqn} loads it with support for Computer
@@ -424,7 +426,7 @@
%
% Not that this doesn't introduce new and interesting problems of its
% own---for example, you don't want to put usepackage statements
-% after flexisym for any package that refers to, e.g., \verb'^^J' or
+% after flexisym for any package that refers to, e.g., \verb'^^J' or
% \verb'^^M'
% internally (too bad that the \LaTeX\ package loading code does not
% include automatic defenses to ensure normal catcodes in the interior of
@@ -445,7 +447,7 @@
% illustrations, and I have undoubtedly overlooked more than a few errors.
%
% \item[group alignment] The algorithm for doing alignment
-% of mathrel symbols across equations in a \env{dgroup} environment
+% of mathrel symbols across equations in a \env{dgroup} environment
% needs work. Currently the standard and \opt{noalign} alternatives
% produce the same output.
%
@@ -495,8 +497,8 @@
% \begin{verbatim}
% \generate{\file{breqn.sty}{\from{breqn.dtx}{package,trace}}}
% \end{verbatim}
-%
%
+%
% \section{Environments and commands}
% \subsection{Environments}
% All of the following environments take an optional argument for
@@ -564,7 +566,7 @@
%
% \item[\env{dsuspend}] Suspend the current display in order to print
% some text, without loss of the alignment. There is also a command
-% form of the same thing, \cs{intertext}.
+% form of the same thing, \cs{intertext}.
% \end{description}
%
% \subsection{Commands}
@@ -658,8 +660,8 @@
% \end{verbatim}
%
% Use of the normal \cs{label} command instead of the \opt{label} option
-% works, I think, most of the time (untested). \opt{labelprefix} prepends
-% its argument to the label (only useful as a global option, really),
+% works, I think, most of the time (untested). \opt{labelprefix} prepends
+% its argument to the label (only useful as a global option, really),
% and must be called before \opt{label}.
%
% \changes{v0.98b}{2010/08/27}{replaced relindent with indentstep}
@@ -901,39 +903,39 @@
%when the height fluctuates due to stretching or shrinking of the page.
%
%
-%Consider the following equation:
+%Consider the following equation:
%\begin{dmath}[number={3.15}]
-% N_{0} \simeq \left( \frac{\nu}{\lVert u\rVert_{H^{i}}} \right)
+% N_{0} \simeq \left( \frac{\nu}{\lVert u\rVert_{H^{i}}} \right)
% \lvert I\rvert^{-1/2}
%\end{dmath}
-%It will have only one line, if the column width is not too narrow.
+%It will have only one line, if the column width is not too narrow.
%
-%Scrutinizing the vertical list will shed light on some of the basic properties
-%shared by all breqn equations. After that we will look at what would happen if
-%two or more lines were needed. The numbers added on the left in the following
-%\cs{showlists} output mark the points of interest.
+%Scrutinizing the vertical list will shed light on some of the basic properties
+%shared by all breqn equations. After that we will look at what would happen if
+%two or more lines were needed. The numbers added on the left in the following
+%\cs{showlists} output mark the points of interest.
%\begin{verbatim}
-%[1] \penalty 10000
-% \glue(\abovedisplayskip) 0.0
-% \penalty 10000
-% \glue(\belowdisplayskip) 0.0
-%[2] \glue 4.0 plus 4.0
-% \glue(\lineskip) 1.0
-%[3] \vbox(16.53902+0.0)x0.0, glue set 16.53902fil
-% .\glue 0.0 plus 1.0fil minus 1.0fil
-% \penalty 10000
-%[4] \glue -8.51945
-%[5] \hbox(7.5+2.5)x25.55563
-% .\OT1/cmr/m/n/10 (
-% .\OT1/cmr/m/n/10 3
-% .\OT1/cmr/m/n/10 .
-% .\OT1/cmr/m/n/10 1
-% .\OT1/cmr/m/n/10 5
-% .\kern 0.0
-% .\OT1/cmr/m/n/10 )
-% \penalty 10000
-%[6] \glue(\parskip) -18.01956
-%[7] \hbox(16.53902+9.50012)x360.0, glue set 1.78647
+%[1] \penalty 10000
+% \glue(\abovedisplayskip) 0.0
+% \penalty 10000
+% \glue(\belowdisplayskip) 0.0
+%[2] \glue 4.0 plus 4.0
+% \glue(\lineskip) 1.0
+%[3] \vbox(16.53902+0.0)x0.0, glue set 16.53902fil
+% .\glue 0.0 plus 1.0fil minus 1.0fil
+% \penalty 10000
+%[4] \glue -8.51945
+%[5] \hbox(7.5+2.5)x25.55563
+% .\OT1/cmr/m/n/10 (
+% .\OT1/cmr/m/n/10 3
+% .\OT1/cmr/m/n/10 .
+% .\OT1/cmr/m/n/10 1
+% .\OT1/cmr/m/n/10 5
+% .\kern 0.0
+% .\OT1/cmr/m/n/10 )
+% \penalty 10000
+%[6] \glue(\parskip) -18.01956
+%[7] \hbox(16.53902+9.50012)x360.0, glue set 1.78647
%\end{verbatim}
%\begin{enumerate}
%\item These four lines are a hidden display structure from \TeX's
@@ -969,7 +971,7 @@
%
%\item The hbox containing the equation number.
%
-%\item Backspace to bring the equation body to the right starting point. We use
+%\item Backspace to bring the equation body to the right starting point. We use
% \cs{parskip} to put this glue in place because we're going to get a
% parskip node here in any case when we add the equation body with (in
% essence). If we didn't do this we'd get two glue nodes instead of
@@ -986,34 +988,34 @@
%standard \LaTeX\ would look like this, if the same values of
%columnwidth and abovedisplayskip are used:
%\begin{verbatim}
-%[1] \penalty 10000
-%[2] \glue(\abovedisplayskip) 4.0 plus 4.0
-% \glue(\lineskip) 1.0
-% \hbox(16.53902+9.50012)x232.94844
-%[3] .\hbox(7.5+2.5)x25.55563
-% ..\hbox(7.5+2.5)x25.55563
-% ...\OT1/cmr/m/n/10 (
-% ...\OT1/cmr/m/n/10 3
-% ...\OT1/cmr/m/n/10 .
-% ...\OT1/cmr/m/n/10 1
-% ...\OT1/cmr/m/n/10 5
-% ...\kern 0.0
-% ...\OT1/cmr/m/n/10 )
-% .\kern101.49591
-%[4] .\hbox(16.53902+9.50012)x105.8969
-% ...
-%[5] \penalty 0
-%[6] \glue(\belowdisplayskip) 4.0 plus 4.0
-% \glue(\lineskip) 1.0
+%[1] \penalty 10000
+%[2] \glue(\abovedisplayskip) 4.0 plus 4.0
+% \glue(\lineskip) 1.0
+% \hbox(16.53902+9.50012)x232.94844
+%[3] .\hbox(7.5+2.5)x25.55563
+% ..\hbox(7.5+2.5)x25.55563
+% ...\OT1/cmr/m/n/10 (
+% ...\OT1/cmr/m/n/10 3
+% ...\OT1/cmr/m/n/10 .
+% ...\OT1/cmr/m/n/10 1
+% ...\OT1/cmr/m/n/10 5
+% ...\kern 0.0
+% ...\OT1/cmr/m/n/10 )
+% .\kern101.49591
+%[4] .\hbox(16.53902+9.50012)x105.8969
+% ...
+%[5] \penalty 0
+%[6] \glue(\belowdisplayskip) 4.0 plus 4.0
+% \glue(\lineskip) 1.0
% \hbox(6.94444+1.94444)x345.0, glue set 62.1106fil
%\end{verbatim}
%
%\begin{enumerate}
% \item \cs{predisplaypenalty}
-% \item \cs{abovedisplayskip}
+% \item \cs{abovedisplayskip}
% \item equation number box
-% \item equation body
-% \item \cs{postdisplaypenaltly}
+% \item equation body
+% \item \cs{postdisplaypenaltly}
% \item \cs{belowdisplayskip}
%\end{enumerate}
%
@@ -1024,17 +1026,17 @@
% \providecommand{\qq}[1]{\textquotedblleft#1\textquotedblright}
% \providecommand{\mdash}{\textemdash}
% \providecommand{\ndash}{\textendash}
-%
+%
% \newcommand{\ititle}[1]{\textit{#1}}
-%
+%
% \newcommand{\LR}[2][.4]{%
% \framebox[#1\displaywidth]{$\displaystyle{}#2$}%
% }
-%
+%
% \newcommand{\LHS}[1]{\LR[\relifactor]{#1}}
-%
+%
% \newdimen\relindent \newdimen\rhswd
-%
+%
% \newcommand{\dwline}{%
% \hbox to\curdw{\vrule height1ex
% \leaders\hrule height.55ex depth-.45ex\hfil
@@ -1042,7 +1044,7 @@
% \leaders\hrule height.55ex depth-.45ex\hfil
% \vrule height1ex}%
% }
-%
+%
% \newenvironment{layout}[1][.15]{%
% \noindent
% $$\edef\curdw{\the\displaywidth}%
@@ -1064,17 +1066,17 @@
% $$\relax
% \ignorespacesafterend
% }
-%
+%
% \newcommand{\stagger}{\omit\span\gdef\layoutcr{\cr\omit\span}}
-%
+%
% \newcount\row
-%
+%
% \newcommand{\rhsskew}{}
% \newcommand{\skewleft}[1]{\gdef\rhsskew{\kern-#1\relax}}
-%
-%
+%
+%
% \subsection{Misc examples}
-%
+%
% Let us consider which of these have 50\% or more of wasted whitespace
% \emph{within the bounding box of the visible material}.
% \begin{layout}[.4]
@@ -1081,9 +1083,9 @@
% \LHS{L}&=\LR[.35]{R_{1}}\\
% &=\LR[.25]{R_{1}}
% \end{layout}
-%
+%
% \subsection{Ladder and step layouts}
-%
+%
% \subsubsection{Straight ladder layout}
% This is distinguished by a relatively short LHS and one or more RHS's of
% any length.
@@ -1111,7 +1113,7 @@
% &\quad +\LR[.54]{R_{3c}}\\
% &\qquad\ldots
% \end{layout}
-%
+%
% \subsubsection{Skew ladder layout}
% \begin{layout}[.5]
% \skewleft{.35\displaywidth}
@@ -1127,7 +1129,7 @@
% \mbox{width}_{\mathrm{max}}(R_{i})>\mbox{width}_{\mathrm{avail}}$. In
% that case we next try aligning all but the first relation symbol,
% allowing all the $R_{i}$ after $R_1$ to shift leftward.
-%
+%
% \subsubsection{Drop ladder layout}
% \begin{layout}[.6]
% \makebox[.15\displaywidth][l]{\LHS{L}}\\
@@ -1141,7 +1143,7 @@
% we move $R_1$ down to a separate line and try again to align all the
% relation symbols. Note that this layout consumes more vertical space
% than the skew ladder layout.
-%
+%
% \subsubsection{Step layout}
% \begin{layout}[.6]
% \stagger
@@ -1162,7 +1164,7 @@
% $w_T=\max(w_1+I,w_l+I)$. If there are more than two lines ($l>2$) then
% use $w_T = \max(w_1 + (l-1)I, w_l+I, w_{\mathrm{avail}}$ and reset $I$
% to $w_T/(l-1)$ if $w_T = w_{\mathrm{avail}}$.
-%
+%
% Furthermore, we would like the material to be distributed as evenly as
% possible over all the lines rather than leave the last line exceedingly
% short. If the total width is $1.1(\mbox{width}_{\mathrm{avail}})$, we
@@ -1202,9 +1204,9 @@
% \quad + \LR[.87]{L_{d}}\\
% \qquad\ldots
% \end{layout}
-%
+%
% \subsection{Strategy}
-%
+%
% Here is the basic procedure for deciding which equation layout to use,
% before complications like equation numbers and delimiter clearance come
% into the picture. Let $A$ be the available width, $w_{\mathrm{total}}$
@@ -1214,40 +1216,40 @@
% binary operators if a break occurs in the middle of an RHS. Also let
% $t_L$ and $t_R$ represent certain thresholds for the width of the LHS or
% the RHS at which a layout decision may change, as explained below.
-%
+%
% \begin{small}
% \begin{enumerate}
% \renewcommand{\labelenumi}{(\theenumi)}
% \item \ititle{Does everything fit on one line?}\label{i:LR}
% $w_{\mathrm{total}}\leq A$?
-%
+%
% Yes: print the equation on a single line (done).
-%
+%
% No: Check whether the equation has both LHS and RHS (\ref{i:lhs-check}).
-%
+%
% \item \ititle{Is there a left-hand side?}\label{i:lhs-check}
% Are there any relation symbols in the equation?
-%
+%
% Yes: Try a ladder layout (\ref{i:ladder}).
-%
+%
% No: Try a step layout (\ref{i:step}).
-%
+%
% \item\ititle{Does the LHS leave room to fit the widest RHS?}\label{i:ladder}
% $w(L)+w_{\max}(R)<A$?
-%
+%
% Yes: Use a straight ladder layout (\ref{i:straight-ladder}).
-%
+%
% No: Check the width of the LHS (\ref{i:check-lhs}).
-%
+%
% \item\ititle{Is the LHS relatively short?}\label{i:check-lhs}
% $w(L)\leq t_L$? (where $t_L$ is typically $0.4A$).
-%
+%
% Yes: Subdividing one or more of the RHS's may permit us to use a
% straight ladder layout (\ref{i:straight-ladder}).
-%
+%
% No: The straight ladder layout is unlikely to work.
% Try a skew or drop ladder layout (\ref{i:skew-drop}).
-%
+%
% \item\ititle{Straight ladder layout}\label{i:straight-ladder}
% Set up a straight ladder parshape [0pt $A$ $w(L)$ $A-w(L)$] and run
% a trial break. If the combined width of the LHS plus the longest RHS is
@@ -1255,45 +1257,45 @@
% line breaks occurring at major division points (relation symbols).
% Otherwise, we hope, some additional line breaks at minor division points
% will allow everything to fit within the text column.
-%
+%
% \ititle{Line breaks OK?}
-%
+%
% \begingroup \hbadness=9999
% Yes: The straight ladder layout succeeded
% (done).\par\endgroup
-%
+%
% No: Try a skew or drop ladder layout (\ref{i:skew-drop}).
-%
+%
% \item\ititle{Do the LHS and the first RHS fit on one
% line?}\label{i:skew-drop} $w(L)+w(R_1) \leq A$?
-%
+%
% Yes: Try a skew ladder layout (\ref{i:skew}).
-%
+%
% No: Try a drop ladder layout (\ref{i:drop}).
-%
+%
% \item\ititle{Skew ladder layout}\label{i:skew}
% Set up a parshape [0pt $A$ $I$ $A-I$] and run a trial break.
-%
+%
% \ititle{Line breaks OK?}
-%
+%
% Yes: Skew ladder layout succeeded (done).
-%
+%
% No: One of the unbreakable fragments of the $R_i$ ($i>1$) is wider than
% $A-I$; try an almost-columnar layout (\ref{i:almost-columnar}).
-%
+%
% \item\ititle{Drop ladder layout}\label{i:drop}
% Set up a parshape [0pt $w(L)$ $I$ $A-I$] and run a trial break.
% This is the same parshape as for a skew ladder layout except that the
% width of the first line is limited to the LHS width, so that the RHS is
% forced to drop down to the next line.
-%
+%
% \ititle{Line breaks OK?}
-%
+%
% Yes: Drop ladder layout succeeded (done).
-%
+%
% No: One of the unbreakable fragments of the $R_i$ ($i>1$) is wider than
% $A-I$; try an almost-columnar layout (\ref{i:almost-columnar}).
-%
+%
% \item\ititle{Almost-columnar layout}\label{i:almost-columnar}
% This presupposes a trial break that yielded a series of expressions or
% fragments, one per line. Let $w(F)$ denote the width of the first
@@ -1306,32 +1308,32 @@
% [0pt $w(F)$ 0pt $A$]\mdash for that is the net effect of substituting
% $\min(A,w_{\max})$ in stead of $w_{\max}$.
% (Done.)
-%
+%
% \item\ititle{Step layout}\label{i:step} Set target width $w_T$ to $A -
-% 2I$. Set parshape to [0pt $w_T$ $I$ $w_T -I$ $2I$ $w_T -2I$ \ldots\
+% 2I$. Set parshape to [0pt $w_T$ $I$ $w_T -I$ $2I$ $w_T -2I$ \ldots\
% $(l-1)I$ $w_T - (l-1)I$], where $l=\lceil w_{\mathrm{total}}/A\rceil$
% is the expected number of lines that will be required. Trial break
% with that parshape in order to find out the width of the last line.
-%
+%
% \ititle{Indents OK?}
-%
+%
% Yes: Step layout succeeded (done).
-%
+%
% No: One of the fragments is too wide to fit in
% the allotted line width, after subtracting the indent specified by the
% parshape. Try a dropped step layout (\ref{i:drop-step})
-%
+%
% \item\ititle{Dropped step layout}\label{i:drop-step} Set up a parshape
% [0pt $A$ $I$ $A-I$] and run a trial break. Note that this is actually
% the same parshape as for a skew ladder layout.
-%
+%
% \ititle{Line breaks OK?}
-%
+%
% Yes: Dropped step layout succeeded (done).
-%
+%
% No: One of the unbreakable fragments of the $R_i$ ($i>1$) is wider than
% $A-I$; as a last resort try an almost-columnar layout (\ref{i:almost-columnar}).
-%
+%
% \end{enumerate}
% \par\end{small}
%
@@ -1367,7 +1369,7 @@
% \newgeometry{left=4cm}
% \part{Implementation}
%
-%
+%
% The package version here is Michael's v0.90 updated by Bruce
% Miller. Michael's changes between v0.90 and his last v0.94 will be
% incorporated where applicable.
@@ -1394,15 +1396,15 @@
% \env{darray} environment similar to the \env{array}
% environment but using \cs{displaystyle} for all the array cells and
% providing better interline spacing (because the vertical ruling
-% feature of \env{array} is dropped).
+% feature of \env{array} is dropped).
% These are all autonumbered environments like \env{equation}
% and have starred forms that don't add a number. For a more
% comprehensive and detailed description of the features and intended
-% usage of the \pkg{breqn} package see \fn{breqndoc.tex}.
-%
-%
-%
-%
+% usage of the \pkg{breqn} package see \fn{breqndoc.tex}.
+%
+%
+%
+%
% \section{Strategy}
% Features of particular note are the ability to have
% linebreaks even within a \cs{left} \ndash \cs{right} pair of
@@ -1412,20 +1414,20 @@
% paragraph form with strategic line breaks whose purpose is not to
% produce line breaks in the final printed output but rather to mark
% significant points in the equation and give us entry points for
-% unpacking \cn{left} \ndash \cn{right} boxes.
+% unpacking \cn{left} \ndash \cn{right} boxes.
% After the initial typesetting, we take the resulting stack of line
% fragments and, working backward, splice them into a new, single-line
% paragraph; this will eventually be poured into a custom parshape, after
-% we do some measuring to calculate what that parshape should be.
+% we do some measuring to calculate what that parshape should be.
% This streamlined horizontal list may contain embedded material
% from user commands intended to alter line breaks, horizontal alignment,
-% and interline spacing; such material requires special handling.
-%
+% and interline spacing; such material requires special handling.
+%
% To make the `shortskip' possibility work even for
% multiline equations, we must plug in a dummy \tex display to give us
% the value of \cs{predisplaysize}, and calculate for ourselves when
-% to apply the short skips.
-%
+% to apply the short skips.
+%
% In order to measure the equation body and do various
% enervating calculations on whether the equation number will fit and so
% on, we have to set it in a box. Among other things, this means
@@ -1437,35 +1439,35 @@
% fit in the available width. So even for simple one-line equations
% we are forced to fake a whole display without going through \tex 's
% primitive display mechanism (except for using it to get
-% \cs{predisplaysize} as mentioned above).
-%
-%
+% \cs{predisplaysize} as mentioned above).
+%
+%
% In the case of a framed equation body, the current implementation is
% to set the frame in a separate box, of width zero and height zero,
% pinned to the upper left corner of the equation body, and then print the
-% equation body on top of it.
+% equation body on top of it.
% For attaching an equation number it would be much simpler to wrap
% the equation body in the frame and from then on treat the body as a
-% single box instead of multiple line boxes.
+% single box instead of multiple line boxes.
% But I had a notion that it might be possible some day to support
-% vertical stretching of the frame.
-%
-%
-%
-%
+% vertical stretching of the frame.
+%
+%
+%
+%
% \section{Prelim}
%
% This package doesn't work with \latex 2.09, nor with other
-% versions of \latex earlier than 1994/12/01.
+% versions of \latex earlier than 1994/12/01.
% \begin{macrocode}
%<*package>
\NeedsTeXFormat{LaTeX2e}
% \end{macrocode}
-%
-% Declare package name and date.
+%
+% Declare package name and date.
% \begin{macrocode}
\RequirePackage{expl3}[2009/08/05]
-\ProvidesExplPackage{breqn}{2015/08/11}{0.98d}{Breaking equations}
+\ProvidesExplPackage{breqn}{2017/01/27}{0.98e}{Breaking equations}
% \end{macrocode}
% Regrettably, \pkg{breqn} is internally a mess, so we have to take
% some odd steps.
@@ -1475,11 +1477,11 @@
%
%
% \section{Package options}
-%
+%
% Most options are set with the \cs{options} command (which
% calls \cs{setkeys}) because the standard package option
-% mechanism doesn't provide support for key-value syntax.
-%
+% mechanism doesn't provide support for key-value syntax.
+%
% First we need to get the catcodes sorted out.
% \begin{macrocode}
\edef\breqnpopcats{%
@@ -1491,24 +1493,24 @@
\PassOptionsToPackage{mathstyleoff}{flexisym}%
}
% \end{macrocode}
-% Process options.
+% Process options.
% \begin{macrocode}
\ProcessOptions\relax
% \end{macrocode}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{Required packages}
% The \pkg{flexisym} package makes it possible to attach
% extra actions to math symbols, in particular mathbin, mathrel, mathopen,
-% and mathclose symbols.
+% and mathclose symbols.
% Normally it would suffice to call \cs{RequirePackage} without
% any extra testing, but the nature of the package is such that it is
-% likely to be called earlier with different (no) options.
+% likely to be called earlier with different (no) options.
% Then is it really helpful to be always warning the user about
-% \quoted{Incompatible Package Options!}?
-% I don't think so.
+% \quoted{Incompatible Package Options!}?
+% I don't think so.
% \begin{macrocode}
\@ifpackageloaded{flexisym}{}{%
\RequirePackage{flexisym}[2009/08/07]
@@ -1524,18 +1526,18 @@
% \begin{macrocode}
\RequirePackage{keyval,calc}\relax
% \end{macrocode}
-%
-%
+%
+%
% And add an \cs{options} cmd for processing package
% options that require an argument. Maybe this will get added to
-% the \pkg{keyval} package eventually.
+% the \pkg{keyval} package eventually.
% \begin{macrocode}
\@ifundefined{options}{%
% \end{macrocode}
-%
-%
+%
+%
% \begin{macro}{\options}
-% Get the package options and run setkeys on them.
+% Get the package options and run setkeys on them.
% \begin{macrocode}
\newcommand{\options}[2]{%
\expandafter\options at a\csname opt@#1.sty\endcsname{#2}%
@@ -1543,14 +1545,14 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\options at a}
% \begin{macro}{\options at b}
% \begin{macro}{\options at c}
% \begin{macro}{\options at d}
% Redefine \cs{opt at pkgname.sty} as we go along to take out
-% the options that are handled and leave the ones that are not.
+% the options that are handled and leave the ones that are not.
% \begin{macrocode}
\def\options at a#1#2{%
\edef\@tempa{\options at b#2,\@empty\@nil}%
@@ -1559,7 +1561,7 @@
}
% \end{macrocode}
% Add the next option, and recurse if there remain more
-% options.
+% options.
% \begin{macrocode}
\def\options at b#1,#2#3\@nil{%
\options at c#1 \@nil
@@ -1566,12 +1568,12 @@
\ifx#2\@empty \else\options at b#2#3\@nil\fi
}
% \end{macrocode}
-% Discard everything after the first space.
+% Discard everything after the first space.
% \begin{macrocode}
\def\options at c#1 #2\@nil{\options at d#1=\@nil}
% \end{macrocode}
% Discard everything after the first = sign; add a comma only if the
-% remainder is not empty.
+% remainder is not empty.
% \begin{macrocode}
\def\options at d#1=#2\@nil{\ifx\@empty #1\@empty\else,\fi#1}
% \end{macrocode}
@@ -1579,24 +1581,24 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
-%
-% The tail of the \cs{@ifundefined} test.
+%
+%
+%
+% The tail of the \cs{@ifundefined} test.
% \begin{macrocode}
}{}% end @ifundefined test
% \end{macrocode}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{Some useful tools}
-%
+%
% \begin{macro}{\@nx}
% \begin{macro}{\@xp}
% The comparative brevity of \cs{@nx} and \cs{@xp} is
% valuable not so much for typing convenience as for reducing visual
-% clutter in code sections that require a lot of expansion control.
+% clutter in code sections that require a lot of expansion control.
% \begin{macrocode}
\let\@nx\noexpand
\let\@xp\expandafter
@@ -1603,47 +1605,47 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\@emptytoks}
-% Constant empty token register, analogous to \cs{@empty}.
+% Constant empty token register, analogous to \cs{@empty}.
% \begin{macrocode}
\@ifundefined{@emptytoks}{\newtoks\@emptytoks}{}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\f at ur}
-% Constants 0\ndash 3 are provided in plain \tex , but not 4.
+% Constants 0\ndash 3 are provided in plain \tex , but not 4.
% \begin{macrocode}
\chardef\f at ur=4
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\inf at bad}
-% \cs{inf at bad} is for testing box badness.
+% \cs{inf at bad} is for testing box badness.
% \begin{macrocode}
\newcount\inf at bad \inf at bad=1000000
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\maxint}
-%
+%
% We want to use \cs{maxint} rather than coerced
-% \cs{maxdimen} for \cs{linepenalty} in one place.
+% \cs{maxdimen} for \cs{linepenalty} in one place.
% \begin{macrocode}
\newcount\maxint \maxint=2147483647
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\int at a}
% \begin{macro}{\int at b}
% \begin{macro}{\int at b}
-%
-% Provide some shorter aliases for various scratch registers.
+%
+% Provide some shorter aliases for various scratch registers.
% \begin{macrocode}
\let\int at a=\@tempcnta
\let\int at b=\@tempcntb
@@ -1652,8 +1654,8 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\dim at a}
% \begin{macro}{\dim at b}
% \begin{macro}{\dim at c}
@@ -1660,8 +1662,8 @@
% \begin{macro}{\dim at d}
% \begin{macro}{\dim at e}
% \begin{macro}{\dim at A}
-%
-% Same for dimen registers.
+%
+% Same for dimen registers.
% \begin{macrocode}
\let\dim at a\@tempdima
\let\dim at b\@tempdimb
@@ -1676,13 +1678,13 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\skip at a}
% \begin{macro}{\skip at b}
% \begin{macro}{\skip at c}
-%
-% Same for skip registers.
+%
+% Same for skip registers.
% \begin{macrocode}
\let\skip at a\@tempskipa
\let\skip at b\@tempskipb
@@ -1691,8 +1693,8 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\toks at a}
% \begin{macro}{\toks at b}
% \begin{macro}{\toks at c}
@@ -1699,8 +1701,8 @@
% \begin{macro}{\toks at d}
% \begin{macro}{\toks at e}
% \begin{macro}{\toks at f}
-%
-% Same for token registers.
+%
+% Same for token registers.
% \begin{macrocode}
\let\toks at a\@temptokena
\let\toks at b\toks@
@@ -1715,21 +1717,21 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\abs at num}
% We need an absolute value function for comparing
-% penalties.
+% penalties.
% \begin{macrocode}
\def\abs at num#1{\ifnum#1<\z at -\fi#1}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\@ifnext}
% \begin{macro}{\@ifnexta}
% The \cs{@ifnext} function is a variation of
-% \cs{@ifnextchar} that doesn't skip over intervening whitespace.
+% \cs{@ifnextchar} that doesn't skip over intervening whitespace.
% We use it for the optional arg of \dbslash inside
% \env{dmath} \etc because we don't want
% unwary users to be tripped up by an unexpected attempt on \latex 's part
@@ -1740,7 +1742,7 @@
% [z,w]...
% \end{equation}
% \end{literalcode}
-% .
+% .
% \begin{macrocode}
\def\@ifnext#1#2#3{%
\let\@tempd= #1\def\@tempa{#2}\def\@tempb{#3}%
@@ -1747,14 +1749,14 @@
\futurelet\@tempc\@ifnexta
}
% \end{macrocode}
-% Switch to \cs{@tempa} iff the next token matches.
+% Switch to \cs{@tempa} iff the next token matches.
% \begin{macrocode}
\def\@ifnexta{\ifx\@tempc\@tempd \let\@tempb\@tempa \fi \@tempb}
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\@ifstar}
% Similarly let's remove space-skipping from \cs{@ifstar}
% because in some rare case of \dbslash inside an equation, followed by
@@ -1766,7 +1768,7 @@
% any case because of \tex 's tokenization rules; or it is a control
% symbol such as \dbslash \verb"*" which is exceedingly unlikely to be
% written as \dbslash \verb"*" by any one who really wants the
-% \verb"*" to act as a modifier for the \dbslash command.
+% \verb"*" to act as a modifier for the \dbslash command.
% \begin{macrocode}
\def\@ifstar#1#2{%
\let\@tempd*\def\@tempa*{#1}\def\@tempb{#2}%
@@ -1774,17 +1776,17 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\@optarg}
% Utility function for reading an optional arg
-% \emph{without} skipping over any intervening spaces.
+% \emph{without} skipping over any intervening spaces.
% \begin{macrocode}
\def\@optarg#1#2{\@ifnext[{#1}{#1[#2]}}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\@True}
% \begin{macro}{\@False}
% \begin{macro}{\@Not}
@@ -1794,7 +1796,7 @@
% \if\foo
% \end{literalcode}
% evaluates to true. Would rather avoid \cs{newif} because it
-% uses three csnames per Boolean variable; this uses only one.
+% uses three csnames per Boolean variable; this uses only one.
% \begin{macrocode}
\def\@True{00}
\def\@False{01}
@@ -1806,15 +1808,15 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
-%
+%
+%
+%
% \begin{macrocode}
\def\theb@@le#1{\if#1 True\else False\fi}
% \end{macrocode}
% \begin{macro}{\freeze at glue}
-%
-% Remove the stretch and shrink from a glue register.
+%
+% Remove the stretch and shrink from a glue register.
% \begin{macrocode}
\def\freeze at glue#1{#11#1\relax}
% \end{macrocode}
@@ -1823,7 +1825,7 @@
% \begin{macro}{\keep at glue}
% Note well
% the intentional absence of \cs{relax} at the end of the replacement
-% text of \cs{z at rule}; use it with care.
+% text of \cs{z at rule}; use it with care.
% \begin{macrocode}
\def\z at rule{\vrule\@width\z@}% no \relax ! use with care
% \end{macrocode}
@@ -1839,29 +1841,29 @@
% unary minus sign. (the vrule \emph{is} transparent to
% the math spacing). The vadjust is the cheapest in terms of box
% memory\mdash it vanishes after the pass through \tex 's
-% paragrapher.
+% paragrapher.
% It is what I would have used, except that the equation contents get
% run through two paragraphing passes, once for breaking up LR boxes and
-% once for the real typesetting.
+% once for the real typesetting.
% If \cs{keep at glue} were done with an empty vadjust, it would
% disappear after the first pass and\mdash in particular\mdash the
-% pre-bin-op adjustment for relation symbols would disappear at a line break.
+% pre-bin-op adjustment for relation symbols would disappear at a line break.
% \begin{macrocode}
\def\keep at glue{\z at rule\relax}
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\replicate}
-%
+%
% This is a fully expandable way of making N copies of a token
-% list.
+% list.
% Based on a post of David Kastrup to comp.text.tex circa January
-% 1999.
+% 1999.
% The extra application of \cs{number} is needed for maximal
% robustness in case the repeat count N is given in some weird \tex form
-% such as \verb|"E9| or \verb|\count9|.
+% such as \verb|"E9| or \verb|\count9|.
% \begin{macrocode}
% usage: \message{H\replicate{5}{i h}ow de doo dee!}
\begingroup \catcode`\&=11
@@ -1871,15 +1873,15 @@
\endgroup
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\replicate at a}
% \begin{macrocode}
\long\def\replicate at a#1#2\endcsname#3{#1\endcsname{#3}#2}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\8m}% fix
% \begin{macrocode}
\begingroup \catcode`\&=11
@@ -1887,18 +1889,18 @@
\endgroup
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\8q}% fix
% \begin{macrocode}
\@xp\let\csname\string &q\endcsname\@gobble
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\mathchars at reset}
-%
+%
% Need to patch up this function from flexisym a little, to better
-% handle certain constructed symbols like \cs{neq}.
+% handle certain constructed symbols like \cs{neq}.
% \begin{macrocode}
\ExplSyntaxOn
\g at addto@macro\mathchars at reset{%
@@ -1914,12 +1916,12 @@
\ExplSyntaxOff
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at cons}
-%
+%
% \latex 's \cs{@cons} appends to the end of a list, but we need
-% a function that adds material at the beginning.
+% a function that adds material at the beginning.
% \begin{macrocode}
\def\eq at cons#1#2{%
\begingroup \let\@elt\relax \xdef#1{\@elt{#2}#1}\endgroup
@@ -1930,14 +1932,14 @@
% \begin{macro}{\@saveprimitive}
% If some preceding package redefined one of the
% primitives that we must change, we had better do some checking to make
-% sure that we are able to save the primitive meaning for internal use.
+% sure that we are able to save the primitive meaning for internal use.
% This is handled by the \cs{@saveprimitive} function. We
% follow the example of \cs{@@input} where the primitive meaning is
-% stored in an internal control sequence with a \verb"@@" prefix.
+% stored in an internal control sequence with a \verb"@@" prefix.
% Primitive control sequences can be distinguished by the fact that
-% \cs{string} and \cs{meaning} return the same information.
+% \cs{string} and \cs{meaning} return the same information.
% Well, not quite all: \cs{nullfont} and \cs{topmark}
-% and the other \cs{...mark} primitives being the exceptions.
+% and the other \cs{...mark} primitives being the exceptions.
% \begin{macrocode}
\providecommand{\@saveprimitive}[2]{%
\begingroup
@@ -1947,7 +1949,7 @@
% \end{macrocode}%
% If [arg1] is no longer primitive, then we are in trouble unless
% [arg2] was already given the desired primitive meaning somewhere
-% else.
+% else.
% \begin{macrocode}
\edef\@tempb{\meaning#2}%
\ifx\@tempa\@tempb
@@ -1957,9 +1959,9 @@
\endgroup
}
% \end{macrocode}
-% Aux function, check for the special cases.
+% Aux function, check for the special cases.
% Most of the time this branch will be skipped so we can
-% stuff a lot of work into it without worrying about speed costs.
+% stuff a lot of work into it without worrying about speed costs.
% \begin{macrocode}
\providecommand\@saveprimitive at a[2]{%
\begingroup
@@ -1985,8 +1987,8 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\@@math}
% \begin{macro}{\@@endmath}
% \begin{macro}{\@@display}
@@ -1995,10 +1997,10 @@
% sequences. If I were redesigning \tex I guess I'd put these
% functions into primitive control words instead of linking them to a
% catcode. That way \tex would not have to do the special
-% lookahead at a \verb"$" to see if there's another one coming up.
+% lookahead at a \verb"$" to see if there's another one coming up.
% Of course that's related to the question of how to provide user
% shorthand for common constructions: \tex , or an editing interface of
-% some sort.
+% some sort.
% \begin{macrocode}
\begingroup \catcode`\$=\thr@@ % just to make sure
\global\let\@@math=$ \gdef\@@display{$$}% $$$
@@ -2010,8 +2012,8 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\@@insert}
% \begin{macro}{\@@mark}
% \begin{macro}{\@@vadjust}
@@ -2021,7 +2023,7 @@
% decomposition procedures. We follow the example of
% \cs{@@input}, \cs{@@end}, \cs{@@par} where the primitive
% meaning is stored in an internal control sequence with a \verb"@@"
-% prefix.
+% prefix.
% \begin{macrocode}
\@saveprimitive\vadjust\@@vadjust
\@saveprimitive\insert\@@insert
@@ -2030,35 +2032,35 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{Debugging}
-% Debugging help.
+% Debugging help.
% \begin{macrocode}
%<*trace>
\errorcontextlines=2000\relax
% \end{macrocode}
-%
+%
% \begin{macro}{\breqn at debugmsg}
-% Print a debugging message.
+% Print a debugging message.
% \begin{macrocode}
\long\def\breqn at debugmsg#1{\GenericInfo{||}{||=\space#1}}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\debugwr}
% Sometimes the newline behavior of \cs{message} is
-% unsatisfactory; this provides an alternative.
+% unsatisfactory; this provides an alternative.
% \begin{macrocode}
\def\debugwr#1{\immediate\write\sixt@@n{||= #1}}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\debug at box}
-% Record the contents of a box in the log file, without stopping.
+% Record the contents of a box in the log file, without stopping.
% \begin{macrocode}
\def\debug at box#1{%
\batchmode{\showboxbreadth\maxdimen\showboxdepth99\showbox#1}%
@@ -2066,11 +2068,11 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eqinfo}
% Show lots of info about the material before launching into the
-% trials.
+% trials.
% \begin{macrocode}
\def\eqinfo{%
\debug at box\EQ at copy
@@ -2080,10 +2082,10 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\debug at para}
-% Check params that affect line breaking.
+% Check params that affect line breaking.
% \begin{macrocode}
\def\debug at para{%
\debugwr{\hsize\the\hsize, \parfillskip\the\parfillskip}%
@@ -2094,33 +2096,33 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macrocode}
%</trace>
% \end{macrocode}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{The \cs{listwidth} variable}
% The dimen variable \cs{listwidth} is \cs{linewidth}
% plus \cs{leftmargin} plus \cs{rightmargin}, which is typically
-% less than \cs{hsize} if the list depth is greater than one.
+% less than \cs{hsize} if the list depth is greater than one.
% In case a future package will provide this variable, define it only
-% if not yet defined.
+% if not yet defined.
% \begin{macrocode}
\@ifundefined{listwidth}{\newdimen\listwidth}{}
\listwidth=\z@
% \end{macrocode}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{Parameters}
-%
+%
% Here follows a list of parameters needed.
-%
+%
% \begin{macro}{\eqfontsize}
% \begin{macro}{\eqcolor}
% \begin{macro}{\eqmargin}
@@ -2140,12 +2142,12 @@
% \begin{macro}{\eqinterlinepenalty}
% \begin{macro}{\intereqpenalty}
% \begin{macro}{\intereqskip}
-%
+%
% Note: avoid M, m, P, p because they look like they might be the
% start of a keyword \quoted{minus} or \quoted{plus}. Then
% \tex looks further to see if the next letter is i or l. And if
% the next thing is an undefined macro, the attempt to expand the macro
-% results in an error message.
+% results in an error message.
% \begin{macrocode}
\def\eqfontsize{} % Inherit from context [NOT USED?]
\def\eqcolor{black} % Default to black [NOT USED?]
@@ -2154,7 +2156,7 @@
% \end{macrocode}
% The \cs{eqindent} and \cs{eqnumside} variables need to
% have their values initialized from context, actually. But
-% that takes a bit of work, which is postponed till later.
+% that takes a bit of work, which is postponed till later.
% \begin{macrocode}
\def\eqindent{C}% % C or I, centered or indented
\def\eqnumside{R}% % R or L, right or left
@@ -2164,7 +2166,7 @@
% \begin{literalcode}
% {\eqnumcolor \eqnumsize \eqnumfont{\eqnumform{\eq at number}}}
% \end{literalcode}
-% .
+% .
% \begin{macrocode}
%d\eqnumfont{\upshape}% % Upright even when surrounding text is slanted
\def\eqnumfont{}% % Null for easier debugging [mjd,1997/09/26]
@@ -2177,9 +2179,9 @@
% number. Or should the default be empty? Then in large
% sections of smaller text, like the dangerous bend stuff in
% \emph{\TeX book}, the equation number size will keep in synch
-% with the context.
+% with the context.
% Maybe need an \cs{eqbodysize} param as well to allow separating
-% the two cases.
+% the two cases.
% \begin{macrocode}
\def\eqnumcolor{} % ... or color than eq body e.g. \color{blue}
\newlength\eqlinespacing \eqlinespacing=14pt plus2pt % Base-to-base space between lines
@@ -2189,7 +2191,7 @@
% The value of \cs{eqbinoffset} should include a negative shrink
% component that cancels the shrink component of medmuskip, otherwise
% there can be a noticeable variation in the indent of adjacent lines if
-% one is shrunken a lot and the other isn't.
+% one is shrunken a lot and the other isn't.
% \begin{macrocode}
\newmuskip \eqbinoffset \eqbinoffset=15mu minus-3mu % Offset from mathrel alignment pt for mathbins
\newmuskip\eqdelimoffset \eqdelimoffset=2mu % Additional offset for break inside delims
@@ -2209,7 +2211,7 @@
% unfrozen ones. Nonetheless I think this way is the best
% compromise short of a new \tex that can make those built-up objects
% shrink horizontally in proportion; the alternative is to pretty much
-% eliminate the shrink possibility completely in displays.
+% eliminate the shrink possibility completely in displays.
% \begin{macrocode}
\newmuskip \Dmedmuskip \Dmedmuskip=4mu minus 3mu % medmuskip in displays
\newmuskip \Dthickmuskip \Dthickmuskip=5mu minus 2mu % thickmuskip in displays
@@ -2233,9 +2235,9 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
+%
% And now some internal variables. 1997/10/22: some of
-% these are dead branches that need to be pruned.
+% these are dead branches that need to be pruned.
%
% MH: Started cleaning up a bit. No more funny loops.
% \begin{macrocode}
@@ -2266,7 +2268,7 @@
% dimen registers are needed in the measuring phase, which is a tightly
% contained step that happens after the contents of the equation have been
% typeset into a box and before any external functions have a chance to
-% regain control\mdash \eg , the output routine.
+% regain control\mdash \eg , the output routine.
% Therefore it is possible to make use of the the dimen registers 0--9,
% reserved by convention for scratch use, without fear of conflict with
% other macros. But I don't want to use them directly with the
@@ -2275,13 +2277,13 @@
% \dimen@ \dimen at i \dimen at ii \dimen3 \dimen4 ... \dimen9
% \end{literalcode}
% . It would be much more useful to have names for these registers
-% indicative of way they are used.
-%
+% indicative of way they are used.
+%
% Another source whence dimen registers could be borrowed is the
% \pkg{amsmath} package, which allocates six registers for
% equation-measuring purposes. We can reuse them under different
% names since the \pkg{amsmath} functions and our functions will
-% never be used simultaneously.
+% never be used simultaneously.
% \begin{literalcode}
% \eqnshift@ \alignsep@ \tagshift@ \tagwidth@ \totwidth@ \lineht@
% \end{literalcode}
@@ -2291,9 +2293,9 @@
\newdimen\eq at wdT % Total width for framing
\newdimen\eq at wdMin % Width of narrowest line in equation
\newdimen\grp at wdL % Max width of LHS's in a group
-\newdimen\grp at wdR % Max RHS of all equations in a group
+\newdimen\grp at wdR % Max RHS of all equations in a group
\newdimen\grp at wdT
-\newdimen\eq at wdRmax
+\newdimen\eq at wdRmax
\newdimen\eq at firstht % Height of first line
% \end{macrocode}
% BRM: measure the condition too.
@@ -2304,30 +2306,30 @@
\newdimen\grp at linewidth % Max eq at linewidth over a group
% \end{macrocode}
% Maybe \cs{eq at hshift} could share the same register as
-% \cs{mathindent} [mjd,1997/10/22].
+% \cs{mathindent} [mjd,1997/10/22].
% \begin{macrocode}
\newdimen\eq at hshift
\let\eq at isIntertext\@False
% \end{macrocode}
% Init \cs{eq at indentstep} to a nonzero value so that we can
-% detect and refrain from clobbering a user setting of zero.
+% detect and refrain from clobbering a user setting of zero.
% And \cs{eq at sidespace} to \cs{maxdimen} because
-% that is the right init before computing a min.
+% that is the right init before computing a min.
% \begin{macrocode}
\eq at indentstep=\maxdimen
\newdimen\eq at given@sidespace
% \end{macrocode}
-%
+%
% \begin{macro}{\eq at overrun}
% MH: Appears to be unused.
%
-% Not a dimen register; don't need to advance it.
+% Not a dimen register; don't need to advance it.
% \begin{macrocode}
\def\eq at overrun{0pt}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% To initialize \cs{eqnumside} and \cs{eqindent} properly,
% we may need to grub around a bit in \cs{@filelist}. However,
% if the \pkg{amsmath} package was used, we can use its option
@@ -2335,7 +2337,7 @@
% \opt{leqno} to \pkg{amsmath} by default, and it gets
% overridden by the user with a \opt{reqno} documentclass option,
% then \pkg{amsmath} believes itself to have received
-% \emph{both} options.
+% \emph{both} options.
% \begin{macrocode}
\@ifpackagewith{amsmath}{leqno}{%
\@ifpackagewith{amsmath}{reqno}{}{\def\eqnumside{L}}%
@@ -2343,7 +2345,7 @@
% \end{macrocode}
% If the \pkg{amsmath} package was not used, the next
% method for testing the \opt{leqno} option is to see if
-% \fn{leqno.clo} is present in \cs{@filelist}.
+% \fn{leqno.clo} is present in \cs{@filelist}.
% \begin{macrocode}
\def\@tempa#1,leqno.clo,#2#3\@nil{%
\ifx @#2\relax\else \def\eqnumside{L}\fi
@@ -2352,9 +2354,9 @@
% \end{macrocode}
% Even that test may fail in the case of \cls{amsart} if it does
% not load \pkg{amsmath}. Then we have to look whether
-% \cs{iftagsleft@} is defined, and if so whether it is true.
+% \cs{iftagsleft@} is defined, and if so whether it is true.
% This is tricky if you want to be careful about conditional nesting
-% and don't want to put anything in the hash table unnecessarily.
+% and don't want to put anything in the hash table unnecessarily.
% \begin{macrocode}
\if L\eqnumside
\else
@@ -2369,7 +2371,7 @@
% \end{macrocode}
% A similar sequence of tests handles the \quoted{fleqn or not fleqn}
% question for the \cls{article} and \cls{amsart}
-% documentclasses.
+% documentclasses.
% \begin{macrocode}
\@ifpackagewith{amsmath}{fleqn}{%
\def\eqindent{I}%
@@ -2401,43 +2403,43 @@
}
%\fi
% \end{macrocode}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{Measuring equation components}
% Measure the left-hand side of an equation. This
% function is called by mathrel symbols. For the first mathrel we
% want to discourage a line break more than for following mathrels; so
% \cs{mark at lhs} gobbles the following \cs{rel at break} and
-% substitutes a higher penalty.
+% substitutes a higher penalty.
% \begin{aside}
-% Maybe the LHS should be kept in a separate box.
+% Maybe the LHS should be kept in a separate box.
% \end{aside}
-%
-%
-%
+%
+%
+%
% \begin{macro}{\EQ at hasLHS}
-%
-% Boolean: does this equation have a \dquoted{left-hand side}?
+%
+% Boolean: does this equation have a \dquoted{left-hand side}?
% \begin{macrocode}
\let\EQ at hasLHS=\@False
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\EQ at QED}
-%
+%
% If nonempty: the qed material that should be incorporated into this
-% equation after the final punctuation.
+% equation after the final punctuation.
% \begin{macrocode}
\let\EQ at QED=\@empty
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\mark at lhs}
-%
+%
% \begin{macrocode}
\def\mark at lhs#1{%
\ifnum\lr at level<\@ne
@@ -2448,15 +2450,15 @@
% \end{macrocode}
% But the penalty for the first mathrel should still be lower than a
% binoppenalty. If not, when the LHS contains a binop, the split
-% will occur inside the LHS rather than at the mathrel.
+% will occur inside the LHS rather than at the mathrel.
% On the other hand if we end up with a multline sort of equation
% layout where the RHS is very short, the break before the relation symbol
% should be made \emph{less} desirable than the breakpoints inside
-% the LHS.
+% the LHS.
% Since a lower penalty takes precedence over a higher one, we start
% by putting in the highest relpenalty; during subsequent measuring if we
% find that that RHS is not excessively short then we put in an extra
-% \dquoted{normal} relpenalty when rejoining the LHS and RHS.
+% \dquoted{normal} relpenalty when rejoining the LHS and RHS.
% \begin{macrocode}
\penalty9999 % instead of normal \rel at break
% else no penalty = forbid break
@@ -2464,10 +2466,10 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\mark at lhs@a}
-%
+%
% Temporarily add an extra thickmuskip to the LHS; it will be removed
% later. This is necessary to compensate for the disappearance of
% the thickmuskip glue preceding a mathrel if a line break is taken at
@@ -2477,7 +2479,7 @@
% \cs{eq at repack} to suggest that the box containing this line should
% be measured to find the value of \cs{eq at wdL}. The
% second vadjust ensures that the normal prerelpenalty and thickmuskip
-% will not get lost at the line break during this preliminary pass.
+% will not get lost at the line break during this preliminary pass.
%
% BRM: I originally thought the \verb"\mskip\thickmuskip" was messing
% up summation limits in LHS. But I may have fixed that problem by
@@ -2488,8 +2490,8 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\hiderel}
% If you want the LHS to extend past the first mathrel symbol to a
% following one, mark the first one with \cs{hiderel}:
@@ -2496,21 +2498,21 @@
% \begin{literalcode}
% a \hiderel{=} b = c...
% \end{literalcode}
-% .
+% .
% \begin{aside}
% I'm not sure now why I didn't use \cs{begingroup}
% \cs{endgroup} here \begin{dn}
% mjd,1999/01/21
% \end{dn}
-% .
+% .
% \end{aside}
-%
+%
% \begin{macrocode}
\newcommand\hiderel[1]{\mathrel{\advance\lr at level\@ne#1}}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\m@@Bin}
% \begin{macro}{\m@@Rel}
% \begin{macro}{\bin at break}
@@ -2519,10 +2521,10 @@
% \begin{macro}{\rel at mark}
% \begin{macro}{\d@@Bin}
% \begin{macro}{\d@@Rel}
-%
+%
% \cf \pkg{flexisym} handling of mathbins and mathrels. These
% are alternate definitions of \cs{m at Bin} and \cs{m at Rel},
-% activated by \cs{display at setup}.
+% activated by \cs{display at setup}.
% \begin{macrocode}
%%%%\let\m@@Bin\m at Bin
%%%%%\let\m@@Rel\m at Rel
@@ -2545,8 +2547,8 @@
% The difficulty of dealing properly with the subscripts and
% superscripts sometimes appended to mathbins and mathrels is one of the
% reasons that we do not attempt to handle the mathrels as a separate
-% \quoted{column} a la \env{eqnarray}.
-%
+% \quoted{column} a la \env{eqnarray}.
+%
% \end{macro}
% \end{macro}
% \end{macro}
@@ -2555,8 +2557,8 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\m@@symRel}
% \begin{macro}{\d@@symRel}
% \begin{macro}{\m@@symBin}
@@ -2569,11 +2571,11 @@
% \begin{macro}{\d@@symDeB}
% \begin{macro}{\m@@symDeA}
% \begin{macro}{\d@@symDeA}
-%
-% More of the same.
+%
+% More of the same.
% \begin{macrocode}
\ExplSyntaxOn
-%%\let\m@@symRel\@symRel
+%%\let\m@@symRel\@symRel
%%%\def\d@@symRel{\mark at lhs \rel at break \m@@symRel}
\cs_set_protected:Npn \math_dcsym_Bin:Nn {\bin at break \math_bcsym_Bin:Nn}
@@ -2599,17 +2601,17 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\display at setup}
% \begin{macro}{\everydisplay}
% Setup. Note that \latex reserves the primitive
-% \cs{everydisplay} under the name \cs{frozen at everydisplay}.
+% \cs{everydisplay} under the name \cs{frozen at everydisplay}.
% BRM: Disable this! It also affects non-breqn math!!!!
% \begin{macrocode}
%\global\everydisplay\expandafter{\the\everydisplay \display at setup}
% \end{macrocode}
-% Change some math symbol function calls.
+% Change some math symbol function calls.
% \begin{macrocode}
\def\display at setup{%
\medmuskip\Dmedmuskip \thickmuskip\Dthickmuskip
@@ -2625,9 +2627,9 @@
% \end{macrocode}
% If we have an embedded array environment (for example), we
% don't want to have each math cell within the array resetting
-% \cs{lr at level} globally to 0\mdash not good!
+% \cs{lr at level} globally to 0\mdash not good!
% And in general I think it is safe to say that whenever we have a
-% subordinate level of boxing we want to revert to a normal math setup.
+% subordinate level of boxing we want to revert to a normal math setup.
% \begin{macrocode}
\everyhbox{\everyhbox\@emptytoks
\let\display at setup\relax \textmath at setup \let\textmath at setup\relax
@@ -2638,7 +2640,7 @@
}
% \end{macrocode}
% The \cs{textmath at setup} function is needed for embedded inline
-% math inside text inside a display.
+% math inside text inside a display.
%
% BRM: DS Experiment: Variant of \cs{display at setup} for use within
% dseries environmnents
@@ -2646,7 +2648,7 @@
\def\dseries at display@setup{%
\medmuskip\Dmedmuskip \thickmuskip\Dthickmuskip
\math_setup_display_symbols:
-%%%% \let\m at Bin\d@@Bin
+%%%% \let\m at Bin\d@@Bin
%%%\let\m at Rel\d@@Rel
%%% \let\@symRel\d@@symRel
%%% \let\@symBin\d@@symBin
@@ -2681,7 +2683,7 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
+%
% \begin{macro}{\if at display}
% \begin{macro}{\everydisplay}
% The test \cs{ifinner} is unreliable for distinguishing
@@ -2690,7 +2692,7 @@
% of \verb"$" \cs{displaystyle} \dots \verb"$" instead of
% \dbldollars \dots \dbldollars . So we provide a more reliable
% test. But it might have been provided already by the
-% \pkg{amsmath} package.
+% \pkg{amsmath} package.
% \begin{macrocode}
\@ifundefined{@displaytrue}{%
\@xp\newif\csname if at display\endcsname
@@ -2697,24 +2699,24 @@
\everydisplay\@xp{\the\everydisplay \@displaytrue}%
}{}
% \end{macrocode}
-%
+%
% \begin{aside}
% Is there any reason to maintain separate
-% \cs{everydisplay} and \cn{eqstyle}?
-%
+% \cs{everydisplay} and \cn{eqstyle}?
+%
% \end{aside}
-%
-%
+%
+%
% \end{macro}
% \end{macro}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{The \env{dmath} and \env{dmath*} environments}
%
% Options for the \env{dmath} and \env{dmath*}
-% environments.
+% environments.
% \begin{literalcode}
% \begin{dmath}[label={eq:xyz}]
% \begin{dmath}[labelprefix={eq:},label={xyz}]
@@ -2722,7 +2724,7 @@
% WSPR: added the option for a label prefix, designed to be used in the preamble like so:
% \begin{literalcode}
% \setkeys{breqn}{labelprefix={eq:}}
-% \end{literalcode}
+% \end{literalcode}
% \begin{macrocode}
\define at key{breqn}{label}{%
\edef\next at label{\noexpand\label{\next at label@pre#1}}%
@@ -2731,7 +2733,7 @@
\global\let\next at label\@empty
\global\let\next at label@pre\@empty
% \end{macrocode}
-% Allow a variant number.
+% Allow a variant number.
% \begin{literalcode}
% \begin{dmath}[number={\nref{foo}\textprime}]
% \end{literalcode}
@@ -2744,7 +2746,7 @@
% \begin{dmath}[shiftnumber]
% \begin{dmath}[holdnumber]
% \end{literalcode}
-% Holding or shifting the number.
+% Holding or shifting the number.
% \begin{macrocode}
\define at key{breqn}{shiftnumber}{\let\eq at shiftnumber\@True}
\define at key{breqn}{holdnumber}{\let\eq at holdnumber\@True}
@@ -2762,7 +2764,7 @@
% for lines that begin with a mathbin symbol there is a fixed amount of
% indent already built in (\cs{eqbinoffset}) and it cannot be
% reduced through this option. The indentstep amount is the indent
-% used for lines that begin with a mathrel symbol.
+% used for lines that begin with a mathrel symbol.
% \begin{macrocode}
\define at key{breqn}{indentstep}{\eqindentstep#1\relax}
% \end{macrocode}
@@ -2771,11 +2773,11 @@
% \begin{dmath}[compact=-2000]
% \end{literalcode}
% To make mathrels stay inline to the extent possible, use the compact
-% option.
+% option.
% Can give a numeric value in the range $-10000 \dots 10000$
-% to adjust the behavior.
+% to adjust the behavior.
% $-10000$: always break at a rel symbol; $10000$: never
-% break at a rel symbol.
+% break at a rel symbol.
% \begin{macrocode}
\define at key{breqn}{compact}[-99]{\prerelpenalty=#1\relax}
% \end{macrocode}
@@ -2782,9 +2784,9 @@
% \begin{literalcode}
% \begin{dmath}[layout={S}]%
% \end{literalcode}
-% Specify a particular layout.
+% Specify a particular layout.
% We take care to ensure that \cs{eq at layout} ends up containing
-% one and only one letter.
+% one and only one letter.
% \begin{macrocode}
\define at key{breqn}{layout}[?]{%
\edef\eq at layout{\@car#1?\@nil}%
@@ -2793,7 +2795,7 @@
% \begin{literalcode}
% \begin{dmath}[spread={1pt}]
% \end{literalcode}
-% To change the interline spacing in a particular equation.
+% To change the interline spacing in a particular equation.
% \begin{macrocode}
\define at key{breqn}{spread}{%
\addtolength\eqlinespacing{#1}%
@@ -2801,7 +2803,7 @@
\eqlineskiplimit\eqlineskip
}
% \end{macrocode}
-% To change the amount of space on the side for \dquoted{multline} layout.
+% To change the amount of space on the side for \dquoted{multline} layout.
% \begin{macrocode}
\define at key{breqn}{sidespace}{%
\setlength\eq at given@sidespace{#1}%
@@ -2815,7 +2817,7 @@
% \latex code here \mdash thus the option name is \quoted{style} rather
% than just \quoted{typesize}. In order for this option to work when
% setting options globally, we need to put the code in
-% \cs{eqstyle} rather than execute it directly.
+% \cs{eqstyle} rather than execute it directly.
% \begin{macrocode}
\define at key{breqn}{style}{\eqstyle\@xp{\the\eqstyle #1}}
% \end{macrocode}
@@ -2843,7 +2845,7 @@
% \cs{eqframe}. It must be a command taking two arguments, the
% width and height of the equation body. The top left corner of the
% box produced by \cs{eqframe} will be pinned to the top-left corner
-% of the equation body.
+% of the equation body.
% \begin{macrocode}
\define at key{breqn}{frame}[\fboxrule]{\def\eq at frame{T}%
\dim at a#1\relax\edef\eq at framewd{\the\dim at a}%
@@ -2850,7 +2852,7 @@
% \end{macrocode}
% Until such time as we provide a frame implementation that allows the
% frame to stretch and shrink, we'd better remove any stretch/shrink from
-% the interline glue in this case.
+% the interline glue in this case.
% \begin{macrocode}
\freeze at glue\eqlinespacing \freeze at glue\eqlineskip
}
@@ -2860,12 +2862,12 @@
\def\eq at frame{F} % no frame
\def\eq at framewd{\fboxrule}
% \end{macrocode}
-% Wishful thinking?
+% Wishful thinking?
% \begin{literalcode}
% \begin{dmath}[frame={width={2pt},color={blue},sep={2pt}}]
% \end{literalcode}
% To change the space between the frame and the equation there is a
-% framesep option.
+% framesep option.
% \begin{macrocode}
\define at key{breqn}{framesep}[\fboxsep]{%
\if\eq at frame F\def\eq at frame{T}\fi
@@ -2881,7 +2883,7 @@
% the background area that is colored is the size of the equation, plus
% fboxsep. If you need anything fancier for the background, you'd
% better do it by defining \cs{eqframe} in terms of
-% \cs{colorbox} or \cs{fcolorbox}.
+% \cs{colorbox} or \cs{fcolorbox}.
% \begin{macrocode}
\define at key{breqn}{background}{\def\eq at background{#1}%
\freeze at glue\eqlinespacing \freeze at glue\eqlineskip
@@ -2899,7 +2901,7 @@
% \end{literalcode}
% The \opt{center} option means add leftskip stretch to make the
% individual lines be centered; this is the default for
-% \env{dseries}.
+% \env{dseries}.
% \begin{macrocode}
\define at key{breqn}{center}[]{\let\eq at centerlines\@True}
\define at key{breqn}{nocenter}[]{\let\eq at centerlines\@False}
@@ -2910,7 +2912,7 @@
% \end{literalcode}
% Equation groups normally have alignment of the primary relation
% symbols across the whole group. The \opt{noalign} option
-% switches that behavior.
+% switches that behavior.
% \begin{macrocode}
\define at key{breqn}{noalign}[]{\let\grp at aligned\@False}
\let\grp at aligned\@True % default
@@ -2919,7 +2921,7 @@
% \begin{dgroup}[breakdepth={2}]
% \end{literalcode}
% Break depth of 2 means that breaks are allowed at mathbin symbols
-% inside two pairs of delimiters, but not three.
+% inside two pairs of delimiters, but not three.
% \begin{macrocode}
\define at key{breqn}{breakdepth}{\eqbreakdepth#1\relax}
% \end{macrocode}
@@ -2929,7 +2931,7 @@
% The \opt{cols} option only makes sense for the
% \env{darray} environment but we liberally allow all the options to
% be used with all the environments and just ignore any unsensible ones
-% that happen to come along.
+% that happen to come along.
% \begin{macrocode}
\define at key{breqn}{cols}{\global\let\@preamble\@empty
\darray at mkpream#1\@percentchar
@@ -2966,13 +2968,13 @@
%BRM: The following incorporates several changes:
% 1) modifications supplied by MJD to fix the eaten \cs{paragraph} problem.
% 2) Added \cs{display at setup} here, rather than globally.
-%
+%
% \begin{macro}{\dmath}
% \begin{macro}{\enddmath}
% For the \env{dmath} environment we don't want the standard
% optional arg processing because of the way it skips over whitespace,
% including newline, while looking for the \verb"[" char; which is not good
-% for math material. So we call \cs{@optarg} instead.
+% for math material. So we call \cs{@optarg} instead.
% \begin{macrocode}
\newenvironment{dmath}{%
\let\eq at hasNumber\@True \@optarg\@dmath{}}{}
@@ -2985,7 +2987,7 @@
\setkeys{breqn}{#1}%
\the\eqstyle
% \end{macrocode}
-% The equation number might have been overridden in \verb|#1|.
+% The equation number might have been overridden in \verb|#1|.
% \begin{macrocode}
\eq at setnumber
% \end{macrocode}
@@ -2992,7 +2994,7 @@
% Start up the displayed equation by reading the contents into a
% box register. Enclose this phase in an extra group so that
% modified \cs{hsize} and other params will be auto-restored
-% afterwards.
+% afterwards.
% \begin{macrocode}
\begingroup
\eq at setup@a
@@ -3001,7 +3003,7 @@
% \end{macrocode}
% Before it finishes off the box holding the equation body,
% \cs{enddmath} needs to look ahead for punctuation (and
-% \cs{qed}?).
+% \cs{qed}?).
% \begin{macrocode}
\def\enddmath#1{\check at punct@or at qed}
\def\end at dmath{%
@@ -3014,13 +3016,13 @@
% required to get acceptable line breaks, how many lines will be required
% at that width, and whether the equation number needs to be shifted to
% avoid overlapping. This information will then be used by
-% \cs{eq at finish} to do the typesetting of the real equation body.
+% \cs{eq at finish} to do the typesetting of the real equation body.
% \begin{macrocode}
\eq at measure
% \end{macrocode}
% Piece together the equation from its constituents, recognizing
% current constraints. If we are in an equation group, this might
-% just save the material on a stack for later processing.
+% just save the material on a stack for later processing.
% \begin{macrocode}
\if\eq at group \grp at push \else \eq at finish\fi
}
@@ -3027,10 +3029,10 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
+%
% \begin{macro}{\dmath*}
% \begin{macro}{\enddmath*}
-% Ah yes, now the lovely \env{dmath*} environment.
+% Ah yes, now the lovely \env{dmath*} environment.
% \begin{macrocode}
\newenvironment{dmath*}{%
\let\eq at hasNumber\@False \@optarg\@dmath{}%
@@ -3040,17 +3042,17 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at prelim}
% If \cs{everypar} has a non-null value, it's probably
% some code from \cs{@afterheading} that sets \cs{clubpenalty}
% and\slash or removes the parindent box. Both of those actions
% are irrelevant and interfering for our purposes and need to be deflected
-% for the time being.
+% for the time being.
% If an equation appears at the very beginning of a list item
% (possibly from a trivlist such as \env{proof}), we need to
-% trigger the item label.
+% trigger the item label.
% \begin{macrocode}
\def\eq at prelim{%
\if at inlabel \indent \par \fi
@@ -3061,7 +3063,7 @@
% \cn{noindent} is better than \cn{leavevmode}, which would produce
% an indent box and an empty line to hold it. If we are in a list
% environment, \cn{par} is defined as \verb"{\@@par}" to preserve
-% \cs{parshape}.
+% \cs{parshape}.
% \begin{macrocode}
\noindent
\eq at nulldisplay
@@ -3072,7 +3074,7 @@
% \end{macro}
% \begin{macro}{\breqn at parshape@warning}
% Warning message extracted to a separate function to streamline the
-% calling function.
+% calling function.
% \begin{macrocode}
\def\breqn at parshape@warning{%
\PackageWarning{breqn}{%
@@ -3080,19 +3082,19 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at prevshape}
-% Storage; see \cs{eq at saveparinfo}.
+% Storage; see \cs{eq at saveparinfo}.
% \begin{macrocode}
\let\eq at prevshape\@empty
% \end{macrocode}
% \end{macro}
-%
-%
-% \begin{macro}{\eq at saveparinfo}
+%
+%
+% \begin{macro}{\eq at saveparinfo}
% Save the number of lines and parshape info for the text preceding
-% the equation.
+% the equation.
% \begin{macrocode}
\def\eq at saveparinfo{%
\count@\prevgraf \advance\count at -\thr@@ % for the null display
@@ -3104,7 +3106,7 @@
}%
% \end{macrocode}
% Maybe best to set \cs{eq at prevshape} the same in the else case
-% also. Better than nothing.
+% also. Better than nothing.
% \begin{macrocode}
\else
\breqn at parshape@warning
@@ -3112,15 +3114,15 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at setnumber}
% If the current equation number is not explicitly given, then
% use an auto-generated number, unless the no-number switch has been
-% thrown (\env{dmath*}).
+% thrown (\env{dmath*}).
% \cs{theequation} is the number form to be used for all equations,
% \cs{eq at number} is the actual value for the current equation
-% (might be an exception to the usual sequence).
+% (might be an exception to the usual sequence).
% \begin{macrocode}
\def\eq at setnumber{%
\eq at wdNum\z@
@@ -3139,7 +3141,7 @@
% number-placement calculations. The extra braces around
% \cs{eqnumform} make it possible for \cs{eqnumfont} to have
% either an \cs{itshape} (recommended) or a \cs{textit}
-% value.
+% value.
% \begin{macrocode}
%<trace> \breqn at debugmsg{Number \eq at number}%
\set at label{equation}\eq at number
@@ -3160,7 +3162,7 @@
% measuring includes the number of lines required, the width of the
% equation number, the total height of the equation body, and (most
% important) the parshape spec that was used in determining height and
-% number of lines.
+% number of lines.
%
% Invoke the equation formatter for the requested centering/indentation
% having worked out the best parshape.
@@ -3233,10 +3235,10 @@
\endgroup
\eq at botspace
}
-% \end{macrocode}
+% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% These are temporary until the tag position algorithm gets
% rewritten. At least the tag is positioned correctly for single-line
% displays. The horizontal frame position is not correct but the
@@ -3245,7 +3247,7 @@
\def\eq at typeset@L at single{%
\nobreak
\eq at params\eq at parshape
- \nointerlineskip\noindent
+ \nointerlineskip\noindent
\add at grp@label
\rlap{\kern-\leftskip\box\EQ at numbox}%
\if F\eq at frame
@@ -3257,7 +3259,7 @@
\def\eq at typeset@R at single{%
\nobreak
\eq at params\eq at parshape
- \nointerlineskip\noindent
+ \nointerlineskip\noindent
\add at grp@label
\if F\eq at frame
\else
@@ -3264,23 +3266,23 @@
\rlap{\raise\eq at firstht\hbox to\z@{\eq at addframe\hss}}%
\fi
\rlap{\kern-\leftskip\kern\linewidth\kern-\wd\EQ at numbox\copy\EQ at numbox}%
- \eq at dump@box\unhbox\EQ at box
+ \eq at dump@box\unhbox\EQ at box
\@@par
}
% \end{macrocode}
%
-%
-%
+%
+%
% \section{Special processing for end-of-equation}
-%
+%
% At the end of a displayed equation environment we need to peek ahead
% for two things: following punction such as period or command that
% should be pulled in for inclusion at the end of the equation; and
% possibly also an \verb"\end{proof}" with an implied \dquoted{qed}
% symbol that is traditionally included at the end of the display rather
-% than typeset on a separate line.
+% than typeset on a separate line.
% We could require that the users type \cs{qed} explicitly at the
-% end of the display when they want to have the display take notice of it.
+% end of the display when they want to have the display take notice of it.
% But the reason for doing that would only be to save work for the
% programmer; the most natural document markup would allow an inline
% equation and a displayed equation at the end of a proof to differ only
@@ -3297,12 +3299,12 @@
% \end{dmath}.
% \end{proof}
% \end{literalcode}
-% .
+% .
% The technical difficulties involved in supporting this markup within
-% \latex2e are, admittedly, nontrivial.
-% Nonetheless, let's see how far we can go.
-%
-%
+% \latex2e are, admittedly, nontrivial.
+% Nonetheless, let's see how far we can go.
+%
+%
% The variations that we will support are only the most
% straightforward ones:
% \begin{literalcode}
@@ -3315,10 +3317,10 @@
% Perhaps a comment
% \end{proof}
% \end{literalcode}
-% .
+% .
% If there is anything more complicated than a space after the
% period we will not attempt to scan any further for a possible
-% \verb"\end{proof}".
+% \verb"\end{proof}".
% This includes material such as:
% \begin{literalcode}
% \begin{figure}...\end{figure}%
@@ -3333,10 +3335,10 @@
% and the preceding paragraph has to be fully finished off before
% proceeding further, even inside an element like \dquoted{proof} whose
% end-element formatting requires integration with the end of the
-% paragraph text.
+% paragraph text.
% And \tex nically speaking, a \cs{par} token that comes from a
% blank line and one that comes from the sequence of characters
-% \verb"\" \verb"p" \verb"a" \verb"r" are equally explicit.
+% \verb"\" \verb"p" \verb"a" \verb"r" are equally explicit.
% I hope to add support for \cs{footnote} in the future, as it
% seems to be a legitimate markup possibility in that context from a
% purely logical point of view, but there are additional technical
@@ -3344,12 +3346,12 @@
% \begin{dn}
% mjd,1999/02/08
% \end{dn}
-% .
-%
-%
+% .
+%
+%
% \begin{macro}{\peek at branch}
% This is a generalized \dquoted{look at next token and choose some action
-% based on it} function.
+% based on it} function.
% \begin{macrocode}
\def\peek at branch#1#2{%
\let\peek at b#1\let\peek at space#2\futurelet\@let at token\peek at a
@@ -3362,21 +3364,21 @@
\lowercase{\def\peek at skip@space} {\futurelet\@let at token\peek at a}%
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\check at punct}
% \changes{v0.96a}{2007/12/17}{Insert \cs{finish at end} if no special
% case is found.}
% For this one we need to recognize and grab for inclusion any of the
-% following tokens: \verb",;.!?", both catcode 12 (standard \latex
+% following tokens: \verb",;.!?", both catcode 12 (standard \latex
% value) and catcode 13 (as might hold when the Babel package is
-% being used).
+% being used).
% We do not support a space preceding the punctuation since that would
% be considered simply invalid markup if a display-math environment were
% demoted to in-line math; and we want to keep their markup as parallel as
-% possible.
+% possible.
% If punctuation does not follow, then the \cs{check at qed} branch
-% is not applicable.
+% is not applicable.
% \begin{macrocode}
\def\check at punct{\futurelet\@let at token\check at punct@a}
\def\check at punct@a{%
@@ -3412,7 +3414,7 @@
}
\endgroup
% \end{macrocode}
-%
+%
% \begin{macrocode}
\let\found at punct\@empty
\def\check at qed#1{%
@@ -3427,7 +3429,7 @@
% \end{macrocode}
% For each environment ENV that takes an implied qed at the end, the
% control sequence ENVqed must be defined; and it must include suitable
-% code to yield the desired results in a displayed equation.
+% code to yield the desired results in a displayed equation.
% \begin{macrocode}
\def\check at qed@b#1#2{%
\@ifundefined{#2qed}{}{%
@@ -3439,8 +3441,8 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\latex at end}
% \begin{macro}{\finish at end}
% The lookahead for punctuation following a display requires
@@ -3449,7 +3451,7 @@
% whole package is so over-the-top anyway, what's a little more
% going to hurt? And rationalizing this aspect of
% equation markup is a worthy cause. Here is the usual
-% definition of \cs{end}.
+% definition of \cs{end}.
% \begin{literalcode}
% \def\end#1{
% \csname end#1\endcsname \@checkend{#1}%
@@ -3459,7 +3461,7 @@
% \end{literalcode}
% We can improve the chances of this code surviving through future
% minor changes in the fundamental definition of \cs{end} by taking a
-% little care in saving the original meaning.
+% little care in saving the original meaning.
% \begin{macrocode}
\def\@tempa#1\endcsname#2\@nil{\def\latex at end##1{#2}}
\expandafter\@tempa\end{#1}\@nil
@@ -3467,12 +3469,12 @@
% \end{macrocode}
% Why don't we call \cs{CheckCommand} here? Because that
% doesn't help end users much; it works better to use it during package
-% testing by the maintainer.
-%
-%
+% testing by the maintainer.
+%
+%
% If a particular environment needs to call a different end action, the
% end command of the environment should be defined to gobble two args and
-% then call a function like \cs{check at punct@or at qed}.
+% then call a function like \cs{check at punct@or at qed}.
% \begin{macrocode}
\def\check at punct@or at qed#1{%
\xdef\found at punct{\@empty}% BRM: punctuation was being remembered past this eqn.
@@ -3483,26 +3485,26 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
+%
% \begin{macro}{\eqpunct}
% User-settable function for handling
% the punctuation at the end of an equation. You could, for example,
-% define it to just discard the punctuation.
+% define it to just discard the punctuation.
% \begin{macrocode}
\newcommand\eqpunct[1]{\thinspace#1}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\set at label}
% \cs{set at label} just sets \cs{@currentlabel} but it
% takes the counter as an argument, in the hope that \latex will some
% day provide an improved labeling system that includes type info on the
-% labels.
+% labels.
% \begin{macrocode}
\providecommand\set at label[2]{\protected at edef\@currentlabel{#2}}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\eq at topspace}
% \begin{macro}{\eq at botspace}
% The action of \cs{eq at topspace} is complicated by the
@@ -3513,7 +3515,7 @@
% \cs{eq at botspace}. This also allows us to optimize
% slightly by setting the above-skip with \cs{parskip} instead of
% \cs{vskip}. \verb|#1| is either \cs{noindent} or
-% \verb"\vskip\parskip".
+% \verb"\vskip\parskip".
%
% BRM: Hmm; we need to do *@setspace BEFORE this for small skips to work!
% \begin{macrocode}
@@ -3547,7 +3549,7 @@
\addtolength\parskip{\eq at framesep+\eq at framewd}%
\fi
%<*trace>
- \breqn at debugmsg{Topspace: \theb@@le\EQ at shortskips, \parskip=\the\parskip,
+ \breqn at debugmsg{Topspace: \theb@@le\EQ at shortskips, \parskip=\the\parskip,
\predisplaysize=\the\predisplaysize}%
%</trace>
#1%
@@ -3599,11 +3601,11 @@
}
% \end{macrocode}
% \end{macro}
-%
+%
% At the end of an equation, need to put in a pagebreak penalty
% and some vertical space. Also set some flags to remove parindent
% and extra word space if the current paragraph text continues without an
-% intervening \cs{par}.
+% intervening \cs{par}.
% \begin{macrocode}
\def\eq at botspace{%
\penalty\postdisplaypenalty
@@ -3610,7 +3612,7 @@
% \end{macrocode}
% Earlier calculations will have set \cs{belowdisplayskip} locally
% to \cs{belowdisplayshortskip} if applicable. So we can just use
-% it here.
+% it here.
% \begin{macrocode}
\if F\eq at frame
\else
@@ -3624,23 +3626,23 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
+%
% \begin{macro}{\eq at resume@parshape}
% This should calculate the total height of the equation,
% including space above and below, and set prevgraf to the number it would
% be if that height were taken up by normally-spaced normal-height
% lines. We also need to restore parshape if it had a non-null
-% value before the equation. Not implemented yet.
+% value before the equation. Not implemented yet.
% \begin{macrocode}
\def\eq at resume@parshape{}
% \end{macrocode}
% \end{macro}
-%
+%
% \section{Preprocessing the equation body}
% \begin{macro}{\eq at startup}
% Here is the function that initially collects the equation
-% material in a box.
-%
+% material in a box.
+%
% \begin{macrocode}
\def\eq at startup{%
\global\let\EQ at hasLHS\@False
@@ -3649,9 +3651,9 @@
\penalty-\@Mi
}
% \end{macrocode}
-%
+%
% This setup defines the environment for the first typesetting
-% pass, note the \cs{hsize} value for example.
+% pass, note the \cs{hsize} value for example.
% \begin{macrocode}
\def\eq at setup@a{%
\everymath\everydisplay
@@ -3671,7 +3673,7 @@
% \cs{hsize}, but more than half of \cs{hsize} so that if a line
% is nearly empty, the glue stretch factor will always be less than 2.0
% and so the badness will be less than 100 and so \tex will not issue
-% badness warnings.
+% badness warnings.
% \begin{macrocode}
\linepenalty\@m
\rightskip\z@\@plus\@M\p@ \leftskip\z at skip \parfillskip\z at skip
@@ -3678,8 +3680,8 @@
\clubpenalty\@ne \widowpenalty\z@ \interlinepenalty\z@
% \end{macrocode}
% After a relation symbol is discovered, binop symbols should start
-% including a special offset space.
-% But until then \cs{EQ at prebin@space} is a no-op.
+% including a special offset space.
+% But until then \cs{EQ at prebin@space} is a no-op.
% \begin{macrocode}
\global\let\EQ at prebin@space\relax
% \end{macrocode}
@@ -3687,7 +3689,7 @@
% after mathbins and mathrels. As a matter of fact, the penalties are
% then omitted by \tex , since bare glue without a penalty is
% \emph{not} a valid breakpoint if it occurs within
-% mathon\ndash mathoff items.
+% mathon\ndash mathoff items.
% \begin{macrocode}
\binoppenalty\@M \relpenalty\@M
}
@@ -3705,7 +3707,7 @@
% \end{literalcode}
% . The contents are shown in four parts in this figure and the next
% three. The first part contains two line boxes, one for the mathon
-% node and one for the LHS.
+% node and one for the LHS.
% \begin{literalcode}
% \hbox(0.0+0.0)x16383.99998, glue set 1.6384
% .\mathon
@@ -3727,7 +3729,7 @@
% \begin{figure}\centering
% This is the first part of the RHS, up to the
% \cs{right}, where a line break has been forced so that we can break
-% open the left-right box.
+% open the left-right box.
% \begin{literalcode}
% ...
% \penalty 2
@@ -3775,7 +3777,7 @@
% \begin{figure}
% \centering
% This is the remainder of the RHS after the post-\cs{right}
-% split.
+% split.
% \begin{literalcode}
% ...
% \penalty 3
@@ -3816,13 +3818,13 @@
% .\glue(\rightskip) 0.0 plus 10000.0
% \glue(\baselineskip) 9.5
% ...
-% \end{literalcode}
+% \end{literalcode}
% \caption{Preliminary equation contents, part 3}
% \end{figure}
%
% \begin{figure}
% \centering
-% This is the mathoff fragment.
+% This is the mathoff fragment.
% \begin{literalcode}
% ...
% \glue(\baselineskip) 9.5
@@ -3834,7 +3836,7 @@
% \end{literalcode}
% \caption{Preliminary equation contents, part 4}
% \end{figure}
-%
+%
% \begin{macro}{\eq at capture}
% \begin{macro}{\eq at punct}
% If an equation ends with a \cs{right} delim, the last thing
@@ -3845,7 +3847,7 @@
% any, goes into the last box with the mathoff kern. If the math list
% ends with a slanted letter, then there will be an italic correction
% added after it by \tex . Should we remove it? I guess
-% so.
+% so.
%
%
% \subsection{Capturing the equation}
@@ -3866,7 +3868,7 @@
\ifnum\lastpenalty>-\@M \penalty-\@Mi \fi
% \end{macrocode}
% We want to keep the mathoff kern from vanishing at the line break,
-% so that we can reuse it later.
+% so that we can reuse it later.
% \begin{macrocode}
\keep at glue\@@endmath
\eq at addpunct
@@ -3875,7 +3877,7 @@
% \end{macrocode}
% First snip the last box, which contains the mathoff node, and put it
% into \cs{EQ at box}. Then when we call \cs{eq at repack} it
-% will recurse properly.
+% will recurse properly.
% \begin{macrocode}
\setbox\tw@\lastbox
\global\setbox\EQ at box\hbox{\unhbox\tw@\unskip\unskip\unpenalty}%
@@ -3887,7 +3889,7 @@
\eq at wdR\z@%BRM: eq at wdL patch
\eq at repack % recursive
% \end{macrocode}
-% Finally, add the mathon item to \cs{EQ at box} and \cs{EQ at copy}.
+% Finally, add the mathon item to \cs{EQ at box} and \cs{EQ at copy}.
% \begin{macrocode}
\setbox\tw@\lastbox
\global\setbox\EQ at box\hbox{\unhcopy\tw@\unskip\unpenalty \unhbox\EQ at box}%
@@ -3899,7 +3901,7 @@
+ 0.2777777777777em}% FUDGE??!?!?!
\ifdim\dim at a>\eq at wdL
%<*trace>
- \breqn at debugmsg{Correcting LHS from \the\eq at wdL\space to
+ \breqn at debugmsg{Correcting LHS from \the\eq at wdL\space to
\the\dim at a = \the\wd\EQ at box - \the\eq at wdR}%
%</trace>
\eq at wdL\dim at a
@@ -3921,10 +3923,10 @@
% \end{macrocode}
% Now we have two copies of the equation, one in \cs{EQ at box},
% and one in \cs{EQ at copy} with inconvenient stuff like inserts and
-% marks omitted.
-%
+% marks omitted.
+%
% \cs{eq at addpunct} is for tacking on text punctuation at the end
-% of a display, if any was captured by the \quoted{gp} lookahead.
+% of a display, if any was captured by the \quoted{gp} lookahead.
% \begin{macrocode}
\def\eq at addpunct{%
\ifx\found at punct\@empty
@@ -3935,22 +3937,22 @@
\EQ at afterspace
}
% \end{macrocode}
-% Needed for the \env{dseries} environment, among other things.
+% Needed for the \env{dseries} environment, among other things.
% \begin{macrocode}
\global\let\EQ at afterspace\@empty
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
+%
% \begin{macro}{\eq at repack}
% The \cs{eq at repack} function looks at the information at hand
-% and proceeds accordingly.
+% and proceeds accordingly.
%
% TeX Note: this scans BACKWARDS from the end of the math.
% \begin{macrocode}
\def\eq at repack{%
% A previous penalty of 3 on the vertical list means that we need
-% to break open a left-right box.
+% to break open a left-right box.
% \begin{macrocode}
\ifcase\lastpenalty
% case 0: normal case
@@ -3960,7 +3962,7 @@
\or % case 1: finished recursing
% \end{macrocode}
% Grab the mathon object since we need it to inhibit line breaking at
-% bare glue nodes later.
+% bare glue nodes later.
% \begin{macrocode}
\unpenalty
\setbox\tw@\lastbox
@@ -3969,7 +3971,7 @@
\or % case 2: save box width = LHS width
% \end{macrocode}
% Don't need to set \cs{EQ at hasLHS} here because it was set earlier
-% if applicable.
+% if applicable.
% \begin{macrocode}
\unpenalty
\setbox\tw@\lastbox
@@ -3985,11 +3987,11 @@
% .\penalty -10001
% .\glue(\rightskip) 0.0 plus 10000.0
% \end{literalcode}
-% and we want to ensure that the thickmuskip glue gets removed.
+% and we want to ensure that the thickmuskip glue gets removed.
% And we now arrange for \cs{EQ at copy} and \cs{EQ at box} to
% keep the LHS in a separate subbox; this is so that we can introduce a
% different penalty before the first relation symbol if necessary,
-% depending on the layout decisions that are made later.
+% depending on the layout decisions that are made later.
% \begin{macrocode}
\global\setbox\EQ at copy\hbox{%
\hbox{\unhcopy\tw@\unskip\unpenalty\unskip}%
@@ -4009,7 +4011,7 @@
\eq at repack % RECURSE
}
% \end{macrocode}
-% Error message extracted to streamline calling function.
+% Error message extracted to streamline calling function.
% \begin{macrocode}
\def\breqn at repack@err{%
\PackageError{breqn}{eq at repack penalty neq 0,1,2,3}\relax
@@ -4016,12 +4018,12 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at repacka}
% We need to transfer each line into two separate boxes, one
% containing everything and one that omits stuff like \cs{insert}s
-% that would interfere with measuring.
+% that would interfere with measuring.
% \begin{macrocode}
\def\eq at repacka#1{%
\global\setbox#1\hbox{\unhcopy\tw@ \unskip
@@ -4030,7 +4032,7 @@
\unpenalty
% \end{macrocode}
% If creating the measure copy, ignore all cases above case 3 by
-% folding them into case 1.
+% folding them into case 1.
% \begin{macrocode}
\ifx\EQ at copy#1\ifnum\count@>\thr@@ \count@\@ne\fi\fi
\ifcase\count@
@@ -4054,10 +4056,10 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at nulldisplay}
-% Throw in a null display in order to get predisplaysize \etc .
+% Throw in a null display in order to get predisplaysize \etc .
% My original approach here was to start the null display, then measure
% the equation, and set a phantom of the equation's first line before
% ending the null display. That would allow finding out if \tex used
@@ -4070,7 +4072,7 @@
% control, \eg , the threshold amount of horizontal space between
% predisplaysize and the equation's left edge that determines when the
% short skips kick in becomes a designer-settable parameter rather than
-% hardwired into \TeX .
+% hardwired into \TeX .
% \begin{macrocode}
\def\eq at nulldisplay{%
\begingroup \frozen at everydisplay\@emptytoks
@@ -4084,7 +4086,7 @@
\listwidth\the\linewidth
% \end{macrocode}
% Not sure how best to test whether leftmargin should be
-% added. Let's do this for now [mjd,1997/10/08].
+% added. Let's do this for now [mjd,1997/10/08].
% \begin{macrocode}
\ifdim\displayindent>\z@
\advance\listwidth\the\leftmargin
@@ -4097,7 +4099,7 @@
% \cs{baselineskip} will be added (so we didn't need to set it to
% zero) and the previous value of prevdepth carries through. Those
% properties do not hold for an empty simple equation without
-% \cs{halign}.
+% \cs{halign}.
% \begin{macrocode}
\halign{##\cr}%
\@@enddisplay
@@ -4107,8 +4109,8 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at newline}
% \begin{macro}{\eq at newlinea}
% \begin{macro}{\eq at newlineb}
@@ -4123,7 +4125,7 @@
% \cs{keep at glue} object which is not such a good idea if a mathbin
% symbol follows \mdash the indent of the mathbin will be wrong because
% the leading negative glue will not disappear as it should at the line
-% break.
+% break.
% \begin{macrocode}
\def\eq at newline{%
\@ifstar{\eq at newlinea\@M}{\eq at newlinea\eqinterlinepenalty}}
@@ -4134,8 +4136,8 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at revspace}
% \begin{macro}{\eq at revspaceb}
% When \cs{eq at revspace} (re-vspace) is called, we are the
@@ -4142,7 +4144,7 @@
% end of an equation line; we need to remove the existing penalty of
% $-10002$ in order to put a vadjust object in front of it, then put
% back the penalty so that the line break will still take place in the
-% final result.
+% final result.
% \begin{macrocode}
\def\eq at revspace{%
\global\setbox\EQ at vimbox\vbox{\unvbox\EQ at vimbox
@@ -4152,7 +4154,7 @@
\penalty-\@M
}
% \end{macrocode}
-% The b version is used for the \cs{EQ at copy} box.
+% The b version is used for the \cs{EQ at copy} box.
% \begin{macrocode}
\def\eq at revspaceb{%
\global\setbox\EQ at vimcopy\vbox{\unvbox\EQ at vimcopy
@@ -4164,19 +4166,19 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at break}
% The function \cs{eq at break} does a preliminary linebreak with
-% a flag penalty.
+% a flag penalty.
% \begin{macrocode}
\def\eq at break#1{\penalty-1000#1 \keep at glue}
% \end{macrocode}
% \end{macro}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{Choosing optimal line breaks}
% The question of what line width to use when breaking an
% equation into several lines is best examined in the light of an extreme
@@ -4184,39 +4186,39 @@
% equation falls inside a second-level list with nonzero leftmargin and
% rightmargin. Then we want to try in succession a number of
% different possibilities. In each case if the next possibility is
-% no wider than the previous one, skip ahead to the one after.
+% no wider than the previous one, skip ahead to the one after.
% \begin{enumerate}
% \item First try linewidth(2), the linewidth for the current
-% level-2 list.
-%
-%
+% level-2 list.
+%
+%
% \item If we cannot find adequate linebreaks at that width, next try
% listwidth(2), the sum of leftmargin, linewidth, and rightmargin for
-% the current list.
-%
-%
+% the current list.
+%
+%
% \item If we cannot find linebreaks at that width, next try linewidth
% (1) (skipping this step if it is no larger then
-% listwidth(2)).
-%
-%
+% listwidth(2)).
+%
+%
% \item If we cannot find linebreaks at that width, next try
-% listwidth(1).
-%
-%
+% listwidth(1).
+%
+%
% \item If we cannot find linebreaks at that width, next try column
-% width.
-%
-%
+% width.
+%
+%
% \item If we cannot find linebreaks at that width, next try text
-% width.
-%
-%
+% width.
+%
+%
% \item If we cannot find linebreaks at that width, next try equation
% width, if it exceeds text width (\ie , if the style allows equations
-% to extend into the margins).
-%
-%
+% to extend into the margins).
+%
+%
% \end{enumerate}
%
%
@@ -4228,32 +4230,32 @@
%
% At any given line width, we run through a series of parshape
% trials and, essentially, use the first one that gives decent line
-% breaks.
-% But the process is a bit more complicated in fact.
+% breaks.
+% But the process is a bit more complicated in fact.
% In order to do a really good job of setting up the parshapes, we
-% need to know how many lines the equation will require.
-% And of course the number of lines needed depends on the parshape!
+% need to know how many lines the equation will require.
+% And of course the number of lines needed depends on the parshape!
% So as our very first trial we run a simple first-approximation
% parshape (Figure~\vref{f:parshape-1}) whose
% main purpose is to get an estimate on the number of lines that will be
% needed; it chooses a uniform indent for all lines after the first one
-% and does not take any account of the equation number.
+% and does not take any account of the equation number.
% A substantial majority of equations only require one line anyway,
-% and for them this first trial will succeed.
+% and for them this first trial will succeed.
% In the one-line case if there is an equation number and it doesn't
% fit on the same line as the equation body, we don't go on to other
% trials because breaking up the equation body will not gain us
% anything\mdash we know that we'll have to use two lines in any case
% \mdash so we might as well keep the equation body together on one line
-% and shift the number to a separate line.
-%
+% and shift the number to a separate line.
+%
% If we learn from the first trial that the equation body
% requires more than one line, the next parshape trial involves adjusting
% the previous parshape to leave room for the equation number, if
% present. If no number is present, again no further trials are
-% needed.
-%
-% Some remarks about parshape handling. The \tex
+% needed.
+%
+% Some remarks about parshape handling. The \tex
% primitive doesn't store the line specs anywhere, \verb"\the\parshape"
% only returns the number of line specs. This makes it well nigh
% impossible for different packages that use \cs{parshape} to work
@@ -4264,15 +4266,15 @@
% obviously, is provide a parshape interface that includes a record of all
% the line specs. For that we designate a macro \cs{@parshape}
% which includes not only the line specs, but also the line count and even
-% the leading \cs{parshape} token.
+% the leading \cs{parshape} token.
% This allows it to be directly executed without an auxiliary if-empty
% test. It should include a trailing \cs{relax} when it has a
-% nonempty value.
+% nonempty value.
% \begin{macrocode}
\let\@parshape\@empty
% \end{macrocode}
-%
-%
+%
+%
% The function \cs{eq at measure} runs line-breaking trials
% on the copy of the equation body that is stored in the box register
% \cs{EQ at copy}, trying various possible layouts in order of
@@ -4283,27 +4285,27 @@
% depends on the line breaks such as the depth of the last line, the
% height of the first line, and positioning information for the equation
% number. The two main variables in the equation layout are the line
-% width and the placement of the equation number, if one is present.
-%
-%
+% width and the placement of the equation number, if one is present.
+%
+%
% \begin{macro}{\eq at measure}
% Run linebreak trials on the equation contents and measure the
-% results.
+% results.
% \begin{macrocode}
\def\eq at measure{%
% \end{macrocode}
% If an override value is given for indentstep in the env options, use
-% it.
+% it.
% \begin{macrocode}
\ifdim\eq at indentstep=\maxdimen \eq at indentstep\eqindentstep \fi
% \end{macrocode}
% If \cs{eq at linewidth} is nonzero at this point, it means that
-% the user specified a particular target width for this equation.
-% In that case we override the normal list of trial widths.
+% the user specified a particular target width for this equation.
+% In that case we override the normal list of trial widths.
% \begin{macrocode}
\ifdim\eq at linewidth=\z@ \else \edef\eq at linewidths{{\the\eq at linewidth}}\fi
\begingroup \eq at params
- \leftskip\z at skip
+ \leftskip\z at skip
% \end{macrocode}
% Even if \cs{hfuzz} is greater than zero a box whose contents
% exceed the target width by less then hfuzz still has a reported badness
@@ -4312,7 +4314,7 @@
% such boxes return a smaller badness. To this end we include an
% \cs{hfuzz} allowance in \cs{rightskip}. In fact,
% \cs{eq at params} ensures that \cs{hfuzz} for equations is at
-% least 1pt.
+% least 1pt.
% \begin{macrocode}
\rightskip\z@\@plus\columnwidth\@minus\hfuzz
% \eqinfo
@@ -4322,7 +4324,7 @@
\endgroup
% \end{macrocode}
% \quoted{local} parameter settings are passed outside the endgroup through
-% \cs{EQ at trial}.
+% \cs{EQ at trial}.
% \begin{macrocode}
\EQ at trial
}
@@ -4358,30 +4360,30 @@
% Layout Trials Driver
% Basically, trying different sequences of parshapes.
%
-%
+%
% \begin{macro}{\EQ at trial}
-% Init.
+% Init.
% \begin{macrocode}
\let\EQ at trial\@empty
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\EQ at continue}
% This is a token register used to carry trial info past a
-% group boundary with only one global assignment.
+% group boundary with only one global assignment.
% \begin{macrocode}
\newtoks\EQ at continue
% \end{macrocode}
% \end{macro}
-%
-%
-% \begin{macro}{\EQ at widths}
+%
+%
+% \begin{macro}{\EQ at widths}
% This is used for storing the actual line-width info of the equation
-% contents after breaking.
+% contents after breaking.
% \begin{macrocode}
\let\EQ at widths\@empty
-% \end{macrocode}
+% \end{macrocode}
% \end{macro}
% \begin{macro}{\EQ at fallback}
% \begin{macrocode}
@@ -4389,7 +4391,7 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\eq at linewidths}
-% This is the list of target widths for line breaking.
+% This is the list of target widths for line breaking.
%
%========================================
% BRM: Odd; I don't think I've seen this use anything but \cs{displaywidth}...
@@ -4397,12 +4399,12 @@
\def\eq at linewidths{\displaywidth\linewidth\columnwidth}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at trial}
% The \cs{eq at trial} function tries each candidate
% line width in \cs{eq at linewidths} until an equation layout is found
-% that yields satisfactory line breaks.
+% that yields satisfactory line breaks.
% \begin{macrocode}
\def\eq at trial{%
\ifx\@empty\eq at linewidths
@@ -4414,32 +4416,32 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at trial@a}
% The \cs{eq at trial@a} function reads the leading line
% width from \cs{eq at linewidths}; if the new line width is greater
% than the previous one, start running trials with it; otherwise do
-% nothing with it.
+% nothing with it.
% Finally, run a peculiar \cs{edef} that leaves
-% \cs{eq at linewidths} redefined to be the tail of the list.
+% \cs{eq at linewidths} redefined to be the tail of the list.
% If we succeed in finding satisfactory line breaks
% for the equation, we will reset \cs{EQ at continue} in such a
-% way that it will terminate the current trials.
+% way that it will terminate the current trials.
% An obvious branch here would be to check whether the width of
% \cs{EQ at copy} is less than \cs{eq at linewidth} and go immediately
-% to the one-line case if so.
+% to the one-line case if so.
% However, if the equation contains more than one RHS, by
% default each additional RHS starts on a new line\mdash \ie , we want
-% the ladder layout anyway.
+% the ladder layout anyway.
% So we choose the initial trial on an assumption of multiple lines
-% and leave the one-line case to fall out naturally at a later point.
+% and leave the one-line case to fall out naturally at a later point.
% \begin{macrocode}
\def\eq at trial@a#1{%
\dim at c#1\relax
\if T\eq at frame \eq at frame@adjust\dim at c \fi
\ifdim\dim at c>\eq at linewidth
- \eq at linewidth\dim at c
+ \eq at linewidth\dim at c
%<trace> \breqn at debugmsg{Choose Shape for width(#1)=\the\eq at linewidth}%
\let\eq at trial@b\eq at trial@d
\csname eq at try@layout@\eq at layout\endcsname
@@ -4466,7 +4468,7 @@
}
% \end{macrocode}
% \begin{macro}{\eq at trial@done}
-% Success.
+% Success.
% \begin{macrocode}
\def\eq at trial@done{%
%<trace> \breqn at debugmsg{End trial: Success!}%
@@ -4474,22 +4476,22 @@
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\eq at trial@init}
% This is called from \cs{eq at trial@b} to initialize or
% re-initialize certain variables as needed when running one or more
-% trials at a given line width.
-% By default assume success, skip the fallback code.
+% trials at a given line width.
+% By default assume success, skip the fallback code.
% \begin{macrocode}
\def\eq at trial@init{\global\let\EQ at fallback\eq at nextlayout}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\eq at nextlayout}
-%
+%
% In the fallback case cancel the current group to avoid unnecessary
-% group nesting (with associated save-stack cost, \etc ).
+% group nesting (with associated save-stack cost, \etc ).
% \begin{macrocode}
-\def\eq at nextlayout#1{%
+\def\eq at nextlayout#1{%
\endgroup
%<trace> \breqn at debugmsg{Nope ... that ain't gonna work.}%
\begingroup #1%
@@ -4497,8 +4499,8 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\eq at failout}
-%
-% .
+%
+% .
% \begin{macrocode}
\def\eq at failout{%
%<trace>\breqn at debugmsg{End trial: failout}%
@@ -4507,8 +4509,8 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\eq at trial@save}
-%
-% Save the parameters of the current trial.
+%
+% Save the parameters of the current trial.
% \begin{macrocode}
\def\eq at trial@save#1{%
%<*trace>
@@ -4540,18 +4542,18 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\eq at trial@b}
-%
-% By default this just runs \cs{eq at trial@c}; \cf
-% \cs{eq at trial@d}.
+%
+% By default this just runs \cs{eq at trial@c}; \cf
+% \cs{eq at trial@d}.
% \begin{macrocode}
\def\eq at trial@b{\eq at trial@c}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at trial@c}
-%
-% Run the equation contents through the current parshape.
+%
+% Run the equation contents through the current parshape.
% \begin{macrocode}
\def\eq at trial@c#1#2{%
%<trace> \breqn at debugmsg{Trying layout "#1" with\MessageBreak==== parshape\space\@xp\@gobble\@parshape}%
@@ -4565,7 +4567,7 @@
\eq at trial@save\EQ at trial
% \end{macrocode}
% If there is a number, try the same parshape again with adjustments
-% to make room for the number.
+% to make room for the number.
%
% This is an awkward place for this:
% It only allows trying to fit the number w/the SAME layout shape!
@@ -4591,7 +4593,7 @@
\def\eq at trial@d#1#2{\eq at trial@c{#1}{}}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\eq at check@density}
% \begin{macrocode}
\def\eq at check@density{%
@@ -4607,7 +4609,7 @@
% \end{macro}
%
% \begin{macro}{\eq at shortLHS}
-% Test to see if we need to apply the \cs{eq at dense@enough} test.
+% Test to see if we need to apply the \cs{eq at dense@enough} test.
% \begin{macrocode}
\def\eq at shortLHS{\ifdim\eq at wdL>.44\eq at wdT 1\else 0\fi 0}
% \end{macrocode}
@@ -4635,10 +4637,10 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\adjust at rel@penalty}
-% Normally this is a no-op.
+% Normally this is a no-op.
% \begin{macrocode}
\let\adjust at rel@penalty\@empty
% \end{macrocode}
@@ -4645,14 +4647,14 @@
% \end{macro}
%
% \begin{macro}{\eq at fix@lastline}
-% Remove parfillskip from the last line box.
+% Remove parfillskip from the last line box.
% \begin{macrocode}
\def\eq at fix@lastline{%
\setbox\tw@\lastbox \dim at b\wd\tw@
\eq at dp\dp\tw@
% \end{macrocode}
-% Remove \cs{parfillskip} but retain \cs{rightskip}.
-% Need to keep the original line width for later shrink testing.
+% Remove \cs{parfillskip} but retain \cs{rightskip}.
+% Need to keep the original line width for later shrink testing.
% \begin{macrocode}
\nointerlineskip\hbox to\dim at b{\unhbox\tw@
\skip at c\lastskip \unskip\unskip\hskip\skip at c
@@ -4661,8 +4663,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\eq at recalc}
-% Calculate \cs{eq at wdT} et cetera.
+% \begin{macro}{\eq at recalc}
+% Calculate \cs{eq at wdT} et cetera.
% \begin{macrocode}
\def\eq at recalc{%
\eq at wdT\z@ \eq at wdMin\maxdimen \eq at vspan\z at skip \eq at badness\z@
@@ -4670,8 +4672,8 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at recalc@a}
% \begin{macrocode}
\def\eq at recalc@a#1x#2+#3\@endelt{%
@@ -4681,8 +4683,8 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at recalc@b}
% \begin{macrocode}
\def\eq at recalc@b#1X#2,#3x#4+#5@#6\@endelt{%
@@ -4692,7 +4694,7 @@
\eq at dp#5\relax
\addtolength\eq at vspan{#1+#4+\eq at dp}%
% \end{macrocode}
-% Record the max badness of all the lines in \cs{eq at badness}.
+% Record the max badness of all the lines in \cs{eq at badness}.
% \begin{macrocode}
\ifnum#6>\eq at badness \eq at badness#6\relax\fi
}
@@ -4699,11 +4701,11 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\eq at layout}
+% \begin{macro}{\eq at layout}
% A value of \verb"?" for \cs{eq at layout} means that we should
-% deduce which layout to use by looking at the size of the components.
+% deduce which layout to use by looking at the size of the components.
% Any other value means we have a user-specified override on the
-% layout.
+% layout.
%
% Layout Definitions.
% Based on initial equation measurements, we can choose a sequence of
@@ -4715,11 +4717,11 @@
\def\eq at layout{?}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at try@layout@?}
% This is a branching function used to choose a suitable layout if
-% the user didn't specify one in particular.
+% the user didn't specify one in particular.
%
% Default layout:
% Try Single line layout first, else try Multiline layouts
@@ -4744,7 +4746,7 @@
\rightskip\z@\@plus\dim at b\@minus\hfuzz
\eq at trial@b{i}{\eq at try@layout at multi}%
\else
-%<*trace>
+%<*trace>
\breqn at debugmsg{Choose Shape: Too long (\the\wd\EQ at copy) for one line
(free width=\the\dim at b)}%
%</trace>
@@ -4761,8 +4763,8 @@
\ifdim\eq at wdL>\eq at linewidth
%<trace> \breqn at debugmsg{Choose Shape: LHS \the\eq at wdL > linewidth}%
% \end{macrocode}
-% Find the total width of the RHS.
-% If it is relatively short, a step layout is the thing to try.
+% Find the total width of the RHS.
+% If it is relatively short, a step layout is the thing to try.
% \begin{macrocode}
\setlength\dim at a{\wd\EQ at copy-\eq at wdL}%
\ifdim\dim at a<.25\eq at linewidth \eq at try@layout at S
@@ -4781,7 +4783,7 @@
\else
%<trace> \breqn at debugmsg{Choose Shape: No LHS here}%
% \end{macrocode}
-% Try one-line layout first, then step layout.
+% Try one-line layout first, then step layout.
% \begin{macrocode}
\eq at try@layout at S % (already checked case i)
\fi
@@ -4791,13 +4793,13 @@
%
% \begin{macro}{\eq at try@layout at D}
% Change the penalty before the first mathrel symbol to encourage a
-% break there.
+% break there.
%
% Layout D=Drop-Ladder Layout, for wide LHS.
% \begin{literalcode}
% LOOOOOOOONG LHS
% = RHS
-% = ...
+% = ...
% \end{literalcode}
% If fails, try Almost-Columnar layout
% \begin{macrocode}
@@ -4812,9 +4814,9 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\eq at try@layout at L}
-% Try a straight ladder layout.
+% Try a straight ladder layout.
% Preliminary filtering ensures that \cs{eq at wdL} is less than 70%
-% of the current line width.
+% of the current line width.
% \begin{literalcode}
% Layout L=Ladder layout
% LHS = RHS
@@ -4837,20 +4839,20 @@
%
% \begin{macro}{\eq at try@layout at S}
% In the \dquoted{stepped} layout there is no LHS, or LHS
-% is greater than the line width and RHS is small.
+% is greater than the line width and RHS is small.
% Then we want to split up the equation into lines of roughly equal
% width and stagger them downwards to the right, leaving a small amount of
-% whitespace on both sides.
+% whitespace on both sides.
% But also, if there is an equation number, we want to try first a
-% layout that leaves room for the number.
+% layout that leaves room for the number.
% Otherwise it would nearly always be the case that the number would
-% get thrown on a separate line.
+% get thrown on a separate line.
%
% Layout S=Stepped layout, typically no LHS or very long, variations on
% \begin{literalcode}
% STUFF ....
% + MORE STUFF ...
-% + MORE STUFF ...
+% + MORE STUFF ...
% \end{literalcode}
% If fails, try Almost-Columnar layout
% \begin{macrocode}
@@ -4857,18 +4859,18 @@
\def\eq at try@layout at S{%
\setlength\dim at b{\eq at linewidth-2\eqmargin}% \advance\dim at b-1em%
% \end{macrocode}
-% About how many lines will we need if dim at b is the line width?
+% About how many lines will we need if dim at b is the line width?
% \begin{macrocode}
\int at a\wd\EQ at copy \divide\int at a\dim at b
% \end{macrocode}
-% Adjust the target width by number of lines times indentstep.
-% We don't need to decrement \cs{int at a} because \tex
-% division is integer division with truncation.
+% Adjust the target width by number of lines times indentstep.
+% We don't need to decrement \cs{int at a} because \tex
+% division is integer division with truncation.
% \begin{macrocode}
\addtolength\dim at b{-\int at a\eq at indentstep}%
% \end{macrocode}
-% Adjust for equation number.
-% But try not to leave too little room for the equation body.
+% Adjust for equation number.
+% But try not to leave too little room for the equation body.
% \begin{macrocode}
\if\eq at hasNumber
\ifdim\dim at b>15em%
@@ -4877,7 +4879,7 @@
\fi
\fi
% \end{macrocode}
-% Now some hand-waving to set up the parshape.
+% Now some hand-waving to set up the parshape.
% \begin{macrocode}
\int at b\z@
\def\@tempa{\dim}%
@@ -4890,7 +4892,7 @@
%
% \begin{macro}{\eq at try@layout at l}
% This is the \dquoted{step-ladder} layout: similar to the drop-ladder
-% layout but the LHS is too wide and needs to be broken up.
+% layout but the LHS is too wide and needs to be broken up.
%
% Layout l = Stepladder
% Similar to Drop-Ladder, but LHS is long and needs to be broken up.
@@ -4914,11 +4916,11 @@
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\eq at try@layout at A}
% In the \dquoted{almost-columnar} layout, which is the layout of last
% resort, we let all lines run to the full width and leave the adjusting
-% of the indents to later.
+% of the indents to later.
%
% Layout A = Almost-Columnar layout.
% Pretty much straight full width, more of a last-resort.
@@ -4929,7 +4931,7 @@
\if\EQ at hasLHS \def\adjust at rel@penalty{\penalty-99 }\fi
\eq at trial@b{A}{}%
}
-% \end{macrocode}
+% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\eq at shiftnumber}
@@ -4964,7 +4966,7 @@
\addtolength\dim at b{\@totalleftmargin}%
\fi
\setlength\dim at a{\eq at linewidth-\dim at b}%\advance\dim at a1em\relax% Allowance for shrink?
-% \end{macrocode}
+% \end{macrocode}
% Set up test against 1-line case only if not in a group
% \begin{macrocode}
\int at a\@ne\if\eq at group\int at a\maxint\fi
@@ -5022,7 +5024,7 @@
\fi\fi%\fi
\fi\fi\fi
% \end{macrocode}
-% If we got shifted, restore parshape, etc,
+% If we got shifted, restore parshape, etc,
% \begin{macrocode}
\if\eq at shiftnumber
\EQ at trial% Restore parshape & other params,
@@ -5036,12 +5038,12 @@
% \end{macro}
%
% \begin{macro}{\adjust at parshape}
-% Varies depending on the layout.
+% Varies depending on the layout.
%
% Adjust a parshape variable for a given set of left\textbar right skips.
% Note that the fixed part of the left\textbar right skips effectively
% comes out of the parshape widths (NOT in addition to it).
-% We also must trim the widths so that the sum of skips, indents
+% We also must trim the widths so that the sum of skips, indents
% and widths add up to no more than the \cs{eq at linewidth}.
% \begin{macrocode}
\def\adjust at parshape#1{%
@@ -5050,8 +5052,8 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\adjust at parshape@a}
% \begin{macro}{\adjust at parshape@b}
% \begin{macrocode}
@@ -5077,9 +5079,9 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\eq at ml@record at indents}
+% \begin{macro}{\eq at ml@record at indents}
% Plunk the parshape's indent values into an array for easy access
-% when constructing \cs{eq at measurements}.
+% when constructing \cs{eq at measurements}.
% \begin{macrocode}
\def\eq at ml@record at indents{%
\int at a\z@
@@ -5095,20 +5097,20 @@
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\@endelt}
-% This is a scan marker.
-% It should get a non-expandable definition.
-% It could be \cs{relax}, but let's try a chardef instead.
+% This is a scan marker.
+% It should get a non-expandable definition.
+% It could be \cs{relax}, but let's try a chardef instead.
% \begin{macrocode}
\chardef\@endelt=`\?
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at measurements}
% This is similar to a parshape spec but for each line we record more
-% info: space above, indent, width x height + dp, and badness.
+% info: space above, indent, width x height + dp, and badness.
% \begin{macrocode}
\def\eq at measurements{%
\@elt 4.5pt/5.0pt,66.0ptx6.8pt+2.4pt at 27\@endelt
@@ -5116,16 +5118,16 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at measure@lines}
% Loop through the list of boxes to measure things like total
% height (including interline stretch), \etc . We check the
-% actual width of the current line against the natural width \mdash
+% actual width of the current line against the natural width \mdash
% after removing rightskip \mdash in case the former is
% \emph{less} than the latter because of shrinkage. In that
% case we do not want to use the natural width for RHS-max-width because
-% it might unnecessarily exceed the right margin.
+% it might unnecessarily exceed the right margin.
% \begin{macrocode}
\def\eq at measure@lines{%
\let\eq at ml@continue\eq at measure@lines
@@ -5137,10 +5139,10 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at ml@a}
-%
+%
% \begin{macrocode}
\def\eq at ml@a{%
\setbox\tw@\hbox{\unhbox\z@ \unskip}% find natural width
@@ -5148,7 +5150,7 @@
\ifnum\eq at badness<\inf at bad\else\breqn at debugmsg{!?! Overfull: \the\wd\tw@ >\the\dim at b}\fi
%</trace>
% \end{macrocode}
-% Is actual width less than natural width?
+% Is actual width less than natural width?
% \begin{macrocode}
\ifdim\dim at b<\wd\tw@ \setlength\dim at a{\dim at b}% shrunken line
\else \setlength\dim at a{\wd\tw@}% OK to use natural width
@@ -5156,7 +5158,7 @@
\addtolength\dim at a{-\leftskip}% BRM: Deduct the skip if we're retrying w/number
% \end{macrocode}
% If there's no aboveskip, assume we've reached the top of the
-% equation.
+% equation.
% \begin{macrocode}
\skip at a\lastskip \unskip \unpenalty
\ifdim\skip at a=\z@
@@ -5184,11 +5186,11 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at ml@vspace}
-%
-% Handle an embedded vspace.
+%
+% Handle an embedded vspace.
% \begin{macrocode}
\def\eq at ml@vspace{%
\global\advance\eq at vspan\lastskip \unskip\unpenalty
@@ -5196,17 +5198,17 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at dense@enough}
-%
+%
% \begin{macrocode}
\def\eq at dense@enough{%
- \ifnum\eq at lines<\thr@@
+ \ifnum\eq at lines<\thr@@
%<trace> \breqn at debugmsg{Density check: less than 3 lines; OK}%
\@True
\else
- \ifdim\eq at wdL >.7\eq at wdT
+ \ifdim\eq at wdL >.7\eq at wdT
%<trace> \breqn at debugmsg{Density check: LHS too long; NOT OK}%
\@False
\else \@xp\@xp\@xp\eq at dense@enough at a
@@ -5215,8 +5217,8 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\true at true@true}
% \begin{macro}{\true at false@true}
% \begin{macro}{\false at true@false}
@@ -5231,34 +5233,34 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at density@factor}
-%
+%
% This number specifies, for the ladder layout, how much of the
% equation's bounding box should contain visible material rather than
-% whitespace.
+% whitespace.
% If the amount of visible material drops below this value, then we
-% switch to the drop-ladder layout.
+% switch to the drop-ladder layout.
% The optimality of this factor is highly dependent on the equation
% contents; .475 was chosen as the default just because it worked well
% with the sample equation, designed to be as average as possible, that I
-% used for testing.
+% used for testing.
% \begin{macrocode}
\def\eq at density@factor{.475}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at dense@enough at a}
-%
+%
% Calculate whether there is more
-% visible material than whitespace within the equation's bounding box.
+% visible material than whitespace within the equation's bounding box.
% Sum up the actual line widths and compare to the total
-% \dquoted{area} of the bounding box.
+% \dquoted{area} of the bounding box.
% But if we have an extremely large number of lines, fall back to an
% approximate calculation that is more conservative about the danger of
-% exceeding \cs{maxdimen}.
+% exceeding \cs{maxdimen}.
% \begin{macrocode}
\def\eq at dense@enough at a{%
\@True \fi
@@ -5273,20 +5275,20 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at delt}
-% Args are space-above, indent, width, height, depth, badness.
+% Args are space-above, indent, width, height, depth, badness.
% \begin{macrocode}
\def\eq at delt#1X#2,#3x#4+#5@#6\@endelt{\addtolength\dim at b{#3}}%
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at dense@enough at b}
% This is an approximate calculation used to keep from going over
% \cs{maxdimen} if the number of lines in our trial break is large
-% enough to make that a threat.
+% enough to make that a threat.
% If l, t, n represent left-side-width, total-width, and number of
% lines, the formula is
% \begin{literalcode}
@@ -5297,7 +5299,7 @@
% \begin{literalcode}
% l/t < 4n/(9n-10)
% \end{literalcode}
-% .
+% .
% \begin{macrocode}
\def\eq at dense@enough at b{%
\int at b\eq at wdT \divide\int at b\p@
@@ -5310,17 +5312,17 @@
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\eq at parshape}
% \begin{macrocode}
\let\eq at parshape\@empty
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at params}
% The interline spacing and penalties in \cs{eq at params}
-% are used during both preliminary line breaking and final typesetting.
+% are used during both preliminary line breaking and final typesetting.
% \begin{macrocode}
\def\eq at params{%
\baselineskip\eqlinespacing
@@ -5332,19 +5334,19 @@
% of a page; instead it will be moved whole to the top of the next
% page. If you really really need a page break that splits the
% first or last line from the rest of the equation, you can always fall
-% back to\cs{pagebreak}, I suppose.
-%
+% back to\cs{pagebreak}, I suppose.
+%
% \begin{macrocode}
\clubpenalty\@M \widowpenalty\@M \interlinepenalty\eqinterlinepenalty
\linepenalty199 \exhyphenpenalty5000 % was 9999: make breaks at, eg. \* a bit easier.
% \end{macrocode}
-% For equations, hfuzz should be at least 1pt.
+% For equations, hfuzz should be at least 1pt.
% But we have to fake it a little because we are running the equation
-% through \tex 's paragrapher.
+% through \tex 's paragrapher.
% In our trials we use minus 1pt in the rightskip rather than hfuzz;
% and we must do the same during final breaking of the equation, otherwise
% in borderline cases \tex will use two lines instead of one when our
-% trial indicated that one line would be enough.
+% trial indicated that one line would be enough.
% \begin{macrocode}
\ifdim\hfuzz<\p@ \hfuzz\p@ \fi
%\hfuzz=2pt
@@ -5353,16 +5355,16 @@
% \hfuzz\z@
% \end{macrocode}
% Make sure we skip \tex 's preliminary line-breaking pass to save
-% processing time.
+% processing time.
% \begin{macrocode}
\tolerance9999 \pretolerance\m at ne
}
% \end{macrocode}
% \end{macro}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{Equation layout options}
% Using the notation C centered, I indented (applied to
% the equation body), T top, B bottom, M
@@ -5370,7 +5372,7 @@
% the commonly used equation types are C, CRM, CRB, CLM, CLT,
% I, IRM, IRB, ILM, ILT. In other words, CLM stands for Centered equation
% body with Left-hand Middle-placed equation number, and IRB stands for
-% Indented equation with Right-hand Bottom-placed equation number.
+% Indented equation with Right-hand Bottom-placed equation number.
%
% Here are some general thoughts on how to place an equation
% tag. Currently it does not work as desired: the L option positions
@@ -5377,7 +5379,7 @@
% the tag app. 10 lines below the math expression, the RM doesn't
% position the tag on the baseline for single-line math
% expressions. Therefore I am going to first write what I think is
-% supposed to happen and then implement it.
+% supposed to happen and then implement it.
%
% Below is a small list where especially the two three specifications
% should be quite obvious, I just don't want to forget anything and it
@@ -5402,7 +5404,7 @@
% positioned exactly halfway between the baseline of the top line of
% the display and the baseline of the bottom line of the display.
% \end{description}
-%
+%
% Definitions 1--3 are almost axiomatic in their
% simplicity. Definition~4 is different because I saw at least two
% possibilities for which area to span:
@@ -5410,7 +5412,7 @@
% \item Calculate distance from top of top line to the bottom of the
% bottom line, position the vertical center of the tag exactly
% halfway between those two extremes.
-%
+%
% \item Calculate the distance from the baseline of the top line to
% the baseline of the bottom line, position the baseline of the tag
% exactly halfway between these two extremes.
@@ -5433,10 +5435,10 @@
% than the tag.
%
% \section{Centered Right-Number Equations}
-%
+%
% \begin{macro}{\eq at dump@box}
% \arg1 might be \cs{unhbox} or \cs{unhcopy}; \arg2 is
-% the box name.
+% the box name.
% \begin{macrocode}
\def\eq at dump@box#1#2{%
%\debug at box#1%
@@ -5443,12 +5445,12 @@
\noindent #1#2\setbox\f at ur\lastbox \setbox\tw@\lastbox
% \end{macrocode}
% If the LHS contains shrinkable glue, in an L layout the alignment
-% could be thrown off if the first line is shrunk noticeably.
-% For the time being, disable shrinking on the left-hand side.
+% could be thrown off if the first line is shrunk noticeably.
+% For the time being, disable shrinking on the left-hand side.
% The proper solution requires more work \begin{dn}
% mjd,1999/03/17
% \end{dn}
-% .
+% .
% \begin{macrocode}
\if L\eq at layout \box\tw@ \else\unhbox\tw@\fi
\adjust at rel@penalty \unhbox\f at ur
@@ -5464,7 +5466,7 @@
% Given that left and right skips have been set,
% typeset the frame, number and equation with the
% given number side and placement
-%
+%
% \begin{macrocode}
\def\eq at typeset@Unnumbered{%
\eq at typeset@frame
@@ -5540,11 +5542,11 @@
%<*trace>
\def\debug at showformat{%
\breqn at debugmsg{Formatting Layout:\eq at layout\space Center/indent: \eqindent\space
- Number placement \eqnumside\eqnumplace:
+ Number placement \eqnumside\eqnumplace:
\MessageBreak==== \eq at linewidth=\the\eq at linewidth, \@totalleftmargin=\the\@totalleftmargin,
\MessageBreak==== Centered Lines=\theb@@le\eq at centerlines, Shift Number=\theb@@le\eq at shiftnumber,
\MessageBreak==== \eq at wdT=\the\eq at wdT, \eq at wdMin=\the\eq at wdMin,
- \MessageBreak==== LHS=\theb@@le\EQ at hasLHS: \eq at wdL=\the\eq at wdL,
+ \MessageBreak==== LHS=\theb@@le\EQ at hasLHS: \eq at wdL=\the\eq at wdL,
\MessageBreak==== \eq at firstht=\the\eq at firstht, \eq at vspan=\the\eq at vspan
\MessageBreak==== \eq at wdNum=\the\eq at wdNum
\MessageBreak==== \eq at wdCond=\the\eq at wdCond, \conditionsep=\the\conditionsep,
@@ -5556,7 +5558,7 @@
%</trace>
% \end{macrocode}
%
-% Set left \& right skips for centered equations,
+% Set left \& right skips for centered equations,
% making allowances for numbers (if any, right, left) and constraint.
%
% Amazingly, I've managed to collect all the positioning logic for
@@ -5656,7 +5658,7 @@
% Some things handled by eq at C@setsides that probably apply here????
% \begin{itemize}
% \item centerlines
-% \item \cs{@totalleftmargin}: SHOULD we move farther right?
+% \item \cs{@totalleftmargin}: SHOULD we move farther right?
% \end{itemize}
% Leftskip is normally just the requested indentation
% \begin{macrocode}
@@ -5728,7 +5730,7 @@
% The \cs{eqframe} function is called in vertical mode
% with the reference point at the top left corner of the equation, including
% any allowance for \cs{fboxsep}. Its arguments are the width
-% and height of the equation body, plus fboxsep.
+% and height of the equation body, plus fboxsep.
% \changes{v0.95}{2007/12/03}{Made \cs{eqframe} obey the key settings
% for frame and framesep.}
% \begin{macrocode}
@@ -5763,7 +5765,7 @@
\fi
}
% \end{macrocode}
-%
+%
% \section{Delimiter handling}
% The special handling of delimiters is rather complex, but
% everything is driven by two motives: to mark line breaks inside
@@ -5772,21 +5774,21 @@
% \cs{left} and \cs{right} delimiters are not absolutely
% prohibited. To control the extent to which line breaks will be
% allowed inside delimiters, set \cs{eqbreakdepth} to the maximum
-% nesting depth. Depth 0 means never break inside delimiters.
-%
-% Note: \cs{eqbreakdepth} is not implemented as a \latex
+% nesting depth. Depth 0 means never break inside delimiters.
+%
+% Note: \cs{eqbreakdepth} is not implemented as a \latex
% counter because changes done by \cs{setcounter} \etc are always
-% global.
-%
+% global.
+%
% It would be natural to use grouping in the implementation
% \mdash at an open delimiter, start a group and increase mathbin
% penalties; at a close delimiter, close the group. But this gives us
% trouble in situations like the \env{array} environment, where a
% close delimiter might fall in a different cell of the \cs{halign}
-% than the open delimiter.
+% than the open delimiter.
% Ok then, here's what we want the various possibilities to
% expand to. Note that \cs{right} and \cs{biggr} are
-% being unnaturally applied to a naturally open-type delimiter.
+% being unnaturally applied to a naturally open-type delimiter.
% \begin{literalcode}
% ( -> \delimiter"4... \after at open
% \left( ->
@@ -5804,23 +5806,23 @@
% \biggm\vert ->
% \mathrel{\@@left \delimiter... \vrule...\@@right.}
% \end{literalcode}
-%
+%
% First save the primitive meanings of \cs{left} and
-% \cs{right}.
+% \cs{right}.
% \begin{macrocode}
\@saveprimitive\left\@@left
\@saveprimitive\right\@@right
% \end{macrocode}
-%
+%
% The variable \cs{lr at level} is used by the first mathrel in
% an equation to tell whether it is at top level: yes? break and measure
-% the LHS, no? keep going.
+% the LHS, no? keep going.
% \begin{macrocode}
\newcount\lr at level
% \end{macrocode}
-%
+%
% It would be nice to have better error checking here if the
-% argument is not a delimiter symbol at all.
+% argument is not a delimiter symbol at all.
%
% Ah, a small problem when renaming commands. In the original version,
% |\delimiter| is hijacked in order to remove the |\after at bidir| (or
@@ -5834,7 +5836,7 @@
\@ifnext .{\eq at nullright}{\begingroup \let \math_delimiter:NNnNn \eq at right@a}%
}
% \end{macrocode}
-% The arguments are: \arg1 delim symbol, \arg2 .
+% The arguments are: \arg1 delim symbol, \arg2 .
% \begin{macrocode}
%\def\eq at left@a#1 #2{\endgroup\@@left\delimiter#1\space \after at open}
\def\eq at left@a#1#2#3#4#5#6{\endgroup
@@ -5844,26 +5846,26 @@
}
\ExplSyntaxOff
% \end{macrocode}
-% The null versions.
+% The null versions.
% \begin{macrocode}
\def\eq at nullleft#1{\@@left#1\after at open}
\def\eq at nullright#1{\@@right#1\after at close}
% \end{macrocode}
-%
-% Here is the normal operation of \cs{biggl}, for example.
+%
+% Here is the normal operation of \cs{biggl}, for example.
% \begin{literalcode}
% \biggl ->\mathopen \bigg
% {\mathopen}
-%
+%
% \bigg #1->{\hbox {$\left #1\vbox to14.5\p@ {}\right .\n at space $}}
% #1<-(
% \end{literalcode}
% ^^AFor paren matching: )
% Like \cs{left}, \cs{biggl} coerces its delimiter to be of
-% mathopen type even if its natural inclination is towards closing.
-%
+% mathopen type even if its natural inclination is towards closing.
+%
% The function \cs{delim at reset} makes delimiter characters
-% work just about the same as they would in normal \latex .
+% work just about the same as they would in normal \latex .
% \begin{macrocode}
\def\delim at reset{%
\let\after at open\relax \let\after at close\relax
@@ -5875,7 +5877,7 @@
% variants will have hard-coded point sizes as inherited through the ages
% from \fn{plain.tex}. In this case we can kluge a little by
% setting \cs{big at size} to \cs{p@}, so that our definition of
-% \cs{bBigg@} will work equally well with the different multipliers.
+% \cs{bBigg@} will work equally well with the different multipliers.
% \begin{macrocode}
\@ifundefined{bBigg@}{% not defined
\let\big at size\p@
@@ -5891,7 +5893,7 @@
}%
}
% \end{macrocode}
-% .
+% .
% \begin{macrocode}
\def\bigl#1{\mathopen\big{#1}\after at open}
\def\Bigl#1{\mathopen\Big{#1}\after at open}
@@ -5915,21 +5917,21 @@
%%\def\bigggm{\mathrel\biggg}
%%\def\Bigggm{\mathrel\Biggg}
% \end{macrocode}
-%
-%
+%
+%
% \begin{macro}{\m@@DeL} \begin{macro}{\d@@DeL}
% \begin{macro}{\m@@DeR} \begin{macro}{\d@@DeR}
% \begin{macro}{\m@@DeB} \begin{macro}{\d@@DeB}
% Original definition of \cs{m at DeL} from
% \pkg{flexisym} is as follows. \cs{m at DeR} and
-% \cs{m at DeB} are the same except for the math class number.
+% \cs{m at DeB} are the same except for the math class number.
% \begin{literalcode}
% \def\m at DeL#1#2#3{%
% \delimiter"4\@xp\delim at a\csname sd@#1#2#3\endcsname #1#2#3 }
% \end{literalcode}
-%
-% Save the existing meanings of \cs{m at De[LRB]}.
%
+% Save the existing meanings of \cs{m at De[LRB]}.
+%
% Define display variants of DeL, DeR, DeB
% \begin{macrocode}
\ExplSyntaxOn
@@ -5960,7 +5962,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
+%
% \begin{macro}{\after at open}
% \begin{macro}{\after at close}
% \begin{macro}{\after at bidir}
@@ -5967,11 +5969,11 @@
% \begin{macro}{\zero at bop}
% \begin{macro}{\bop at incr}
% \cs{after at open} and \cs{after at close} are carefully
-% written to avoid the use of grouping and to run as fast as possible.
+% written to avoid the use of grouping and to run as fast as possible.
% \cs{zero at bop} is the value used for \cs{prebinoppenalty} at
% delimiter level 0, while \cs{bop at incr} is added for each level of
% nesting. The standard values provide that breaks will be prohibited
-% within delimiters below nesting level 2.
+% within delimiters below nesting level 2.
% \begin{macrocode}
\let\after at bidir\@empty
\mathchardef\zero at bop=888 \relax
@@ -5985,7 +5987,7 @@
% \end{macrocode}
% Inside delimiters, add some fillglue before binops so that a broken off
% portion will get thrown flush right. Also shift it slightly
-% further to the right to ensure that it clears the opening delimiter.
+% further to the right to ensure that it clears the opening delimiter.
% \begin{macrocode}
\else
\eq at binoffset=\eqbinoffset
@@ -6003,7 +6005,7 @@
\fi
% \end{macrocode}
% When we get back to level 0, no delimiters, remove the stretch
-% component of \cs{eqbinoffset}.
+% component of \cs{eqbinoffset}.
% \begin{macrocode}
\ifnum\lr at level<\@ne \eq at binoffset=\eqbinoffset\relax \fi
}
@@ -6016,16 +6018,16 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\subsup at flag}
% \begin{macro}{\ss at scan}
% \cs{ss at scan} is called after a \cs{right} delimiter and
-% looks ahead for sub and superscript tokens.
+% looks ahead for sub and superscript tokens.
% If sub and/or superscripts are present, we adjust the line-ending
-% penalty to distinguish the various cases (sub, sup, or both).
+% penalty to distinguish the various cases (sub, sup, or both).
% This facilitates the later work of excising the sub/sup box and
-% reattaching it with proper shifting.
+% reattaching it with proper shifting.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Sub/Superscript measurement
@@ -6033,7 +6035,7 @@
% BRM: There's possibly a problem here.
% When \cs{ss at scan} gets invoked after a \cs{left}...\cs{right} pair in the LHS
% during \cs{eq at measure}, it produces an extra box (marked with \cs{penalty} 3);
-% Apparently \cs{eq at repack} expects only one for the LHS.
+% Apparently \cs{eq at repack} expects only one for the LHS.
% The end result is \cs{eq at wdL} => 0.0pt !!! (or at least very small)
% \begin{macrocode}
\let\subsup at flag=\count@
@@ -6040,15 +6042,15 @@
\def\ss at delim@a at new#1#2#3#4#5{\xdef\right at delim@code{\number"#4#5}}
% \end{macrocode}
% The argument of \cs{ss at scan} is an expanded form of a
-% right-delimiter macro.
+% right-delimiter macro.
% We want to use the last three digits in the expansion
-% to define \cs{right at delim@code}.
+% to define \cs{right at delim@code}.
% The assignment to a temp register is just a way to scan away the
-% leading digits that we don't care about.
+% leading digits that we don't care about.
% \begin{macrocode}
\def\ss at scan#1{%
% \end{macrocode}
-% This part of the code.
+% This part of the code.
% \begin{macrocode}
\begingroup
\ss at delim@a at new #1%
@@ -6068,7 +6070,7 @@
\breqn at next\@let at token
}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\ExplSyntaxOn
\def\ss at scan@b#1#2{#1{%
@@ -6083,7 +6085,7 @@
% \end{macrocode}
% We need to keep following glue from disappearing
% \mdash \eg , a thickmuskip or medmuskip from a following mathrel or
-% mathbin symbol.
+% mathbin symbol.
% \begin{macrocode}
\def\ss at finish{%
\@@vadjust{\penalty\thr@@}%
@@ -6092,13 +6094,13 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\eq at lrunpack}
% For \cs{eq at lrunpack} we need to break open a left-right box and
% reset it just in case it contains any more special breaks. After
% it is unpacked the recursion of \cs{eq at repack} will continue,
-% acting on the newly created lines.
+% acting on the newly created lines.
% \begin{macrocode}
\def\eq at lrunpack{\setbox\z@\lastbox
% \end{macrocode}
@@ -6106,7 +6108,7 @@
% baselineskip for the next line, otherwise we would end up with
% three items of glue (counting parskip) at this point instead of
% the single one expected by our recursive repacking
-% procedure.
+% procedure.
% \begin{macrocode}
\unskip \nointerlineskip
% \end{macrocode}
@@ -6113,7 +6115,7 @@
% Then we open box 0, take the left-right box at the right end of
% it, and break that open. If the line-ending penalty is greater than
% 10000, it means a sub and/or superscript is present on the right
-% delimiter and the box containing them must be taken off first.
+% delimiter and the box containing them must be taken off first.
% \begin{macrocode}
\noindent\unhbox\z@ \unskip
\subsup at flag-\lastpenalty \unpenalty
@@ -6135,7 +6137,7 @@
% ($1\leq N\leq 9$), which would interfere with the usual
% processing. Setting a null last line and discarding it dodges
% this complication. The penalty value $-10001$ is a no-op case
-% in the case statement of \cs{eq at repacka}.
+% in the case statement of \cs{eq at repacka}.
% \begin{macrocode}
\penalty-\@Mi\z at rule\@@par
\setbox\z@\lastbox \unskip\unpenalty
@@ -6143,15 +6145,15 @@
}
% \end{macrocode}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\lrss at reattach}
-%
+%
% Well, for a small self-contained computation, carefully
% hand-allocated dimens should be safe enough. But let the
% maintainer beware! This code cannot be arbitrarily transplanted
% or shaken up without regard to grouping and interaction with other
-% hand-allocated dimens.
+% hand-allocated dimens.
% \begin{macrocode}
\dimendef\sub at depth=8 \dimendef\sup at base=6
\dimendef\prelim at sub@depth=4 \dimendef\prelim at sup@base=2
@@ -6161,22 +6163,22 @@
\def\sub at base@two{\fontdimen17\textfont\tw@}
% \end{macrocode}
% Note that only \cs{sup at drop} and \cs{sub at drop} come from
-% the next smaller math style.
+% the next smaller math style.
% \begin{macrocode}
\def\sup at drop{\fontdimen18\scriptfont\tw@}
\def\sub at drop{\fontdimen19\scriptfont\tw@}
% \end{macrocode}
% Provide a mnemonic name for the math axis fontdimen, if it's not
-% already defined.
+% already defined.
% \begin{macrocode}
\providecommand{\mathaxis}{\fontdimen22\textfont\tw@}
% \end{macrocode}
-%
+%
% Assumes box 2 contains the sub/sup and box 0 contains the left-right
% box. This is just a repeat of the algorithm in \fn{tex.web},
% with some modest simplifications from knowing that this is only going to
% be called at top level in a displayed equation, thus always mathstyle =
-% uncramped displaystyle.
+% uncramped displaystyle.
% \begin{macrocode}
\def\lrss at reattach{%
\begingroup
@@ -6202,7 +6204,7 @@
\lower\sub at depth\box\tw@
}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\def\lr at superscript{%
\sup at base\sup at base@one
@@ -6213,7 +6215,7 @@
\raise\sup at base\box\tw@
}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\def\lr at subsup{%
\sub at depth\sub at base@two
@@ -6222,7 +6224,7 @@
\lower\sub at depth\box\tw@
}
% \end{macrocode}
-%
+%
% For delimiters that curve top and bottom, the twang factor allows
% horizontal shifting of the sub and superscripts so they don't
% fall too far away (or too close for that matter). This is
@@ -6229,7 +6231,7 @@
% accomplished by arranging for (\eg ) \verb"\right\rangle" to leave
% a penalty $N$ in the math list before the subsup penalty that triggers
% \cs{lrss at reattach}, where $N$ is the mathcode of
-% \cs{rangle} (ignoring \dquoted{small} variant).
+% \cs{rangle} (ignoring \dquoted{small} variant).
% \begin{macrocode}
\def\twang at adjust#1{%
\begingroup
@@ -6243,37 +6245,37 @@
}
% \end{macrocode}
% The method used to apply a \dquoted{twang} adjustment is just an
-% approximate solution to a complicated problem.
+% approximate solution to a complicated problem.
% We make the following assumptions that hold true, approximately,
% for the most common kinds of delimiters:
% \begin{enumerate}
-% \item
-% The right delimiter is symmetrical top to bottom.
-%
-%
-% \item There is an upper limit on the size of the adjustment.
-%
-%
+% \item
+% The right delimiter is symmetrical top to bottom.
+%
+%
+% \item There is an upper limit on the size of the adjustment.
+%
+%
% \item When we have a superscript, the amount of left-skew that we
% want to apply is linearly proportional to the distance of the bottom
% left corner of the superscript from the math axis, with the ratio
-% depending on the shape of the delimiter symbol.
-%
-%
+% depending on the shape of the delimiter symbol.
+%
+%
% \end{enumerate}
-% .
+% .
% By symmetry, Assumption 3 is true also for subscripts (upper left
-% corner).
+% corner).
% Assumption 2 is more obviously true for parens and braces, where the
% largest super-extended versions consist of truly vertical parts with
-% slight bending on the ends, than it is for a \cs{rangle}.
+% slight bending on the ends, than it is for a \cs{rangle}.
% But suppose for the sake of expediency that it is
-% approximately true for rangle symbols also.
-%
-%
+% approximately true for rangle symbols also.
+%
+%
% Here are some passable twang factors for the most common types of
% delimiters in \fn{cmex10}, as determined by rough measurements from
-% magnified printouts.
+% magnified printouts.
% \begin{literalcode}
% vert bar, double vert: 0
% square bracket: -.1
@@ -6282,7 +6284,7 @@
% rangle: -.4
% \end{literalcode}
% Let's provide a non-private command for changing the twang factor of
-% a given symbol.
+% a given symbol.
% \begin{macrocode}
\newcommand{\DeclareTwang}[2]{%
\ifcat.\@nx#1\begingroup
@@ -6293,7 +6295,7 @@
}
% \end{macrocode}
% Note that this is dependent on a fixed interpretation of the
-% mathgroup number \arg4 .
+% mathgroup number \arg4 .
% \begin{macrocode}
\def\decl at twang#1#2#3#4#5#6#7\@nil#8{%
\@namedef{twang@\number"#4#5#6}{#8}%
@@ -6303,9 +6305,9 @@
\DeclareTwang{\rbrace}{-.25}
% \end{macrocode}
% \end{macro}
-%
-%
-%
+%
+%
+%
% \section{Series of expressions}
% The \env{dseries} environment is for a display
% containing a series of expressions of the form \quoted{A, B} or \quoted{A and
@@ -6312,13 +6314,13 @@
% B} or \quoted{A, B, and C} and so on. Typically the expressions
% are separated by a double quad of space. If the expressions in a
% series don't all fit in a single line, they are continued onto extra
-% lines in a ragged-center format.
+% lines in a ragged-center format.
% \begin{macrocode}
\newenvironment{dseries}{\let\eq at hasNumber\@True \@optarg\@dseries{}}{}%
\def\enddseries#1{\check at punct@or at qed}%
% \end{macrocode}
-%
-% And the unnumbered version of same.
+%
+% And the unnumbered version of same.
% \begin{macrocode}
\newenvironment{dseries*}{\let\eq at hasNumber\@False \@optarg\@dseries{}}{}%
\@namedef{enddseries*}#1{\check at punct@or at qed}%
@@ -6326,7 +6328,7 @@
\def\@dseries[#1]{%
% \end{macrocode}
% Turn off the special breaking behavior of mathrels \etc for math
-% formulas embedded in a \env{dseries} environment.
+% formulas embedded in a \env{dseries} environment.
%
%BRM: DS Expermient: Use alternative display setup.
% \begin{macrocode}
@@ -6368,7 +6370,7 @@
\eq at trial@b{M}{}%
}
% \end{macrocode}
-% BRM: Tricky to get right value here.
+% BRM: Tricky to get right value here.
% Prefer breaks between formula if we've got to break at all.
% \begin{macrocode}
%\def\intermath at penalty{-201}%
@@ -6380,10 +6382,10 @@
\newcommand\dquad{\hskip0.6em minus.3em}
\newcommand\premath{}\newcommand\postmath{}
% \end{macrocode}
-%
+%
% Change the \env{math} environment to add
% \cs{premath} and \cs{postmath}. They are no-ops except
-% inside a \env{dseries} environment.
+% inside a \env{dseries} environment.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Redefinition of math environment to take advantage of dseries env.
@@ -6400,10 +6402,10 @@
\postmath
}
% \end{macrocode}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{Equation groups}
% For many equation groups the strategy is easy: just center each
% equation individually following the normal rules for a single
@@ -6411,8 +6413,8 @@
% others, a single number applies to the whole group (and may need to be
% vertically centered on the height of the group). In still other
% groups, the equations share a parent number but get individual equation
-% numbers consisting of parent number plus a letter.
-%
+% numbers consisting of parent number plus a letter.
+%
% If the main relation symbols in a group of equations are to be
% aligned, then the final alignment computations cannot be done until the
% end of the group \mdash \ie , the horizontal positioning of the first
@@ -6424,11 +6426,11 @@
% they may affect the line breaks. If the second trial for an
% equation fails (one of its lines exceeds the available width), but
% the first one succeeded, fall back to the first trial, \ie let that
-% equation fall out of alignment with the rest of the group.
-%
-%
+% equation fall out of alignment with the rest of the group.
+%
+%
% All right then, here is the general idea of the whole algorithm for
-% group alignment.
+% group alignment.
% To start with, ignore the possibility of equation numbers so that
% our equation group has the form:
% \begin{literalcode}
@@ -6438,30 +6440,30 @@
% LHS[3] RHS[3,1] RHS[3,2] ... RHS[3,n[3]]
% \end{literalcode}
% The number of RHS's might not be the same for all of the
-% equations.
+% equations.
% First, accumulate all of the equation contents in a queue, checking
% along the way to find the maximum width of all the LHS's and the maximum
-% width of all the RHS's.
-% Call these widths maxwd\_L and maxwd\_R.
+% width of all the RHS's.
+% Call these widths maxwd\_L and maxwd\_R.
% Clearly if maxwd\_L + maxwd\_R is less than or equal to the available
-% equation width then aligning all of the equations is going to be simple.
-%
-%
+% equation width then aligning all of the equations is going to be simple.
+%
+%
% Otherwise we are going to have to break at least one of the RHS's
-% and/or at least one of the LHS's.
+% and/or at least one of the LHS's.
% The first thing to try is using maxwd\_L for the LHS's and breaking
-% all the RHS's as needed to fit in the remaining space.
+% all the RHS's as needed to fit in the remaining space.
% However, this might be a really dumb strategy if one or more of the
-% LHS's is extraordinarily wide.
+% LHS's is extraordinarily wide.
% So before trying that we check whether maxwd\_L exceeds some
-% threshold width beyond which it would be unsensible not to break the LHS.
+% threshold width beyond which it would be unsensible not to break the LHS.
% Such as, max(one-third of the available width; six ems), or
-% something like that.
-% Or how about this?
+% something like that.
+% Or how about this?
% Compare the average LHS width and RHS width and divide up the available
-% width in the same ratio for line breaking purposes.
-%
+% width in the same ratio for line breaking purposes.
%
+%
% BRM: Fairly broad changes; it mostly didn't work before (for me).
%
% \begin{description}
@@ -6469,7 +6471,7 @@
% The number is the next equation number.
% There are 2 cases:
% \begin{itemize}
-% \item If ANY contained equations are numbered (|\begin{dmath}|),
+% \item If ANY contained equations are numbered (|\begin{dmath}|),
% then they will be subnumbered: eg 1.1a
% and the group number is not otherwise displayed.
% \item If ALL contained equations are unnumbered (|\begin{dmath*}|)
@@ -6488,7 +6490,7 @@
% NOTE: Does \cs{label} attach to the expected thing?
%
% \item[For number placement] We use shiftnumber placement on ALL equations
-% if ANY equations need it, or if an unnumbered equation is too
+% if ANY equations need it, or if an unnumbered equation is too
% wide to be aligned, given that the group or other eqns are numbered.
% [does this latter case interract with the chosen alignment?]
%
@@ -6503,7 +6505,7 @@
%
% \begin{macro}{\eq at group}
% \begin{macro}{\GRP at top}
-%
+%
% \begin{macrocode}
\let\eq at group\@False
\let\grp at shiftnumber\@False
@@ -6513,9 +6515,9 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
-%
-% Definition of the \env{dgroup} environment.
+%
+%
+% Definition of the \env{dgroup} environment.
% \begin{macrocode}
\newenvironment{dgroup}{%
\let\grp at hasNumber\@True\@optarg\@dgroup{}%
@@ -6523,7 +6525,7 @@
\end at dgroup
}
% \end{macrocode}
-% And the.
+% And the.
% \begin{macrocode}
\newtoks\GRP at queue
\newenvironment{dgroup*}{%
@@ -6551,11 +6553,11 @@
}
% \end{macrocode}
% If the \pkg{amsmath} package is not loaded the parentequation
-% counter will not be defined.
+% counter will not be defined.
% \begin{macrocode}
\@ifundefined{c at parentequation}{\newcounter{parentequation}}{}
% \end{macrocode}
-% Init.
+% Init.
% \begin{macrocode}
\global\let\GRP at label\@empty
\def\add at grp@label{%
@@ -6568,7 +6570,7 @@
% set the current number in \cs{EQ at numbox}. The
% \cs{eq at setnumber} function does everything we need here. If
% the child equations are unnumbered, \cs{EQ at numbox} will retain the
-% group number at the end of the group.
+% group number at the end of the group.
% \begin{macrocode}
\def\grp at setnumber{%
\global\let\GRP at label\next at label \global\let\next at label\@empty
@@ -6580,7 +6582,7 @@
% \cn{theequation}. \cn{edef} is necessary to expand the
% current value of the equation counter. This might in rare cases
% cause something to blow up, in which case the user needs to add
-% \cn{protect}.
+% \cn{protect}.
% \begin{macrocode}
\global\sbox\GRP at numbox{\unhbox\EQ at numbox}%
\grp at wdNum\eq at wdNum
@@ -6593,7 +6595,7 @@
% \end{macrocode}
% And set the equation counter to 0, so that the normal incrementing
% processes will produce the desired results if the child equations are
-% numbered.
+% numbered.
% \begin{macrocode}
\setcounter{equation}{0}%
\def\theequation{\theparentequation\alph{equation}}%
@@ -6600,7 +6602,7 @@
%<trace> \breqn at debugmsg{Group Number \theequation}%
}
% \end{macrocode}
-% At the end of a group, need to reset the equation counter.
+% At the end of a group, need to reset the equation counter.
% \begin{macrocode}
\def\grp at resetnumber{%
\setcounter{equation}{\value{parentequation}}%
@@ -6615,8 +6617,8 @@
% \cs{EQ at box}, \cs{EQ at copy}, \cs{penalty} 1 and \cs{EQ at numbox}.
% \end{itemize}
% \begin{macro}{\grp at push}
-%
-% For putting the equation on a queue.
+%
+% For putting the equation on a queue.
% \begin{macrocode}
\def\grp at push{%
\global\GRP at queue\@xp\@xp\@xp{\@xp\the\@xp\GRP at queue
@@ -6645,9 +6647,9 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\grp at finish}
-%
-% Set accumulated equations from a \env{dgroup} environment.
%
+% Set accumulated equations from a \env{dgroup} environment.
+%
% BRM: Questionable patch!!
% When processing the \cs{GRP at queue}, put it into a \cs{vbox}, then \cs{unvbox} it.
% This since there's a bizarre problem when the \cs{output} routine
@@ -6665,7 +6667,7 @@
\setlength\dim at a{\grp at wdL+\grp at wdR-4em}% Allowance for shrink?
\if\grp at aligned
\ifdim\dim at a>\grp at linewidth
- \global\let\grp at aligned\@False
+ \global\let\grp at aligned\@False
\fi
\fi
% \end{macrocode}
@@ -6751,9 +6753,9 @@
% \end{macro}
%
% \begin{macro}{\eqgrp at elt}
-%
-% Mission is to typeset the next equation from the group queue.
%
+% Mission is to typeset the next equation from the group queue.
+%
% The arg is an \cs{EQ at trial}
% \begin{macrocode}
\def\eqgrp at elt#1{%
@@ -6824,9 +6826,9 @@
% \begin{macrocode}
}
% \end{macrocode}
-%
-%
-%
+%
+%
+%
% \section{The \env{darray} environment}
% There are two potential applications for darray. One
% is like eqnarray where the natural structure of the material crosses the
@@ -6842,15 +6844,15 @@
% cross purposes with the feature of allowing interline stretch and page
% breaks within a multiline array of equations, the \env{darray}
% environment is targeted primarily as an alternative to
-% \env{eqnarray}, and does not support vertical ruling.
-%
+% \env{eqnarray}, and does not support vertical ruling.
+%
% Overall strategy for \env{darray} is to use
% \cs{halign} for the body. In the case of a group, use a
-% single halign for the whole group!
+% single halign for the whole group!
% \begin{aside}
-% What about intertext?
+% What about intertext?
% \end{aside}
-%
+%
% That's the most reliable way
% to get accurate column widths. Don't spread the halign to the
% column width, just use the natural width. Then, if we repack the
@@ -6858,17 +6860,17 @@
% done for dmath, and twiddle a bit with the widths of the first and last
% cell in each row, we can use the same algorithms for centering and
% equation number placement as dmath! As well as handling footnotes
-% and vadjust objects the same way.
-%
+% and vadjust objects the same way.
+%
% We can't just use \cs{arraycolsep} for \env{darray}, if
-% we want to be able to change it without screwing up interior arrays.
+% we want to be able to change it without screwing up interior arrays.
% So let's make a new colsep variable. The initial value is
-% \quoted{2em, but let it shrink if necessary}.
+% \quoted{2em, but let it shrink if necessary}.
% \begin{macrocode}
\newskip\darraycolsep \darraycolsep 20pt plus1fil minus12pt
% \end{macrocode}
% Let's make a nice big default setup with eighteen columns, split up
-% into six sets of lcr like \env{eqnarray}.
+% into six sets of lcr like \env{eqnarray}.
% \begin{macrocode}
\newcount\cur at row \newcount\cur at col
\def\@tempa#1#2#3{%
@@ -6901,7 +6903,7 @@
% \end{macrocode}
% Init the halign preamble to empty, then unless the \quoted{cols} key is
% used to provide a non-null preamble just use the
-% default darray preamble which is a multiple lcr.
+% default darray preamble which is a multiple lcr.
% \begin{macrocode}
\global\let\@preamble\@empty
\setkeys{breqn}{#1}%
@@ -6918,7 +6920,7 @@
\halign\@xp\bgroup\@preamble
}
% \end{macrocode}
-% Assimilate following punctuation.
+% Assimilate following punctuation.
% \begin{macrocode}
\def\enddarray#1{\check at punct@or at qed}
\def\end at darray{%
@@ -6927,9 +6929,9 @@
\egroup
}
% \end{macrocode}
-%
+%
% The \cs{dar at capture} function steps back through the
-% list of row boxes and grinds them up in the best possible way.
+% list of row boxes and grinds them up in the best possible way.
% \begin{macrocode}
\def\dar at capture{%
%% \showboxbreadth\maxdimen\showboxdepth99\showlists
@@ -6937,9 +6939,9 @@
\dar at repack
}
% \end{macrocode}
-%
+%
% The \cs{dar at repack} function is a variation of
-% \cs{eq at repack}.
+% \cs{eq at repack}.
% \begin{macrocode}
\def\dar at repack{%
\unpenalty
@@ -6954,15 +6956,15 @@
\dar at repack
}
% \end{macrocode}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{Miscellaneous}
% The \cs{condition} command. With
-% the star form, set the argument in math mode instead of text mode.
+% the star form, set the argument in math mode instead of text mode.
% In a series of conditions, use less space between members of the
-% series than between the conditions and the main equation body.
+% series than between the conditions and the main equation body.
%
% WSPR: tidied/fixed things up as it made sense to me but might have
% broken something else!
@@ -6993,7 +6995,7 @@
\endgroup}
% \end{macrocode}
% \end{macro}
-%
+%
% The \env{dsuspend} environment. First the old one that didn't work.
% \begin{macrocode}
\newenvironment{XXXXdsuspend}{%
@@ -7001,7 +7003,7 @@
% \end{macrocode}
% If we are inside a list environment, \cs{displayindent} and
% \cs{displaywidth} give us \cs{@totalleftmargin} and
-% \cs{linewidth}.
+% \cs{linewidth}.
% \begin{macrocode}
\parshape 1 \displayindent \displaywidth\relax
\hsize=\columnwidth \noindent\ignorespaces
@@ -7009,7 +7011,7 @@
\par\egroup
% \end{macrocode}
% Let's try giving \cs{EQ at box} the correct height for the first
-% line and \cs{EQ at copy} the depth of the last line.
+% line and \cs{EQ at copy} the depth of the last line.
% \begin{macrocode}
\global\setbox\GRP at box\vbox{%
\vbox{\copy\EQ at box\vtop{\unvbox\EQ at box}}%
@@ -7016,7 +7018,7 @@
\unvbox\GRP at box
}%
% \end{macrocode}
-% Need to add a dummy element to \cs{GRP at queue}.
+% Need to add a dummy element to \cs{GRP at queue}.
% \begin{macrocode}
\global\GRP at queue\@xp{\the\GRP at queue
\@elt{\gdef\EQ at trial{}}%
@@ -7043,26 +7045,26 @@
% \end{macrocode}
% Allow \cn{intertext} as a short form of the \env{dsuspend}
% environment; it's more convenient to write, but it doesn't support
-% embedded verbatim because it reads the material as a macro argument.
+% embedded verbatim because it reads the material as a macro argument.
% To support simultaneous use of \pkg{amsmath} and
% \pkg{breqn}, the user command \cs{intertext} is left alone
-% until we enter a \pkg{breqn} environment.
+% until we enter a \pkg{breqn} environment.
% \begin{macrocode}
\newcommand\breqn at intertext[1]{\dsuspend#1\enddsuspend}
% \end{macrocode}
-%
-%
+%
+%
% \begin{macro}{\*}
% \begin{macro}{\discretionarytimes}
% Discretionary times sign. Standard \latex definition
% serves only for inline math. Should the thin space be
-% included? Not sure.
+% included? Not sure.
% \begin{macrocode}
\renewcommand{\*}{%
\if at display
% \end{macrocode}
% Since \cs{eq at binoffset} is mu-glue, we can't use it directly
-% with \cs{kern} but have to measure it separately in a box.
+% with \cs{kern} but have to measure it separately in a box.
% \begin{macrocode}
\setbox\z@\hbox{\mathsurround\z@$\mkern\eq at binoffset$}%
\discretionary{}{%
@@ -7075,28 +7077,28 @@
}
% \end{macrocode}
% This is only the symbol; it can be changed to some other symbol if
-% desired.
+% desired.
% \begin{macrocode}
\newcommand{\discretionarytimes}{\times}
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
-%
+%
+%
% \begin{macro}{\nref}
-%
+%
% This is like \cs{ref} but doesn't apply font changes or other
-% guff if the reference is undefined.
-% And it is fully expandable for use as a label value.
+% guff if the reference is undefined.
+% And it is fully expandable for use as a label value.
% \begin{aside}
-%
+%
% Can break with Babel if author uses active characters in label key;
% need to address that \begin{dn}
% mjd,1999/01/21
% \end{dn}
-% .
+% .
% \end{aside}
-%
+%
% \begin{macrocode}
\def\nref#1{\@xp\@nref\csname r@#1\endcsname}
\def\@nref#1#2{\ifx\relax#1??\else \@xp\@firstoftwo#1\fi}
@@ -7103,157 +7105,157 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \end{macrocode}
% \end{macro}
-%
-%
-%
-%
-%
+%
+%
+%
+%
+%
% \section{Wrap-up}
-% The usual endinput.
+% The usual endinput.
% \begin{macrocode}
%</package>
% \end{macrocode}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{To do}
% \begin{enumerate}
-% \item Alignment for equation groups.
-%
-%
-% \item
-% Use dpc's code for package options in keyval form.
-%
-% \item
+% \item Alignment for equation groups.
+%
+%
+% \item
+% Use dpc's code for package options in keyval form.
+%
+% \item
% Encapsulate \dquoted{break math} into a subroutine taking suitable
-% arguments.
-%
-% \item
-% Need a density check for layout S when linewidth is very small.
-%
-% \item
+% arguments.
+%
+% \item
+% Need a density check for layout S when linewidth is very small.
+%
+% \item
% Make \verb":=" trigger a warning about using \cs{coloneq}
-% instead.
-%
+% instead.
+%
% \item Ill-centered multiline equation (three-line case) in
-% test008.
-%
-% \item Attaching a single group number.
-%
-%
-% \item
-% Make sure to dump out box registers after done using them.
-%
-% \item Do the implementation for \cs{eq at resume@parshape}.
-%
-%
-% \item Check on stackrel and buildrel and relbar and ???.
-%
-%
-% \item Test math symbols at the beginning of array cells.
-%
-% \item Test \dbslash cmd in and out of delims.
-%
+% test008.
+%
+% \item Attaching a single group number.
+%
+%
+% \item
+% Make sure to dump out box registers after done using them.
+%
+% \item Do the implementation for \cs{eq at resume@parshape}.
+%
+%
+% \item Check on stackrel and buildrel and relbar and ???.
+%
+%
+% \item Test math symbols at the beginning of array cells.
+%
+% \item Test \dbslash cmd in and out of delims.
+%
% \item Framing the equation body: the parshape and number placement
-% need adjusting when a frame is present.
-%
-%
-% \item Cascading line widths in list env.
-%
-%
-% \item Noalign option for dmath = multline arrangement?
-%
-%
+% need adjusting when a frame is present.
+%
+%
+% \item Cascading line widths in list env.
+%
+%
+% \item Noalign option for dmath = multline arrangement?
+%
+%
% \item Nocompact option, suggested 1998/05/19 by Andrew
-% Swann.
-%
-%
+% Swann.
+%
+%
% \item \cs{delbreak} cmd to add discretionary space at a break
-% within delimiters.
-%
-%
-% \item Reduce above/below skip when the number is shifted.
-%
-%
+% within delimiters.
+%
+%
+% \item Reduce above/below skip when the number is shifted.
+%
+%
% \item Need a \cs{middelim} command for marking a delimiter symbol
-% as nondirectional if it has an innate directionality \verb"()[]" \etc .
-%
-%
-% \item
+% as nondirectional if it has an innate directionality \verb"()[]" \etc .
+%
+%
+% \item
% \cs{xrightarrow} from amsmath won't participate in line
-% breaking unless something extra is done.
-% Make \cs{BreakingRel} and \cs{BreakingBin} functions?
-%
+% breaking unless something extra is done.
+% Make \cs{BreakingRel} and \cs{BreakingBin} functions?
+%
% \item Placement of number in an indented quotation or
-% abstract.
-%
+% abstract.
+%
% \item If $LHSwd > 2em$, it might be a good idea to try with
% eq at indentstep = 2em before shifting the number. Currently this
% doesn't happen if the first trial pass (without the number)
-% succeeds with $indentstep = LHSwd > 2em$.
-%
-%
+% succeeds with $indentstep = LHSwd > 2em$.
+%
+%
% \item Read past \verb"\end{enumerate}" when checking
-% for \verb"\end{proof}"?
-%
-% \item
+% for \verb"\end{proof}"?
+%
+% \item
% Look into using a \dquoted{qed-list} of environment names instead of
-% checking the existence of \cs{proofqed}.
-%
-% \item Pick up the vadjust\slash footnote\slash mark handling.
-%
-%
+% checking the existence of \cs{proofqed}.
+%
+% \item Pick up the vadjust\slash footnote\slash mark handling.
+%
+%
% \item Forcing\slash prohibiting page breaks after\slash before
-% an equation.
-%
-%
+% an equation.
+%
+%
% \item Adding a spanner brace on the left and individual numbers on
-% the right (indy-numbered cases).
-%
-%
+% the right (indy-numbered cases).
+%
+%
% \item Provide \cs{shiftnumber}, \cs{holdnumber} to
-% override the decision.
-%
+% override the decision.
+%
% \item Provide a mechanism for adjusting the vertical position of
% the number. Here a version-specific selection macro would be
-% useful.
+% useful.
% \begin{literalcode}
% \begin{dmath}[
% style={\foredition{1}{\raisenumber{13pt}}}
% ]
% \end{literalcode}
-%
-%
-% \item
+%
+%
+% \item
% Add an alignleft option for an equation group to mean, break and
% align to a ladder layout as usual within the equations, but for the
% group alignment used the leftmost point (for equations that don't
-% have an LHS, this makes no difference).
-%
-% \item
+% have an LHS, this makes no difference).
+%
+% \item
% Test with Arseneau's wrapfig for parshape\slash everypar
-% interaction.
-%
-%
-% \item Fix up the macro/def elements.
-%
+% interaction.
+%
+%
+% \item Fix up the macro/def elements.
+%
% \item Convert the literal examples in section \quoted{Equation types and
-% forms} to typeset form.
-%
-%
+% forms} to typeset form.
+%
+%
% \item Compile comparison-examples: \eg , a standard equation
% env with big left-right objects that don't shrink, versus how shrinking
-% can allow it to fit.
-%
-%
+% can allow it to fit.
+%
+%
% \item Frame the \dquoted{figures} since they are mostly
-% text.
-%
+% text.
+%
% \end{enumerate}
-%
-%
-%
+%
+%
+%
% Possible enhancements:
% \begin{enumerate}
% \item Provide a \opt{pull} option meaning to pull the first
@@ -7260,59 +7262,59 @@
% and last lines out to the margin, like the \env{multline}
% environment of the \pkg{amsmath} package. Maybe this should
% get an optional argument, actually, to specify the amount of space left
-% at the margin.
-%
+% at the margin.
+%
% \item With the draft option, one would like to see the equation
% labels in the left margin. Need to check with the
-% \pkg{showkeys} package.
-%
-%
+% \pkg{showkeys} package.
+%
+%
% \item Options for break preferences: if there's not enough room, do
% we first shift the number, or first try to break up the equation
% body?. In an aligned group, does sticking to the group alignment
% take precedence over minimizing the number of line breaks needed for
% individual equations?. And the general preferences probably need
-% to be overridable for individual instances.
-%
+% to be overridable for individual instances.
+%
% \item Extend suppress-breaks-inside-delimiters support to inline
-% math (suggestion of Michael Doob).
-%
+% math (suggestion of Michael Doob).
+%
% \item Use belowdisplayshortskip above a dsuspend fragment if the
% fragment is only one line and short enough compared to the equation line
-% above it.
-%
-%
-% \item Add \cs{eqfuzz} distinct from \cs{hfuzz}.
-% Make use of it in the measuring phase.
-%
-%
-% \item Provision for putting in a \quoted{continued} note.
-%
+% above it.
+%
+%
+% \item Add \cs{eqfuzz} distinct from \cs{hfuzz}.
+% Make use of it in the measuring phase.
+%
+%
+% \item Provision for putting in a \quoted{continued} note.
+%
% \item Conserve box mem: modify frac, sub, sup, overline, underline,
% sqrt, to turn off \cs{bin at break} and (less urgently)
-% \cs{rel at break}.
-%
-%
+% \cs{rel at break}.
+%
+%
% \item More explicit support for Russian typesetting conventions (cf
-% Grinchuk article).
-%
-%
+% Grinchuk article).
+%
+%
% \item With package option \opt{refnumbers},
% leave unnumbered all uncited equations, even if they are not done with
-% the star form (Bertolazzi's easyeqn idea).
-%
+% the star form (Bertolazzi's easyeqn idea).
+%
% \item In an equation group, use a vertical bracket with the
-% equation number to mark the lines contained in that equation.
-%
-%
+% equation number to mark the lines contained in that equation.
+%
+%
% \item For a two-line multline thingamabob, try to
% make sure that the lines overlap in the middle by 2 em or whatever
-% (settable design variable).
-%
+% (settable design variable).
+%
% \item Provide a separate vertical column for the principal mathrel
% symbols and center them within the column if they aren't all the same
% width. Maybe an option for \env{dmath}: relwidth=x, so that two
-% passes are not required to get the max width of all the mathrels.
+% passes are not required to get the max width of all the mathrels.
% Or, no, just require it to be an halign or provide a macro to be
% applied to all the shorter rels:
% \begin{literalcode}
@@ -7319,10 +7321,10 @@
% lhs \widerel{19pt}{=} ...
% \xrightarrow{foo} ...
% \end{literalcode}
-%
-%
+%
+%
% \item try to use vadjust for keepglue
-%
+%
% \end{enumerate}
%
% \PrintIndex
Modified: trunk/Master/texmf-dist/source/latex/breqn/flexisym.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/breqn/flexisym.dtx 2017-01-28 01:05:31 UTC (rev 43070)
+++ trunk/Master/texmf-dist/source/latex/breqn/flexisym.dtx 2017-01-28 22:59:01 UTC (rev 43071)
@@ -3,7 +3,8 @@
% Copyright (C) 1997-2003 by Michael J. Downes
% Copyright (C) 2007-2008 by Morten Hoegholm
% Copyright (C) 2007-2014 by Lars Madsen
-% Copyright (C) 2007-2014 by Will Robertson
+% Copyright (C) 2007-2017 by Will Robertson
+% Copyright (C) 2010-2017 by Joseph Wright
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -82,7 +83,8 @@
Copyright (C) 1997-2003 by Michael J. Downes
Copyright (C) 2007-2010 by Morten Hoegholm
Copyright (C) 2007-2014 by Lars Madsen
-Copyright (C) 2007-2014 by Will Robertson
+Copyright (C) 2007-2017 by Will Robertson
+Copyright (C) 2010-2017 by Joseph Wright
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -132,7 +134,7 @@
%</ignore>
%<*driver>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{flexisym.drv}[2015/08/11 v0.98d flexisym (MH)]
+\ProvidesFile{flexisym.drv}[2017/01/27 0.98e flexisym]
\documentclass{ltxdoc}
\CodelineIndex
\EnableCrossrefs
@@ -169,13 +171,13 @@
%
% \StopEventually{}
% \part*{Implementation}
-%
+%
% \section{flexisym}
%
% \begin{macrocode}
%<*package>
\RequirePackage{expl3}[2009/08/05]
-\ProvidesExplPackage{flexisym}{2015/08/11}{0.98d}{Make math characters macros}
+\ProvidesExplPackage{flexisym}{2017/01/27}{0.98e}{Make math characters macros}
\edef\do{%
\noexpand\AtEndOfPackage{%
@@ -572,14 +574,14 @@
\check at mathfonts
\cs_set_eq:NN \text at script@char #1
\cs_set_eq:NN \@sym \text at char@sym
- \cs_set_eq:NN \@symtype \use_ii:nn
+ \cs_set_eq:NN \@symtype \use_ii:nn
\cs_set_eq:NN \OrdSymbol \use:n
- \cs_set_eq:NN \ifmmode \iftrue
+ \cs_set_eq:NN \ifmmode \iftrue
\everymath{$\use_none:n}%$
\def\mkern{\muskip\z@}
\cs_set_eq:NN\mskip\mkern
\ifcat\relax\noexpand#2% true if #2 is a cs.
- #2%
+ #2%
\else
\lccode\z@=\expandafter`\string#2\relax
\lowercase{^^@}%
@@ -619,13 +621,13 @@
% \begin{macrocode}
\def\binrel at sym#1#2#3#4{%
\xdef\binrel@@##1{%
- \ifx\math_sym_Ord:Nn #2 \math_csym_Ord:Nn
- \else\ifx\math_sym_Var:Nn#2 \math_csym_Var:Nn
- \else\ifx\math_sym_COs:Nn#2 \math_csym_COs:Nn
- \else\ifx\math_sym_COi:Nn#2 \math_csym_COi:Nn
+ \ifx\math_sym_Ord:Nn #2 \math_csym_Ord:Nn
+ \else\ifx\math_sym_Var:Nn#2 \math_csym_Var:Nn
+ \else\ifx\math_sym_COs:Nn#2 \math_csym_COs:Nn
+ \else\ifx\math_sym_COi:Nn#2 \math_csym_COi:Nn
\else\ifx\math_sym_Bin:Nn#2 \math_csym_Bin:Nn
- \else\ifx\math_sym_Rel:Nn#2 \math_csym_Rel:Nn
- \else\ifx\math_sym_Pun:Nn#2 \math_csym_Pun:Nn
+ \else\ifx\math_sym_Rel:Nn#2 \math_csym_Rel:Nn
+ \else\ifx\math_sym_Pun:Nn#2 \math_csym_Pun:Nn
\else\exp_not:N\@symErr \fi\fi\fi\fi\fi\fi\fi
?{\exp_not:N\OrdSymbol{##1}}}%
}
@@ -676,14 +678,14 @@
\lccode`\.=`\_ \lowercase{\endgroup
\def\@sym at ord@a#1.#2.}#3#4\@nil#5#6{%
\if D#3
- %\math_ord_delim_aux:Nn #5{#6}
+ %\math_ord_delim_aux:Nn #5{#6}
\math_sd_del_aux:Nnn 0 #5{#6}% check if this works!
\else
\math_char:NNn 0 #5{#6}
- \fi
+ \fi
}
\cs_set:Nn \math_ord_delim_aux:Nn {
- \math_sd_aux:nn { \math_char:NNn 0 } {#1{#2}}
+ \math_sd_aux:nn { \math_char:NNn 0 } {#1{#2}}
}
% \end{macrocode}
%
@@ -702,7 +704,7 @@
% later. [\fn{amsmath.dtx}]
% \end{quote}
% The problem arises because \pkg{flexisym} sets the mathcode of all
-% symbols to $32768$ which is illegal for a \cs{mathchardef}.
+% symbols to $32768$ which is illegal for a \cs{mathchardef}.
%
% We have to remove the assignments from the \cs{AtBeginDocument} hook
% as they will cause an error there.
@@ -750,13 +752,13 @@
% The extra check. Don't do anything if \texttt{-} is math active.
% \begin{macrocode}
\ifnum\mathcode`\-=32768\space
- \else
+ \else
\mathchardef \std at minus \mathcode `\-\relax
\fi
\fi
- \mathcode `\-45\space
+ \mathcode `\-45\space
\mathcode `\/47\space
- \mathcode `\:"603A\space\relax
+ \mathcode `\:"603A\space\relax
}%
}
% \end{macrocode}
@@ -801,12 +803,12 @@
% Open question on \verb"!" and \verb"?": maybe they
% should have type `Pun' instead of `DeR'. Need to
% search for uses in math in AMS archives. Or, maybe add a special
-% `Clo' type for them: non-extensible closing delimiter.
+% `Clo' type for them: non-extensible closing delimiter.
% \end{aside}
-%
-%
-%
-% Default mathgroup setup.
+%
+%
+%
+% Default mathgroup setup.
% \changes{v0.3}{2010/07/11}{fixed bugs regarding capital greek
% letters in mathpazo and mathptmx}
% \begin{macrocode}
@@ -843,11 +845,11 @@
\cs_gset_eq:NN \mg at ord \mg at bin
\cs_gset_eq:NN \mg at cop \mg at del
% \end{macrocode}
-%
-%
-% Symbols from the 128-character \fn{cmr} encoding.
+%
+%
+% Symbols from the 128-character \fn{cmr} encoding.
% Paren and square bracket delimiters from this encoding are covered
-% by the definitions in the \fn{cmex} section, however.
+% by the definitions in the \fn{cmex} section, however.
% \begin{macrocode}
\DeclareFlexSymbol{!} {Pun}{OT1}{21}
\DeclareFlexSymbol{+} {Bin}{OT1}{2B}
@@ -862,7 +864,7 @@
% (variable), to eliminate the glaring inconsistency with lowercase
% Greek. (In plain \TeX , \verb"{\bf\Delta}" works, while
% \verb"{\bf\delta}" doesn't.) Let us try to make them both
-% variable (fonts permitting) instead of nonvariable.
+% variable (fonts permitting) instead of nonvariable.
% \begin{macrocode}
\DeclareFlexSymbol{\Gamma} {Var}{Greek}{00}
\DeclareFlexSymbol{\Delta} {Var}{Greek}{01}
@@ -876,7 +878,7 @@
\DeclareFlexSymbol{\Psi} {Var}{Greek}{09}
\DeclareFlexSymbol{\Omega} {Var}{Greek}{0A}
% \end{macrocode}
-% Decimal digits.
+% Decimal digits.
% \begin{macrocode}
\DeclareFlexSymbol{0}{Var}{digit}{30}
\DeclareFlexSymbol{1}{Var}{digit}{31}
@@ -889,7 +891,7 @@
\DeclareFlexSymbol{8}{Var}{digit}{38}
\DeclareFlexSymbol{9}{Var}{digit}{39}
% \end{macrocode}
-% Symbols from the 128-character \fn{cmmi} encoding.
+% Symbols from the 128-character \fn{cmmi} encoding.
% \begin{macrocode}
\DeclareFlexSymbol{,}{Pun}{OML}{3B}
\DeclareFlexSymbol{.}{Ord}{OML}{3A}
@@ -897,7 +899,7 @@
\DeclareFlexSymbol{<}{Rel}{OML}{3C}
\DeclareFlexSymbol{>}{Rel}{OML}{3E}
% \end{macrocode}
-% To do: make the Var property of lc Greek work properly.
+% To do: make the Var property of lc Greek work properly.
% \begin{macrocode}
\DeclareFlexSymbol{\alpha} {Var}{greek}{0B}
\DeclareFlexSymbol{\beta} {Var}{greek}{0C}
@@ -932,7 +934,7 @@
% Note that in plain \TeX\ \cs{imath} and \cs{jmath} are
% not variable-font. But if a \verb"j" changes font to, let's
% say, sans serif or calligraphic, a dotless \verb"j" in the same
-% context should change font in the same way.
+% context should change font in the same way.
% \begin{macrocode}
\DeclareFlexSymbol{\imath} {Var}{OML}{7B}
\DeclareFlexSymbol{\jmath} {Var}{OML}{7C}
@@ -1010,7 +1012,7 @@
% The \cs{ldotPun} glyph is used in constructing the
% \cs{ldots} symbol. It is just a period with a different math
% symbol class. \cs{lhookRel} and \cs{rhookRel} are used
-% in a similar way for building hooked arrow symbols.
+% in a similar way for building hooked arrow symbols.
% \begin{macrocode}
\DeclareFlexSymbol{\ldotPun}{Pun}{OML}{3A}
\def\ldotp{\ldotPun}
@@ -1017,7 +1019,7 @@
\DeclareFlexSymbol{\lhookRel}{Rel}{OML}{2C}
\DeclareFlexSymbol{\rhookRel}{Rel}{OML}{2D}
% \end{macrocode}
-% Symbols from the 128-character \fn{cmsy} encoding.
+% Symbols from the 128-character \fn{cmsy} encoding.
% \begin{macrocode}
\DeclareFlexSymbol{*} {Bin}{bin}{03} % \ast
\DeclareFlexSymbol{-} {Bin}{bin}{00}
@@ -1041,7 +1043,7 @@
\DeclareFlexSymbol{\spadesuit} {Ord}{ord}{7F}
\DeclareFlexSymbol{\smallint} {COs}{OMS}{73}
% \end{macrocode}
-% Binary operators.
+% Binary operators.
% \begin{macrocode}
\DeclareFlexSymbol{\bigtriangleup} {Bin}{bin}{34}
\DeclareFlexSymbol{\bigtriangledown}{Bin}{bin}{35}
@@ -1073,7 +1075,7 @@
\DeclareFlexSymbol{\ast} {Bin}{bin}{03}
\DeclareFlexSymbol{\times} {Bin}{bin}{02}
% \end{macrocode}
-% Relation symbols.
+% Relation symbols.
% \begin{macrocode}
\DeclareFlexSymbol{\propto} {Rel}{rel}{2F}
\DeclareFlexSymbol{\sqsubseteq} {Rel}{rel}{76}
@@ -1115,7 +1117,7 @@
% \end{macrocode}
% The \cs{notRel} glyph is a special zero-width glyph intended only
% for use in constructing negated symbols. \cs{mapstoRel} and
-% \cs{cdotPun} have similar but more restricted applications.
+% \cs{cdotPun} have similar but more restricted applications.
% \begin{macrocode}
\DeclareFlexSymbol{\notRel} {Rel}{rel}{36}
\DeclareFlexSymbol{\mapstoOrd}{Ord}{OMS}{37}
@@ -1122,13 +1124,13 @@
\DeclareFlexSymbol{\cdotOrd} {Ord}{OMS}{01}
\cs_set:Npn\cdotp{\mathpunct{\cdotOrd}}
% \end{macrocode}
-% Symbols from the 128-character \fn{cmex} encoding.
+% Symbols from the 128-character \fn{cmex} encoding.
% \verb"COs" stands for `cumulative operator
-% (sum-like)'.
+% (sum-like)'.
% \verb"COi" stands for `cumulative operator
% (integral-like)'. These typically differ only in the
% default placement of limits. \verb"cop" stands for
-% `cumulative operator math group'.
+% `cumulative operator math group'.
% \begin{macrocode}
\DeclareFlexSymbol{\coprod} {COs}{cop}{60}
\DeclareFlexSymbol{\bigvee} {COs}{cop}{57}
@@ -1145,13 +1147,13 @@
\DeclareFlexSymbol{\oint} {COi}{cop}{48}
\DeclareFlexSymbol{\bigsqcup} {COs}{cop}{46}
% \end{macrocode}
-% Delimiter symbols.
-% \verb"DeL" stands for `delimiter (left)'.
-% \verb"DeR" stands for `delimiter (right)'.
-% \verb"DeB" stands for `delimiter (bidirectional)'.
+% Delimiter symbols.
+% \verb"DeL" stands for `delimiter (left)'.
+% \verb"DeR" stands for `delimiter (right)'.
+% \verb"DeB" stands for `delimiter (bidirectional)'.
% The principal encoding point for an extensible delimiter is the
% first link in the list of linked sizes as specified in the font metric
-% information.
+% information.
% For a math encoding such as OT1/OML/OMS/OMX where not all sizes of a
% given delimiter reside in a given font, the extra encoding point for the
% smallest delimiter must be supplied by defining
@@ -1181,17 +1183,17 @@
\DeclareFlexDelimiter{\vert} {DeB}{del}{0C}{OMS}{6A}
% \end{macrocode}
% Maybe make the vert bars mathord instead of delimiter, to discourage
-% poor usage.
+% poor usage.
% \begin{macrocode}
\DeclareFlexDelimiter{|}{DeB}{del}{0C}{OMS}{6A}
\DeclareFlexDelimiter{/}{DeB}{del}{0E}{OML}{3D}
% \end{macrocode}
-%
-%
+%
+%
% These wacky delimiters need to be supported I guess for
-% compabitility reasons.
+% compabitility reasons.
% The DeA delimiter type is a special case used only for these
-% arrows.
+% arrows.
% \begin{macrocode}
\DeclareFlexDelimiter{\lmoustache} {DeL}{del}{40}{del}{7A}
\DeclareFlexDelimiter{\rmoustache} {DeR}{del}{41}{del}{7B}
@@ -1208,18 +1210,18 @@
\DeclareFlexDelimiter{\Updownarrow}{DeA}{del}{77}{OMS}{6D}
\DeclareFlexDelimiter{\backslash} {DeB}{del}{0F}{OMS}{6E}
% \end{macrocode}
-%
-%
-%
-%
+%
+%
+%
+%
% \section{Some compound symbols}
-% The following symbols are not robust in standard \LaTeX\
+% The following symbols are not robust in standard \LaTeX\
% because they use \verb"#" or \cs{mathpalette} (which is not
% robust and contains a \verb"#" in its expansion): \cs{angle},
-% \cs{cong}, \cs{notin}, \cs{rightleftharpoons}.
-%
+% \cs{cong}, \cs{notin}, \cs{rightleftharpoons}.
+%
% In this definition of \cs{hbar}, the symbol is cobbled together
-% from a math italic h and the cmr overbar accent glyph.
+% from a math italic h and the cmr overbar accent glyph.
% \begin{macrocode}
\DeclareFlexSymbol{\hbarOrd}{Ord}{OT1}{16}
\DeclareFlexCompoundSymbol{\hbar}{Ord}{\hbarOrd\mkern-9mu h}
@@ -1233,7 +1235,7 @@
\DeclareFlexCompoundSymbol{\surd}{Ord}{\mathop{\surdOrd}}
% \end{macrocode}
% As shown in this definition of \cs{angle}, rule dimens are not
-% allowed to use math-units, unfortunately.
+% allowed to use math-units, unfortunately.
% \begin{macrocode}
\DeclareFlexCompoundSymbol{\angle}{Ord}{%
\vbox{\ialign{%
@@ -1245,11 +1247,11 @@
}
% \end{macrocode}
% The \cs{not} function, which is defined in the \pkg{flexisym}
-% package, requires a suitably defined \cs{notRel} symbol.
+% package, requires a suitably defined \cs{notRel} symbol.
% \begin{macrocode}
\DeclareFlexCompoundSymbol{\neq}{Rel}{\not{=}}
% \end{macrocode}
-% .
+% .
% \begin{macrocode}
\DeclareFlexCompoundSymbol{\mapsto}{Rel}{\mapstoOrd\rightarrow}
% \end{macrocode}
@@ -1257,7 +1259,7 @@
% construction on the math axis, unlike \cs{buildrel} where the base
% symbol remains at its normal altitude. Furthermore,
% \cs{@vereq} leaves the math style of the top symbol as given
-% instead of downsizing to scriptstyle.
+% instead of downsizing to scriptstyle.
% \begin{macrocode}
\DeclareFlexCompoundSymbol{\cong}{Rel}{\mathpalette\@vereq\sim}
% \end{macrocode}
@@ -1264,7 +1266,7 @@
% The \cs{m at th} in the \fn{fontmath.ltx} definition of
% \cs{notin} is superfluous unless \cs{c at ncel} doesn't include
% it (which was perhaps true in an older version of
-% \fn{plain.tex}?).
+% \fn{plain.tex}?).
% \begin{macrocode}
\providecommand*\joinord{}
%<cmbase|mathptmx>\renewcommand*\joinord{\mkern-3mu }
@@ -1284,7 +1286,7 @@
\DeclareFlexCompoundSymbol{\longleftrightarrow}{Rel}{\leftarrow\joinord\rightarrow}
\DeclareFlexCompoundSymbol{\Longleftrightarrow}{Rel}{\Leftarrow\joinord\Rightarrow}
% \end{macrocode}
-% Here is what you get from the old definition of \cs{iff}.
+% Here is what you get from the old definition of \cs{iff}.
% \begin{verbatim}
% \glue 2.77771 plus 2.77771
% \glue(\thickmuskip) 2.77771 plus 2.77771
@@ -1298,13 +1300,13 @@
% \end{verbatim}
% Looks like it could be simplified slightly. But it's not so
% easy as it looks to do it without screwing up the line breaking
-% possibilities.
+% possibilities.
% \begin{macrocode}
\renewcommand*\iff{%
\mskip\thickmuskip\Longleftrightarrow\mskip\thickmuskip
}
% \end{macrocode}
-% Some dotly symbols.
+% Some dotly symbols.
% \begin{macrocode}
\DeclareFlexCompoundSymbol{\cdots}{Inn}{\cdotp\cdotp\cdotp}%
\DeclareFlexCompoundSymbol{\vdots}{Ord}{%
@@ -1316,7 +1318,7 @@
\raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu%
}
% \end{macrocode}
-% .
+% .
% \begin{macrocode}
\def\relbar{\begingroup \def\smash@{tb}% in case amsmath is loaded
\mathpalette\mathsm at sh{\mathchar"200 }\endgroup}
@@ -1342,7 +1344,7 @@
% \cs{to} for \cs{rightarrow} are defined in
% \pkg{flexisym} with \cs{def} instead of \cs{let}, for
% slower execution speed but smaller chance of synchronization
-% problems.
+% problems.
%
%
%
@@ -1466,9 +1468,9 @@
\DeclareFlexSymbol{\Subset} {Rel}{MSA}{62}
\DeclareFlexSymbol{\Supset} {Rel}{MSA}{63}
\DeclareFlexSymbol{\Cup} {Bin}{MSA}{64}
- \let\doublecup\Cup
+ \let\doublecup\Cup
\DeclareFlexSymbol{\Cap} {Bin}{MSA}{65}
- \let\doublecap\Cap
+ \let\doublecap\Cap
\DeclareFlexSymbol{\curlywedge} {Bin}{MSA}{66}
\DeclareFlexSymbol{\curlyvee} {Bin}{MSA}{67}
\DeclareFlexSymbol{\leftthreetimes} {Bin}{MSA}{68}
@@ -1478,9 +1480,9 @@
\DeclareFlexSymbol{\bumpeq} {Rel}{MSA}{6C}
\DeclareFlexSymbol{\Bumpeq} {Rel}{MSA}{6D}
\DeclareFlexSymbol{\lll} {Rel}{MSA}{6E}
- \let\llless\lll
+ \let\llless\lll
\DeclareFlexSymbol{\ggg} {Rel}{MSA}{6F}
- \let\gggtr\ggg
+ \let\gggtr\ggg
\DeclareFlexSymbol{\circledS} {Ord}{MSA}{73}
\DeclareFlexSymbol{\pitchfork} {Rel}{MSA}{74}
\DeclareFlexSymbol{\dotplus} {Bin}{MSA}{75}
Modified: trunk/Master/texmf-dist/source/latex/breqn/mathstyle.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/breqn/mathstyle.dtx 2017-01-28 01:05:31 UTC (rev 43070)
+++ trunk/Master/texmf-dist/source/latex/breqn/mathstyle.dtx 2017-01-28 22:59:01 UTC (rev 43071)
@@ -3,8 +3,8 @@
% Copyright (C) 1997-2003 by Michael J. Downes
% Copyright (C) 2007-2008 by Morten Hoegholm
% Copyright (C) 2007-2014 by Lars Madsen
-% Copyright (C) 2007-2014 by Will Robertson
-% Copyright (C) 2015 by Will Robertson, Joseph Wright
+% Copyright (C) 2007-2017 by Will Robertson
+% Copyright (C) 2010-2017 by Joseph Wright
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -78,8 +78,8 @@
Copyright (C) 1997-2003 by Michael J. Downes
Copyright (C) 2007-2011 by Morten Hoegholm et al
Copyright (C) 2007-2014 by Lars Madsen
-Copyright (C) 2007-2014 by Will Robertson
-Copyright (C) 2015 by Will Robertson, Joseph Wright
+Copyright (C) 2007-2017 by Will Robertson
+Copyright (C) 2010-2017 by Joseph Wright
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -129,7 +129,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{mathstyle}
%<*package|driver>
- [2015/08/11 v0.98d Tracking mathstyle implicitly]
+ [2017/01/27 0.98e Tracking mathstyle implicitly]
%</package|driver>
%<*driver>
\documentclass{ltxdoc}
@@ -153,12 +153,12 @@
%
% \part*{User's guide}
%
-% This package exists for two reasons:
+% This package exists for two reasons:
% \begin{itemize}
% \item The primitive operations for creating a super- or subscript in
% \TeX\ work almost as if \verb|^| and \verb|_| are macros taking an
% argument. However, that is not quite the case, and
-% some things that you'd expect to work don't (e.g., \verb|^\cong|)
+% some things that you'd expect to work don't (e.g., \verb|^\cong|)
% whereas others which you'd think shouldn't work actually
% do (such as |^\mathsf{s}|). We do everyone a favor if it behaves
% consistently, i.e., if the superscript and subscript operations
@@ -174,8 +174,8 @@
% not promote the primitive infix notation, this package keeps track
% of a current mathstyle parameter.
% \end{itemize}
-%
-%
+%
+%
% \section{Some usage tips}
%
% If you want to use this package with \pkg{amsmath}, it is important
@@ -302,7 +302,7 @@
% set \verb|\mathstyle| to zero (see above), so by default it is set to the
% `text' maths style. With Lua\TeX{} there is a primitive to do the same
% so it just has to be enabled. Note that in all cases we use Lua\TeX{}-like
-% numbering for the states.
+% numbering for the states.
% \begin{macrocode}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname directlua\endcsname\relax
@@ -386,12 +386,14 @@
% \end{macrocode}
%
% \begin{macro}{\mathchoice}
+% \changes{v0.98e}{2016/04/09}{Lua\TeX{} primitive \cs{mathstyle} needs
+% termination}
% \cs{mathchoice} is now just a switch. Note that this redefinition
% does not allow the arbitrary \meta{filler} of the \TeX\
% primitive. Very rarely used anyway.
% \begin{macrocode}
\def\mathchoice{%
- \relax\ifcase\mathstyle
+ \relax\ifcase\numexpr\mathstyle\relax
\expandafter\@firstoffour % Display
\or
\expandafter\@firstoffour % Cramped display
@@ -432,6 +434,8 @@
% \end{macrocode}
% \changes{v0.90}{2011/08/03}{\cs{fracstyle} must be called \emph{after}
% changing to the required style}
+% \changes{v0.98e}{2016/04/09}{Lua\TeX{} primitive \cs{mathstyle} needs
+% termination}
% \end{macro}
%
% \begin{macrocode}
@@ -447,6 +451,7 @@
\renewcommand{\dbinom}{\genfrac\displaystyle(){0pt}}
\renewcommand{\tbinom}{\genfrac\textstyle(){0pt}}
% \end{macrocode}
+
% The \cs{fracstyle} command is a switch to go one level down but no
% further than three.
% \begin{macrocode}
@@ -453,15 +458,15 @@
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname directlua\endcsname\relax
\def\fracstyle{%
- \ifcase\mathstyle
+ \ifcase\numexpr\mathstyle\relax
\chardef\mathstyle=\@ne
\or
\chardef\mathstyle=\@ne
- \or
+ \or
\chardef\mathstyle=\tw@
- \or
+ \or
\chardef\mathstyle=\tw@
- \else
+ \else
\chardef\mathstyle=\thr@@
\fi
}
@@ -469,12 +474,14 @@
\def\fracstyle{}
\fi
% \end{macrocode}
+% \changes{v0.98e}{2016/04/09}{Lua\TeX{} primitive \cs{mathstyle} needs
+% termination}
% The \cs{currentmathstyle} checks the value of \cs{mathstyle} and
% switches to it so it is in essence the opposite of \cs{displaystyle}
% and friends.
% \begin{macrocode}
\def\currentmathstyle{%
- \ifcase\mathstyle
+ \ifcase\numexpr\mathstyle\relax
\@@displaystyle
\or
\@@displaystyle
@@ -495,17 +502,17 @@
% begin document, not straight away}
% \begin{macrocode}
\DeclareOption{mathactivechars}{%
- % \catcode`\^=12\relax
+ % \catcode`\^=12\relax
% \catcode`\_=12\relax
\AtBeginDocument{\catcode`\^=12\relax \catcode`\_=12\relax}%
}
\DeclareOption{activechars}{%
- % \catcode`\^=13\relax
+ % \catcode`\^=13\relax
% \catcode`\_=13\relax
\AtBeginDocument{\catcode`\^=13\relax \catcode`\_=13\relax}%
}
\DeclareOption{noactivechars}{%
- % \catcode`\^=7\relax
+ % \catcode`\^=7\relax
% \catcode`\_=8\relax
\AtBeginDocument{\catcode`\^=7\relax \catcode`\_=8\relax}%
}
@@ -518,12 +525,12 @@
\ifnum\catcode`\^=13\relax
\let^=\sp \let_=\sb
\else
- \mathcode`\^="8000\relax
+ \mathcode`\^="8000\relax
\mathcode`\_="8000\relax
- \begingroup
- \catcode`\^=\active
+ \begingroup
+ \catcode`\^=\active
\catcode`\_=\active
- \global\let^=\sp
+ \global\let^=\sp
\global\let_=\sb
\endgroup
\fi
Modified: trunk/Master/texmf-dist/tex/latex/breqn/breqn.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/breqn/breqn.sty 2017-01-28 01:05:31 UTC (rev 43070)
+++ trunk/Master/texmf-dist/tex/latex/breqn/breqn.sty 2017-01-28 22:59:01 UTC (rev 43071)
@@ -11,7 +11,8 @@
%% Copyright (C) 1997-2003 by Michael J. Downes
%% Copyright (C) 2007-2008 by Morten Hoegholm
%% Copyright (C) 2007-2014 by Lars Madsen
-%% Copyright (C) 2007-2014 by Will Robertson
+%% Copyright (C) 2007-2017 by Will Robertson
+%% Copyright (C) 2010-2017 by Joseph Wright
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -31,7 +32,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}[2009/08/05]
-\ProvidesExplPackage{breqn}{2015/08/11}{0.98d}{Breaking equations}
+\ProvidesExplPackage{breqn}{2017/01/27}{0.98e}{Breaking equations}
\ExplSyntaxOff
\edef\breqnpopcats{%
\catcode\number`\"=\number\catcode`\"
Modified: trunk/Master/texmf-dist/tex/latex/breqn/cmbase.sym
===================================================================
--- trunk/Master/texmf-dist/tex/latex/breqn/cmbase.sym 2017-01-28 01:05:31 UTC (rev 43070)
+++ trunk/Master/texmf-dist/tex/latex/breqn/cmbase.sym 2017-01-28 22:59:01 UTC (rev 43071)
@@ -11,7 +11,8 @@
%% Copyright (C) 1997-2003 by Michael J. Downes
%% Copyright (C) 2007-2010 by Morten Hoegholm
%% Copyright (C) 2007-2014 by Lars Madsen
-%% Copyright (C) 2007-2014 by Will Robertson
+%% Copyright (C) 2007-2017 by Will Robertson
+%% Copyright (C) 2010-2017 by Joseph Wright
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
Modified: trunk/Master/texmf-dist/tex/latex/breqn/flexisym.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/breqn/flexisym.sty 2017-01-28 01:05:31 UTC (rev 43070)
+++ trunk/Master/texmf-dist/tex/latex/breqn/flexisym.sty 2017-01-28 22:59:01 UTC (rev 43071)
@@ -11,7 +11,8 @@
%% Copyright (C) 1997-2003 by Michael J. Downes
%% Copyright (C) 2007-2010 by Morten Hoegholm
%% Copyright (C) 2007-2014 by Lars Madsen
-%% Copyright (C) 2007-2014 by Will Robertson
+%% Copyright (C) 2007-2017 by Will Robertson
+%% Copyright (C) 2010-2017 by Joseph Wright
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -31,7 +32,7 @@
%% cmbase.sym, mathpazo.sym, mathptmx.sym, msabm.sym.
%%
\RequirePackage{expl3}[2009/08/05]
-\ProvidesExplPackage{flexisym}{2015/08/11}{0.98d}{Make math characters macros}
+\ProvidesExplPackage{flexisym}{2017/01/27}{0.98e}{Make math characters macros}
\edef\do{%
\noexpand\AtEndOfPackage{%
Modified: trunk/Master/texmf-dist/tex/latex/breqn/mathpazo.sym
===================================================================
--- trunk/Master/texmf-dist/tex/latex/breqn/mathpazo.sym 2017-01-28 01:05:31 UTC (rev 43070)
+++ trunk/Master/texmf-dist/tex/latex/breqn/mathpazo.sym 2017-01-28 22:59:01 UTC (rev 43071)
@@ -11,7 +11,8 @@
%% Copyright (C) 1997-2003 by Michael J. Downes
%% Copyright (C) 2007-2010 by Morten Hoegholm
%% Copyright (C) 2007-2014 by Lars Madsen
-%% Copyright (C) 2007-2014 by Will Robertson
+%% Copyright (C) 2007-2017 by Will Robertson
+%% Copyright (C) 2010-2017 by Joseph Wright
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
Modified: trunk/Master/texmf-dist/tex/latex/breqn/mathptmx.sym
===================================================================
--- trunk/Master/texmf-dist/tex/latex/breqn/mathptmx.sym 2017-01-28 01:05:31 UTC (rev 43070)
+++ trunk/Master/texmf-dist/tex/latex/breqn/mathptmx.sym 2017-01-28 22:59:01 UTC (rev 43071)
@@ -11,7 +11,8 @@
%% Copyright (C) 1997-2003 by Michael J. Downes
%% Copyright (C) 2007-2010 by Morten Hoegholm
%% Copyright (C) 2007-2014 by Lars Madsen
-%% Copyright (C) 2007-2014 by Will Robertson
+%% Copyright (C) 2007-2017 by Will Robertson
+%% Copyright (C) 2010-2017 by Joseph Wright
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
Modified: trunk/Master/texmf-dist/tex/latex/breqn/mathstyle.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/breqn/mathstyle.sty 2017-01-28 01:05:31 UTC (rev 43070)
+++ trunk/Master/texmf-dist/tex/latex/breqn/mathstyle.sty 2017-01-28 22:59:01 UTC (rev 43071)
@@ -11,8 +11,8 @@
%% Copyright (C) 1997-2003 by Michael J. Downes
%% Copyright (C) 2007-2011 by Morten Hoegholm et al
%% Copyright (C) 2007-2014 by Lars Madsen
-%% Copyright (C) 2007-2014 by Will Robertson
-%% Copyright (C) 2015 by Will Robertson, Joseph Wright
+%% Copyright (C) 2007-2017 by Will Robertson
+%% Copyright (C) 2010-2017 by Joseph Wright
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -32,7 +32,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mathstyle}
- [2015/08/11 v0.98d Tracking mathstyle implicitly]
+ [2017/01/27 0.98e Tracking mathstyle implicitly]
\providecommand\@saveprimitive[2]{%
\begingroup
\edef\@tempa{\string#1}\edef\@tempb{\meaning#1}%
@@ -122,7 +122,7 @@
\def\sb#1{\mathsub{\protect\subsupstyle#1}}%
\def\sp#1{\mathsup{\protect\subsupstyle#1}}%
\def\mathchoice{%
- \relax\ifcase\mathstyle
+ \relax\ifcase\numexpr\mathstyle\relax
\expandafter\@firstoffour % Display
\or
\expandafter\@firstoffour % Cramped display
@@ -161,10 +161,11 @@
\renewcommand{\binom}{\genfrac{}(){0pt}}
\renewcommand{\dbinom}{\genfrac\displaystyle(){0pt}}
\renewcommand{\tbinom}{\genfrac\textstyle(){0pt}}
+
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname directlua\endcsname\relax
\def\fracstyle{%
- \ifcase\mathstyle
+ \ifcase\numexpr\mathstyle\relax
\chardef\mathstyle=\@ne
\or
\chardef\mathstyle=\@ne
@@ -180,7 +181,7 @@
\def\fracstyle{}
\fi
\def\currentmathstyle{%
- \ifcase\mathstyle
+ \ifcase\numexpr\mathstyle\relax
\@@displaystyle
\or
\@@displaystyle
Modified: trunk/Master/texmf-dist/tex/latex/breqn/msabm.sym
===================================================================
--- trunk/Master/texmf-dist/tex/latex/breqn/msabm.sym 2017-01-28 01:05:31 UTC (rev 43070)
+++ trunk/Master/texmf-dist/tex/latex/breqn/msabm.sym 2017-01-28 22:59:01 UTC (rev 43071)
@@ -11,7 +11,8 @@
%% Copyright (C) 1997-2003 by Michael J. Downes
%% Copyright (C) 2007-2010 by Morten Hoegholm
%% Copyright (C) 2007-2014 by Lars Madsen
-%% Copyright (C) 2007-2014 by Will Robertson
+%% Copyright (C) 2007-2017 by Will Robertson
+%% Copyright (C) 2010-2017 by Joseph Wright
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
More information about the tex-live-commits
mailing list