From 34c48d9566089694027f919d621fec0e075d1b84 Mon Sep 17 00:00:00 2001 From: Karl Berry 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 %% 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