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