summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/sttools/cuted.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-10-18 22:33:43 +0000
committerKarl Berry <karl@freefriends.org>2012-10-18 22:33:43 +0000
commit34c48d9566089694027f919d621fec0e075d1b84 (patch)
tree0d9a5e32bd2805eb15ed9a7444b9dfead77d58d9 /Master/texmf-dist/tex/latex/sttools/cuted.sty
parentb2af3a5c5a7adb196a11e1d049a2162b4dd34a45 (diff)
sttools (19oct12)
git-svn-id: svn://tug.org/texlive/trunk@28013 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/sttools/cuted.sty')
-rw-r--r--Master/texmf-dist/tex/latex/sttools/cuted.sty346
1 files changed, 203 insertions, 143 deletions
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'.