home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-01-24 | 11.6 KB | 339 lines | [TEXT/MPS ] |
- %%
- %% This is file `array.sty', generated
- %% on <1995/1/24> with the docstrip utility (2.2i).
- %%
- %% The original source files were:
- %%
- %% array.dtx (with options: `package,ncols')
- %%
- %% IMPORTANT NOTICE:
- %% This file is part of the `tools' bundle
- %% in the LaTeX2e distribution.
- %%
- %% You are not allowed to distribute this file.
- %% For distribution of the original source see
- %% the copyright notice in the source file, and
- %% in the file readme.txt distributed with the
- %% tools bundle.
- %%
- %% Package `array' to use with LaTeX 2e
- %% Copyright (C) 1989-1994 Frank Mittelbach, all rights reserved.
- \NeedsTeXFormat{LaTeX2e}[1994/06/01]
- \ProvidesPackage{array}
- [1994/12/08 v2.3b Tabular extension package (FMi)]
- %% \CharacterTable
- %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
- %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
- %% Digits \0\1\2\3\4\5\6\7\8\9
- %% Exclamation \! Double quote \" Hash (number) \#
- %% Dollar \$ Percent \% Ampersand \&
- %% Acute accent \' Left paren \( Right paren \)
- %% Asterisk \* Plus \+ Comma \,
- %% Minus \- Point \. Solidus \/
- %% Colon \: Semicolon \; Less than \<
- %% Equals \= Greater than \> Question mark \?
- %% Commercial at \@ Left bracket \[ Backslash \\
- %% Right bracket \] Circumflex \^ Underscore \_
- %% Grave accent \` Left brace \{ Vertical bar \|
- %% Right brace \} Tilde \~}
- %%
- \def\@addtopreamble#1{\xdef\@preamble{\@preamble #1}}
- \def\@testpach{\@chclass
- \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
- \ifnum \@lastchclass=7 5 \else
- \ifnum \@lastchclass=8 \tw@ \else
- \ifnum \@lastchclass=9 \thr@@
- \else \z@
- \ifnum \@lastchclass = 10 \else
- \edef\@nextchar{\expandafter\string\@nextchar}%
- \@chnum
- \if \@nextchar c\z@ \else
- \if \@nextchar l\@ne \else
- \if \@nextchar r\tw@ \else
- \z@ \@chclass
- \if\@nextchar |\@ne \else
- \if \@nextchar !6 \else
- \if \@nextchar @7 \else
- \if \@nextchar <8 \else
- \if \@nextchar >9 \else
- 10
- \@chnum
- \if \@nextchar m\thr@@\else
- \if \@nextchar p4 \else
- \if \@nextchar b5 \else
- \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi
- \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi}
- \def\@xexpast#1*#2#3#4\@@{%
- \@tempcnta #2
- \toks@={#1}\@temptokena={#3}%
- \let\the@toksz\relax \let\the@toks\relax
- \def\@tempa{\the@toksz}%
- \ifnum\@tempcnta >0 \@whilenum\@tempcnta >0\do
- {\edef\@tempa{\@tempa\the@toks}\advance \@tempcnta \m@ne}%
- \let \@tempb \@xexpast \else
- \let \@tempb \@xexnoop \fi
- \def\the@toksz{\the\toks@}\def\the@toks{\the\@temptokena}%
- \edef\@tempa{\@tempa}%
- \expandafter \@tempb \@tempa #4\@@}
- \def\prepnext@tok{\advance \count@ \@ne
- \toks\count@{}}
- \def\save@decl{\toks\count@ \expandafter{\@nextchar}}
- \def\insert@column{%
- \the@toks \the \@tempcnta
- \ignorespaces \@sharp \unskip
- \the@toks \the \count@ \relax}
- \newdimen\col@sep
- \def\@acol{\@addtopreamble{\hskip\col@sep}}
- \def\@mkpream#1{\gdef\@preamble{}\@lastchclass 4 \@firstamptrue
- \let\@sharp\relax \let\@startpbox\relax \let\@endpbox\relax
- \@xexpast #1*0x\@@
- \count@\m@ne
- \let\the@toks\relax
- \prepnext@tok
- \expandafter \@tfor \expandafter \@nextchar
- \expandafter :\expandafter =\@tempa \do
- {\@testpach
- \ifcase \@chclass \@classz \or \@classi \or \@classii
- \or \save@decl \or \or \@classv \or \@classvi
- \or \@classvii \or \@classviii \or \@classix
- \or \@classx \fi
- \@lastchclass\@chclass}%
- \ifcase\@lastchclass
- \@acol \or
- \or
- \@acol \or
- \@preamerr \thr@@ \or
- \@preamerr \tw@ \@addtopreamble\@sharp \or
- \or
- \else \@preamerr \@ne \fi
- \def\the@toks{\the\toks}}
- \def\@classx{%
- \ifcase \@lastchclass
- \@acolampacol \or
- \@addamp \@acol \or
- \@acolampacol \or
- \or
- \@acol \@firstampfalse \or
- \@addamp
- \fi}
- \def\@classz{\@classx
- \@tempcnta \count@
- \prepnext@tok
- \@addtopreamble{\ifcase \@chnum
- \hfil
- \d@llarbegin
- \insert@column
- \d@llarend \hfil \or
- \d@llarbegin \insert@column \d@llarend \hfil \or
- \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \or
- $\vcenter
- \@startpbox{\@nextchar}\insert@column \@endpbox $\or
- \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or
- \vbox \@startpbox{\@nextchar}\insert@column \@endpbox
- \fi}\prepnext@tok}
- \def\@classix{\ifnum \@lastchclass = \thr@@
- \@preamerr \thr@@ \fi
- \@classx}
- \def\@classviii{\ifnum \@lastchclass >\z@
- \@preamerr 4\@chclass 6 \@classvi \fi}
- \def\@arrayrule{\@addtopreamble \vline}
- \def\@classvii{\ifnum \@lastchclass = \thr@@
- \@preamerr \thr@@ \fi}
- \def\@classvi{\ifcase \@lastchclass
- \@acol \or
- \@addtopreamble{\hskip \doublerulesep}\or
- \@acol \or
- \@classvii
- \fi}
- \def\@classii{\advance \count@ \m@ne
- \save@decl\prepnext@tok}
- \def\@classv{\save@decl
- \@addtopreamble{\d@llarbegin\the@toks\the\count@\relax\d@llarend}%
- \prepnext@tok}
- \def\@classi{\@classvi
- \ifcase \@chnum \@arrayrule \or
- \@classv \fi}
- \def\@startpbox#1{\bgroup
- \hsize #1 \@arrayparboxrestore
- \everypar{%
- \vrule \@height \ht\@arstrutbox \@width \z@
- \everypar{}}%
- }
- \def\@endpbox{\@finalstrut\@arstrutbox \egroup}
- \def\@array[#1]#2{%
- \@tempdima \ht \strutbox
- \advance \@tempdima by\extrarowheight
- \setbox \@arstrutbox \hbox{\vrule
- \@height \arraystretch \@tempdima
- \@depth \arraystretch \dp \strutbox
- \@width \z@}%
- \begingroup
- \@mkpream{#2}%
- \xdef\@preamble{\ialign \@halignto
- \bgroup \@arstrut \@preamble
- \tabskip \z@ \cr}%
- \endgroup
- \@arrayleft
- \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi
- \bgroup
- \let \@sharp ##\let \protect \relax
- \lineskip \z@
- \baselineskip \z@
- \m@th
- \let\\\@arraycr \let\tabularnewline\\\let\par\@empty \@preamble}
- \newdimen \extrarowheight
- \extrarowheight=0pt
- \def\@arstrut{\unhcopy\@arstrutbox}
- \def\@arraycr{{\ifnum 0=`}\fi
- \@ifstar \@xarraycr \@xarraycr}
- \def\@xarraycr{\@ifnextchar [%
- \@argarraycr {\ifnum 0=`{\fi}\cr}}
- \def\@argarraycr[#1]{\ifnum0=`{\fi}\ifdim #1>\z@
- \@xargarraycr{#1}\else \@yargarraycr{#1}\fi}
- \def\@xargarraycr#1{\unskip
- \@tempdima #1\advance\@tempdima \dp\@arstrutbox
- \vrule \@depth\@tempdima \@width\z@ \cr}
- \def\@yargarraycr#1{\cr\noalign{\vskip #1}}
- \def\multicolumn#1#2#3{%
- \multispan{#1}\begingroup
- \def\@addamp{\if@firstamp \@firstampfalse \else
- \@preamerr 5\fi}%
- \@mkpream{#2}\@addtopreamble\@empty
- \endgroup
- \def\@sharp{#3}%
- \@arstrut \@preamble
- \null
- \ignorespaces}
- \let\d@llarbegin\begingroup
- \let\d@llarend\endgroup
- \def\array{\col@sep\arraycolsep
- \def\d@llarbegin{$}\let\d@llarend\d@llarbegin\gdef\@halignto{}%
- \@tabarray}
- \def\@tabarray{\@ifnextchar[{\@array}{\@array[c]}}
- \def\tabular{\gdef\@halignto{}\@tabular}
- \expandafter\def\csname tabular*\endcsname#1{%
- \gdef\@halignto{to#1}\@tabular}
- \def\@tabular{%
- \leavevmode
- \hbox \bgroup $\col@sep\tabcolsep \let\d@llarbegin\begingroup
- \let\d@llarend\endgroup
- \@tabarray}
- \def\endarray{\crcr \egroup \egroup \gdef\@preamble{}}
- \def\endtabular{\endarray $\egroup}
- \expandafter\let\csname endtabular*\endcsname=\endtabular
- \let\@ampacol=\relax \let\@expast=\relax
- \let\@arrayclassiv=\relax \let\@arrayclassz=\relax
- \let\@tabclassiv=\relax \let\@tabclassz=\relax
- \let\@arrayacol=\relax \let\@tabacol=\relax
- \let\@tabularcr=\relax \let\@@endpbox=\relax
- \let\@argtabularcr=\relax \let\@xtabularcr=\relax
- \def\@preamerr#1{\def\@tempd{{..} at wrong position: }%
- \PackageError{array}{%
- \ifcase #1 Illegal pream-token (\@nextchar): `c' used\or %0
- Missing arg: token ignored\or %1
- Empty preamble: `l' used\or %2
- >\@tempd token ignored\or %3
- <\@tempd changed to !{..}\or %4
- Only one column-spec. allowed.\fi}\@ehc} %5
- \def\newcolumntype#1{%
- \edef\NC@char{\string#1}%
- \@ifundefined{NC@find@\NC@char}%
- {\@tfor\next:=<>clrmbp@!|\do{\if\noexpand\next\NC@char
- \PackageWarning{array}%
- {Redefining primitive column \NC@char}\fi}%
- \NC@list\expandafter{\the\NC@list\NC@do#1}}%
- {\PackageWarning{array}{Column \NC@char\space is already defined}}%
- \@namedef{NC@find@\NC@char}##1#1{\NC@{##1}}%
- \@ifnextchar[{\newcol@{\NC@char}}{\newcol@{\NC@char}[0]}}
- \def\newcol@#1[#2]#3{\expandafter\@reargdef
- \csname NC@rewrite@#1\endcsname[#2]{\NC@find#3}}
- \def\NC@#1{%
- \@temptokena\expandafter{\the\@temptokena#1}\futurelet\next\NC@ifend}
- \def\NC@ifend{%
- \ifx\next\relax
- \else\@tempswatrue\expandafter\NC@rewrite\fi}
- \def\NC@do#1{%
- \expandafter\let\expandafter\NC@rewrite
- \csname NC@rewrite@\string#1\endcsname
- \expandafter\let\expandafter\NC@find
- \csname NC@find@\string#1\endcsname
- \expandafter\@temptokena\expandafter{\expandafter}%
- \expandafter\NC@find\the\@temptokena#1\relax}
- \def\showcols{{\def\NC@do##1{\let\NC@do\NC@show}\the\NC@list}}
- \def\NC@show#1{%
- \typeout{Column #1\expandafter\expandafter\expandafter\NC@strip
- \expandafter\meaning\csname NC@rewrite@#1\endcsname\@@}}
- \def\NC@strip#1:#2->#3 #4\@@{#2 -> #4}
- \newtoks\NC@list
- \newcolumntype{*}[2]{}
- \long\@namedef{NC@rewrite@*}#1#2{%
- \count@#1
- \loop
- \ifnum\count@>\z@
- \advance\count@\m@ne
- \@temptokena\expandafter{\the\@temptokena#2}%
- \repeat
- \NC@find}
- \let\@xexpast\relax
- \let\@xexnoop\relax
- \def\save@decl{\toks \count@ = \expandafter\expandafter\expandafter
- {\expandafter\@nextchar\the\toks\count@}}
- \def\@mkpream#1{\gdef\@preamble{}\@lastchclass 4 \@firstamptrue
- \let\@sharp\relax \let\@startpbox\relax \let\@endpbox\relax
- \@temptokena{#1}\@tempswatrue
- \@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}%
- \count@\m@ne
- \let\the@toks\relax
- \prepnext@tok
- \expandafter \@tfor \expandafter \@nextchar
- \expandafter :\expandafter =\the\@temptokena \do
- {\@testpach
- \ifcase \@chclass \@classz \or \@classi \or \@classii
- \or \save@decl \or \or \@classv \or \@classvi
- \or \@classvii \or \@classviii
- \or \@classx
- \or \@classx \fi
- \@lastchclass\@chclass}%
- \ifcase\@lastchclass
- \@acol \or
- \or
- \@acol \or
- \@preamerr \thr@@ \or
- \@preamerr \tw@ \@addtopreamble\@sharp \or
- \or
- \else \@preamerr \@ne \fi
- \def\the@toks{\the\toks}}
- \let\@classix\relax
- \def\@classviii{\ifnum \@lastchclass >\z@\ifnum\@lastchclass=\tw@\else
- \@preamerr 4\@chclass 6 \@classvi \fi\fi}
- \def\@classv{\save@decl
- \expandafter\NC@ecs\@nextchar\extracolsep{}\extracolsep\@@@
- \@addtopreamble{\d@llarbegin\the@toks\the\count@\relax\d@llarend}%
- \prepnext@tok}
- \def\NC@ecs#1\extracolsep#2#3\extracolsep#4\@@@{\def\@tempa{#2}%
- \ifx\@tempa\@empty\else\toks\count@={#1\tabskip#2\relax#3}\fi}
- \def\@tabarray{\@ifnextchar[{\@@array}{\@@array[c]}}
- \let\@@array\@array
- \def\endarray{\crcr \egroup \egroup \@arrayright \gdef\@preamble{}}
- \let\@arrayleft\@empty
- \let\@arrayright\@empty
- \newlength{\extratabsurround}
- \setlength{\extratabsurround}{2pt}
- \newlength{\backup@length}
- \newcommand{\firsthline}{%
- \multicolumn1c{%
- \global\backup@length\ht\@arstrutbox
- \global\advance\backup@length\dp\@arstrutbox
- \advance\backup@length\extratabsurround
- \rule\z@\backup@length
- }\\[-\backup@length]\hline
- }
- \newcommand{\lasthline}{\hline\multicolumn1c{}%
- \global\backup@length-\ht\@arstrutbox
- \global\advance\backup@length\extratabsurround
- \\[\backup@length]%
- }
- \endinput
- %%
- %% End of file `array.sty'.
-