8.11 Eqnarray

<..html eqnarray..>
                                     \catcode‘\#=13 \catcode‘\!=6
 \def\reg:eq:narray!1\cr{<.halign eqnarray.>}
                                     \catcode‘\#=6 \catcode‘\!=12
 -_-_-

<..halign eqnarray..>
 \SaveMkHalignConf:g{eq:narray\if@eqnsw\else *\fi}\HRestore\noalign
 \MkHalign#{<.eqnarray pattern.>}%
 -_-_-

<..eqnarray pattern..>
 \hskip\@centering$\displaystyle\tabskip\z@skip{#}$\@eqnsel
   &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${#}$\hfil
   &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
          $\displaystyle{#}$\hfil\tabskip\@centering
   &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss#\egroup \tabskip\z@skip
 -_-_-

<..html eqnarray..>+
 \def\:tempc{
      \@@eqncr
      \EndMkHalign   \RecallMkHalignConfig
      \csname b:eq:narray\if@eqnsw\else *\fi\endcsname
      \global\advance\c@equation\m@ne
    $$\@ignoretrue }
 \HLet\endeqnarray=\:tempc
 \def\:tempc{%
    <.def :currentlabel for eqnarray.>%
    \let\sv:halign=\halign \def\halign{\let\halign=\sv:halign
    \eq:narray\halign}\o:eqnarray:}
 \HLet\eqnarray=\:tempc
 \let\eq:narray=\empty
 \def\:tempc{\pic:MkHalign{eq:narray\if@eqnsw\else *\fi}}
 \HLet\eq:narray=\:tempc
 \def\c:eqnarray:{\c:eq:narray:}  \NewConfigure{eq:narray}{6}
 \expandafter\let\csname reg:eq:narray*\endcsname=\reg:eq:narray
 \expandafter\def\csname c:eqnarray*:\endcsname{\csname
     c:eq:narray*:\endcsname}  \NewConfigure{eq:narray*}{6}
 -_-_-

<..html eqnarray..>+
 \let\snd:halign=\empty
 \def\:temp[#1]{\ifnum 0=‘{\fi }\@@eqncr}
 \HLet\@xeqncr=\:temp
 \def\:temp{\let\reserved@a\relax
    \ifcase\@eqcnt \def\reserved@a{& & &}\or
        \def\reserved@a{& &}%
    \or \def\reserved@a{&}\else
      \let\reserved@a\@empty
      \@latex@error{Too many columns in eqnarray environment}\@ehc\fi
    \reserved@a <.fix eqnarray for /label.>%
    \global\@eqnswtrue\global\@eqcnt\z@\cr}
 \HLet\@@eqncr=\:temp
 -_-_-

\append:def\endeqnarray{}’ is no good because the tail of the table falls out of the traced math environment. ‘ \def\endeqnarray{% \@@eqncr \egroup \global\advance\c@equation\m@ne \r:eqnar\t:eqnar\rc:roco $$\global\@ignoretrue }’ is not good, because halign doesn’t allow insertion iside the ‘$$’. There are two ‘\snd:halign’ out the ‘’’: one inseted here, and one defined into the math env. The first one is activated by the tracing of the math environment, immediately after the ‘$$’.

The indirection through \:temp is required due to the \fi without a visible \if.

<..fix eqnarray for /label..>
 \if@eqnsw \@eqnnum
   {\let\html:addr=\empty <.def :currentlabel for eqncr.>}%
   \stepcounter{equation}\fi
 -_-_-