%% Changed; MH
%% This is file `multicol.sty' generated
%% on <1991/5/6> with the docstrip utility (v1.1l test). 
%% 
%% The original source file was `multicol.doc'.
%% 
%% 
%% Copyright (C) 1989,1990,1991 by Frank Mittelbach. All rights reserved. 
%% 
%% IMPORTANT NOTICE: 
%% 
%% You are not allowed to change this file. You may however copy this file 
%% to a file with a different name and then change the copy. 
%% 
%% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED 
%% to take money for the distribution or use of this file (or a changed 
%% version) except for a nominal charge for copying etc. 
%% 
%% You are allowed to distribute this file under the condition that it is 
%% distributed together with all files mentioned in readme.mz1. 
%% 
%% If you receive only some of these files from someone, complain! 
%% 
%% However, if these files are distributed by established suppliers as part 
%% of a complete TeX distribution, and the structure of the distribution 
%% would make it difficult to distribute the whole set of files, *those 
%% parties* are allowed to distribute only some of the files provided that 
%% it is made clear that the user will get a complete distribution-set upon 
%% request to that supplier (not me). 
%% Notice that this permission is not granted to the end user. 
%% 
%% Error Reports in case of UNCHANGED versions to 
%% 
%% F. Mittelbach 
%% Eichenweg 29 
%% D-6500 Mainz 1 
%% Federal Republic of Germany 
%% Bitnet: <PZF5HZ@RUIPC1E> 
%% 
%% Please do not request updates from me. Distribution is done only 
%% through Mail-Servers and TeX organisations. 
%% 
\def\fileversion{v1.3c}
\def\filedate{91/04/08}
\def\docdate {91/03/14}

%% \CheckSum{570}
%% \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         \~}
%%
\@ifundefined{mult@cols}{}{\endinput}
\typeout{Style option: `multicol'
   \fileversion\space <\filedate> (FMi)}
\typeout{English documentation
 \@spaces\@spaces\space<\docdate> (FMi)}
\def\multicols#1{\col@number#1\relax
  \ifnum\col@number<\tw@
     \@warning{Using `\number\col@number'
       columns doesn't seem a good idea.^^J
       I therefore use two columns instead}%
     \col@number\tw@ \fi
  \@ifnextchar[\mult@cols{\mult@cols[]}}
