diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/sttools/midfloat.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/sttools/midfloat.sty | 226 |
1 files changed, 226 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/sttools/midfloat.sty b/Master/texmf-dist/tex/latex/sttools/midfloat.sty new file mode 100644 index 00000000000..d9d11129ee7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/sttools/midfloat.sty @@ -0,0 +1,226 @@ +%% midfloat.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: Insert some material in full-width on double-column page. +% +% SHORT DESCRIPTION: +% +% It is denoted to place some material (from the left column) +% in full-width at any place (but not at the top) on double-column +% page (\twocolumn mode). Existing text remains as it was before +% insert. Placement is restricted to one page. (It is some kind of +% dbfloat intext). +% +% Provides new environment: +% +% \begin{strip}[#1/#2] ... \end{strip} +% ----------------------------- +% +% Puts \vbox{...} in full-width on double-column page. +% Parameters #1 and #2 are optional. +% By default #1=0pt and #2=0pt. +% The material on the right column under strip is stretched down +% by #1 and below strip is moved down by #2. +% +% 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. +% +% \changes{1997/10/01}{some names} +% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{midfloat}[1997/10/01] +% +\newif\if@vihproof \@vihprooftrue +\newtoks\juo@sar \juo@sar={} +\def\@ca#1#2#3#4{} +\@ifundefined{stripsep}{\newskip\stripsep\stripsep 15pt}{} +% +\newskip\m@addvipersep +\m@addvipersep\z@ +\newskip\c@addvipersep +\c@addvipersep\z@ +\newdimen\ht@strip +\newdimen\right@cor +\newdimen\cor@height \cor@height=0pt +\newdimen\juo@pr +\newdimen\juo@ht +\newbox\@viper +\newcount\juo@sk +\newdimen\c@colht +\newbox\@rightcolumn + +\def\add@strip#1#2#3#4{\begingroup% + \xdef\ex@{\global\noexpand\juo@sar{\the\juo@sar\noexpand\@ca{#1}{#2}{#3}{#4}}}\ex@% +\endgroup} + +\def\remove@strip#1{\ifx#1\@empty\global\juo@sk=0\else + \global\advance\juo@sk by-1\expandafter\next@item\the #1\@@#1\fi} +\def\next@item \@ca #1#2#3#4#5\@@#6{\global #6={#5}\global\juo@pr=#1\global\juo@ht=#2% +\global\cor@height=#3\global\m@addvipersep=#4} + +\def\strip{\@ifnextsymb[{\@strip}{\@strip[0pt/0pt]}} +\def\@strip[#1/#2]{\global\@tempdima=#1\global\@tempdimb=#2% + \global \setbox\@viper\vbox\bgroup% + \hsize\textwidth + \@parboxrestore + \col@number \@ne + \vrule height\topskip width0pt depth0pt +} +\def\endstrip{% + \egroup + \if@firstcolumn + \ifdim\pagetotal>\z@ + \vskip\stripsep + \global\ht@strip\pagegoal + \global\advance\ht@strip by-\pagetotal + \global\advance\ht@strip by-\stripsep + \global\advance\ht@strip by-\ht\@viper + \global\advance\ht@strip by-\stripsep + \global\juo@ht=\ht\@viper + \else + \global\ht@strip\z@ + \fi + \ifdim\ht@strip>\z@ + \unvbox\@viper + \vskip\stripsep + \add@strip{\the\pagetotal}{\the\juo@ht}{\the\@tempdima}{\the\@tempdimb}% + \global\advance\juo@sk by1 + \else + \@latex@error{Strip needs more place!}\@ehc + \if@vihproof + \framebox[\columnwidth]{??? Strip ???}% + \fi + \fi + \else + \@latex@error{Strip is used only on left column!}\@ehc + \if@vihproof + \framebox[\columnwidth]{??? Strip ???}% + \fi + \fi +} +\def\@outputdblcol{% + \if@firstcolumn + \global \@firstcolumnfalse + \global \setbox\@leftcolumn \box\@outputbox + \global\c@colht\@colht\global\c@addvipersep\z@ + \ifnum\juo@sk>0 + \remove@strip\juo@sar + \global\@colht\the\juo@pr + \ifdim\right@cor>\z@ + \global\advance\@colht by\right@cor + \fi + \global\advance\@colht by\cor@height + \global\cor@height=0pt + \fi + \global \setbox\@rightcolumn \vbox{}% + \else + \ifdim\c@colht>\@colht + \@tempdima\@colht + \ifdim\@colht>\z@ + \global\setbox\@rightcolumn \vbox{% + \unvbox\@rightcolumn + \vbox to\@tempdima{% + \vskip\c@addvipersep\unvbox\@outputbox}% + \vskip\stripsep + \vrule height\the\juo@ht width 0pt depth 0pt + \vskip\stripsep + }% + \global\c@addvipersep\m@addvipersep + \else + \global\setbox\@rightcolumn \vbox{% + \unvbox\@rightcolumn + \vrule height\the\juo@ht width 0pt depth 0pt + \vskip\stripsep + }% + \fi + \ifnum\juo@sk>0 + \remove@strip\juo@sar + \global\@colht\the\juo@pr + \global\advance\@colht by -\ht\@rightcolumn + \global\advance\@colht by\cor@height + \global\cor@height=0pt + \else + \global\advance\c@colht by-\ht\@rightcolumn + \global\@colht\c@colht + \fi + \else + \global \@firstcolumntrue + \global\setbox\@outputbox\vbox to\ht\@leftcolumn{% + \unvbox\@rightcolumn + \vskip\c@addvipersep + \unvbox\@outputbox + }% + \setbox\@outputbox \vbox {% + \hb@xt@\textwidth {% + \hb@xt@\columnwidth {% + \box\@leftcolumn \hss}% + \hfil + \vrule \@width\columnseprule + \hfil + \hb@xt@\columnwidth {% + \box\@outputbox \hss}% + }% + }% + \@combinedblfloats + \@outputpage + \begingroup + \@dblfloatplacement + \@startdblcolumn + \@whilesw\if@fcolmade \fi + {\@outputpage + \@startdblcolumn}% + \endgroup + \global\juo@sk=0\global\juo@sar={}% + \global\cor@height\z@\global\c@addvipersep\z@ + \fi + \fi +} + +\def \@cflt{% + \let \@elt \@comflelt + \setbox\@tempboxa \vbox{}% + \@toplist + \global\right@cor\ht\@tempboxa + \ifdim\right@cor>\z@ + \global\advance\right@cor by-\floatsep + \global\advance\right@cor by\textfloatsep + \fi + \setbox\@outputbox \vbox{% + \boxmaxdepth \maxdepth + \unvbox\@tempboxa + \vskip -\floatsep + \topfigrule + \vskip \textfloatsep + \unvbox\@outputbox + }% + \let\@elt\relax + \xdef\@freelist{\@freelist\@toplist}% + \global\let\@toplist\@empty +} + +\def\@ifnextsymb#1#2#3{% + \let\reserved@d=#1% + \def\reserved@a{#2}\def\reserved@b{#3}% + \futurelet\@let@token\@ifnsymb} +\def\@ifnsymb{% + \ifx\@let@token\@sptoken + \let\reserved@c\reserved@b + \else + \ifx\@let@token\reserved@d + \let\reserved@c\reserved@a + \else + \let\reserved@c\reserved@b + \fi + \fi + \reserved@c} + +\endinput |