From 34c48d9566089694027f919d621fec0e075d1b84 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Thu, 18 Oct 2012 22:33:43 +0000
Subject: sttools (19oct12)

git-svn-id: svn://tug.org/texlive/trunk@28013 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/sttools/cuted.sty | 346 +++++++++++++++-----------
 1 file changed, 203 insertions(+), 143 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/sttools/cuted.sty')

diff --git a/Master/texmf-dist/tex/latex/sttools/cuted.sty b/Master/texmf-dist/tex/latex/sttools/cuted.sty
index 3b60c518455..972720acffb 100644
--- a/Master/texmf-dist/tex/latex/sttools/cuted.sty
+++ b/Master/texmf-dist/tex/latex/sttools/cuted.sty
@@ -1,58 +1,46 @@
-%% cuted.sty
-%% Copyright 1997 Sigitas Tolu\v sis
+%%
+%% This is file `cuted.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% cuted.dtx  (with options: `package')
+%% 
+%% Copyright (C) 1997-2012 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
 %% VTeX Ltd., Akademijos 4, Vilnius, Lithuania
-%% e-mail sigitas@vtex.lt
 %% 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.
 %%
-% This program can redistributed and/or modified under the terms
-% of the LaTeX Project Public License Distributed from CTAN
-% archives in directory macros/latex/base/lppl.txt; either
-% version 1 of the License, or (at your option) any later version.
-%
-% PURPOSE:   Insert some onecolumn material in full-width on double-column page.
-%
-% SHORT DESCRIPTION:
-%
-%   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).
-%
-% Provides new environment:
-%
-%  \begin{strip} ... \end{strip}
-%  -----------------------------
-%
-%   Puts \vbox{...} in full-width on double-column page.
-%   Adds \stripsep glue before and after
-%   (By default \stripsep=15pt plus2pt minus 2pt).
-%   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.
-%
-% Provides new command:
-%  \oldcolsbreak{#1}
-%
-%   Adds #1 in place of original column break if strip is placed 
-%   on the right column.
-%
-% \changes{1997/09/02}{improved column balancing}
-% \changes{1997/09/03}{float control for \@colroom setting}
-% \changes{1997/09/04}{improved \@colroom setting}
-% \changes{1997/09/05}{checking for \@viper and \hold@viper}
-% \changes{1997/09/09}{compatibility with flushend.sty}
-% \changes{1997/09/22}{improved \output ir \@specialoutput}
-% \changes{1997/10/01}{improved \output ir \@addviper}
-%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{cuted}[1997/10/01]
-%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{cuted}
+    [2012/10/04 v1.5 Mixing onecolumn and twocolumn modes]
+\def\on@stripcols@break{\hbox{}}
+\DeclareOption{unskipbreak}{\gdef\on@stripcols@break{\unskip}}
+\newif\if@flushend@auto@baselineskip
+\DeclareOption{autobase}{\global\@flushend@auto@baselineskiptrue}
+\ProcessOptions
+
 \newtoks\At@ViperColsBreak \At@ViperColsBreak{}
 \def\oldcolsbreak#1{\global\At@ViperColsBreak{#1}}
+\def\viper@top@hook{\splittopskip0pt plus 2pt}
+
 \newbox\v@aaa
 \newbox\v@ccc
-\@ifundefined{stripsep}{\newskip\stripsep\stripsep 15pt plus 2pt minus 2pt}{}
-%
+\@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
 \def\@outputdblcol{%
@@ -74,7 +62,11 @@
                               }%
     \ifvoid\hold@viper
     \else
-      \setbox\@outputbox \vbox{\box\hold@viper\box\@outputbox}%
+      \setbox\@outputbox \vbox to\textheight{%
+                             \box\hold@viper
+                             \box\@outputbox
+                             \vss
+                             }%
     \fi
     \@combinedblfloats
     \@outputpage
@@ -87,11 +79,14 @@
       \ifvoid\@viper
       \else
         \global\setbox\@viper\vbox{%
-                \vskip-\stripsep\unvbox\@viper}\@viperoutput
+                   \vskip-\stripsep
+                   \unvbox\@viper
+                   }%
+        \@viperoutput
       \fi
     \endgroup
   \fi