\def\mult@cols[#1]{\@ifnextchar[%
  {\mult@@cols{#1}}%
  {\mult@@cols{#1}[\premulticols]}}
\def\mult@@cols#1[#2]{%
  \ifnum\c@tracingmulticols>\z@
      \typeout{^^J^^JStarting multicolumn
               output with \the\col@number
               \space columns:^^J}\fi
   \enough@room#2%
   #1\par\addvspace\multicolsep
   \begingroup
   \prepare@multicols\ignorespaces}
\def\enough@room#1{\par \addpenalty\z@
   \page@free \pagegoal
   \advance \page@free -\pagetotal
   \ifnum \c@tracingmulticols>\z@
     \typeout{Current page:}%
     \message{\@spaces goal height=%
       \the\pagegoal: used \the\pagetotal
       \space -> free=\the\page@free}%
     \typeout{\@spaces needed \the#1
              (for \string#1)}\fi
   \ifdim \page@free <#1\newpage \fi}
\def\prepare@multicols{%
  \nointerlineskip \null
  \output{\global\setbox\partial@page
                 \vbox{\unvbox\@cclv
                       \setbox\z@\lastbox
                      }}\eject
  \vbadness10001 \hbadness5000
  \tolerance\multicoltolerance
  \pretolerance\m@ne
  \setemergencystretch\col@number\hsize
  \set@floatcmds
  \doublecol@number\col@number
  \multiply\doublecol@number\tw@
  \advance\baselineskip\multicolbaselineskip
  \advance\@colroom-\ht\partial@page
  \vsize\col@number\@colroom
  \advance\vsize\c@collectmore\baselineskip
  \hsize\columnwidth \advance\hsize\columnsep
  \advance\hsize-\col@number\columnsep
  \divide\hsize\col@number
  \linewidth\hsize
  \output{\multi@columnout}%
  \multiply\count\footins\col@number
  \multiply\skip \footins\col@number
  \reinsert@footnotes}
\def\endmulticols{\par\addpenalty\z@
  \output{\balance@columns}\eject
  \@checkend{multicols}%
  \endgroup \reinsert@footnotes
  \global\c@unbalance\z@
  \enough@room\postmulticols
  \addvspace\multicolsep
  \ifnum\c@tracingmulticols>\z@
     \typeout{^^JEnding multicolumn
              output.^^J^^J}\fi}
\newcount\c@unbalance     \c@unbalance   = 0
\newcount\c@collectmore   \c@collectmore = 0
\newcount\c@tracingmulticols
                     \c@tracingmulticols = 0
\newcount\col@number
\newcount\doublecol@number
\newcount\multicoltolerance
                   \multicoltolerance = 200 %9999 MH
\newdimen\page@free
\newdimen\premulticols  \premulticols = 50pt
\newdimen\postmulticols \postmulticols= 20pt
\newskip\multicolsep
      \multicolsep = 12pt plus 4pt minus 3pt
\newskip\multicolbaselineskip
                   \multicolbaselineskip=0pt
\newbox\partial@page
\def\process@cols#1#2{\count@#1\relax
     \loop #2%
     \advance\count@\tw@
     \ifnum\count@<\doublecol@number
   \repeat}
\def\page@sofar{\unvbox\partial@page
   \process@cols\z@{\wd\count@\hsize}%
   \hbox to\textwidth{%
     \process@cols\tw@{\box\count@
       \hss\vrule\@width\columnseprule\hss}%
     \box\z@}}
\def\reinsert@footnotes{\ifvoid\footins\else
         \insert\footins{}\fi}
\def\multi@columnout{%
   \ifnum\outputpenalty <-\@Mi
   \speci@ls \else
   \splittopskip\topskip
   \splitmaxdepth\maxdepth
   \dimen@\@colroom
   \divide\skip\footins\col@number
   \ifvoid\footins \else
      \advance\dimen@-\skip\footins
      \advance\dimen@-\ht\footins   \fi
   \process@cols\tw@{\setbox\count@
            \vsplit\@cclv to\dimen@
            \ifshr@nking
              \setbox\count@\vbox to\dimen@
                  {\unvbox\count@\vfill}%
            \fi
           }%
   \setbox\z@\vsplit\@cclv to\dimen@
   \ifshr@nking
      \setbox\z@\vbox to\dimen@
          {\unvbox\z@\vfill}%
   \fi
   \ifvoid\@cclv \else
       \unvbox\@cclv
       \penalty\outputpenalty
       \ifvoid\footins\else
         \@warning{I moved some lines to
                       the next page.^^J
              \@spaces Footnotes on page
           \thepage\space might be wrong}%
       \fi
       \ifnum \c@tracingmulticols>\tw@
                    \hrule\allowbreak \fi
   \fi
   \setbox\@cclv\vbox{\page@sofar}%
   \@makecol\@outputpage
   \global\@colroom\@colht
   \process@deferreds
   \ifnum\c@tracingmulticols>\@ne
     \typeout{Colroom: \the\@colht\space
              after float space removed
              = \the\@colroom }\fi
   \global\vsize\col@number\@colroom
   \global\advance\vsize
      \c@collectmore\baselineskip
  \fi}
\def\speci@ls{%
   \typeout{Floats and marginpars not
            allowed inside `multicols'
            environment!}%
   \unvbox\@cclv\reinsert@footnotes
   \xdef\@freelist{\@freelist\@currlist}%
   \gdef\@currlist{}}
\def\process@deferreds{%
   \@floatplacement
   \begingroup
    \let\@tempb\@deferlist
    \gdef\@deferlist{}%
    \let\@elt\@scolelt
      \@tempb \endgroup}
\newif\ifshr@nking
\def\raggedcolumns{%
   \@bsphack\shr@nkingtrue\@esphack}
\def\flushcolumns{%
   \@bsphack\shr@nkingfalse\@esphack}
\def\balance@columns{%
   \splittopskip\topskip
   \splitmaxdepth\maxdepth
  \setbox\z@\vbox{\unvbox\@cclv}\dimen@\ht\z@
   \advance\dimen@\col@number\topskip
   \advance\dimen@-\col@number\baselineskip
   \divide\dimen@\col@number
   \advance\dimen@\c@unbalance\baselineskip
   \ifnum\c@tracingmulticols>\@ne
      \typeout{Balance columns:
        \ifnum\c@unbalance=\z@\else
       (off balance=\number\c@unbalance)\fi}%
   \fi
   \vbadness\@M \loop
    {\process@cols\@ne{\global\setbox\count@
                             \box\voidb@x}}%
     \global\setbox\@ne\copy\z@
   {\process@cols\thr@@{\global\setbox\count@
                     \vsplit\@ne to\dimen@}}%
    \ifnum\c@tracingmulticols>\@ne
       \message{\@spaces First column
                = \the\ht\thr@@}\fi
    \ifshr@nking \global\setbox\thr@@
                 \vbox{\unvbox\thr@@}%
       \ifnum\c@tracingmulticols>\@ne
          \message{ after shrinking
                    \the\ht\thr@@}\fi\fi
    \ifnum\c@tracingmulticols>\@ne
      \message{<> last column = \the\ht\@ne}%
      \typeout{}\fi
    \ifdim\ht\@ne >\ht\thr@@
      \advance\dimen@\p@
    \repeat
   \dimen@\ht\thr@@
   \ifdim\dimen@>\@colroom \dimen@\@colroom \fi
   \process@cols\z@{\@tempcnta\count@
        \advance\@tempcnta\@ne
        \setbox\count@\vbox to\dimen@
           {\unvbox\@tempcnta
            \ifshr@nking\vfill\fi}}%
   \global\vsize\@colroom
   \global\advance\vsize\ht\partial@page
   \page@sofar}
\@ifundefined{emergencystretch}
     {\newdimen\emergencystretch}{}
\emergencystretch 1pt
\def\setemergencystretch#1#2{%
   \emergencystretch 4pt % war: 4pt % MH
   \multiply\emergencystretch#1}

\def\set@floatcmds{%
 \let\@dblfloat\@dbflt
 \def\end@dblfloat{\par
   \vskip\z@\egroup
   \ifnum\@floatpenalty<\z@
     \@cons\@deferlist\@currbox
   \fi
   \ifnum\@floatpenalty=-\@Mii
     \@esphack
   \fi}}
\endinput
%% 
%% End of file `multicol.sty'.
