%% %% This is file `array.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% array.dtx (with options: `package,ncols') %% %% IMPORTANT NOTICE: %% %% This file is a generated file from the sources of the `tools' bundle %% in the LaTeX2e distribution. %% %% For the copyright notice see the source file(s). %% %% You are not allowed to modify this file. %% %% You are allowed to distribute this file if and only if %% it is distributed with the corresponding source files in %% the `tools' bundle. %% %% For the copying and distribution conditions of the source files, %% see the file readme.txt distributed with the tools bundle. %% %% Package `array' to use with LaTeX 2e %% Copyright (C) 1989-1996 Frank Mittelbach, all rights reserved. \NeedsTeXFormat{LaTeX2e}[1995/06/01] \ProvidesPackage{array} [1996/06/14 v2.3i 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 \hskip1sp\d@llarbegin \insert@column \d@llarend \hfil \or \hfil\hskip1sp\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\hfil} \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{\relax\iffalse{\fi\ifnum 0=`}\fi \@ifstar \@xarraycr \@xarraycr} \def\@xarraycr{\@ifnextchar [% \@argarraycr {\ifnum 0=`{}\fi\cr}} \def\@argarraycr[#1]{\ifnum0=`{}\fi\ifdim #1>\z@ \expandafter\@xargarraycr\else \expandafter\@yargarraycr\fi{#1}} \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 \global\advance\backup@length\arrayrulewidth \raise\extratabsurround\copy\@arstrutbox }\\[-\backup@length]\hline } \newcommand{\lasthline}{\hline\multicolumn1c{% \global\backup@length2\ht\@arstrutbox \global\advance\backup@length2\dp\@arstrutbox \global\advance\backup@length\arrayrulewidth }\\[-\backup@length]% \multicolumn1c{% \lower\extratabsurround\copy\@arstrutbox }% } \CheckCommand*\@xhline{\ifx\reserved@a\hline \vskip\doublerulesep \vskip-\arrayrulewidth \fi \ifnum0=`{\fi}} \renewcommand*\@xhline{\ifx\reserved@a\hline \vskip\doublerulesep \fi \ifnum0=`{\fi}} \endinput %% %% End of file `array.sty'.