summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/sttools/stfloats.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-02-12 00:21:26 +0000
committerKarl Berry <karl@freefriends.org>2016-02-12 00:21:26 +0000
commit7ab668d0d6f118c6df6f2d588c196ab4ef83e189 (patch)
treec659a97784b0988fe1af75279a1c57a20137f3f8 /Master/texmf-dist/source/latex/sttools/stfloats.dtx
parent81f06c493f1d8ad12ee9b5e9af968dad444138e7 (diff)
sttools (11feb16)
git-svn-id: svn://tug.org/texlive/trunk@39677 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/sttools/stfloats.dtx')
-rw-r--r--Master/texmf-dist/source/latex/sttools/stfloats.dtx496
1 files changed, 442 insertions, 54 deletions
diff --git a/Master/texmf-dist/source/latex/sttools/stfloats.dtx b/Master/texmf-dist/source/latex/sttools/stfloats.dtx
index 3b8b762649a..61aa0c63b0b 100644
--- a/Master/texmf-dist/source/latex/sttools/stfloats.dtx
+++ b/Master/texmf-dist/source/latex/sttools/stfloats.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2012 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
+% Copyright (C) 2016 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
% ---------------------------------------------------------------------------
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -24,9 +24,8 @@
\ProvidesFile{stfloats.dtx}
%</driver>
%<*package>
-%% Copyright (C) 1997-2012 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
-%% VTeX Ltd., Akademijos 4, Vilnius, Lithuania
-%% http://www.vtex.lt/tex/download/macros/
+%% Copyright (C) 1997-2016 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
+%% VTeX UAB, Mokslininku 2a, Vilnius, Lithuania
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -42,12 +41,12 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{stfloats}
%<*package>
- [2012/05/29 v1.1 Improve float mechanism and baselineskip settings]
+ [2016/02/08 v2.0 Improve float mechanism and baselineskip settings]
%</package>
%
%<*driver>
\documentclass{ltxdoc}
-\usepackage{stfloats}[2012/05/29]
+\usepackage{stfloats}[2016/02/08]
\EnableCrossrefs
\CodelineIndex
\RecordChanges
@@ -59,7 +58,7 @@
%</driver>
% \fi
%
-% \CheckSum{551}
+% \CheckSum{1210}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -85,6 +84,7 @@
% \changes{v2.1}{1999/10/04}{changed dblfloat's output}
% \changes{v2.2}{1999/10/22}{changed cs{output} for older LaTeX distributions}
% \changes{v3.0}{2012/05/29}{Converted to DTX file}
+% \changes{v3.1}{2016/02/08}{Compatibility with 2015 latexrelease}
%
% \DoNotIndex{\newcommand,\newenvironment}
%
@@ -101,6 +101,16 @@
% The package improves dblfloat(s) and footnotes placements mechanism and baselineskip
% glue settings.
%
+% With newer \LaTeX\ release from 2015/01/01 using this package two improvements are
+% available out of the box:
+% \begin{enumerate}
+% \item Float output keeps order for the
+% same type of floats even with top or bottom dblfloat items.
+% \item Dblfloats will appear on the same page where
+% they are defined if they are defined on left column and
+% enought free place is available on the current column/page.
+% \end{enumerate}
+%
% \section{Usage}
%
% To place dblfloat(s) on top or bottom of the page just use optional
@@ -184,6 +194,8 @@
%
% \begin{macro}{\@dblfloatplacement}
% With adds to support dblfoat(s) placement at the page bottom.
+% From \LaTeX\ release 2015/01/01 |\f@depth| is used in |\@testwrongwidth| to look
+% for either column or dblcolumn floats. A value of 1sp signals the latter.
% \begin{macrocode}
\def \@dblfloatplacement {%
\global \@dbltopnum \c@dbltopnumber
@@ -195,14 +207,36 @@
\@fptop \@dblfptop
\@fpsep \@dblfpsep
\@fpbot \@dblfpbot
+ \def\f@depth{1sp}%
}
% \end{macrocode}
% \end{macro}
%
%
+% \begin{macro}{\if@before@latex@release}
+% This conditional code is used to check the \LaTeX\ release age.
+% \begin{macrocode}
+\newif\if@before@latex@release
+\def\tmp@reserved@a#1/#2/#3\@nil{%
+ \ifnum#1<2015\relax
+ \@before@latex@releasetrue
+ \else
+ \@before@latex@releasefalse
+ \fi
+ }
+\expandafter\tmp@reserved@a\fmtversion\@nil
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \LaTeX\ release version before 2015/01/01 support goes here.
+%
+%
% \begin{macro}{\@addtodblcol}
% With adds to support dblfoat(s) placement at the page bottom.
% \begin{macrocode}
+\if@before@latex@release
+%%% < 2015 start
\def\@addtodblcol{%
\begingroup
\@insertfalse
@@ -290,6 +324,407 @@
% \end{macro}
%
%
+% \begin{macro}{\@doclearpage}
+% With adds to support dblfoat(s) placement at the page bottom.
+% \begin{macrocode}
+\def \@doclearpage {%
+ \ifvoid\footins
+ \ifvbox\@kludgeins
+ {\setbox \@tempboxa \box \@kludgeins}%
+ \fi
+ \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
+ \setbox\@tempboxa\box\@cclv
+ \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
+ \global \let \@toplist \@empty
+ \global \let \@botlist \@empty
+ \global \@colroom \@colht
+ \ifx \@currlist\@empty
+ \else
+ \@latexerr{Float(s) lost}\@ehb
+ \global \let \@currlist \@empty
+ \fi
+ \@makefcolumn\@deferlist
+ \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
+ \if@twocolumn
+ \if@firstcolumn
+ \xdef\@dbldeferlist{\@dbltoplist\@dblbotlist\@dbldeferlist}%
+ \global \let \@dbltoplist \@empty
+ \global \let \@dblbotlist \@empty
+ \global \@colht \textheight
+ \begingroup
+ \@dblfloatplacement
+ \@makefcolumn\@dbldeferlist
+ \@whilesw\if@fcolmade \fi{\@outputpage
+ \@makefcolumn\@dbldeferlist}%
+ \endgroup
+ \else
+ \vbox{}\clearpage
+ \fi
+ \fi
+ \else
+ \setbox\@cclv\vbox{\box\@cclv\vfil}%
+ \@makecol\@opcol
+ \clearpage
+ \fi
+ }
+%%% < 2015 end
+\else
+% \end{macrocode}
+% \end{macro}
+%
+% Newer \LaTeX\ release version from 2015/01/01 support goes here.
+%
+% \begin{macrocode}
+%%% > 2015 start
+% \end{macrocode}
+%
+%
+% \begin{macro}{\@addtodblcol}
+% With adds to support dblfoat(s) placement on the current page and at the page bottom.
+% \begin{macrocode}
+\def\@addtodblcol{%
+ \begingroup
+ \@insertfalse
+ \@setfloattypecounts
+ \@getfpsbit \tw@
+ \ifodd\@tempcnta
+ \@flsetnum \@dbltopnum
+ \ifnum \@dbltopnum>\z@
+ \@tempswafalse
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \else
+ \ifnum \@fpstype<\sixt@@n
+ \advance \@dbltoproom \@textmin
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \fi
+ \advance \@dbltoproom -\@textmin
+ \fi
+ \fi
+ \if@tempswa
+ \@bitor \@currtype \@deferlist
+ \@testwrongwidth\@currbox
+ \if@test
+ \else
+ \@bitor \@currtype \@dblbotlist
+ \if@test
+ \else
+ \@tempdima -\ht\@currbox
+ \advance\@tempdima
+ -\ifx \@dbltoplist\@empty \dbltextfloatsep \else
+ \dblfloatsep \fi
+ \global \advance \@dbltoproom \@tempdima
+ \global \advance \@colht \@tempdima
+ \global \advance \@dbltopnum \m@ne
+ \@cons \@dbltoplist \@currbox
+ \@inserttrue
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@getfpsbit 4\relax
+ \ifodd\@tempcnta
+ \@flsetnum \@dblbotnum
+ \ifnum \@dblbotnum>\z@
+ \@tempswafalse
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \else
+ \ifnum \@fpstype<\sixt@@n
+ \advance \@dbltoproom \@textmin
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \fi
+ \advance \@dbltoproom -\@textmin
+ \fi
+ \fi
+ \if@tempswa
+ \@bitor \@currtype \@deferlist
+ \@testwrongwidth\@currbox
+ \if@test
+ \else
+ \@tempdima -\ht\@currbox
+ \advance\@tempdima
+ -\ifx \@dblbotlist\@empty \dbltextfloatsep \else
+ \dblfloatsep \fi
+ \global \advance \@dbltoproom \@tempdima
+ \global \advance \@colht \@tempdima
+ \global \advance \@dblbotnum \m@ne
+ \@cons \@dblbotlist \@currbox
+ \@inserttrue
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@cons\@deferlist\@currbox
+ \fi
+ \fi
+ \endgroup
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@addtocurcol}
+% With adds to support dblfoat(s) placement on the current page and at the page bottom.
+% \begin{macrocode}
+\def \@addtocurcol {%
+ \@insertfalse
+ \@setfloattypecounts
+ \ifnum \@fpstype=8
+ \else
+ \ifnum \@fpstype=24
+ \else
+ \@flsettextmin
+ \advance \@textmin \@textfloatsheight
+ \@reqcolroom \@pageht
+ \ifdim \@textmin>\@reqcolroom
+ \@reqcolroom \@textmin
+ \fi
+ \advance \@reqcolroom \ht\@currbox
+ \ifdim \@colroom>\@reqcolroom
+ \@flsetnum \@colnum
+ \ifnum \@colnum>\z@
+ \@bitor\@currtype\@deferlist
+ \@testwrongwidth\@currbox
+ \if@test
+ \if@firstcolumn
+ \@getfpsbit \tw@
+ \ifodd\@tempcnta
+ \@flsetnum \@dbltopnum
+ \ifnum \@dbltopnum>\z@
+ \@tempswafalse
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \else
+ \ifnum \@fpstype<\sixt@@n
+ \advance \@dbltoproom \@textmin
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \fi
+ \advance \@dbltoproom -\@textmin
+ \fi
+ \fi
+ \if@tempswa
+ \@bitor\@currtype{\@toplist\@midlist\@botlist\@dblbotlist}%
+ \if@test
+ \else
+ \@tempdima -\ht\@currbox
+ \advance\@tempdima
+ -\ifx \@dbltoplist\@empty \dbltextfloatsep \else
+ \dblfloatsep \fi
+ \global \advance \@dbltoproom \@tempdima
+ \global \advance \@colht \@tempdima
+ \global \advance \@colroom \@tempdima
+ \global \advance \@dbltopnum \m@ne
+ \@cons \@dbltoplist \@currbox
+ \@inserttrue
+ \fi
+ \fi
+ \fi
+ \else
+ \@getfpsbit 4\relax
+ \ifodd\@tempcnta
+ \@flsetnum \@dblbotnum
+ \ifnum \@dblbotnum>\z@
+ \@tempswafalse
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \else
+ \ifnum \@fpstype<\sixt@@n
+ \advance \@dbltoproom \@textmin
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \fi
+ \advance \@dbltoproom -\@textmin
+ \fi
+ \fi
+ \if@tempswa
+ \@tempdima -\ht\@currbox
+ \advance\@tempdima
+ -\ifx \@dblbotlist\@empty \dbltextfloatsep \else
+ \dblfloatsep \fi
+ \global \advance \@dbltoproom \@tempdima
+ \global \advance \@colht \@tempdima
+ \global \advance \@colroom \@tempdima
+ \global \advance \@dblbotnum \m@ne
+ \@cons \@dblbotlist \@currbox
+ \@inserttrue
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \else
+ \@bitor\@currtype\@botlist
+ \if@test
+ \@addtobot
+ \else
+ \ifodd \count\@currbox
+ \advance \@reqcolroom \intextsep
+ \ifdim \@colroom>\@reqcolroom
+ \global \advance \@colnum \m@ne
+ \global \advance \@textfloatsheight \ht\@currbox
+ \global \advance \@textfloatsheight 2\intextsep
+ \@cons \@midlist \@currbox
+ \if@nobreak
+ \nobreak
+ \@nobreakfalse
+ \everypar{}%
+ \else
+ \addpenalty \interlinepenalty
+ \fi
+ \vskip \intextsep
+ \box\@currbox
+ \penalty\interlinepenalty
+ \vskip\intextsep
+ \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
+ \outputpenalty \z@
+ \@inserttrue
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@addtotoporbot
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@resethfps
+ \@cons\@deferlist\@currbox
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@addtotoporbot}
+% With adds to support dblfoat(s) placement on the current page and at the page bottom.
+% \begin{macrocode}
+\def \@addtotoporbot {%
+ \@getfpsbit \tw@
+ \ifodd \@tempcnta
+ \@flsetnum \@topnum
+ \ifnum \@topnum>\z@
+ \@tempswafalse
+ \@flcheckspace \@toproom \@toplist
+ \if@tempswa
+ \@bitor\@currtype{\@midlist\@botlist\@dblbotlist}%
+ \if@test
+ \else
+ \@flupdates \@topnum \@toproom \@toplist
+ \@inserttrue
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@addtobot
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@addtobot}
+% With adds to support dblfoat(s) placement on the current page and at the page bottom.
+% \begin{macrocode}
+\def \@addtobot {%
+ \@getfpsbit 4\relax
+ \ifodd \@tempcnta
+ \@flsetnum \@botnum
+ \ifnum \@botnum>\z@
+ \@tempswafalse
+ \@flcheckspace \@botroom \@botlist
+ \if@tempswa
+ \@bitor\@currtype{\@dblbotlist}%
+ \if@test
+ \else
+ \global \maxdepth \z@
+ \@flupdates \@botnum \@botroom \@botlist
+ \@inserttrue
+ \fi
+ \fi
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@doclearpage}
+% With adds to support dblfoat(s) placement on the current page and at the page bottom.
+% \begin{macrocode}
+\def \@doclearpage {%
+ \ifvoid\footins
+ \ifvbox\@kludgeins
+ {\setbox \@tempboxa \box \@kludgeins}%
+ \fi
+ \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
+ \setbox\@tempboxa\box\@cclv
+ \if@twocolumn
+ \xdef\@topbotlist{\@toplist\@botlist}%
+ \global \let \@toplist \@empty
+ \global \let \@botlist \@empty
+ \global \@colroom \@colht
+ \ifx \@currlist\@empty
+ \else
+ \@latexerr{Float(s) lost}\@ehb
+ \global \let \@currlist \@empty
+ \fi
+ \@makefcolumn\@topbotlist
+ \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@topbotlist}%
+ \if@firstcolumn
+ \xdef\@deferlist{\@dbltoplist\@dblbotlist\@deferlist}%
+ \global \let \@dbltoplist \@empty
+ \global \let \@dblbotlist \@empty
+ \global \@colht \textheight
+ \begingroup
+ \@dblfloatplacement
+ \@makefcolumn\@deferlist
+ \@whilesw\if@fcolmade \fi{\@outputpage
+ \@makefcolumn\@deferlist}%
+ \endgroup
+ \else
+ \vbox{}\clearpage
+ \fi
+ \else
+ \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
+ \global \let \@toplist \@empty
+ \global \let \@botlist \@empty
+ \global \@colroom \@colht
+ \ifx \@currlist\@empty
+ \else
+ \@latexerr{Float(s) lost}\@ehb
+ \global \let \@currlist \@empty
+ \fi
+ \@makefcolumn\@deferlist
+ \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
+ \fi
+ \else
+ \setbox\@cclv\vbox{\box\@cclv\vfil}%
+ \@makecol\@opcol
+ \clearpage
+ \fi
+ }
+%%% > 2015 end
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%
% \begin{macro}{\@combinedblfloats}
% Combines outputbox with top and bottom placed dblfloat(s).
% \begin{macrocode}
@@ -349,53 +784,6 @@
% \end{macrocode}
% \end{macro}
%
-%
-% \begin{macro}{\@doclearpage}
-% With adds to support dblfoat(s) placement at the page bottom.
-% \begin{macrocode}
-\def \@doclearpage {%
- \ifvoid\footins
- \ifvbox\@kludgeins
- {\setbox \@tempboxa \box \@kludgeins}%
- \fi
- \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
- \setbox\@tempboxa\box\@cclv
- \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
- \global \let \@toplist \@empty
- \global \let \@botlist \@empty
- \global \@colroom \@colht
- \ifx \@currlist\@empty
- \else
- \@latexerr{Float(s) lost}\@ehb
- \global \let \@currlist \@empty
- \fi
- \@makefcolumn\@deferlist
- \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
- \if@twocolumn
- \if@firstcolumn
- \xdef\@dbldeferlist{\@dbltoplist\@dblbotlist\@dbldeferlist}%
- \global \let \@dbltoplist \@empty
- \global \let \@dblbotlist \@empty
- \global \@colht \textheight
- \begingroup
- \@dblfloatplacement
- \@makefcolumn\@dbldeferlist
- \@whilesw\if@fcolmade \fi{\@outputpage
- \@makefcolumn\@dbldeferlist}%
- \endgroup
- \else
- \vbox{}\clearpage
- \fi
- \fi
- \else
- \setbox\@cclv\vbox{\box\@cclv\vfil}%
- \@makecol\@opcol
- \clearpage
- \fi
- }
-% \end{macrocode}
-% \end{macro}
-%
% Makes |\@makecol| current definition copy to |\org@makecol|.
% \begin{macrocode}
\global\let\org@makecol\@makecol