summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/sttools/floatpag.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/sttools/floatpag.dtx')
-rw-r--r--macros/latex/contrib/sttools/floatpag.dtx354
1 files changed, 354 insertions, 0 deletions
diff --git a/macros/latex/contrib/sttools/floatpag.dtx b/macros/latex/contrib/sttools/floatpag.dtx
new file mode 100644
index 0000000000..95d732b665
--- /dev/null
+++ b/macros/latex/contrib/sttools/floatpag.dtx
@@ -0,0 +1,354 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 1999-2012 by Vytas Statulevi\v{c}ius <vytas@vtex.lt>
+% ---------------------------------------------------------------------------
+% 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.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Sigitas Tolu\v{s}is.
+%
+% This work consists of the files floatpag.dtx and floatpag.ins
+% and the derived filebase floatpag.sty.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{floatpag.dtx}
+%</driver>
+%% Copyright (C) 1999-2012 by Vytas Statulevi\v{c}ius <vytas@vtex.lt>
+%% VTeX Ltd., Akademijos 4, Vilnius, Lithuania
+%% 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.
+%%
+%% The macros, developed by Sigitas Tolu\v{s}is <sigitas@vtex.lt>,
+%% were used in this package.
+%%
+%% The Current Maintainer of this work is Sigitas Tolu\v{s}is.
+%%
+%% PURPOSE: provides commands to apply different pagestyles
+%% to the full page floats.
+%%
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{floatpag}
+%<*package>
+ [2012/05/29 v1.1 Different pagestyles on float pages]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{floatpag}[2012/05/29]
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{floatpag.dtx}
+ \PrintChanges
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{304}
+%
+% \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
+% Lower-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
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{v1.1}{2012/05/29}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \providecommand*{\url}{\texttt}
+% \GetFileInfo{floatpag.dtx}
+% \title{The \textsf{floatpag} package}
+% \author{Vytas Statulevi\v{c}ius and Sigitas Tolu\v{s}is \\
+% \url{vytas@vtex.lt}, \url{sigitas@vtex.lt}}
+% \date{\fileversion~from \filedate}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% Provides commands to apply different pagestyles to the full page floats.
+%
+% \section{Usage}
+%
+% \DescribeMacro{\floatpagestyle}
+% \marg{foo} will apply pagestyle \meta{foo} to all pages
+% occupied by full page floats.
+%
+% \medskip
+% \DescribeMacro{\rotfloatpagestyle}
+% \marg{foo} will apply pagestyle \meta{foo} to all pages
+% occupied by sideways figures and tables
+% produced with the help of |rotating|
+% package (Sebastian Rahtz and Leonor Barroca).
+%
+% \medskip
+% \DescribeMacro{\thisfloatpagestyle}
+% \marg{foo} will apply pagestyle \meta{foo} to a page where
+% this command was used inside figure or table
+% environment.
+%
+% \medskip
+% \textbf{Default:} |\floatpagestyle{headings}| and |\rotfloatpagestyle{plain}|.
+%
+% \medskip
+% The following commands from the LaTeX2e kernel were redefined:
+% |\@xfloat|, |\@vtryfc|.
+%
+% \medskip
+% The following command from the rotating.sty was redefined:
+% |\@xrotfloat|.
+%
+% \StopEventually{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{floatpag}
+ [1999/04/29
+ FLOAT PAGESTYLE]
+% \end{macrocode}
+%
+% \begin{macro}{\floatpagestyle}
+% \begin{macrocode}
+\def\floatpagestyle#1{\gdef\at@float@page{\thispagestyle{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\rotfloatpagestyle}
+% \begin{macrocode}
+\def\rotfloatpagestyle#1{%
+ \gdef\@r@f@pagestyle{#1}%
+ \gdef\at@rotfloat@page{\thispagestyle{#1}}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\floatpagestyle{headings}
+\rotfloatpagestyle{plain}
+% \end{macrocode}
+%
+% \begin{macro}{\thisfloatpagestyle}
+%
+% \begin{macrocode}
+\def\thisfloatpagestyle#1{%
+ \expandafter\expandafter\expandafter\gdef\expandafter
+ \csname\number\@currbox @float\endcsname{\thispagestyle{#1}}\relax
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@xfloat}
+%
+%% Modify |\x@float| - ordinary floats
+%
+% \begin{macrocode}
+\def\@xfloat #1[#2]{%
+ \@nodocument
+ \def \@captype {#1}%
+ \def \@fps {#2}%
+ \@onelevel@sanitize \@fps
+ \def \reserved@b {!}%
+ \ifx \reserved@b \@fps
+ \@fpsadddefault
+ \else
+ \ifx \@fps \@empty
+ \@fpsadddefault
+ \fi
+ \fi
+ \ifhmode
+ \@bsphack
+ \@floatpenalty -\@Mii
+ \else
+ \@floatpenalty-\@Miii
+ \fi
+ \ifinner
+ \@parmoderr\@floatpenalty\z@
+ \else
+ \@next\@currbox\@freelist
+ {%
+ \@tempcnta \sixt@@n
+ \expandafter \@tfor \expandafter \reserved@a
+ \expandafter :\expandafter =\@fps
+ \do
+ {%
+ \if \reserved@a h%
+ \ifodd \@tempcnta
+ \else
+ \advance \@tempcnta \@ne
+ \fi
+ \fi
+ \if \reserved@a t%
+ \@setfpsbit \tw@
+ \fi
+ \if \reserved@a b%
+ \@setfpsbit 4%
+ \fi
+ \if \reserved@a p%
+ \@setfpsbit 8%
+ \fi
+ \if \reserved@a !%
+ \ifnum \@tempcnta>15
+ \advance\@tempcnta -\sixt@@n\relax
+ \fi
+ \fi
+ }%
+ \@tempcntb \csname ftype@\@captype \endcsname
+ \multiply \@tempcntb \@xxxii
+ \advance \@tempcnta \@tempcntb
+ \global \count\@currbox \@tempcnta
+ \expandafter\expandafter\expandafter\gdef\expandafter
+ \csname\number\@currbox @float\endcsname{\at@float@page}\relax
+ }%
+ \@fltovf
+ \fi
+ \global \setbox\@currbox
+ \color@vbox
+ \normalcolor
+ \vbox \bgroup
+ \hsize\columnwidth
+ \@parboxrestore
+ \@floatboxreset
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\e@xrotfloat}
+%
+%% 2e rotating.sty v. 2.10:
+% \begin{macrocode}
+\def\e@xrotfloat#1[#2]{%
+ \@float{#1}[#2]%
+ \thisfloatpagestyle{\@r@f@pagestyle}%
+ \begin{lrbox}\rot@float@box
+ \begin{minipage}\textheight
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\n@xrotfloat}
+%% 2.09 rotating.sty v. 1.6
+% \begin{macrocode}
+\def\n@xrotfloat#1[#2]{%
+ \ifhmode
+ \@bsphack
+ \@floatpenalty -\@Mii
+ \else
+ \@floatpenalty-\@Miii
+ \fi
+ \def\@captype{#1}%
+ \ifinner
+ \@parmoderr\@floatpenalty\z@
+ \else
+ \@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
+ \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
+ \@tfor \@tempa :=#2\do{%
+ \if\@tempa h\advance\@tempcnta \@ne\fi
+ \if\@tempa t\advance\@tempcnta \tw@\fi
+ \if\@tempa b\advance\@tempcnta 4\relax\fi
+ \if\@tempa p\advance\@tempcnta 8\relax\fi
+ }%
+ \global\count\@currbox\@tempcnta
+ }%
+ \@fltovf
+ \fi
+ \expandafter\expandafter\expandafter\gdef\expandafter
+ \csname\number\@currbox @float\endcsname{\at@rotfloat@page}\relax
+ \global\setbox\@currbox\vbox\bgroup
+ \hsize\textheight
+ \@parboxrestore
+ }
+% \end{macrocode}
+%
+%% Check for |rotating| version: 2e ar 209:
+%% 1999.02.08 To be sure check at begin document.
+% \begin{macrocode}
+\AtBeginDocument{%
+\@ifpackageloaded{rotating}%
+{\let\@xrotfloat\e@xrotfloat\let\n@xrotfloat\relax}%
+{\let\@xrotfloat\n@xrotfloat\let\e@xrotfloat\relax}}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\spec@float}
+%
+%% "Hook" in the output procedure.
+% \begin{macrocode}
+\def\spec@float#1{\expandafter\csname\number#1@float\endcsname
+ \expandafter\expandafter\expandafter\gdef\expandafter\csname\number#1@float\endcsname{}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@vtryfc}
+% \begin{macrocode}
+\def\@vtryfc#1{%
+ \global\setbox\@outputbox\vbox{}%
+ \let\@elt\@wtryfc
+ \@flsucceed
+ \let\@elt\spec@float
+ \@flsucceed
+ \global\setbox\@outputbox \vbox to\@colht{%
+ \vskip \@fptop
+ \vskip -\@fpsep
+ \unvbox \@outputbox
+ \vskip \@fpbot
+ }%
+ \let\@elt\relax
+ \xdef#1{\@failedlist\@flfail}%
+ \xdef\@freelist{\@freelist\@flsucceed}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%\endinput
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale