home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fonts 1
/
freshfonts1.bin
/
programs
/
amiga
/
pastex
/
macros
/
subeqn
/
subeqnarray.sty
< prev
Wrap
Text File
|
1989-12-20
|
3KB
|
87 lines
%+
% Subeqnarray DOCUMENT-STYLE option -- Version 1.1 released 15 November 1988
% for LaTeX version 2.09
%
% Copyright (C) 1988 by Johannes Braams, Dr Neher Laboratories
%
% This style option defines the subeqnarray and subeqnarray*
% environment, which behaves like the eqnarray environment,
% except that the lines are numbered like 1a 1b 1c etc.
% To refer to these numbers an extra label command \slabel
% has been defined.
%
% Many of this code was taken from LaTeX.TeX and modified for
% this purpose.
%
% Revisions:
%
% 22 December 1988 V1.1 JB Fixed bug in subeqnarray* environment
%
%-
\typeout{Documentstyle option `subeqnarray' V1.1; Released 22 December 1988}
%
% A new counter for he subequations
% and a command to generate the number
%
\newcounter{subequation}[equation]
\def\thesubequation{\theequation\@alph\c@subequation}
%
% \@subeqnnum: Produces the equation number for the
% subeqnarray environment. The following definition is for
% flushright numbers; for flushleft numbers, see leqno.doc.
% The {\rm ... } puts the subequation number in roman type even if
% an subeqnarray environment appears in an italic environment.
%
\def\@subeqnnum{{\rm (\thesubequation)}}
%
% A new label command to refer to subequations. It works
% like the \label command and was taken from LaTeX.TeX
%
% \slabel{FOO} then writes the following on file \@auxout :
% \newlabel{FOO}{{eval(\@currentlabel)}{eval(\thepage)}}
%
\def\slabel#1{\@bsphack\if@filesw {\let\thepage\relax
\xdef\@gtempa{\write\@auxout{\string
\newlabel{#1}{{\thesubequation}{\thepage}}}}}\@gtempa
\if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack}
%
% Here's the subeqnarray environment,
% it steps the equation counter,
% sets the subequation counter equal to 1
% and behaves much like the eqnarray environment.
%
\def\subeqnarray{\stepcounter{equation}
\let\@currentlabel=\theequation\global\c@subequation\@ne
\global\@eqnswtrue
\global\@eqcnt\z@\tabskip\@centering\let\\=\@subeqncr
$$\halign to \displaywidth\bgroup\@eqnsel\hskip\@centering
$\displaystyle\tabskip\z@{##}$&\global\@eqcnt\@ne
\hskip 2\arraycolsep \hfil${##}$\hfil
&\global\@eqcnt\tw@ \hskip 2\arraycolsep $\displaystyle\tabskip\z@{##}$\hfil
\tabskip\@centering&\llap{##}\tabskip\z@\cr}
\def\endsubeqnarray{\@@subeqncr\egroup
$$\global\@ignoretrue}
\def\@subeqncr{{\ifnum0=`}\fi\@ifstar{\global\@eqpen\@M
\@ysubeqncr}{\global\@eqpen\interdisplaylinepenalty \@ysubeqncr}}
\def\@ysubeqncr{\@ifnextchar [{\@xsubeqncr}{\@xsubeqncr[\z@]}}
\def\@xsubeqncr[#1]{\ifnum0=`{\fi}\@@subeqncr
\noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}}
\def\@@subeqncr{\let\@tempa\relax
\ifcase\@eqcnt \def\@tempa{& & &}\or \def\@tempa{& &}
\else \def\@tempa{&}\fi
\@tempa \if@eqnsw\@subeqnnum\refstepcounter{subequation}\fi
\global\@eqnswtrue\global\@eqcnt\z@\cr}
% Here's the subeqnarray* environment:
\let\@ssubeqncr=\@subeqncr
\@namedef{subeqnarray*}{\def\@subeqncr{\nonumber\@ssubeqncr}\subeqnarray}
\@namedef{endsubeqnarray*}{\global\advance\c@equation\m@ne%
\nonumber\endsubeqnarray}