summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/flowfram
diff options
context:
space:
mode:
authorReinhard Kotucha <reinhard.kotucha@web.de>2007-04-08 18:18:21 +0000
committerReinhard Kotucha <reinhard.kotucha@web.de>2007-04-08 18:18:21 +0000
commit2b0321dafd5d992f9fad9d473404b5108ddbc5c7 (patch)
tree21a9322d8d9ce642ecfb7f35e57313f8334fe297 /Master/texmf-dist/source/latex/flowfram
parentf25dd24f847d44201cbb435d7473ee114a876241 (diff)
update flowfram to v1.07
git-svn-id: svn://tug.org/texlive/trunk@4132 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/flowfram')
-rw-r--r--Master/texmf-dist/source/latex/flowfram/flowfram.dtx514
-rw-r--r--Master/texmf-dist/source/latex/flowfram/flowfram.ins4
2 files changed, 401 insertions, 117 deletions
diff --git a/Master/texmf-dist/source/latex/flowfram/flowfram.dtx b/Master/texmf-dist/source/latex/flowfram/flowfram.dtx
index 2cc5a42fe35..644416a095f 100644
--- a/Master/texmf-dist/source/latex/flowfram/flowfram.dtx
+++ b/Master/texmf-dist/source/latex/flowfram/flowfram.dtx
@@ -1,12 +1,12 @@
%\iffalse
-% flowfram.dtx generated using makedtx version 0.9b (c) Nicola Talbot
+% flowfram.dtx generated using makedtx version 0.91b (c) Nicola Talbot
% Command line args:
% -src "flowfram.sty\Z=>flowfram.sty"
% -doc "docstub.tex"
% -author "Nicola Talbot"
% -dir "source"
% flowfram
-% Created on 2005/11/24 14:42
+% Created on 2007/3/9 11:23
%\fi
%\iffalse
%<*package>
@@ -29,23 +29,36 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2005 Nicola Talbot, all rights reserved.
+% Copyright (C) 2007 Nicola Talbot, all rights reserved.
% \fi
% \iffalse
%<*driver>
\documentclass{ltxdoc}
-\CheckSum{7647}
+\CheckSum{8125}
\PageIndex
\usepackage{url}
+\usepackage[colorlinks,hyperindex=false,
+pdfauthor={Nicola L C Talbot},
+pdftitle={Documented Source Code for flowfram.sty}]{hyperref}
\usepackage[style=altlist,toc,number=none]{glossary}[2005/07/15]
+\MakeShortVerb"
+\DeleteShortVerb|
+
\newcommand{\sty}[1]{\textsf{#1}}
\newcommand{\env}[1]{\textsf{#1}}
\newcommand{\cmdname}[1]{\texttt{\symbol{92}#1}}
-\MakeShortVerb"
+\renewcommand{\usage}[1]{\textit{\hyperpage{#1}}}
+\renewcommand{\main}[1]{\hyperpage{#1}}
+\newcommand{\see}[2]{\emph{see} #1}
+\makeatletter
+\def\index@prologue{\section*{Index}
+\addcontentsline{toc}{section}{Index}}
+\makeatother
+
\storeglosentry{typeblock}{name=typeblock,description={The
area of the page where the main body of the text goes.
@@ -110,10 +123,10 @@ refer to the frame by label instead of by its IDN.}}
\end{document}
%</driver>
%\fi
-%\def\filedate{24th November 2005}
-%\def\fileversion{1.02}
+%\def\filedate{9th March 2007}
+%\def\fileversion{1.07}
%\def\filename{flowfram.dtx}
-%\def\docdate{24th November 2005}
+%\def\docdate{9th March 2007}
%
%\title{Documented Source Code for flowfram.sty v\fileversion}
%\author{Nicola L. C. Talbot}
@@ -131,14 +144,16 @@ refer to the frame by label instead of by its IDN.}}
%
%
%\section{The Code}
+%\iffalse
% \begin{macrocode}
%<*flowfram.sty>
% \end{macrocode}
+%\fi
% \subsection{Package Initialisation}
% Declare package, and identify it as a \LaTeXe\ package.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{flowfram}[2005/11/24 v1.02]
+\ProvidesPackage{flowfram}[2007/03/09 v1.07]
% \end{macrocode}
% Load packages needed by this package
% \begin{macrocode}
@@ -146,6 +161,7 @@ refer to the frame by label instead of by its IDN.}}
\RequirePackage{keyval}
\RequirePackage{graphics}
\RequirePackage{afterpage}
+\@ifundefined{@ldc@l@r}{\RequirePackage{color}}{}
% \end{macrocode}
% The colour of the \gls{bbox} borders when the draft
% option is specified is given by the commands:
@@ -322,10 +338,8 @@ refer to the frame by label instead of by its IDN.}}
% \begin{macrocode}
\@ifundefined{chapter}{}{%
\newcommand{\chapterfirstpagestyle}{plain}
-
\let\@ff@OLD@chapter\@chapter
\let\@ff@OLD@schapter\@schapter
-
\renewcommand{\@chapter}{%
\thispagestyle{\chapterfirstpagestyle}\@ff@OLD@chapter}
\renewcommand{\@schapter}{%
@@ -361,6 +375,12 @@ refer to the frame by label instead of by its IDN.}}
\newlength\@ff@tmp@x@even
\newlength\@ff@tmp@y
% \end{macrocode}
+% Define a length to govern paragraph indentation within
+% static and dynamic frames\DescribeMacro{\sdfparindent}.
+% This is 0pt by default.
+% \begin{macrocode}
+\newlength\sdfparindent
+% \end{macrocode}
% \subsection{Flow Frames}
% Set up default lengths. The gap between the text and the
% border is given by:\DescribeMacro{\flowframesep}
@@ -396,20 +416,20 @@ refer to the frame by label instead of by its IDN.}}
\usedframebreaktrue
{\parfillskip=0pt\pagebreak[#1]\parskip=0pt\par\noindent}}
% \end{macrocode}
-% The commands "\newpage", "\clearpage" and
+% The commands "\newpage" and
% "\pagebreak" can be used to move on to the next
% \gls{flow}, but to finish the entire page, use
% "\finishthispage".\DescribeMacro{\finishthispage}
% \begin{macrocode}
\newcommand{\finishthispage}{%
\@colN=\c@thisframe
-\clearpage
+\newpage
\whiledo{\@colN<\c@maxflow}{\advance\@colN by 1\relax
\@ff@chckifthispg{\c@page}{\@colN}%
\if@notthiscol\else
-\mbox{}\vfill\clearpage%
-\fi}
-}
+\mbox{}\newpage%
+\fi
+}}
% \end{macrocode}
% Modify the definition of "\cleardoublepage". This may
% or may not be defined so use "\def".
@@ -501,21 +521,24 @@ refer to the frame by label instead of by its IDN.}}
% \begin{macrocode}
\newcommand{\@n@wflowframe}{%
\global\advance\c@maxflow by 1\relax
-\expandafter\global\expandafter\newif\csname ifcolumnframe\romannumeral\c@maxflow\endcsname
+\expandafter\global\expandafter
+\newif\csname ifcolumnframe\romannumeral\c@maxflow\endcsname
\@ifstar\@snewflowframe\@newflowframe
}
% \end{macrocode}
% Starred version sets boolean flag to indicate a border
% \begin{macrocode}
\newcommand{\@snewflowframe}{%
-\expandafter\global\expandafter\let\csname ifcolumnframe\romannumeral\c@maxflow\endcsname\iftrue
+\expandafter\global\expandafter
+\let\csname ifcolumnframe\romannumeral\c@maxflow\endcsname\iftrue
\@@newflowframe}
% \end{macrocode}
% The unstarred version unsets boolean flag to indicate
% no border.
% \begin{macrocode}
\newcommand{\@newflowframe}{%
-\expandafter\global\expandafter\let\csname ifcolumnframe\romannumeral\c@maxflow\endcsname\iffalse
+\expandafter\global\expandafter
+\let\csname ifcolumnframe\romannumeral\c@maxflow\endcsname\iffalse
\@@newflowframe}
% \end{macrocode}
% Now get on with initialising the \gls{flow}. By default, it
@@ -523,27 +546,49 @@ refer to the frame by label instead of by its IDN.}}
% can override this.
% \begin{macrocode}
\newcommand{\@@newflowframe}[5][all]{%
-\expandafter\global\expandafter\newbox\csname column\romannumeral\c@maxflow\endcsname
-\expandafter\global\expandafter\newlength\csname colwidth\romannumeral\c@maxflow\endcsname
-\expandafter\global\expandafter\newlength\csname colheight\romannumeral\c@maxflow\endcsname
-\expandafter\global\expandafter\newlength\csname col@\romannumeral\c@maxflow @posx\endcsname
-\expandafter\global\expandafter\newlength\csname col@\romannumeral\c@maxflow @posy\endcsname
-\expandafter\global\expandafter\setlength\csname colwidth\romannumeral\c@maxflow\endcsname{#2}
-\expandafter\global\expandafter\setlength\csname colheight\romannumeral\c@maxflow\endcsname{#3}
-\expandafter\global\expandafter\setlength\csname col@\romannumeral\c@maxflow @posx\endcsname{#4}
-\expandafter\global\expandafter\setlength\csname col@\romannumeral\c@maxflow @posy\endcsname{#5}
-\expandafter\global\expandafter\newlength\csname col@\romannumeral\c@maxflow @evenx\endcsname
-\expandafter\global\expandafter\newlength\csname col@\romannumeral\c@maxflow @eveny\endcsname
-\expandafter\global\expandafter\setlength\csname col@\romannumeral\c@maxflow @evenx\endcsname{#4}
-\expandafter\global\expandafter\setlength\csname col@\romannumeral\c@maxflow @eveny\endcsname{#5}
-\expandafter\gdef\csname @ff@frametype@\romannumeral\c@maxflow\endcsname{fbox}%
-\expandafter\gdef\csname @ff@col@\romannumeral\c@maxflow\endcsname{\flowframecol}
-\expandafter\gdef\csname @ff@txtcol@\romannumeral\c@maxflow\endcsname{\flowframetextcol}
-\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}
+\expandafter\global\expandafter
+\newbox\csname column\romannumeral\c@maxflow\endcsname
+\expandafter\global\expandafter
+\newlength\csname colwidth\romannumeral\c@maxflow\endcsname
+\expandafter\global\expandafter
+\newlength\csname colheight\romannumeral\c@maxflow\endcsname
+\expandafter\global\expandafter
+\newlength\csname col@\romannumeral\c@maxflow @posx\endcsname
+\expandafter\global\expandafter
+\newlength\csname col@\romannumeral\c@maxflow @posy\endcsname
+\expandafter\global\expandafter
+\setlength\csname colwidth\romannumeral\c@maxflow\endcsname{#2}
+\expandafter\global\expandafter
+\setlength\csname colheight\romannumeral\c@maxflow\endcsname{#3}
+\expandafter\global\expandafter
+\setlength\csname col@\romannumeral\c@maxflow @posx\endcsname{#4}
+\expandafter\global\expandafter
+\setlength\csname col@\romannumeral\c@maxflow @posy\endcsname{#5}
+\expandafter\global\expandafter
+\newlength\csname col@\romannumeral\c@maxflow @evenx\endcsname
+\expandafter\global\expandafter
+\newlength\csname col@\romannumeral\c@maxflow @eveny\endcsname
+\expandafter\global\expandafter
+\setlength\csname col@\romannumeral\c@maxflow @evenx\endcsname{#4}
+\expandafter\global\expandafter
+\setlength\csname col@\romannumeral\c@maxflow @eveny\endcsname{#5}
+\expandafter
+\gdef\csname @ff@frametype@\romannumeral\c@maxflow\endcsname{fbox}%
+\expandafter
+\gdef\csname @ff@col@\romannumeral\c@maxflow\endcsname{\flowframecol}
+\expandafter
+\gdef\csname @ff@txtcol@\romannumeral\c@maxflow\endcsname{%
+\flowframetextcol}
+\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}}{%
\c@thisframe=\c@maxflow
@@ -562,7 +607,8 @@ refer to the frame by label instead of by its IDN.}}
\fi
}}}%
\fi
-\@ifnextchar[{\@s@tflowframeid{\c@maxflow}}{\@s@tflowframeid{\c@maxflow}[\number\c@maxflow]}}
+\@ifnextchar[{\@s@tflowframeid{\c@maxflow}}{%
+\@s@tflowframeid{\c@maxflow}[\number\c@maxflow]}}
% \end{macrocode}
% If square brackets occur after "\newflowframe", take
% the contents to be the label, otherwise the label will be
@@ -571,7 +617,8 @@ refer to the frame by label instead of by its IDN.}}
\def\@s@tflowframeid#1[#2]{%
\edef\ff@label{#2}%
\@ff@checkuniqueidl{#1}{\ff@label}%
-\expandafter\xdef\csname @col@id@\romannumeral#1\endcsname{\ff@label}%
+\expandafter
+\xdef\csname @col@id@\romannumeral#1\endcsname{\ff@label}%
}
% \end{macrocode}
% Check \IDL{} "#2" for \gls{flow} "#1" is unique
@@ -582,7 +629,8 @@ refer to the frame by label instead of by its IDN.}}
\advance\@colN by 1\relax
\ifnum\@colN=#1\relax
\else
-\ifthenelse{\equal{#2}{\csname @col@id@\romannumeral\@colN\endcsname}}{%
+\ifthenelse{\equal{#2}{%
+\csname @col@id@\romannumeral\@colN\endcsname}}{%
\PackageError{flowfram}{Flow frame IDL '#2' already defined}{%
You can't assign this label, as it is already defined
for flow frame \number\@colN}}{}%
@@ -749,6 +797,18 @@ boolean}{You can only specify the values 'true' or 'false'}}}
\PackageError{flowfram}{Missing value for 'style' key}{}}{}%
\ifthenelse{\equal{#1}{none}}{\def\ff@style{relax}}{\def\ff@style{#1}}}
% \end{macrocode}
+% This key is only for \gls{static}s and \gls{dynamic}s.
+% \begin{macrocode}
+\define@key{flowframe}{shape}{\def\ff@shape{#1}%
+}
+% \end{macrocode}
+% This key is only for \gls{static}s and \gls{dynamic}s.
+% \begin{macrocode}
+\define@key{flowframe}{valign}{\ifthenelse{\equal{#1}{c} \or
+\equal{#1}{t} \or \equal{#1}{b}}{\def\ff@valign{#1}}{%
+\PackageError{flowfram}{Invalid value for 'valign' key}{You
+may only specify 'c', 't' or 'b'}}}
+% \end{macrocode}
% Provide a command to change the settings for all flow
% frames. This just iterates through all the \gls{flow}s,
% and sets each one in turn.
@@ -809,10 +869,11 @@ boolean}{You can only specify the values 'true' or 'false'}}}
% \begin{macrocode}
\newcommand{\@@setflowframe}[2]{%
\def\ff@frame{}\def\ff@width{}\def\ff@height{}\def\ff@margin{}%
-\def\ff@x{}\def\ff@y{}\def\ff@frametype{}\def\ff@col{}\def\ff@style{}%
+\def\ff@x{}\def\ff@y{}\def\ff@frametype{}\def\ff@col{}%
+\def\ff@valign{}\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@angle{}%
+\def\ff@oddx{}\def\ff@oddy{}\def\ff@angle{}\def\ff@shape{\empty}%
\setkeys{flowframe}{#2}%
\ifthenelse{\equal{\ff@frame}{}}{}{%
\setboolean{columnframe\romannumeral#1}{\ff@frame}}%
@@ -873,6 +934,14 @@ boolean}{You can only specify the values 'true' or 'false'}}}
\ifthenelse{\equal{\ff@style}{}}{}{%
\PackageError{flowfram}%
{Key 'style' not available for flow frames}{}}%
+\if\ff@shape\empty
+\else
+\PackageError{flowfram}%
+{Key 'shape' not available for flow frames}{}%
+\fi
+\ifthenelse{\equal{\ff@valign}{}}{}{%
+\PackageError{flowfram}%
+{Key 'valign' not available for flow frames}{}}%
}
% \end{macrocode}
%\DescribeMacro{\ffswapoddeven}
@@ -1058,6 +1127,8 @@ compute}%
\expandafter
\gdef\csname @sf@angle@\romannumeral\c@maxstatic\endcsname{0}%
\expandafter
+\gdef\csname @sf@shape@\romannumeral\c@maxstatic\endcsname{\relax}%
+\expandafter
\def\csname @sf@frametype@\romannumeral\c@maxstatic\endcsname{%
fbox}%
\newboolean{@sf@clear@\romannumeral\c@maxstatic}%
@@ -1184,9 +1255,11 @@ id '#1'}{}\fi}
\@ff@getstaticpos\csname @sf@dim@\romannumeral#1\endcsname
\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@x{}\def\ff@y{}\def\ff@col{}\def\ff@txtcol{}%
+\def\ff@backcol{}\def\ff@shape{0}%
\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{}%
\setkeys{flowframe}{#2}%
\ifthenelse{\equal{\ff@frame}{}}{}{%
\setboolean{staticframe\romannumeral#1}{\ff@frame}}%
@@ -1222,7 +1295,7 @@ id '#1'}{}\fi}
{\ff@oddy}}%
\expandafter
\xdef\csname @sf@dim@\romannumeral#1\endcsname{%
-[c][\ff@height][c]{\ff@width}}%
+[c][\ff@height][\ff@valign]{\ff@width}}%
\ifthenelse{\equal{\ff@frametype}{}}{}{%
\expandafter
\xdef\csname @sf@frametype@\romannumeral#1\endcsname{%
@@ -1241,6 +1314,11 @@ id '#1'}{}\fi}
\ifthenelse{\equal{\ff@angle}{}}{}{%
\expandafter
\xdef\csname @sf@angle@\romannumeral#1\endcsname{\ff@angle}}%
+\if0\ff@shape
+\else
+\expandafter\global\expandafter
+\let\csname @sf@shape@\romannumeral#1\endcsname\ff@shape
+\fi
\ifthenelse{\equal{\ff@pages}{}}{}{%
\expandafter
\xdef\csname @sf@pages@\romannumeral#1\endcsname{\ff@pages}}%
@@ -1254,6 +1332,107 @@ static frames}{Static frames don't have marginal notes}}%
static frames}{}}%
}
% \end{macrocode}
+% Simulate paragraph break inside "\shapepar"
+% \begin{macrocode}
+%\newcommand*{\simpar}{\hfil\vadjust{\vskip\parskip}\break\indent}
+\newcommand*{\simpar}{\hfill\\\indent\mbox{}}
+% \end{macrocode}
+% Provide means to allow parshape to be carried over a paragraph
+% break.
+% \begin{macrocode}
+\let\orgpar\par
+\newcommand{\ffpshpar}{\edef\next{\hangafter=\the\hangafter
+\hangindent=\the\hangindent}\orgpar\next
+\edef\next{\prevgraf=\the\prevgraf}\@ff@parshape\indent\mbox{}\next}
+% \end{macrocode}
+% Provide a means to have section headings within "\parshape".
+% \begin{macrocode}
+\def\@ff@parshape{\parshape=0}
+
+\newcommand{\@ff@sectionhead}[1]{%
+\def\ff@sechead{#1}%
+\ffpshpar
+\@ifstar{\@s@ff@heading}{\@dblarg\@ff@heading}}
+
+\def\@s@ff@heading#1{%
+\@ifundefined{@ff@old\ff@sechead}{\PackageError{flowfram}{Unknown
+heading command '\ff@sechead'}{}}{%
+\begingroup
+\edef\next{\hangafter=\the\hangafter
+\hangindent=\the\hangindent}\orgpar\next
+\let\par=\orgpar
+\edef\next{\prevgraf=\the\prevgraf}%
+\csname @ff@old\ff@sechead\endcsname*{\@ff@parshape\next
+#1}%
+\xdef\next{\@ff@parshape
+\prevgraf=\the\prevgraf}%
+\endgroup
+}%
+\mbox{}\next\let\next\undefined}
+
+\def\@ff@heading[#1]#2{%
+\@ifundefined{@ff@old\ff@sechead}{\PackageError{flowfram}{Unknown
+heading command '\ff@sechead'}{}}{%
+\begingroup
+\edef\next{\hangafter=\the\hangafter
+\hangindent=\the\hangindent}\orgpar\next
+\let\par=\orgpar
+\edef\next{\prevgraf=\the\prevgraf}%
+\csname @ff@old\ff@sechead\endcsname[#1]{\@ff@parshape\next
+#2}%
+\xdef\next{\@ff@parshape
+\prevgraf=\the\prevgraf}%
+\endgroup}%
+\mbox{}\next\let\next\undefined}
+% \end{macrocode}
+% Define command to switch to adjusted section headings:
+% \begin{macrocode}
+\newcommand*{\@ff@setsecthead}{%
+\let\@ff@oldsection=\section
+\let\@ff@oldsubsection=\subsection
+\let\@ff@oldsubsubsection=\subsubsection
+\let\@ff@oldparagraph=\paragraph
+\let\@ff@oldsubparagraph=\subparagraph
+\def\section{\@ff@sectionhead{section}}%
+\def\subsection{\@ff@sectionhead{subsection}}%
+\def\subsubsection{\@ff@sectionhead{subsubsection}}%
+\def\paragraph{\@ff@sectionhead{paragraph}}%
+\def\subparagraph{\@ff@sectionhead{subparagraph}}%
+}
+% \end{macrocode}
+% Determine what shape command is being used:
+% \begin{macrocode}
+\def\@ff@getshape#1#2\relax{%
+\ifx#1\parshape
+\def\ff@shape{1}%
+\else
+\ifx#1\shapepar
+\def\ff@shape{2}%
+\else
+\ifx#1\relax
+\def\ff@shape{0}%
+\else
+\PackageError{flowfram}{Unknown shape \string#1}{}%
+\def\ff@shape{2}%
+\fi
+\fi
+\fi}
+% \end{macrocode}
+% Disable sectioning commands
+% \begin{macrocode}
+\newcommand*{\@ff@disablesec}{%
+\def\section{\PackageError{flowfram}{You can't have
+sectioning commands within a \string\shapepar}{}}%
+\def\subsection{\PackageError{flowfram}{You can't have
+sectioning commands within a \string\shapepar}{}}%
+\def\subsubsection{\PackageError{flowfram}{You can't have
+sectioning commands within a \string\shapepar}{}}%
+\def\paragraph{\PackageError{flowfram}{You can't have
+sectioning commands within a \string\shapepar}{}}%
+\def\subparagraph{\PackageError{flowfram}{You can't have
+sectioning commands within a \string\shapepar}{}}%
+}
+% \end{macrocode}
% Set the contents of the \gls{static} given by its \IDN{}.
% Synatax: "\begin{staticcontents}{n}".
%\DescribeEnv{staticcontents}
@@ -1262,15 +1441,45 @@ static frames}{}}%
\newenvironment{staticcontents}[1]{%
\@ifundefined{@staticframe@\romannumeral#1}{%
\PackageError{flowfram}{Static frame '#1' not defined}{}}{}%
+\expandafter\let\expandafter\@ff@parshape\csname @sf@shape@\romannumeral#1\endcsname
+\expandafter\@ff@getshape\@ff@parshape\relax
+\ifcase\ff@shape
+% no shape
\edef\@sf@mpg{%
\noexpand
-\begin{minipage}\csname @sf@dim@\romannumeral#1\endcsname}%
+\begin{minipage}\csname @sf@dim@\romannumeral#1\endcsname
+\noexpand\begingroup
+\noexpand\let\noexpand\orgpar=\noexpand\par
+}%
+\or
+% \parshape
+\edef\@sf@mpg{%
+\noexpand
+\begin{minipage}\csname @sf@dim@\romannumeral#1\endcsname
+\@ff@parshape
+\noexpand\begingroup
+\noexpand\let\noexpand\orgpar=\noexpand\par
+\noexpand\let\noexpand\par=\noexpand\ffpshpar
+\noexpand\@ff@setsecthead
+}%
+\or
+% \shapepar
+\edef\@sf@mpg{%
+\noexpand
+\begin{minipage}\csname @sf@dim@\romannumeral#1\endcsname
+\noexpand\begingroup
+\noexpand\@ff@disablesec
+\noexpand\@ff@parshape
+}%
+\fi
\edef\@sf@thisframe{\csname @staticframe@\romannumeral#1\endcsname}%
\begin{lrbox}{\staticframe}%
\edef\ff@txtcol{\csname @sf@txtcol@\romannumeral#1\endcsname}%
-\@s@tfftextcol
+\@s@tfftextcol\noindent
\@sf@mpg
-}{\end{minipage}\end{lrbox}%
+\setlength\parindent\sdfparindent
+}{\ifnum\ff@shape=2\par
+\else\orgpar\fi\endgroup\end{minipage}\end{lrbox}%
\expandafter\global\expandafter\sbox\@sf@thisframe{%
\usebox\staticframe}\ignorespaces
}
@@ -1431,6 +1640,8 @@ fbox}%
\gdef\csname @df@offset@\romannumeral\c@maxdynamic\endcsname{compute}%
\expandafter
\gdef\csname @df@angle@\romannumeral\c@maxdynamic\endcsname{0}%
+\expandafter
+\gdef\csname @df@shape@\romannumeral\c@maxdynamic\endcsname{\relax}%
\newboolean{@df@clear@\romannumeral\c@maxdynamic}%
\setboolean{@df@clear@\romannumeral\c@maxdynamic}{false}%
\@ifnextchar[{\@s@tdynamicframeid{\c@maxdynamic}}%
@@ -1548,13 +1759,14 @@ id '#1'}{}\fi}
% Change the setting for the \gls{dynamic} given by its \IDN{}.
% \begin{macrocode}
\newcommand{\@@setdynamicframe}[2]{%
-\expandafter\expandafter\expandafter\@ff@getstaticpos\csname @df@dim@\romannumeral#1\endcsname
+\expandafter\expandafter\expandafter
+\@ff@getstaticpos\csname @df@dim@\romannumeral#1\endcsname
\def\ff@frame{}\edef\ff@width{\the\@ff@tmp@x}%
\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@angle{}%
+\def\ff@oddx{}\def\ff@oddy{}\def\ff@angle{}\def\ff@shape{0}%
\setkeys{flowframe}{#2}%
\ifthenelse{\equal{\ff@frame}{}}{}{%
\setboolean{dynamicframe\romannumeral#1}{\ff@frame}}%
@@ -1581,7 +1793,7 @@ id '#1'}{}\fi}
\expandafter\global\expandafter\setlength
\csname @df@\romannumeral#1@posy\endcsname{\ff@oddy}}%
\expandafter\xdef\csname @df@dim@\romannumeral#1\endcsname{%
-[c][\ff@height][t]{\ff@width}}%
+[c][\ff@height][\ff@valign]{\ff@width}}%
\ifthenelse{\equal{\ff@label}{}}{}{%
\@s@tdynamicframeid{#1}[\ff@label]}
\ifthenelse{\equal{\ff@frametype}{}}{}{%
@@ -1600,6 +1812,11 @@ id '#1'}{}\fi}
\ifthenelse{\equal{\ff@angle}{}}{}{%
\expandafter
\xdef\csname @df@angle@\romannumeral#1\endcsname{\ff@angle}}%
+\if0\ff@shape
+\else
+\expandafter\global\expandafter
+\let\csname @df@shape@\romannumeral#1\endcsname\ff@shape
+\fi
\ifthenelse{\equal{\ff@pages}{}}{}{%
\expandafter\xdef\csname @df@pages@\romannumeral#1\endcsname{%
\ff@pages}}%
@@ -1622,14 +1839,14 @@ frames}{dynamic frames don't have marginal notes}}%
% \begin{macrocode}
\newcommand{\@@dynamicframeswapcoords}[1]{%
\setlength{\@ff@tmp@x}%
-{\csname @df@\romannumeral#1@evenx\endcsname}
+{\csname @df@\romannumeral#1@evenx\endcsname}%
\expandafter\setlength
\csname @df@\romannumeral#1@evenx\endcsname
{\csname @df@\romannumeral#1@posx\endcsname}%
\expandafter\setlength
\csname @df@\romannumeral#1@posx\endcsname{\@ff@tmp@x}%
\setlength{\@ff@tmp@y}%
-{\csname @df@\romannumeral#1@eveny\endcsname}
+{\csname @df@\romannumeral#1@eveny\endcsname}%
\expandafter\setlength
\csname @df@\romannumeral#1@eveny\endcsname
{\csname @df@\romannumeral#1@posy\endcsname}%
@@ -1695,7 +1912,7 @@ frames}{dynamic frames don't have marginal notes}}%
% \begin{macrocode}
\newcommand{\@setdynamiccontents}[2]{%
\ifnum#1>\c@maxdynamic
-\PackageError{flowfram}{Dynamic frame \number#1 does not exist}{%
+\PackageError{flowfram}{Dynamic frame \number#1\ does not exist}{%
You have specified dynamic frame number \number#1, but there are
only \number\c@maxdynamic\space dynamic frames currently defined}%
\else
@@ -1731,9 +1948,10 @@ but there are only
% \end{macrocode}
% Append "#2" onto the end of "#1".
% \begin{macrocode}
-\toksdef\ta=0 \toksdef\tb=2
-\long\def\@ff@addtolist#1\entry#2{\ta={{#2}}\tb=\expandafter{#1}%
-\xdef#1{\the\tb\the\ta}}
+\toksdef\flf@ta=0 \toksdef\flf@tb=2
+\long\def\@ff@addtolist#1\entry#2{\flf@ta={{#2}}%
+\flf@tb=\expandafter{#1}%
+\xdef#1{\the\flf@tb\the\flf@ta}}
% \end{macrocode}
%\subsection{Initialise Flow Frames}
%\DescribeMacro{\setinitialframe}
@@ -1763,7 +1981,7 @@ Attempting to find the first page with a flow frame}%
\advance\c@curpg by -1\relax
\whiledo{\c@curpg>0}{\advance\c@curpg by -1\relax
\setbox\@outputbox\vbox{\hbox to \textwidth{\@ff@do@allframes}}%
-\@outputpage}
+\@outputpage}%
\c@thisframe=\@nxtcol
\fi
\@setcol{\c@thisframe}\relax
@@ -1781,13 +1999,13 @@ Attempting to find the first page with a flow frame}%
\finishthispage
\setallflowframes{pages=none}%
\settoheight{\@ff@staticH}{#1}%
-\settodepth{\@ff@tmp@y}{#1}
+\settodepth{\@ff@tmp@y}{#1}%
\addtolength{\@ff@staticH}{\@ff@tmp@y}%
-\ifdim\@ff@staticH>0pt
-\twocolumnStop[\c@page]{\@ff@staticH}
+\ifdim\@ff@staticH>0pt\relax
+\twocolumnStop[\c@page]{\@ff@staticH}%
\c@thisframe=\c@maxflow
\advance\c@thisframe by -1\relax
-\@twocolumn[>\c@page]
+\@twocolumn[>\c@page]%
\setstaticcontents{\c@maxstatic}{#1}%
\else
\@twocolumn
@@ -1805,13 +2023,13 @@ Attempting to find the first page with a flow frame}%
\finishthispage
\setallflowframes{pages=none}%
\settoheight{\@ff@staticH}{#1}%
-\settodepth{\@ff@tmp@y}{#1}
+\settodepth{\@ff@tmp@y}{#1}%
\addtolength{\@ff@staticH}{\@ff@tmp@y}%
-\ifdim\@ff@staticH>0pt
-\onecolumnStop[\c@page]{\@ff@staticH}
+\ifdim\@ff@staticH>0pt\relax
+\onecolumnStop[\c@page]{\@ff@staticH}%
\c@thisframe=\c@maxflow
\advance\c@thisframe by -1\relax
-\@onecolumn[>\c@page]
+\@onecolumn[>\c@page]%
\setstaticcontents{\c@maxstatic}{#1}%
\else
\@twocolumn
@@ -1842,14 +2060,14 @@ Frames must be defined in the preamble}#1}%
% page, need to finish off to ensure the final page is
% shipped out, otherwise the text on the last page will be lost.
% \begin{macrocode}
-\AtEndDocument{\finishthispage}
+%\AtEndDocument{\finishthispage}
% \end{macrocode}
%\subsection{Output Routine}
% Set up the output box so it has the correct dimensions for
% specified \gls{flow}. This is used by the output routine.
% \begin{macrocode}
\newcommand{\@setcol}[1]{%
-\ifnum\c@maxflow<#1
+\ifnum\c@maxflow<#1\relax
\PackageError{flowfram}{Can't set frame '\number#1', doesn't
exist}{}%
\else
@@ -2009,11 +2227,15 @@ or text might not appear correctly}%
\renewcommand{\@dothefoot}{}%
\renewcommand{\@dodynamicthehead}{%
\@dynamicframeid{header}%
-\expandafter\def\csname @dynamicframe@\romannumeral\ff@id\endcsname{\vfill\@thehead\vfill}
+\expandafter
+\def\csname @dynamicframe@\romannumeral\ff@id\endcsname{%
+\vfill\@thehead\vfill}%
}%
\renewcommand{\@dodynamicthefoot}{%
\@dynamicframeid{footer}%
-\expandafter\def\csname @dynamicframe@\romannumeral\ff@id\endcsname{\vfill\@thefoot\vfill}
+\expandafter
+\def\csname @dynamicframe@\romannumeral\ff@id\endcsname{%
+\vfill\@thefoot\vfill}%
}%
}
% \end{macrocode}
@@ -2079,18 +2301,31 @@ or text might not appear correctly}%
\newif\if@ff@moreframes
\newcommand{\@ff@checkifmoreframes}{%
\@ff@moreframesfalse
-\@colN=0\relax
+\@colN=\c@thisframe
\whiledo{\@colN<\c@maxflow}{%
\advance\@colN by 1\relax
\edef\ff@pages{\csname @ff@pages@\romannumeral\@colN\endcsname}%
-\@ff@checkpages{\ff@pages}}}
+\@ff@checkpages{\ff@pages}%
+}%
+\if@ff@moreframes
+\else
+\@ff@tmpN=\c@page
+\advance\@ff@tmpN by 1\relax
+\@colN=0\relax
+\whiledo{\@colN<\c@thisframe}{%
+\advance\@colN by 1\relax
+\edef\ff@pages{\csname @ff@pages@\romannumeral\@colN\endcsname}%
+\@ff@checkpages[\@ff@tmpN]{\ff@pages}%
+}%
+\fi
+}
% \end{macrocode}
% Check to see if the current page lies in the \gls{pglist}
% given by "#1".
% \begin{macrocode}
-\newcommand{\@ff@checkpages}[1]{%
-\@for \@ff@pp:=#1\do{%
-\@ff@checkthispage{\@ff@pp}}}
+\newcommand{\@ff@checkpages}[2][\c@page]{%
+\@for\@ff@pp:=#2\do{%
+\@ff@checkthispage{#1}{\@ff@pp}}}
% \end{macrocode}
% Check to see if the current page lies in the \gls{pgrange}
% given by "#1". If the \gls{pgrange} is specified by
@@ -2099,11 +2334,11 @@ or text might not appear correctly}%
% lies within the number range. If the \gls{pgrange} is "none",
% ignore it.
% \begin{macrocode}
-\newcommand{\@ff@checkthispage}[1]{%
-\ifthenelse{\equal{#1}{all}\or\equal{#1}{even}\or\equal{#1}{odd}}{%
+\newcommand{\@ff@checkthispage}[2]{%
+\ifthenelse{\equal{#2}{all}\or\equal{#2}{even}\or\equal{#2}{odd}}{%
\@ff@moreframestrue}{%
-\ifthenelse{\equal{#1}{none}}{}{%
-\@ff@checknumrange{#1}}}}
+\ifthenelse{\equal{#2}{none}}{}{%
+\@ff@checknumrange{#1}{#2}}}}
% \end{macrocode}
% The number range could be a single number, a closed range
% (e.g.\ "2-6") or an open range (e,g.\ "<4" or ">10").
@@ -2112,12 +2347,15 @@ or text might not appear correctly}%
% If the current page is less than or equal to the maximum,
% there are still more \gls{flow}s available.
% \begin{macrocode}
-\newcommand{\@ff@checknumrange}[1]{%
+\newcommand{\@ff@checknumrange}[2]{%
\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{#1}%
-\ifnum\@ff@numend>\c@page
+\@ff@getrange{#2}%
+\ifnum\@ff@numend>#1\relax
\@ff@moreframestrue
\else
+\ifnum\@ff@numend=#1\relax
+\@ff@moreframestrue
+\fi
\fi
}
% \end{macrocode}
@@ -2179,7 +2417,7 @@ or text might not appear correctly}%
% value, otherwise it is a range.
% \begin{macrocode}
\def\@@ff@getrange#1-#2\end{%
-\ifx\relax#2
+\ifx\relax#2\relax
\def\@ff@numstart{#1}\def\@ff@numend{#1}%
\else
\def\@ff@numstart{#1}%
@@ -2214,9 +2452,12 @@ adding new one}%
\@colN=#1\relax
\c@curpg=\c@page
\loop
-\ifnum\@colN=\c@maxflow\@colN=1\@ff@nwpgtrue
-\advance\c@curpg by 1\relax
-\else\advance\@colN by 1\fi
+\ifnum\@colN=\c@maxflow
+ \@colN=1\@ff@nwpgtrue
+ \advance\c@curpg by 1\relax
+\else
+ \advance\@colN by 1\relax
+\fi
\@ff@chckifthispg{\c@curpg}{\@colN}%
\if@notthiscol
\repeat
@@ -2290,7 +2531,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}{
+\rotateframe{\csname @ff@angle@\romannumeral#1\endcsname}{%
\ifthenelse{\boolean{columnframe\romannumeral#1}}{%
\@ff@fbox{\csname colwidth\romannumeral#1\endcsname}%
{\csname colheight\romannumeral#1\endcsname}{%
@@ -2570,7 +2811,8 @@ adding new one}%
% specified in the form "[c][height][?]{width}"
% \begin{macrocode}
\def\@ff@getstaticpos[#1][#2][#3]#4{\@ff@tmp@x=#4\relax
-\@ff@tmp@y=#2}
+\@ff@tmp@y=#2\relax
+\def\ff@valign{#3}}
% \end{macrocode}
% Display the savebox associated with \gls{static} "#1"
% \begin{macrocode}
@@ -2677,6 +2919,43 @@ adding new one}%
\expandafter\global\expandafter
\gdef\csname @dynamicframe@\romannumeral\@colN\endcsname{}}{}}}
% \end{macrocode}
+% Display contents of dynamic box (contents stored in
+% "\ff@contents", style given by "\ff@style"):
+% \begin{macrocode}
+\newcommand{\@dodfparbox}[1]{%
+\expandafter\let\expandafter
+\@ff@parshape\csname @df@shape@\romannumeral#1\endcsname
+\expandafter\@ff@getshape\@ff@parshape\relax
+\ifcase\ff@shape
+% no shape
+\expandafter\expandafter\expandafter
+\parbox\csname @df@dim@\romannumeral#1\endcsname
+{%
+\setlength\parindent\sdfparindent
+\csname\ff@style\endcsname{\ff@contents}}%
+\or
+% \parshape
+\expandafter\expandafter\expandafter
+\parbox\csname @df@dim@\romannumeral#1\endcsname
+{%
+\setlength\parindent\sdfparindent
+\csname\ff@style\endcsname{{%
+\let\oldpar=\par
+\let\par=\ffpshpar
+\@ff@setsecthead
+\@ff@parshape
+\ff@contents\oldpar}}}%
+\or
+% \shapepar
+\expandafter\expandafter\expandafter
+\parbox\csname @df@dim@\romannumeral#1\endcsname
+{%
+\setlength\parindent\sdfparindent
+\csname\ff@style\endcsname{{\@ff@disablesec\@ff@parshape
+\ff@contents\par}}}%
+\fi
+}
+% \end{macrocode}
% Typeset the dynamic box with its associated border.
% \begin{macrocode}
\newcommand{\@dodynamicbox}[1]{%
@@ -2693,15 +2972,11 @@ adding new one}%
\rotateframe{\csname @df@angle@\romannumeral#1\endcsname}{%
\ifthenelse{\boolean{dynamicframe\romannumeral#1}}{%
\@ff@fbox{\@ff@tmp@x}{\@ff@tmp@y}%
-{\expandafter\expandafter\expandafter
-\parbox\csname @df@dim@\romannumeral#1\endcsname
-{\csname\ff@style\endcsname{\ff@contents}}}%
+{\@dodfparbox{#1}}%
{\csname\ff@frametype\endcsname}%
}{%
\@ff@box{\@ff@tmp@x}{\@ff@tmp@y}{%
-\expandafter\expandafter\expandafter
-\parbox\csname @df@dim@\romannumeral#1\endcsname
-{\csname \ff@style\endcsname{\ff@contents}}}%
+\@dodfparbox{#1}}%
}}}
% \end{macrocode}
% Now for the \gls{bbox}:
@@ -2854,14 +3129,18 @@ adding new one}%
% \begin{macrocode}
\newlength\ffevenoffset
\newcommand{\@ff@do@allframes}{%
+\ffevenoffset=0pt\relax
\if@twoside
\ifodd\c@page
\else
-\ffevenoffset=-\oddsidemargin
-\advance\ffevenoffset by \evensidemargin
-\kern\ffevenoffset
+\ffevenoffset=-\oddsidemargin\relax
+\advance\ffevenoffset by \evensidemargin\relax
+\kern\ffevenoffset\relax
\fi
\fi
+\setlength{\@ff@tmp@x}{\textwidth}%
+\advance\@ff@tmp@x by -\ffevenoffset\relax
+\makebox[\@ff@tmp@x][l]{%
\@s@tfr@mes{%
\@ff@doallstatics
\@@doheader
@@ -2879,7 +3158,7 @@ adding new one}%
\ifshowmargins
\@ff@drawmargins
\fi
-}}
+}}}
% \end{macrocode}
% This was modified from the output routine for standard
% two column format. After "\@g@tnextcol", the register
@@ -2899,7 +3178,7 @@ adding new one}%
\@setcolbox\c@thisframe
\if@specialpage
\global\@specialpagefalse
- \@nameuse{ps@\@specialstyle}
+ \@nameuse{ps@\@specialstyle}\relax
\fi
\if@twoside
\ifodd\count\z@
@@ -3075,7 +3354,7 @@ adding new one}%
\ifcase#2
\PackageError{flowfram}{%
You have requested 0 flowframes!}{%
-It does not make much sense to ask to create 0 flow frames}
+It does not make much sense to ask to create 0 flow frames}%
\or
\onecolumninarea[#1]{#3}{#4}{#5}{#6}%
\or
@@ -3655,7 +3934,7 @@ which really doesn't make sense}%
\if@twoside
\computeleftedgeeven{\@ff@tmp@x@even}%
\else
-\setlength{\@ff@tmp@x@even}{\@ff@tmp@x}
+\setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
\fi
\computebottomedge{\@ff@tmp@y}%
\addtolength{\@ff@tmp@x}{#1}%
@@ -3955,7 +4234,9 @@ which really doesn't make sense}%
\ifthenelse{\equal{#5}{}}{%
\newstaticframe[#1]{#2}{\@ff@staticH}{\@ff@tmp@x}{\@ff@tmp@y}}%
{\newstaticframe[#1]{#2}{\@ff@staticH}{\@ff@tmp@x}{\@ff@tmp@y}[#5]}%
-\expandafter\global\expandafter\setlength\csname @sf@\romannumeral\c@maxstatic @evenx\endcsname{\@ff@tmp@x@even}%
+\expandafter\global\expandafter
+\setlength\csname @sf@\romannumeral\c@maxstatic @evenx\endcsname{%
+\@ff@tmp@x@even}%
\@setframecol#4\end{\c@maxstatic}{backcol}{sf}%
\addtolength{\@ff@tmp@y}{\@ff@staticH}%
}
@@ -3971,7 +4252,8 @@ which really doesn't make sense}%
\advance\@thisstrip by -1\relax
\next}
-\newcommand{\@@nexthNband}[3]{\@nexthband{\ff@pages}{\@ff@staticW}{#1}{#2}{#3}\@nexthNband}
+\newcommand{\@@nexthNband}[3]{%
+\@nexthband{\ff@pages}{\@ff@staticW}{#1}{#2}{#3}\@nexthNband}
% \end{macrocode}
%\DescribeMacro{\makebackgroundframe}
% Make one big \gls{static} that covers the entire page.
@@ -4750,7 +5032,7 @@ Unknown section type '#3'}{}}{%
\@ff@tmpN=0\relax
\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
\advance\@ff@tmpN by 1\relax
-\@greyscale=\@ff@tmpN
+\@greyscale=\@ff@tmpN\relax
\multiply\@greyscale by 60\relax
\divide\@greyscale by \c@maxthumbtabs
\advance\@greyscale by 25\relax
@@ -5042,11 +5324,11 @@ ttb file may not be up-to-date}}{%
}%
\fi
\@ifundefined{@toc@\romannumeral#2}{%
-\ta=\expandafter{#1}%
-\expandafter\xdef\csname @toc@\romannumeral#2\endcsname{\the\ta}}{%
-\ta=\expandafter{#1}%
-\tb=\expandafter\expandafter\expandafter{\csname @toc@\romannumeral#2\endcsname}%
-\expandafter\xdef\csname @toc@\romannumeral#2\endcsname{\the\tb\the\ta}}%
+\flf@ta=\expandafter{#1}%
+\expandafter\xdef\csname @toc@\romannumeral#2\endcsname{\the\flf@ta}}{%
+\flf@ta=\expandafter{#1}%
+\flf@tb=\expandafter\expandafter\expandafter{\csname @toc@\romannumeral#2\endcsname}%
+\expandafter\xdef\csname @toc@\romannumeral#2\endcsname{\the\flf@tb\the\flf@ta}}%
% now do minitoc stuff. If the sectioning type is unknown,
% assume it comes last
\if@minitoc
@@ -5059,9 +5341,9 @@ ttb file may not be up-to-date}}{%
\expandafter\gdef\csname @minitoc@\romannumeral\c@maxminitoc\endcsname{}\relax
\else
\ifnum\@ttb@level>\@ttb@minitoclevel
- \ta=\expandafter{#1}\relax
- \tb=\expandafter\expandafter\expandafter{\csname @minitoc@\romannumeral\c@maxminitoc\endcsname}\relax
- \expandafter\xdef\csname @minitoc@\romannumeral\c@maxminitoc\endcsname{\the\tb\the\ta}
+ \flf@ta=\expandafter{#1}\relax
+ \flf@tb=\expandafter\expandafter\expandafter{\csname @minitoc@\romannumeral\c@maxminitoc\endcsname}\relax
+ \expandafter\xdef\csname @minitoc@\romannumeral\c@maxminitoc\endcsname{\the\flf@tb\the\flf@ta}
\fi
\fi
\fi
@@ -5287,8 +5569,10 @@ ttb file may not be up-to-date}}{%
\dominitoc{\c@minitoc}\@afterheading}{}%
}}
% \end{macrocode}
+%\iffalse
% \begin{macrocode}
%</flowfram.sty>
% \end{macrocode}
+%\fi
%\Finale
\endinput
diff --git a/Master/texmf-dist/source/latex/flowfram/flowfram.ins b/Master/texmf-dist/source/latex/flowfram/flowfram.ins
index 2d7240a1103..f5015dc0edf 100644
--- a/Master/texmf-dist/source/latex/flowfram/flowfram.ins
+++ b/Master/texmf-dist/source/latex/flowfram/flowfram.ins
@@ -1,8 +1,8 @@
-% flowfram.ins generated using makedtx version 0.9b 2005/11/24 14:42
+% flowfram.ins generated using makedtx version 0.91b 2007/3/9 11:23
\input docstrip
\preamble
-Copyright (C) 2005 Nicola Talbot, all rights reserved.
+Copyright (C) 2007 Nicola Talbot, all rights reserved.
If you modify this file, you must change its name first.
You are NOT ALLOWED to distribute this file alone. You are NOT
ALLOWED to take money for the distribution or use of either this