summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/flowfram/flowfram.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/flowfram/flowfram.sty')
-rw-r--r--Master/texmf-dist/tex/latex/flowfram/flowfram.sty69
1 files changed, 51 insertions, 18 deletions
diff --git a/Master/texmf-dist/tex/latex/flowfram/flowfram.sty b/Master/texmf-dist/tex/latex/flowfram/flowfram.sty
index 68accc2af27..06a2a252751 100644
--- a/Master/texmf-dist/tex/latex/flowfram/flowfram.sty
+++ b/Master/texmf-dist/tex/latex/flowfram/flowfram.sty
@@ -27,7 +27,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{flowfram}[2005/07/23 v1.0]
+\ProvidesPackage{flowfram}[2005/11/24 v1.02]
\RequirePackage{ifthen}
\RequirePackage{keyval}
\RequirePackage{graphics}
@@ -64,6 +64,11 @@
\@ttb@rotatetrue
\DeclareOption{rotate}{\@ttb@rotatetrue}
\DeclareOption{norotate}{\@ttb@rotatefalse}
+\newcommand{\rotateframe}[2]{\if@ttb@rotate
+\rotatebox{#1}{#2}%
+\else
+#2\relax
+\fi}
\newif\if@ttb@num
\newif\if@ttb@title
\@ttb@numfalse
@@ -217,6 +222,7 @@
\expandafter\gdef\csname @ff@backcol@\romannumeral\c@maxflow\endcsname{{none}}
\expandafter\gdef\csname @ff@pages@\romannumeral\c@maxflow\endcsname{#1}
\expandafter\gdef\csname @ff@offset@\romannumeral\c@maxflow\endcsname{compute}
+\expandafter\gdef\csname @ff@angle@\romannumeral\c@maxflow\endcsname{0}%
\expandafter\gdef\csname @ff@margin@\romannumeral\c@maxflow\endcsname{right}
\ifnum\c@thisframe=0\relax
\ifthenelse{\equal{#1}{all}\TE@or\equal{#1}{odd}}{%
@@ -314,6 +320,8 @@ for flow frame \number\@colN}}{}%
Invalid value for key 'offset'}{%
'offset' can either be 'compute' (to compute it according
to certain pre-defined rules) or a length}}{}}
+\define@key{flowframe}{angle}{\def\ff@angle{#1}%
+}
\define@key{flowframe}{margin}{%
\ifthenelse{\equal{#1}{left} \or \equal{#1}{right}
\or \equal{#1}{inner} \or \equal{#1}{outer}}{%
@@ -363,7 +371,7 @@ boolean}{You can only specify the values 'true' or 'false'}}}
\def\ff@x{}\def\ff@y{}\def\ff@frametype{}\def\ff@col{}\def\ff@style{}%
\def\ff@txtcol{}\def\ff@clear{}\def\ff@offset{}\def\ff@pages{}%
\def\ff@label{}\def\ff@backcol{}\def\ff@evenx{}\def\ff@eveny{}%
-\def\ff@oddx{}\def\ff@oddy{}%
+\def\ff@oddx{}\def\ff@oddy{}\def\ff@angle{}%
\setkeys{flowframe}{#2}%
\ifthenelse{\equal{\ff@frame}{}}{}{%
\setboolean{columnframe\romannumeral#1}{\ff@frame}}%
@@ -415,6 +423,9 @@ boolean}{You can only specify the values 'true' or 'false'}}}
\ifthenelse{\equal{\ff@offset}{}}{}{%
\expandafter\xdef\csname @ff@offset@\romannumeral#1\endcsname
{\ff@offset}}%
+\ifthenelse{\equal{\ff@angle}{}}{}{%
+\expandafter\xdef\csname @ff@angle@\romannumeral#1\endcsname
+{\ff@angle}}%
\ifthenelse{\equal{\ff@clear}{}}{}{%
\PackageError{flowfram}%
{Key 'clear' not available for flow frames}{}}%
@@ -537,6 +548,8 @@ boolean}{You can only specify the values 'true' or 'false'}}}
\gdef\csname @sf@offset@\romannumeral\c@maxstatic\endcsname{%
compute}%
\expandafter
+\gdef\csname @sf@angle@\romannumeral\c@maxstatic\endcsname{0}%
+\expandafter
\def\csname @sf@frametype@\romannumeral\c@maxstatic\endcsname{%
fbox}%
\newboolean{@sf@clear@\romannumeral\c@maxstatic}%
@@ -613,7 +626,7 @@ id '#1'}{}\fi}
\newcommand{\@@setstaticframe}[2]{%
\expandafter\expandafter\expandafter
\@ff@getstaticpos\csname @sf@dim@\romannumeral#1\endcsname
-\def\ff@frame{}\edef\ff@width{\the\@ff@tmp@x}%
+\def\ff@frame{}\edef\ff@width{\the\@ff@tmp@x}\def\ff@angle{}%
\edef\ff@height{\the\@ff@tmp@y}\def\ff@style{}\def\ff@frametype{}%
\def\ff@x{}\def\ff@y{}\def\ff@col{}\def\ff@txtcol{}\def\ff@backcol{}%
\def\ff@clear{}\def\ff@margin{}\def\ff@offset{}\def\ff@pages{}%
@@ -669,6 +682,9 @@ id '#1'}{}\fi}
\ifthenelse{\equal{\ff@offset}{}}{}{%
\expandafter
\xdef\csname @sf@offset@\romannumeral#1\endcsname{\ff@offset}}%
+\ifthenelse{\equal{\ff@angle}{}}{}{%
+\expandafter
+\xdef\csname @sf@angle@\romannumeral#1\endcsname{\ff@angle}}%
\ifthenelse{\equal{\ff@pages}{}}{}{%
\expandafter
\xdef\csname @sf@pages@\romannumeral#1\endcsname{\ff@pages}}%
@@ -804,6 +820,8 @@ fbox}%
\gdef\csname @df@style@\romannumeral\c@maxdynamic\endcsname{relax}%
\expandafter
\gdef\csname @df@offset@\romannumeral\c@maxdynamic\endcsname{compute}%
+\expandafter
+\gdef\csname @df@angle@\romannumeral\c@maxdynamic\endcsname{0}%
\newboolean{@df@clear@\romannumeral\c@maxdynamic}%
\setboolean{@df@clear@\romannumeral\c@maxdynamic}{false}%
\@ifnextchar[{\@s@tdynamicframeid{\c@maxdynamic}}%
@@ -881,7 +899,8 @@ id '#1'}{}\fi}
\edef\ff@height{\the\@ff@tmp@y}\def\ff@style{}\def\ff@frametype{}%
\def\ff@x{}\def\ff@y{}\def\ff@col{}\def\ff@txtcol{}\def\ff@backcol{}%
\def\ff@clear{}\def\ff@margin{}\def\ff@offset{}\def\ff@pages{}%
-\def\ff@label{}\def\ff@evenx{}\def\ff@eveny{}\def\ff@oddx{}\def\ff@oddy{}%
+\def\ff@label{}\def\ff@evenx{}\def\ff@eveny{}%
+\def\ff@oddx{}\def\ff@oddy{}\def\ff@angle{}%
\setkeys{flowframe}{#2}%
\ifthenelse{\equal{\ff@frame}{}}{}{%
\setboolean{dynamicframe\romannumeral#1}{\ff@frame}}%
@@ -924,6 +943,9 @@ id '#1'}{}\fi}
\ifthenelse{\equal{\ff@offset}{}}{}{%
\expandafter
\xdef\csname @df@offset@\romannumeral#1\endcsname{\ff@offset}}%
+\ifthenelse{\equal{\ff@angle}{}}{}{%
+\expandafter
+\xdef\csname @df@angle@\romannumeral#1\endcsname{\ff@angle}}%
\ifthenelse{\equal{\ff@pages}{}}{}{%
\expandafter\xdef\csname @df@pages@\romannumeral#1\endcsname{%
\ff@pages}}%
@@ -1024,7 +1046,8 @@ but there are only
\csname colwidth\romannumeral\c@thisframe\endcsname}}
\newif\if@setfr@mes
\@setfr@mesfalse
-\newcommand{\setframes}{\ifnum\c@thisframe=0\relax
+\newcommand{\setframes}{%
+\ifnum\c@thisframe=0\relax
\PackageWarning{flowfram}{Can't find a flow frame on page 1.
\MessageBreak
Attempting to find the first page with a flow frame}%
@@ -1041,7 +1064,8 @@ Attempting to find the first page with a flow frame}%
\@setfr@mestrue
\edef\ff@txtcol{%
\csname @ff@txtcol@\romannumeral\c@thisframe\endcsname}%
-\@s@tfftextcol}
+\@s@tfftextcol
+}
\newcommand{\emulatetwocolumn}[1][]{%
\finishthispage
\setallflowframes{pages=none}%
@@ -1086,8 +1110,12 @@ Attempting to find the first page with a flow frame}%
\@onecolumn
\fi
\setframes
-\let\onecolumn\emulateonecolumn
-\let\twocolumn\emulatetwocolumn
+\renewcommand{\onecolumn}[1][]{\PackageWarning{flowfram}{%
+Ignoring \string\onecolumn\space found in document environment.
+Frames must be defined in the preamble}#1}%
+\renewcommand{\twocolumn}[1][]{\PackageWarning{flowfram}{%
+Ignoring \string\twocolumn\space found in document environment.
+Frames must be defined in the preamble}#1}%
}
\AtEndDocument{\finishthispage}
\newcommand{\@setcol}[1]{%
@@ -1289,7 +1317,7 @@ or text might not appear correctly}%
}
\newcount\c@ffrangenum
\newcommand{\@ff@getrange}[1]{%
-\expandafter\@ff@@getrange#1-\@nil\end}
+\expandafter\@ff@@getrange#1-\relax\end}
\def\@ff@@getrange#1#2\end{%
\ifx#1<%
\@ff@getrangeless#1#2\end
@@ -1301,24 +1329,25 @@ or text might not appear correctly}%
\fi
\fi
}
-\def\@ff@getrangeless<#1-\@nil\end{%
+\def\@ff@getrangeless<#1-\relax\end{%
\c@ffrangenum=#1\relax
\advance\c@ffrangenum by -1\relax
\def\@ff@numstart{0}%
\edef\@ff@numend{\number\c@ffrangenum}}
-\def\@ff@getrangegreater>#1-\@nil\end{%
+\def\@ff@getrangegreater>#1-\relax\end{%
\c@ffrangenum=#1\relax
\advance\c@ffrangenum by 1\relax
\edef\@ff@numstart{\number\c@ffrangenum}%
\def\@ff@numend{10000}}
\def\@@ff@getrange#1-#2\end{%
-\ifx#2\@nil
+\ifx\relax#2
\def\@ff@numstart{#1}\def\@ff@numend{#1}%
\else
-\def\@ff@numstart{#1}\@@@ff@getrange#2\end
+\def\@ff@numstart{#1}%
+\@@@ff@getrange#2\end
\fi
}
-\def\@@@ff@getrange#1-\@nil\end{%
+\def\@@@ff@getrange#1-\relax\end{%
\def\@ff@numend{#1}}
\newif\if@notthiscol
\newif\if@ff@nwpg
@@ -1386,6 +1415,7 @@ adding new one}%
\edef\ff@txtcol{\csname @ff@txtcol@\romannumeral#1\endcsname}%
\edef\ff@backcol{\csname @ff@backcol@\romannumeral#1\endcsname}%
\@ff@setoffset{#1}%
+\rotateframe{\csname @ff@angle@\romannumeral#1\endcsname}{
\ifthenelse{\boolean{columnframe\romannumeral#1}}{%
\@ff@fbox{\csname colwidth\romannumeral#1\endcsname}%
{\csname colheight\romannumeral#1\endcsname}{%
@@ -1395,7 +1425,7 @@ adding new one}%
\@ff@box{\csname colwidth\romannumeral#1\endcsname}%
{\csname colheight\romannumeral#1\endcsname}{%
\expandafter\box\csname column\romannumeral#1\endcsname}%
-}}
+}}}
\newcommand{\@docolbbox}[1]{%
\@ff@setoffset{#1}%
\def\ff@col{}\def\ff@txtcol{}%
@@ -1589,7 +1619,8 @@ adding new one}%
}{}%
}%
\raise\@ff@tmp@y
-\hb@xt@\z@{\expandafter\kern\@ff@tmp@x
+\hb@xt@\z@{%
+\expandafter\kern\@ff@tmp@x
\@fr@meifdraft{\@ff@box{\marginparwidth}%
{\csname colheight\romannumeral#1\endcsname}{}}%
{M:\number#1}\hss}\fi
@@ -1611,6 +1642,7 @@ adding new one}%
\@sf@setoffset{#1}%
\expandafter\expandafter\expandafter
\@ff@getstaticpos\csname @sf@dim@\romannumeral#1\endcsname
+\rotateframe{\csname @sf@angle@\romannumeral#1\endcsname}{%
\ifthenelse{\boolean{staticframe\romannumeral#1}}{%
\@ff@fbox{\@ff@tmp@x}{\@ff@tmp@y}{%
\expandafter\usebox\csname @staticframe@\romannumeral#1\endcsname}
@@ -1618,7 +1650,7 @@ adding new one}%
}{%
\@ff@box{\@ff@tmp@x}{\@ff@tmp@y}%
{\expandafter\usebox\csname @staticframe@\romannumeral#1\endcsname}%
-}}
+}}}
\newcommand{\@dostaticbbox}[1]{%
\edef\ff@col{}%
\@sf@setoffset{#1}%
@@ -1697,6 +1729,7 @@ adding new one}%
\@df@setoffset{#1}%
\expandafter\expandafter\expandafter
\@ff@getstaticpos\csname @df@dim@\romannumeral#1\endcsname
+\rotateframe{\csname @df@angle@\romannumeral#1\endcsname}{%
\ifthenelse{\boolean{dynamicframe\romannumeral#1}}{%
\@ff@fbox{\@ff@tmp@x}{\@ff@tmp@y}%
{\expandafter\expandafter\expandafter
@@ -1708,7 +1741,7 @@ adding new one}%
\expandafter\expandafter\expandafter
\parbox\csname @df@dim@\romannumeral#1\endcsname
{\csname \ff@style\endcsname{\ff@contents}}}%
-}}
+}}}
\newcommand{\@dodynamicbbox}[1]{%
\edef\ff@col{}%
\@df@setoffset{#1}%