project/static/proceedings/sources/ltxutil.sty
changeset 99 30b754364bbb
equal deleted inserted replaced
98:0a0bddff6847 99:30b754364bbb
       
     1 %%
       
     2 %% This is file `ltxutil.sty',
       
     3 %% generated with the docstrip utility.
       
     4 %%
       
     5 %% The original source files were:
       
     6 %%
       
     7 %% ltxutil.dtx  (with options: `ltxutil,ltxutil-krn')
       
     8 %% 
       
     9 %% This is a generated file;
       
    10 %% altering it directly is inadvisable;
       
    11 %% instead, modify the original source file.
       
    12 %% See the URL in the file 00readme.txt.
       
    13 %% 
       
    14 %% Copyright notice.
       
    15 %% 
       
    16 %%    These files are distributed
       
    17 %%    WITHOUT ANY WARRANTY; without even the implied warranty of
       
    18 %%    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       
    19 %% 
       
    20 %%%  @LaTeX-file{
       
    21 %%%     filename        = "ltxutil.dtx",
       
    22 %%%     version         = "1.0rc5b",
       
    23 %%%     date            = "2001/07/31",
       
    24 %%%     time            = "12:23:00 GMT+8",
       
    25 %%%     checksum        = "3641",
       
    26 %%%     author          = "Arthur Ogawa (mailto:ogawa@teleport.com),
       
    27 %%%                        commissioned by the American Physical Society.
       
    28 %%%                        ",
       
    29 %%%     copyright       = "Copyright (C) 1999 Arthur Ogawa,
       
    30 %%%                        distributed under the terms of the
       
    31 %%%                        LaTeX Project Public License, see
       
    32 %%%                        ftp://ctan.tug.org/macros/latex/base/lppl.txt
       
    33 %%%                        ",
       
    34 %%%     address         = "Arthur Ogawa,
       
    35 %%%                        USA",
       
    36 %%%     telephone       = "",
       
    37 %%%     FAX             = "",
       
    38 %%%     email           = "ogawa@teleport.com",
       
    39 %%%     codetable       = "ISO/ASCII",
       
    40 %%%     keywords        = "latex, utility, kernel",
       
    41 %%%     supported       = "yes",
       
    42 %%%     abstract        = "package to add utilties to LaTeX",
       
    43 %%%     docstring       = "The checksum field above generated by ltxdoc",
       
    44 %%%  }
       
    45 \NeedsTeXFormat{LaTeX2e}[1995/12/01]%
       
    46 \ProvidesFile{ltxutil.sty}%
       
    47  [2001/07/31 1.0rc5b utilities package]% \fileversion
       
    48 \def\package@name{ltxutil}%
       
    49 \expandafter\PackageInfo\expandafter{\package@name}{%
       
    50  Utility macros for \protect\LaTeXe,
       
    51  by A. Ogawa (ogawa@teleport.com)%
       
    52 }%
       
    53 \typeout{%
       
    54  ltxutil: portions licensed from W. E. Baxter (web@superscript.com)%
       
    55 }%
       
    56 \def\class@err#1{\ClassError{\class@name}{#1}\@eha}%
       
    57 \def\class@warn#1{\ClassWarningNoLine{\class@name}{#1}}%
       
    58 \def\class@info#1{\ClassInfo{\class@name}{#1}}%
       
    59 \def\obsolete@command#1{%
       
    60  \class@warn@end{Command \string#1\space is obsolete.^^JPlease remove from your document}%
       
    61  \global\let#1\@empty
       
    62  #1%
       
    63 }%
       
    64 \def\replace@command#1#2{%
       
    65  \class@warn@end{Command \string#1\space is obsolete;^^JUse \string#2\space instead}%
       
    66  \global\let#1#2%
       
    67  #1%
       
    68 }%
       
    69 \def\replace@environment#1#2{%
       
    70  \class@warn@end{Environment #1 is obsolete;^^JUse #2 instead}%
       
    71  \glet@environment{#1}{#2}%
       
    72  \@nameuse{#1}%
       
    73 }%
       
    74 \def\incompatible@package#1{%
       
    75  \@ifpackageloaded{#1}{%
       
    76   \def\@tempa{I cannot continue. You must remove the \string\usepackage\ statement that caused that package to be loaded.}%
       
    77   \ClassError{\class@name}{The #1 package cannot be used with \class@name}%
       
    78   \@tempa\stop
       
    79  }{%
       
    80   \class@info{#1 was not loaded (OK!)}%
       
    81  }%
       
    82 }%
       
    83 \def\class@warn@end#1{%
       
    84  \gappdef\class@enddocumenthook{\class@warn{#1}}%
       
    85 }%
       
    86 \AtEndOfClass{%
       
    87  \@ifxundefined\class@name{\def\class@name{Generic Class}}{}%
       
    88 }%
       
    89 \def\t@{to}%
       
    90 \dimendef\dimen@iii\thr@@
       
    91 \def\halignt@{\halign\t@}%
       
    92 \chardef\f@ur=4\relax
       
    93 \chardef\cat@letter=11\relax
       
    94 \chardef\other=12\relax
       
    95 \def\let@environment#1#2{%
       
    96  \expandafter\let
       
    97  \csname#1\expandafter\endcsname\csname#2\endcsname
       
    98  \expandafter\let
       
    99  \csname end#1\expandafter\endcsname\csname end#2\endcsname
       
   100 }%
       
   101 \def\glet@environment#1#2{%
       
   102  \global\expandafter\let
       
   103  \csname#1\expandafter\endcsname\csname#2\endcsname
       
   104  \global\expandafter\let
       
   105  \csname end#1\expandafter\endcsname\csname end#2\endcsname
       
   106 }%
       
   107 \newcommand\tracingplain{%
       
   108  \tracingonline\z@\tracingcommands\z@\tracingstats\z@
       
   109  \tracingpages\z@\tracingoutput\z@\tracinglostchars\@ne
       
   110  \tracingmacros\z@\tracingparagraphs\z@\tracingrestores\z@
       
   111  \showboxbreadth5\showboxdepth3\relax %\errorstopmode
       
   112  }%
       
   113 \newcommand\traceoutput{%
       
   114  \appdef\@resetactivechars{\showoutput}%
       
   115 }%
       
   116 \newcommand\say[1]{\typeout{<\noexpand#1=\meaning#1>}}%
       
   117 \newcommand\saythe[1]{\typeout{<\noexpand#1=\the#1>}}%
       
   118 \def\fullinterlineskip{\prevdepth\z@}%
       
   119 \countdef\count@i\@ne
       
   120 \countdef\count@ii\tw@
       
   121 \long\def\prepdef#1#2{%
       
   122  \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
       
   123  \toks@ii{#2}%
       
   124  \edef#1{\the\toks@ii\the\toks@}%
       
   125 }%
       
   126 \long\def\appdef#1#2{%
       
   127  \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
       
   128  \toks@ii{#2}%
       
   129  \edef#1{\the\toks@\the\toks@ii}%
       
   130 }%
       
   131 \long\def\gappdef#1#2{%
       
   132  \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
       
   133  \toks@ii{#2}%
       
   134  \global\edef#1{\the\toks@\the\toks@ii}%
       
   135 }%
       
   136 \long\def\appdef@val#1#2{%
       
   137  \appdef#1{{#2}}%
       
   138 }%
       
   139 \long\def\appdef@e#1#2{%
       
   140  \expandafter\appdef
       
   141  \expandafter#1%
       
   142  \expandafter{#2}%
       
   143 }%
       
   144 \long\def\appdef@eval#1#2{%
       
   145  \expandafter\appdef@val
       
   146  \expandafter#1%
       
   147  \expandafter{#2}%
       
   148 }%
       
   149 \toksdef\toks@ii=\tw@
       
   150 \long\def\@ifxundefined#1{\@ifx{\undefined#1}}%
       
   151 \long\def\@ifnotrelax#1#2#3{\@ifx{\relax#1}{#3}{#2}}%
       
   152 \long\def\@argswap#1#2{#2#1}%
       
   153 \long\def\@argswap@val#1#2{#2{#1}}%
       
   154 \def\@ifxundefined@cs#1{\expandafter\@ifx\expandafter{\csname#1\endcsname\relax}}%
       
   155 \def\@boolean#1#2{%
       
   156   \long\def#1{%
       
   157     #2% \if<something>
       
   158       \expandafter\true@sw
       
   159     \else
       
   160       \expandafter\false@sw
       
   161     \fi
       
   162   }%
       
   163 }%
       
   164 \def\@boole@def#1#{\@boolean{#1}}% Implicit #2
       
   165 \def\@booleantrue#1{\let#1\true@sw}%
       
   166 \def\@booleanfalse#1{\let#1\false@sw}%
       
   167 \@boole@def\@ifx#1{\ifx#1}%
       
   168 \@boole@def\@ifx@empty#1{\ifx\@empty#1}%
       
   169 \@boole@def\@if@empty#1{\if!#1!}%
       
   170 \def\@if@sw#1#2{#1\expandafter\true@sw\else\expandafter\false@sw#2}%
       
   171 \@boole@def\@ifdim#1{\ifdim#1}%
       
   172 \@boole@def\@ifeof#1{\ifeof#1}%
       
   173 \@boole@def\@ifhbox#1{\ifhbox#1}%
       
   174 \@boole@def\@ifhmode{\ifhmode}%
       
   175 \@boole@def\@ifinner{\ifinner}%
       
   176 \@boole@def\@ifmmode{\ifmmode}%
       
   177 \@boole@def\@ifnum#1{\ifnum#1}%
       
   178 \@boole@def\@ifodd#1{\ifodd#1}%
       
   179 \@boole@def\@ifvbox#1{\ifvbox#1}%
       
   180 \@boole@def\@ifvmode{\ifvmode}%
       
   181 \@boole@def\@ifvoid#1{\ifvoid#1}%
       
   182 \long\def\true@sw#1#2{#1}%
       
   183 \long\def\false@sw#1#2{#2}%
       
   184 \long\def\loopuntil#1{#1{}{\loopuntil{#1}}}%
       
   185 \long\def\loopwhile#1{#1{\loopwhile{#1}}{}}%
       
   186 \def\@provide#1{%
       
   187  \@ifx{\undefined#1}{\true@sw}{\@ifx{\relax#1}{\true@sw}{\false@sw}}%
       
   188  {\def#1}{\def\j@nk}%
       
   189 }%
       
   190 \prepdef\document{%
       
   191  \endgroup
       
   192  \init@documenthook
       
   193  \set@typesize@hook
       
   194  \normalsize
       
   195  \set@pica@hook
       
   196  \true@sw{}%
       
   197 }%
       
   198 \def\init@documenthook{}%
       
   199 \AtBeginDocument{%
       
   200  \class@documenthook
       
   201 }%
       
   202 \AtEndDocument{%
       
   203  \class@enddocumenthook
       
   204 }%
       
   205 \def\class@documenthook{}%
       
   206 \def\class@enddocumenthook{}%
       
   207 \def\set@typesize@hook{}%
       
   208 \def\set@pica@hook{}%
       
   209 \def\enddocument{%
       
   210  \@enddocumenthook
       
   211  \@checkend{document}%
       
   212  \clear@document
       
   213  \check@aux
       
   214  \deadcycles\z@
       
   215  \@@end
       
   216 }%
       
   217 \def\clear@document{\clearpage}%
       
   218 \def\check@aux{\do@check@aux}%
       
   219 \def\do@check@aux{%
       
   220  \@if@sw\if@filesw\fi{%
       
   221   \immediate\closeout\@mainaux
       
   222   \let\@setckpt\@gobbletwo
       
   223   \let\@newl@bel\@testdef
       
   224   \@tempswafalse
       
   225   \makeatletter
       
   226   \input\jobname.aux\relax
       
   227  }{}%
       
   228  \@dofilelist
       
   229  \@ifdim{\font@submax >\fontsubfuzz\relax}{%
       
   230   \@font@warning{%
       
   231    Size substitutions with differences\MessageBreak
       
   232    up to \font@submax\space have occured.\@gobbletwo
       
   233   }%
       
   234  }{}%
       
   235  \@defaultsubs
       
   236  \@refundefined
       
   237  \@if@sw\if@filesw\fi{%
       
   238   \@ifx{\@multiplelabels\relax}{%
       
   239    \@if@sw\if@tempswa\fi{%
       
   240     \@latex@warning@no@line{%
       
   241      Label(s) may have changed.
       
   242      Rerun to get cross-references right
       
   243     }%
       
   244    }{}%
       
   245   }{%
       
   246     \@multiplelabels
       
   247   }%
       
   248  }{}%
       
   249 }%
       
   250 \def\flushing{%
       
   251   \let\\\@normalcr
       
   252   \leftskip\z@skip
       
   253   \rightskip\z@skip
       
   254   \@rightskip\z@skip
       
   255   \parfillskip\@flushglue
       
   256 }%
       
   257 \def\eqnarray@LaTeX{%
       
   258    \stepcounter{equation}%
       
   259    \def\@currentlabel{\p@equation\theequation}%
       
   260    \global\@eqnswtrue
       
   261    \m@th
       
   262    \global\@eqcnt\z@
       
   263    \tabskip\@centering
       
   264    \let\\\@eqncr
       
   265    $$\everycr{}\halign\t@\displaywidth\bgroup
       
   266        \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
       
   267       &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil
       
   268       &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
       
   269          $\displaystyle{##}$\hfil\tabskip\@centering
       
   270       &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup
       
   271          \tabskip\z@skip
       
   272       \cr
       
   273 }
       
   274 \long\def\eqnarray@fleqn@fixed{%
       
   275  \stepcounter{equation}\def\@currentlabel{\p@equation\theequation}%
       
   276  \global\@eqnswtrue\m@th\global\@eqcnt\z@
       
   277  \tabskip\mathindent
       
   278  \let\\=\@eqncr
       
   279  \setlength\abovedisplayskip{\topsep}%
       
   280  \ifvmode\addtolength\abovedisplayskip{\partopsep}\fi
       
   281  \addtolength\abovedisplayskip{\parskip}%
       
   282  \setlength\belowdisplayskip{\abovedisplayskip}%
       
   283  \setlength\belowdisplayshortskip{\abovedisplayskip}%
       
   284  \setlength\abovedisplayshortskip{\abovedisplayskip}%
       
   285  $$%
       
   286  \everycr{}%
       
   287  \halignt@\linewidth\bgroup
       
   288   \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
       
   289   &\global\@eqcnt\@ne
       
   290    \hskip\tw@\eqncolsep
       
   291    \hfil${{}##{}}$\hfil
       
   292   &\global\@eqcnt\tw@
       
   293    \hskip\tw@\eqncolsep
       
   294    $\displaystyle{##}$\hfil\tabskip\@centering
       
   295   &\global\@eqcnt\thr@@\hb@xt@\z@\bgroup\hss##\egroup
       
   296    \tabskip\z@skip
       
   297   \cr
       
   298 }%
       
   299 \@ifx{\eqnarray\eqnarray@LaTeX}{%
       
   300  \class@info{Repairing broken LaTeX eqnarray}%
       
   301  \let\eqnarray\eqnarray@fleqn@fixed
       
   302  \newlength\eqncolsep
       
   303  \setlength\eqncolsep\z@
       
   304  \let\eqnarray@LaTeX\relax
       
   305  \let\eqnarray@fleqn@fixed\relax
       
   306 }{}%
       
   307 \def\mathindent{\@centering}%
       
   308 \def\set@eqnarray@skips{}%
       
   309 \def\footnote{%
       
   310  \@ifnextchar[\@xfootnote{\@yfootnote\@footnotetext}%
       
   311 }%
       
   312 \def\footnotemark{%
       
   313  \@ifnextchar[\@xfootnotemark{\@yfootnote}%
       
   314 }%
       
   315 \def\@xfootnote[#1]{%
       
   316  \@xfootnotemark[#1]%
       
   317  \@footnotetext
       
   318 }%
       
   319 \def\@xfootnotemark@ltx[#1]{%
       
   320  \begingroup
       
   321    \csname c@\@mpfn\endcsname #1\relax
       
   322    \unrestored@protected@xdef\@thefnmark{\thempfn}%
       
   323  \endgroup
       
   324  \H@@footnotemark
       
   325 }%
       
   326 \def\@yfootnote{%
       
   327  \stepcounter\@mpfn
       
   328  \protected@xdef\@thefnmark{\thempfn}%
       
   329  \H@@footnotemark
       
   330 }%
       
   331 \appdef\class@documenthook{%
       
   332  \@ifxundefined\H@@footnotemark{%
       
   333   \let\H@@footnotemark\@footnotemark
       
   334  }{}%
       
   335  \let\@xfootnotemark\@xfootnotemark@ltx
       
   336 }%
       
   337 \long\def\@footnotetext{%
       
   338  \insert\footins\bgroup
       
   339   \make@footnotetext
       
   340 }%
       
   341 \long\def\@mpfootnotetext{%
       
   342  \minipagefootnote@pick
       
   343   \make@footnotetext
       
   344 }%
       
   345 \def\make@footnotetext#1{%
       
   346   \reset@font\footnotesize
       
   347   \interlinepenalty\interfootnotelinepenalty
       
   348   \splittopskip\footnotesep
       
   349   \splitmaxdepth\dp\strutbox
       
   350   \set@footnotewidth
       
   351   \@parboxrestore
       
   352   \protected@edef\@currentlabel{%
       
   353    \csname p@footnote\endcsname\@thefnmark
       
   354   }%
       
   355   \color@begingroup
       
   356    \@makefntext{%
       
   357     \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox
       
   358    }%
       
   359   \color@endgroup
       
   360  \minipagefootnote@drop
       
   361 }%
       
   362 \def\set@footnotewidth{%
       
   363  \hsize\columnwidth
       
   364  \linewidth\hsize
       
   365 }%
       
   366 \def\set@footnotewidth@ii{%
       
   367  \hsize\textwidth
       
   368  \advance\hsize\columnsep
       
   369  \divide\hsize\tw@
       
   370  \advance\hsize-\columnsep
       
   371  \linewidth\hsize
       
   372 }%
       
   373 \def\addtocontents#1#2{%
       
   374  \protected@write\@auxout{%
       
   375   \let \label \@gobble \let \index \@gobble \let \glossary \@gobble
       
   376   \def\({\string\(}%
       
   377   \def\){\string\)}%
       
   378   \def\\{\string\\}%
       
   379  }{\string \@writefile {#1}{#2}}%
       
   380 }%
       
   381 \def\addcontentsline#1#2#3{%
       
   382  \addtocontents{#1}{%
       
   383   \protect\contentsline{#2}{#3}{\thepage}{}%
       
   384  }%
       
   385 }%
       
   386 \def\contentsline#1#2#3#4{%
       
   387  \csname l@#1\endcsname{#2}{#3}%
       
   388 }%
       
   389 \def\label#1{%
       
   390  \@bsphack
       
   391   \protected@write\@auxout{}{%
       
   392    \string\newlabel{#1}{{\@currentlabel}{\thepage}{}{}{}}%
       
   393   }%
       
   394  \@esphack
       
   395 }%
       
   396 \appdef\class@documenthook{%
       
   397  \prepdef\caption{\minipagefootnote@here}%
       
   398 }%
       
   399 \def\minipagefootnote@init{%
       
   400  \setbox\@mpfootins\box\voidb@x
       
   401 }%
       
   402 \def\minipagefootnote@pick{%
       
   403  \global\setbox\@mpfootins\vbox\bgroup
       
   404   \unvbox\@mpfootins
       
   405 }%
       
   406 \def\minipagefootnote@drop{%
       
   407  \egroup
       
   408 }%
       
   409 \def\minipagefootnote@here{%
       
   410     \par
       
   411     \@ifvoid\@mpfootins{}{%
       
   412       \vskip\skip\@mpfootins
       
   413       \fullinterlineskip
       
   414       \@ifinner{%
       
   415        \vtop{\unvcopy\@mpfootins}%
       
   416        {\setbox\z@\lastbox}%
       
   417       }{}%
       
   418       \unvbox\@mpfootins
       
   419     }%
       
   420 }%
       
   421 \def\minipagefootnote@foot{%
       
   422  \@ifvoid\@mpfootins{}{%
       
   423   \insert\footins\bgroup\unvbox\@mpfootins\egroup
       
   424  }%
       
   425 }%
       
   426 \def\endminipage{%
       
   427     \par
       
   428     \unskip
       
   429     \minipagefootnote@here
       
   430     \@minipagefalse   %% added 24 May 89
       
   431   \color@endgroup
       
   432   \egroup
       
   433   \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}%
       
   434 }%
       
   435 \let\@xfloat@LaTeX\@xfloat
       
   436 \def\@xfloat#1[#2]{%
       
   437   \@xfloat@prep
       
   438   \@nameuse{fp@proc@#2}%
       
   439   \@ifxundefined\floats@sw{\global\@booleantrue\floats@sw}{}%
       
   440   \floats@sw{\@xfloat@LaTeX{#1}[#2]}{\@xfloat@anchored{#1}[]}%
       
   441 }%
       
   442 \def\@xfloat@prep{%
       
   443   \let\footnote\footnote@latex
       
   444   \def\@mpfn{mpfootnote}%
       
   445   \def\thempfn{\thempfootnote}%
       
   446   \c@mpfootnote\z@
       
   447   \let\@footnotetext\@mpfootnotetext
       
   448   \let\H@@footnotetext\@mpfootnotetext
       
   449   \let\@makefntext\@mpmakefntext
       
   450 }%
       
   451 \appdef\class@documenthook{%
       
   452  \let\footnote@latex\footnote
       
   453 }%
       
   454 \def\@xfloat@anchored#1[#2]{%
       
   455  \def\@captype{#1}%
       
   456  \begin@float@pagebreak
       
   457   \let\end@float\end@float@anchored
       
   458   \let\end@dblfloat\end@float@anchored
       
   459         \hsize\columnwidth
       
   460         \@parboxrestore
       
   461         \@floatboxreset
       
   462   \minipagefootnote@init
       
   463 }%
       
   464 \def\end@float@anchored{%
       
   465   \minipagefootnote@here
       
   466   \par\vskip\z@skip      %% \par\vskip\z@ added 15 Dec 87
       
   467  \par
       
   468  \end@float@pagebreak
       
   469 }%
       
   470 \def\begin@float@pagebreak{\par\addvspace\intextsep}%
       
   471 \def\end@float@pagebreak{\par\addvspace\intextsep}%
       
   472 \def\@mpmakefntext#1{%
       
   473  \parindent=1em
       
   474  \noindent
       
   475  \hb@xt@1em{\hss\@makefnmark}%
       
   476  #1%
       
   477 }%
       
   478 \def\do@if@floats#1#2{%
       
   479  \@ifxundefined\floats@sw{\global\@booleantrue\floats@sw}{}%
       
   480  \floats@sw{}{%
       
   481   \expandafter\newwrite
       
   482               \csname#1write\endcsname
       
   483   \expandafter\def
       
   484               \csname#1@stream\endcsname{\jobname#2}%
       
   485   \expandafter\immediate
       
   486   \expandafter\openout
       
   487               \csname#1write\endcsname
       
   488               \csname#1@stream\endcsname\relax
       
   489   \@ifxundefined\@float@LaTeX{%
       
   490    \let\@float@LaTeX\@float
       
   491    \let\@dblfloat@LaTeX\@dblfloat
       
   492    \let\@float\write@float
       
   493    \let\@dblfloat\write@floats
       
   494   }{}%
       
   495   \let@environment{#1@float}{#1}%
       
   496   \let@environment{#1@floats}{#1*}%
       
   497   \@ifxundefined@cs{#1@write}{}{%
       
   498    \let@environment{#1}{#1@write}%
       
   499   }%
       
   500  }%
       
   501 }%
       
   502 \def\triggerpar{\leavevmode\@@par}%
       
   503 \def\oneapage{\def\begin@float@pagebreak{\newpage}\def\end@float@pagebreak{\newpage}}%
       
   504 \def\print@float#1#2{%
       
   505  \@ifxundefined@cs{#1write}{}{%
       
   506   \begingroup
       
   507    \@booleanfalse\floats@sw
       
   508    #2%
       
   509    \raggedbottom
       
   510    \def\array@default{v}% floats must
       
   511    \let\@float\@float@LaTeX
       
   512    \let\@dblfloat\@dblfloat@LaTeX
       
   513    \let\trigger@float@par\triggerpar
       
   514    \let@environment{#1}{#1@float}%
       
   515    \let@environment{#1*}{#1@floats}%
       
   516    \expandafter\prepdef\csname#1\endcsname{\trigger@float@par}%
       
   517    \expandafter\prepdef\csname#1*\endcsname{\trigger@float@par}%
       
   518    \@namedef{fps@#1}{h!}%
       
   519    \expandafter\immediate
       
   520    \expandafter\closeout
       
   521                \csname#1write\endcsname
       
   522    \everypar{%
       
   523     \global\let\trigger@float@par\relax
       
   524     \global\everypar{}\setbox\z@\lastbox
       
   525     \@ifxundefined@cs{#1sname}{}{%
       
   526      \begin@float@pagebreak
       
   527      \expandafter\section
       
   528      \expandafter*%
       
   529      \expandafter{%
       
   530                   \csname#1sname\endcsname
       
   531                  }%
       
   532     }%
       
   533    }%
       
   534    \input{\csname#1@stream\endcsname}%
       
   535   \endgroup
       
   536   \global\expandafter\let\csname#1write\endcsname\relax
       
   537  }%
       
   538 }%
       
   539 \def\write@float#1{\write@@float{#1}{#1}}%
       
   540 \def\endwrite@float{\@Esphack}%
       
   541 \def\write@floats#1{\write@@float{#1*}{#1}}%
       
   542 \def\endwrite@floats{\@Esphack}%
       
   543 \def\write@@float#1#2{%
       
   544   \ifhmode
       
   545      \@bsphack
       
   546   \fi
       
   547   \chardef\@tempc\csname#2write\endcsname
       
   548   \toks@{\begin{#1}}%
       
   549   \def\@tempb{#1}%
       
   550   \expandafter\let\csname end#1\endcsname\endwrite@float
       
   551   \catcode`\^^M\active
       
   552   \@makeother\{\@makeother\}\@makeother\%
       
   553   \write@floatline
       
   554 }%
       
   555 \begingroup
       
   556  \catcode`\[\the\catcode`\{\catcode`\]\the\catcode`\}\@makeother\{\@makeother\}%
       
   557  \gdef\float@end@tag#1\end{#2}#3\@nul[%
       
   558   \def\@tempa[#2]%
       
   559   \@ifx[\@tempa\@tempb][\end[#2]][\write@floatline]%
       
   560  ]%
       
   561  \obeylines%
       
   562  \gdef\write@floatline#1^^M[%
       
   563   \begingroup%
       
   564    \newlinechar`\^^M%
       
   565    \toks@\expandafter[\the\toks@#1]\immediate\write\@tempc[\the\toks@]%
       
   566   \endgroup%
       
   567   \toks@[]%
       
   568   \float@end@tag#1\end{}\@nul%
       
   569  ]%
       
   570 \endgroup
       
   571 \def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi}
       
   572 \def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or
       
   573   k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or
       
   574   y\or z\or aa\or bb\or cc\or dd\or ee\or ff\or gg\or hh\or ii\or jj\or
       
   575   kk\or ll\or mm\or nn\or oo\or pp\or qq\or rr\or ss\or tt\or uu\or
       
   576   vv\or ww\or xx\or yy\or zz\else\@ctrerr\fi}
       
   577 \def\@startsection#1#2#3#4#5#6{%
       
   578  \@startsection@hook
       
   579  \if@noskipsec \leavevmode \fi
       
   580  \par
       
   581  \@tempskipa #4\relax
       
   582  \@afterindenttrue
       
   583  \ifdim \@tempskipa <\z@
       
   584   \@tempskipa -\@tempskipa \@afterindentfalse
       
   585  \fi
       
   586  \if@nobreak
       
   587   \everypar{}%
       
   588  \else
       
   589   \addpenalty\@secpenalty\addvspace\@tempskipa
       
   590  \fi
       
   591  \@ifstar
       
   592   {\@dblarg{\@ssect@ltx{#1}{#2}{#3}{#4}{#5}{#6}}}%
       
   593   {\@dblarg{\@sect@ltx {#1}{#2}{#3}{#4}{#5}{#6}}}%
       
   594 }%
       
   595 \def\@startsection@hook{}%
       
   596 \class@info
       
   597   {Repairing broken LateX \string\@sect}%
       
   598 \def\@sect@ltx#1#2#3#4#5#6[#7]#8{%
       
   599   \@ifnum{#2>\c@secnumdepth}{%
       
   600     \def\H@svsec{\phantomsection}%
       
   601     \let\@svsec\@empty
       
   602   }{%
       
   603     \H@refstepcounter{#1}%
       
   604     \def\H@svsec{%
       
   605      \phantomsection
       
   606     }%
       
   607     \protected@edef\@svsec{{#1}}%
       
   608     \@ifundefined{@#1cntformat}{%
       
   609      \prepdef\@svsec\@seccntformat
       
   610     }{%
       
   611      \expandafter\prepdef
       
   612      \expandafter\@svsec
       
   613                  \csname @#1cntformat\endcsname
       
   614     }%
       
   615   }%
       
   616   \@tempskipa #5\relax
       
   617   \@ifdim{\@tempskipa>\z@}{%
       
   618     \begingroup
       
   619       \interlinepenalty \@M
       
   620       #6{%
       
   621        \@ifundefined{@hangfrom@#1}{\@hang@from}{\csname @hangfrom@#1\endcsname}%
       
   622        {\hskip#3\relax\H@svsec}{\@svsec}{#8}%
       
   623       }%
       
   624       \@@par
       
   625     \endgroup
       
   626     \@ifundefined{#1mark}{\@gobble}{\csname #1mark\endcsname}{#7}%
       
   627     \addcontentsline{toc}{#1}{%
       
   628       \@ifnum{#2>\c@secnumdepth}{%
       
   629        \protect\numberline{}%
       
   630       }{%
       
   631        \protect\numberline{\csname the#1\endcsname}%
       
   632       }%
       
   633       #8}%
       
   634   }{%
       
   635     \def\@svsechd{%
       
   636       #6{%
       
   637        \@ifundefined{@runin@to@#1}{\@runin@to}{\csname @runin@to@#1\endcsname}%
       
   638        {\hskip#3\relax\H@svsec}{\@svsec}{#8}%
       
   639       }%
       
   640       \@ifundefined{#1mark}{\@gobble}{\csname #1mark\endcsname}{#7}%
       
   641       \addcontentsline{toc}{#1}{%
       
   642         \@ifnum{#2>\c@secnumdepth}{%
       
   643          \protect\numberline{}%
       
   644         }{%
       
   645          \protect\numberline{\csname the#1\endcsname}%
       
   646         }%
       
   647         #8}%
       
   648     }%
       
   649   }%
       
   650   \@xsect{#5}%
       
   651 }%
       
   652 \def\@hang@from#1#2#3{\@hangfrom{#1#2}#3}%
       
   653 \def\@runin@to #1#2#3{#1#2#3}%
       
   654 \def\@ssect@ltx#1#2#3#4#5#6[#7]#8{%
       
   655   \def\H@svsec{\phantomsection}%
       
   656   \@tempskipa #5\relax
       
   657   \@ifdim{\@tempskipa>\z@}{%
       
   658     \begingroup
       
   659       \interlinepenalty \@M
       
   660       #6{%
       
   661        \@ifundefined{@hangfroms@#1}{\@hang@froms}{\csname @hangfroms@#1\endcsname}%
       
   662        {\hskip#3\relax\H@svsec}{#8}%
       
   663       }%
       
   664       \@@par
       
   665     \endgroup
       
   666     \@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}%
       
   667     \addcontentsline{toc}{#1}{\protect\numberline{}#8}%
       
   668   }{%
       
   669     \def\@svsechd{%
       
   670       #6{%
       
   671        \@ifundefined{@runin@tos@#1}{\@runin@tos}{\csname @runin@tos@#1\endcsname}%
       
   672        {\hskip#3\relax\H@svsec}{#8}%
       
   673       }%
       
   674       \@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}%
       
   675       \addcontentsline{toc}{#1}{\protect\numberline{}#8}%
       
   676     }%
       
   677   }%
       
   678   \@xsect{#5}%
       
   679 }%
       
   680 \def\@hang@froms#1#2{#1#2}%
       
   681 \def\@runin@tos #1#2{#1#2}%
       
   682 \appdef\init@documenthook{%
       
   683  \providecommand\phantomsection{}%
       
   684  \providecommand\hyper@anchor[1]{}%
       
   685  \providecommand\hyper@last{}%
       
   686  \providecommand\Hy@raisedlink[1]{#1}%
       
   687  \providecommand\hyper@anchorstart[1]{}%
       
   688  \providecommand\hyper@anchorend{}%
       
   689  \providecommand\hyper@linkstart[2]{}%
       
   690  \providecommand\hyper@linkend{}%
       
   691 }%
       
   692 \let\H@refstepcounter\refstepcounter
       
   693 \def\sec@upcase#1{\relax{#1}}%
       
   694 \appdef\class@documenthook{%
       
   695  \@ifpackageloaded{array}{\switch@array}{\switch@tabular}%
       
   696  \prepdef\endtabular{\endtabular@hook}%
       
   697  \@provide\endtabular@hook{}%
       
   698  \prepdef\endarray{\endarray@hook}%
       
   699  \@provide\endarray@hook{}%
       
   700  \providecommand\array@hook{}%
       
   701  \prepdef\@tabular{\tabular@hook}%
       
   702  \@provide\tabular@hook{}%
       
   703 }%
       
   704 \def\switch@tabular{%
       
   705  \let\@array@sw\@array@sw@array
       
   706  \@ifx{\@array\@array@LaTeX}{%
       
   707   \@ifx{\multicolumn\multicolumn@LaTeX}{%
       
   708    \@ifx{\@tabular\@tabular@LaTeX}{%
       
   709     \@ifx{\@tabarray\@tabarray@LaTeX}{%
       
   710      \@ifx{\array\array@LaTeX}{%
       
   711       \@ifx{\endarray\endarray@LaTeX}{%
       
   712        \@ifx{\endtabular\endtabular@LaTeX}{%
       
   713         \@ifx{\@mkpream\@mkpream@LaTeX}{%
       
   714          \@ifx{\@addamp\@addamp@LaTeX}{%
       
   715           \@ifx{\@arrayacol\@arrayacol@LaTeX}{%
       
   716            \@ifx{\@tabacol\@tabacol@LaTeX}{%
       
   717             \@ifx{\@arrayclassz\@arrayclassz@LaTeX}{%
       
   718              \@ifx{\@tabclassiv\@tabclassiv@LaTeX}{%
       
   719               \@ifx{\@arrayclassiv\@arrayclassiv@LaTeX}{%
       
   720                \@ifx{\@tabclassz\@tabclassz@LaTeX}{%
       
   721                 \@ifx{\@classv\@classv@LaTeX}{%
       
   722                  \@ifx{\hline\hline@LaTeX}{%
       
   723                   \@ifx{\@tabularcr\@tabularcr@LaTeX}{%
       
   724                    \@ifx{\@xtabularcr\@xtabularcr@LaTeX}{%
       
   725                     \@ifx{\@xargarraycr\@xargarraycr@LaTeX}{%
       
   726                      \@ifx{\@yargarraycr\@yargarraycr@LaTeX}{%
       
   727                       \true@sw
       
   728                      }{%
       
   729                       \false@sw
       
   730                      }%
       
   731                     }{%
       
   732                      \false@sw
       
   733                     }%
       
   734                    }{%
       
   735                     \false@sw
       
   736                    }%
       
   737                   }{%
       
   738                    \false@sw
       
   739                   }%
       
   740                  }{%
       
   741                   \false@sw
       
   742                  }%
       
   743                 }{%
       
   744                  \false@sw
       
   745                 }%
       
   746                }{%
       
   747                 \false@sw
       
   748                }%
       
   749               }{%
       
   750                \false@sw
       
   751               }%
       
   752              }{%
       
   753               \false@sw
       
   754              }%
       
   755             }{%
       
   756              \false@sw
       
   757             }%
       
   758            }{%
       
   759             \false@sw
       
   760            }%
       
   761           }{%
       
   762            \false@sw
       
   763           }%
       
   764          }{%
       
   765           \false@sw
       
   766          }%
       
   767         }{%
       
   768          \false@sw
       
   769         }%
       
   770        }{%
       
   771         \false@sw
       
   772        }%
       
   773       }{%
       
   774        \false@sw
       
   775       }%
       
   776      }{%
       
   777       \false@sw
       
   778      }%
       
   779     }{%
       
   780      \false@sw
       
   781     }%
       
   782    }{%
       
   783     \false@sw
       
   784    }%
       
   785   }{%
       
   786    \false@sw
       
   787   }%
       
   788  }{%
       
   789   \false@sw
       
   790  }%
       
   791  {%
       
   792   \class@info{Patching LaTeX tabular.}%
       
   793  }{%
       
   794   \class@info{Unrecognized LaTeX tabular. Please update this document class! (Proceeding with fingers crossed.)}%
       
   795  }%
       
   796  \let\@array\@array@ltx
       
   797  \let\multicolumn\multicolumn@ltx
       
   798  \let\@tabular\@tabular@ltx
       
   799  \let\@tabarray\@tabarray@ltx
       
   800  \let\array\array@ltx
       
   801  \let\endarray\endarray@ltx
       
   802  \let\endtabular\endtabular@ltx
       
   803  \let\@mkpream\@mkpream@ltx
       
   804  \let\@addamp\@addamp@ltx
       
   805  \let\@arrayacol\@arrayacol@ltx
       
   806  \let\@tabacol\@tabacol@ltx
       
   807  \let\@arrayclassz\@arrayclassz@ltx
       
   808  \let\@tabclassiv\@tabclassiv@ltx
       
   809  \let\@arrayclassiv\@arrayclassiv@ltx
       
   810  \let\@tabclassz\@tabclassz@ltx
       
   811  \let\@classv\@classv@ltx
       
   812  \let\hline\hline@ltx
       
   813  \let\@tabularcr\@tabularcr@ltx
       
   814  \let\@xtabularcr\@xtabularcr@ltx
       
   815  \let\@xargarraycr\@xargarraycr@ltx
       
   816  \let\@yargarraycr\@yargarraycr@ltx
       
   817 }%
       
   818 \def\switch@array{%
       
   819  \let\@array@sw\@array@sw@LaTeX
       
   820  \@ifx{\@array\@array@array}{%
       
   821   \@ifx{\@tabular\@tabular@array}{%
       
   822    \@ifx{\@tabarray\@tabarray@array}{%
       
   823     \@ifx{\array\array@array}{%
       
   824      \@ifx{\endarray\endarray@array}{%
       
   825       \@ifx{\endtabular\endtabular@array}{%
       
   826        \@ifx{\@mkpream\@mkpream@array}{%
       
   827         \@ifx{\@classx\@classx@array}{%
       
   828          \@ifx{\insert@column\insert@column@array}{%
       
   829           \@ifx{\@arraycr\@arraycr@array}{%
       
   830            \@ifx{\@xarraycr\@xarraycr@array}{%
       
   831             \@ifx{\@xargarraycr\@xargarraycr@array}{%
       
   832              \@ifx{\@yargarraycr\@yargarraycr@array}{%
       
   833               \true@sw
       
   834          }{%
       
   835           \false@sw
       
   836          }%
       
   837          }{%
       
   838           \false@sw
       
   839          }%
       
   840          }{%
       
   841           \false@sw
       
   842          }%
       
   843          }{%
       
   844           \false@sw
       
   845          }%
       
   846          }{%
       
   847           \false@sw
       
   848          }%
       
   849         }{%
       
   850          \false@sw
       
   851         }%
       
   852        }{%
       
   853         \false@sw
       
   854        }%
       
   855       }{%
       
   856        \false@sw
       
   857       }%
       
   858      }{%
       
   859       \false@sw
       
   860      }%
       
   861     }{%
       
   862      \false@sw
       
   863     }%
       
   864    }{%
       
   865     \false@sw
       
   866    }%
       
   867   }{%
       
   868    \false@sw
       
   869   }%
       
   870  }{%
       
   871   \false@sw
       
   872  }{%
       
   873   \class@info{Patching array package.}%
       
   874  }{%
       
   875   \class@info{Unrecognized array package. Please update this document class! (Proceeding with fingers crossed.)}%
       
   876  }%
       
   877  \let\@array    \@array@array@new
       
   878  \let\@@array   \@array % Cosi fan tutti
       
   879  \let\@tabular  \@tabular@array@new
       
   880  \let\@tabarray \@tabarray@array@new
       
   881  \let\array     \array@array@new
       
   882  \let\endarray  \endarray@array@new
       
   883  \let\endtabular\endtabular@array@new
       
   884  \let\@mkpream  \@mkpream@array@new
       
   885  \let\@classx   \@classx@array@new
       
   886  \let\@arrayacol\@arrayacol@ltx
       
   887  \let\@tabacol  \@tabacol@ltx
       
   888  \let\insert@column\insert@column@array@new
       
   889  \expandafter\let\csname endtabular*\endcsname\endtabular % Cosi fan tutti
       
   890  \let\@arraycr  \@arraycr@new
       
   891  \let\@xarraycr \@xarraycr@new
       
   892  \let\@xargarraycr\@xargarraycr@new
       
   893  \let\@yargarraycr\@yargarraycr@new
       
   894 }%
       
   895 \def\@array@sw@LaTeX{\@ifx{\\\@tabularcr}}%
       
   896 \def\@array@sw@array{\@ifx{\d@llarbegin\begingroup}}%
       
   897 \def\@tabular@LaTeX{%
       
   898  \leavevmode
       
   899  \hbox\bgroup$%
       
   900   \let\@acol\@tabacol
       
   901   \let\@classz\@tabclassz
       
   902   \let\@classiv\@tabclassiv
       
   903   \let\\\@tabularcr
       
   904   \@tabarray
       
   905 }%
       
   906 \def\@tabular@ltx{%
       
   907   \let\@acoll\@tabacoll
       
   908   \let\@acolr\@tabacolr
       
   909   \let\@acol\@tabacol
       
   910   \let\@classz\@tabclassz
       
   911   \let\@classiv\@tabclassiv
       
   912   \let\\\@tabularcr
       
   913   \@tabarray
       
   914 }%
       
   915 \def\@tabular@array{%
       
   916  \leavevmode
       
   917  \hbox\bgroup$%
       
   918   \col@sep\tabcolsep
       
   919   \let\d@llarbegin\begingroup
       
   920   \let\d@llarend\endgroup
       
   921   \@tabarray
       
   922 }%
       
   923 \def\@tabular@array@new{%
       
   924   \let\@acoll\@tabacoll
       
   925   \let\@acolr\@tabacolr
       
   926   \let\@acol\@tabacol
       
   927   \let\col@sep\@undefined
       
   928   \let\d@llarbegin\begingroup
       
   929   \let\d@llarend\endgroup
       
   930   \@tabarray
       
   931 }%
       
   932 \def\@tabarray@LaTeX{%
       
   933  \m@th\@ifnextchar[\@array{\@array[c]}%
       
   934 }%
       
   935 \def\@tabarray@ltx{%
       
   936  \m@th\@ifnextchar[\@array{\expandafter\@array\expandafter[\array@default]}%
       
   937 }%
       
   938 \def\@tabarray@array{%
       
   939  \@ifnextchar[{\@@array}{\@@array[c]}%
       
   940 }%
       
   941 \def\@tabarray@array@new{%
       
   942  \@ifnextchar[{\@@array}{\expandafter\@@array\expandafter[\array@default]}%
       
   943 }%
       
   944 \newcount\intertabularlinepenalty
       
   945 \intertabularlinepenalty=100
       
   946 \newcount\@tbpen
       
   947 \appdef\samepage{\intertabularlinepenalty\@M}%
       
   948 \def\@tabularcr@LaTeX{{\ifnum 0=`}\fi \@ifstar \@xtabularcr \@xtabularcr}%
       
   949 \def\@tabularcr@ltx{{\ifnum 0=`}\fi \@ifstar {\global \@tbpen \@M \@xtabularcr }{\global \@tbpen \intertabularlinepenalty \@xtabularcr }}%
       
   950 \def\@xtabularcr@LaTeX{\@ifnextchar [\@argtabularcr {\ifnum 0=`{\fi }\cr }}%
       
   951 \def\@xtabularcr@ltx{\@ifnextchar [\@argtabularcr {\ifnum 0=`{\fi }\cr \noalign {\penalty \@tbpen }}}%
       
   952 \def\@xargarraycr@LaTeX#1{\@tempdima #1\advance \@tempdima \dp \@arstrutbox \vrule \@height \z@ \@depth \@tempdima \@width \z@ \cr}%
       
   953 \def\@xargarraycr@ltx#1{\@tempdima #1\advance \@tempdima \dp \@arstrutbox \vrule \@height \z@ \@depth \@tempdima \@width \z@ \cr \noalign {\penalty \@tbpen }}%
       
   954 \def\@yargarraycr@LaTeX#1{\cr \noalign {\vskip #1}}%
       
   955 \def\@yargarraycr@ltx#1{\cr \noalign {\penalty \@tbpen \vskip #1}}%
       
   956 \def\@arraycr@array{%
       
   957  \relax
       
   958  \iffalse{\fi\ifnum 0=`}\fi
       
   959  \@ifstar \@xarraycr \@xarraycr
       
   960 }%
       
   961 \def\@arraycr@new{%
       
   962  \relax
       
   963  \iffalse{\fi\ifnum 0=`}\fi
       
   964  \@ifstar {\global \@tbpen \@M \@xarraycr }{\global \@tbpen \intertabularlinepenalty \@xarraycr }%
       
   965 }%
       
   966 \def\@xarraycr@array{%
       
   967  \@ifnextchar [%]
       
   968  \@argarraycr {\ifnum 0=`{}\fi\cr}%
       
   969 }%
       
   970 \def\@xarraycr@new{%
       
   971  \@ifnextchar [%]
       
   972  \@argarraycr {\ifnum 0=`{}\fi\cr \noalign {\penalty \@tbpen }}%
       
   973 }%
       
   974 \def\@xargarraycr@array#1{%
       
   975  \unskip
       
   976  \@tempdima #1\advance\@tempdima \dp\@arstrutbox
       
   977  \vrule \@depth\@tempdima \@width\z@
       
   978  \cr
       
   979 }%
       
   980 \def\@xargarraycr@new#1{%
       
   981  \unskip
       
   982  \@tempdima #1\advance\@tempdima \dp\@arstrutbox
       
   983  \vrule \@depth\@tempdima \@width\z@
       
   984  \cr
       
   985  \noalign {\penalty \@tbpen }%
       
   986 }%
       
   987 \def\@yargarraycr@array#1{%
       
   988  \cr
       
   989  \noalign{\vskip #1}%
       
   990 }%
       
   991 \def\@yargarraycr@new#1{%
       
   992  \cr
       
   993  \noalign{\penalty \@tbpen \vskip #1}%
       
   994 }%
       
   995 \def\array@LaTeX{%
       
   996  \let\@acol\@arrayacol
       
   997  \let\@classz\@arrayclassz
       
   998  \let\@classiv\@arrayclassiv
       
   999  \let\\\@arraycr
       
  1000  \let\@halignto\@empty
       
  1001  \@tabarray
       
  1002 }%
       
  1003 \def\array@ltx{%
       
  1004  \@ifmmode{}{\@badmath$}%
       
  1005  \let\@acoll\@arrayacol
       
  1006  \let\@acolr\@arrayacol
       
  1007  \let\@acol\@arrayacol
       
  1008  \let\@classz\@arrayclassz
       
  1009  \let\@classiv\@arrayclassiv
       
  1010  \let\\\@arraycr
       
  1011  \let\@halignto\@empty
       
  1012  \@tabarray
       
  1013 }%
       
  1014 \def\array@array{%
       
  1015  \col@sep\arraycolsep
       
  1016  \def\d@llarbegin{$}\let\d@llarend\d@llarbegin\gdef\@halignto{}%
       
  1017  \@tabarray
       
  1018 }
       
  1019 \def\array@array@new{%
       
  1020  \@ifmmode{}{\@badmath$}%
       
  1021  \let\@acoll\@arrayacol
       
  1022  \let\@acolr\@arrayacol
       
  1023  \let\@acol\@arrayacol
       
  1024 \let\col@sep\@undefined
       
  1025  \def\d@llarbegin{$}%
       
  1026  \let\d@llarend\d@llarbegin
       
  1027  \gdef\@halignto{}%
       
  1028  \@tabarray
       
  1029 }%
       
  1030 \def\@array@LaTeX[#1]#2{%
       
  1031   \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
       
  1032   \bgroup
       
  1033   \setbox\@arstrutbox\hbox{%
       
  1034     \vrule \@height\arraystretch\ht\strutbox
       
  1035            \@depth\arraystretch \dp\strutbox
       
  1036            \@width\z@}%
       
  1037   \@mkpream{#2}%
       
  1038   \edef\@preamble{%
       
  1039     \ialign \noexpand\@halignto
       
  1040       \bgroup \@arstrut \@preamble \tabskip\z@skip \cr}%
       
  1041   \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
       
  1042   \let\tabularnewline\\%
       
  1043     \let\par\@empty
       
  1044     \let\@sharp##%
       
  1045     \set@typeset@protect
       
  1046     \lineskip\z@skip\baselineskip\z@skip
       
  1047     \ifhmode \@preamerr\z@ \@@par\fi
       
  1048     \@preamble
       
  1049 }%
       
  1050 \def\@array@ltx[#1]#2{%
       
  1051  \@nameuse{@array@align@#1}%
       
  1052   \set@arstrutbox
       
  1053   \@mkpream{#2}%
       
  1054   \prepdef\@preamble{%
       
  1055     \tabskip\tabmid@skip
       
  1056     \@arstrut
       
  1057   }%
       
  1058   \appdef\@preamble{%
       
  1059     \tabskip\tabright@skip
       
  1060     \cr
       
  1061     \array@row@pre
       
  1062   }%
       
  1063   \let\tabularnewline\\%
       
  1064   \let\par\@empty
       
  1065   \let\@sharp##%
       
  1066   \set@typeset@protect
       
  1067   \lineskip\z@skip\baselineskip\z@skip
       
  1068   \tabskip\tableft@skip\relax
       
  1069   \ifhmode \@preamerr\z@ \@@par\fi
       
  1070   \everycr{}%
       
  1071   \expandafter\halign\expandafter\@halignto\expandafter\bgroup\@preamble
       
  1072 }%
       
  1073 \def\set@arstrutbox{%
       
  1074   \setbox\@arstrutbox\hbox{%
       
  1075     \vrule \@height\arraystretch\ht\strutbox
       
  1076            \@depth\arraystretch \dp\strutbox
       
  1077            \@width\z@
       
  1078   }%
       
  1079 }%
       
  1080 \def\@array@array[#1]#2{%
       
  1081   \@tempdima \ht \strutbox
       
  1082   \advance \@tempdima by\extrarowheight
       
  1083   \setbox \@arstrutbox \hbox{\vrule
       
  1084              \@height \arraystretch \@tempdima
       
  1085              \@depth \arraystretch \dp \strutbox
       
  1086              \@width \z@}%
       
  1087   \begingroup
       
  1088   \@mkpream{#2}%
       
  1089   \xdef\@preamble{\noexpand \ialign \@halignto
       
  1090                   \bgroup \@arstrut \@preamble
       
  1091                           \tabskip \z@ \cr}%
       
  1092   \endgroup
       
  1093   \@arrayleft
       
  1094   \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi
       
  1095   \bgroup
       
  1096   \let \@sharp ##\let \protect \relax
       
  1097   \lineskip \z@
       
  1098   \baselineskip \z@
       
  1099   \m@th
       
  1100   \let\\\@arraycr \let\tabularnewline\\\let\par\@empty \@preamble
       
  1101 }%
       
  1102 \def\@array@array@new[#1]#2{%
       
  1103   \@tempdima\ht\strutbox
       
  1104   \advance\@tempdima by\extrarowheight
       
  1105   \setbox\@arstrutbox\hbox{%
       
  1106    \vrule \@height\arraystretch\@tempdima
       
  1107           \@depth \arraystretch\dp\strutbox
       
  1108           \@width \z@
       
  1109   }%
       
  1110   \begingroup
       
  1111    \@mkpream{#2}%
       
  1112    \xdef\@preamble{\@preamble}%
       
  1113   \endgroup
       
  1114   \prepdef\@preamble{%
       
  1115    \tabskip\tabmid@skip
       
  1116     \@arstrut
       
  1117   }%
       
  1118   \appdef\@preamble{%
       
  1119    \tabskip\tabright@skip
       
  1120    \cr
       
  1121    \array@row@pre
       
  1122   }%
       
  1123   \@arrayleft
       
  1124   \@nameuse{@array@align@#1}%
       
  1125   \m@th
       
  1126   \let\\\@arraycr
       
  1127   \let\tabularnewline\\%
       
  1128   \let\par\@empty
       
  1129   \let\@sharp##%
       
  1130   \set@typeset@protect
       
  1131   \lineskip\z@\baselineskip\z@
       
  1132   \tabskip\tableft@skip
       
  1133   \everycr{}%
       
  1134   \expandafter\halign\expandafter\@halignto\expandafter\bgroup\@preamble
       
  1135 }%
       
  1136 \def\endarray@LaTeX{%
       
  1137  \crcr\egroup\egroup
       
  1138 }%
       
  1139 \def\endarray@ltx{%
       
  1140  \crcr\array@row@pst\egroup\egroup
       
  1141 }%
       
  1142 \def\endarray@array{%
       
  1143  \crcr \egroup \egroup \@arrayright \gdef\@preamble{}%
       
  1144 }%
       
  1145 \def\endarray@array@new{%
       
  1146  \crcr\array@row@pst\egroup\egroup % Same as \endarray@ltx
       
  1147  \@arrayright
       
  1148  \global\let\@preamble\@empty
       
  1149 }%
       
  1150 \def\endtabular@LaTeX{%
       
  1151  \crcr\egroup\egroup $\egroup
       
  1152 }%
       
  1153 \def\endtabular@ltx{%
       
  1154  \endarray
       
  1155 }%
       
  1156 \def\endtabular@array{%
       
  1157  \endarray $\egroup
       
  1158 }%
       
  1159 \def\endtabular@array@new{%
       
  1160  \endarray
       
  1161 }%
       
  1162 \@namedef{endtabular*}{\endtabular}%
       
  1163 \long\def\multicolumn@LaTeX#1#2#3{%
       
  1164  \multispan{#1}\begingroup
       
  1165   \@mkpream{#2}%
       
  1166   \def\@sharp{#3}\set@typeset@protect
       
  1167   \let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
       
  1168   \@arstrut \@preamble\hbox{}\endgroup\ignorespaces
       
  1169 }%
       
  1170 \long\def\multicolumn@ltx#1#2#3{%
       
  1171  \multispan{#1}%
       
  1172  \begingroup
       
  1173   \@mkpream{#2}%
       
  1174   \def\@sharp{#3}%
       
  1175   \set@typeset@protect
       
  1176  %\let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
       
  1177   \@arstrut
       
  1178   \@preamble
       
  1179   \hbox{}%
       
  1180  \endgroup
       
  1181  \ignorespaces
       
  1182 }%
       
  1183 \def\@array@align@t{\leavevmode\vtop\bgroup}%
       
  1184 \def\@array@align@b{\leavevmode\vbox\bgroup}%
       
  1185 \def\@array@align@c{\leavevmode\@ifmmode{\vcenter\bgroup}{$\vcenter\bgroup\aftergroup$\aftergroup\relax}}%
       
  1186 \def\@array@align@v{%
       
  1187  \@ifmmode{%
       
  1188   \@badmath
       
  1189   \vcenter\bgroup
       
  1190  }{%
       
  1191   \@ifinner{%
       
  1192    $\vcenter\bgroup\aftergroup$
       
  1193   }{%
       
  1194    \@@par\bgroup
       
  1195   }%
       
  1196  }%
       
  1197 }%
       
  1198 \def\array@default{c}%
       
  1199 \def\array@row@rst{%
       
  1200  \let\@array@align@v\@array@align@c
       
  1201 }%
       
  1202 \def\array@row@pre{}%
       
  1203 \def\array@row@pst{}%
       
  1204 \newcommand\toprule{\tab@rule{\column@font}{\column@fil}{\frstrut}}%
       
  1205 \newcommand\colrule{\unskip\lrstrut\\\tab@rule{\body@font}{}{\frstrut}}%
       
  1206 \newcommand\botrule{\unskip\lrstrut\\\noalign{\hline@rule}{}}%
       
  1207 \def\hline@LaTeX{%
       
  1208  \noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet
       
  1209    \reserved@a\@xhline
       
  1210 }%
       
  1211 \def\hline@ltx{%
       
  1212  \noalign{%
       
  1213   \ifnum0=`}\fi
       
  1214   \hline@rule
       
  1215   \futurelet\reserved@a\@xhline
       
  1216  % \noalign ended in \@xhline
       
  1217 }%
       
  1218 \def\@xhline@unneeded{%
       
  1219  \say\reserved@a
       
  1220  \ifx\reserved@a\hline
       
  1221   \vskip\doublerulesep
       
  1222   \vskip-\arrayrulewidth
       
  1223  \fi
       
  1224  \ifnum0=`{\fi}%
       
  1225 }%
       
  1226 \def\tab@rule#1#2#3{%
       
  1227  \crcr
       
  1228  \noalign{%
       
  1229   \hline@rule
       
  1230   \gdef\@arstrut@hook{%
       
  1231    \global\let\@arstrut@hook\@empty
       
  1232    #3%
       
  1233   }%
       
  1234   \gdef\cell@font{#1}%
       
  1235   \gdef\cell@fil{#2}%
       
  1236  }%
       
  1237 }%
       
  1238 \def\column@font{}%
       
  1239 \def\column@fil{}%
       
  1240 \def\body@font{}%
       
  1241 \def\cell@font{}%
       
  1242 \def\frstrut{}%
       
  1243 \def\lrstrut{}%
       
  1244 \def\@arstrut@hline{%
       
  1245  \relax
       
  1246  \@ifmmode{\copy}{\unhcopy}\@arstrutbox@hline
       
  1247  \@arstrut@hook
       
  1248 }%
       
  1249 \let\@arstrut@org\@arstrut
       
  1250 \def\@arstrut@hook{%
       
  1251  \global\let\@arstrut\@arstrut@org
       
  1252 }%
       
  1253 \newbox\@arstrutbox@hline
       
  1254 \appdef\set@arstrutbox{%
       
  1255   \setbox\@arstrutbox@hline\hbox{%
       
  1256     \setbox\z@\hbox{$0^{0}_{}$}%
       
  1257     \dimen@\ht\z@\advance\dimen@\@arstrut@hline@clnc
       
  1258     \@ifdim{\dimen@<\arraystretch\ht\strutbox}{\dimen@=\arraystretch\ht\strutbox}{}%
       
  1259     \vrule \@height\dimen@
       
  1260            \@depth\arraystretch \dp\strutbox
       
  1261            \@width\z@
       
  1262   }%
       
  1263 }%
       
  1264 \def\hline@rule{%
       
  1265  \hrule \@height \arrayrulewidth
       
  1266  \global\let\@arstrut\@arstrut@hline
       
  1267 }%
       
  1268 \def\@arstrut@hline@clnc{2\p@}% % Klootch: magic number
       
  1269 \def\tableft@skip{\z@skip}%
       
  1270 \def\tabmid@skip{\z@skip}%\@flushglue
       
  1271 \def\tabright@skip{\z@skip}%
       
  1272 \def\tableftsep{\tabcolsep}%
       
  1273 \def\tabmidsep{\tabcolsep}%
       
  1274 \def\tabrightsep{\tabcolsep}%
       
  1275 \def\cell@fil{}%
       
  1276 \def\pbox@hook{}%
       
  1277 \appdef\@arstrut{\@arstrut@hook}%
       
  1278 \let\@arstrut@hook\@empty
       
  1279 \def\@addtopreamble{\appdef\@preamble}%
       
  1280 \def\@mkpream@LaTeX#1{%
       
  1281   \@firstamptrue\@lastchclass6
       
  1282   \let\@preamble\@empty
       
  1283   \let\protect\@unexpandable@protect
       
  1284   \let\@sharp\relax
       
  1285   \let\@startpbox\relax\let\@endpbox\relax
       
  1286   \@expast{#1}%
       
  1287   \expandafter\@tfor \expandafter
       
  1288     \@nextchar \expandafter:\expandafter=\reserved@a\do
       
  1289        {\@testpach\@nextchar
       
  1290     \ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii
       
  1291       \or \@classiv \or\@classv \fi\@lastchclass\@chclass}%
       
  1292   \ifcase \@lastchclass \@acol
       
  1293       \or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi
       
  1294 }%
       
  1295 \def\@mkpream@ltx#1{%
       
  1296  \@firstamptrue
       
  1297  \@lastchclass6
       
  1298  \let\@preamble\@empty
       
  1299  \let\protect\@unexpandable@protect
       
  1300  \let\@sharp\relax
       
  1301  \@expast{#1}%
       
  1302  \expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\reserved@a
       
  1303  \do{%
       
  1304   \expandafter\@testpach\expandafter{\@nextchar}%
       
  1305   \ifcase\@chclass
       
  1306    \@classz
       
  1307   \or
       
  1308    \@classi
       
  1309   \or
       
  1310    \@classii
       
  1311   \or
       
  1312    \@classiii
       
  1313   \or
       
  1314    \@classiv
       
  1315   \or
       
  1316    \@classv
       
  1317   \fi
       
  1318   \@lastchclass\@chclass
       
  1319  }%
       
  1320  \ifcase\@lastchclass
       
  1321   \@acolr % right-hand column
       
  1322  \or
       
  1323  \or
       
  1324   \@preamerr\@ne
       
  1325  \or
       
  1326   \@preamerr\tw@
       
  1327  \or
       
  1328  \or
       
  1329   \@acolr % right-hand column
       
  1330  \fi
       
  1331 }%
       
  1332 \def\insert@column@array{%
       
  1333    \the@toks \the \@tempcnta
       
  1334    \ignorespaces \@sharp \unskip
       
  1335    \the@toks \the \count@ \relax
       
  1336 }%
       
  1337 \def\insert@column@array@new{%
       
  1338  \the@toks\the\@tempcnta
       
  1339  \array@row@rst\cell@font
       
  1340  \ignorespaces\@sharp\unskip
       
  1341  \the@toks\the\count@
       
  1342  \relax
       
  1343 }%
       
  1344 \def\@mkpream@relax{%
       
  1345  \let\tableftsep\relax
       
  1346  \let\tabmidsep\relax
       
  1347  \let\tabrightsep\relax
       
  1348  \let\array@row@rst\relax
       
  1349  \let\cell@font\relax
       
  1350  \let\@startpbox\relax
       
  1351 }%
       
  1352 \def\@mkpream@array#1{%
       
  1353    \gdef\@preamble{}\@lastchclass 4 \@firstamptrue
       
  1354    \let\@sharp\relax \let\@startpbox\relax \let\@endpbox\relax
       
  1355    \@temptokena{#1}\@tempswatrue
       
  1356    \@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}%
       
  1357    \count@\m@ne
       
  1358    \let\the@toks\relax
       
  1359    \prepnext@tok
       
  1360    \expandafter \@tfor \expandafter \@nextchar
       
  1361     \expandafter :\expandafter =\the\@temptokena \do
       
  1362    {\@testpach
       
  1363    \ifcase \@chclass \@classz \or \@classi \or \@classii
       
  1364      \or \save@decl \or \or \@classv \or \@classvi
       
  1365      \or \@classvii \or \@classviii
       
  1366      \or \@classx
       
  1367      \or \@classx \fi
       
  1368    \@lastchclass\@chclass}%
       
  1369    \ifcase\@lastchclass
       
  1370    \@acol \or
       
  1371    \or
       
  1372    \@acol \or
       
  1373    \@preamerr \thr@@ \or
       
  1374    \@preamerr \tw@ \@addtopreamble\@sharp \or
       
  1375    \or
       
  1376    \else  \@preamerr \@ne \fi
       
  1377    \def\the@toks{\the\toks}%
       
  1378 }%
       
  1379 \def\@mkpream@array@new#1{%
       
  1380  \gdef\@preamble{}%
       
  1381  \@lastchclass\f@ur
       
  1382  \@firstamptrue
       
  1383  \let\@sharp\relax
       
  1384  \@mkpream@relax
       
  1385  \@temptokena{#1}\@tempswatrue
       
  1386  \@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}%
       
  1387  \count@\m@ne
       
  1388  \let\the@toks\relax
       
  1389  \prepnext@tok
       
  1390  \expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\the\@temptokena
       
  1391  \do{%
       
  1392   \@testpach
       
  1393   \ifcase\@chclass
       
  1394    \@classz
       
  1395   \or
       
  1396    \@classi
       
  1397   \or
       
  1398    \@classii
       
  1399   \or
       
  1400    \save@decl
       
  1401   \or
       
  1402   \or
       
  1403    \@classv
       
  1404   \or
       
  1405    \@classvi
       
  1406   \or
       
  1407    \@classvii
       
  1408   \or
       
  1409    \@classviii
       
  1410   \or
       
  1411    \@classx
       
  1412   \or
       
  1413    \@classx
       
  1414   \fi
       
  1415   \@lastchclass\@chclass
       
  1416  }%
       
  1417  \ifcase\@lastchclass
       
  1418   \@acolr % right-hand column
       
  1419  \or
       
  1420  \or
       
  1421   \@acolr % right-hand column
       
  1422  \or
       
  1423   \@preamerr\thr@@
       
  1424  \or
       
  1425   \@preamerr\tw@\@addtopreamble\@sharp
       
  1426  \or
       
  1427  \or
       
  1428  \else
       
  1429   \@preamerr\@ne
       
  1430  \fi
       
  1431  \def\the@toks{\the\toks}%
       
  1432 }%
       
  1433 \def\@addamp@LaTeX{%
       
  1434   \if@firstamp\@firstampfalse\else\edef\@preamble{\@preamble &}\fi
       
  1435 }%
       
  1436 \def\@addamp@ltx{%
       
  1437  \if@firstamp\@firstampfalse\else\@addtopreamble{&}\fi
       
  1438 }%
       
  1439 \def\@arrayacol@LaTeX{%
       
  1440  \edef\@preamble{\@preamble \hskip \arraycolsep}%
       
  1441 }%
       
  1442 \def\@arrayacol@ltx{%
       
  1443  \@addtopreamble{\hskip\arraycolsep}%
       
  1444 }%
       
  1445 \def\@tabacoll{%
       
  1446  \@addtopreamble{\hskip\tableftsep\relax}%
       
  1447 }%
       
  1448 \def\@tabacol@LaTeX{%
       
  1449  \edef\@preamble{\@preamble \hskip \tabcolsep}%
       
  1450 }%
       
  1451 \def\@tabacol@ltx{%
       
  1452  \@addtopreamble{\hskip\tabmidsep\relax}%
       
  1453 }%
       
  1454 \def\@tabacolr{%
       
  1455  \@addtopreamble{\hskip\tabrightsep\relax}%
       
  1456 }%
       
  1457 \def\@arrayclassz@LaTeX{%
       
  1458  \ifcase \@lastchclass \@acolampacol \or \@ampacol \or
       
  1459    \or \or \@addamp \or
       
  1460    \@acolampacol \or \@firstampfalse \@acol \fi
       
  1461  \edef\@preamble{\@preamble
       
  1462   \ifcase \@chnum
       
  1463      \hfil$\relax\@sharp$\hfil \or $\relax\@sharp$\hfil
       
  1464     \or \hfil$\relax\@sharp$\fi}%
       
  1465 }%
       
  1466 \def\@arrayclassz@ltx{%
       
  1467  \ifcase\@lastchclass
       
  1468   \@acolampacol
       
  1469  \or
       
  1470   \@ampacol
       
  1471  \or
       
  1472  \or
       
  1473  \or
       
  1474   \@addamp
       
  1475  \or
       
  1476   \@acolampacol
       
  1477  \or
       
  1478   \@firstampfalse\@acoll
       
  1479  \fi
       
  1480  \ifcase\@chnum
       
  1481   \@addtopreamble{%
       
  1482    \hfil\array@row@rst$\relax\@sharp$\hfil
       
  1483   }%
       
  1484  \or
       
  1485   \@addtopreamble{%
       
  1486    \array@row@rst$\relax\@sharp$\hfil
       
  1487   }%
       
  1488  \or
       
  1489   \@addtopreamble{%
       
  1490    \hfil\array@row@rst$\relax\@sharp$%
       
  1491   }%
       
  1492  \fi
       
  1493 }%
       
  1494 \def\@tabclassz@LaTeX{%
       
  1495   \ifcase\@lastchclass
       
  1496     \@acolampacol
       
  1497   \or
       
  1498     \@ampacol
       
  1499   \or
       
  1500   \or
       
  1501   \or
       
  1502     \@addamp
       
  1503   \or
       
  1504     \@acolampacol
       
  1505   \or
       
  1506     \@firstampfalse\@acol
       
  1507   \fi
       
  1508   \edef\@preamble{%
       
  1509     \@preamble{%
       
  1510       \ifcase\@chnum
       
  1511         \hfil\ignorespaces\@sharp\unskip\hfil
       
  1512       \or
       
  1513         \hskip1sp\ignorespaces\@sharp\unskip\hfil
       
  1514       \or
       
  1515         \hfil\hskip1sp\ignorespaces\@sharp\unskip
       
  1516       \fi}}%
       
  1517 }%
       
  1518 \def\@tabclassz@ltx{%
       
  1519  \ifcase\@lastchclass
       
  1520   \@acolampacol
       
  1521  \or
       
  1522   \@ampacol
       
  1523  \or
       
  1524  \or
       
  1525  \or
       
  1526   \@addamp
       
  1527  \or
       
  1528   \@acolampacol
       
  1529  \or
       
  1530   \@firstampfalse\@acoll
       
  1531  \fi
       
  1532  \ifcase\@chnum
       
  1533   \@addtopreamble{%
       
  1534    {\hfil\array@row@rst\cell@font\ignorespaces\@sharp\unskip\hfil}%
       
  1535   }%
       
  1536  \or
       
  1537   \@addtopreamble{%
       
  1538    {\cell@fil\hskip1sp\array@row@rst\cell@font\ignorespaces\@sharp\unskip\hfil}%
       
  1539   }%
       
  1540  \or
       
  1541   \@addtopreamble{%
       
  1542    {\hfil\hskip1sp\array@row@rst\cell@font\ignorespaces\@sharp\unskip\cell@fil}%
       
  1543   }%
       
  1544  \fi
       
  1545 }%
       
  1546 \def\@tabclassiv@LaTeX{%
       
  1547  \@addtopreamble\@nextchar
       
  1548 }%
       
  1549 \def\@tabclassiv@ltx{%
       
  1550  \expandafter\@addtopreamble\expandafter{\@nextchar}%
       
  1551 }%
       
  1552 \def\@arrayclassiv@LaTeX{%
       
  1553  \@addtopreamble{$\@nextchar$}%
       
  1554 }%
       
  1555 \def\@arrayclassiv@ltx{%
       
  1556  \expandafter\@addtopreamble\expandafter{\expandafter$\@nextchar$}%
       
  1557 }%
       
  1558 \def\@classv@LaTeX{%
       
  1559  \@addtopreamble{\@startpbox{\@nextchar}\ignorespaces
       
  1560  \@sharp\@endpbox}%
       
  1561 }%
       
  1562 \def\@classv@ltx{%
       
  1563  \expandafter\@addtopreamble
       
  1564  \expandafter{%
       
  1565  \expandafter \@startpbox
       
  1566  \expandafter {\@nextchar}%
       
  1567  \pbox@hook\array@row@rst\cell@font\ignorespaces\@sharp\@endpbox
       
  1568  }%
       
  1569 }%
       
  1570 \def\@classx@array{%
       
  1571   \ifcase \@lastchclass
       
  1572   \@acolampacol \or
       
  1573   \@addamp \@acol \or
       
  1574   \@acolampacol \or
       
  1575   \or
       
  1576   \@acol \@firstampfalse \or
       
  1577   \@addamp
       
  1578   \fi
       
  1579 }%
       
  1580 \def\@classx@array@new{%
       
  1581  \ifcase \@lastchclass
       
  1582   \@acolampacol
       
  1583  \or
       
  1584   \@addamp \@acol
       
  1585  \or
       
  1586   \@acolampacol
       
  1587  \or
       
  1588  \or
       
  1589   \@firstampfalse\@acoll
       
  1590  \or
       
  1591   \@addamp
       
  1592  \fi
       
  1593 }%
       
  1594 \def\@xbitor@LaTeX #1{\@tempcntb \count#1
       
  1595    \ifnum \@tempcnta =\z@
       
  1596    \else
       
  1597      \divide\@tempcntb\@tempcnta
       
  1598      \ifodd\@tempcntb \@testtrue\fi
       
  1599    \fi}%
       
  1600 \def\@xbitor@ltx#1{%
       
  1601  \@tempcntb\count#1%
       
  1602  \@ifnum{\@tempcnta=\z@}{}{%
       
  1603   \divide\@tempcntb\@tempcnta
       
  1604   \@ifodd\@tempcntb{\@testtrue}{}%
       
  1605  }%
       
  1606 }%
       
  1607 \@ifx{\@xbitor\@xbitor@LaTeX}{%
       
  1608   \class@info{Repairing broken LaTeX \string\@xbitor}%
       
  1609 }{%
       
  1610   \class@info{Unrecognized LaTeX \string\@xbitor. Please update this document class! (Proceeding with fingers crossed.)}%
       
  1611 }%
       
  1612 \let\@xbitor\@xbitor@ltx
       
  1613 \newcommand*\@gobble@opt@one[2][]{}%
       
  1614 \def\@starttoc#1{%
       
  1615   \begingroup
       
  1616     \toc@pre
       
  1617     \makeatletter
       
  1618     \@input{\jobname.#1}%
       
  1619     \if@filesw
       
  1620       \expandafter\newwrite\csname tf@#1\endcsname
       
  1621       \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
       
  1622     \fi
       
  1623     \@nobreakfalse
       
  1624     \toc@post
       
  1625   \endgroup
       
  1626 }%
       
  1627 \def\toc@pre{}%
       
  1628 \def\toc@post{}%
       
  1629 \def\toc@@font{}%{\footnotesize\rmfamily}%
       
  1630 \def\@dotsep{\z@}%{5.5pt}%
       
  1631 \let\tocdim@section       \leftmargini
       
  1632 \let\tocdim@subsection    \leftmarginii
       
  1633 \let\tocdim@subsubsection \leftmarginiii
       
  1634 \let\tocdim@paragraph     \leftmarginiv
       
  1635 \let\tocdim@appendix      \leftmarginv
       
  1636 \let\tocdim@pagenum       \leftmarginvi
       
  1637 \def\toc@pre@auto{%
       
  1638   \toc@@font
       
  1639   \@tempdima\z@
       
  1640   \toc@setindent\@tempdima{section}%
       
  1641   \toc@setindent\@tempdima{subsection}%
       
  1642   \toc@setindent\@tempdima{subsubsection}%
       
  1643   \toc@setindent\@tempdima{paragraph}%
       
  1644   \toc@letdimen{appendix}%
       
  1645   \toc@letdimen{pagenum}%
       
  1646 }%
       
  1647 \def\toc@post@auto{%
       
  1648   \if@filesw
       
  1649    \begingroup
       
  1650     \toc@writedimen{section}%
       
  1651     \toc@writedimen{subsection}%
       
  1652     \toc@writedimen{subsubsection}%
       
  1653     \toc@writedimen{paragraph}%
       
  1654     \toc@writedimen{appendix}%
       
  1655     \toc@writedimen{pagenum}%
       
  1656    \endgroup
       
  1657   \fi
       
  1658 }%
       
  1659 \def\toc@setindent#1#2{%
       
  1660  \csname tocdim@#2\endcsname\tocdim@min\relax
       
  1661  \@ifundefined{tocmax@#2}{\@namedef{tocmax@#2}{\z@}}{}%
       
  1662  \advance#1\@nameuse{tocmax@#2}\relax
       
  1663  \expandafter\edef\csname tocleft@#2\endcsname{\the#1}%
       
  1664 }%
       
  1665 \def\toc@letdimen#1{%
       
  1666  \csname tocdim@#1\endcsname\tocdim@min\relax
       
  1667  \@ifundefined{tocmax@#1}{\@namedef{tocmax@#1}{\z@}}{}%
       
  1668  \expandafter\let\csname tocleft@#1\expandafter\endcsname\csname tocmax@#1\endcsname
       
  1669 }%
       
  1670 \def\toc@writedimen#1{%
       
  1671  \immediate\write\@auxout{%
       
  1672   \gdef\expandafter\string\csname tocmax@#1\endcsname{%
       
  1673    \expandafter\the\csname tocdim@#1\endcsname
       
  1674   }%
       
  1675  }%
       
  1676 }%
       
  1677 \def\l@@sections#1#2#3#4{%
       
  1678  % #1 - superior section
       
  1679  % #2 - this section
       
  1680  % #3 - content, including possible \numberline
       
  1681  % #4 - page number
       
  1682  \begingroup
       
  1683   \everypar{}%
       
  1684   \set@tocdim@pagenum{#4}%
       
  1685   \global\@tempdima\csname tocdim@#2\endcsname
       
  1686   \leftskip\csname tocleft@#2\endcsname\relax
       
  1687   \dimen@\csname tocleft@#1\endcsname\relax
       
  1688   \parindent-\leftskip\advance\parindent\dimen@
       
  1689   \rightskip\tocleft@pagenum plus 1fil\relax
       
  1690   \skip@\parfillskip\parfillskip\z@
       
  1691   \let\numberline\numberline@@sections
       
  1692   \@nameuse{l@f@#2}%
       
  1693   \ignorespaces#3\unskip\nobreak\hskip\skip@
       
  1694   \hb@xt@\rightskip{\hfil\unhbox\@tempboxa}\hskip-\rightskip\hskip\z@skip
       
  1695   \par
       
  1696   \expandafter\aftergroup\csname tocdim@#2\endcsname\expandafter
       
  1697  \endgroup\the\@tempdima\relax
       
  1698 }%
       
  1699 \def\set@tocdim@pagenum#1{%
       
  1700  \setbox\@tempboxa\hbox{\ignorespaces#1}%
       
  1701  \@ifdim{\tocdim@pagenum<\wd\z@}{\global\tocdim@pagenum\wd\z@}{}%
       
  1702 }%
       
  1703 \def\numberline@@sections#1{%
       
  1704  \leavevmode\hb@xt@-\parindent{%
       
  1705   \hfil
       
  1706   \@if@empty{#1}{}{%
       
  1707    \setbox\z@\hbox{#1.\kern\@dotsep}%
       
  1708    \@ifdim{\@tempdima<\wd\z@}{\global\@tempdima\wd\z@}{}%
       
  1709    \unhbox\z@
       
  1710   }%
       
  1711  }%
       
  1712  \ignorespaces
       
  1713 }%
       
  1714 \def\tocdim@min{\z@}%
       
  1715 \def\list#1#2{%
       
  1716   \ifnum \@listdepth >5\relax
       
  1717     \@toodeep
       
  1718   \else
       
  1719     \global\advance\@listdepth\@ne
       
  1720   \fi
       
  1721   \rightmargin\z@
       
  1722   \listparindent\z@
       
  1723   \itemindent\z@
       
  1724   \csname @list\romannumeral\the\@listdepth\endcsname
       
  1725   \def\@itemlabel{#1}%
       
  1726   \let\makelabel\@mklab
       
  1727   \@nmbrlistfalse
       
  1728   #2\relax
       
  1729   \@trivlist
       
  1730   \parskip\parsep
       
  1731   \set@listindent
       
  1732   \ignorespaces
       
  1733 }%
       
  1734 \def\set@listindent@parshape{%
       
  1735  \parindent\listparindent
       
  1736  \advance\@totalleftmargin\leftmargin
       
  1737  \advance\linewidth-\rightmargin
       
  1738  \advance\linewidth-\leftmargin
       
  1739  \parshape\@ne\@totalleftmargin\linewidth
       
  1740 }%
       
  1741 \def\set@listindent@{%
       
  1742  \parindent\listparindent
       
  1743  \advance\@totalleftmargin\leftmargin
       
  1744  \advance\rightskip\rightmargin
       
  1745  \advance\leftskip\@totalleftmargin
       
  1746 }%
       
  1747 \let\set@listindent\set@listindent@parshape
       
  1748 \endinput
       
  1749 %%
       
  1750 %% End of file `ltxutil.sty'.