diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/flowfram/flowfram.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/flowfram/flowfram.sty | 69 |
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}% |