diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:07:56 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:07:56 +0000 |
commit | 90905949da34ee02fd885fc494a50360f00e296d (patch) | |
tree | 9c0b80cfc6dd9a35a268dfe3557341e496f97611 /Master/texmf-dist/tex/latex/sttools/flushend.sty | |
parent | 6ecc8cbfd257eb7f97e87528164659d6c031ba07 (diff) |
sttools
git-svn-id: svn://tug.org/texlive/trunk@1351 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/sttools/flushend.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/sttools/flushend.sty | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/sttools/flushend.sty b/Master/texmf-dist/tex/latex/sttools/flushend.sty new file mode 100644 index 00000000000..83e3186a6c6 --- /dev/null +++ b/Master/texmf-dist/tex/latex/sttools/flushend.sty @@ -0,0 +1,141 @@ +%% flushend.sty +%% Copyright 1997 Sigitas Tolu\v sis +%% VTeX Ltd., Akademijos 4, Vilnius, Lithuania +%% e-mail sigitas@vtex.lt +%% http://www.vtex.lt/tex/download/macros/ +%% +% 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: Balanced columns on last page in twocolumn mode. +% +% SHORT DESCRIPTION: +% +% \flushend (loaded by default) +% --------- +% Switches on column balancing at last page +% +% \raggedend +% ---------- +% Switches off column balancing at last page +% +% \atColsBreak={#1} +% ------------------ +% Adds #1 in place of original column break (without balancing) +% Example: \atColsBreak{\vskip-2pt} +% +% \showcolsendrule +% ---------------- +% Adds rule to the bottom of columns (just for debugging) +% +% P.S. To stretch right column by #1 add command \vskip-#1 just before +% command \end{document}. +% TO shrink right column by #1 add command \vskip#1 just before +% command \end{document}. +% Example: \vskip-10pt +% \end{document} +% +% \changes{1997/05/16}{first version} +% \changes{1997/09/09}{support for compatibility with cuted.sty} +% \changes{1997/10/01}{\vipersep changed to \stripsep for compatibility with cuted.sty} +% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{flushend}[1997/10/01] +% +\newbox\@aaa +\newbox\@ccc +\@ifundefined{@viper}{\newbox\@viper}{} +\@ifundefined{hold@viper}{\newbox\hold@viper}{} +\newtoks\atColsBreak \atColsBreak={} +\newdimen\@extra@skip \@extra@skip\z@ +\newdimen\@nd@page@rule \@nd@page@rule\z@ +\def\last@outputdblcol{% + \if@firstcolumn + \global \@firstcolumnfalse + \global \setbox\@leftcolumn \box\@outputbox + \else + \global \@firstcolumntrue + \if@lastpage + \@tempdima\ht\@leftcolumn + \splittopskip\topskip\splitmaxdepth\maxdepth + \setbox\@tempboxa\vbox{% + \unvbox\@leftcolumn\setbox0\lastbox\unskip% + \the\atColsBreak% + \unvbox\@outputbox\setbox0\lastbox\unskip}% + \@tempdimb .5\ht\@tempboxa% + \loop + \setbox\@aaa\copy\@tempboxa% + \setbox\@ccc\vbox to\@tempdimb{% + \vsplit\@aaa to\@tempdimb\vss\vsplit\@aaa to\@tempdimb}% + \wlog{Extra height:\the\ht\@aaa\space when \the\@tempdimb}% + \ifvoid\@aaa \else \advance\@tempdimb 1pt \repeat% + \loop + \setbox\@aaa\copy\@tempboxa% + \setbox\@ccc\vbox to\@tempdimb{% + \vsplit\@aaa to\@tempdimb\vss}% + \wlog{(2)Left:\the\ht\@ccc\space Right:\the\ht\@aaa\space Output:\the\@tempdimb}% + \ifdim \ht\@ccc<\ht\@aaa \@tempdimb \the\ht\@aaa \repeat% + \wlog{- LAST -^^JExtra skip:\the\@extra@skip^^JLeft:\the\ht\@ccc^^JRight:\the\ht\@aaa^^JOutput:\the\@tempdimb}% + \setbox\@ccc\vbox to\@tempdimb{% + \vsplit\@tempboxa to\@tempdimb\vss}% + \setbox\@leftcolumn\vbox to\@tempdima{% + \vbox to\@tempdimb{\unvbox\@ccc}% + \hrule\@height\@nd@page@rule% + \vss}% + \setbox\@outputbox\vbox to\@tempdima{% + \vbox to\@tempdimb{\unvbox\@tempboxa\vfilneg\vskip\@extra@skip}% + \hrule\@height\@nd@page@rule% + \vss}% + \setbox\@outputbox \vbox {% + \hb@xt@\textwidth {% + \hb@xt@\columnwidth {% + \box\@leftcolumn \hss}% + \hfil + \vrule \@width\columnseprule + \hfil + \hb@xt@\columnwidth {% + \box\@outputbox \hss}% + }% + }% + \else + \setbox\@outputbox \vbox {% + \hb@xt@\textwidth {% + \hb@xt@\columnwidth {% + \box\@leftcolumn \hss}% + \hfil + \vrule \@width\columnseprule + \hfil + \hb@xt@\columnwidth {% + \box\@outputbox \hss}% + }% + }% + \fi + \ifvoid\hold@viper + \else + \setbox\@outputbox \vbox{\box\hold@viper\box\@outputbox}% + \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 +} +\let\prev@enddocument\enddocument +\newif\if@lastpage \@lastpagefalse +\def\enddocument{\global\@lastpagetrue\let\@outputdblcol\last@outputdblcol\prev@enddocument} +\def\raggedend{\global\let\enddocument\prev@enddocument} +\def\flushend{\gdef\enddocument{\global\@lastpagetrue\let\@outputdblcol\last@outputdblcol\prev@enddocument}} +\def\showcolsendrule{\global\@nd@page@rule=.4pt} +\endinput |