%  fichier xtdeqnra.sty             ver 1.1    Decembre 2004
%
%  Copyright (C) 2004 by Jerome LAURENS
%
%  Ces macros peuvent e^tre librement transmises, sans modification aucune
%  tant que cette notice est intacte.
%  Base' sur le paquetage cases.sty de D.Arseneau
%  et la commande \eqnarray de Leslie Lamport et de l'e'quipe LaTeX3.
%
%  On rajoute un parame`tre optionnel a` l'environnement eqnarray qui
%  est un delimiteur gauche
%
%  Exemple : source
%
%  \begin{eqnarray}[\{]
%   x_1 & = & valeur_1 \\
%   x_2 & = & valeur_2 \\
%   x_3 & = & valeur_3
%  \end{eqnarray}
%
%  Re'sultat
%
%               /  x_1 = valeur_1           (1)
%               |
%               <  x_2 = valeur_2           (2)
%               |
%               \  x_3 = valeur_3           (3)
%
%  Pour utiliser ce paquetage,
%  inclure  "\usepackage{xtdeqnra}  apre`s \documentclass.
%
%  On peut utiliser l'environnement subequations pour avoir (1a), (1b) et (1c)
% - - - - -
%
\ProvidesPackage{xtdeqnra}[2004/12/10 version 1.1]
%  - sauvegarde de l'environnement eqnarray
\let\x@eqnarray\eqnarray
\let\endx@eqnarray\endeqnarray
%  - environnement de remplacement
\def\eqnarray{\@ifnextchar[%
  {\let\endeqnarray\endy@eqnarray\y@eqnarray}
  {\let\endeqnarray\endx@eqnarray\x@eqnarray}}
%
%  - nouvel environnement avec un de'limiteur a` gauche
\def\y@eqnarray[#1]%
{\gdef\@leftdelimiter{#1}
 \displaymath
  \setbox\tw@\vbox
    \bgroup
      \stepcounter{equation}%
      \def\@currentlabel{\p@equation\theequation}%
      \global\@eqnswtrue
      \m@th
      \everycr{}%
      \tabskip\@centering
      \let\\\@eqncr
      \halign to\displaywidth
        \bgroup
          \hskip \@ne\arraycolsep
          \hfil$\displaystyle
          \tabskip\z@skip{##}$%
          \@eqnsel
          &\global\@eqcnt\@ne
          \hskip \tw@\arraycolsep
          \hfil${##}$\hfil
          &\global\@eqcnt\tw@
          \hskip\tw@\arraycolsep
          $\displaystyle{##}$\hfil
          \unskip\hfil
          \tabskip\@centering% \unskip removes space if no explanations
                  &\global\@eqcnt\thr@@
          \hb@xt@\z@\bgroup\hss##\egroup
          \tabskip\z@skip
          \cr
}
\def\endy@eqnarray{%
          \@@eqncr
        \egroup % end \halign, which does not contain brace
      \global\advance\c@equation\m@ne
      \unskip\unpenalty
      \unskip\unpenalty
      \setbox\z@\lastbox % grab last line
      \nointerlineskip
      \copy\z@ % then put it back
      \setbox\z@\hbox{\unhbox\z@}%
      \global\dimen@i\wd\z@
    \egroup% end \vbox (box\tw@, box\z@ is restored to LHS)
  \hbox to\displaywidth{%
    \m@th % assemble the whole equation
    \hskip\@centering
    \hbox to\dimen@i{%
      $\displaystyle%
      \dimen@\ht\tw@
      \advance\dimen@\dp\tw@ % get size of brace
      \setbox\z@\hbox{$\mathord{\left\@leftdelimiter\vcenter
to\dimen@{\vfil}\right.}$}%
      \dimen@\wd\z@
      \kern-\dimen@
      \box\z@%
      \n@space % make brace
      $\hfil}
    \hskip\@centering % finished first part (filled whole line)
    \kern-\displaywidth$%
    \vcenter{\box\tw@}$% overlay the alignment
  }% end the \hbox
  \ifx\notag\undefined\else\notag\fi% fixed on 12/10/2004 to support amsmath
  \enddisplaymath
  \global\@ignoretrue
}