% \iffalse meta-comment
%
% Copyright (C) 2012 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
% ---------------------------------------------------------------------------
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is Sigitas Tolu\v{s}is.
%
% This work consists of the files cuted.dtx and cuted.ins
% and the derived filebase cuted.sty.
%
% \fi
%
% \iffalse
%<*driver>
\ProvidesFile{cuted.dtx}
%</driver>
%<*package>
%% Copyright (C) 1997-2012 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
%% VTeX Ltd., Akademijos 4, Vilnius, Lithuania
%% http://www.vtex.lt/tex/download/macros/
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%   http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% PURPOSE:   Insert some onecolumn material in full-width on double-column page.
%%
%</package>
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{cuted}
%<*package>
    [2012/10/04 v1.5 Mixing onecolumn and twocolumn modes]
%</package>
%
%<*driver>
\documentclass{ltxdoc}
\usepackage{cuted}[2012/10/04]
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\begin{document}
  \DocInput{cuted.dtx}
  \PrintChanges
  \PrintIndex
\end{document}
%</driver>
% \fi
%
% \CheckSum{1136}
%
% \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         \~}
%
%
% \changes{}{1997/09/02}{improved column balancing}
% \changes{}{1997/09/03}{float control for \cs{@colroom} setting}
% \changes{}{1997/09/04}{improved \cs{@colroom} setting}
% \changes{}{1997/09/05}{checking for \cs{@viper} and \cs{hold@viper}}
% \changes{}{1997/09/09}{compatibility with flushend.sty}
% \changes{}{1997/09/22}{improved \cs{output} ir \cs{@specialoutput}}
% \changes{}{1997/10/01}{improved \cs{output} ir \cs{@addviper}}
% \changes{}{1998/10/23}{pakeistas koloneliu sujungimas}
% \changes{}{2000/01/18}{pakeistas \cs{@outputdblcol}}
% \changes{}{2002/06/11}{added options unskipbreak and autobase}
% \changes{v1.4}{2012/05/29}{Converted to DTX file}
%
% \DoNotIndex{\newcommand,\newenvironment}
%
% \providecommand*{\url}{\texttt}
% \GetFileInfo{cuted.dtx}
% \title{The \textsf{cuted} package}
% \author{Sigitas Tolu\v{s}is\\ \url{sigitas@vtex.lt}}
% \date{\fileversion~from \filedate}
%
% \maketitle
%
% \section{Introduction}
%
%   It is denoted to place some material in full-width at any place 
%   on double-column page (|\twocolumn| mode). The part of material
%   can be placed on the next page. Existing text is placed
%   under inserted material in two columns (it is reformatted).
%
% \section{Usage}
%
%
% \DescribeMacro{strip}
% Provides new environment:
%
%  \begin{verbatim}
%    \begin{strip} 
%      <wide onecolumn material> 
%    \end{strip}
%  \end{verbatim}
%
%   Puts |\vbox|\marg{wide onecolumn material} in full-width on
%   double-column page.
%
%   \medskip
%   Adds |\stripsep| glue before and after
%   (by default: |15pt plus2pt minus 2pt|).
%
%   \medskip
%   It can be problems with floats and footnotes. In the case of 
%   problems with footnotes it is possible to correct the situation
%   using commands |\footnotemark| and |\footnotetext|.
%
% \medskip
% \DescribeMacro{\oldcolsbreak}
% \marg{adds}
%
%   Adds \meta{adds} in place of original column break if strip is placed 
%   on the right column.
%
% \subsection{Package options}
%
% \DescribeMacro{unskipbreak}
%   \indent It is used to change |\hbox{}| to |\unskip| after leftcolumn break on striped page.
%
% \medskip
% \DescribeMacro{autobase}
%   It is used to guess |\baselineskip| value on original columns break.
%
%
% \StopEventually{}
%
% \section{Implementation}
%
% \iffalse
%<*package>
% \fi
%
%
% \begin{macro}{unskipbreak}
%    \begin{macrocode}
\def\on@stripcols@break{\hbox{}}
\DeclareOption{unskipbreak}{\gdef\on@stripcols@break{\unskip}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{autobase}
%    \begin{macrocode}
\newif\if@flushend@auto@baselineskip
\DeclareOption{autobase}{\global\@flushend@auto@baselineskiptrue}
\ProcessOptions

\newtoks\At@ViperColsBreak \At@ViperColsBreak{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\oldcolsbreak}
%    \begin{macrocode}
\def\oldcolsbreak#1{\global\At@ViperColsBreak{#1}}
\def\viper@top@hook{\splittopskip0pt plus 2pt}

%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\newbox\v@aaa
\newbox\v@ccc
\@ifundefined{lastskip@a}{\newskip\lastskip@a}{}
\@ifundefined{lastskip@b}{\newskip\lastskip@b}{}
\@ifundefined{lastskip@d}{\newskip\lastskip@d}{}
\@ifundefined{lastbox@a}{\newbox\lastbox@a}{}
\@ifundefined{stripsep}{\newskip\stripsep \stripsep 15pt plus 2pt minus 2pt}{}

\@ifundefined{@viper}{\newbox\@viper}{}
\newif\if@lastviper \@lastviperfalse
%    \end{macrocode}
%
%
% \begin{macro}{\@outputdblcol}
%    \begin{macrocode}
\def\@outputdblcol{%
  \if@firstcolumn
    \global \@firstcolumnfalse
    \global \setbox\@leftcolumn \box\@outputbox
  \else
    \global \@firstcolumntrue
    \setbox\@outputbox \vbox {%
                         \hb@xt@\textwidth {%
                           \hb@xt@\columnwidth {%
                             \box\@leftcolumn \hss}%
                           \hfil
                           \vrule \@width\columnseprule
                           \hfil
                           \hb@xt@\columnwidth {%
                             \box\@outputbox \hss}%
                                             }%
                              }%
    \ifvoid\hold@viper
    \else
      \setbox\@outputbox \vbox to\textheight{%
                             \box\hold@viper
                             \box\@outputbox 
                             \vss
                             }%
    \fi
    \@combinedblfloats
    \@outputpage
    \begingroup
      \@dblfloatplacement
      \@startdblcolumn
      \@whilesw\if@fcolmade \fi
        {\@outputpage
         \@startdblcolumn}%
      \ifvoid\@viper
      \else
        \global\setbox\@viper\vbox{%
                   \vskip-\stripsep
                   \unvbox\@viper
                   }%
        \@viperoutput
      \fi
    \endgroup
  \fi
  }
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\mathchardef\@Mv=10005
\newcount\viper@penalty
%    \end{macrocode}
%
% \begin{macro}{\strip}
%    \begin{macrocode}
\def\strip{%
  \ifinner
     \@parmoderr\viper@penalty\z@
  \else
     \viper@penalty=-\@Mv\relax
  \fi
  \global \setbox\@viper\vbox\bgroup%
        \hsize\textwidth
        \@parboxrestore
        \col@number \@ne
        \vrule height\topskip width\z@ depth\z@
  }
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\endstrip}
%    \begin{macrocode}
\def\endstrip{%
    \egroup
    \ifnum\viper@penalty <-\@Mii
      \penalty -\@Miv
      \ifvmode
        \@tempdima\prevdepth    %% saving and restoring \prevdepth added
        \vbox{}%                %% 26 May 87 to prevent extra vertical
        \prevdepth\@tempdima   %% space when used in vertical mode
        \penalty-\@Mv\relax
      \else
        \par
        \penalty-\@Mv\relax
        \noindent
      \fi
    \fi
    }
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\@viperoutput}
%    \begin{macrocode}
\gdef\@viperoutput{%
               \global \setbox\@holdpg \vbox{%
                      \unvbox\@holdpg
                      \unvbox\@cclv
                      \setbox\@tempboxa \lastbox
                      \unskip
                                     }%
               \@pagedp \dp\@holdpg
               \@pageht \ht\@holdpg
               \ifvoid\@viper\else
                   \advance \@pageht \@pagedp
                   \ifvoid\footins \else
                     \advance \@pageht \ht\footins
                     \advance \@pageht \skip\footins
                     \advance \@pageht \dp\footins
                   \fi
                   \ifvbox \@kludgeins
                     \ifdim \wd\@kludgeins=\z@
                       \advance \@pageht \ht\@kludgeins
                     \fi
                   \fi
                   \@reinserts
                   \@addviper
               \fi
  }
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\@specialoutput}
%    \begin{macrocode}
\gdef\@specialoutput{%
   \ifnum \outputpenalty>-\@Mii
     \@doclearpage
   \else
     \ifnum \outputpenalty<-\@Miii
       \ifnum \outputpenalty<-\@MM \deadcycles \z@ \fi
       \ifnum \outputpenalty=-\@Mv
              \@viperoutput
               \ifnum \outputpenalty<\z@
                 \if@nobreak
                 \else
                   \addpenalty \interlinepenalty
                 \fi
               \fi
       \else
              \global \setbox\@holdpg \vbox {\unvbox\@cclv}%
       \fi
     \else
       \global \setbox\@holdpg \vbox{%
                      \unvbox\@holdpg
                      \unvbox\@cclv
                      \setbox\@tempboxa \lastbox
                      \unskip
                                     }%
       \@pagedp \dp\@holdpg
       \@pageht \ht\@holdpg
       \unvbox \@holdpg
       \@next\@currbox\@currlist{%
         \ifnum \count\@currbox>\z@
           \advance \@pageht \@pagedp
           \ifvoid\footins \else
             \advance \@pageht \ht\footins
             \advance \@pageht \skip\footins
             \advance \@pageht \dp\footins
           \fi
           \ifvbox \@kludgeins
             \ifdim \wd\@kludgeins=\z@
               \advance \@pageht \ht\@kludgeins
             \fi
           \fi
           \@reinserts
           \@addtocurcol
         \else
           \@reinserts
           \@addmarginpar
         \fi
         }\@latexbug
       \ifnum \outputpenalty<\z@
         \if@nobreak
         \else
           \addpenalty \interlinepenalty
         \fi
       \fi
     \fi
   \fi
  }
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\@ifundefined{hold@viper}{\newbox\hold@viper}{}
\newdimen\ht@viper 
%    \end{macrocode}
%
% \begin{macro}{\@addviper}
%    \begin{macrocode}
\def \@addviper {%
   \if@firstcolumn
     \@insertfalse
     \@reqcolroom .5\@pageht
     \ht@viper\@reqcolroom
     \advance \@reqcolroom \ht\@viper
     \advance \@reqcolroom \stripsep
     \ifvoid\hold@viper\@tempdima=\z@\else\@tempdima\ht\hold@viper\fi
%%
     \@tempdimb \ht@viper
     \loop
     \setbox\v@aaa\copy\@holdpg
     \setbox\v@ccc\vbox to\@tempdimb{%
                \vsplit\v@aaa to\@tempdimb\vss\vsplit\v@aaa to\@tempdimb}%
     \wlog{Extra height:\the\ht\v@aaa\space when \the\@tempdimb}%
     \ifvoid\v@aaa \else \advance\@tempdimb 1pt \repeat
     \loop
     \setbox\v@aaa\copy\@holdpg
     \setbox\v@ccc\vbox to\@tempdimb{%
                \vsplit\v@aaa to\@tempdimb\vss}%
     \wlog{(2)Left:\the\ht\v@ccc\space Right:\the\ht\v@aaa\space Output:\the\@tempdimb}%
     \ifdim \ht\v@ccc<\ht\v@aaa \@tempdimb \the\ht\v@aaa \repeat
     \wlog{- LAST -^^JLeft:\the\ht\v@ccc^^JRight:\the\ht\v@aaa^^JOutput:\the\@tempdimb}%
     \setbox\v@ccc\vbox to\@tempdimb{%
                \vsplit\@holdpg to\@tempdimb\vss}%
%%
     \setbox\@tempboxa \vbox {%
        \hb@xt@\textwidth {%
                \hb@xt@\columnwidth {%
                    \vbox to\ht@viper{\box\v@ccc\vss} \hss}%
                    \hfil
                    \vrule \@width\columnseprule
                    \hfil
                    \hb@xt@\columnwidth {%
                    \vbox to\ht@viper{\box\@holdpg\vss} \hss}%
                          }%
                       }%
     \ifvoid\hold@viper
        \global\setbox\hold@viper \vbox {%
                \unvbox\@tempboxa
                \penalty\interlinepenalty
                \vskip\stripsep
                \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
                \outputpenalty \z@
                        }%
     \else
        \global\setbox\hold@viper \vbox {%
                \unvbox\hold@viper
                \unvbox\@tempboxa
                \penalty\interlinepenalty
                \vskip\stripsep
                \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
                \outputpenalty \z@
                        }%
     \fi
     \ifdim \@colroom>\@reqcolroom
        \global\setbox\hold@viper \vbox {%
                \unvbox\hold@viper
                \box\@viper
                \penalty\interlinepenalty
                \vskip\stripsep
                \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
                \outputpenalty \z@
                        }%
        \@inserttrue
        \advance\@tempdima by-\ht\hold@viper
        \global \advance \@colht \@tempdima
        \ifdim \@colht<2.5\baselineskip
           \@latex@warning@no@line {Optional argument of \noexpand\twocolumn
                too tall on page \thepage (1 stulpelis)}%
           \@emptycol
           \if@firstcolumn
           \else
             \@emptycol
           \fi
           \global\@lastvipertrue
        \else
           \global \vsize \@colht
           \global \@colroom \@colht
           \check@floats
           \ifdim\@tempdima>\z@
                   \global\advance\@colroom by-\@tempdima
           \fi
           \ifdim\@colroom<\z@
                   \global\@colroom 1pt
                   \ifdim\@tempdima>\@colht
                      \@latex@warning@no@line {TOP ir/ar BOT FLOAT's
                                 netelpa lape \thepage (1 stulpelis)}%
                   \fi
                   \@emptycol
                   \if@firstcolumn
                   \else
                     \@emptycol
                   \fi
                   \global\@lastvipertrue
           \fi
        \fi
     \fi
   \else
     \@insertfalse
     \@reqcolroom\@colht
     \advance\@reqcolroom \@pageht
     \ht@viper.5\@reqcolroom
     \@reqcolroom\ht@viper
     \advance \@reqcolroom \ht\@viper
     \advance \@reqcolroom \stripsep
      \if@flushend@auto@baselineskip
        \setbox\@tempboxa\vbox{\unvcopy\@leftcolumn
          \global\lastskip@d\lastskip
          \global\lastskip@b\lastskip
          \loop
            \global\lastskip@a\lastskip@b
            \unskip\unpenalty
            \global\lastskip@b\lastskip
            \global\advance\lastskip@d by\lastskip
          \ifdim\lastskip@b=-\lastskip@a
            \global\advance\lastskip@d by-\lastskip
          \else
          \repeat
          \ifdim\lastskip@b=-\lastskip@a
            \ifdim\lastskip@b=\z@
              \setbox\lastbox@a\lastbox
              \global\advance\lastskip@d by\ht\lastbox@a
              \global\advance\lastskip@d by\lastskip
              \unskip\unpenalty
              \setbox\lastbox@a\lastbox
              \global\advance\lastskip@d by\dp\lastbox@a
            \else
              \global\lastskip@d\lastskip
              \global\advance\lastskip@d by\topskip
            \fi
          \fi
          \global\advance\lastskip@d by-\topskip
          }%
       \ifdim\ht\@holdpg>\@colht
         \global\setbox\@holdpg\vbox{\unvbox\@leftcolumn\unskip\unpenalty
           \par\eject
           \vbox to \@colht{\unvbox\@holdpg\unskip}%
           }%
       \else
         \global\setbox\@holdpg\vbox{%
           \unvbox\@leftcolumn\unskip\unpenalty
           \vskip\lastskip@d
           \the\At@ViperColsBreak
           \unvbox\@holdpg
           \unskip
           }%
       \fi
     \else
       \global\setbox\@holdpg\vbox{%
                \unvbox\@leftcolumn
                \setbox\@tempboxa\lastbox
                \on@stripcols@break
                \the\At@ViperColsBreak
                \unvbox\@holdpg
                }%
     \fi
     \global\At@ViperColsBreak{}%
     \ht@viper .5\ht\@holdpg
     \ifdim \ht@viper>\@colht
        \ht@viper \@colht
     \fi
     \ifvoid\hold@viper\@tempdima=\z@\else\@tempdima\ht\hold@viper\fi
%    \end{macrocode}
%%
%    \begin{macrocode}
     \@tempdimb \ht@viper
     \loop
       \setbox\v@aaa\copy\@holdpg
       \setbox\v@ccc\vbox to\@tempdimb{%
                \vsplit\v@aaa to\@tempdimb
                \vss
                \vsplit\v@aaa to\@tempdimb
                }%
       \wlog{Extra height:\the\ht\v@aaa\space when \the\@tempdimb}%
     \ifvoid\v@aaa 
     \else 
       \advance\@tempdimb 1\p@ 
     \repeat
     \loop
       \setbox\v@aaa\copy\@holdpg
       \setbox\v@ccc\vbox to\@tempdimb{\vsplit\v@aaa to\@tempdimb\vss}%
       \wlog{(2)Left:\the\ht\v@ccc\space
               Right:\the\ht\v@aaa\space 
              Output:\the\@tempdimb
            }%
     \ifdim\ht\v@ccc<\ht\v@aaa 
       \@tempdimb \the\ht\v@aaa 
     \repeat
     \wlog{- LAST -^^JLeft:\the\ht\v@ccc
                  ^^JRight:\the\ht\v@aaa
                 ^^JOutput:\the\@tempdimb
          }%
     \setbox\v@ccc\vbox to\@tempdimb{\vsplit\@holdpg to\@tempdimb\vss}%
%    \end{macrocode}
%
%    \begin{macrocode}
     \setbox\@tempboxa\vbox{%
        \hb@xt@\textwidth {%
            \hb@xt@\columnwidth{\vbox to\ht@viper{\box\v@ccc\vss} \hss}%
            \hfil
            \vrule \@width\columnseprule
            \hfil
            \hb@xt@\columnwidth {\vbox to\ht@viper{\box\@holdpg\vss} \hss}%
            }%
        }%
     \ifvoid\hold@viper
        \global\setbox\hold@viper \vbox {%
                \unvbox\@tempboxa
                \penalty\interlinepenalty
                \vskip\stripsep
                \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
                \outputpenalty \z@
                        }%
     \else
        \global\setbox\hold@viper \vbox {%
                \unvbox\hold@viper       
                \unvbox\@tempboxa
                \penalty\interlinepenalty
                \vskip\stripsep
                \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
                \outputpenalty \z@
                        }%
     \fi
     \ifdim \@colht>\@reqcolroom
        \global\setbox\hold@viper \vbox {%
                \unvbox\hold@viper
                \box\@viper
                \penalty\interlinepenalty
                \vskip\stripsep
                \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
                \outputpenalty \z@
                        }%
        \@inserttrue
        \global\@firstcolumntrue
        \advance\@tempdima by-\ht\hold@viper
        \global \advance \@colht \@tempdima
        \ifdim \@colht<2.5\baselineskip
            \@latex@warning@no@line {Optional argument of \noexpand\twocolumn
                                     too tall on page \thepage (2 stulpelis)}%
            \@emptycol
            \if@firstcolumn
            \else
                \@emptycol
            \fi
            \global\@lastvipertrue
        \else
            \global \vsize \@colht
            \global \@colroom \@colht
            \check@floats
            \ifdim\@tempdima>\z@
                \global\advance\@colroom by-\@tempdima
            \fi
            \ifdim\@colroom<\z@
                \global\@colroom 1pt
                \ifdim\@tempdima>\@colht
                \@latex@warning@no@line {TOP ir/ar BOT FLOAT's
                                 netelpa lape \thepage (2 stulpelis)}%
                \fi
                \@emptycol
                \if@firstcolumn
                \else
                    \@emptycol
                \fi
                \global\@lastvipertrue
            \fi
        \fi
      \fi
  \fi
  \if@insert
  \else
      \advance\@tempdima by-\ht\hold@viper
      \global \advance \@colht \@tempdima
      \global\setbox\hold@viper \vbox {%
                                       \unvbox\hold@viper
                                       \csname viper@top@hook\endcsname
                                       \vsplit\@viper to \@colht
                                       \vss
                                      }%
      \vbox{}%
      \global\@firstcolumnfalse
      \newpage
  \fi
  }
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\check@floats}
%    \begin{macrocode}