-}
+  }
 \mathchardef\@Mv=10005
 \newcount\viper@penalty
 \def\strip{%
@@ -104,18 +99,24 @@
         \hsize\textwidth
         \@parboxrestore
         \col@number \@ne
-        \vrule height\topskip width0pt depth0pt
-}
+        \vrule height\topskip width\z@ depth\z@
+  }
 \def\endstrip{%
-        \egroup
+    \egroup
     \ifnum\viper@penalty <-\@Mii
       \penalty -\@Miv
-      \@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
+      \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
-}
+    }
 \gdef\@viperoutput{%
                \global \setbox\@holdpg \vbox{%
                       \unvbox\@holdpg
@@ -140,14 +141,14 @@
                    \@reinserts
                    \@addviper
                \fi
-}
+  }
 \gdef\@specialoutput{%
    \ifnum \outputpenalty>-\@Mii
      \@doclearpage
    \else
      \ifnum \outputpenalty<-\@Miii
        \ifnum \outputpenalty<-\@MM \deadcycles \z@ \fi
-       \ifnum \outputpenalty=-10005
+       \ifnum \outputpenalty=-\@Mv
               \@viperoutput
                \ifnum \outputpenalty<\z@
                  \if@nobreak
@@ -196,9 +197,9 @@
        \fi
      \fi
    \fi
-}
+  }
 \@ifundefined{hold@viper}{\newbox\hold@viper}{}
-\newdimen\ht@viper 
+\newdimen\ht@viper
 \def \@addviper {%
    \if@firstcolumn
      \@insertfalse
@@ -207,28 +208,27 @@
      \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%
+     \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%
+     \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{\vsplit\@holdpg to\ht@viper\vss} \hss}%
                     \vbox to\ht@viper{\box\v@ccc\vss} \hss}%
                     \hfil
                     \vrule \@width\columnseprule
@@ -306,41 +306,101 @@
      \@reqcolroom\ht@viper
      \advance \@reqcolroom \ht\@viper
      \advance \@reqcolroom \stripsep
-     \global\setbox\@holdpg\vbox{\unvbox\@leftcolumn
-                \setbox\@tempboxa\lastbox\unskip\the\At@ViperColsBreak\unvbox\@holdpg}%
+      \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
-%
+%%
      \@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%
+       \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}%
-%
+       \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{\vsplit\@holdpg to \ht@viper\vss} \hss}%
-                   \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}%
-                          }%
-                       }%
+            \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
@@ -351,7 +411,7 @@
                         }%
      \else
         \global\setbox\hold@viper \vbox {%
-                \unvbox\hold@viper       
+                \unvbox\hold@viper
                 \unvbox\@tempboxa
                 \penalty\interlinepenalty
                 \vskip\stripsep
@@ -373,61 +433,63 @@
         \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)}%
+            \@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
+                    \@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
   \fi
   \if@insert
   \else
-        \advance\@tempdima by-\ht\hold@viper
-        \global \advance \@colht \@tempdima
-        \global\setbox\hold@viper \vbox {%
-                \unvbox\hold@viper
-                \vsplit\@viper to \@colht
-                \vss
-                }%
-        \vbox{}%
-        \global\@firstcolumnfalse
-        \newpage
+      \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
-}
+  }
 
-\def \check@floats {%
+\def\check@floats{%
     \global\@tempdima\z@
-    \let \@elt \ht@comflelt
-    \ifx \@toplist\@empty \else\@toplist \fi
-    \ifx \@botlist\@empty \else\@botlist \fi
-}
-\def\ht@comflelt#1{\setbox\@tempboxa\vbox{\copy #1\vskip\floatsep}%
-\global\advance\@tempdima\ht\@tempboxa}
-
+    \let\@elt\ht@comflelt
+    \ifx\@toplist\@empty \else \@toplist \fi
+    \ifx\@botlist\@empty \else \@botlist \fi
+    }
+\def\ht@comflelt#1{%
+  \setbox\@tempboxa\vbox{\copy #1\vskip\floatsep}%
+  \global\advance\@tempdima  by\ht\@tempboxa
+  }
 \output {%
   \let \par \@@par
   \ifnum \outputpenalty<-\@M
@@ -466,9 +528,7 @@
       \global \vsize \@colroom
     \fi
   \fi
-}
+  }
 \endinput
-
-
-
-
+%%
+%% End of file `cuted.sty'.
-- 
cgit v1.2.3