\def\check@floats{%
    \global\@tempdima\z@
    \let\@elt\ht@comflelt
    \ifx\@toplist\@empty \else \@toplist \fi
    \ifx\@botlist\@empty \else \@botlist \fi
    }
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\ht@comflelt}
%    \begin{macrocode}
\def\ht@comflelt#1{%
  \setbox\@tempboxa\vbox{\copy #1\vskip\floatsep}%
  \global\advance\@tempdima  by\ht\@tempboxa
  }
%    \end{macrocode}
% \end{macro}
% \begin{macro}{output}
%    \begin{macrocode}
\output {%
  \let \par \@@par
  \ifnum \outputpenalty<-\@M
    \@specialoutput
  \else
    \@makecol
    \@opcol
    \@startcolumn
    \@whilesw \if@fcolmade \fi
      {%
       \@opcol\@startcolumn}%
  \fi
  \ifnum \outputpenalty>-\@Miv
    \ifdim \@colroom<1.5\baselineskip
      \ifdim \@colroom<\textheight
        \@latex@warning@no@line {Text page \thepage\space
                               contains only floats}%
        \if@lastviper\else\@emptycol\fi
        \if@twocolumn
          \if@firstcolumn
          \else
            \@emptycol
          \fi
        \fi
        \global\@lastviperfalse
      \else
        \global \vsize \@colroom
      \fi
    \else
      \global \vsize \@colroom
    \fi
  \else
    \ifnum\outputpenalty<-100005
      \global \vsize \maxdimen
    \else
      \global \vsize \@colroom
    \fi
  \fi
  }
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode} 
%\endinput 
%    \end{macrocode} 
%
% \iffalse
%</package>
% \fi
%
% \Finale
