summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-01-25 00:16:41 +0000
committerKarl Berry <karl@freefriends.org>2010-01-25 00:16:41 +0000
commitd8710b42a077e64d873cd7824b5bb50bdaa1d304 (patch)
tree44f9750deddb9ac21d1cd5eadf93811cf192335e /Master/texmf-dist/doc
parent7e57ffa2a00b4f709a7b572299843b546cbc7146 (diff)
flowfram 1.13 (23jan10)
git-svn-id: svn://tug.org/texlive/trunk@16806 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/CHANGES3
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/README4
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/README.flowfram50
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/brochure.pdfbin68674 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/brochure.tex362
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/egg.eps129
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/egg.pngbin930 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/ffuserguide.html2612
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/ffuserguide.pdfbin447027 -> 447019 bytes
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex6
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/flowfram.dtx7774
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/flowfram.ins31
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/flowfram.pdfbin378184 -> 478309 bytes
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/flowfram.perl1632
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/flowfram.sty4342
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/news.pdfbin29989 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/news.tex204
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/news2.pdfbin36387 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/news2.tex231
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/poster.pdfbin79651 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/poster.tex363
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/samples/brochure.pdfbin68674 -> 64325 bytes
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/samples/news.pdfbin29989 -> 29456 bytes
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/samples/news2.pdfbin36387 -> 35856 bytes
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/samples/poster.pdfbin79651 -> 77235 bytes
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/sheep.eps135
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/sheep.pngbin1199 -> 0 bytes
27 files changed, 1314 insertions, 16564 deletions
diff --git a/Master/texmf-dist/doc/latex/flowfram/CHANGES b/Master/texmf-dist/doc/latex/flowfram/CHANGES
index 24654eb1c89..ab0e4aca1c3 100644
--- a/Master/texmf-dist/doc/latex/flowfram/CHANGES
+++ b/Master/texmf-dist/doc/latex/flowfram/CHANGES
@@ -1,5 +1,8 @@
flowfram change log
+1.13 (2010/01/23) :
+ * Fixed 'undefined \ffareaevenx' bug.
+
1.12 (2009/11/25) :
* Added package options LR and RL so that commands like
\twocolumn and \Ncolumn can define the columns from right to
diff --git a/Master/texmf-dist/doc/latex/flowfram/README b/Master/texmf-dist/doc/latex/flowfram/README
index 71bbf01c23a..b67134a19de 100644
--- a/Master/texmf-dist/doc/latex/flowfram/README
+++ b/Master/texmf-dist/doc/latex/flowfram/README
@@ -1,6 +1,6 @@
-LaTeX Package : flowfram v 1.12
+LaTeX Package : flowfram v 1.13
-Last Modified : 25th November 2009
+Last Modified : 23rd January 2010
Author : Nicola Talbot
diff --git a/Master/texmf-dist/doc/latex/flowfram/README.flowfram b/Master/texmf-dist/doc/latex/flowfram/README.flowfram
deleted file mode 100644
index 71bbf01c23a..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/README.flowfram
+++ /dev/null
@@ -1,50 +0,0 @@
-LaTeX Package : flowfram v 1.12
-
-Last Modified : 25th November 2009
-
-Author : Nicola Talbot
-
-Files : flowfram.dtx - documented source file
- flowfram.ins - installation script
- flowfram.perl - LaTeX2HTML style file (see below)
- ffuserguide.pdf - user manual
- ffuserguide.html - user manual
- ffuserguide.tex - source code for user manual
- samples/ - directory containing sample files
-
-Create frames for posters, brochures or magazines
-
-The flowfram package is designed to enable you to create
-frames in a document such that the contents of the
-document environment flow from one frame to the next in the
-order in which they were defined. This is useful for creating
-posters or magazines or any other form of document that does not
-conform to the standard one or two column layout.
-
-To extract the code do:
-
-latex flowfram.ins
-
-To extract the documented code do:
-
-latex flowfram.dtx
-makeindex -s gind.ist flowfram
-makeindex -s flowfram.ist -o flowfram.sgi -t flowfram.slg flowfram.sgo
-latex flowfram.dtx
-latex flowfram.dtx
-
-LATEX2HTML
-==========
-
-This package also supplies the LaTeX2HTML style file flowfram.perl.
-Note however that this is not intended to emulate the flowfram
-package. Most of the flowfram related commands are simply ignored
-(along with their arguments) to provide a simple HTML version of the
-document. The resulting HTML document will not contain any HTML
-frames unless other packages (such as frames.perl) are used.
-
-This material is subject to the LaTeX Project Public License.
-See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for the details of that license.
-
-http://theoval.cmp.uea.ac.uk/~nlct/
-
diff --git a/Master/texmf-dist/doc/latex/flowfram/brochure.pdf b/Master/texmf-dist/doc/latex/flowfram/brochure.pdf
deleted file mode 100644
index 7c9b9a491c6..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/brochure.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/flowfram/brochure.tex b/Master/texmf-dist/doc/latex/flowfram/brochure.tex
deleted file mode 100644
index d0434139854..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/brochure.tex
+++ /dev/null
@@ -1,362 +0,0 @@
-\documentclass[a4paper]{report}
-
-\usepackage[landscape,margin=1in]{geometry}
-\usepackage{color}
-\usepackage{flowfram}
-\usepackage[colorlinks]{hyperref}
-
-% Use sans-serif font as default font
-\renewcommand{\familydefault}{cmss}
-
-% adjust \textheight so that it is an integer multiple of
-% \baselineskip
-\adjustheight{\textheight}
-
-% set up pagelayout. One column for title page
-% two columns for the rest.
-\onecolumninarea[1,2]{0.6\textwidth}{\textheight}{0.4\textwidth}{0pt}
-\twocolumninarea[>2]{0.6\textwidth}{\textheight}{0.4\textwidth}{0pt}
-
-% Set up dynamic frame on the left. This is where
-% the headings will go.
-
-\newdynamicframe{0.4\textwidth}{\textheight}{0pt}{0pt}[left]
-
-% put the chapter headings in this frame
-\dfchaphead*{left}
-% Modify the default style
-\renewcommand{\DFchapterstyle}[1]{%
-\raggedright\Huge\slshape\MakeUppercase{#1}\par}
-
-% Make static frames for background (only for page 1)
-\vtwotone[1]{0.6\paperwidth}{[cmyk]{0.65,0.13,0,0}}{backleft}%
-{0.4\paperwidth}{[cmyk]{0.94,0.54,0,0}}{backright}
-
-% Make a border along the top of each page
-\vtwotonetop{1cm}{0.6\paperwidth}{[cmyk]{0.65,0.13,0,0}}{topleft}%
-{0.4\paperwidth}{[cmyk]{0.94,0.54,0,0}}{topright}
-
-% make a static frame for the logo
-\newstaticframe{0.2\textwidth}{0.25\textheight}{0pt}{0pt}[logo]
-
-% empty page style, because I am going to make my own
-\pagestyle{empty}
-
-% Each new chapter sets \thispagestyle{\chapterfirstpagestyle}, change this empty as well
-\renewcommand{\chapterfirstpagestyle}{empty}
-
-% Now make a frame in which to put my own customized footer
-\newdynamicframe[>1]{\textwidth}{\headheight}{0pt}{-\footskip}[footer]
-
-% set the contents of the frame:
-\setdynamiccontents*{footer}{%
-School of Computing Sciences, University of East Anglia\hfill
-http://www.cmp.uea.ac.uk/\hfill
-page \thepage\ of \pageref*{lastpage}}
-
-
-\newcommand{\env}[1]{\texttt{#1}}
-\newcommand{\cmdname}[1]{\texttt{\symbol{92}#1}}
-\newcommand{\meta}[1]{\textnormal{\textless\textit{#1}\textgreater}}
-
-\begin{document}
-
-% not a very interesting logo
-\setstaticcontents*{logo}{\sffamily{\Huge\slshape FLF} Flowfram}
-
-{\noindent
-\slshape\Huge\MakeUppercase{A Sample Brochure}\par
-\vskip0.5in
-\noindent\large\MakeUppercase{Nicola Talbot}\\
-}
-
-
-\chapter{Introduction}
-
-The \textsl{flowfram} package is designed to enable you to create
-frames in a document such that the
-contents of the \env{document} environment flow from one
-frame to the next in the order that they were defined.
-This is useful for creating posters
-or magazines or any other form of document that does not
-conform to the standard one or two column layout.
-
-This is a modified version of the manual for the \textsl{flowfram} package.
-It is intended to illustrated what can be done. See the full
-manual (ffuserguide.pdf) for
-a comprehensive description, as some parts of this document
-may now be out of date.
-If the columns are very narrow, it may be better to
-use \cmdname{raggedright}, otherwise \TeX\ may have a
-problem working out the line breaks.
-
-This is column~\thedisplayedframe.
-
-The main type of frame is the flow frame. This is described on
-column~\ref{flow:flowframe} on page~\pageref{flow:flowframe}.
-The order used to draw the contents of each frame on the page
-is described in column~\ref{flow:stacking} on
-page~\pageref{flow:stacking}. Floats are describe in
-column~\ref{flow:floats} on page~\pageref{flow:floats}.
-
-\chapter{Setting up Frames}
-
-This is column~\thedisplayedframe.
-
-The \textsl{flowfram} package provides three types of frame:
-{flow frames}, {static
-frames} and {dynamic frames}.
-
-\section*{Flow Frames}
-
-\labelflow{flow:flowframe}
-The flow frame is the principle type of frame.
-The text of the \env{document} environment will flow from
-one frame to the next in order of definition. Each
-flow frame has an associated width, height,
-position on the page, and optionally a border.
-
-It is recommended that all the flow frames in a document
-have the same width, otherwise problems may occur
-when a paragraph spans to flow frames of unequal
-widths. This is because \TeX's output routine does not
-register the change in \cmdname{hsize} until it reaches
-a paragraph break. If it is absolutely necessary for
-flow frames to have unequal widths, judicious use of
-\cmdname{framebreak} is required.
-
-\section*{Static Frames}
-
-A static frame is a rectangular area in which text neither
-flows into, nor flows out of. The contents must be set
-explicitly, and once set, the contents of the static frame will
-remain the same on each page until it is explicitly
-changed. Thus, a static frame can be used, for example, to make
-a company logo appear in the same place on every page.
-
-\section*{Dynamic Frames}
-
-A dynamic frame is similar to a static frame, but its contents
-are re-typeset on each page. (A static frame stores its
-contents in a savebox, whereas a dynamic frame stores its
-contents in a macro).
-
-This is column~\thedisplayedframe.
-
-\chapter{Frame Attributes}
-\label{sec:modattr}
-
-Once you have defined the {flow frames}, {static frames} and
-{dynamic frames}, their attributes can be changed.
-The three types of frame mostly have the
-same set of attributes, but some are specific to a certain type.
-The available attributes are as follows
-(\textsuperscript{\textbf{F}} indicates the key is
-only available for {flow frames},
-\textsuperscript{\textbf{S}} indicates the key is only available
-for {static frames}
-and \textsuperscript{\textbf{D}} indicates the key
-is only available for {dynamic frames}):
-
-\begin{description}
-\item[width=\meta{length}]\mbox{}\par The width of the frame.
-
-\item[height=\meta{length}]\mbox{}\par The height of the frame.
-
-\item[x=\meta{length}]\mbox{}\par The x-coordinate of the frame.
-
-\item[y=\meta{length}]\mbox{}\par The y-coordinate of the frame.
-
-\item[border=\meta{style}]\mbox{}\par The style of the border around the
-frame, this can take the values: \texttt{none} (no border),
-\texttt{plain} (plain border) or the name of a \LaTeX\
-frame making command without the preceding backslash.
-The value \texttt{fbox} is equivalent to \texttt{plain}.
-
-\item[offset=\meta{offset}]\mbox{}\par The border offset, if it is a
-user-defined border. This is the distance from the outer
-edge of the left hand border to the left edge of the
-bounding box of the text inside the border. The \textsl{flowfram}
-package is able to compute the border for
-known frame making commands.
-If you define your own frame making command, you may need to
-specify the offset explicitly, or the frames
-may end up shifted to the right or left.
-
-\item[bordercolor=\meta{colour}]\mbox{}\par The colour of the border
-if you are using a standard frame making command.
-The colour can either be specified as, e.g.\ \texttt{green},
-or including the colour model, for example
-\verb/[rgb]{0,1,0}/.
-
-\item[textcolor=\meta{colour}]\mbox{}\par The text colour for that
-frame. Again, the colour can either be specified as,
-e.g.\ \texttt{green}, or including the colour model,
-for example \verb/[rgb]{0,1,0}/.
-
-\item[pages=\meta{page list}]\mbox{}\par The {list of
-pages} for which the frame
-should appear. This can either have the values: \texttt{all},
-\texttt{even}, \texttt{odd} or \texttt{none} (the latter
-removes the frame from that point on---useful if you
-have multiple pages with the same number), or it can be a
-comma-separated list of single pages, or
-{page ranges}.
-
-\item[margin=\meta{side}\textsuperscript{F}]\mbox{}\par The side of
-the flow frame that its corresponding margin should go on. This
-can take the values \texttt{left} or \texttt{right}.
-
-\item[clear=\meta{boolean}\textsuperscript{S}] If this value
-is set, the static frame will be cleared at the start of the
-next page.
-
-\item[style=\meta{cmd}\textsuperscript{D}]\mbox{}\par This should be
-the name of a command \emph{without} the preceding backslash,
-to be applied to the contents of the specified dynamic frame.
-The command may either be a declaration, for example \verb/style=large/
-which will set the contents of all the dynamic frames in a
-large font, or it can be a command that takes a single argument,
-for example \verb/style=textbf/
-which will make the text for all the dynamic frames come out in
-bold. To unset a style, do \verb/style=none/.
-
-\end{description}
-
-\chapter{Miscellaneous}
-
-\section*{Page Layout}
-
-The \textsl{flowfram} package has the package option \texttt{draft}
-which will draw the {bounding boxes} for
-each frame defined. At the bottom right of each
-bounding box (except for the bounding box denoting the
-typeblock), a marker will be shown to indictate the type
-of frame, its IDN and its IDL.
-
-You can see the layout for the current page (irrespective of
-whether or not the \texttt{draft} option has been set) using
-the command:\newline
-\cmdname{flowframeshowlayout}
-
-The headers and footers will appear as usual (but will not
-be shown in draft mode), according to the format given by
-\cmdname{pagestyle}.
-
-\section*{Frame Stacking Order}
-
-\labelflow{flow:stacking}
-The material on each page is placed in the following order:
-\begin{enumerate}
-\item Each static frame defined for that page in ascending
-order of IDN.
-
-\item Each flow frame defined for that page in ascending
-order of IDN.
-
-\item Each dynamic frame defined for that page in ascending
-order of IDN.
-
-\item {Bounding boxes} if the \texttt{draft}
-package option has been used.
-\end{enumerate}
-
-This ordering can be used to determine if you want something
-to overlay or underlay everything else on the page.
-
-\section*{Prematurely Ending a Flow Frame}
-
-You can force text to move immediately to the next defined
-flow frame using one of the standard \LaTeX\ page breaking commands
-which work in an analogous way to the way they
-work in standard two column mode.
-
-The command \cmdname{framebreak} is provided for situations
-where a paragraph spans two flow frames
-of different widths, as \TeX's output routine does not
-adjust to the new value of \cmdname{hsize} until the last
-paragraph of the previous frame has ended. As a
-result, the end of the paragraph at the beginning of the new
-flow frame retains the width of the previous flow frame.
-
-If you want to start a new page, rather than simply move to the
-next frame, use the command\newline
-\cmdname{finishthispage}.
-
-\section*{Floats}
-
-\labelflow{flow:floats}
-Since floats (such as figures and tables) can only go in
-{flow frames}, this package provides
-the additional environments:
-\env{staticfigure} and
-\env{statictable} which can be used in static frames
-and dynamic frames. Unlike their \env{figure} and
-\env{table} counterparts, they are fixed in place, and
-so do not take an optional placement specifier. The
-\cmdname{caption} and \cmdname{label} commands can
-be used within \env{staticfigure} and \env{statictable} as
-usual.
-
-The standard \env{figure} and \env{table} commands will
-behave as usual in the flow frames, but their starred versions,
-\env{figure*} and \env{table*} behave no differently
-from \env{figure} and \env{table}.
-
-\section*{Global Values}
-
-The following macros can be changed using\linebreak \cmdname{renewcommand}:
-
-\begin{itemize}
-\item \cmdname{setffdraftcolor}
-
-This sets the colour of the bounding box
-when it is displayed in draft mode.
-
-\item
-\cmdname{setffdrafttypeblockcolor}
-
-This sets the colour of
-the bounding box of the typeblock when it is displayed
-in draft mode.
-
-\item \cmdname{fflabelfont}
-
-This sets the font size for the bounding box markers in
-draft mode.
-
-\end{itemize}
-
-The following are lengths, which can be changed using
-\cmdname{setlength}:
-
-\begin{itemize}
-\item \cmdname{fflabelsep}
-
-This is the distance from the right hand side of the
-bounding box at which to place the bounding box marker.
-
-\item \cmdname{flowframesep}
-
-This is the gap between the text of the frame and
-its border, for the standard border types.
-
-\item \cmdname{flowframerule}
-
-This is the width of the frame's border, if using
-a border given by a frame making command that uses \cmdname{fboxsep}
-to set its border width.
-
-\item \cmdname{columnsep}
-
-This is the horizontal distance between flow frames when using one of the
-\cmdname{Ncolumn} type of commands
-
-\item \cmdname{vcolumnsep}
-
-This is the vertical distance between the flow frames and the static or
-dynamic frame when using one of the \cmdname{Ncolumntop} type of commands.
-\end{itemize}
-
-\label{lastpage}
-\end{document}
diff --git a/Master/texmf-dist/doc/latex/flowfram/egg.eps b/Master/texmf-dist/doc/latex/flowfram/egg.eps
deleted file mode 100644
index 46bd52f5929..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/egg.eps
+++ /dev/null
@@ -1,129 +0,0 @@
-%!PS-Adobe-1.0 EPSF-3.0
-%%BoundingBox: 0 766 71 842
-%%Creator: KDE 3.5.3-0.2.fc4 Red Hat
-%%CreationDate: Mon Aug 20 21:23:59 2007
-%%Orientation: Portrait
-%%Pages: 1
-%%DocumentFonts:
-
-%%EndComments
-%%BeginProlog
-% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
-% that is directly related to this document. For other use of this prolog,
-% see your licensing agreement for Qt.
-/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
-/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
-/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
-/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
-pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
-d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
-false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
-0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
-LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
-gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
-SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
-bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
-0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
-exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
-ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
-eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
-64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
-i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
-putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
-1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
-/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
-colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
-QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
-QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
-add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
-{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
-imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
-where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
-/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
-DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
-/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
-h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
-DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
-pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
-WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
-1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
-if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
-2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
-RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
-exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
-BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
-add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
-6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
-}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
-D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
-add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
-ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
-0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
-MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
-{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
-ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
-D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
-w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
-200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
-x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
--90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
-ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
-NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
-D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
-x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
-ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
-div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
-B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
-/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
-exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
--1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
-/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
-maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
-fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
-dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
-definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
-D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
-MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
-stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
-1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
-exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
-showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
-pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
-/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
-ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
-D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
-
-/LArr[ [] [] [ 10.000 3.000 ] [ 3.000 10.000 ] [ 3.000 3.000 ] [ 3.000 3.000 ] [ 5.000 3.000 3.000 3.000 ] [ 3.000 5.000 3.000 3.000 ] [ 5.000 3.000 3.000 3.000 3.000 ] [ 3.000 5.000 3.000 3.000 3.000 3.000 ] ] d
-/pageinit {
-% 210*297mm (portrait)
-0 842 translate 1 -1 scale/defM matrix CM d } d
-%%EndProlog
-%%BeginSetup
-%%EndSetup
-%%Page: 1 1
-%%BeginPageSetup
-QI
-%%EndPageSetup
-[1 0 0 1 0 0]ST
-CLSTART
-0 0 71 76 ACR
-CLEND
-B P1
-NB
-W BC
-/sl 5396 string uc
-î½L*îçËDWçÓUÕ?ÇSÑç±ÈÀN°Þæݺ×ô;*ÎÉòçµ-M2ë±Y;L2*ËGU¹ðÂ:ÒSINÂL*JGóL¾òÕ3;.JÐQݽM
-¾Ê3BÀâÊCWLÆÔW=RÂ:*æDéòã¿2K*ÇÜíÄ6+ÊPá2àÒç>7;ËL.+VÚ;JðÊ6+<Qæ2Þ°PÄ*@=²Â=X*0ìÞßÏ
-.âØDù¯.¯ìºPÑK³éDÍË;.YÜ·C,îÛ²MÆÍIñ°.öCEMÆÇ=ñ°.BCEM2ÊBñ°.¾·çÄ:SÑäã2:³´Ä:±åäã2Z
-´íCàÃ7;-06ÚÀÁÁ7*SÑËØÎÁU,¶Ô;ÕVZÅĶI0åAîîAì5L¸Å¶Æ/Q:ï²/ð´Â-ÆÖ:MFP¿Ò6ïö;Ì=LXÃ*³
-íÄè,7ïJ1¾ãÊ4+VÜ6ܹC¸²-:·PÄ*ÇÍÕóóÃä¶Dé±Âé<*PÑK.¯è²ÈÄ*òѯ.KÍüä7¿üµëDÅL¾Ô·<à6*â
-Ê*;NäÊ÷@ÀúÍH+MÆòçõí2òI³èÕ5+RåÊ2QXøR:P-¾ôê5¯KĶ+ôÕ2;.Z1ÄÞPËÔòèÓéÈU¯Âù7öü7ï·êR
-ðÅÖ8MFSÁÙÄÆ@=XÅßKMNö2ù¯ÂùZÆÙ;ÐöÀWBL4CÖ*6Oí25:,%%
-d
-71 76[1 0 0 1 0 0]sl 8 false 0 0 di
-
-QP
-%%Trailer
-%%Pages: 1
-%%DocumentFonts:
-%%EOF
diff --git a/Master/texmf-dist/doc/latex/flowfram/egg.png b/Master/texmf-dist/doc/latex/flowfram/egg.png
deleted file mode 100644
index f67b013c345..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/egg.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/flowfram/ffuserguide.html b/Master/texmf-dist/doc/latex/flowfram/ffuserguide.html
index d78818eade1..cc817a62f25 100644
--- a/Master/texmf-dist/doc/latex/flowfram/ffuserguide.html
+++ b/Master/texmf-dist/doc/latex/flowfram/ffuserguide.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
-<TITLE>Creating Flow Frames for Posters, Brochures or Magazines using flowfram.sty v 1.12</TITLE>
-<META NAME="description" CONTENT="Creating Flow Frames for Posters, Brochures or Magazines using flowfram.sty v 1.12">
+<TITLE>Creating Flow Frames for Posters, Brochures or Magazines using flowfram.sty v 1.13</TITLE>
+<META NAME="description" CONTENT="Creating Flow Frames for Posters, Brochures or Magazines using flowfram.sty v 1.13">
<META NAME="keywords" CONTENT="LaTeX; text frames; posters; brochures; magazines; newspapers">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@@ -28,9 +28,9 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<P>
<H1 ALIGN=CENTER>Creating Flow Frames for Posters, Brochures or
-Magazines using flowfram.sty v 1.12</H1>
+Magazines using flowfram.sty v 1.13</H1>
<P ALIGN=CENTER><STRONG>Nicola L. C. Talbot</STRONG></P>
-<BR><P ALIGN=CENTER><I>Date:</I> 25th November 2009</P>
+<BR><P ALIGN=CENTER><I>Date:</I> 23rd January 2010</P>
<P ALIGN=LEFT></P>
<BR><P><P ALIGN=LEFT><FONT SIZE=-1>Key words and phrases: LaTeX; text frames; posters; brochures; magazines; newspapers</FONT></P>
@@ -190,8 +190,8 @@ the package options and the various frame types.</I>
<P>
The <TT>flowfram</TT> package is a LaTeX2e package designed to
-enable you to create text <A HREF=ffuserguide.html#gls:frame NAME="11451">frames</A> in a document such that
-the contents of the <TT>document</TT><A NAME="3585"></A> environment flow from one
+enable you to create text <A HREF=ffuserguide.html#gls:frame NAME="11452">frames</A> in a document such that
+the contents of the <TT>document</TT><A NAME="3586"></A> environment flow from one
frame to the next in the order that they were defined.
This is useful for creating posters
or magazines or any other form of document that does not
@@ -199,10 +199,10 @@ conform to the standard one or two column layout.
<P>
The <TT>flowfram</TT> package provides three types of frame:
-<A HREF=ffuserguide.html#gls:flow NAME="11466">flow frames</A>, <A HREF=ffuserguide.html#gls:static NAME="11473">static frames</A> and <A HREF=ffuserguide.html#gls:dynamic NAME="11480">dynamic frames</A> with dimensions and
+<A HREF=ffuserguide.html#gls:flow NAME="11467">flow frames</A>, <A HREF=ffuserguide.html#gls:static NAME="11474">static frames</A> and <A HREF=ffuserguide.html#gls:dynamic NAME="11481">dynamic frames</A> with dimensions and
positions specified by the
user<A NAME="tex2html2"
- HREF="#foot3518"><SUP>1.1</SUP></A>.
+ HREF="#foot3519"><SUP>1.1</SUP></A>.
The main contents of the document environment flow from
one flow frame to the next in the order of definition,
whereas the contents of the static and dynamic frames
@@ -210,30 +210,30 @@ are set explicitly using commands described in
<A HREF="ffuserguide.html#sec:modattr">Modifying Frame
Attributes</A>. Note that
unless otherwise stated, all co-ordinates are relative to the
-bottom left hand corner of the <A HREF=ffuserguide.html#gls:typeblock NAME="11491">typeblock</A>. If you have
-a two-sided document, the absolute position of the typeblock may vary depending on the values of <TT>&#92;oddsidemargin</TT><A NAME="3588"></A>
-and <TT>&#92;evensidemargin</TT><A NAME="3593"></A>, and all the frames will shift
+bottom left hand corner of the <A HREF=ffuserguide.html#gls:typeblock NAME="11492">typeblock</A>. If you have
+a two-sided document, the absolute position of the typeblock may vary depending on the values of <TT>&#92;oddsidemargin</TT><A NAME="3589"></A>
+and <TT>&#92;evensidemargin</TT><A NAME="3594"></A>, and all the frames will shift
accordingly unless otherwise indicated.
<P>
Since floats (such as figures and tables) can only go in
flow frames, this package provides
the additional environments:
-<TT>staticfigure</TT><A NAME="3598"></A> and
-<TT>statictable</TT><A NAME="3601"></A> which can be used in static frames and dynamic frames. Unlike their <TT>figure</TT><A NAME="3604"></A> and
-<TT>table</TT><A NAME="3607"></A> counterparts, they are fixed in place, and
+<TT>staticfigure</TT><A NAME="3599"></A> and
+<TT>statictable</TT><A NAME="3602"></A> which can be used in static frames and dynamic frames. Unlike their <TT>figure</TT><A NAME="3605"></A> and
+<TT>table</TT><A NAME="3608"></A> counterparts, they are fixed in place, and
so do not take an optional placement specifier. The
-<TT>&#92;caption</TT><A NAME="3610"></A> and <TT>&#92;label</TT><A NAME="3615"></A> commands can
-be used within <TT>staticfigure</TT><A NAME="3620"></A> and <TT>statictable</TT><A NAME="3623"></A> as
+<TT>&#92;caption</TT><A NAME="3611"></A> and <TT>&#92;label</TT><A NAME="3616"></A> commands can
+be used within <TT>staticfigure</TT><A NAME="3621"></A> and <TT>statictable</TT><A NAME="3624"></A> as
usual, but remember that if the frame is displayed on multiple
pages, you may end up with multiply defined labels.
<P>
-The standard <TT>figure</TT><A NAME="3626"></A> and <TT>table</TT><A NAME="3629"></A> commands will
+The standard <TT>figure</TT><A NAME="3627"></A> and <TT>table</TT><A NAME="3630"></A> commands will
behave as usual in the flow frames, but their starred versions,
-<TT>figure*</TT><A NAME="3632"></A> and <TT>table*</TT><A NAME="3635"></A> behave no differently
-from <TT>figure</TT><A NAME="3638"></A> and <TT>table</TT><A NAME="3641"></A><A NAME="tex2html3"
- HREF="#foot404"><SUP>1.2</SUP></A>.
+<TT>figure*</TT><A NAME="3633"></A> and <TT>table*</TT><A NAME="3636"></A> behave no differently
+from <TT>figure</TT><A NAME="3639"></A> and <TT>table</TT><A NAME="3642"></A><A NAME="tex2html3"
+ HREF="#foot405"><SUP>1.2</SUP></A>.
<P>
This package has only been tested with a limited number of
@@ -242,8 +242,8 @@ it is likely to conflict with any other package which also
does this.
<P>
-You should load <TT>flowfram</TT> <I>after</I> <TT>hyperref</TT><A NAME="3644"></A> and any
-colour package (e.g. <TT>color</TT><A NAME="3647"></A>).
+You should load <TT>flowfram</TT> <I>after</I> <TT>hyperref</TT><A NAME="3645"></A> and any
+colour package (e.g. <TT>color</TT><A NAME="3648"></A>).
<P>
<A HREF="ffuserguide.html#top">Top</A>&nbsp;|&nbsp;<A HREF="ffuserguide.html#index">Index</A>
@@ -254,15 +254,15 @@ colour package (e.g. <TT>color</TT><A NAME="3647"></A>).
</H1>
<P>
-The <TT>flowfram</TT> package has the package option <TT>draft</TT><A NAME="3654"></A>
-which will draw the <A HREF=ffuserguide.html#gls:bbox NAME="11561">bounding boxes</A> for
-each <A HREF=ffuserguide.html#gls:frame NAME="11568">frame</A> that has been defined. At the bottom right of each
+The <TT>flowfram</TT> package has the package option <TT>draft</TT><A NAME="3655"></A>
+which will draw the <A HREF=ffuserguide.html#gls:bbox NAME="11562">bounding boxes</A> for
+each <A HREF=ffuserguide.html#gls:frame NAME="11569">frame</A> that has been defined. At the bottom right of each
bounding box (except for the bounding box denoting the
-<A HREF=ffuserguide.html#gls:typeblock NAME="11583">typeblock</A>), a marker will be shown in the form:
+<A HREF=ffuserguide.html#gls:typeblock NAME="11584">typeblock</A>), a marker will be shown in the form:
[<I>T</I>:<I>idn</I>;<I>idl</I>], where <I>T</I> is a single
-letter denoting the frame type, <I>idn</I> is the <A HREF=ffuserguide.html#gls:idn NAME="11594">identification number (IDN)</A> for the frame and <I>idl</I> is the <A HREF=ffuserguide.html#gls:idl NAME="11605">identification label (IDL)</A> for that
-frame. Values of <I>T</I> are: <TT>F</TT> (<A HREF=ffuserguide.html#gls:flow NAME="11616">flow frame</A>),
-<TT>S</TT> (<A HREF=ffuserguide.html#gls:static NAME="11623">static frame</A>) or <TT>D</TT> (<A HREF=ffuserguide.html#gls:dynamic NAME="11630">dynamic frame</A>).
+letter denoting the frame type, <I>idn</I> is the <A HREF=ffuserguide.html#gls:idn NAME="11595">identification number (IDN)</A> for the frame and <I>idl</I> is the <A HREF=ffuserguide.html#gls:idl NAME="11606">identification label (IDL)</A> for that
+frame. Values of <I>T</I> are: <TT>F</TT> (<A HREF=ffuserguide.html#gls:flow NAME="11617">flow frame</A>),
+<TT>S</TT> (<A HREF=ffuserguide.html#gls:static NAME="11624">static frame</A>) or <TT>D</TT> (<A HREF=ffuserguide.html#gls:dynamic NAME="11631">dynamic frame</A>).
Markers of the form: [M:<I>idn</I>] indicate that the
bounding box is the area taken up by the margin for flow frame with IDN <I>idn</I>. Note that even if a frame has been rotated, the bounding box will not be rotated.
@@ -271,27 +271,27 @@ If you want to show or hide specific types of bounding
boxes, you can use one of the following commands:
<UL>
-<LI><TT>&#92;showtypeblocktrue</TT><A NAME="3657"></A> Display the bounding box for the typeblock.
+<LI><TT>&#92;showtypeblocktrue</TT><A NAME="3658"></A> Display the bounding box for the typeblock.
<P>
</LI>
-<LI><TT>&#92;showtypeblockfalse</TT><A NAME="3662"></A> Do not display the bounding box for the typeblock.
+<LI><TT>&#92;showtypeblockfalse</TT><A NAME="3663"></A> Do not display the bounding box for the typeblock.
<P>
</LI>
-<LI><TT>&#92;showmarginstrue</TT><A NAME="3667"></A> Display the bounding box for the margins.
+<LI><TT>&#92;showmarginstrue</TT><A NAME="3668"></A> Display the bounding box for the margins.
<P>
</LI>
-<LI><TT>&#92;showmarginsfalse</TT><A NAME="3672"></A> Do not display the bounding box for the margins.
+<LI><TT>&#92;showmarginsfalse</TT><A NAME="3673"></A> Do not display the bounding box for the margins.
<P>
</LI>
-<LI><TT>&#92;showframebboxtrue</TT><A NAME="3677"></A> Display the bounding box for the frames.
+<LI><TT>&#92;showframebboxtrue</TT><A NAME="3678"></A> Display the bounding box for the frames.
<P>
</LI>
-<LI><TT>&#92;showframebboxfalse</TT><A NAME="3682"></A> Do not display the bounding box for the frames.
+<LI><TT>&#92;showframebboxfalse</TT><A NAME="3683"></A> Do not display the bounding box for the frames.
<P>
</LI>
@@ -299,16 +299,16 @@ boxes, you can use one of the following commands:
<P>
You can see the layout for the current page (irrespective of
-whether or not the <TT>draft</TT><A NAME="3687"></A> option has been set) using
+whether or not the <TT>draft</TT><A NAME="3688"></A> option has been set) using
the command:
<P>
-<TT>&#92;flowframeshowlayout</TT><A NAME="3690"></A>
+<TT>&#92;flowframeshowlayout</TT><A NAME="3691"></A>
<P>
<P>
-The <TT>flowfram</TT> package also has the options <TT>nocolor</TT><A NAME="3695"></A>
-and <TT>norotate</TT><A NAME="3698"></A> for previewers that can not process
+The <TT>flowfram</TT> package also has the options <TT>nocolor</TT><A NAME="3696"></A>
+and <TT>norotate</TT><A NAME="3699"></A> for previewers that can not process
colour or rotating specials. (Otherwise you may end up with
large black rectangles obscuring your text, instead of
the pale background colour you were hoping for.)
@@ -327,22 +327,22 @@ the pale background colour you were hoping for.)
The material on each page is placed in the following order:
<OL>
-<LI>Each <A HREF=ffuserguide.html#gls:static NAME="11704">static frame</A> defined for that page in ascending
-order of <A HREF=ffuserguide.html#gls:idn NAME="11711">IDN</A>.
+<LI>Each <A HREF=ffuserguide.html#gls:static NAME="11705">static frame</A> defined for that page in ascending
+order of <A HREF=ffuserguide.html#gls:idn NAME="11712">IDN</A>.
<P>
</LI>
-<LI>Each <A HREF=ffuserguide.html#gls:flow NAME="11718">flow frame</A> defined for that page in ascending
-order of <A HREF=ffuserguide.html#gls:idn NAME="11725">IDN</A>.
+<LI>Each <A HREF=ffuserguide.html#gls:flow NAME="11719">flow frame</A> defined for that page in ascending
+order of <A HREF=ffuserguide.html#gls:idn NAME="11726">IDN</A>.
<P>
</LI>
-<LI>Each <A HREF=ffuserguide.html#gls:dynamic NAME="11732">dynamic frame</A> defined for that page in ascending
-order of <A HREF=ffuserguide.html#gls:idn NAME="11739">IDN</A>.
+<LI>Each <A HREF=ffuserguide.html#gls:dynamic NAME="11733">dynamic frame</A> defined for that page in ascending
+order of <A HREF=ffuserguide.html#gls:idn NAME="11740">IDN</A>.
<P>
</LI>
-<LI><A HREF=ffuserguide.html#gls:bbox NAME="11746">Bounding boxes</A> if the <TT>draft</TT><A NAME="3705"></A>
+<LI><A HREF=ffuserguide.html#gls:bbox NAME="11747">Bounding boxes</A> if the <TT>draft</TT><A NAME="3706"></A>
package option has been used.
</LI>
</OL>
@@ -350,12 +350,12 @@ package option has been used.
<P>
This ordering can be used to determine if you want something
to overlay or underlay everything else on the page.
-Note that the <A HREF=ffuserguide.html#gls:frame NAME="11753">frames</A> do not interact with each other. If
+Note that the <A HREF=ffuserguide.html#gls:frame NAME="11754">frames</A> do not interact with each other. If
you have two or more overlapping frames, the text in each
frame will not attempt to wrap around the other
frames, but will simply overwrite
them.<A NAME="tex2html17"
- HREF="#foot3519"><SUP>1.3</SUP></A>
+ HREF="#foot3520"><SUP>1.3</SUP></A>
<P>
<A HREF="ffuserguide.html#top">Top</A>&nbsp;|&nbsp;<A HREF="ffuserguide.html#index">Index</A>
@@ -370,9 +370,9 @@ The <TT>flowfram</TT> package now comes with a LaTeX2HTML style
file <TT>flowfram.perl</TT>. However this style file is not meant
to emulate the <TT>flowfram</TT> package, but is provided to facilitate
creating a plain HTML document from the LaTeX source. All
-<A HREF=ffuserguide.html#gls:frame NAME="11781">frame</A>-related information is ignored. By default, the contents
-of any <A HREF=ffuserguide.html#gls:static NAME="11784">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="11787">dynamic</A> frames are ignored, but this can be changed using
+<A HREF=ffuserguide.html#gls:frame NAME="11782">frame</A>-related information is ignored. By default, the contents
+of any <A HREF=ffuserguide.html#gls:static NAME="11785">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="11788">dynamic</A> frames are ignored, but this can be changed using
<PRE>
\HTMLset{showstaticcontents}{1}
</PRE>
@@ -381,7 +381,7 @@ to show the contents of the static frames or
\HTMLset{showdynamiccontents}{1}
</PRE>
to show the contents of the dynamic frames (where <code>\HTMLset</code>
-is defined in the <TT>html</TT><A NAME="3716"></A> package). Note that this places the
+is defined in the <TT>html</TT><A NAME="3717"></A> package). Note that this places the
text at the point in the document where the contents are set.
This style file does not create HTML frames. It can therefore be
used to create an accessible version of the PDF document
@@ -413,29 +413,29 @@ Layouts</A>.</I>
</H1>
<P>
-The <A HREF=ffuserguide.html#gls:flow NAME="11864">flow frame</A> is the principle type of <A HREF=ffuserguide.html#gls:frame NAME="11871">frame</A>.
-The text of the <TT>document</TT><A NAME="3727"></A> environment will flow from
+The <A HREF=ffuserguide.html#gls:flow NAME="11865">flow frame</A> is the principle type of <A HREF=ffuserguide.html#gls:frame NAME="11872">frame</A>.
+The text of the <TT>document</TT><A NAME="3728"></A> environment will flow from
one frame to the next in order of definition. Each
flow frame has an associated width, height,
position on the page and optionally a border. To define
a new flow frame use:
<P>
-<TT>&#92;newflowframe</TT><A NAME="3730"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
+<TT>&#92;newflowframe</TT><A NAME="3731"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
<P>
where <I>width</I> is the width of the frame, <I>height</I> is
the height of the frame, (<I>x</I>,<I>y</I>) is the
position of the bottom left hand corner of the frame relative to the bottom left hand corner of the
-<A HREF=ffuserguide.html#gls:typeblock NAME="11902">typeblock</A><A NAME="tex2html29"
- HREF="#foot3521"><SUP>2.1</SUP></A>.
+<A HREF=ffuserguide.html#gls:typeblock NAME="11903">typeblock</A><A NAME="tex2html29"
+ HREF="#foot3522"><SUP>2.1</SUP></A>.
The first optional argument, <I>page list</I>, indicates the
list of pages for which this frame is defined.
<P>
-A <A HREF=ffuserguide.html#gls:pglist NAME="11913">page list</A> can either be specified by the keywords:
+A <A HREF=ffuserguide.html#gls:pglist NAME="11914">page list</A> can either be specified by the keywords:
<TT>all</TT>, <TT>odd</TT>, <TT>even</TT> or <TT>none</TT>, or
by a comma-separated list of either individual page numbers or
-<A HREF=ffuserguide.html#gls:pgrange NAME="11920">page ranges</A>. If <I>page list</I> is
+<A HREF=ffuserguide.html#gls:pgrange NAME="11921">page ranges</A>. If <I>page list</I> is
omitted, <TT>all</TT> is assumed.
A page range can be a closed
range (e.g. <code>2-8</code>) or an open range (e.g.
@@ -443,30 +443,30 @@ range (e.g. <code>2-8</code>) or an open range (e.g.
indicates pages 1, 2, 5, 7, 8, 9, 10, 11 and all pages
greater than page 15. These page numbers refer to the value of
the page counter<A NAME="tex2html30"
- HREF="#foot3522"><SUP>2.2</SUP></A>,
+ HREF="#foot3523"><SUP>2.2</SUP></A>,
so if you have a page&nbsp;i and a page&nbsp;1, they
will both have the same layout (unless you change the
page list setting somewhere between the two pages).
<P>
-Each frame has its own unique <A HREF=ffuserguide.html#gls:idn NAME="11935">IDN</A>,
+Each frame has its own unique <A HREF=ffuserguide.html#gls:idn NAME="11936">IDN</A>,
corresponding to the order in which it was defined. So the first
flow frame to be defined has IDN&nbsp;1,
the second has IDN&nbsp;2, and so on. This number can then
be used to identify the frame when you want to modify its
-settings. Alternatively, you can assign a unique <A HREF=ffuserguide.html#gls:idl NAME="11958">IDL</A> to the
+settings. Alternatively, you can assign a unique <A HREF=ffuserguide.html#gls:idl NAME="11959">IDL</A> to the
frame using the final optional argument <I>label</I>.
<P>
You can retrieve the IDL for a given flow frame from its IDN using:
<P>
-<TT>&#92;getflowlabel</TT><A NAME="3747"></A><TT>&#123;<I>idn</I>&#125;</TT>
+<TT>&#92;getflowlabel</TT><A NAME="3748"></A><TT>&#123;<I>idn</I>&#125;</TT>
<P>
Conversely, you can retrieve the IDN for a given flow frame from its IDL using:
<P>
-<TT>&#92;getflowid</TT><A NAME="3754"></A><TT>&#123;<I>cmd</I>&#125;&#123;<I>idl</I>&#125;</TT>
+<TT>&#92;getflowid</TT><A NAME="3755"></A><TT>&#123;<I>cmd</I>&#125;&#123;<I>idl</I>&#125;</TT>
<P>
where <I>cmd</I> is a control sequence which will be used to
store the frame's IDN.
@@ -479,9 +479,9 @@ The flow frame labelled ``main'' has IDN \getflowid{\myid}{main}\myid.
<A HREF="ffuserguide.html#sec:counters">Counters</A>.)
<P>
-Note that <TT>&#92;getflowlabel</TT><A NAME="3763"></A> doesn't perform any check to
+Note that <TT>&#92;getflowlabel</TT><A NAME="3764"></A> doesn't perform any check to
determine whether the supplied IDN is valid, but
-<TT>&#92;getflowid</TT><A NAME="3768"></A> will generate an error if the supplied
+<TT>&#92;getflowid</TT><A NAME="3769"></A> will generate an error if the supplied
IDL is undefined.
<P>
@@ -489,7 +489,7 @@ By default, the flow frame will not have a border, but the
starred form
<P>
-<TT>&#92;newflowframe*</TT><A NAME="3773"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
+<TT>&#92;newflowframe*</TT><A NAME="3774"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
<P>
will place a plain border around the flow frame.
(See <A HREF="ffuserguide.html#sec:modattr">Modifying frame
@@ -509,7 +509,7 @@ I used the command
\newflowframe{0.6\textwidth}{\textheight}{0pt}{0pt}[main]
</PRE>
to define the main flow frame<A NAME="tex2html31"
- HREF="#foot3523"><SUP>2.3</SUP></A>.
+ HREF="#foot3524"><SUP>2.3</SUP></A>.
<P>
<A HREF="ffuserguide.html#top">Top</A>&nbsp;|&nbsp;<A HREF="ffuserguide.html#index">Index</A>
@@ -523,22 +523,22 @@ to define the main flow frame<A NAME="tex2html31"
<P>
You can force text to move immediately to the next defined
-<A HREF=ffuserguide.html#gls:flow NAME="12030">flow frame</A> using one of the commands: <TT>&#92;newpage</TT><A NAME="3799"></A>,
-<TT>&#92;pagebreak</TT><A NAME="3804"></A> or <TT>&#92;framebreak</TT><A NAME="3809"></A>.
+<A HREF=ffuserguide.html#gls:flow NAME="12031">flow frame</A> using one of the commands: <TT>&#92;newpage</TT><A NAME="3800"></A>,
+<TT>&#92;pagebreak</TT><A NAME="3805"></A> or <TT>&#92;framebreak</TT><A NAME="3810"></A>.
The first two work in an analogous way to the way they
work in standard two column mode. The last one,
-<TT>&#92;framebreak</TT><A NAME="3814"></A>, is required
+<TT>&#92;framebreak</TT><A NAME="3815"></A>, is required
when a paragraph spans two flow frames of different widths, as TeX's output routine does not
-adjust to the new value of <TT>&#92;hsize</TT><A NAME="3819"></A> until the last
-paragraph of the previous <A HREF=ffuserguide.html#gls:frame NAME="12041">frame</A> has ended. As a
+adjust to the new value of <TT>&#92;hsize</TT><A NAME="3820"></A> until the last
+paragraph of the previous <A HREF=ffuserguide.html#gls:frame NAME="12042">frame</A> has ended. As a
result, the end of the paragraph at the beginning of the new
flow frame retains the width of the previous flow frame.
<P>
If you want to start a new page, rather than simply move to the
-next frame, use the command <TT>&#92;clearpage</TT><A NAME="3824"></A>,
+next frame, use the command <TT>&#92;clearpage</TT><A NAME="3825"></A>,
or for two-sided documents, to start on the next odd page
-do <TT>&#92;cleardoublepage</TT><A NAME="3829"></A>.
+do <TT>&#92;cleardoublepage</TT><A NAME="3830"></A>.
<P>
<A HREF="ffuserguide.html#top">Top</A>&nbsp;|&nbsp;<A HREF="ffuserguide.html#index">Index</A>
@@ -551,9 +551,9 @@ do <TT>&#92;cleardoublepage</TT><A NAME="3829"></A>.
</H1>
<P>
-A <A HREF=ffuserguide.html#gls:static NAME="12155">static frame</A> is a rectangular area in which text neither
+A <A HREF=ffuserguide.html#gls:static NAME="12156">static frame</A> is a rectangular area in which text neither
flows into nor flows out of.<A NAME="tex2html41"
- HREF="#foot2893"><SUP>2.4</SUP></A>
+ HREF="#foot2894"><SUP>2.4</SUP></A>
The contents must be set explicitly, and once set, the contents
of the static frame will remain the same on each page until it is
explicitly changed. Thus, a static frame can be used, for
@@ -570,18 +570,18 @@ Frames</A> for further details.
A new static frame is defined using the command:
<P>
-<TT>&#92;newstaticframe</TT><A NAME="3838"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
+<TT>&#92;newstaticframe</TT><A NAME="3839"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
<P>
-where, as with <TT>&#92;newflowframe</TT><A NAME="3855"></A>, <I>width</I> is the width of
+where, as with <TT>&#92;newflowframe</TT><A NAME="3856"></A>, <I>width</I> is the width of
the frame, <I>height</I> is the height of the frame,
(<I>x</I>,<I>y</I>) is the position of the bottom left hand
corner of the frame relative to the bottom left hand
-corner of the <A HREF=ffuserguide.html#gls:typeblock NAME="12190">typeblock</A>. The first optional argument,
-<I>page list</I>, indicates the <A HREF=ffuserguide.html#gls:pglist NAME="12197">page list</A> for which this
+corner of the <A HREF=ffuserguide.html#gls:typeblock NAME="12191">typeblock</A>. The first optional argument,
+<I>page list</I>, indicates the <A HREF=ffuserguide.html#gls:pglist NAME="12198">page list</A> for which this
static frame should appear, and the final optional argument,
-<I>label</I> is a unique textual <A HREF=ffuserguide.html#gls:idl NAME="12208">IDL</A> which you can use to
+<I>label</I> is a unique textual <A HREF=ffuserguide.html#gls:idl NAME="12209">IDL</A> which you can use to
identify this frame. If no label is specified, you
-can refer to this frame by its unique <A HREF=ffuserguide.html#gls:idn NAME="12223">IDN</A>.
+can refer to this frame by its unique <A HREF=ffuserguide.html#gls:idn NAME="12224">IDN</A>.
The first static frame to be defined has IDN&nbsp;1, the second
has IDN&nbsp;2, and so on.
@@ -589,12 +589,12 @@ has IDN&nbsp;2, and so on.
You can retrieve the IDL for a given static frame from its IDN using:
<P>
-<TT>&#92;getstaticlabel</TT><A NAME="3860"></A><TT>&#123;<I>idn</I>&#125;</TT>
+<TT>&#92;getstaticlabel</TT><A NAME="3861"></A><TT>&#123;<I>idn</I>&#125;</TT>
<P>
Conversely, you can retrieve the IDN for a given static frame from its IDL using:
<P>
-<TT>&#92;getstaticid</TT><A NAME="3867"></A><TT>&#123;<I>cmd</I>&#125;&#123;<I>idl</I>&#125;</TT>
+<TT>&#92;getstaticid</TT><A NAME="3868"></A><TT>&#123;<I>cmd</I>&#125;&#123;<I>idl</I>&#125;</TT>
<P>
where <I>cmd</I> is a control sequence which will be used to
store the frame's IDN.
@@ -606,22 +606,22 @@ The static frame labelled ``backleft'' has IDN
</PRE>
<P>
-Note that <TT>&#92;getstaticlabel</TT><A NAME="3876"></A> doesn't perform any check to
+Note that <TT>&#92;getstaticlabel</TT><A NAME="3877"></A> doesn't perform any check to
determine whether the supplied IDN is valid, but
-<TT>&#92;getstaticid</TT><A NAME="3881"></A> will generate an error if the supplied
+<TT>&#92;getstaticid</TT><A NAME="3882"></A> will generate an error if the supplied
IDL is undefined.
<P>
-As with <TT>&#92;newflowframe</TT><A NAME="3886"></A>, there is a starred version
+As with <TT>&#92;newflowframe</TT><A NAME="3887"></A>, there is a starred version
<P>
-<TT>&#92;newstaticframe*</TT><A NAME="3891"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
+<TT>&#92;newstaticframe*</TT><A NAME="3892"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
<P>
which will place a border around that static frame.
<P>
To set the contents of a particular static frame, you can
-either use the <TT>staticcontents</TT><A NAME="3908"></A> environment:
+either use the <TT>staticcontents</TT><A NAME="3909"></A> environment:
<P>
<code>\begin{staticcontents}</code><TT>&#123;<I>IDN</I>&#125;</TT>
@@ -634,7 +634,7 @@ static frame, or you can use the
command:
<P>
-<TT>&#92;setstaticcontents</TT><A NAME="3913"></A><TT>&#123;<I>IDN</I>&#125;&#123;<I>contents</I>&#125;</TT>
+<TT>&#92;setstaticcontents</TT><A NAME="3914"></A><TT>&#123;<I>IDN</I>&#125;&#123;<I>contents</I>&#125;</TT>
<P>
which will do the same thing.
@@ -650,19 +650,19 @@ and the command to enable you to identify the static frame by its associated IDL
or the equivalent:
<P>
-<TT>&#92;setstaticcontents*</TT><A NAME="3924"></A><TT>&#123;<I>IDL</I>&#125;&#123;<I>contents</I>&#125;</TT>
+<TT>&#92;setstaticcontents*</TT><A NAME="3925"></A><TT>&#123;<I>IDL</I>&#125;&#123;<I>contents</I>&#125;</TT>
<P>
<P>
-In the body of <TT>staticcontents</TT><A NAME="3933"></A> or <TT>staticcontents*</TT><A NAME="3936"></A>,
-or in the second argument of <TT>&#92;setstaticcontents</TT><A NAME="3939"></A>
-or <TT>&#92;setstaticcontents*</TT><A NAME="3944"></A>, you can move onto another
+In the body of <TT>staticcontents</TT><A NAME="3934"></A> or <TT>staticcontents*</TT><A NAME="3937"></A>,
+or in the second argument of <TT>&#92;setstaticcontents</TT><A NAME="3940"></A>
+or <TT>&#92;setstaticcontents*</TT><A NAME="3945"></A>, you can move onto another
static frame using:
<P>
-<TT>&#92;continueonframe</TT><A NAME="3949"></A><TT>[<I>continuation text</I>]&#123;<I>id</I>&#125;</TT>
+<TT>&#92;continueonframe</TT><A NAME="3950"></A><TT>[<I>continuation text</I>]&#123;<I>id</I>&#125;</TT>
<P>
-If <TT>staticcontents*</TT><A NAME="3958"></A> or <TT>&#92;setstaticcontents*</TT><A NAME="3961"></A> are
+If <TT>staticcontents*</TT><A NAME="3959"></A> or <TT>&#92;setstaticcontents*</TT><A NAME="3962"></A> are
being used, <I>id</I> refers to the IDL of the next
static frame, otherwise <I>id</I> refers to the IDN of the
next static frame.
@@ -697,20 +697,20 @@ right half of the same page.)
where
<P>
-<TT>&#92;ffcontinuedtextlayout</TT><A NAME="3966"></A><TT>&#123;<I>text</I>&#125;</TT>
+<TT>&#92;ffcontinuedtextlayout</TT><A NAME="3967"></A><TT>&#123;<I>text</I>&#125;</TT>
<P>
governs how the continuation text should be displayed. The font used
to display the continuation text is given by
<P>
-<TT>&#92;ffcontinuedtextfont</TT><A NAME="3973"></A><TT>&#123;<I>text</I>&#125;</TT>
+<TT>&#92;ffcontinuedtextfont</TT><A NAME="3974"></A><TT>&#123;<I>text</I>&#125;</TT>
<P>
<P>
Note that this assumes that it should appear that no paragraph
break occurs in the transition between the two frames. If you
want a paragraph break you need to explicitly put one before
-and after <TT>&#92;continueonframe</TT><A NAME="3980"></A>. For example:
+and after <TT>&#92;continueonframe</TT><A NAME="3981"></A>. For example:
<PRE>
\begin{staticcontents*}{frame1}
Some text in the first frame. (Let's
@@ -737,7 +737,7 @@ right half of the same page.)
<P>
<UL>
-<LI>When you set the contents of a <A HREF=ffuserguide.html#gls:static NAME="12343">static frame</A>, the contents are
+<LI>When you set the contents of a <A HREF=ffuserguide.html#gls:static NAME="12344">static frame</A>, the contents are
immediately typeset and stored in a box until it is time to put
the contents on the page. This means that if you use any information
that varies throughout the document (such as the page number) the
@@ -746,7 +746,7 @@ will be the value used.
<P>
</LI>
-<LI>However, if <TT>&#92;label</TT><A NAME="3989"></A> is used inside a static frame,
+<LI>However, if <TT>&#92;label</TT><A NAME="3990"></A> is used inside a static frame,
the label information will be written to the auxiliary file each
time the static frame is displayed until the contents of that
frame have been changed. This means that you may
@@ -766,11 +766,11 @@ end up with multiply defined labels.
</H1>
<P>
-A <A HREF=ffuserguide.html#gls:dynamic NAME="12477">dynamic frame</A> is similar to a <A HREF=ffuserguide.html#gls:static NAME="12484">static frame</A> except that its contents
+A <A HREF=ffuserguide.html#gls:dynamic NAME="12478">dynamic frame</A> is similar to a <A HREF=ffuserguide.html#gls:static NAME="12485">static frame</A> except that its contents
are re-typeset on each page. (A static frame stores its
contents in a savebox, whereas a dynamic frame stores its
contents in a macro.<A NAME="tex2html48"
- HREF="#foot3524"><SUP>2.5</SUP></A>)
+ HREF="#foot3525"><SUP>2.5</SUP></A>)
<P>
As from version 1.03 it is now possible to have
@@ -782,25 +782,25 @@ Frames</A> for further details.
To create a new dynamic frame, use the command:
<P>
-<TT>&#92;newdynamicframe</TT><A NAME="4005"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
+<TT>&#92;newdynamicframe</TT><A NAME="4006"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
<P>
-The parameters are exactly the same as for <TT>&#92;newflowframe</TT><A NAME="4022"></A>
-and <TT>&#92;newstaticframe</TT><A NAME="4027"></A>.
-Again, each dynamic frame has an associated unique <A HREF=ffuserguide.html#gls:idn NAME="12511">IDN</A>,
+The parameters are exactly the same as for <TT>&#92;newflowframe</TT><A NAME="4023"></A>
+and <TT>&#92;newstaticframe</TT><A NAME="4028"></A>.
+Again, each dynamic frame has an associated unique <A HREF=ffuserguide.html#gls:idn NAME="12512">IDN</A>,
starting from 1 for the first dynamic frame to be defined, and
-a unique <A HREF=ffuserguide.html#gls:idl NAME="12522">IDL</A> can also be set using the final optional
+a unique <A HREF=ffuserguide.html#gls:idl NAME="12523">IDL</A> can also be set using the final optional
argument <I>label</I>.
<P>
You can retrieve the IDL for a given dynamic frame from its IDN using:
<P>
-<TT>&#92;getdynamiclabel</TT><A NAME="4032"></A><TT>&#123;<I>idn</I>&#125;</TT>
+<TT>&#92;getdynamiclabel</TT><A NAME="4033"></A><TT>&#123;<I>idn</I>&#125;</TT>
<P>
Conversely, you can retrieve the IDN for a given dynamic frame from its IDL using:
<P>
-<TT>&#92;getdynamicid</TT><A NAME="4039"></A><TT>&#123;<I>cmd</I>&#125;&#123;<I>idl</I>&#125;</TT>
+<TT>&#92;getdynamicid</TT><A NAME="4040"></A><TT>&#123;<I>cmd</I>&#125;&#123;<I>idl</I>&#125;</TT>
<P>
where <I>cmd</I> is a control sequence which will be used to
store the frame's IDN.
@@ -814,17 +814,17 @@ The dynamic frame labelled ``chaphead'' has IDN
</PRE>
<P>
-Note that <TT>&#92;getdynamiclabel</TT><A NAME="4048"></A> doesn't perform any check to
+Note that <TT>&#92;getdynamiclabel</TT><A NAME="4049"></A> doesn't perform any check to
determine whether the supplied IDN is valid, but
-<TT>&#92;getdynamicid</TT><A NAME="4053"></A> will generate an error if the supplied
+<TT>&#92;getdynamicid</TT><A NAME="4054"></A> will generate an error if the supplied
IDL is undefined.
<P>
-As with the other <A HREF=ffuserguide.html#gls:frame NAME="12565">frame</A> types, there is also a starred
+As with the other <A HREF=ffuserguide.html#gls:frame NAME="12566">frame</A> types, there is also a starred
version
<P>
-<TT>&#92;newdynamicframe*</TT><A NAME="4058"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
+<TT>&#92;newdynamicframe*</TT><A NAME="4059"></A><TT>[<I>page list</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;[<I>label</I>]</TT>
<P>
which will place a plain border around the dynamic frame.
For example, in the PDF version
@@ -834,7 +834,7 @@ of this document I used the command
</PRE>
which created a frame on the
right on odd pages and on the left on even pages. (The
-position for the even pages is set using <TT>&#92;setdynamicframe</TT><A NAME="4075"></A>
+position for the even pages is set using <TT>&#92;setdynamicframe</TT><A NAME="4076"></A>
defined in <A HREF="ffuserguide.html#sec:modattr">Modifying
Frame Attributes</A>.)
@@ -842,7 +842,7 @@ Frame Attributes</A>.)
The contents of a dynamic frame are set using the command:
<P>
-<TT>&#92;setdynamiccontents</TT><A NAME="4080"></A><TT>&#123;<I>id</I>&#125;&#123;<I>contents</I>&#125;</TT>
+<TT>&#92;setdynamiccontents</TT><A NAME="4081"></A><TT>&#123;<I>id</I>&#125;&#123;<I>contents</I>&#125;</TT>
<P>
where <I>id</I> is the unique IDN associated with that
dynamic frame, and <I>contents</I> is the contents of the
@@ -851,53 +851,53 @@ dynamic frame. Alternatively, if you have assigned an IDL,
version:
<P>
-<TT>&#92;setdynamiccontents*</TT><A NAME="4089"></A><TT>&#123;<I>label</I>&#125;&#123;<I>contents</I>&#125;</TT>
+<TT>&#92;setdynamiccontents*</TT><A NAME="4090"></A><TT>&#123;<I>label</I>&#125;&#123;<I>contents</I>&#125;</TT>
<P>
-As with most LaTeX commands, you can't use verbatim text<A NAME="4097"></A> in
+As with most LaTeX commands, you can't use verbatim text<A NAME="4098"></A> in
<I>contents</I>.
<P>
As from version 1.09, the contents can also be set using the
-<TT>dynamiccontents</TT><A NAME="4099"></A> environment:
+<TT>dynamiccontents</TT><A NAME="4100"></A> environment:
<P>
<code>\begin{dynamiccontents}</code><TT>&#123;<I>id</I>&#125;</TT>
<BR><I>contents</I>
<BR><code>\end{dynamiccontents}</code>
<P>
-or the <TT>dynamiccontents*</TT><A NAME="4104"></A> environment:
+or the <TT>dynamiccontents*</TT><A NAME="4105"></A> environment:
<P>
<code>\begin{dynamiccontents*}</code><TT>&#123;label&#125;</TT>
<BR><I>contents</I>
<BR><code>\end{dynamiccontents*}</code>
<P>
-<A NAME="pg:verb"></A>Note that you can't use verbatim text<A NAME="4107"></A> within the
-<TT>dynamiccontents</TT><A NAME="4109"></A> or <TT>dynamiccontents*</TT><A NAME="4112"></A> environments.
+<A NAME="pg:verb"></A>Note that you can't use verbatim text<A NAME="4108"></A> within the
+<TT>dynamiccontents</TT><A NAME="4110"></A> or <TT>dynamiccontents*</TT><A NAME="4113"></A> environments.
<P>
You can additionally append text to a dynamic frame using
either:
<P>
-<TT>&#92;appenddynamiccontents</TT><A NAME="4115"></A><TT>&#123;<I>id</I>&#125;&#123;<I>contents</I>&#125;</TT>
+<TT>&#92;appenddynamiccontents</TT><A NAME="4116"></A><TT>&#123;<I>id</I>&#125;&#123;<I>contents</I>&#125;</TT>
<P>
or:
<P>
-<TT>&#92;appenddynamiccontents*</TT><A NAME="4124"></A><TT>&#123;<I>label</I>&#125;&#123;<I>contents</I>&#125;</TT>
+<TT>&#92;appenddynamiccontents*</TT><A NAME="4125"></A><TT>&#123;<I>label</I>&#125;&#123;<I>contents</I>&#125;</TT>
<P>
<P>
-If <TT>&#92;chapter</TT><A NAME="4133"></A> is defined, you can make the chapter titles
+If <TT>&#92;chapter</TT><A NAME="4134"></A> is defined, you can make the chapter titles
appear in a dynamic frame using the command
<P>
-<TT>&#92;dfchaphead</TT><A NAME="4138"></A><TT>&#123;<I>IDN</I>&#125;</TT>
+<TT>&#92;dfchaphead</TT><A NAME="4139"></A><TT>&#123;<I>IDN</I>&#125;</TT>
<P>
-where <I>IDN</I> is the <A HREF=ffuserguide.html#gls:idn NAME="12608">IDN</A> of the dynamic frame. There is
+where <I>IDN</I> is the <A HREF=ffuserguide.html#gls:idn NAME="12609">IDN</A> of the dynamic frame. There is
also a starred version of this command if you want to
-use the <A HREF=ffuserguide.html#gls:idl NAME="12615">IDL</A> instead of the IDN. For example, in
+use the <A HREF=ffuserguide.html#gls:idl NAME="12616">IDL</A> instead of the IDN. For example, in
the PDF version of this document, I used the command:
<PRE>
\dfchaphead*{chaphead}
@@ -907,20 +907,20 @@ the PDF version of this document, I used the command:
The headers and footers can be turned into dynamic frames using the command
<P>
-<TT>&#92;makedfheaderfooter</TT><A NAME="4145"></A>
+<TT>&#92;makedfheaderfooter</TT><A NAME="4146"></A>
<P>
This will create two dynamic frames with IDLs <TT>header</TT> and <TT>footer</TT>. The page style will be used as
usual, but you can then move or resize the header and footer using
-<TT>&#92;setdynamicframe</TT><A NAME="4150"></A> (described <A HREF="ffuserguide.html#sec:modattr">later</A>).
+<TT>&#92;setdynamicframe</TT><A NAME="4151"></A> (described <A HREF="ffuserguide.html#sec:modattr">later</A>).
<P>
-In the body of <TT>dynamiccontents</TT><A NAME="4155"></A> or <TT>dynamiccontents*</TT><A NAME="4158"></A>,
+In the body of <TT>dynamiccontents</TT><A NAME="4156"></A> or <TT>dynamiccontents*</TT><A NAME="4159"></A>,
you can move onto another dynamic frame using:
<P>
-<TT>&#92;continueonframe</TT><A NAME="4161"></A><TT>[<I>continuation text</I>]&#123;id&#125;</TT>
+<TT>&#92;continueonframe</TT><A NAME="4162"></A><TT>[<I>continuation text</I>]&#123;id&#125;</TT>
<P>
-If this command occurs within <TT>dynamiccontents*</TT><A NAME="4169"></A>, <I>id</I>
+If this command occurs within <TT>dynamiccontents*</TT><A NAME="4170"></A>, <I>id</I>
refers to the IDL of the new frame, otherwise it refers
to the IDN of the new frame.
The optional argument specifies some continuation text to place
@@ -954,20 +954,20 @@ right half of the same page.)
where
<P>
-<TT>&#92;ffcontinuedtextlayout</TT><A NAME="4172"></A><TT>&#123;<I>text</I>&#125;</TT>
+<TT>&#92;ffcontinuedtextlayout</TT><A NAME="4173"></A><TT>&#123;<I>text</I>&#125;</TT>
<P>
governs how the continuation text should be displayed. The font used
to display the continuation text is given by
<P>
-<TT>&#92;ffcontinuedtextfont</TT><A NAME="4179"></A><TT>&#123;<I>text</I>&#125;</TT>
+<TT>&#92;ffcontinuedtextfont</TT><A NAME="4180"></A><TT>&#123;<I>text</I>&#125;</TT>
<P>
<P>
Note that this assumes that it should appear that no paragraph
break occurs in the transition between the two frames. If you
want a paragraph break you need to explicitly put one before
-and after <TT>&#92;continueonframe</TT><A NAME="4186"></A>. For example:
+and after <TT>&#92;continueonframe</TT><A NAME="4187"></A>. For example:
<PRE>
\begin{dynamiccontents*}{frame1}
Some text in the first frame. (Let's
@@ -994,21 +994,21 @@ right half of the same page.)
<P>
<UL>
-<LI>Verbatim text<A NAME="960"></A> can't be used in a
-<A HREF=ffuserguide.html#gls:dynamic NAME="12667">dynamic frame</A>. This includes
-the body of the <TT>dynamiccontents</TT><A NAME="4195"></A> and <TT>dynamiccontents*</TT><A NAME="4198"></A>
+<LI>Verbatim text<A NAME="961"></A> can't be used in a
+<A HREF=ffuserguide.html#gls:dynamic NAME="12668">dynamic frame</A>. This includes
+the body of the <TT>dynamiccontents</TT><A NAME="4196"></A> and <TT>dynamiccontents*</TT><A NAME="4199"></A>
environments.
<P>
</LI>
-<LI><TT>&#92;continueonframe</TT><A NAME="4201"></A> can't be used in the
+<LI><TT>&#92;continueonframe</TT><A NAME="4202"></A> can't be used in the
argument of any of the commands that set the contents of a
-dynamic frame, such as <TT>&#92;setdynamiccontents</TT><A NAME="4206"></A>.
+dynamic frame, such as <TT>&#92;setdynamiccontents</TT><A NAME="4207"></A>.
<P>
</LI>
<LI>Dynamic frames are painted on the page after all the
-static and flow <A HREF=ffuserguide.html#gls:frame NAME="12682">frames</A>. If the location of a dynamic frame overlaps the location of any static or flow frames, the contents
+static and flow <A HREF=ffuserguide.html#gls:frame NAME="12683">frames</A>. If the location of a dynamic frame overlaps the location of any static or flow frames, the contents
of the dynamic frame will obscure the contents of the overlapping
frames.
</LI>
@@ -1032,9 +1032,9 @@ such as the size and location.</I>
<P>
<P>
-Once you have defined the <A HREF=ffuserguide.html#gls:flow NAME="12831">flow frames</A>, <A HREF=ffuserguide.html#gls:static NAME="12838">static frames</A> and
-<A HREF=ffuserguide.html#gls:dynamic NAME="12845">dynamic frames</A>, their attributes can be changed. The three types of
-<A HREF=ffuserguide.html#gls:frame NAME="12852">frame</A> mostly have the same set of attributes, but some are
+Once you have defined the <A HREF=ffuserguide.html#gls:flow NAME="12832">flow frames</A>, <A HREF=ffuserguide.html#gls:static NAME="12839">static frames</A> and
+<A HREF=ffuserguide.html#gls:dynamic NAME="12846">dynamic frames</A>, their attributes can be changed. The three types of
+<A HREF=ffuserguide.html#gls:frame NAME="12853">frame</A> mostly have the same set of attributes, but some are
specific to a certain type.
<P>
@@ -1042,59 +1042,59 @@ Flow frame attributes are modified using
either the command:
<P>
-<TT>&#92;setflowframe</TT><A NAME="4215"></A><TT>&#123;<I>idn list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
+<TT>&#92;setflowframe</TT><A NAME="4216"></A><TT>&#123;<I>idn list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
<P>
or the starred version:
<P>
-<TT>&#92;setflowframe*</TT><A NAME="4224"></A><TT>&#123;<I>label list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
+<TT>&#92;setflowframe*</TT><A NAME="4225"></A><TT>&#123;<I>label list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
<P>
or the attributes for all flow frames can be set using:
<P>
-<TT>&#92;setallflowframes</TT><A NAME="4233"></A><TT>&#123;<I>key-val list</I>&#125;</TT>
+<TT>&#92;setallflowframes</TT><A NAME="4234"></A><TT>&#123;<I>key-val list</I>&#125;</TT>
<P>
Static frame attributes are modified using either the command:
<P>
-<TT>&#92;setstaticframe</TT><A NAME="4240"></A><TT>&#123;<I>idn list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
+<TT>&#92;setstaticframe</TT><A NAME="4241"></A><TT>&#123;<I>idn list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
<P>
or the starred version:
<P>
-<TT>&#92;setstaticframe*</TT><A NAME="4249"></A><TT>&#123;<I>label list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
+<TT>&#92;setstaticframe*</TT><A NAME="4250"></A><TT>&#123;<I>label list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
<P>
or the attributes for all static frames can be set using:
<P>
-<TT>&#92;setallstaticframes</TT><A NAME="4258"></A><TT>&#123;<I>key-val list</I>&#125;</TT>
+<TT>&#92;setallstaticframes</TT><A NAME="4259"></A><TT>&#123;<I>key-val list</I>&#125;</TT>
<P>
Dynamic frame attributes are modified using either the command:
<P>
-<TT>&#92;setdynamicframe</TT><A NAME="4265"></A><TT>&#123;<I>idn list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
+<TT>&#92;setdynamicframe</TT><A NAME="4266"></A><TT>&#123;<I>idn list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
<P>
or the starred version:
<P>
-<TT>&#92;setdynamicframe*</TT><A NAME="4274"></A><TT>&#123;<I>label list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
+<TT>&#92;setdynamicframe*</TT><A NAME="4275"></A><TT>&#123;<I>label list</I>&#125;&#123;<I>key-val list</I>&#125;</TT>
<P>
or the attributes for all dynamic frames can be set using:
<P>
-<TT>&#92;setalldynamicframes</TT><A NAME="4283"></A><TT>&#123;<I>key-val list</I>&#125;</TT>
+<TT>&#92;setalldynamicframes</TT><A NAME="4284"></A><TT>&#123;<I>key-val list</I>&#125;</TT>
<P>
<P>
In each of the above, <I>idn list</I> can either be one of the
keywords: <TT>all</TT>, <TT>odd</TT> or <TT>even</TT> (indicating
all frames of that type, frames of that type whose
-<A HREF=ffuserguide.html#gls:idn NAME="12891">IDN</A> is odd or frames of that type whose IDN is even) or it can be a comma-separated list of ID numbers, or
+<A HREF=ffuserguide.html#gls:idn NAME="12892">IDN</A> is odd or frames of that type whose IDN is even) or it can be a comma-separated list of ID numbers, or
IDN ranges.
<P>
For the starred versions, <I>label list</I> should be
-a comma-separated list of <A HREF=ffuserguide.html#gls:idl NAME="12910">IDLs</A>. Note that you can't use the
+a comma-separated list of <A HREF=ffuserguide.html#gls:idl NAME="12911">IDLs</A>. Note that you can't use the
above keywords or have ranges in <I>label list</I>.
<P>
@@ -1104,27 +1104,27 @@ attributes to modify. The available values are as follows:
<P>
<DL>
-<DT><STRONG>width<A NAME="4289"></A>=<I>length</I></STRONG></DT>
+<DT><STRONG>width<A NAME="4290"></A>=<I>length</I></STRONG></DT>
<DD>The width of the frame.
<P>
</DD>
-<DT><STRONG>height<A NAME="4290"></A>=<I>length</I></STRONG></DT>
+<DT><STRONG>height<A NAME="4291"></A>=<I>length</I></STRONG></DT>
<DD>The height of the frame.
<P>
</DD>
-<DT><STRONG>x<A NAME="4291"></A>=<I>length</I></STRONG></DT>
+<DT><STRONG>x<A NAME="4292"></A>=<I>length</I></STRONG></DT>
<DD>The x-coordinate of the frame for all pages on which it is defined.
<P>
</DD>
-<DT><STRONG>y<A NAME="4292"></A>=<I>length</I></STRONG></DT>
+<DT><STRONG>y<A NAME="4293"></A>=<I>length</I></STRONG></DT>
<DD>The y-coordinate of the frame for all pages on which it is defined.
<P>
</DD>
-<DT><STRONG>evenx<A NAME="4293"></A>=<I>length</I></STRONG></DT>
+<DT><STRONG>evenx<A NAME="4294"></A>=<I>length</I></STRONG></DT>
<DD>The x-coordinate of the
frame for all even pages on which it is defined, but only if
the document is a two-sided document.
@@ -1143,17 +1143,17 @@ on even pages.
You can swap the odd and even values using the commands:
<P>
-<TT>&#92;ffswapoddeven</TT><A NAME="4295"></A><TT>&#123;<I>IDN</I>&#125;</TT>
+<TT>&#92;ffswapoddeven</TT><A NAME="4296"></A><TT>&#123;<I>IDN</I>&#125;</TT>
<P>
(for flow frames)
<P>
-<TT>&#92;sfswapoddeven</TT><A NAME="4302"></A><TT>&#123;<I>IDN</I>&#125;</TT>
+<TT>&#92;sfswapoddeven</TT><A NAME="4303"></A><TT>&#123;<I>IDN</I>&#125;</TT>
<P>
(for static frames) or
<P>
-<TT>&#92;dfswapoddeven</TT><A NAME="4309"></A><TT>&#123;<I>IDN</I>&#125;</TT>
+<TT>&#92;dfswapoddeven</TT><A NAME="4310"></A><TT>&#123;<I>IDN</I>&#125;</TT>
<P>
(for dynamic frames). These
commands all have starred versions which take the frame's
@@ -1161,28 +1161,28 @@ IDL instead of its IDN.
<P>
</DD>
-<DT><STRONG>eveny<A NAME="4315"></A>=<I>length</I></STRONG></DT>
+<DT><STRONG>eveny<A NAME="4316"></A>=<I>length</I></STRONG></DT>
<DD>The y-coordinate of the
frame for all even pages on which it is defined, but only if
the document is a two-sided document.
<P>
</DD>
-<DT><STRONG>oddx<A NAME="4316"></A>=<I>length</I></STRONG></DT>
+<DT><STRONG>oddx<A NAME="4317"></A>=<I>length</I></STRONG></DT>
<DD>The x-coordinate of the
frame for all odd pages on which it is defined, if the
document is two-sided.
<P>
</DD>
-<DT><STRONG>oddy<A NAME="4317"></A>=<I>length</I></STRONG></DT>
+<DT><STRONG>oddy<A NAME="4318"></A>=<I>length</I></STRONG></DT>
<DD>The y-coordinate of the
frame for all odd pages on which it is defined,
if the document is two-sided.
<P>
</DD>
-<DT><STRONG>valign<A NAME="4318"></A>=<I>pos</I></STRONG></DT>
+<DT><STRONG>valign<A NAME="4319"></A>=<I>pos</I></STRONG></DT>
<DD>Change the vertical alignment
of material inside a static or dynamic frame. The value <I>pos</I>
may be one of: <TT>c</TT>, <TT>t</TT> or <TT>b</TT>.
@@ -1192,7 +1192,7 @@ This key is not available for flow frames.
<P>
</DD>
-<DT><STRONG>label<A NAME="4319"></A>=<I>text</I></STRONG></DT>
+<DT><STRONG>label<A NAME="4320"></A>=<I>text</I></STRONG></DT>
<DD>Assign an IDL to the frame.
(If you do not specify a label when you first define a frame it will be given a label identical to its IDN.) This key is
provided to allow the user to label frames that have been
@@ -1202,15 +1202,15 @@ Layouts</A>.
<P>
</DD>
-<DT><STRONG>border<A NAME="4320"></A>=<I>style</I></STRONG></DT>
+<DT><STRONG>border<A NAME="4321"></A>=<I>style</I></STRONG></DT>
<DD>The style of the border around the
frame, this can take the values: <TT>none</TT> (no border),
<TT>plain</TT> (plain border) or the name of a LaTeX
-<A HREF=ffuserguide.html#gls:fcmd NAME="13009">frame making command</A> without the preceding backslash. (I admit
+<A HREF=ffuserguide.html#gls:fcmd NAME="13010">frame making command</A> without the preceding backslash. (I admit
the notation is a little confusing, a frame making command is a command that places some kind of border around its
-argument, such as <TT>&#92;fbox</TT><A NAME="4322"></A>, or if you are using the
-<TT>fancybox</TT><A NAME="4327"></A> package: <TT>&#92;doublebox</TT><A NAME="4330"></A>, <TT>&#92;ovalbox</TT><A NAME="4335"></A>,
-<TT>&#92;Ovalbox</TT><A NAME="4340"></A> and <TT>&#92;shadowbox</TT><A NAME="4345"></A>.)
+argument, such as <TT>&#92;fbox</TT><A NAME="4323"></A>, or if you are using the
+<TT>fancybox</TT><A NAME="4328"></A> package: <TT>&#92;doublebox</TT><A NAME="4331"></A>, <TT>&#92;ovalbox</TT><A NAME="4336"></A>,
+<TT>&#92;Ovalbox</TT><A NAME="4341"></A> and <TT>&#92;shadowbox</TT><A NAME="4346"></A>.)
The value <TT>fbox</TT> is equivalent to <TT>plain</TT>.
<P>
@@ -1225,7 +1225,7 @@ Or you can define your own border:
</PRE>
<P>
-This next example uses the <TT>tikz</TT><A NAME="4350"></A> package to define a fancy
+This next example uses the <TT>tikz</TT><A NAME="4351"></A> package to define a fancy
frame, so you need to use:
<PRE>
\usepackage{tikz}
@@ -1249,9 +1249,9 @@ The border command is defined as follows:
(0pt,0pt) rectangle (\fancywidth,\fancyheight);
}}
</PRE>
-This makes a bumpy border, but it uses <TT>&#92;flowframesep</TT><A NAME="4353"></A> to
+This makes a bumpy border, but it uses <TT>&#92;flowframesep</TT><A NAME="4354"></A> to
determine the gap between the border and the text and uses
-<TT>&#92;flowframerule</TT><A NAME="4358"></A> to set the line width. This ensures that
+<TT>&#92;flowframerule</TT><A NAME="4359"></A> to set the line width. This ensures that
the offset (see below) is correctly computed.
<P>
@@ -1262,14 +1262,14 @@ This new border can now be applied to a frame:
<P>
</DD>
-<DT><STRONG>offset<A NAME="4362"></A>=<I>offset</I></STRONG></DT>
+<DT><STRONG>offset<A NAME="4363"></A>=<I>offset</I></STRONG></DT>
<DD>The border offset, if it is a
user-defined border. This is the distance from the outer
edge of the left hand border to the left edge of the
-<A HREF=ffuserguide.html#gls:bbox NAME="13024">bounding box</A> of the text inside the border. The <TT>flowfram</TT>
+<A HREF=ffuserguide.html#gls:bbox NAME="13025">bounding box</A> of the text inside the border. The <TT>flowfram</TT>
package is able to compute the border for the following
-known frame making commands: <TT>&#92;fbox</TT><A NAME="4364"></A>, <TT>&#92;ovalbox</TT><A NAME="4369"></A>,
-<TT>&#92;Ovalbox</TT><A NAME="4374"></A>, <TT>&#92;doublebox</TT><A NAME="4379"></A> and <TT>&#92;shadowbox</TT><A NAME="4384"></A>.
+known frame making commands: <TT>&#92;fbox</TT><A NAME="4365"></A>, <TT>&#92;ovalbox</TT><A NAME="4370"></A>,
+<TT>&#92;Ovalbox</TT><A NAME="4375"></A>, <TT>&#92;doublebox</TT><A NAME="4380"></A> and <TT>&#92;shadowbox</TT><A NAME="4385"></A>.
For all other borders, the offset is assumed to be
<TT>-&#92;flowframesep-&#92;flowframerule</TT>.
If you define your own frame making command, you may need to
@@ -1293,7 +1293,7 @@ so you would need to do:
<P>
</DD>
-<DT><STRONG>bordercolor<A NAME="4388"></A>=<I>colour</I></STRONG></DT>
+<DT><STRONG>bordercolor<A NAME="4389"></A>=<I>colour</I></STRONG></DT>
<DD>The colour of the border
if you are using a standard frame making command.
The colour can either be specified as, e.g. <TT>green</TT>,
@@ -1305,7 +1305,7 @@ For example:
<P>
</DD>
-<DT><STRONG>textcolor<A NAME="4389"></A>=<I>colour</I></STRONG></DT>
+<DT><STRONG>textcolor<A NAME="4390"></A>=<I>colour</I></STRONG></DT>
<DD>The text colour for that
frame. Again, the colour can either be specified as,
e.g. <TT>green</TT>, or including the colour model,
@@ -1313,7 +1313,7 @@ e.g. <code>[rgb]{0,1,0}</code>.
<P>
</DD>
-<DT><STRONG>backcolor<A NAME="4390"></A>=<I>colour</I></STRONG></DT>
+<DT><STRONG>backcolor<A NAME="4391"></A>=<I>colour</I></STRONG></DT>
<DD>The background colour for
that frame. Again, the colour can either be specified as,
e.g. <TT>green</TT>, or including the colour model,
@@ -1324,14 +1324,14 @@ will need to define your own border type (see above).
<P>
</DD>
-<DT><STRONG>pages<A NAME="4391"></A>=<I>page list</I></STRONG></DT>
-<DD>The <A HREF=ffuserguide.html#gls:pglist NAME="13051">list of
+<DT><STRONG>pages<A NAME="4392"></A>=<I>page list</I></STRONG></DT>
+<DD>The <A HREF=ffuserguide.html#gls:pglist NAME="13052">list of
pages</A> for which the frame should appear. This can either have
the values: <TT>all</TT>, <TT>even</TT>, <TT>odd</TT> or <TT>none</TT>
(the latter removes the frame from that point on--useful if you
have multiple pages with the same number), or it can be a
comma-separated list of single pages, or
-<A HREF=ffuserguide.html#gls:pgrange NAME="13066">page ranges</A>.
+<A HREF=ffuserguide.html#gls:pgrange NAME="13067">page ranges</A>.
For example:
<PRE>
\setdynamicframe{1}{pages=1,5,8-10}
@@ -1339,7 +1339,7 @@ For example:
<P>
</DD>
-<DT><STRONG>margin<A NAME="4392"></A>=<I>side</I></STRONG></DT>
+<DT><STRONG>margin<A NAME="4393"></A>=<I>side</I></STRONG></DT>
<DD>The side of
the flow frame that its corresponding margin should go on. This
can take the values <TT>left</TT>, <TT>right</TT>,
@@ -1348,13 +1348,13 @@ for flow frames.
<P>
</DD>
-<DT><STRONG>clear<A NAME="4393"></A>=<I>boolean</I></STRONG></DT>
+<DT><STRONG>clear<A NAME="4394"></A>=<I>boolean</I></STRONG></DT>
<DD>If this value is set, the static or dynamic frame will be
cleared at the start of the
next page, otherwise it will only be cleared on the next
-occurrence of <TT>&#92;setstaticcontents</TT><A NAME="4395"></A> or the
-<TT>staticcontents</TT><A NAME="4400"></A> environment, or the
-<TT>&#92;setdynamiccontents</TT><A NAME="4403"></A>, depending on the frame type.
+occurrence of <TT>&#92;setstaticcontents</TT><A NAME="4396"></A> or the
+<TT>staticcontents</TT><A NAME="4401"></A> environment, or the
+<TT>&#92;setdynamiccontents</TT><A NAME="4404"></A>, depending on the frame type.
This value is not set by default. This setting is not
available for flow frames.
@@ -1367,13 +1367,13 @@ the command:
</PRE>
<P>
-If you want to put <TT>&#92;label</TT><A NAME="4408"></A> in a static or dynamic frame, you
-should use the clear<A NAME="4412"></A> key to prevent the label from being
+If you want to put <TT>&#92;label</TT><A NAME="4409"></A> in a static or dynamic frame, you
+should use the clear<A NAME="4413"></A> key to prevent the label from being
multiply defined.
<P>
</DD>
-<DT><STRONG>style<A NAME="4413"></A>=<I>cmd</I></STRONG></DT>
+<DT><STRONG>style<A NAME="4414"></A>=<I>cmd</I></STRONG></DT>
<DD>This should be
the name of a command <I>without</I> the preceding backslash,
to be applied to the contents of the specified dynamic frame.
@@ -1393,18 +1393,18 @@ This setting is only available for dynamic frames.
<P>
</DD>
-<DT><STRONG>angle<A NAME="4414"></A>=<I>n</I></STRONG></DT>
+<DT><STRONG>angle<A NAME="4415"></A>=<I>n</I></STRONG></DT>
<DD>Rotate the contents of the
frame by <I>n</I> degrees (new to
-version 1.02). Note that the <A HREF=ffuserguide.html#gls:bbox NAME="13105">bounding boxes</A> will not
+version 1.02). Note that the <A HREF=ffuserguide.html#gls:bbox NAME="13106">bounding boxes</A> will not
appear rotated.
<P>
</DD>
-<DT><STRONG>shape<A NAME="4415"></A>=<I>shape command</I></STRONG></DT>
+<DT><STRONG>shape<A NAME="4416"></A>=<I>shape command</I></STRONG></DT>
<DD>Define a shape for
the contents of a static frame or dynamic frame (new
-to version 1.03). If <I>shape command</I> is <TT>&#92;relax</TT><A NAME="4417"></A>, no
+to version 1.03). If <I>shape command</I> is <TT>&#92;relax</TT><A NAME="4418"></A>, no
paragraph shape will be applied. See
<A HREF="ffuserguide.html#sec:parshape">Non-Rectangular
Frames</A> for further details.
@@ -1424,55 +1424,55 @@ Frames</A> for further details.
<P>
As from version 1.03, it is now possible to specify
-non-rectangular <A HREF=ffuserguide.html#gls:static NAME="13177">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="13180">dynamic</A> frames (but not <A HREF=ffuserguide.html#gls:flow NAME="13187">flow frames</A>). Note
+non-rectangular <A HREF=ffuserguide.html#gls:static NAME="13178">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="13181">dynamic</A> frames (but not <A HREF=ffuserguide.html#gls:flow NAME="13188">flow frames</A>). Note
that the
-<A HREF=ffuserguide.html#gls:bbox NAME="13194">bounding box</A> will still appear as a rectangle despite the
-<A HREF=ffuserguide.html#gls:frame NAME="13201">frame's</A> shape setting. You may use either TeX's
-<TT>&#92;parshape</TT><A NAME="4430"></A> command, or the <TT>&#92;shapepar</TT><A NAME="4435"></A>
-command defined in Donald&nbsp;Arseneau's <TT>shapepar</TT><A NAME="4440"></A>
-package (if using <TT>&#92;shapepar</TT><A NAME="4443"></A>, remember to include
-the <TT>shapepar</TT><A NAME="4448"></A> package.)
+<A HREF=ffuserguide.html#gls:bbox NAME="13195">bounding box</A> will still appear as a rectangle despite the
+<A HREF=ffuserguide.html#gls:frame NAME="13202">frame's</A> shape setting. You may use either TeX's
+<TT>&#92;parshape</TT><A NAME="4431"></A> command, or the <TT>&#92;shapepar</TT><A NAME="4436"></A>
+command defined in Donald&nbsp;Arseneau's <TT>shapepar</TT><A NAME="4441"></A>
+package (if using <TT>&#92;shapepar</TT><A NAME="4444"></A>, remember to include
+the <TT>shapepar</TT><A NAME="4449"></A> package.)
<P>
-Note that it is better to use <TT>&#92;parshape</TT><A NAME="4451"></A> instead
-of <TT>&#92;shapepar</TT><A NAME="4456"></A> as the latter is more restrictive and
-requires more processing. However, <TT>&#92;shapepar</TT><A NAME="4461"></A> provides
+Note that it is better to use <TT>&#92;parshape</TT><A NAME="4452"></A> instead
+of <TT>&#92;shapepar</TT><A NAME="4457"></A> as the latter is more restrictive and
+requires more processing. However, <TT>&#92;shapepar</TT><A NAME="4462"></A> provides
greater flexibility in the type of shape that can be used.
<DL>
-<DT><STRONG><TT>&#92;parshape</TT><A NAME="4466"></A></STRONG></DT>
-<DD>With <TT>&#92;parshape</TT><A NAME="4471"></A> you can not have cut-outs in the middle,
+<DT><STRONG><TT>&#92;parshape</TT><A NAME="4467"></A></STRONG></DT>
+<DD>With <TT>&#92;parshape</TT><A NAME="4472"></A> you can not have cut-outs in the middle,
top or bottom of a frame, however it is possible to have cut-outs
in the left or right side of the frame. When used with the
-shape<A NAME="4475"></A> key for static or dynamic frames, the effects of
-<TT>&#92;par</TT><A NAME="4477"></A> and the sectioning commands are modified to allow
+shape<A NAME="4476"></A> key for static or dynamic frames, the effects of
+<TT>&#92;par</TT><A NAME="4478"></A> and the sectioning commands are modified to allow
the paragraph shape to extend beyond a single paragraph, and
-to allow sectioning commands (but not <TT>&#92;chapter</TT><A NAME="4482"></A>
-or <TT>&#92;part</TT><A NAME="4487"></A>).
+to allow sectioning commands (but not <TT>&#92;chapter</TT><A NAME="4483"></A>
+or <TT>&#92;part</TT><A NAME="4488"></A>).
<P>
</DD>
-<DT><STRONG><TT>&#92;shapepar</TT><A NAME="4492"></A></STRONG></DT>
-<DD>With <TT>&#92;shapepar</TT><A NAME="4497"></A> you may
+<DT><STRONG><TT>&#92;shapepar</TT><A NAME="4493"></A></STRONG></DT>
+<DD>With <TT>&#92;shapepar</TT><A NAME="4498"></A> you may
have cut-outs, but you may not have any sectioning commands,
paragraph breaks, vertical spacing or mathematics. You can
-simulate a paragraph break using <TT>&#92;simpar</TT><A NAME="4502"></A>, but this
+simulate a paragraph break using <TT>&#92;simpar</TT><A NAME="4503"></A>, but this
is not recommended. The size of the shape depends on the
amount of text, so the shape will expand or contract as you
-add or delete text. See the <TT>shapepar</TT><A NAME="4507"></A> documentation for
+add or delete text. See the <TT>shapepar</TT><A NAME="4508"></A> documentation for
more details.
</DD>
</DL>
<P>
To restore a frame to its default rectangular setting use
-shape<A NAME="4509"></A>=<TT>&#92;relax</TT><A NAME="4511"></A>.
+shape<A NAME="4510"></A>=<TT>&#92;relax</TT><A NAME="4512"></A>.
<P>
-For those unfamiliar with TeX's <TT>&#92;parshape</TT><A NAME="4516"></A> command,
+For those unfamiliar with TeX's <TT>&#92;parshape</TT><A NAME="4517"></A> command,
the syntax is as follows:
<BR>
-<BR><TT>&#92;parshape</TT><A NAME="4521"></A>=<I>n</I> <I>i<SUB>1</SUB></I> <I>l<SUB>1</SUB></I>
+<BR><TT>&#92;parshape</TT><A NAME="4522"></A>=<I>n</I> <I>i<SUB>1</SUB></I> <I>l<SUB>1</SUB></I>
<I>i<SUB>2</SUB></I> <I>l<SUB>2</SUB></I> ...
<I>i<SUB>n</SUB></I> <I>l<SUB>n</SUB></I>
<BR>
@@ -1505,15 +1505,15 @@ zigzag shaped static frame (whose IDN is <TT>shapedt</TT>):
<P>
<P>
-The syntax for <TT>&#92;shapepar</TT><A NAME="4546"></A> is more complicated, see
-the <TT>shapepar</TT><A NAME="4551"></A> documentation for more details. In general:
+The syntax for <TT>&#92;shapepar</TT><A NAME="4547"></A> is more complicated, see
+the <TT>shapepar</TT><A NAME="4552"></A> documentation for more details. In general:
<BR>
-<BR><TT>&#92;shapepar</TT><A NAME="4554"></A>{<I>shape specs</I>}
+<BR><TT>&#92;shapepar</TT><A NAME="4555"></A>{<I>shape specs</I>}
<BR>
<BR>
-The <TT>shapepar</TT><A NAME="4559"></A> package has four predefined shapes:
-<TT>&#92;squareshape</TT><A NAME="4562"></A>, <TT>&#92;diamondshape</TT><A NAME="4567"></A>,
-<TT>&#92;heartshape</TT><A NAME="4572"></A> and <TT>&#92;nutshape</TT><A NAME="4577"></A>.
+The <TT>shapepar</TT><A NAME="4560"></A> package has four predefined shapes:
+<TT>&#92;squareshape</TT><A NAME="4563"></A>, <TT>&#92;diamondshape</TT><A NAME="4568"></A>,
+<TT>&#92;heartshape</TT><A NAME="4573"></A> and <TT>&#92;nutshape</TT><A NAME="4578"></A>.
<P>
For example, to assign
@@ -1551,7 +1551,7 @@ determine the locations and dimensions of frames.</I>
<P>
This chapter describes some of the commands available that can
-be used to determine the locations and dimensions of <A HREF=ffuserguide.html#gls:frame NAME="13227">frames</A>.
+be used to determine the locations and dimensions of <A HREF=ffuserguide.html#gls:frame NAME="13228">frames</A>.
See the accompanying document <TT>flowfram.pdf</TT> for more details of
these commands or for other commands not listed here.
<P>
@@ -1566,8 +1566,8 @@ these commands or for other commands not listed here.
</H1>
<P>
-As mentioned earlier, when you create new <A HREF=ffuserguide.html#gls:frame NAME="13259">frames</A>,
-you must specify their location relative to the <A HREF=ffuserguide.html#gls:typeblock NAME="13266">typeblock</A>, but
+As mentioned earlier, when you create new <A HREF=ffuserguide.html#gls:frame NAME="13260">frames</A>,
+you must specify their location relative to the <A HREF=ffuserguide.html#gls:typeblock NAME="13267">typeblock</A>, but
what if you want to position a frame a set distance from the
edge of the paper? The <TT>flowfram</TT> package provides the following
commands that compute the distance from the typeblock to the
@@ -1576,7 +1576,7 @@ paper boundary:
<P>
<P>
-<TT>&#92;computeleftedgeodd</TT><A NAME="4608"></A><TT>&#123;<I>length</I>&#125;</TT>
+<TT>&#92;computeleftedgeodd</TT><A NAME="4609"></A><TT>&#123;<I>length</I>&#125;</TT>
<P>
This computes the position of the left edge of the (odd) page, relative
to the left side of the typeblock, and stores the result in
@@ -1585,14 +1585,14 @@ to the left side of the typeblock, and stores the result in
<P>
<P>
-<TT>&#92;computeleftedgeeven</TT><A NAME="4615"></A><TT>&#123;<I>length</I>&#125;</TT>
+<TT>&#92;computeleftedgeeven</TT><A NAME="4616"></A><TT>&#123;<I>length</I>&#125;</TT>
<P>
As above, but for even pages.
<P>
<P>
-<TT>&#92;computetopedge</TT><A NAME="4622"></A><TT>&#123;<I>length</I>&#125;</TT>
+<TT>&#92;computetopedge</TT><A NAME="4623"></A><TT>&#123;<I>length</I>&#125;</TT>
<P>
This computes the top edge of the page, relative to the bottom of the
typeblock, and stores the result in <I>length</I>.
@@ -1600,7 +1600,7 @@ typeblock, and stores the result in <I>length</I>.
<P>
<P>
-<TT>&#92;computebottomedge</TT><A NAME="4629"></A><TT>&#123;<I>length</I>&#125;</TT>
+<TT>&#92;computebottomedge</TT><A NAME="4630"></A><TT>&#123;<I>length</I>&#125;</TT>
<P>
This computes the bottom edge of the page, relative to the bottom of the
typeblock, and stores the result in <I>length</I>.
@@ -1608,7 +1608,7 @@ typeblock, and stores the result in <I>length</I>.
<P>
<P>
-<TT>&#92;computerightedgeodd</TT><A NAME="4636"></A><TT>&#123;<I>length</I>&#125;</TT>
+<TT>&#92;computerightedgeodd</TT><A NAME="4637"></A><TT>&#123;<I>length</I>&#125;</TT>
<P>
This computes the position of the right edge of the (odd) page,
relative to the left side of the typeblock, and store the result
@@ -1617,7 +1617,7 @@ in <I>length</I>.
<P>
<P>
-<TT>&#92;computerightedgeeven</TT><A NAME="4643"></A><TT>&#123;<I>length</I>&#125;</TT>
+<TT>&#92;computerightedgeeven</TT><A NAME="4644"></A><TT>&#123;<I>length</I>&#125;</TT>
<P>
As above, but for even pages.
@@ -1654,31 +1654,31 @@ assumes odd and even pages have the same margins):
<P>
It is possible to determine the dimensions and locations
-of a <A HREF=ffuserguide.html#gls:frame NAME="13310">frame</A> using one of the following commands:
+of a <A HREF=ffuserguide.html#gls:frame NAME="13311">frame</A> using one of the following commands:
<P>
<UL>
-<LI><TT>&#92;getstaticbounds</TT><A NAME="4654"></A><TT>&#123;<I>IDN</I>&#125;</TT>
+<LI><TT>&#92;getstaticbounds</TT><A NAME="4655"></A><TT>&#123;<I>IDN</I>&#125;</TT>
</LI>
-<LI><TT>&#92;getstaticbounds*</TT><A NAME="4661"></A><TT>&#123;<I>IDL</I>&#125;</TT>
+<LI><TT>&#92;getstaticbounds*</TT><A NAME="4662"></A><TT>&#123;<I>IDL</I>&#125;</TT>
</LI>
-<LI><TT>&#92;getflowbounds</TT><A NAME="4668"></A><TT>&#123;<I>IDN</I>&#125;</TT>
+<LI><TT>&#92;getflowbounds</TT><A NAME="4669"></A><TT>&#123;<I>IDN</I>&#125;</TT>
</LI>
-<LI><TT>&#92;getflowbounds*</TT><A NAME="4675"></A><TT>&#123;<I>IDL</I>&#125;</TT>
+<LI><TT>&#92;getflowbounds*</TT><A NAME="4676"></A><TT>&#123;<I>IDL</I>&#125;</TT>
</LI>
-<LI><TT>&#92;getdynamicbounds</TT><A NAME="4682"></A><TT>&#123;<I>IDN</I>&#125;</TT>
+<LI><TT>&#92;getdynamicbounds</TT><A NAME="4683"></A><TT>&#123;<I>IDN</I>&#125;</TT>
</LI>
-<LI><TT>&#92;getdynamicbounds*</TT><A NAME="4689"></A><TT>&#123;<I>IDL</I>&#125;</TT>
+<LI><TT>&#92;getdynamicbounds*</TT><A NAME="4690"></A><TT>&#123;<I>IDL</I>&#125;</TT>
</LI>
</UL>
<P>
-For each command, the starred version takes an <A HREF=ffuserguide.html#gls:idl NAME="13317">IDL</A> as the
-argument, and the unstarred version takes an <A HREF=ffuserguide.html#gls:idn NAME="13324">IDN</A> as the
+For each command, the starred version takes an <A HREF=ffuserguide.html#gls:idl NAME="13318">IDL</A> as the
+argument, and the unstarred version takes an <A HREF=ffuserguide.html#gls:idn NAME="13325">IDN</A> as the
argument. Each command stores the relevant information in the
-lengths <TT>&#92;ffareawidth</TT><A NAME="4696"></A>, <TT>&#92;ffareaheight</TT><A NAME="4701"></A>,
-<TT>&#92;ffareax</TT><A NAME="4706"></A> and <TT>&#92;ffareay</TT><A NAME="4711"></A>.
+lengths <TT>&#92;ffareawidth</TT><A NAME="4697"></A>, <TT>&#92;ffareaheight</TT><A NAME="4702"></A>,
+<TT>&#92;ffareax</TT><A NAME="4707"></A> and <TT>&#92;ffareay</TT><A NAME="4712"></A>.
<P>
For other related commands, see the section "Determining Dimensions
@@ -1694,64 +1694,64 @@ and Locations" in the accompanying document
</H1>
<P>
-To print the relative location of one <A HREF=ffuserguide.html#gls:frame NAME="13384">frame</A> from another do:
+To print the relative location of one <A HREF=ffuserguide.html#gls:frame NAME="13385">frame</A> from another do:
<P>
-<TT>&#92;relativeframelocation</TT><A NAME="4720"></A><TT>&#123;<I>type1</I>&#125;&#123;<I>idn1</I>&#125;&#123;<I>type2</I>&#125;&#123;<I>idn2</I>&#125;</TT>
+<TT>&#92;relativeframelocation</TT><A NAME="4721"></A><TT>&#123;<I>type1</I>&#125;&#123;<I>idn1</I>&#125;&#123;<I>type2</I>&#125;&#123;<I>idn2</I>&#125;</TT>
<P>
-where <I>type1</I> and <I>idn1</I> indicate the type and <A HREF=ffuserguide.html#gls:idn NAME="13391">IDN</A> of
+where <I>type1</I> and <I>idn1</I> indicate the type and <A HREF=ffuserguide.html#gls:idn NAME="13392">IDN</A> of
the first frame, and <I>type2</I> and <I>idn2</I> indicate the type
-and <A HREF=ffuserguide.html#gls:idn NAME="13398">IDN</A> of the second frame. There is also a starred version:
+and <A HREF=ffuserguide.html#gls:idn NAME="13399">IDN</A> of the second frame. There is also a starred version:
<P>
-<TT>&#92;relativeframelocation*</TT><A NAME="4733"></A><TT>&#123;<I>type1</I>&#125;&#123;<I>idl1</I>&#125;&#123;<I>type2</I>&#125;&#123;<I>idll</I>&#125;</TT>
+<TT>&#92;relativeframelocation*</TT><A NAME="4734"></A><TT>&#123;<I>type1</I>&#125;&#123;<I>idl1</I>&#125;&#123;<I>type2</I>&#125;&#123;<I>idll</I>&#125;</TT>
<P>
-where <I>idl1</I> and <I>idl2</I> indicate the <A HREF=ffuserguide.html#gls:idl NAME="13405">IDL</A> of the
+where <I>idl1</I> and <I>idl2</I> indicate the <A HREF=ffuserguide.html#gls:idl NAME="13406">IDL</A> of the
first and second frames, respectively. Both the above commands will
print one of the following:
<P>
<UL>
-<LI><TT>&#92;FFaboveleft</TT><A NAME="4746"></A> if the first frame is above left of the
+<LI><TT>&#92;FFaboveleft</TT><A NAME="4747"></A> if the first frame is above left of the
second frame.
<P>
</LI>
-<LI><TT>&#92;FFaboveright</TT><A NAME="4751"></A> if the first frame is above right of the
+<LI><TT>&#92;FFaboveright</TT><A NAME="4752"></A> if the first frame is above right of the
second frame.
<P>
</LI>
-<LI><TT>&#92;FFabove</TT><A NAME="4756"></A> if the first frame is above the second frame.
+<LI><TT>&#92;FFabove</TT><A NAME="4757"></A> if the first frame is above the second frame.
<P>
</LI>
-<LI><TT>&#92;FFbelowleft</TT><A NAME="4761"></A> if the first frame is below left of the
+<LI><TT>&#92;FFbelowleft</TT><A NAME="4762"></A> if the first frame is below left of the
second frame.
<P>
</LI>
-<LI><TT>&#92;FFbelowright</TT><A NAME="4766"></A> if the first frame is below right of the
+<LI><TT>&#92;FFbelowright</TT><A NAME="4767"></A> if the first frame is below right of the
second frame.
<P>
</LI>
-<LI><TT>&#92;FFbelow</TT><A NAME="4771"></A> if the first frame is below the second frame.
+<LI><TT>&#92;FFbelow</TT><A NAME="4772"></A> if the first frame is below the second frame.
<P>
</LI>
-<LI><TT>&#92;FFleft</TT><A NAME="4776"></A> if the first frame is to the left of the
+<LI><TT>&#92;FFleft</TT><A NAME="4777"></A> if the first frame is to the left of the
second frame.
<P>
</LI>
-<LI><TT>&#92;FFright</TT><A NAME="4781"></A> if the first frame is to the right of the
+<LI><TT>&#92;FFright</TT><A NAME="4782"></A> if the first frame is to the right of the
second frame.
<P>
</LI>
-<LI><TT>&#92;FFoverlap</TT><A NAME="4786"></A> if both frames overlap.
+<LI><TT>&#92;FFoverlap</TT><A NAME="4787"></A> if both frames overlap.
</LI>
</UL>
@@ -1781,13 +1781,13 @@ will be compared, otherwise the frame settings for even pages will
be compared. However remember that the first paragraph of each page
retains the settings in place at the start of the paragraph, so if the
frames have different locations for odd and even pages, then
-<TT>&#92;relativeframelocation</TT><A NAME="4791"></A> may use the wrong page settings if it
+<TT>&#92;relativeframelocation</TT><A NAME="4792"></A> may use the wrong page settings if it
is used at the start of the page.
<P>
For example, the PDF version of this document defined a
-<A HREF=ffuserguide.html#gls:flow NAME="13412">flow frame</A> labelled <TT>main</TT> and a
-<A HREF=ffuserguide.html#gls:dynamic NAME="13419">dynamic frame</A> labelled <TT>chaphead</TT> which is
+<A HREF=ffuserguide.html#gls:flow NAME="13413">flow frame</A> labelled <TT>main</TT> and a
+<A HREF=ffuserguide.html#gls:dynamic NAME="13420">dynamic frame</A> labelled <TT>chaphead</TT> which is
used to display the chapter headings. The following code
<PRE>
The dynamic frame is
@@ -1804,33 +1804,33 @@ There are some short cut commands for frames of the
same type:
<P>
-<TT>&#92;reldynamicloc</TT><A NAME="4796"></A><TT>&#123;<I>idn1</I>&#125;&#123;<I>idn2</I>&#125;</TT>
+<TT>&#92;reldynamicloc</TT><A NAME="4797"></A><TT>&#123;<I>idn1</I>&#125;&#123;<I>idn2</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<BR><TT>&#92;relativeframelocation</TT><A NAME="4805"></A><TT>&#123;dynamic&#125;&#123;<I>idn1</I>&#125;&#123;dynamic&#125;&#123;<I>idn2</I>&#125;</TT>
+<BR><TT>&#92;relativeframelocation</TT><A NAME="4806"></A><TT>&#123;dynamic&#125;&#123;<I>idn1</I>&#125;&#123;dynamic&#125;&#123;<I>idn2</I>&#125;</TT>
<P>
-<TT>&#92;relstaticloc</TT><A NAME="4816"></A><TT>&#123;<I>idn1</I>&#125;&#123;<I>idn2</I>&#125;</TT>
+<TT>&#92;relstaticloc</TT><A NAME="4817"></A><TT>&#123;<I>idn1</I>&#125;&#123;<I>idn2</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<BR><TT>&#92;relativeframelocation</TT><A NAME="4825"></A><TT>&#123;static&#125;&#123;<I>idn1</I>&#125;&#123;static&#125;&#123;<I>idn2</I>&#125;</TT>
+<BR><TT>&#92;relativeframelocation</TT><A NAME="4826"></A><TT>&#123;static&#125;&#123;<I>idn1</I>&#125;&#123;static&#125;&#123;<I>idn2</I>&#125;</TT>
<P>
-<TT>&#92;relflowloc</TT><A NAME="4836"></A><TT>&#123;<I>idn1</I>&#125;&#123;<I>idn2</I>&#125;</TT>
+<TT>&#92;relflowloc</TT><A NAME="4837"></A><TT>&#123;<I>idn1</I>&#125;&#123;<I>idn2</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<BR><TT>&#92;relativeframelocation</TT><A NAME="4845"></A><TT>&#123;flow&#125;&#123;<I>idn1</I>&#125;&#123;flow&#125;&#123;<I>idn2</I>&#125;</TT>
+<BR><TT>&#92;relativeframelocation</TT><A NAME="4846"></A><TT>&#123;flow&#125;&#123;<I>idn1</I>&#125;&#123;flow&#125;&#123;<I>idn2</I>&#125;</TT>
<BR>
<BR>
Each of the above commands also has a starred version that uses the
-<A HREF=ffuserguide.html#gls:idl NAME="13430">IDL</A> instead of the <A HREF=ffuserguide.html#gls:idn NAME="13437">IDN</A>.
+<A HREF=ffuserguide.html#gls:idl NAME="13431">IDL</A> instead of the <A HREF=ffuserguide.html#gls:idn NAME="13438">IDN</A>.
<P>
These commands may be used in the optional argument of
-<TT>&#92;continueonframe</TT><A NAME="4856"></A> for frames that are on the same page.
+<TT>&#92;continueonframe</TT><A NAME="4857"></A> for frames that are on the same page.
For example:
<PRE>
\begin{dynamiccontents}{1}
@@ -1866,7 +1866,7 @@ arranged in a predefined layout.</I>
<P>
The <TT>flowfram</TT> package has a number of commands which
-create <A HREF=ffuserguide.html#gls:frame NAME="13449">frames</A> in a predefined layout. These commands
+create <A HREF=ffuserguide.html#gls:frame NAME="13450">frames</A> in a predefined layout. These commands
may only be used in the preamble.
<P>
<A HREF="ffuserguide.html#top">Top</A>&nbsp;|&nbsp;<A HREF="ffuserguide.html#index">Index</A>
@@ -1878,60 +1878,60 @@ may only be used in the preamble.
</H1>
<P>
-The standard LaTeX commands <TT>&#92;onecolumn</TT><A NAME="4869"></A> and
-<TT>&#92;twocolumn</TT><A NAME="4874"></A> are redefined to create one or two
-<A HREF=ffuserguide.html#gls:flow NAME="13497">flow frames</A> that fill the entire <A HREF=ffuserguide.html#gls:typeblock NAME="13504">typeblock</A> separated
-from each other (in the case of <TT>&#92;twocolumn</TT><A NAME="4879"></A>) by a
-gap of width <TT>&#92;columnsep</TT><A NAME="4884"></A>. The height of these
+The standard LaTeX commands <TT>&#92;onecolumn</TT><A NAME="4870"></A> and
+<TT>&#92;twocolumn</TT><A NAME="4875"></A> are redefined to create one or two
+<A HREF=ffuserguide.html#gls:flow NAME="13498">flow frames</A> that fill the entire <A HREF=ffuserguide.html#gls:typeblock NAME="13505">typeblock</A> separated
+from each other (in the case of <TT>&#92;twocolumn</TT><A NAME="4880"></A>) by a
+gap of width <TT>&#92;columnsep</TT><A NAME="4885"></A>. The height of these
flow frames may not be exactly as high as the typeblock,
as their height is adjusted to make them an integer
-multiple of <TT>&#92;baselineskip</TT><A NAME="4889"></A>. You can switch off this
+multiple of <TT>&#92;baselineskip</TT><A NAME="4890"></A>. You can switch off this
automatic adjustment using the command:
<P>
-<TT>&#92;ffvadjustfalse</TT><A NAME="4894"></A>
+<TT>&#92;ffvadjustfalse</TT><A NAME="4895"></A>
<P>
<P>
-The <TT>&#92;onecolumn</TT><A NAME="4899"></A> and <TT>&#92;twocolumn</TT><A NAME="4904"></A> commands
-also take an optional argument which is the <A HREF=ffuserguide.html#gls:pglist NAME="13519">page list</A> for which those flow frames are defined. In addition
-to <TT>&#92;onecolumn</TT><A NAME="4909"></A> and <TT>&#92;twocolumn</TT><A NAME="4914"></A>, the
+The <TT>&#92;onecolumn</TT><A NAME="4900"></A> and <TT>&#92;twocolumn</TT><A NAME="4905"></A> commands
+also take an optional argument which is the <A HREF=ffuserguide.html#gls:pglist NAME="13520">page list</A> for which those flow frames are defined. In addition
+to <TT>&#92;onecolumn</TT><A NAME="4910"></A> and <TT>&#92;twocolumn</TT><A NAME="4915"></A>, the
following commands are also defined:
<P>
<P>
-<TT>&#92;Ncolumn</TT><A NAME="4919"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;</TT>
+<TT>&#92;Ncolumn</TT><A NAME="4920"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;</TT>
<P>
This creates <I>n</I> column flow frames each separated by a
-distance of <TT>&#92;columnsep</TT><A NAME="4928"></A>.
+distance of <TT>&#92;columnsep</TT><A NAME="4929"></A>.
<P>
<P>
-<TT>&#92;onecolumninarea</TT><A NAME="4933"></A><TT>[<I>pages</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;onecolumninarea</TT><A NAME="4934"></A><TT>[<I>pages</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This creates a single flow frame to fill the given area,
adjusting the height so that it is an integer multiple of
-<TT>&#92;baselineskip</TT><A NAME="4948"></A>.
+<TT>&#92;baselineskip</TT><A NAME="4949"></A>.
<P>
<P>
-<TT>&#92;twocolumninarea</TT><A NAME="4953"></A><TT>[<I>pages</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;twocolumninarea</TT><A NAME="4954"></A><TT>[<I>pages</I>]&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This creates two column flow frames separated by a distance
-of <TT>&#92;columnsep</TT><A NAME="4968"></A> filling the entire area specified, again
+of <TT>&#92;columnsep</TT><A NAME="4969"></A> filling the entire area specified, again
adjusting the height so that it is an integer multiple of
-<TT>&#92;baselineskip</TT><A NAME="4973"></A>. The columns are separated by a gap of
-<TT>&#92;columnsep</TT><A NAME="4978"></A>.
+<TT>&#92;baselineskip</TT><A NAME="4974"></A>. The columns are separated by a gap of
+<TT>&#92;columnsep</TT><A NAME="4979"></A>.
<P>
<P>
-<TT>&#92;Ncolumninarea</TT><A NAME="4983"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;Ncolumninarea</TT><A NAME="4984"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
-This is a more general form of <TT>&#92;twocolumninarea</TT><A NAME="5000"></A> making
+This is a more general form of <TT>&#92;twocolumninarea</TT><A NAME="5001"></A> making
<I>n</I> flow frames instead of two.
<P>
<A HREF="ffuserguide.html#top">Top</A>&nbsp;|&nbsp;<A HREF="ffuserguide.html#index">Index</A>
@@ -1943,15 +1943,15 @@ This is a more general form of <TT>&#92;twocolumninarea</TT><A NAME="5000"></A>
</H1>
<P>
-As well as the column-style <A HREF=ffuserguide.html#gls:flow NAME="14131">flow frames</A> defined
+As well as the column-style <A HREF=ffuserguide.html#gls:flow NAME="14132">flow frames</A> defined
above, it is also possible to define
-<I>n</I> columns with an additional <A HREF=ffuserguide.html#gls:frame NAME="14138">frame</A> spanning either
+<I>n</I> columns with an additional <A HREF=ffuserguide.html#gls:frame NAME="14139">frame</A> spanning either
above or below them. There will be a vertical gap of
approximately<A NAME="tex2html92"
- HREF="#foot3052"><SUP>5.1</SUP></A>
-<TT>&#92;vcolumnsep</TT><A NAME="5014"></A> between the columns
+ HREF="#foot3053"><SUP>5.1</SUP></A>
+<TT>&#92;vcolumnsep</TT><A NAME="5015"></A> between the columns
and the extra frame. In each of the following definitions,
-the argument <I>pages</I> is the <A HREF=ffuserguide.html#gls:pglist NAME="14145">page list</A> for which
+the argument <I>pages</I> is the <A HREF=ffuserguide.html#gls:pglist NAME="14146">page list</A> for which
the frames are defined, <I>n</I> is the number of
columns required, <I>type</I> is the type of frame to go
above or below the columns (this may be one of: <TT>flow</TT>,
@@ -1959,7 +1959,7 @@ above or below the columns (this may be one of: <TT>flow</TT>,
new frames should fill is defined by <I>width</I>, <I>height</I>
(the width and height of the area) and <I>x</I>, <I>y</I>
(the position of the bottom left hand corner of the area
-relative to the bottom left hand corner of the <A HREF=ffuserguide.html#gls:typeblock NAME="14156">typeblock</A>.)
+relative to the bottom left hand corner of the <A HREF=ffuserguide.html#gls:typeblock NAME="14157">typeblock</A>.)
<P>
The height of the additional frame at the top or bottom of
@@ -1968,7 +1968,7 @@ the columns is given by <I>H</I>.
<P>
<P>
-<TT>&#92;onecolumntopinarea</TT><A NAME="5019"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;onecolumntopinarea</TT><A NAME="5020"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This creates one flow frame with a <I>type</I> frame above it, filling
the area specified.
@@ -1976,7 +1976,7 @@ the area specified.
<P>
<P>
-<TT>&#92;twocolumntopinarea</TT><A NAME="5038"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;twocolumntopinarea</TT><A NAME="5039"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This creates two column-style flow frames with a <I>type</I> frame
above them, filling the area specified.
@@ -1984,7 +1984,7 @@ above them, filling the area specified.
<P>
<P>
-<TT>&#92;Ncolumntopinarea</TT><A NAME="5057"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;Ncolumntopinarea</TT><A NAME="5058"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This creates <I>n</I> column-style flow frames with a <I>type</I>
frame above them, filling the area specified.
@@ -1992,7 +1992,7 @@ frame above them, filling the area specified.
<P>
<P>
-<TT>&#92;onecolumnbottominarea</TT><A NAME="5078"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;onecolumnbottominarea</TT><A NAME="5079"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This creates one flow frame with a <I>type</I> frame underneath it,
filling the area specified.
@@ -2000,7 +2000,7 @@ filling the area specified.
<P>
<P>
-<TT>&#92;twocolumnbottominarea</TT><A NAME="5097"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;twocolumnbottominarea</TT><A NAME="5098"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This creates two column-style flow frames with a <I>type</I> frame
below them, filling the area specified.
@@ -2008,7 +2008,7 @@ below them, filling the area specified.
<P>
<P>
-<TT>&#92;Ncolumnbottominarea</TT><A NAME="5116"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;Ncolumnbottominarea</TT><A NAME="5117"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This creates <I>n</I> column-style flow frames with a <I>type</I>
frame below them, filling the area specified.
@@ -2019,254 +2019,254 @@ The following commands are special cases of the above:
<P>
<P>
-<TT>&#92;onecolumnStopinarea</TT><A NAME="5137"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;onecolumnStopinarea</TT><A NAME="5138"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;onecolumntopinarea</TT><A NAME="5154"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;onecolumntopinarea</TT><A NAME="5155"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;onecolumnDtopinarea</TT><A NAME="5172"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;onecolumnDtopinarea</TT><A NAME="5173"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;onecolumntopinarea</TT><A NAME="5189"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;onecolumntopinarea</TT><A NAME="5190"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;onecolumntop</TT><A NAME="5207"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;onecolumntop</TT><A NAME="5208"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
-As <TT>&#92;onecolumntopinarea</TT><A NAME="5218"></A> where the area is the entire
+As <TT>&#92;onecolumntopinarea</TT><A NAME="5219"></A> where the area is the entire
typeblock.
<P>
<P>
-<TT>&#92;onecolumnStop</TT><A NAME="5223"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
+<TT>&#92;onecolumnStop</TT><A NAME="5224"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;onecolumntop</TT><A NAME="5232"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;onecolumntop</TT><A NAME="5233"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;</TT>
<P>
<P>
-<TT>&#92;onecolumnDtop</TT><A NAME="5242"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
+<TT>&#92;onecolumnDtop</TT><A NAME="5243"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;onecolumntop</TT><A NAME="5251"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;onecolumntop</TT><A NAME="5252"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;</TT>
<P>
<P>
-<TT>&#92;twocolumnStopinarea</TT><A NAME="5261"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;twocolumnStopinarea</TT><A NAME="5262"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;twocolumntopinarea</TT><A NAME="5278"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;twocolumntopinarea</TT><A NAME="5279"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;twocolumnDtopinarea</TT><A NAME="5296"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;twocolumnDtopinarea</TT><A NAME="5297"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;twocolumntopinarea</TT><A NAME="5313"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;twocolumntopinarea</TT><A NAME="5314"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;twocolumntop</TT><A NAME="5331"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;twocolumntop</TT><A NAME="5332"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
-As <TT>&#92;twocolumntopinarea</TT><A NAME="5342"></A> where the area is the entire
+As <TT>&#92;twocolumntopinarea</TT><A NAME="5343"></A> where the area is the entire
typeblock.
<P>
<P>
-<TT>&#92;twocolumnStop</TT><A NAME="5347"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
+<TT>&#92;twocolumnStop</TT><A NAME="5348"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;twocolumntop</TT><A NAME="5356"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;twocolumntop</TT><A NAME="5357"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;</TT>
<P>
<P>
-<TT>&#92;twocolumnDtop</TT><A NAME="5366"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
+<TT>&#92;twocolumnDtop</TT><A NAME="5367"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;twocolumntop</TT><A NAME="5375"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;twocolumntop</TT><A NAME="5376"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;</TT>
<P>
<P>
-<TT>&#92;NcolumnStopinarea</TT><A NAME="5385"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;NcolumnStopinarea</TT><A NAME="5386"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;Ncolumntopinarea</TT><A NAME="5404"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;Ncolumntopinarea</TT><A NAME="5405"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;NcolumnDtopinarea</TT><A NAME="5424"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;NcolumnDtopinarea</TT><A NAME="5425"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;Ncolumntopinarea</TT><A NAME="5443"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;Ncolumntopinarea</TT><A NAME="5444"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;Ncolumntop</TT><A NAME="5463"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;Ncolumntop</TT><A NAME="5464"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
-As <TT>&#92;Ncolumntopinarea</TT><A NAME="5476"></A> where the area is the entire
+As <TT>&#92;Ncolumntopinarea</TT><A NAME="5477"></A> where the area is the entire
typeblock.
<P>
<P>
-<TT>&#92;NcolumnStop</TT><A NAME="5481"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;NcolumnStop</TT><A NAME="5482"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;Ncolumntop</TT><A NAME="5492"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;Ncolumntop</TT><A NAME="5493"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
<P>
-<TT>&#92;NcolumnDtop</TT><A NAME="5504"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;NcolumnDtop</TT><A NAME="5505"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;Ncolumntop</TT><A NAME="5515"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;Ncolumntop</TT><A NAME="5516"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
<P>
-<TT>&#92;onecolumnSbottominarea</TT><A NAME="5527"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;onecolumnSbottominarea</TT><A NAME="5528"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;onecolumnbottominarea</TT><A NAME="5544"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;onecolumnbottominarea</TT><A NAME="5545"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;onecolumnDbottominarea</TT><A NAME="5562"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;onecolumnDbottominarea</TT><A NAME="5563"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;onecolumnbottominarea</TT><A NAME="5579"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;onecolumnbottominarea</TT><A NAME="5580"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;onecolumnbottom</TT><A NAME="5597"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;onecolumnbottom</TT><A NAME="5598"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
-As <TT>&#92;onecolumnbottominarea</TT><A NAME="5608"></A> where the area is the entire
+As <TT>&#92;onecolumnbottominarea</TT><A NAME="5609"></A> where the area is the entire
typeblock.
<P>
<P>
-<TT>&#92;onecolumnSbottom</TT><A NAME="5613"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
+<TT>&#92;onecolumnSbottom</TT><A NAME="5614"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;onecolumnbottom</TT><A NAME="5622"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;onecolumnbottom</TT><A NAME="5623"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;</TT>
<P>
<P>
-<TT>&#92;onecolumnDbottom</TT><A NAME="5632"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
+<TT>&#92;onecolumnDbottom</TT><A NAME="5633"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;onecolumnbottom</TT><A NAME="5641"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;onecolumnbottom</TT><A NAME="5642"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;</TT>
<P>
<P>
-<TT>&#92;twocolumnSbottominarea</TT><A NAME="5651"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;twocolumnSbottominarea</TT><A NAME="5652"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;twocolumnbottominarea</TT><A NAME="5668"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;twocolumnbottominarea</TT><A NAME="5669"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;twocolumnDbottominarea</TT><A NAME="5686"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;twocolumnDbottominarea</TT><A NAME="5687"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;twocolumnbottominarea</TT><A NAME="5703"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;twocolumnbottominarea</TT><A NAME="5704"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;twocolumnbottom</TT><A NAME="5721"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;twocolumnbottom</TT><A NAME="5722"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
-As <TT>&#92;twocolumnbottominarea</TT><A NAME="5732"></A> where the area is the entire
+As <TT>&#92;twocolumnbottominarea</TT><A NAME="5733"></A> where the area is the entire
typeblock.
<P>
<P>
-<TT>&#92;twocolumnSbottom</TT><A NAME="5737"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
+<TT>&#92;twocolumnSbottom</TT><A NAME="5738"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;twocolumnbottom</TT><A NAME="5746"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;twocolumnbottom</TT><A NAME="5747"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>H</I>&#125;</TT>
<P>
<P>
-<TT>&#92;twocolumnDbottom</TT><A NAME="5756"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
+<TT>&#92;twocolumnDbottom</TT><A NAME="5757"></A><TT>[<I>pages</I>]&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;twocolumnbottom</TT><A NAME="5765"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;twocolumnbottom</TT><A NAME="5766"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>H</I>&#125;</TT>
<P>
<P>
-<TT>&#92;NcolumnSbottominarea</TT><A NAME="5775"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;NcolumnSbottominarea</TT><A NAME="5776"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;Ncolumnbottominarea</TT><A NAME="5794"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;Ncolumnbottominarea</TT><A NAME="5795"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;NcolumnDbottominarea</TT><A NAME="5814"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;NcolumnDbottominarea</TT><A NAME="5815"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
This is equivalent to:
<BR>
-<TT>&#92;Ncolumnbottominarea</TT><A NAME="5833"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
+<TT>&#92;Ncolumnbottominarea</TT><A NAME="5834"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;&#123;<I>width</I>&#125;&#123;<I>height</I>&#125;&#123;<I>x</I>&#125;&#123;<I>y</I>&#125;</TT>
<P>
<P>
-<TT>&#92;Ncolumnbottom</TT><A NAME="5853"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;Ncolumnbottom</TT><A NAME="5854"></A><TT>[<I>pages</I>]&#123;<I>type</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
-As <TT>&#92;Ncolumnbottominarea</TT><A NAME="5866"></A> where the area is the entire
+As <TT>&#92;Ncolumnbottominarea</TT><A NAME="5867"></A> where the area is the entire
typeblock.
<P>
<P>
-<TT>&#92;NcolumnSbottom</TT><A NAME="5871"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;NcolumnSbottom</TT><A NAME="5872"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;Ncolumnbottom</TT><A NAME="5882"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;Ncolumnbottom</TT><A NAME="5883"></A><TT>[<I>pages</I>]&#123;static&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
<P>
-<TT>&#92;NcolumnDbottom</TT><A NAME="5894"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;NcolumnDbottom</TT><A NAME="5895"></A><TT>[<I>pages</I>]&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
This is equivalent to:
-<TT>&#92;Ncolumnbottom</TT><A NAME="5905"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
+<TT>&#92;Ncolumnbottom</TT><A NAME="5906"></A><TT>[<I>pages</I>]&#123;dynamic&#125;&#123;<I>n</I>&#125;&#123;<I>H</I>&#125;</TT>
<P>
<A HREF="ffuserguide.html#top">Top</A>&nbsp;|&nbsp;<A HREF="ffuserguide.html#index">Index</A>
@@ -2279,20 +2279,20 @@ This is equivalent to:
<P>
The default behaviour for the commands defined above is
-to create the <A HREF=ffuserguide.html#gls:flow NAME="14216">flow frames</A> from left to right. However if you are
+to create the <A HREF=ffuserguide.html#gls:flow NAME="14217">flow frames</A> from left to right. However if you are
typesetting from right to left, you will probably prefer to
-define the <A HREF=ffuserguide.html#gls:flow NAME="14223">flow frames</A> in the reverse order. This can be done
-via the package option <TT>RL</TT><A NAME="5921"></A>. Alternatively you can use the
+define the <A HREF=ffuserguide.html#gls:flow NAME="14224">flow frames</A> in the reverse order. This can be done
+via the package option <TT>RL</TT><A NAME="5922"></A>. Alternatively you can use the
command:
<P>
-<TT>&#92;lefttorightcolumnsfalse</TT><A NAME="5924"></A>
+<TT>&#92;lefttorightcolumnsfalse</TT><A NAME="5925"></A>
<P>
-before using commands such as <TT>&#92;twocolumn</TT><A NAME="5929"></A> or
-<TT>&#92;Ncolumn</TT><A NAME="5934"></A>. Two switch back to left-to-right columns use:
+before using commands such as <TT>&#92;twocolumn</TT><A NAME="5930"></A> or
+<TT>&#92;Ncolumn</TT><A NAME="5935"></A>. Two switch back to left-to-right columns use:
<P>
-<TT>&#92;lefttorightcolumnstrue</TT><A NAME="5939"></A>
+<TT>&#92;lefttorightcolumnstrue</TT><A NAME="5940"></A>
<P>
<P>
@@ -2302,15 +2302,15 @@ before using commands such as <TT>&#92;twocolumn</TT><A NAME="5929"></A> or
</H1>
<P>
-<A HREF=ffuserguide.html#gls:static NAME="14265">Static frames</A> can be used to produce a
+<A HREF=ffuserguide.html#gls:static NAME="14266">Static frames</A> can be used to produce a
backdrop. There are a number of commands which create
static frames that can be used as a backdrop. In the
-following definitions, <I>pages</I> is the <A HREF=ffuserguide.html#gls:pglist NAME="14276">page list</A> for
+following definitions, <I>pages</I> is the <A HREF=ffuserguide.html#gls:pglist NAME="14277">page list</A> for
which those static frames are defined (<TT>all</TT> is the default).
For the vertical strips:
<I>xoffset</I> is the amount by which the frames should be
shifted horizontally (0pt by default), <I>W1</I> is the width of the first frame,
-with colour specified by <I>C1</I> and <A HREF=ffuserguide.html#gls:idl NAME="14287">IDL</A> <I>L1</I>,
+with colour specified by <I>C1</I> and <A HREF=ffuserguide.html#gls:idl NAME="14288">IDL</A> <I>L1</I>,
and so on up to <I>Wn</I> the width of the <I>n</I>th frame
with colour specified by <I>Cn</I> and IDL <I>Ln</I>.
For the vertical strips:
@@ -2322,7 +2322,7 @@ with colour specified by <I>Cn</I> and IDL <I>Ln</I>.
<P>
<B>NOTE:</B> unlike the earlier commands, these commands
-are all relative to the actual page, not the <A HREF=ffuserguide.html#gls:typeblock NAME="14306">typeblock</A>.
+are all relative to the actual page, not the <A HREF=ffuserguide.html#gls:typeblock NAME="14307">typeblock</A>.
So an x offset of 0pt indicates the first vertical
frame is flush with the left hand edge of the page, and a
y offset of 0pt indicates the first horizontal frame
@@ -2344,9 +2344,9 @@ for example <code>{[rgb]{1,0,1}}</code> not <code>[rgb]{1,0,1}</code>.
<P>
<P>
-<TT>&#92;vtwotone</TT><A NAME="5948"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>W2</I>&#125;&#123;<I>C2</I>&#125;&#123;<I>L2</I>&#125;</TT>
+<TT>&#92;vtwotone</TT><A NAME="5949"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>W2</I>&#125;&#123;<I>C2</I>&#125;&#123;<I>L2</I>&#125;</TT>
<P>
-Defines two <A HREF=ffuserguide.html#gls:static NAME="14438">static frames</A> to create a two tone vertical strip effect.
+Defines two <A HREF=ffuserguide.html#gls:static NAME="14439">static frames</A> to create a two tone vertical strip effect.
(This command was
used to create the coloured background on the title page
of the PDF version of this document.)
@@ -2354,50 +2354,50 @@ of the PDF version of this document.)
<P>
<P>
-<TT>&#92;vNtone</TT><A NAME="5969"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>n</I>&#125;&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...<TT>&#123;<I>Wn</I>&#125;&#123;<I>Cn</I>&#125;&#123;<I>Ln</I>&#125;</TT>
+<TT>&#92;vNtone</TT><A NAME="5970"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>n</I>&#125;&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...<TT>&#123;<I>Wn</I>&#125;&#123;<I>Cn</I>&#125;&#123;<I>Ln</I>&#125;</TT>
<P>
-This is similar to <TT>&#92;vtwotone</TT><A NAME="5992"></A> but with <I>n</I> static frames instead of two.
+This is similar to <TT>&#92;vtwotone</TT><A NAME="5993"></A> but with <I>n</I> static frames instead of two.
<P>
<P>
-<TT>&#92;vtwotonebottom</TT><A NAME="5997"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>H</I>&#125;&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>W2</I>&#125;&#123;<I>C2</I>&#125;&#123;<I>L2</I>&#125;</TT>
+<TT>&#92;vtwotonebottom</TT><A NAME="5998"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>H</I>&#125;&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>W2</I>&#125;&#123;<I>C2</I>&#125;&#123;<I>L2</I>&#125;</TT>
<P>
-This is similar to <TT>&#92;vtwotone</TT><A NAME="6020"></A> but the static frames are only
+This is similar to <TT>&#92;vtwotone</TT><A NAME="6021"></A> but the static frames are only
<I>H</I> high, instead of the entire height of the page.
The frames are aligned along the bottom edge of the page.
<P>
<P>
-<TT>&#92;vtwotonetop</TT><A NAME="6025"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>H</I>&#125;&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>W2</I>&#125;&#123;<I>C2</I>&#125;</TT>
+<TT>&#92;vtwotonetop</TT><A NAME="6026"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>H</I>&#125;&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>W2</I>&#125;&#123;<I>C2</I>&#125;</TT>
<BR><TT>&#123;<I>L2</I>&#125;</TT>
<P>
-This is similar to <TT>&#92;vtwotone</TT><A NAME="6048"></A> but the static frames are only
+This is similar to <TT>&#92;vtwotone</TT><A NAME="6049"></A> but the static frames are only
<I>H</I> high, instead of the entire height of the page.
The frames are aligned along the top edge of the page.
(This command was used to create the border effect along
the top of every page in the PDF version of this document.
-Two <TT>&#92;vtwotonetop</TT><A NAME="6053"></A>
+Two <TT>&#92;vtwotonetop</TT><A NAME="6054"></A>
commands were used, one for the even pages, and the other
for the odd pages.)
<P>
<P>
-<TT>&#92;vNtonebottom</TT><A NAME="6058"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>H</I>&#125;&#123;<I>n</I>&#125;&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...
+<TT>&#92;vNtonebottom</TT><A NAME="6059"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>H</I>&#125;&#123;<I>n</I>&#125;&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...
<TT>&#123;<I>Wn</I>&#125;&#123;<I>Cn</I>&#125;&#123;<I>Ln</I>&#125;</TT>
<P>
-This is a general version of <TT>&#92;vtwotonebottom</TT><A NAME="6083"></A> for
+This is a general version of <TT>&#92;vtwotonebottom</TT><A NAME="6084"></A> for
<I>n</I> frames instead of two.
<P>
<P>
-<TT>&#92;vNtonetop</TT><A NAME="6088"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>H</I>&#125;&#123;<I>n</I>&#125;&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...
+<TT>&#92;vNtonetop</TT><A NAME="6089"></A><TT>[<I>pages</I>][<I>xoffset</I>]&#123;<I>H</I>&#125;&#123;<I>n</I>&#125;&#123;<I>W1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...
<TT>&#123;<I>Wn</I>&#125;&#123;<I>Cn</I>&#125;&#123;<I>Ln</I>&#125;</TT>
<P>
-This is a general version of <TT>&#92;vtwotonetop</TT><A NAME="6113"></A> for
+This is a general version of <TT>&#92;vtwotonetop</TT><A NAME="6114"></A> for
<I>n</I> frames instead of two.
<P>
<A HREF="ffuserguide.html#top">Top</A>&nbsp;|&nbsp;<A HREF="ffuserguide.html#index">Index</A>
@@ -2411,53 +2411,53 @@ This is a general version of <TT>&#92;vtwotonetop</TT><A NAME="6113"></A> for
<P>
<P>
-<TT>&#92;htwotone</TT><A NAME="6122"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>H2</I>&#125;&#123;<I>C2</I>&#125;&#123;<I>L2</I>&#125;</TT>
+<TT>&#92;htwotone</TT><A NAME="6123"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>H2</I>&#125;&#123;<I>C2</I>&#125;&#123;<I>L2</I>&#125;</TT>
<P>
-This defines two <A HREF=ffuserguide.html#gls:static NAME="14578">static frames</A> to create a two tone horizontal strip
+This defines two <A HREF=ffuserguide.html#gls:static NAME="14579">static frames</A> to create a two tone horizontal strip
effect.
<P>
<P>
-<TT>&#92;hNtone</TT><A NAME="6143"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>n</I>&#125;&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...
+<TT>&#92;hNtone</TT><A NAME="6144"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>n</I>&#125;&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...
<TT>&#123;<I>Hn</I>&#125;&#123;<I>Cn</I>&#125;&#123;<I>Ln</I>&#125;</TT>
<P>
-This is similar to <TT>&#92;htwotone</TT><A NAME="6166"></A> but with <I>n</I> static frames instead of two.
+This is similar to <TT>&#92;htwotone</TT><A NAME="6167"></A> but with <I>n</I> static frames instead of two.
<P>
<P>
-<TT>&#92;htwotoneleft</TT><A NAME="6171"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>W</I>&#125;&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>H2</I>&#125;&#123;<I>C2</I>&#125;&#123;<I>L2</I>&#125;</TT>
+<TT>&#92;htwotoneleft</TT><A NAME="6172"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>W</I>&#125;&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>H2</I>&#125;&#123;<I>C2</I>&#125;&#123;<I>L2</I>&#125;</TT>
<P>
-This is similar to <TT>&#92;htwotone</TT><A NAME="6194"></A> but the static frames are only
+This is similar to <TT>&#92;htwotone</TT><A NAME="6195"></A> but the static frames are only
<I>W</I> wide, instead of the entire width of the page.
The frames are aligned along the left edge of the page.
<P>
<P>
-<TT>&#92;htwotoneright</TT><A NAME="6199"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>W</I>&#125;&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>H2</I>&#125;&#123;<I>C2</I>&#125;&#123;<I>L2</I>&#125;</TT>
+<TT>&#92;htwotoneright</TT><A NAME="6200"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>W</I>&#125;&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;&#123;<I>H2</I>&#125;&#123;<I>C2</I>&#125;&#123;<I>L2</I>&#125;</TT>
<P>
-This is similar to <TT>&#92;htwotone</TT><A NAME="6222"></A> but the static frames are only
+This is similar to <TT>&#92;htwotone</TT><A NAME="6223"></A> but the static frames are only
<I>W</I> wide, instead of the entire width of the page.
The frames are aligned along the right edge of the page.
<P>
<P>
-<TT>&#92;hNtoneleft</TT><A NAME="6227"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>W</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...
+<TT>&#92;hNtoneleft</TT><A NAME="6228"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>W</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...
<TT>&#123;<I>Hn</I>&#125;&#123;<I>Cn</I>&#125;&#123;<I>Ln</I>&#125;</TT>
<P>
-This is a general version of <TT>&#92;htwotoneleft</TT><A NAME="6252"></A> for
+This is a general version of <TT>&#92;htwotoneleft</TT><A NAME="6253"></A> for
<I>n</I> frames instead of two.
<P>
<P>
-<TT>&#92;hNtoneright</TT><A NAME="6257"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>W</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...
+<TT>&#92;hNtoneright</TT><A NAME="6258"></A><TT>[<I>pages</I>][<I>yoffset</I>]&#123;<I>W</I>&#125;&#123;<I>n</I>&#125;&#123;<I>H1</I>&#125;&#123;<I>C1</I>&#125;&#123;<I>L1</I>&#125;</TT>...
<TT>&#123;<I>Hn</I>&#125;&#123;<I>Cn</I>&#125;&#123;<I>Ln</I>&#125;</TT>
<P>
-This is a general version of <TT>&#92;htwotoneright</TT><A NAME="6282"></A> for
+This is a general version of <TT>&#92;htwotoneright</TT><A NAME="6283"></A> for
<I>n</I> frames instead of two.
<P>
<A HREF="ffuserguide.html#top">Top</A>&nbsp;|&nbsp;<A HREF="ffuserguide.html#index">Index</A>
@@ -2469,10 +2469,10 @@ This is a general version of <TT>&#92;htwotoneright</TT><A NAME="6282"></A> for
</H2>
<P>
-To make a single <A HREF=ffuserguide.html#gls:static NAME="14602">static frame</A> covering the entire page, use:
+To make a single <A HREF=ffuserguide.html#gls:static NAME="14603">static frame</A> covering the entire page, use:
<P>
-<TT>&#92;makebackgroundframe</TT><A NAME="6291"></A><TT>[<I>pages</I>][<I>IDL</I>]</TT>
+<TT>&#92;makebackgroundframe</TT><A NAME="6292"></A><TT>[<I>pages</I>][<I>IDL</I>]</TT>
<P>
Note that this frame should be created before any other
static frame as it will obscure all other static frames created
@@ -2490,15 +2490,15 @@ before it if it is given a background colour.
<P>
You can create vertical or horizontal rules between two
-<A HREF=ffuserguide.html#gls:frame NAME="14678">frames</A> using the commands:
+<A HREF=ffuserguide.html#gls:frame NAME="14679">frames</A> using the commands:
<P>
<P>
-<TT>&#92;insertvrule</TT><A NAME="6304"></A><TT>[<I>y top</I>][<I>y bottom</I>]&#123;<I>T1</I>&#125;&#123;<I>IDN1</I>&#125;&#123;<I>T2</I>&#125;&#123;<I>IDN2</I>&#125;</TT>
+<TT>&#92;insertvrule</TT><A NAME="6305"></A><TT>[<I>y top</I>][<I>y bottom</I>]&#123;<I>T1</I>&#125;&#123;<I>IDN1</I>&#125;&#123;<I>T2</I>&#125;&#123;<I>IDN2</I>&#125;</TT>
<P>
-This creates a new <A HREF=ffuserguide.html#gls:static NAME="14685">static frame</A> which fits between <I>T1</I>
-frame with <A HREF=ffuserguide.html#gls:idn NAME="14696">IDN</A> <I>IDN1</I> and <I>T2</I> frame with IDN <I>IDN2</I>, and places a vertical rule in it
+This creates a new <A HREF=ffuserguide.html#gls:static NAME="14686">static frame</A> which fits between <I>T1</I>
+frame with <A HREF=ffuserguide.html#gls:idn NAME="14697">IDN</A> <I>IDN1</I> and <I>T2</I> frame with IDN <I>IDN2</I>, and places a vertical rule in it
extending from the highest point of the highest frame to
the lowest point of the lowest frame. The first optional
argument <I>y top</I> (default 0pt) extends the rule by that
@@ -2509,17 +2509,17 @@ are negative, the rule will be shortened instead of extended.
The width of the rule is given by
<P>
-<TT>&#92;ffcolumnseprule</TT><A NAME="6321"></A>
+<TT>&#92;ffcolumnseprule</TT><A NAME="6322"></A>
<P>
<B>Note</B> that this has changed as from version 1.09: versions
-prior to 1.09 used <TT>&#92;columnseprule</TT><A NAME="6326"></A>.
+prior to 1.09 used <TT>&#92;columnseprule</TT><A NAME="6327"></A>.
<P>
-The vertical rule drawn by <TT>&#92;insertvrule</TT><A NAME="6331"></A> is created using
+The vertical rule drawn by <TT>&#92;insertvrule</TT><A NAME="6332"></A> is created using
the command:
<P>
-<TT>&#92;ffvrule</TT><A NAME="6336"></A><TT>&#123;offset&#125;&#123;width&#125;&#123;height&#125;</TT>
+<TT>&#92;ffvrule</TT><A NAME="6337"></A><TT>&#123;offset&#125;&#123;width&#125;&#123;height&#125;</TT>
<P>
This can be redefined if a more ornate rule is required
(see below).
@@ -2527,10 +2527,10 @@ This can be redefined if a more ornate rule is required
<P>
<P>
-<TT>&#92;inserthrule</TT><A NAME="6344"></A><TT>[<I>x left</I>][<I>x right</I>]&#123;<I>T1</I>&#125;&#123;<I>IDN1</I>&#125;&#123;<I>T2</I>&#125;&#123;<I>IDN2</I>&#125;</TT>
+<TT>&#92;inserthrule</TT><A NAME="6345"></A><TT>[<I>x left</I>][<I>x right</I>]&#123;<I>T1</I>&#125;&#123;<I>IDN1</I>&#125;&#123;<I>T2</I>&#125;&#123;<I>IDN2</I>&#125;</TT>
<P>
-This creates a new <A HREF=ffuserguide.html#gls:static NAME="14711">static frame</A> which fits between <I>T1</I>
-frame with <A HREF=ffuserguide.html#gls:idn NAME="14722">IDN</A> <I>IDN1</I> and <I>T2</I> frame with IDN <I>IDN2</I>, and places a horizontal rule in it
+This creates a new <A HREF=ffuserguide.html#gls:static NAME="14712">static frame</A> which fits between <I>T1</I>
+frame with <A HREF=ffuserguide.html#gls:idn NAME="14723">IDN</A> <I>IDN1</I> and <I>T2</I> frame with IDN <I>IDN2</I>, and places a horizontal rule in it
extending from the leftmost point of the left frame to
the rightmost point of the right frame. The first optional
argument <I>x left</I> (default 0pt) extends the rule by that
@@ -2541,22 +2541,22 @@ are negative, the rule will be shortened instead of extended.
The height of the rule is given by
<P>
-<TT>&#92;ffcolumnseprule</TT><A NAME="6361"></A>
+<TT>&#92;ffcolumnseprule</TT><A NAME="6362"></A>
<P>
<P>
-The horizontal rule drawn by <TT>&#92;inserthrule</TT><A NAME="6366"></A> is created using
+The horizontal rule drawn by <TT>&#92;inserthrule</TT><A NAME="6367"></A> is created using
the command:
<P>
-<TT>&#92;ffhrule</TT><A NAME="6371"></A><TT>&#123;offset&#125;&#123;width&#125;&#123;height&#125;</TT>
+<TT>&#92;ffhrule</TT><A NAME="6372"></A><TT>&#123;offset&#125;&#123;width&#125;&#123;height&#125;</TT>
<P>
This can be redefined if a more ornate rule is required (see below).
<P>
-The default value for <TT>&#92;ffcolumnseprule</TT><A NAME="6379"></A> is 2pt. Both
-<TT>&#92;insertvrule</TT><A NAME="6384"></A> and <TT>&#92;inserthrule</TT><A NAME="6389"></A> have starred versions
-which allow you to identify the frame by <A HREF=ffuserguide.html#gls:idl NAME="14741">IDL</A> instead of
+The default value for <TT>&#92;ffcolumnseprule</TT><A NAME="6380"></A> is 2pt. Both
+<TT>&#92;insertvrule</TT><A NAME="6385"></A> and <TT>&#92;inserthrule</TT><A NAME="6390"></A> have starred versions
+which allow you to identify the frame by <A HREF=ffuserguide.html#gls:idl NAME="14742">IDL</A> instead of
IDN. The frame types, <I>T1</I> and <I>T2</I> can be one
of the following keywords: <TT>flow</TT>, <TT>static</TT> or
<TT>dynamic</TT>.
@@ -2565,7 +2565,7 @@ of the following keywords: <TT>flow</TT>, <TT>static</TT> or
The command
<P>
-<TT>&#92;ffruledeclarations</TT><A NAME="6394"></A>
+<TT>&#92;ffruledeclarations</TT><A NAME="6395"></A>
<P>
can be redefined to set declarations that affect how the rule is drawn.
The most likely use of this command is to set the rule colour.
@@ -2579,8 +2579,8 @@ For example:
\renewcommand{\ffruledeclarations}{\color{blue}}
\inserthrule{static}{1}{flow}{1}
</PRE>
-This will create a layout with two columns (<A HREF=ffuserguide.html#gls:flow NAME="14756">flow frames</A>&nbsp;1 and&nbsp;2)
-with a <A HREF=ffuserguide.html#gls:static NAME="14763">static frame</A> above. A red vertical rule is placed in a
+This will create a layout with two columns (<A HREF=ffuserguide.html#gls:flow NAME="14757">flow frames</A>&nbsp;1 and&nbsp;2)
+with a <A HREF=ffuserguide.html#gls:static NAME="14764">static frame</A> above. A red vertical rule is placed in a
static frame between flow frames&nbsp;1 and&nbsp;2, and a blue horizontal
rule is placed between the static frame and the first
flow frame. (However the horizontal rule will span both
@@ -2588,7 +2588,7 @@ flow frames since that is the width of the static frame.)
<P>
In the following example, the rules have been redefined
-to use a zigzag pattern (which is obtained using the <TT>tikz</TT><A NAME="6399"></A>
+to use a zigzag pattern (which is obtained using the <TT>tikz</TT><A NAME="6400"></A>
package):
<PRE>
\usepackage{flowfram}
@@ -2640,9 +2640,9 @@ you a rough idea whereabouts in the document you are when you
quickly flick through the pages. Each thumbtab is in fact
a dynamic frame, and you can control whether to make the
number and/or title appear in the thumbtab by using one or
-more of the package options: <TT>ttbtitle</TT><A NAME="6406"></A> (show
-title--default), <TT>ttbnotitle</TT><A NAME="6409"></A> (don't show the title),
-<TT>ttbnum</TT><A NAME="6412"></A> (show the number) and <TT>ttbnonum</TT><A NAME="6415"></A>
+more of the package options: <TT>ttbtitle</TT><A NAME="6407"></A> (show
+title--default), <TT>ttbnotitle</TT><A NAME="6410"></A> (don't show the title),
+<TT>ttbnum</TT><A NAME="6413"></A> (show the number) and <TT>ttbnonum</TT><A NAME="6416"></A>
(don't show the number--default).
<P>
@@ -2650,52 +2650,52 @@ If you want thumbtabs in your document, you need to use
the command
<P>
-<TT>&#92;makethumbtabs</TT><A NAME="6418"></A><TT>[<I>y offset</I>]&#123;<I>height</I>&#125;[<I>section type</I>]</TT>
+<TT>&#92;makethumbtabs</TT><A NAME="6419"></A><TT>[<I>y offset</I>]&#123;<I>height</I>&#125;[<I>section type</I>]</TT>
<P>
in the document
preamble. By default, the topmost thumbtab is level with the
-top of the <A HREF=ffuserguide.html#gls:typeblock NAME="14864">typeblock</A>, but can be shifted vertically
+top of the <A HREF=ffuserguide.html#gls:typeblock NAME="14865">typeblock</A>, but can be shifted vertically
using the first optional argument <I>y offset</I>. Each
thumbtab will be <I>height</I> high, and will correspond to the
sectioning type <I>section type</I>. If <I>section type</I>
-is omitted, chapters will be used if the <TT>&#92;chapter</TT><A NAME="6429"></A>
+is omitted, chapters will be used if the <TT>&#92;chapter</TT><A NAME="6430"></A>
command is defined, otherwise sections will be used.
The width of the thumbtabs is given by the length
<P>
-<TT>&#92;thumbtabwidth</TT><A NAME="6434"></A>
+<TT>&#92;thumbtabwidth</TT><A NAME="6435"></A>
<P>
which is 1cm by default.
The command
<P>
-<TT>&#92;thumbtabindex</TT><A NAME="6439"></A>
+<TT>&#92;thumbtabindex</TT><A NAME="6440"></A>
<P>
will display the thumbtab index (all thumbtabs) on the current page.
You then need to use
<P>
-<TT>&#92;enablethumbtabs</TT><A NAME="6444"></A>
+<TT>&#92;enablethumbtabs</TT><A NAME="6445"></A>
<P>
to start the individual thumbtabs and
<P>
-<TT>&#92;disablethumbtabs</TT><A NAME="6449"></A>
+<TT>&#92;disablethumbtabs</TT><A NAME="6450"></A>
<P>
to make them go away.
You can align the table of contents with the thumbtabs<A NAME="tex2html114"
- HREF="#foot2403"><SUP>6.1</SUP></A> using
+ HREF="#foot2404"><SUP>6.1</SUP></A> using
the command
<P>
-<TT>&#92;tocandthumbtabindex</TT><A NAME="6454"></A>
+<TT>&#92;tocandthumbtabindex</TT><A NAME="6455"></A>
<P>
instead of
-the commands <TT>&#92;tableofcontents</TT><A NAME="6459"></A> and
-<TT>&#92;thumbtabindex</TT><A NAME="6464"></A>. If you are using the <TT>hyperref</TT><A NAME="6469"></A>
+the commands <TT>&#92;tableofcontents</TT><A NAME="6460"></A> and
+<TT>&#92;thumbtabindex</TT><A NAME="6465"></A>. If you are using the <TT>hyperref</TT><A NAME="6470"></A>
package, the text on the thumbtab index will be a hyperlink
to the corresponding part of the document. Note that when using
-<TT>&#92;tocandthumbtabindex</TT><A NAME="6472"></A> you may
+<TT>&#92;tocandthumbtabindex</TT><A NAME="6473"></A> you may
need to shift the thumbtabs vertically up or down to make
sure that they align correctly with the table of contents.
@@ -2703,17 +2703,17 @@ sure that they align correctly with the table of contents.
The format of the text on the thumbtabs is given by the command
<P>
-<TT>&#92;thumbtabindexformat</TT><A NAME="6477"></A>
+<TT>&#92;thumbtabindexformat</TT><A NAME="6478"></A>
<P>
for the thumbtab index entries, and
<P>
-<TT>&#92;thumbtabformat</TT><A NAME="6482"></A>
+<TT>&#92;thumbtabformat</TT><A NAME="6483"></A>
<P>
for the individual thumbtabs. By
default the text on the thumbtabs will be rotated, but as
rotating is not implemented by some previewers, the package option
-<TT>norotate</TT><A NAME="6487"></A> is provided, which will stack the letters
+<TT>norotate</TT><A NAME="6488"></A> is provided, which will stack the letters
vertically. This does not look as good as the rotated text.
Note also that some previewers do not put the hyperlink in the
correct place when the link has been rotated, so this may
@@ -2723,13 +2723,13 @@ also cause a problem.
The thumbtab attributes can be changed using
<P>
-<TT>&#92;setthumbtab</TT><A NAME="6490"></A><TT>&#123;<I>n</I>&#125;&#123;<I>key value list</I>&#125;</TT>
+<TT>&#92;setthumbtab</TT><A NAME="6491"></A><TT>&#123;<I>n</I>&#125;&#123;<I>key value list</I>&#125;</TT>
<P>
where <I>n</I> is the thumbtab number starting
from 1 (for the top thumbtab) to the value given by the counter
-<TT>maxthumbtabs</TT><A NAME="6499"></A>
+<TT>maxthumbtabs</TT><A NAME="6500"></A>
(for the bottom thumbtab). Note that these numbers are not
-related to the associated frame <A HREF=ffuserguide.html#gls:idn NAME="14875">IDN</A>. You may also use
+related to the associated frame <A HREF=ffuserguide.html#gls:idn NAME="14876">IDN</A>. You may also use
the keyword <TT>all</TT> instead of <I>n</I> to indicate that the
new attributes should apply to all thumbtabs.
@@ -2737,10 +2737,10 @@ new attributes should apply to all thumbtabs.
To just change the settings for the thumbtab index, use
<P>
-<TT>&#92;setthumbtabindex</TT><A NAME="6502"></A><TT>&#123;<I>n</I>&#125;&#123;<I>key value list</I>&#125;</TT>
+<TT>&#92;setthumbtabindex</TT><A NAME="6503"></A><TT>&#123;<I>n</I>&#125;&#123;<I>key value list</I>&#125;</TT>
<P>
The <I>key value list</I> for both these commands is the same as that
-for <TT>&#92;setdynamicframe</TT><A NAME="6511"></A>. Again <I>n</I> may either be the
+for <TT>&#92;setdynamicframe</TT><A NAME="6512"></A>. Again <I>n</I> may either be the
thumbtab index or the keyword <TT>all</TT>.
<P>
@@ -2765,8 +2765,8 @@ I also changed the style of the thumbtab text using:
\textbf{\large\sffamily #1}}}
\setthumbtab{all}{style=thumbtabstyle,textcolor=white}
</PRE>
-Note that the style uses <TT>&#92;hypersetup</TT><A NAME="6516"></A><A NAME="tex2html115"
- HREF="#foot3457"><SUP>6.2</SUP></A> to change the colour of the hyperlink text,
+Note that the style uses <TT>&#92;hypersetup</TT><A NAME="6517"></A><A NAME="tex2html115"
+ HREF="#foot3458"><SUP>6.2</SUP></A> to change the colour of the hyperlink text,
since the hyperlink overrides the text colour.
<P>
<A HREF="ffuserguide.html#top">Top</A>&nbsp;|&nbsp;<A HREF="ffuserguide.html#index">Index</A>
@@ -2783,21 +2783,21 @@ there is a mini table of contents for that chapter. To enable minitocs,
use the command
<P>
-<TT>&#92;enableminitoc</TT><A NAME="6528"></A><TT>[<I>section type</I>]</TT>
+<TT>&#92;enableminitoc</TT><A NAME="6529"></A><TT>[<I>section type</I>]</TT>
<P>
The default <I>section type</I> is the same as that used by
the thumbtabs.
<P>
-If you want the minitocs to appear in a <A HREF=ffuserguide.html#gls:dynamic NAME="14893">dynamic frame</A>, you
+If you want the minitocs to appear in a <A HREF=ffuserguide.html#gls:dynamic NAME="14894">dynamic frame</A>, you
can use
<P>
-<TT>&#92;appenddfminitoc</TT><A NAME="6535"></A><TT>&#123;<I>IDN</I>&#125;</TT>
+<TT>&#92;appenddfminitoc</TT><A NAME="6536"></A><TT>&#123;<I>IDN</I>&#125;</TT>
<P>
-where <I>IDN</I> is the <A HREF=ffuserguide.html#gls:idn NAME="14900">IDN</A> of the appropriate dynamic frame.
+where <I>IDN</I> is the <A HREF=ffuserguide.html#gls:idn NAME="14901">IDN</A> of the appropriate dynamic frame.
There is also a starred version available if you want to
-use the <A HREF=ffuserguide.html#gls:idl NAME="14911">IDL</A> instead of the IDN.
+use the <A HREF=ffuserguide.html#gls:idl NAME="14912">IDL</A> instead of the IDN.
<P>
For example, in the PDF version of this document I
@@ -2812,7 +2812,7 @@ dynamic frame with IDL <TT>chaphead</TT>.
The style of the minitoc text is given by the command
<P>
-<TT>&#92;minitocstyle</TT><A NAME="6542"></A><TT>&#123;<I>contents</I>&#125;</TT>
+<TT>&#92;minitocstyle</TT><A NAME="6543"></A><TT>&#123;<I>contents</I>&#125;</TT>
<P>
where the argument is the contents
of the minitoc. This command may be redefined if you want
@@ -2820,14 +2820,14 @@ to change the minitoc style. The gap before the minitoc
is given by the length
<P>
-<TT>&#92;beforeminitocskip</TT><A NAME="6549"></A>
+<TT>&#92;beforeminitocskip</TT><A NAME="6550"></A>
<P>
and the gap after the minitoc is given by the length
<P>
-<TT>&#92;afterminitocskip</TT><A NAME="6554"></A>
+<TT>&#92;afterminitocskip</TT><A NAME="6555"></A>
<P>
-These lengths may be changed using <TT>&#92;setlength</TT><A NAME="6559"></A>.
+These lengths may be changed using <TT>&#92;setlength</TT><A NAME="6560"></A>.
<P>
<A HREF="ffuserguide.html#top">Top</A>&nbsp;|&nbsp;<A HREF="ffuserguide.html#index">Index</A>
@@ -2848,15 +2848,15 @@ by the <TT>flowfram</TT> package.</I>
<H1><A NAME="SECTION0081000000000000000000">
7.1 Macros</A>
</H1>
-The following macros can be changed using <TT>&#92;renewcommand</TT><A NAME="6568"></A>:
+The following macros can be changed using <TT>&#92;renewcommand</TT><A NAME="6569"></A>:
<P>
<UL>
-<LI><TT>&#92;setffdraftcolor</TT><A NAME="6573"></A>
+<LI><TT>&#92;setffdraftcolor</TT><A NAME="6574"></A>
<P>
-This sets the colour of the <A HREF=ffuserguide.html#gls:bbox NAME="14943">bounding box</A> when it is displayed in draft mode. The default value is:
+This sets the colour of the <A HREF=ffuserguide.html#gls:bbox NAME="14944">bounding box</A> when it is displayed in draft mode. The default value is:
<code>\color[gray]{0.8}</code>. For example, if you want a darker grey,
do:
<PRE>
@@ -2865,11 +2865,11 @@ do:
<P>
</LI>
-<LI><TT>&#92;setffdrafttypeblockcolor</TT><A NAME="6578"></A>
+<LI><TT>&#92;setffdrafttypeblockcolor</TT><A NAME="6579"></A>
<P>
This sets the colour of
-the <A HREF=ffuserguide.html#gls:bbox NAME="14950">bounding box</A> of the <A HREF=ffuserguide.html#gls:typeblock NAME="14957">typeblock</A> when it is displayed
+the <A HREF=ffuserguide.html#gls:bbox NAME="14951">bounding box</A> of the <A HREF=ffuserguide.html#gls:typeblock NAME="14958">typeblock</A> when it is displayed
in draft mode. The default value is: <code>\color[gray]{0.9}</code>.
For example, if you want a medium grey, do:
<PRE>
@@ -2878,10 +2878,10 @@ For example, if you want a medium grey, do:
<P>
</LI>
-<LI><TT>&#92;fflabelfont</TT><A NAME="6583"></A>
+<LI><TT>&#92;fflabelfont</TT><A NAME="6584"></A>
<P>
-This sets the font size for the <A HREF=ffuserguide.html#gls:bbox NAME="14964">bounding box</A> markers in
+This sets the font size for the <A HREF=ffuserguide.html#gls:bbox NAME="14965">bounding box</A> markers in
draft mode. The default value is: <code>\small\sffamily</code>.
For example, if you want a larger font, do:
<PRE>
@@ -2890,18 +2890,18 @@ For example, if you want a larger font, do:
<P>
</LI>
-<LI><TT>&#92;ffruledeclarations</TT><A NAME="6588"></A>
+<LI><TT>&#92;ffruledeclarations</TT><A NAME="6589"></A>
<P>
This sets the declarations that affect the rules created using
-<TT>&#92;insertvrule</TT><A NAME="6593"></A> and <TT>&#92;inserthrule</TT><A NAME="6598"></A>. The default
+<TT>&#92;insertvrule</TT><A NAME="6594"></A> and <TT>&#92;inserthrule</TT><A NAME="6599"></A>. The default
definition does nothing.
See <A HREF="ffuserguide.html#sec:insertrule">Vertical and
Horizontal Rules</A> for further details.
<P>
</LI>
-<LI><TT>&#92;ffcontinuedtextfont</TT><A NAME="6603"></A><TT>&#123;<I>text</I>&#125;</TT>
+<LI><TT>&#92;ffcontinuedtextfont</TT><A NAME="6604"></A><TT>&#123;<I>text</I>&#125;</TT>
<P>
This sets <I>text</I> in the continuation font. The default definition
@@ -2923,81 +2923,81 @@ Frames</A> for further details.
7.2 Lengths</A>
</H1>
The following are lengths, which can be changed using
-<TT>&#92;setlength</TT><A NAME="6614"></A>:
+<TT>&#92;setlength</TT><A NAME="6615"></A>:
<P>
<UL>
-<LI><TT>&#92;fflabelsep</TT><A NAME="6619"></A>
+<LI><TT>&#92;fflabelsep</TT><A NAME="6620"></A>
<P>
This is the distance from the right hand side of the
-<A HREF=ffuserguide.html#gls:bbox NAME="14972">bounding box</A> at which to place the <A HREF=ffuserguide.html#gls:bbox NAME="14979">bounding box</A> marker. The
+<A HREF=ffuserguide.html#gls:bbox NAME="14973">bounding box</A> at which to place the <A HREF=ffuserguide.html#gls:bbox NAME="14980">bounding box</A> marker. The
default value is: <TT>1pt</TT>
<P>
</LI>
-<LI><TT>&#92;flowframesep</TT><A NAME="6624"></A>
+<LI><TT>&#92;flowframesep</TT><A NAME="6625"></A>
<P>
-This is the gap between the text of the <A HREF=ffuserguide.html#gls:frame NAME="14986">frame</A> and
+This is the gap between the text of the <A HREF=ffuserguide.html#gls:frame NAME="14987">frame</A> and
its border, for the standard border types.
<P>
</LI>
-<LI><TT>&#92;flowframerule</TT><A NAME="6629"></A>
+<LI><TT>&#92;flowframerule</TT><A NAME="6630"></A>
<P>
-This is the width of the <A HREF=ffuserguide.html#gls:frame NAME="14993">frame's</A> border, if using
-a border given by a <A HREF=ffuserguide.html#gls:fcmd NAME="15000">frame making command</A> that uses <TT>&#92;fboxsep</TT><A NAME="6634"></A>
-to set its border width (e.g. <TT>&#92;fbox</TT><A NAME="6639"></A>).
+This is the width of the <A HREF=ffuserguide.html#gls:frame NAME="14994">frame's</A> border, if using
+a border given by a <A HREF=ffuserguide.html#gls:fcmd NAME="15001">frame making command</A> that uses <TT>&#92;fboxsep</TT><A NAME="6635"></A>
+to set its border width (e.g. <TT>&#92;fbox</TT><A NAME="6640"></A>).
<P>
</LI>
-<LI><TT>&#92;sdfparindent</TT><A NAME="6644"></A>
+<LI><TT>&#92;sdfparindent</TT><A NAME="6645"></A>
<P>
-This is the paragraph indentation within <A HREF=ffuserguide.html#gls:static NAME="15003">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15006">dynamic</A> frames.
+This is the paragraph indentation within <A HREF=ffuserguide.html#gls:static NAME="15004">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15007">dynamic</A> frames.
The default value is 0pt.
<P>
</LI>
-<LI><TT>&#92;vcolumnsep</TT><A NAME="6653"></A>
+<LI><TT>&#92;vcolumnsep</TT><A NAME="6654"></A>
<P>
This is the approximate vertical distance between the top frame
-and the column frames when using <TT>&#92;Ncolumntop</TT><A NAME="6658"></A> etc.
-(The height of the <A HREF=ffuserguide.html#gls:flow NAME="15013">flow frame</A> may be adjusted to make it
-an integer multiple of <TT>&#92;baselineskip</TT><A NAME="6663"></A>.)
+and the column frames when using <TT>&#92;Ncolumntop</TT><A NAME="6659"></A> etc.
+(The height of the <A HREF=ffuserguide.html#gls:flow NAME="15014">flow frame</A> may be adjusted to make it
+an integer multiple of <TT>&#92;baselineskip</TT><A NAME="6664"></A>.)
<P>
</LI>
-<LI><TT>&#92;columnsep</TT><A NAME="6668"></A>
+<LI><TT>&#92;columnsep</TT><A NAME="6669"></A>
<P>
This is the horizontal distance between the column frames
-when using <TT>&#92;Ncolumn</TT><A NAME="6673"></A> or <TT>&#92;Ncolumntop</TT><A NAME="6678"></A> etc
+when using <TT>&#92;Ncolumn</TT><A NAME="6674"></A> or <TT>&#92;Ncolumntop</TT><A NAME="6679"></A> etc
<P>
</LI>
-<LI><TT>&#92;ffcolumnseprule</TT><A NAME="6683"></A>
+<LI><TT>&#92;ffcolumnseprule</TT><A NAME="6684"></A>
<P>
This is the width of vertical rules created using
-<TT>&#92;insertvrule</TT><A NAME="6688"></A> or the height of horizontal rules created
-using <TT>&#92;inserthrule</TT><A NAME="6693"></A>.
+<TT>&#92;insertvrule</TT><A NAME="6689"></A> or the height of horizontal rules created
+using <TT>&#92;inserthrule</TT><A NAME="6694"></A>.
<P>
</LI>
-<LI><TT>&#92;beforeminitocskip</TT><A NAME="6698"></A>
+<LI><TT>&#92;beforeminitocskip</TT><A NAME="6699"></A>
<P>
This is the vertical distance before the minitoc.
<P>
</LI>
-<LI><TT>&#92;afterminitocskip</TT><A NAME="6703"></A>
+<LI><TT>&#92;afterminitocskip</TT><A NAME="6704"></A>
<P>
This is the vertical distance after the minitoc.
@@ -3015,51 +3015,51 @@ This is the vertical distance after the minitoc.
7.3 Counters
</H1>
The following are counters that can be accessed via
-<TT>&#92;value</TT><A NAME="6712"></A><TT>&#123;<I>counter name</I>&#125;</TT> or via
+<TT>&#92;value</TT><A NAME="6713"></A><TT>&#123;<I>counter name</I>&#125;</TT> or via
<code>\the</code><I>counter name</I>. However the value of these counters
should not be modified.
<P>
<DL>
-<DT><STRONG><TT>maxflow</TT><A NAME="6719"></A></STRONG></DT>
-<DD>The total number of <A HREF=ffuserguide.html#gls:flow NAME="15063">flow frames</A> that have
+<DT><STRONG><TT>maxflow</TT><A NAME="6720"></A></STRONG></DT>
+<DD>The total number of <A HREF=ffuserguide.html#gls:flow NAME="15064">flow frames</A> that have
been defined so far.
<P>
</DD>
-<DT><STRONG><TT>thisframe</TT><A NAME="6722"></A></STRONG></DT>
-<DD>Stores the <A HREF=ffuserguide.html#gls:idn NAME="15070">IDN</A> of the current
-flow frame. You can label and reference the <A HREF=ffuserguide.html#gls:idn NAME="15081">IDN</A> using
+<DT><STRONG><TT>thisframe</TT><A NAME="6723"></A></STRONG></DT>
+<DD>Stores the <A HREF=ffuserguide.html#gls:idn NAME="15071">IDN</A> of the current
+flow frame. You can label and reference the <A HREF=ffuserguide.html#gls:idn NAME="15082">IDN</A> using
<P>
-<TT>&#92;labelflowid</TT><A NAME="6725"></A><TT>&#123;<I>label</I>&#125;</TT>
+<TT>&#92;labelflowid</TT><A NAME="6726"></A><TT>&#123;<I>label</I>&#125;</TT>
<P>
-This is analogous to the standard <TT>&#92;label</TT><A NAME="6732"></A> command, but will
+This is analogous to the standard <TT>&#92;label</TT><A NAME="6733"></A> command, but will
always refer to the IDN of the current flow frame. It can
-then be referenced using <TT>&#92;ref</TT><A NAME="6737"></A><TT>&#123;<I>label</I>&#125;</TT>. Note that
+then be referenced using <TT>&#92;ref</TT><A NAME="6738"></A><TT>&#123;<I>label</I>&#125;</TT>. Note that
this will always refer to the current flow frame even when used
-in the contents of a <A HREF=ffuserguide.html#gls:static NAME="15096">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15099">dynamic</A> frame.
+in the contents of a <A HREF=ffuserguide.html#gls:static NAME="15097">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15100">dynamic</A> frame.
<P>
-Don't use more than one instance of <TT>&#92;labelflowid</TT><A NAME="6748"></A> in a given
+Don't use more than one instance of <TT>&#92;labelflowid</TT><A NAME="6749"></A> in a given
flow frame for a given page or you will get a "multiply defined
references" warning.
<P>
</DD>
-<DT><STRONG><TT>displayedframe</TT><A NAME="6753"></A></STRONG></DT>
+<DT><STRONG><TT>displayedframe</TT><A NAME="6754"></A></STRONG></DT>
<DD>Stores the index of the currently
-displayed <A HREF=ffuserguide.html#gls:flow NAME="15110">flow frame</A>. This will be the same as the <A HREF=ffuserguide.html#gls:idn NAME="15117">IDN</A> if all
+displayed <A HREF=ffuserguide.html#gls:flow NAME="15111">flow frame</A>. This will be the same as the <A HREF=ffuserguide.html#gls:idn NAME="15118">IDN</A> if all
flow frames are displayed on the current page, but if some are
hidden, the values may be different. You can label this counter
using
<P>
-<TT>&#92;labelflow</TT><A NAME="6756"></A><TT>&#123;<I>label</I>&#125;</TT>
+<TT>&#92;labelflow</TT><A NAME="6757"></A><TT>&#123;<I>label</I>&#125;</TT>
<P>
and reference it elsewhere in the document using
-<TT>&#92;ref</TT><A NAME="6763"></A><TT>&#123;<I>label</I>&#125;</TT>. For example, if you are using
+<TT>&#92;ref</TT><A NAME="6764"></A><TT>&#123;<I>label</I>&#125;</TT>. For example, if you are using
a column layout, you might want to do something like:
<PRE>
This text is about hippos\labelflow{hippos}.
@@ -3068,26 +3068,26 @@ This text is about hippos\labelflow{hippos}.
See column~\ref{hippos} on page~\pageref{hippos}
for information on hippos.
</PRE>
-Don't use more than one instance of <TT>&#92;labelflow</TT><A NAME="6770"></A> in a given
+Don't use more than one instance of <TT>&#92;labelflow</TT><A NAME="6771"></A> in a given
flow frame for a given page or you will get a "multiply defined
references" warning. Note that
-<TT>&#92;labelflow</TT><A NAME="6775"></A> will always refer to the current flow frame even when used in the contents of a static or dynamic <A HREF=ffuserguide.html#gls:frame NAME="15136">frame</A>.
+<TT>&#92;labelflow</TT><A NAME="6776"></A> will always refer to the current flow frame even when used in the contents of a static or dynamic <A HREF=ffuserguide.html#gls:frame NAME="15137">frame</A>.
<P>
</DD>
-<DT><STRONG><TT>maxstatic</TT><A NAME="6780"></A></STRONG></DT>
-<DD>The total number of <A HREF=ffuserguide.html#gls:static NAME="15143">static frames</A> that have
+<DT><STRONG><TT>maxstatic</TT><A NAME="6781"></A></STRONG></DT>
+<DD>The total number of <A HREF=ffuserguide.html#gls:static NAME="15144">static frames</A> that have
been defined so far.
<P>
</DD>
-<DT><STRONG><TT>maxdynamic</TT><A NAME="6783"></A></STRONG></DT>
-<DD>The total number of <A HREF=ffuserguide.html#gls:dynamic NAME="15150">dynamic frames</A> that
+<DT><STRONG><TT>maxdynamic</TT><A NAME="6784"></A></STRONG></DT>
+<DD>The total number of <A HREF=ffuserguide.html#gls:dynamic NAME="15151">dynamic frames</A> that
have been defined so far.
<P>
</DD>
-<DT><STRONG><TT>maxthumbtabs</TT><A NAME="6786"></A></STRONG></DT>
+<DT><STRONG><TT>maxthumbtabs</TT><A NAME="6787"></A></STRONG></DT>
<DD>The total number of thumbtabs.
</DD>
</DL>
@@ -3125,17 +3125,17 @@ before contacting me.
<P>
<OL>
-<LI>If all my <A HREF=ffuserguide.html#gls:flow NAME="15174">flow frames</A> are only defined on, say,
+<LI>If all my <A HREF=ffuserguide.html#gls:flow NAME="15175">flow frames</A> are only defined on, say,
pages 1-10, what happens if I then add some extra text so that
the document exceeds 10 pages?
<P>
-The output routine will create a new <A HREF=ffuserguide.html#gls:flow NAME="15181">flow frame</A> the size
-of the <A HREF=ffuserguide.html#gls:typeblock NAME="15188">typeblock</A> and use that.
+The output routine will create a new <A HREF=ffuserguide.html#gls:flow NAME="15182">flow frame</A> the size
+of the <A HREF=ffuserguide.html#gls:typeblock NAME="15189">typeblock</A> and use that.
<P>
</LI>
-<LI>Can I use the formatted page number in <A HREF=ffuserguide.html#gls:pglist NAME="15195">page lists</A>?
+<LI>Can I use the formatted page number in <A HREF=ffuserguide.html#gls:pglist NAME="15196">page lists</A>?
<P>
No.
@@ -3145,9 +3145,9 @@ No.
<LI><A NAME="itm:whynot"></A> Why not?
<P>
-When the output routine finishes with one <A HREF=ffuserguide.html#gls:flow NAME="15202">flow frame</A> it looks for the
-next <A HREF=ffuserguide.html#gls:flow NAME="15209">flow frame</A> defined on that page. If there are none left, it then
-searches through the <A HREF=ffuserguide.html#gls:pglist NAME="15216">page list</A> of all the defined <A HREF=ffuserguide.html#gls:flow NAME="15223">flow frames</A> to
+When the output routine finishes with one <A HREF=ffuserguide.html#gls:flow NAME="15203">flow frame</A> it looks for the
+next <A HREF=ffuserguide.html#gls:flow NAME="15210">flow frame</A> defined on that page. If there are none left, it then
+searches through the <A HREF=ffuserguide.html#gls:pglist NAME="15217">page list</A> of all the defined <A HREF=ffuserguide.html#gls:flow NAME="15224">flow frames</A> to
see if the next page lies in that range. If there are none defined on
that page, it ships out that page, and tries the next page. This gives
rise to two problems:
@@ -3159,7 +3159,7 @@ rise to two problems:
on page 14, and on the next page the page numbering changes
to A, it has no way of knowing this until it has reached
that point, which it hasn't yet. So it is looking for a
-<A HREF=ffuserguide.html#gls:flow NAME="15230">flow frame</A> defined on page&nbsp;15, not on page&nbsp;A.
+<A HREF=ffuserguide.html#gls:flow NAME="15231">flow frame</A> defined on page&nbsp;15, not on page&nbsp;A.
<P>
</LI>
@@ -3175,59 +3175,59 @@ for some arbitrary format.
<P>
</LI>
-<LI>Can I have an arbitrarily shaped <A HREF=ffuserguide.html#gls:frame NAME="15237">frame</A>?
+<LI>Can I have an arbitrarily shaped <A HREF=ffuserguide.html#gls:frame NAME="15238">frame</A>?
<A NAME="itm:parshape"></A>
<P>
-You can assign certain irregular shapes to <A HREF=ffuserguide.html#gls:static NAME="15240">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15243">dynamic</A> frames,
-using the shape<A NAME="6800"></A> key (see
+You can assign certain irregular shapes to <A HREF=ffuserguide.html#gls:static NAME="15241">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15244">dynamic</A> frames,
+using the shape<A NAME="6801"></A> key (see
<A HREF="ffuserguide.html#sec:parshape">Non-Rectangular
Frames</A>).
-Note that the <A HREF=ffuserguide.html#gls:bbox NAME="15250">bounding box</A> will still appear as a rectangle with
-the dimensions of the given <A HREF=ffuserguide.html#gls:frame NAME="15257">frame</A> which may not correspond
+Note that the <A HREF=ffuserguide.html#gls:bbox NAME="15251">bounding box</A> will still appear as a rectangle with
+the dimensions of the given <A HREF=ffuserguide.html#gls:frame NAME="15258">frame</A> which may not correspond
to the assigned shape.
-This function is not available for <A HREF=ffuserguide.html#gls:flow NAME="15264">flow frames</A>.
+This function is not available for <A HREF=ffuserguide.html#gls:flow NAME="15265">flow frames</A>.
<P>
</LI>
-<LI>Why has the text from my <A HREF=ffuserguide.html#gls:flow NAME="15271">flow frame</A> appeared in a
-<A HREF=ffuserguide.html#gls:static NAME="15278">static frame</A> or <A HREF=ffuserguide.html#gls:dynamic NAME="15285">dynamic frame</A>?
+<LI>Why has the text from my <A HREF=ffuserguide.html#gls:flow NAME="15272">flow frame</A> appeared in a
+<A HREF=ffuserguide.html#gls:static NAME="15279">static frame</A> or <A HREF=ffuserguide.html#gls:dynamic NAME="15286">dynamic frame</A>?
<P>
Assuming you haven't inadvertently set that text as the contents
-of the <A HREF=ffuserguide.html#gls:static NAME="15288">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15291">dynamic</A> frame, the frames are most likely
+of the <A HREF=ffuserguide.html#gls:static NAME="15289">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15292">dynamic</A> frame, the frames are most likely
overlapping (see <A HREF="ffuserguide.html#sec:stacking">Frame
Stacking Order</A>).
In an attempt to clarify what's going on, suppose you have
-defined a <A HREF=ffuserguide.html#gls:static NAME="15298">static frame</A>, a <A HREF=ffuserguide.html#gls:dynamic NAME="15305">dynamic frame</A> and two <A HREF=ffuserguide.html#gls:flow NAME="15312">flow frames</A>. The
+defined a <A HREF=ffuserguide.html#gls:static NAME="15299">static frame</A>, a <A HREF=ffuserguide.html#gls:dynamic NAME="15306">dynamic frame</A> and two <A HREF=ffuserguide.html#gls:flow NAME="15313">flow frames</A>. The
following is an approximate<A NAME="tex2html144"
- HREF="#foot2634"><SUP>8.1</SUP></A> analogy: TeX has a sheet of
+ HREF="#foot2635"><SUP>8.1</SUP></A> analogy: TeX has a sheet of
paper on the table, and has pencilled<A NAME="tex2html145"
- HREF="#foot2635"><SUP>8.2</SUP></A> in a
-rectangle denoting the <A HREF=ffuserguide.html#gls:typeblock NAME="15319">typeblock</A>. The paper is put to one
+ HREF="#foot2636"><SUP>8.2</SUP></A> in a
+rectangle denoting the <A HREF=ffuserguide.html#gls:typeblock NAME="15320">typeblock</A>. The paper is put to one
side for now. TeX also has four rectangular sheets
of transparent paper. The first (which I shall call sheet&nbsp;1)
-represents the <A HREF=ffuserguide.html#gls:static NAME="15326">static frame</A>, the next two (which I shall call
-sheets&nbsp;2 and&nbsp;3) represent the <A HREF=ffuserguide.html#gls:flow NAME="15333">flow frames</A>, and the last one
-(which I shall call sheet&nbsp;4) represents the <A HREF=ffuserguide.html#gls:dynamic NAME="15340">dynamic frame</A>.
+represents the <A HREF=ffuserguide.html#gls:static NAME="15327">static frame</A>, the next two (which I shall call
+sheets&nbsp;2 and&nbsp;3) represent the <A HREF=ffuserguide.html#gls:flow NAME="15334">flow frames</A>, and the last one
+(which I shall call sheet&nbsp;4) represents the <A HREF=ffuserguide.html#gls:dynamic NAME="15341">dynamic frame</A>.
TeX starts work on filling sheet&nbsp;2 with the document text.
Once it has put as much text on that sheet as it considers
possible (according to its views on aesthetics), it puts sheet&nbsp;2
into the "in tray", and then continues on sheet&nbsp;3. While it's
filling in sheets&nbsp;2 and&nbsp;3, if it encounters a command or
-environment that tells it what to put in the <A HREF=ffuserguide.html#gls:static NAME="15347">static frame</A>,
+environment that tells it what to put in the <A HREF=ffuserguide.html#gls:static NAME="15348">static frame</A>,
it fills in sheet&nbsp;1 and then puts sheet&nbsp;1 into the "in tray" and
resumes where it left off on sheet&nbsp;2 or&nbsp;3. Similarly, if
it encounters a command that tells it what to put in the
-<A HREF=ffuserguide.html#gls:dynamic NAME="15354">dynamic frame</A>, it stops what it's doing, fills in sheet&nbsp;4, then
+<A HREF=ffuserguide.html#gls:dynamic NAME="15355">dynamic frame</A>, it stops what it's doing, fills in sheet&nbsp;4, then
puts sheet&nbsp;4 into the "in tray", and resumes where it left off.
-Only when it has finished sheet&nbsp;3 (the last <A HREF=ffuserguide.html#gls:flow NAME="15361">flow frame</A> defined
+Only when it has finished sheet&nbsp;3 (the last <A HREF=ffuserguide.html#gls:flow NAME="15362">flow frame</A> defined
on that page), will it gather together all
the transparent sheets, and fix them onto the page starting
with sheet&nbsp;1 through to sheet&nbsp;4, measuring the bottom left hand
corner of each transparent sheet relative to the bottom left hand
-corner of the <A HREF=ffuserguide.html#gls:typeblock NAME="15368">typeblock</A>. TeX will then put that page
+corner of the <A HREF=ffuserguide.html#gls:typeblock NAME="15369">typeblock</A>. TeX will then put that page
aside, and start work on the next page. If two or more of the
transparent sheets overlap, you will see through the top one into
the one below (unless of course the top one has been painted
@@ -3237,7 +3237,7 @@ image that has a non-transparent background.)
<P>
Note that it's also possible that the overlap is caused by an
overfull hbox that's causing the text to poke out the side of the
-<A HREF=ffuserguide.html#gls:flow NAME="15375">flow frame</A> into a neighbouring <A HREF=ffuserguide.html#gls:frame NAME="15382">frame</A>. Check the log file for
+<A HREF=ffuserguide.html#gls:flow NAME="15376">flow frame</A> into a neighbouring <A HREF=ffuserguide.html#gls:frame NAME="15383">frame</A>. Check the log file for
warnings or use the <TT>draft</TT> option to the document class
which will place a filled rectangle on the end of overfull lines.
@@ -3246,7 +3246,7 @@ which will place a filled rectangle on the end of overfull lines.
<LI>Why do I get lots of overfull hbox messages?
<P>
-Probably because you have narrow <A HREF=ffuserguide.html#gls:frame NAME="15389">frames</A>. It's better to use
+Probably because you have narrow <A HREF=ffuserguide.html#gls:frame NAME="15390">frames</A>. It's better to use
ragged right formatting when the frames are narrow.
<P>
@@ -3254,19 +3254,19 @@ ragged right formatting when the frames are narrow.
<LI>Why do I keep getting multiply-defined warnings?
<P>
-Probably because you have used <TT>&#92;label</TT><A NAME="6806"></A> in a <A HREF=ffuserguide.html#gls:static NAME="15392">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15395">dynamic</A> frame that is displayed on more than one page. Try using the clear<A NAME="6814"></A>
+Probably because you have used <TT>&#92;label</TT><A NAME="6807"></A> in a <A HREF=ffuserguide.html#gls:static NAME="15393">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15396">dynamic</A> frame that is displayed on more than one page. Try using the clear<A NAME="6815"></A>
key to ensure that the frame is always cleared at the end of each
page.
<P>
</LI>
<LI>What happens if I use a command or environment
-that switches to two-column mode (e.g. <TT>theindex</TT><A NAME="6816"></A>)?
+that switches to two-column mode (e.g. <TT>theindex</TT><A NAME="6817"></A>)?
<P>
-As from version 1.01, any <TT>&#92;onecolumn</TT><A NAME="6819"></A> or
-<TT>&#92;twocolumn</TT><A NAME="6824"></A> commands that occur outside of the
+As from version 1.01, any <TT>&#92;onecolumn</TT><A NAME="6820"></A> or
+<TT>&#92;twocolumn</TT><A NAME="6825"></A> commands that occur outside of the
preamble will print the contents of the optional argument,
and issue a warning. It is recommended that you set up
your own frames for use in the index. See the source code of this
@@ -3275,17 +3275,17 @@ document, <TT>ffuserguide.tex</TT>, for an example.
<P>
</LI>
<LI>How do I change the vertical alignment
-of material inside a <A HREF=ffuserguide.html#gls:static NAME="15398">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15401">dynamic</A> frame?
+of material inside a <A HREF=ffuserguide.html#gls:static NAME="15399">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15402">dynamic</A> frame?
<P>
-Use the valign<A NAME="6832"></A> key in <TT>&#92;setstaticframe</TT><A NAME="6834"></A> or
-<TT>&#92;setdynamicframe</TT><A NAME="6839"></A> (new to version 1.03).
+Use the valign<A NAME="6833"></A> key in <TT>&#92;setstaticframe</TT><A NAME="6835"></A> or
+<TT>&#92;setdynamicframe</TT><A NAME="6840"></A> (new to version 1.03).
<P>
</LI>
<LI><A NAME="itm:absval"></A> How do I compute the distance from the edge
-of the page instead of the <A HREF=ffuserguide.html#gls:typeblock NAME="15408">typeblock</A>?
+of the page instead of the <A HREF=ffuserguide.html#gls:typeblock NAME="15409">typeblock</A>?
<P>
See <A HREF="ffuserguide.html#sec:typeblockloc">Determining the
@@ -3294,7 +3294,7 @@ Location of the Typeblock</A>.
<P>
</LI>
<LI>Is there a GUI I can use to make it easier to create the
-<A HREF=ffuserguide.html#gls:frame NAME="15415">frames</A>?
+<A HREF=ffuserguide.html#gls:frame NAME="15416">frames</A>?
<P>
Yes, Jpgfdraw which can be downloaded from:
@@ -3315,23 +3315,23 @@ Yes, Jpgfdraw which can be downloaded from:
<P>
<OL>
-<LI>The lines at the beginning of my <A HREF=ffuserguide.html#gls:flow NAME="15425">flow frames</A> are the
+<LI>The lines at the beginning of my <A HREF=ffuserguide.html#gls:flow NAME="15426">flow frames</A> are the
wrong width.
<P>
-This is a problem that will occur if you have <A HREF=ffuserguide.html#gls:flow NAME="15432">flow frames</A> with different widths, as the change in <TT>&#92;hsize</TT><A NAME="6848"></A>
+This is a problem that will occur if you have <A HREF=ffuserguide.html#gls:flow NAME="15433">flow frames</A> with different widths, as the change in <TT>&#92;hsize</TT><A NAME="6849"></A>
does not come into effect until a paragraph break. So if
-you have a paragraph that spans two <A HREF=ffuserguide.html#gls:flow NAME="15439">flow frames</A>, the end
-of the paragraph at the beginning of the second <A HREF=ffuserguide.html#gls:flow NAME="15446">flow frame</A> will retain the width it had at the start of the
-paragraph at the bottom of the previous <A HREF=ffuserguide.html#gls:flow NAME="15453">flow frame</A>. You can
-fix the problem by inserting <TT>&#92;framebreak</TT><A NAME="6853"></A> at the
-point where the <A HREF=ffuserguide.html#gls:frame NAME="15460">frame</A> break occurs
+you have a paragraph that spans two <A HREF=ffuserguide.html#gls:flow NAME="15440">flow frames</A>, the end
+of the paragraph at the beginning of the second <A HREF=ffuserguide.html#gls:flow NAME="15447">flow frame</A> will retain the width it had at the start of the
+paragraph at the bottom of the previous <A HREF=ffuserguide.html#gls:flow NAME="15454">flow frame</A>. You can
+fix the problem by inserting <TT>&#92;framebreak</TT><A NAME="6854"></A> at the
+point where the <A HREF=ffuserguide.html#gls:frame NAME="15461">frame</A> break occurs
(see <A HREF="ffuserguide.html#sec:framebreak">Prematurely Ending a
Flow Frame</A>).
<P>
</LI>
-<LI>My <A HREF=ffuserguide.html#gls:frame NAME="15467">frames</A> shift to the right when I add a border.
+<LI>My <A HREF=ffuserguide.html#gls:frame NAME="15468">frames</A> shift to the right when I add a border.
<P>
This may occur if you use a border that is not recognised
@@ -3347,7 +3347,7 @@ of every page.
<P>
This can happen if you have, say, an A4 document, and
-<TT>ghostscript</TT><A NAME="6858"></A> has letter as the default paper size. You can
+<TT>ghostscript</TT><A NAME="6859"></A> has letter as the default paper size. You can
change the default paper size by editing the file <code>gs_init.ps</code>.
Change:
<PRE>
@@ -3365,11 +3365,11 @@ to:
<LI>I don't have any output.
<P>
-All your <A HREF=ffuserguide.html#gls:flow NAME="15474">flow frames</A> are empty. TeX doesn't put the
+All your <A HREF=ffuserguide.html#gls:flow NAME="15475">flow frames</A> are empty. TeX doesn't put the
frames onto the page until it has finished putting text
into the flow frames. So if there is no text to go in the
flow frames it won't output the page. If you only want the
-<A HREF=ffuserguide.html#gls:static NAME="15489">static frames</A> or <A HREF=ffuserguide.html#gls:dynamic NAME="15496">dynamic frames</A> filled in, and nothing
+<A HREF=ffuserguide.html#gls:static NAME="15490">static frames</A> or <A HREF=ffuserguide.html#gls:dynamic NAME="15497">dynamic frames</A> filled in, and nothing
outside of them, just do <code>\mbox{}\clearpage</code>.
This will put
an invisible something with zero area into your
@@ -3386,15 +3386,15 @@ See the previous answer.
<P>
</LI>
<LI>There is no paragraph indentation inside my
-<A HREF=ffuserguide.html#gls:static NAME="15503">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15506">dynamic</A> frames.
+<A HREF=ffuserguide.html#gls:static NAME="15504">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15507">dynamic</A> frames.
<P>
-The paragraph indentation in <A HREF=ffuserguide.html#gls:static NAME="15509">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15512">dynamic</A> frames is governed
-by the length <TT>&#92;sdfparindent</TT><A NAME="6869"></A> which is set to 0pt by
+The paragraph indentation in <A HREF=ffuserguide.html#gls:static NAME="15510">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15513">dynamic</A> frames is governed
+by the length <TT>&#92;sdfparindent</TT><A NAME="6870"></A> which is set to 0pt by
default. To make the indentation the same as that used by
-<A HREF=ffuserguide.html#gls:flow NAME="15519">flow frames</A> place the following in the preamble:
+<A HREF=ffuserguide.html#gls:flow NAME="15520">flow frames</A> place the following in the preamble:
<PRE>
\setlength{\sdfparindent}{\parindent}
</PRE>
@@ -3404,20 +3404,20 @@ default. To make the indentation the same as that used by
<LI>My section numbering is in the wrong order.
<P>
-Remember that the contents of the <A HREF=ffuserguide.html#gls:dynamic NAME="15526">dynamic frames</A> are not set
+Remember that the contents of the <A HREF=ffuserguide.html#gls:dynamic NAME="15527">dynamic frames</A> are not set
until the page is shipped out, and the contents will be set
-in the order of <A HREF=ffuserguide.html#gls:idn NAME="15533">IDN</A>, so if you have any sectioning commands
+in the order of <A HREF=ffuserguide.html#gls:idn NAME="15534">IDN</A>, so if you have any sectioning commands
occuring within dynamic frames, they may not be set in the same
order as they are in your input file.
<P>
</LI>
-<LI>The contents of my <A HREF=ffuserguide.html#gls:static NAME="15540">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15543">dynamic</A> frame have shifted
-to the left when I used <TT>&#92;parshape</TT><A NAME="6878"></A>.
+<LI>The contents of my <A HREF=ffuserguide.html#gls:static NAME="15541">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15544">dynamic</A> frame have shifted
+to the left when I used <TT>&#92;parshape</TT><A NAME="6879"></A>.
<P>
-This will happen if your <TT>&#92;parshape</TT><A NAME="6883"></A> specification
+This will happen if your <TT>&#92;parshape</TT><A NAME="6884"></A> specification
exceeds the linewidth. For example:
<PRE>
\parshape=1 0.4\linewidth 0.7\linewidth
@@ -3445,10 +3445,10 @@ This specifies a line with overall length
<P>
All lengths must have units. Remember to include the
-units when defining new <A HREF=ffuserguide.html#gls:frame NAME="15585">frames</A>. The following
+units when defining new <A HREF=ffuserguide.html#gls:frame NAME="15586">frames</A>. The following
keys require lengths: <TT>width</TT>, <TT>height</TT>,
<TT>x</TT>, <TT>y</TT> and <TT>offset</TT><A NAME="tex2html206"
- HREF="#foot3487"><SUP>8.3</SUP></A>.
+ HREF="#foot3488"><SUP>8.3</SUP></A>.
<P>
</LI>
@@ -3461,11 +3461,11 @@ possible causes:
<P>
<OL>
-<LI>You have used an <A HREF=ffuserguide.html#gls:idl NAME="15592">IDL</A> instead of an <A HREF=ffuserguide.html#gls:idn NAME="15599">IDN</A>. If you
+<LI>You have used an <A HREF=ffuserguide.html#gls:idl NAME="15593">IDL</A> instead of an <A HREF=ffuserguide.html#gls:idn NAME="15600">IDN</A>. If you
want to refer to a frame by its label, you need to remember
to use the starred versions of the
<code>\set</code><I>type</I><code>frame</code> commands, or when setting
-the contents of <A HREF=ffuserguide.html#gls:static NAME="15606">static frames</A> or <A HREF=ffuserguide.html#gls:dynamic NAME="15613">dynamic frames</A>.
+the contents of <A HREF=ffuserguide.html#gls:static NAME="15607">static frames</A> or <A HREF=ffuserguide.html#gls:dynamic NAME="15614">dynamic frames</A>.
<P>
</LI>
@@ -3479,24 +3479,24 @@ with page ranges. For example: <TT>1,even</TT> is invalid.
<LI><code>Flow frame IDL '</code><I>label</I><code>' already defined</code>
<P>
-All <A HREF=ffuserguide.html#gls:idl NAME="15620">IDLs</A> within each <A HREF=ffuserguide.html#gls:frame NAME="15627">frame</A> type must be
+All <A HREF=ffuserguide.html#gls:idl NAME="15621">IDLs</A> within each <A HREF=ffuserguide.html#gls:frame NAME="15628">frame</A> type must be
unique. There are similar error messages for duplicate
-IDLs for <A HREF=ffuserguide.html#gls:static NAME="15638">static frames</A> and <A HREF=ffuserguide.html#gls:dynamic NAME="15645">dynamic frames</A>.
+IDLs for <A HREF=ffuserguide.html#gls:static NAME="15639">static frames</A> and <A HREF=ffuserguide.html#gls:dynamic NAME="15646">dynamic frames</A>.
<P>
</LI>
<LI><code>Can't find flow frame id</code>
<P>
-You have specified a non-existent flow frame <A HREF=ffuserguide.html#gls:idl NAME="15656">IDL</A>. There are
-similar error messages for <A HREF=ffuserguide.html#gls:static NAME="15663">static frames</A> and <A HREF=ffuserguide.html#gls:dynamic NAME="15670">dynamic frames</A>.
+You have specified a non-existent flow frame <A HREF=ffuserguide.html#gls:idl NAME="15657">IDL</A>. There are
+similar error messages for <A HREF=ffuserguide.html#gls:static NAME="15664">static frames</A> and <A HREF=ffuserguide.html#gls:dynamic NAME="15671">dynamic frames</A>.
Check to make sure you have spelt the label correctly, and
-check you are using the correct <A HREF=ffuserguide.html#gls:frame NAME="15677">frame</A> type command.
+check you are using the correct <A HREF=ffuserguide.html#gls:frame NAME="15678">frame</A> type command.
(For example, if a static frame has the IDL <TT>mylabel</TT>,
and you attempt to do
-<TT>&#92;setflowframe*</TT><A NAME="6892"></A><TT>&#123;mylabel&#125;&#123;<I>options</I>&#125;</TT>,
+<TT>&#92;setflowframe*</TT><A NAME="6893"></A><TT>&#123;mylabel&#125;&#123;<I>options</I>&#125;</TT>,
then you will get this error, because <TT>mylabel</TT> refers
-to a static frame not a <A HREF=ffuserguide.html#gls:flow NAME="15696">flow frame</A>.)
+to a static frame not a <A HREF=ffuserguide.html#gls:flow NAME="15697">flow frame</A>.)
<P>
</LI>
@@ -3511,30 +3511,30 @@ or <TT>false</TT>.
<LI><code>Key 'clear' not available</code>
<P>
-The <TT>clear</TT> key is only available for <A HREF=ffuserguide.html#gls:static NAME="15699">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15702">dynamic</A> frames.
+The <TT>clear</TT> key is only available for <A HREF=ffuserguide.html#gls:static NAME="15700">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15703">dynamic</A> frames.
<P>
</LI>
<LI><code>Key 'style' not available</code>
<P>
-The <TT>style</TT> key is only available for <A HREF=ffuserguide.html#gls:dynamic NAME="15709">dynamic frames</A>.
+The <TT>style</TT> key is only available for <A HREF=ffuserguide.html#gls:dynamic NAME="15710">dynamic frames</A>.
<P>
</LI>
<LI><code>Key 'margin' not available</code>
<P>
-The <TT>margin</TT> key is only available for <A HREF=ffuserguide.html#gls:flow NAME="15716">flow frames</A>.
+The <TT>margin</TT> key is only available for <A HREF=ffuserguide.html#gls:flow NAME="15717">flow frames</A>.
<P>
</LI>
<LI><code>Key 'shape' not available</code>
<P>
-The <TT>shape</TT> key is only available for <A HREF=ffuserguide.html#gls:static NAME="15719">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15722">dynamic</A> frames.
+The <TT>shape</TT> key is only available for <A HREF=ffuserguide.html#gls:static NAME="15720">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15723">dynamic</A> frames.
<P>
</LI>
@@ -3560,11 +3560,11 @@ the initial backslash.
<P>
You can not have floats (such as figures, tables or marginal
-notes) in <A HREF=ffuserguide.html#gls:static NAME="15725">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15728">dynamic</A> frames. If you want
-a figure or table within a <A HREF=ffuserguide.html#gls:static NAME="15731">static</A> or
-<A HREF=ffuserguide.html#gls:dynamic NAME="15734">dynamic</A> frame
-use <TT>staticfigure</TT><A NAME="6916"></A> or <TT>statictable</TT><A NAME="6919"></A>.
+notes) in <A HREF=ffuserguide.html#gls:static NAME="15726">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15729">dynamic</A> frames. If you want
+a figure or table within a <A HREF=ffuserguide.html#gls:static NAME="15732">static</A> or
+<A HREF=ffuserguide.html#gls:dynamic NAME="15735">dynamic</A> frame
+use <TT>staticfigure</TT><A NAME="6917"></A> or <TT>statictable</TT><A NAME="6920"></A>.
<P>
</LI>
@@ -3572,7 +3572,7 @@ use <TT>staticfigure</TT><A NAME="6916"></A> or <TT>statictable</TT><A NAME="691
<P>
Assuming that all your list type of environments start
-with <TT>&#92;item</TT><A NAME="6922"></A>, this may be caused by something going
+with <TT>&#92;item</TT><A NAME="6923"></A>, this may be caused by something going
wrong with the toc (table of contents), ttb (thumbtab)
or aux (auxiliary) files in the previous run. Try deleting
them, and try again.
@@ -3582,7 +3582,7 @@ them, and try again.
<LI><code>No room for a new \skip</code>
<P>
-You have exceeded TeX's 256 register limit. Use the <TT>etex</TT><A NAME="6927"></A>
+You have exceeded TeX's 256 register limit. Use the <TT>etex</TT><A NAME="6928"></A>
package.
<P>
@@ -3590,7 +3590,7 @@ package.
<LI><code>\verb illegal in command argument</code>
<P>
-As a general rule, you can't use verbatim text<A NAME="6929"></A> in a command
+As a general rule, you can't use verbatim text<A NAME="6930"></A> in a command
argument.
This rule applies to all the commands defined by the <TT>flowfram</TT>
package. See also below.
@@ -3598,11 +3598,11 @@ package. See also below.
<P>
</LI>
<LI>I get <code>\verb illegal in command argument</code> when using
-verbatim text<A NAME="6930"></A> inside the <TT>dynamiccontents</TT><A NAME="6932"></A> environment.
+verbatim text<A NAME="6931"></A> inside the <TT>dynamiccontents</TT><A NAME="6933"></A> environment.
<P>
-You can not use verbatim text<A NAME="6934"></A> inside either the starred or
-unstarred version of the <TT>dynamiccontents</TT><A NAME="6936"></A> environment.
+You can not use verbatim text<A NAME="6935"></A> inside either the starred or
+unstarred version of the <TT>dynamiccontents</TT><A NAME="6937"></A> environment.
(See <A HREF="ffuserguide.html#pg:verb">earlier</A>.)
<P>
@@ -3622,277 +3622,277 @@ Glossary</A>
<DT><A NAME="gls:bbox"><B>bounding box</B></A><DD>The bounding box of a frame is the area allocated for the
contents of that frame. However the text may not completely fill that
area, and it is possible that the text may overflow that area. <A NAME="tex2html9"
- HREF="ffuserguide.html#11561"> 1.1 Draft Option</A>
+ HREF="ffuserguide.html#11562"> 1.1 Draft Option</A>
, <A NAME="tex2html24"
- HREF="ffuserguide.html#11746"> 1.2 Frame Stacking Order</A>
+ HREF="ffuserguide.html#11747"> 1.2 Frame Stacking Order</A>
, <A NAME="tex2html65"
- HREF="ffuserguide.html#13024"> 3. Modifying Frame Attributes</A>
+ HREF="ffuserguide.html#13025"> 3. Modifying Frame Attributes</A>
, <A NAME="tex2html68"
- HREF="ffuserguide.html#13105"> 3. Modifying Frame Attributes</A>
+ HREF="ffuserguide.html#13106"> 3. Modifying Frame Attributes</A>
, <A NAME="tex2html72"
- HREF="ffuserguide.html#13194"> 3.1 Non-Rectangular Frames</A>
+ HREF="ffuserguide.html#13195"> 3.1 Non-Rectangular Frames</A>
, <A NAME="tex2html121"
- HREF="ffuserguide.html#14943"> 7.1 Macros</A>
+ HREF="ffuserguide.html#14944"> 7.1 Macros</A>
, <A NAME="tex2html122"
- HREF="ffuserguide.html#14950"> 7.1 Macros</A>
+ HREF="ffuserguide.html#14951"> 7.1 Macros</A>
, <A NAME="tex2html124"
- HREF="ffuserguide.html#14964"> 7.1 Macros</A>
+ HREF="ffuserguide.html#14965"> 7.1 Macros</A>
, <A NAME="tex2html125"
- HREF="ffuserguide.html#14972"> 7.2 Lengths</A>
+ HREF="ffuserguide.html#14973"> 7.2 Lengths</A>
, <A NAME="tex2html126"
- HREF="ffuserguide.html#14979"> 7.2 Lengths</A>
+ HREF="ffuserguide.html#14980"> 7.2 Lengths</A>
, <A NAME="tex2html159"
- HREF="ffuserguide.html#15250"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15251"> 8.1 General Queries</A>
<DT><A NAME="gls:dynamic"><B>dynamic frame</B></A><DD>Frames
in which text is fixed in place, but the contents are re-typeset
each time the frame is displayed. <A NAME="tex2html7"
- HREF="ffuserguide.html#11480"> 1. Introduction</A>
+ HREF="ffuserguide.html#11481"> 1. Introduction</A>
, <A NAME="tex2html16"
- HREF="ffuserguide.html#11630"> 1.1 Draft Option</A>
+ HREF="ffuserguide.html#11631"> 1.1 Draft Option</A>
, <A NAME="tex2html22"
- HREF="ffuserguide.html#11732"> 1.2 Frame Stacking Order</A>
+ HREF="ffuserguide.html#11733"> 1.2 Frame Stacking Order</A>
, <A NAME="tex2html28"
- HREF="ffuserguide.html#11787"> 1.3 HTML</A>
+ HREF="ffuserguide.html#11788"> 1.3 HTML</A>
, <A NAME="tex2html49"
- HREF="ffuserguide.html#12477"> 2.3 Dynamic Frames</A>
+ HREF="ffuserguide.html#12478"> 2.3 Dynamic Frames</A>
, <A NAME="tex2html56"
- HREF="ffuserguide.html#12667"> 2.3.1 Important Notes</A>
+ HREF="ffuserguide.html#12668"> 2.3.1 Important Notes</A>
, <A NAME="tex2html60"
- HREF="ffuserguide.html#12845"> 3. Modifying Frame Attributes</A>
+ HREF="ffuserguide.html#12846"> 3. Modifying Frame Attributes</A>
, <A NAME="tex2html70"
- HREF="ffuserguide.html#13180"> 3.1 Non-Rectangular Frames</A>
+ HREF="ffuserguide.html#13181"> 3.1 Non-Rectangular Frames</A>
, <A NAME="tex2html85"
- HREF="ffuserguide.html#13419"> 4.3 Relative Locations</A>
+ HREF="ffuserguide.html#13420"> 4.3 Relative Locations</A>
, <A NAME="tex2html118"
- HREF="ffuserguide.html#14893"> 6.2 Minitocs</A>
+ HREF="ffuserguide.html#14894"> 6.2 Minitocs</A>
, <A NAME="tex2html131"
- HREF="ffuserguide.html#15006"> 7.2 Lengths</A>
+ HREF="ffuserguide.html#15007"> 7.2 Lengths</A>
, <A NAME="tex2html137"
- HREF="ffuserguide.html#15099"> 7.3 Counters</A>
+ HREF="ffuserguide.html#15100"> 7.3 Counters</A>
, <A NAME="tex2html142"
- HREF="ffuserguide.html#15150"> 7.3 Counters</A>
+ HREF="ffuserguide.html#15151"> 7.3 Counters</A>
, <A NAME="tex2html158"
- HREF="ffuserguide.html#15243"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15244"> 8.1 General Queries</A>
, <A NAME="tex2html164"
- HREF="ffuserguide.html#15285"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15286"> 8.1 General Queries</A>
, <A NAME="tex2html166"
- HREF="ffuserguide.html#15291"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15292"> 8.1 General Queries</A>
, <A NAME="tex2html168"
- HREF="ffuserguide.html#15305"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15306"> 8.1 General Queries</A>
, <A NAME="tex2html173"
- HREF="ffuserguide.html#15340"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15341"> 8.1 General Queries</A>
, <A NAME="tex2html175"
- HREF="ffuserguide.html#15354"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15355"> 8.1 General Queries</A>
, <A NAME="tex2html182"
- HREF="ffuserguide.html#15395"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15396"> 8.1 General Queries</A>
, <A NAME="tex2html184"
- HREF="ffuserguide.html#15401"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15402"> 8.1 General Queries</A>
, <A NAME="tex2html196"
- HREF="ffuserguide.html#15496"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15497"> 8.2 Unexpected Output</A>
, <A NAME="tex2html198"
- HREF="ffuserguide.html#15506"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15507"> 8.2 Unexpected Output</A>
, <A NAME="tex2html200"
- HREF="ffuserguide.html#15512"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15513"> 8.2 Unexpected Output</A>
, <A NAME="tex2html202"
- HREF="ffuserguide.html#15526"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15527"> 8.2 Unexpected Output</A>
, <A NAME="tex2html205"
- HREF="ffuserguide.html#15543"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15544"> 8.2 Unexpected Output</A>
, <A NAME="tex2html211"
- HREF="ffuserguide.html#15613"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15614"> 8.3 Error Messages</A>
, <A NAME="tex2html215"
- HREF="ffuserguide.html#15645"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15646"> 8.3 Error Messages</A>
, <A NAME="tex2html218"
- HREF="ffuserguide.html#15670"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15671"> 8.3 Error Messages</A>
, <A NAME="tex2html222"
- HREF="ffuserguide.html#15702"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15703"> 8.3 Error Messages</A>
, <A NAME="tex2html223"
- HREF="ffuserguide.html#15709"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15710"> 8.3 Error Messages</A>
, <A NAME="tex2html226"
- HREF="ffuserguide.html#15722"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15723"> 8.3 Error Messages</A>
, <A NAME="tex2html228"
- HREF="ffuserguide.html#15728"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15729"> 8.3 Error Messages</A>
, <A NAME="tex2html230"
- HREF="ffuserguide.html#15734"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15735"> 8.3 Error Messages</A>
<DT><A NAME="gls:flow"><B>flow frame</B></A><DD>The frames in a document such that the contents of the
-<TT>document</TT><A NAME="3558"></A> environment flow from one frame to the next in
+<TT>document</TT><A NAME="3559"></A> environment flow from one frame to the next in
the order that they were defined. There must be at least one flow frame
on every page. <A NAME="tex2html5"
- HREF="ffuserguide.html#11466"> 1. Introduction</A>
+ HREF="ffuserguide.html#11467"> 1. Introduction</A>
, <A NAME="tex2html14"
- HREF="ffuserguide.html#11616"> 1.1 Draft Option</A>
+ HREF="ffuserguide.html#11617"> 1.1 Draft Option</A>
, <A NAME="tex2html20"
- HREF="ffuserguide.html#11718"> 1.2 Frame Stacking Order</A>
+ HREF="ffuserguide.html#11719"> 1.2 Frame Stacking Order</A>
, <A NAME="tex2html32"
- HREF="ffuserguide.html#11864"> 2.1 Flow Frames</A>
+ HREF="ffuserguide.html#11865"> 2.1 Flow Frames</A>
, <A NAME="tex2html39"
- HREF="ffuserguide.html#12030"> 2.1.1 Prematurely Ending a Flow Frame</A>
+ HREF="ffuserguide.html#12031"> 2.1.1 Prematurely Ending a Flow Frame</A>
, <A NAME="tex2html58"
- HREF="ffuserguide.html#12831"> 3. Modifying Frame Attributes</A>
+ HREF="ffuserguide.html#12832"> 3. Modifying Frame Attributes</A>
, <A NAME="tex2html71"
- HREF="ffuserguide.html#13187"> 3.1 Non-Rectangular Frames</A>
+ HREF="ffuserguide.html#13188"> 3.1 Non-Rectangular Frames</A>
, <A NAME="tex2html84"
- HREF="ffuserguide.html#13412"> 4.3 Relative Locations</A>
+ HREF="ffuserguide.html#13413"> 4.3 Relative Locations</A>
, <A NAME="tex2html89"
- HREF="ffuserguide.html#13497"> 5.1 Column Styles</A>
+ HREF="ffuserguide.html#13498"> 5.1 Column Styles</A>
, <A NAME="tex2html93"
- HREF="ffuserguide.html#14131"> 5.2 Column Styles with an Additional Frame</A>
+ HREF="ffuserguide.html#14132"> 5.2 Column Styles with an Additional Frame</A>
, <A NAME="tex2html97"
- HREF="ffuserguide.html#14216"> 5.3 Right to Left Columns</A>
+ HREF="ffuserguide.html#14217"> 5.3 Right to Left Columns</A>
, <A NAME="tex2html98"
- HREF="ffuserguide.html#14223"> 5.3 Right to Left Columns</A>
+ HREF="ffuserguide.html#14224"> 5.3 Right to Left Columns</A>
, <A NAME="tex2html112"
- HREF="ffuserguide.html#14756"> 5.4.4 Vertical and Horizontal Rules</A>
+ HREF="ffuserguide.html#14757"> 5.4.4 Vertical and Horizontal Rules</A>
, <A NAME="tex2html132"
- HREF="ffuserguide.html#15013"> 7.2 Lengths</A>
+ HREF="ffuserguide.html#15014"> 7.2 Lengths</A>
, <A NAME="tex2html133"
- HREF="ffuserguide.html#15063"> 7.3 Counters</A>
+ HREF="ffuserguide.html#15064"> 7.3 Counters</A>
, <A NAME="tex2html138"
- HREF="ffuserguide.html#15110"> 7.3 Counters</A>
+ HREF="ffuserguide.html#15111"> 7.3 Counters</A>
, <A NAME="tex2html147"
- HREF="ffuserguide.html#15174"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15175"> 8.1 General Queries</A>
, <A NAME="tex2html148"
- HREF="ffuserguide.html#15181"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15182"> 8.1 General Queries</A>
, <A NAME="tex2html151"
- HREF="ffuserguide.html#15202"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15203"> 8.1 General Queries</A>
, <A NAME="tex2html152"
- HREF="ffuserguide.html#15209"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15210"> 8.1 General Queries</A>
, <A NAME="tex2html154"
- HREF="ffuserguide.html#15223"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15224"> 8.1 General Queries</A>
, <A NAME="tex2html155"
- HREF="ffuserguide.html#15230"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15231"> 8.1 General Queries</A>
, <A NAME="tex2html161"
- HREF="ffuserguide.html#15264"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15265"> 8.1 General Queries</A>
, <A NAME="tex2html162"
- HREF="ffuserguide.html#15271"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15272"> 8.1 General Queries</A>
, <A NAME="tex2html169"
- HREF="ffuserguide.html#15312"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15313"> 8.1 General Queries</A>
, <A NAME="tex2html172"
- HREF="ffuserguide.html#15333"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15334"> 8.1 General Queries</A>
, <A NAME="tex2html176"
- HREF="ffuserguide.html#15361"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15362"> 8.1 General Queries</A>
, <A NAME="tex2html178"
- HREF="ffuserguide.html#15375"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15376"> 8.1 General Queries</A>
, <A NAME="tex2html187"
- HREF="ffuserguide.html#15425"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15426"> 8.2 Unexpected Output</A>
, <A NAME="tex2html188"
- HREF="ffuserguide.html#15432"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15433"> 8.2 Unexpected Output</A>
, <A NAME="tex2html189"
- HREF="ffuserguide.html#15439"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15440"> 8.2 Unexpected Output</A>
, <A NAME="tex2html190"
- HREF="ffuserguide.html#15446"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15447"> 8.2 Unexpected Output</A>
, <A NAME="tex2html191"
- HREF="ffuserguide.html#15453"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15454"> 8.2 Unexpected Output</A>
, <A NAME="tex2html194"
- HREF="ffuserguide.html#15474"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15475"> 8.2 Unexpected Output</A>
, <A NAME="tex2html201"
- HREF="ffuserguide.html#15519"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15520"> 8.2 Unexpected Output</A>
, <A NAME="tex2html220"
- HREF="ffuserguide.html#15696"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15697"> 8.3 Error Messages</A>
, <A NAME="tex2html224"
- HREF="ffuserguide.html#15716"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15717"> 8.3 Error Messages</A>
<DT><A NAME="gls:frame"><B>frame</B></A><DD>A rectangular
area of the page in which text can be placed (not to be
confused with a frame making command). There are three types:
flow, static and dynamic. <A NAME="tex2html4"
- HREF="ffuserguide.html#11451"> 1. Introduction</A>
+ HREF="ffuserguide.html#11452"> 1. Introduction</A>
, <A NAME="tex2html10"
- HREF="ffuserguide.html#11568"> 1.1 Draft Option</A>
+ HREF="ffuserguide.html#11569"> 1.1 Draft Option</A>
, <A NAME="tex2html25"
- HREF="ffuserguide.html#11753"> 1.2 Frame Stacking Order</A>
+ HREF="ffuserguide.html#11754"> 1.2 Frame Stacking Order</A>
, <A NAME="tex2html26"
- HREF="ffuserguide.html#11781"> 1.3 HTML</A>
+ HREF="ffuserguide.html#11782"> 1.3 HTML</A>
, <A NAME="tex2html33"
- HREF="ffuserguide.html#11871"> 2.1 Flow Frames</A>
+ HREF="ffuserguide.html#11872"> 2.1 Flow Frames</A>
, <A NAME="tex2html40"
- HREF="ffuserguide.html#12041"> 2.1.1 Prematurely Ending a Flow Frame</A>
+ HREF="ffuserguide.html#12042"> 2.1.1 Prematurely Ending a Flow Frame</A>
, <A NAME="tex2html53"
- HREF="ffuserguide.html#12565"> 2.3 Dynamic Frames</A>
+ HREF="ffuserguide.html#12566"> 2.3 Dynamic Frames</A>
, <A NAME="tex2html57"
- HREF="ffuserguide.html#12682"> 2.3.1 Important Notes</A>
+ HREF="ffuserguide.html#12683"> 2.3.1 Important Notes</A>
, <A NAME="tex2html61"
- HREF="ffuserguide.html#12852"> 3. Modifying Frame Attributes</A>
+ HREF="ffuserguide.html#12853"> 3. Modifying Frame Attributes</A>
, <A NAME="tex2html73"
- HREF="ffuserguide.html#13201"> 3.1 Non-Rectangular Frames</A>
+ HREF="ffuserguide.html#13202"> 3.1 Non-Rectangular Frames</A>
, <A NAME="tex2html74"
- HREF="ffuserguide.html#13227"> 4. Locations and Dimensions</A>
+ HREF="ffuserguide.html#13228"> 4. Locations and Dimensions</A>
, <A NAME="tex2html75"
- HREF="ffuserguide.html#13259"> 4.1 Determining the Location of the Typeblock</A>
+ HREF="ffuserguide.html#13260"> 4.1 Determining the Location of the Typeblock</A>
, <A NAME="tex2html77"
- HREF="ffuserguide.html#13310"> 4.2 Determining the Dimensions and Locations of Frames</A>
+ HREF="ffuserguide.html#13311"> 4.2 Determining the Dimensions and Locations of Frames</A>
, <A NAME="tex2html80"
- HREF="ffuserguide.html#13384"> 4.3 Relative Locations</A>
+ HREF="ffuserguide.html#13385"> 4.3 Relative Locations</A>
, <A NAME="tex2html88"
- HREF="ffuserguide.html#13449"> 5. Predefined Layouts</A>
+ HREF="ffuserguide.html#13450"> 5. Predefined Layouts</A>
, <A NAME="tex2html94"
- HREF="ffuserguide.html#14138"> 5.2 Column Styles with an Additional Frame</A>
+ HREF="ffuserguide.html#14139"> 5.2 Column Styles with an Additional Frame</A>
, <A NAME="tex2html106"
- HREF="ffuserguide.html#14678"> 5.4.4 Vertical and Horizontal Rules</A>
+ HREF="ffuserguide.html#14679"> 5.4.4 Vertical and Horizontal Rules</A>
, <A NAME="tex2html127"
- HREF="ffuserguide.html#14986"> 7.2 Lengths</A>
+ HREF="ffuserguide.html#14987"> 7.2 Lengths</A>
, <A NAME="tex2html128"
- HREF="ffuserguide.html#14993"> 7.2 Lengths</A>
+ HREF="ffuserguide.html#14994"> 7.2 Lengths</A>
, <A NAME="tex2html140"
- HREF="ffuserguide.html#15136"> 7.3 Counters</A>
+ HREF="ffuserguide.html#15137"> 7.3 Counters</A>
, <A NAME="tex2html156"
- HREF="ffuserguide.html#15237"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15238"> 8.1 General Queries</A>
, <A NAME="tex2html160"
- HREF="ffuserguide.html#15257"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15258"> 8.1 General Queries</A>
, <A NAME="tex2html179"
- HREF="ffuserguide.html#15382"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15383"> 8.1 General Queries</A>
, <A NAME="tex2html180"
- HREF="ffuserguide.html#15389"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15390"> 8.1 General Queries</A>
, <A NAME="tex2html186"
- HREF="ffuserguide.html#15415"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15416"> 8.1 General Queries</A>
, <A NAME="tex2html192"
- HREF="ffuserguide.html#15460"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15461"> 8.2 Unexpected Output</A>
, <A NAME="tex2html193"
- HREF="ffuserguide.html#15467"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15468"> 8.2 Unexpected Output</A>
, <A NAME="tex2html207"
- HREF="ffuserguide.html#15585"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15586"> 8.3 Error Messages</A>
, <A NAME="tex2html213"
- HREF="ffuserguide.html#15627"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15628"> 8.3 Error Messages</A>
, <A NAME="tex2html219"
- HREF="ffuserguide.html#15677"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15678"> 8.3 Error Messages</A>
<DT><A NAME="gls:fcmd"><B>frame making command</B></A><DD>A
LaTeX command which places some kind of border around its
-argument. For example: <TT>&#92;fbox</TT><A NAME="3571"></A>. <A NAME="tex2html64"
- HREF="ffuserguide.html#13009"> 3. Modifying Frame Attributes</A>
+argument. For example: <TT>&#92;fbox</TT><A NAME="3572"></A>. <A NAME="tex2html64"
+ HREF="ffuserguide.html#13010"> 3. Modifying Frame Attributes</A>
, <A NAME="tex2html129"
- HREF="ffuserguide.html#15000"> 7.2 Lengths</A>
+ HREF="ffuserguide.html#15001"> 7.2 Lengths</A>
<DT><A NAME="gls:idl"><B>identification label
(IDL)</B></A><DD>A unique
label which can be assigned to a frame, enabling you to
refer to the frame by label instead of by its
IDN. <A NAME="tex2html13"
- HREF="ffuserguide.html#11605"> 1.1 Draft Option</A>
+ HREF="ffuserguide.html#11606"> 1.1 Draft Option</A>
, <A NAME="tex2html38"
- HREF="ffuserguide.html#11958"> 2.1 Flow Frames</A>
+ HREF="ffuserguide.html#11959"> 2.1 Flow Frames</A>
, <A NAME="tex2html45"
- HREF="ffuserguide.html#12208"> 2.2 Static Frames</A>
+ HREF="ffuserguide.html#12209"> 2.2 Static Frames</A>
, <A NAME="tex2html52"
- HREF="ffuserguide.html#12522"> 2.3 Dynamic Frames</A>
+ HREF="ffuserguide.html#12523"> 2.3 Dynamic Frames</A>
, <A NAME="tex2html55"
- HREF="ffuserguide.html#12615"> 2.3 Dynamic Frames</A>
+ HREF="ffuserguide.html#12616"> 2.3 Dynamic Frames</A>
, <A NAME="tex2html63"
- HREF="ffuserguide.html#12910"> 3. Modifying Frame Attributes</A>
+ HREF="ffuserguide.html#12911"> 3. Modifying Frame Attributes</A>
, <A NAME="tex2html78"
- HREF="ffuserguide.html#13317"> 4.2 Determining the Dimensions and Locations of Frames</A>
+ HREF="ffuserguide.html#13318"> 4.2 Determining the Dimensions and Locations of Frames</A>
, <A NAME="tex2html83"
- HREF="ffuserguide.html#13405"> 4.3 Relative Locations</A>
+ HREF="ffuserguide.html#13406"> 4.3 Relative Locations</A>
, <A NAME="tex2html86"
- HREF="ffuserguide.html#13430"> 4.3 Relative Locations</A>
+ HREF="ffuserguide.html#13431"> 4.3 Relative Locations</A>
, <A NAME="tex2html101"
- HREF="ffuserguide.html#14287"> 5.4 Backdrop Effects</A>
+ HREF="ffuserguide.html#14288"> 5.4 Backdrop Effects</A>
, <A NAME="tex2html111"
- HREF="ffuserguide.html#14741"> 5.4.4 Vertical and Horizontal Rules</A>
+ HREF="ffuserguide.html#14742"> 5.4.4 Vertical and Horizontal Rules</A>
, <A NAME="tex2html120"
- HREF="ffuserguide.html#14911"> 6.2 Minitocs</A>
+ HREF="ffuserguide.html#14912"> 6.2 Minitocs</A>
, <A NAME="tex2html208"
- HREF="ffuserguide.html#15592"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15593"> 8.3 Error Messages</A>
, <A NAME="tex2html212"
- HREF="ffuserguide.html#15620"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15621"> 8.3 Error Messages</A>
, <A NAME="tex2html216"
- HREF="ffuserguide.html#15656"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15657"> 8.3 Error Messages</A>
<DT><A NAME="gls:idn"><B>identification number
(IDN)</B></A><DD>A unique
number assigned to each frame, which you can use to identify
@@ -3901,49 +3901,49 @@ have defined 3 flow frames, 2 static frames and 1 dynamic
frame, the flow frames will have IDNs 1, 2 and 3, the static
frames will have IDNs 1 and 2, and the dynamic frame will
have IDN 1. <A NAME="tex2html12"
- HREF="ffuserguide.html#11594"> 1.1 Draft Option</A>
+ HREF="ffuserguide.html#11595"> 1.1 Draft Option</A>
, <A NAME="tex2html19"
- HREF="ffuserguide.html#11711"> 1.2 Frame Stacking Order</A>
+ HREF="ffuserguide.html#11712"> 1.2 Frame Stacking Order</A>
, <A NAME="tex2html21"
- HREF="ffuserguide.html#11725"> 1.2 Frame Stacking Order</A>
+ HREF="ffuserguide.html#11726"> 1.2 Frame Stacking Order</A>
, <A NAME="tex2html23"
- HREF="ffuserguide.html#11739"> 1.2 Frame Stacking Order</A>
+ HREF="ffuserguide.html#11740"> 1.2 Frame Stacking Order</A>
, <A NAME="tex2html37"
- HREF="ffuserguide.html#11935"> 2.1 Flow Frames</A>
+ HREF="ffuserguide.html#11936"> 2.1 Flow Frames</A>
, <A NAME="tex2html46"
- HREF="ffuserguide.html#12223"> 2.2 Static Frames</A>
+ HREF="ffuserguide.html#12224"> 2.2 Static Frames</A>
, <A NAME="tex2html51"
- HREF="ffuserguide.html#12511"> 2.3 Dynamic Frames</A>
+ HREF="ffuserguide.html#12512"> 2.3 Dynamic Frames</A>
, <A NAME="tex2html54"
- HREF="ffuserguide.html#12608"> 2.3 Dynamic Frames</A>
+ HREF="ffuserguide.html#12609"> 2.3 Dynamic Frames</A>
, <A NAME="tex2html62"
- HREF="ffuserguide.html#12891"> 3. Modifying Frame Attributes</A>
+ HREF="ffuserguide.html#12892"> 3. Modifying Frame Attributes</A>
, <A NAME="tex2html79"
- HREF="ffuserguide.html#13324"> 4.2 Determining the Dimensions and Locations of Frames</A>
+ HREF="ffuserguide.html#13325"> 4.2 Determining the Dimensions and Locations of Frames</A>
, <A NAME="tex2html81"
- HREF="ffuserguide.html#13391"> 4.3 Relative Locations</A>
+ HREF="ffuserguide.html#13392"> 4.3 Relative Locations</A>
, <A NAME="tex2html82"
- HREF="ffuserguide.html#13398"> 4.3 Relative Locations</A>
+ HREF="ffuserguide.html#13399"> 4.3 Relative Locations</A>
, <A NAME="tex2html87"
- HREF="ffuserguide.html#13437"> 4.3 Relative Locations</A>
+ HREF="ffuserguide.html#13438"> 4.3 Relative Locations</A>
, <A NAME="tex2html108"
- HREF="ffuserguide.html#14696"> 5.4.4 Vertical and Horizontal Rules</A>
+ HREF="ffuserguide.html#14697"> 5.4.4 Vertical and Horizontal Rules</A>
, <A NAME="tex2html110"
- HREF="ffuserguide.html#14722"> 5.4.4 Vertical and Horizontal Rules</A>
+ HREF="ffuserguide.html#14723"> 5.4.4 Vertical and Horizontal Rules</A>
, <A NAME="tex2html117"
- HREF="ffuserguide.html#14875"> 6.1 Thumbtabs</A>
+ HREF="ffuserguide.html#14876"> 6.1 Thumbtabs</A>
, <A NAME="tex2html119"
- HREF="ffuserguide.html#14900"> 6.2 Minitocs</A>
+ HREF="ffuserguide.html#14901"> 6.2 Minitocs</A>
, <A NAME="tex2html134"
- HREF="ffuserguide.html#15070"> 7.3 Counters</A>
+ HREF="ffuserguide.html#15071"> 7.3 Counters</A>
, <A NAME="tex2html135"
- HREF="ffuserguide.html#15081"> 7.3 Counters</A>
+ HREF="ffuserguide.html#15082"> 7.3 Counters</A>
, <A NAME="tex2html139"
- HREF="ffuserguide.html#15117"> 7.3 Counters</A>
+ HREF="ffuserguide.html#15118"> 7.3 Counters</A>
, <A NAME="tex2html203"
- HREF="ffuserguide.html#15533"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15534"> 8.2 Unexpected Output</A>
, <A NAME="tex2html209"
- HREF="ffuserguide.html#15599"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15600"> 8.3 Error Messages</A>
<DT><A NAME="gls:pglist"><B>page list</B></A><DD>A list of
pages. This can either be a single keyword: <TT>all</TT>,
<TT>odd</TT>, <TT>even</TT> or <TT>none</TT>, or it can
@@ -3952,135 +3952,135 @@ page ranges. For example: <TT>&lt;3,5,7-11,&gt;15</TT>
indicates pages 1,2,5,7,8,9,10,11 and all pages after page 15.
Note that these numbers refer to the actual value of the
page counter, not the absolute physical page number. <A NAME="tex2html35"
- HREF="ffuserguide.html#11913"> 2.1 Flow Frames</A>
+ HREF="ffuserguide.html#11914"> 2.1 Flow Frames</A>
, <A NAME="tex2html44"
- HREF="ffuserguide.html#12197"> 2.2 Static Frames</A>
+ HREF="ffuserguide.html#12198"> 2.2 Static Frames</A>
, <A NAME="tex2html66"
- HREF="ffuserguide.html#13051"> 3. Modifying Frame Attributes</A>
+ HREF="ffuserguide.html#13052"> 3. Modifying Frame Attributes</A>
, <A NAME="tex2html91"
- HREF="ffuserguide.html#13519"> 5.1 Column Styles</A>
+ HREF="ffuserguide.html#13520"> 5.1 Column Styles</A>
, <A NAME="tex2html95"
- HREF="ffuserguide.html#14145"> 5.2 Column Styles with an Additional Frame</A>
+ HREF="ffuserguide.html#14146"> 5.2 Column Styles with an Additional Frame</A>
, <A NAME="tex2html100"
- HREF="ffuserguide.html#14276"> 5.4 Backdrop Effects</A>
+ HREF="ffuserguide.html#14277"> 5.4 Backdrop Effects</A>
, <A NAME="tex2html150"
- HREF="ffuserguide.html#15195"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15196"> 8.1 General Queries</A>
, <A NAME="tex2html153"
- HREF="ffuserguide.html#15216"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15217"> 8.1 General Queries</A>
<DT><A NAME="gls:pgrange"><B>page range</B></A><DD>Page
ranges can be closed, e.g. <TT>5-10</TT>, or open, e.g.
<TT>&lt;7</TT> or <TT>&gt;9</TT>. <A NAME="tex2html36"
- HREF="ffuserguide.html#11920"> 2.1 Flow Frames</A>
+ HREF="ffuserguide.html#11921"> 2.1 Flow Frames</A>
, <A NAME="tex2html67"
- HREF="ffuserguide.html#13066"> 3. Modifying Frame Attributes</A>
+ HREF="ffuserguide.html#13067"> 3. Modifying Frame Attributes</A>
<DT><A NAME="gls:static"><B>static frame</B></A><DD>Frames in which text is fixed in place. The contents are fixed until
-explicitly changed or cleared via the <TT>&#92;clear</TT><A NAME="3561"></A> key
-in <TT>&#92;setstaticcontents</TT><A NAME="3566"></A>. <A NAME="tex2html6"
- HREF="ffuserguide.html#11473"> 1. Introduction</A>
+explicitly changed or cleared via the <TT>&#92;clear</TT><A NAME="3562"></A> key
+in <TT>&#92;setstaticcontents</TT><A NAME="3567"></A>. <A NAME="tex2html6"
+ HREF="ffuserguide.html#11474"> 1. Introduction</A>
, <A NAME="tex2html15"
- HREF="ffuserguide.html#11623"> 1.1 Draft Option</A>
+ HREF="ffuserguide.html#11624"> 1.1 Draft Option</A>
, <A NAME="tex2html18"
- HREF="ffuserguide.html#11704"> 1.2 Frame Stacking Order</A>
+ HREF="ffuserguide.html#11705"> 1.2 Frame Stacking Order</A>
, <A NAME="tex2html27"
- HREF="ffuserguide.html#11784"> 1.3 HTML</A>
+ HREF="ffuserguide.html#11785"> 1.3 HTML</A>
, <A NAME="tex2html42"
- HREF="ffuserguide.html#12155"> 2.2 Static Frames</A>
+ HREF="ffuserguide.html#12156"> 2.2 Static Frames</A>
, <A NAME="tex2html47"
- HREF="ffuserguide.html#12343"> 2.2.1 Important Notes</A>
+ HREF="ffuserguide.html#12344"> 2.2.1 Important Notes</A>
, <A NAME="tex2html50"
- HREF="ffuserguide.html#12484"> 2.3 Dynamic Frames</A>
+ HREF="ffuserguide.html#12485"> 2.3 Dynamic Frames</A>
, <A NAME="tex2html59"
- HREF="ffuserguide.html#12838"> 3. Modifying Frame Attributes</A>
+ HREF="ffuserguide.html#12839"> 3. Modifying Frame Attributes</A>
, <A NAME="tex2html69"
- HREF="ffuserguide.html#13177"> 3.1 Non-Rectangular Frames</A>
+ HREF="ffuserguide.html#13178"> 3.1 Non-Rectangular Frames</A>
, <A NAME="tex2html99"
- HREF="ffuserguide.html#14265"> 5.4 Backdrop Effects</A>
+ HREF="ffuserguide.html#14266"> 5.4 Backdrop Effects</A>
, <A NAME="tex2html103"
- HREF="ffuserguide.html#14438"> 5.4.1 Vertical stripe effects</A>
+ HREF="ffuserguide.html#14439"> 5.4.1 Vertical stripe effects</A>
, <A NAME="tex2html104"
- HREF="ffuserguide.html#14578"> 5.4.2 Horizontal stripe effect</A>
+ HREF="ffuserguide.html#14579"> 5.4.2 Horizontal stripe effect</A>
, <A NAME="tex2html105"
- HREF="ffuserguide.html#14602"> 5.4.3 Background Frame</A>
+ HREF="ffuserguide.html#14603"> 5.4.3 Background Frame</A>
, <A NAME="tex2html107"
- HREF="ffuserguide.html#14685"> 5.4.4 Vertical and Horizontal Rules</A>
+ HREF="ffuserguide.html#14686"> 5.4.4 Vertical and Horizontal Rules</A>
, <A NAME="tex2html109"
- HREF="ffuserguide.html#14711"> 5.4.4 Vertical and Horizontal Rules</A>
+ HREF="ffuserguide.html#14712"> 5.4.4 Vertical and Horizontal Rules</A>
, <A NAME="tex2html113"
- HREF="ffuserguide.html#14763"> 5.4.4 Vertical and Horizontal Rules</A>
+ HREF="ffuserguide.html#14764"> 5.4.4 Vertical and Horizontal Rules</A>
, <A NAME="tex2html130"
- HREF="ffuserguide.html#15003"> 7.2 Lengths</A>
+ HREF="ffuserguide.html#15004"> 7.2 Lengths</A>
, <A NAME="tex2html136"
- HREF="ffuserguide.html#15096"> 7.3 Counters</A>
+ HREF="ffuserguide.html#15097"> 7.3 Counters</A>
, <A NAME="tex2html141"
- HREF="ffuserguide.html#15143"> 7.3 Counters</A>
+ HREF="ffuserguide.html#15144"> 7.3 Counters</A>
, <A NAME="tex2html157"
- HREF="ffuserguide.html#15240"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15241"> 8.1 General Queries</A>
, <A NAME="tex2html163"
- HREF="ffuserguide.html#15278"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15279"> 8.1 General Queries</A>
, <A NAME="tex2html165"
- HREF="ffuserguide.html#15288"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15289"> 8.1 General Queries</A>
, <A NAME="tex2html167"
- HREF="ffuserguide.html#15298"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15299"> 8.1 General Queries</A>
, <A NAME="tex2html171"
- HREF="ffuserguide.html#15326"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15327"> 8.1 General Queries</A>
, <A NAME="tex2html174"
- HREF="ffuserguide.html#15347"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15348"> 8.1 General Queries</A>
, <A NAME="tex2html181"
- HREF="ffuserguide.html#15392"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15393"> 8.1 General Queries</A>
, <A NAME="tex2html183"
- HREF="ffuserguide.html#15398"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15399"> 8.1 General Queries</A>
, <A NAME="tex2html195"
- HREF="ffuserguide.html#15489"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15490"> 8.2 Unexpected Output</A>
, <A NAME="tex2html197"
- HREF="ffuserguide.html#15503"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15504"> 8.2 Unexpected Output</A>
, <A NAME="tex2html199"
- HREF="ffuserguide.html#15509"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15510"> 8.2 Unexpected Output</A>
, <A NAME="tex2html204"
- HREF="ffuserguide.html#15540"> 8.2 Unexpected Output</A>
+ HREF="ffuserguide.html#15541"> 8.2 Unexpected Output</A>
, <A NAME="tex2html210"
- HREF="ffuserguide.html#15606"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15607"> 8.3 Error Messages</A>
, <A NAME="tex2html214"
- HREF="ffuserguide.html#15638"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15639"> 8.3 Error Messages</A>
, <A NAME="tex2html217"
- HREF="ffuserguide.html#15663"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15664"> 8.3 Error Messages</A>
, <A NAME="tex2html221"
- HREF="ffuserguide.html#15699"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15700"> 8.3 Error Messages</A>
, <A NAME="tex2html225"
- HREF="ffuserguide.html#15719"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15720"> 8.3 Error Messages</A>
, <A NAME="tex2html227"
- HREF="ffuserguide.html#15725"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15726"> 8.3 Error Messages</A>
, <A NAME="tex2html229"
- HREF="ffuserguide.html#15731"> 8.3 Error Messages</A>
+ HREF="ffuserguide.html#15732"> 8.3 Error Messages</A>
<DT><A NAME="gls:typeblock"><B>typeblock</B></A><DD>The area of the page where the main body of the text goes.
The width and height of this area are given by
-<TT>&#92;textwidth</TT><A NAME="3548"></A> and <TT>&#92;textheight</TT><A NAME="3553"></A>. <A NAME="tex2html8"
- HREF="ffuserguide.html#11491"> 1. Introduction</A>
+<TT>&#92;textwidth</TT><A NAME="3549"></A> and <TT>&#92;textheight</TT><A NAME="3554"></A>. <A NAME="tex2html8"
+ HREF="ffuserguide.html#11492"> 1. Introduction</A>
, <A NAME="tex2html11"
- HREF="ffuserguide.html#11583"> 1.1 Draft Option</A>
+ HREF="ffuserguide.html#11584"> 1.1 Draft Option</A>
, <A NAME="tex2html34"
- HREF="ffuserguide.html#11902"> 2.1 Flow Frames</A>
+ HREF="ffuserguide.html#11903"> 2.1 Flow Frames</A>
, <A NAME="tex2html43"
- HREF="ffuserguide.html#12190"> 2.2 Static Frames</A>
+ HREF="ffuserguide.html#12191"> 2.2 Static Frames</A>
, <A NAME="tex2html76"
- HREF="ffuserguide.html#13266"> 4.1 Determining the Location of the Typeblock</A>
+ HREF="ffuserguide.html#13267"> 4.1 Determining the Location of the Typeblock</A>
, <A NAME="tex2html90"
- HREF="ffuserguide.html#13504"> 5.1 Column Styles</A>
+ HREF="ffuserguide.html#13505"> 5.1 Column Styles</A>
, <A NAME="tex2html96"
- HREF="ffuserguide.html#14156"> 5.2 Column Styles with an Additional Frame</A>
+ HREF="ffuserguide.html#14157"> 5.2 Column Styles with an Additional Frame</A>
, <A NAME="tex2html102"
- HREF="ffuserguide.html#14306"> 5.4 Backdrop Effects</A>
+ HREF="ffuserguide.html#14307"> 5.4 Backdrop Effects</A>
, <A NAME="tex2html116"
- HREF="ffuserguide.html#14864"> 6.1 Thumbtabs</A>
+ HREF="ffuserguide.html#14865"> 6.1 Thumbtabs</A>
, <A NAME="tex2html123"
- HREF="ffuserguide.html#14957"> 7.1 Macros</A>
+ HREF="ffuserguide.html#14958"> 7.1 Macros</A>
, <A NAME="tex2html149"
- HREF="ffuserguide.html#15188"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15189"> 8.1 General Queries</A>
, <A NAME="tex2html170"
- HREF="ffuserguide.html#15319"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15320"> 8.1 General Queries</A>
, <A NAME="tex2html177"
- HREF="ffuserguide.html#15368"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15369"> 8.1 General Queries</A>
, <A NAME="tex2html185"
- HREF="ffuserguide.html#15408"> 8.1 General Queries</A>
+ HREF="ffuserguide.html#15409"> 8.1 General Queries</A>
</DL>
<P>
@@ -4094,721 +4094,721 @@ The width and height of this area are given by
Index</A>
</H2><DL COMPACT>
<DT><STRONG><TT>&#92;afterminitocskip</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6554">6.2</A>
- | <A HREF="ffuserguide.html#6703">7.2</A>
+<DD><A HREF="ffuserguide.html#6555">6.2</A>
+ | <A HREF="ffuserguide.html#6704">7.2</A>
<DT><STRONG><TT>&#92;appenddfminitoc</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6535">6.2</A>
+<DD><A HREF="ffuserguide.html#6536">6.2</A>
<DT><STRONG><TT>&#92;appenddynamiccontents</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4115">2.3</A>
+<DD><A HREF="ffuserguide.html#4116">2.3</A>
<DT><STRONG><TT>&#92;appenddynamiccontents*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4124">2.3</A>
+<DD><A HREF="ffuserguide.html#4125">2.3</A>
<DT><STRONG><TT>&#92;baselineskip</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4889">5.1</A>
- | <A HREF="ffuserguide.html#4948">5.1</A>
- | <A HREF="ffuserguide.html#4973">5.1</A>
- | <A HREF="ffuserguide.html#5009">5.2</A>
- | <A HREF="ffuserguide.html#6663">7.2</A>
+<DD><A HREF="ffuserguide.html#4890">5.1</A>
+ | <A HREF="ffuserguide.html#4949">5.1</A>
+ | <A HREF="ffuserguide.html#4974">5.1</A>
+ | <A HREF="ffuserguide.html#5010">5.2</A>
+ | <A HREF="ffuserguide.html#6664">7.2</A>
<DT><STRONG><TT>&#92;beforeminitocskip</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6549">6.2</A>
- | <A HREF="ffuserguide.html#6698">7.2</A>
+<DD><A HREF="ffuserguide.html#6550">6.2</A>
+ | <A HREF="ffuserguide.html#6699">7.2</A>
<DT><STRONG><TT>&#92;caption</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3610">1.</A>
+<DD><A HREF="ffuserguide.html#3611">1.</A>
<DT><STRONG><TT>&#92;chapter</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4133">2.3</A>
- | <A HREF="ffuserguide.html#4482">3.1</A>
- | <A HREF="ffuserguide.html#6429">6.1</A>
+<DD><A HREF="ffuserguide.html#4134">2.3</A>
+ | <A HREF="ffuserguide.html#4483">3.1</A>
+ | <A HREF="ffuserguide.html#6430">6.1</A>
<DT><STRONG><TT>&#92;clear</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3561">ffuserguide</A>
+<DD><A HREF="ffuserguide.html#3562">ffuserguide</A>
<DT><STRONG><TT>&#92;cleardoublepage</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3829">2.1.1</A>
+<DD><A HREF="ffuserguide.html#3830">2.1.1</A>
<DT><STRONG><TT>&#92;clearpage</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3824">2.1.1</A>
+<DD><A HREF="ffuserguide.html#3825">2.1.1</A>
<DT><STRONG><TT>color</TT> package</STRONG>
-<DD><A HREF="ffuserguide.html#3647">1.</A>
+<DD><A HREF="ffuserguide.html#3648">1.</A>
<DT><STRONG><TT>&#92;columnsep</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4884">5.1</A>
- | <A HREF="ffuserguide.html#4928">5.1</A>
- | <A HREF="ffuserguide.html#4968">5.1</A>
- | <A HREF="ffuserguide.html#4978">5.1</A>
- | <A HREF="ffuserguide.html#6668">7.2</A>
+<DD><A HREF="ffuserguide.html#4885">5.1</A>
+ | <A HREF="ffuserguide.html#4929">5.1</A>
+ | <A HREF="ffuserguide.html#4969">5.1</A>
+ | <A HREF="ffuserguide.html#4979">5.1</A>
+ | <A HREF="ffuserguide.html#6669">7.2</A>
<DT><STRONG><TT>&#92;columnseprule</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6326">5.4.4</A>
+<DD><A HREF="ffuserguide.html#6327">5.4.4</A>
<DT><STRONG><TT>&#92;computebottomedge</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4629">4.1</A>
+<DD><A HREF="ffuserguide.html#4630">4.1</A>
<DT><STRONG><TT>&#92;computeleftedgeeven</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4615">4.1</A>
+<DD><A HREF="ffuserguide.html#4616">4.1</A>
<DT><STRONG><TT>&#92;computeleftedgeodd</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4608">4.1</A>
+<DD><A HREF="ffuserguide.html#4609">4.1</A>
<DT><STRONG><TT>&#92;computerightedgeeven</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4643">4.1</A>
+<DD><A HREF="ffuserguide.html#4644">4.1</A>
<DT><STRONG><TT>&#92;computerightedgeodd</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4636">4.1</A>
+<DD><A HREF="ffuserguide.html#4637">4.1</A>
<DT><STRONG><TT>&#92;computetopedge</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4622">4.1</A>
+<DD><A HREF="ffuserguide.html#4623">4.1</A>
<DT><STRONG><TT>&#92;continueonframe</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3949">2.2</A>
- | <A HREF="ffuserguide.html#3980">2.2</A>
- | <A HREF="ffuserguide.html#4161">2.3</A>
- | <A HREF="ffuserguide.html#4186">2.3</A>
- | <A HREF="ffuserguide.html#4201">2.3.1</A>
- | <A HREF="ffuserguide.html#4856">4.3</A>
+<DD><A HREF="ffuserguide.html#3950">2.2</A>
+ | <A HREF="ffuserguide.html#3981">2.2</A>
+ | <A HREF="ffuserguide.html#4162">2.3</A>
+ | <A HREF="ffuserguide.html#4187">2.3</A>
+ | <A HREF="ffuserguide.html#4202">2.3.1</A>
+ | <A HREF="ffuserguide.html#4857">4.3</A>
<DT><STRONG><TT>&#92;dfchaphead</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4138">2.3</A>
+<DD><A HREF="ffuserguide.html#4139">2.3</A>
<DT><STRONG><TT>&#92;dfswapoddeven</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4309">3.</A>
+<DD><A HREF="ffuserguide.html#4310">3.</A>
<DT><STRONG><TT>&#92;diamondshape</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4567">3.1</A>
+<DD><A HREF="ffuserguide.html#4568">3.1</A>
<DT><STRONG><TT>&#92;disablethumbtabs</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6449">6.1</A>
+<DD><A HREF="ffuserguide.html#6450">6.1</A>
<DT><STRONG><TT>displayedframe</TT> counter</STRONG>
-<DD><A HREF="ffuserguide.html#6753">7.3</A>
+<DD><A HREF="ffuserguide.html#6754">7.3</A>
<DT><STRONG><TT>document</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#3558">ffuserguide</A>
- | <A HREF="ffuserguide.html#3585">1.</A>
- | <A HREF="ffuserguide.html#3727">2.1</A>
+<DD><A HREF="ffuserguide.html#3559">ffuserguide</A>
+ | <A HREF="ffuserguide.html#3586">1.</A>
+ | <A HREF="ffuserguide.html#3728">2.1</A>
<DT><STRONG><TT>&#92;doublebox</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4330">3.</A>
- | <A HREF="ffuserguide.html#4379">3.</A>
+<DD><A HREF="ffuserguide.html#4331">3.</A>
+ | <A HREF="ffuserguide.html#4380">3.</A>
<DT><STRONG><TT>draft</TT> option</STRONG>
-<DD><A HREF="ffuserguide.html#3654">1.1</A>
- | <A HREF="ffuserguide.html#3687">1.1</A>
- | <A HREF="ffuserguide.html#3705">1.2</A>
+<DD><A HREF="ffuserguide.html#3655">1.1</A>
+ | <A HREF="ffuserguide.html#3688">1.1</A>
+ | <A HREF="ffuserguide.html#3706">1.2</A>
<DT><STRONG><TT>dynamiccontents</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#4002">2.3</A>
- | <A HREF="ffuserguide.html#4099">2.3</A>
- | <A HREF="ffuserguide.html#4109">2.3</A>
- | <A HREF="ffuserguide.html#4155">2.3</A>
- | <A HREF="ffuserguide.html#4195">2.3.1</A>
- | <A HREF="ffuserguide.html#6932">8.3</A>
- | <A HREF="ffuserguide.html#6936">8.3</A>
+<DD><A HREF="ffuserguide.html#4003">2.3</A>
+ | <A HREF="ffuserguide.html#4100">2.3</A>
+ | <A HREF="ffuserguide.html#4110">2.3</A>
+ | <A HREF="ffuserguide.html#4156">2.3</A>
+ | <A HREF="ffuserguide.html#4196">2.3.1</A>
+ | <A HREF="ffuserguide.html#6933">8.3</A>
+ | <A HREF="ffuserguide.html#6937">8.3</A>
<DT><STRONG><TT>dynamiccontents*</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#4104">2.3</A>
- | <A HREF="ffuserguide.html#4112">2.3</A>
- | <A HREF="ffuserguide.html#4158">2.3</A>
- | <A HREF="ffuserguide.html#4169">2.3</A>
- | <A HREF="ffuserguide.html#4198">2.3.1</A>
+<DD><A HREF="ffuserguide.html#4105">2.3</A>
+ | <A HREF="ffuserguide.html#4113">2.3</A>
+ | <A HREF="ffuserguide.html#4159">2.3</A>
+ | <A HREF="ffuserguide.html#4170">2.3</A>
+ | <A HREF="ffuserguide.html#4199">2.3.1</A>
<DT><STRONG><TT>&#92;enableminitoc</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6528">6.2</A>
+<DD><A HREF="ffuserguide.html#6529">6.2</A>
<DT><STRONG><TT>&#92;enablethumbtabs</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6444">6.1</A>
+<DD><A HREF="ffuserguide.html#6445">6.1</A>
<DT><STRONG><TT>etex</TT> package</STRONG>
-<DD><A HREF="ffuserguide.html#6927">8.3</A>
+<DD><A HREF="ffuserguide.html#6928">8.3</A>
<DT><STRONG><TT>&#92;evensidemargin</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3593">1.</A>
+<DD><A HREF="ffuserguide.html#3594">1.</A>
<DT><STRONG><TT>fancybox</TT> package</STRONG>
-<DD><A HREF="ffuserguide.html#4327">3.</A>
+<DD><A HREF="ffuserguide.html#4328">3.</A>
<DT><STRONG><TT>&#92;fbox</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3571">ffuserguide</A>
- | <A HREF="ffuserguide.html#4322">3.</A>
- | <A HREF="ffuserguide.html#4364">3.</A>
- | <A HREF="ffuserguide.html#6639">7.2</A>
+<DD><A HREF="ffuserguide.html#3572">ffuserguide</A>
+ | <A HREF="ffuserguide.html#4323">3.</A>
+ | <A HREF="ffuserguide.html#4365">3.</A>
+ | <A HREF="ffuserguide.html#6640">7.2</A>
<DT><STRONG><TT>&#92;fboxsep</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6634">7.2</A>
+<DD><A HREF="ffuserguide.html#6635">7.2</A>
<DT><STRONG><TT>&#92;FFabove</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4756">4.3</A>
+<DD><A HREF="ffuserguide.html#4757">4.3</A>
<DT><STRONG><TT>&#92;FFaboveleft</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4746">4.3</A>
+<DD><A HREF="ffuserguide.html#4747">4.3</A>
<DT><STRONG><TT>&#92;FFaboveright</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4751">4.3</A>
+<DD><A HREF="ffuserguide.html#4752">4.3</A>
<DT><STRONG><TT>&#92;ffareaheight</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4701">4.2</A>
+<DD><A HREF="ffuserguide.html#4702">4.2</A>
<DT><STRONG><TT>&#92;ffareawidth</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4696">4.2</A>
+<DD><A HREF="ffuserguide.html#4697">4.2</A>
<DT><STRONG><TT>&#92;ffareax</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4706">4.2</A>
+<DD><A HREF="ffuserguide.html#4707">4.2</A>
<DT><STRONG><TT>&#92;ffareay</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4711">4.2</A>
+<DD><A HREF="ffuserguide.html#4712">4.2</A>
<DT><STRONG><TT>&#92;FFbelow</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4771">4.3</A>
+<DD><A HREF="ffuserguide.html#4772">4.3</A>
<DT><STRONG><TT>&#92;FFbelowleft</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4761">4.3</A>
+<DD><A HREF="ffuserguide.html#4762">4.3</A>
<DT><STRONG><TT>&#92;FFbelowright</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4766">4.3</A>
+<DD><A HREF="ffuserguide.html#4767">4.3</A>
<DT><STRONG><TT>&#92;ffcolumnseprule</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6321">5.4.4</A>
- | <A HREF="ffuserguide.html#6361">5.4.4</A>
- | <A HREF="ffuserguide.html#6379">5.4.4</A>
- | <A HREF="ffuserguide.html#6683">7.2</A>
+<DD><A HREF="ffuserguide.html#6322">5.4.4</A>
+ | <A HREF="ffuserguide.html#6362">5.4.4</A>
+ | <A HREF="ffuserguide.html#6380">5.4.4</A>
+ | <A HREF="ffuserguide.html#6684">7.2</A>
<DT><STRONG><TT>&#92;ffcontinuedtextfont</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3973">2.2</A>
- | <A HREF="ffuserguide.html#4179">2.3</A>
- | <A HREF="ffuserguide.html#6603">7.1</A>
+<DD><A HREF="ffuserguide.html#3974">2.2</A>
+ | <A HREF="ffuserguide.html#4180">2.3</A>
+ | <A HREF="ffuserguide.html#6604">7.1</A>
<DT><STRONG><TT>&#92;ffcontinuedtextlayout</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3966">2.2</A>
- | <A HREF="ffuserguide.html#4172">2.3</A>
+<DD><A HREF="ffuserguide.html#3967">2.2</A>
+ | <A HREF="ffuserguide.html#4173">2.3</A>
<DT><STRONG><TT>&#92;ffhrule</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6371">5.4.4</A>
+<DD><A HREF="ffuserguide.html#6372">5.4.4</A>
<DT><STRONG><TT>&#92;fflabelfont</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6583">7.1</A>
+<DD><A HREF="ffuserguide.html#6584">7.1</A>
<DT><STRONG><TT>&#92;fflabelsep</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6619">7.2</A>
+<DD><A HREF="ffuserguide.html#6620">7.2</A>
<DT><STRONG><TT>&#92;FFleft</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4776">4.3</A>
+<DD><A HREF="ffuserguide.html#4777">4.3</A>
<DT><STRONG><TT>&#92;FFoverlap</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4786">4.3</A>
+<DD><A HREF="ffuserguide.html#4787">4.3</A>
<DT><STRONG><TT>&#92;FFright</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4781">4.3</A>
+<DD><A HREF="ffuserguide.html#4782">4.3</A>
<DT><STRONG><TT>&#92;ffruledeclarations</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6394">5.4.4</A>
- | <A HREF="ffuserguide.html#6588">7.1</A>
+<DD><A HREF="ffuserguide.html#6395">5.4.4</A>
+ | <A HREF="ffuserguide.html#6589">7.1</A>
<DT><STRONG><TT>&#92;ffswapoddeven</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4295">3.</A>
+<DD><A HREF="ffuserguide.html#4296">3.</A>
<DT><STRONG><TT>&#92;ffvadjustfalse</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4894">5.1</A>
+<DD><A HREF="ffuserguide.html#4895">5.1</A>
<DT><STRONG><TT>&#92;ffvrule</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6336">5.4.4</A>
+<DD><A HREF="ffuserguide.html#6337">5.4.4</A>
<DT><STRONG><TT>figure</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#3604">1.</A>
- | <A HREF="ffuserguide.html#3626">1.</A>
- | <A HREF="ffuserguide.html#3638">1.</A>
+<DD><A HREF="ffuserguide.html#3605">1.</A>
+ | <A HREF="ffuserguide.html#3627">1.</A>
+ | <A HREF="ffuserguide.html#3639">1.</A>
<DT><STRONG><TT>figure*</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#3632">1.</A>
+<DD><A HREF="ffuserguide.html#3633">1.</A>
<DT><STRONG><TT>&#92;flowframerule</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4358">3.</A>
- | <A HREF="ffuserguide.html#6629">7.2</A>
+<DD><A HREF="ffuserguide.html#4359">3.</A>
+ | <A HREF="ffuserguide.html#6630">7.2</A>
<DT><STRONG><TT>&#92;flowframesep</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4353">3.</A>
- | <A HREF="ffuserguide.html#6624">7.2</A>
+<DD><A HREF="ffuserguide.html#4354">3.</A>
+ | <A HREF="ffuserguide.html#6625">7.2</A>
<DT><STRONG><TT>&#92;flowframeshowlayout</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3690">1.1</A>
+<DD><A HREF="ffuserguide.html#3691">1.1</A>
<DT><STRONG>frame settings</STRONG>
<DD><DL COMPACT>
<DT><STRONG>angle</STRONG>
-<DD><A HREF="ffuserguide.html#4414">3.</A>
+<DD><A HREF="ffuserguide.html#4415">3.</A>
<DT><STRONG>backcolor</STRONG>
-<DD><A HREF="ffuserguide.html#4390">3.</A>
+<DD><A HREF="ffuserguide.html#4391">3.</A>
<DT><STRONG>border</STRONG>
-<DD><A HREF="ffuserguide.html#4320">3.</A>
+<DD><A HREF="ffuserguide.html#4321">3.</A>
<DT><STRONG>bordercolor</STRONG>
-<DD><A HREF="ffuserguide.html#4388">3.</A>
+<DD><A HREF="ffuserguide.html#4389">3.</A>
<DT><STRONG>clear</STRONG>
-<DD><A HREF="ffuserguide.html#4393">3.</A>
- | <A HREF="ffuserguide.html#4412">3.</A>
- | <A HREF="ffuserguide.html#6814">8.1</A>
+<DD><A HREF="ffuserguide.html#4394">3.</A>
+ | <A HREF="ffuserguide.html#4413">3.</A>
+ | <A HREF="ffuserguide.html#6815">8.1</A>
<DT><STRONG>evenx</STRONG>
-<DD><A HREF="ffuserguide.html#4293">3.</A>
+<DD><A HREF="ffuserguide.html#4294">3.</A>
<DT><STRONG>eveny</STRONG>
-<DD><A HREF="ffuserguide.html#4315">3.</A>
+<DD><A HREF="ffuserguide.html#4316">3.</A>
<DT><STRONG>height</STRONG>
-<DD><A HREF="ffuserguide.html#4290">3.</A>
+<DD><A HREF="ffuserguide.html#4291">3.</A>
<DT><STRONG>label</STRONG>
-<DD><A HREF="ffuserguide.html#4319">3.</A>
+<DD><A HREF="ffuserguide.html#4320">3.</A>
<DT><STRONG>margin</STRONG>
-<DD><A HREF="ffuserguide.html#4392">3.</A>
+<DD><A HREF="ffuserguide.html#4393">3.</A>
<DT><STRONG>oddx</STRONG>
-<DD><A HREF="ffuserguide.html#4316">3.</A>
-<DT><STRONG>oddy</STRONG>
<DD><A HREF="ffuserguide.html#4317">3.</A>
+<DT><STRONG>oddy</STRONG>
+<DD><A HREF="ffuserguide.html#4318">3.</A>
<DT><STRONG>offset</STRONG>
-<DD><A HREF="ffuserguide.html#4362">3.</A>
+<DD><A HREF="ffuserguide.html#4363">3.</A>
<DT><STRONG>pages</STRONG>
-<DD><A HREF="ffuserguide.html#4391">3.</A>
+<DD><A HREF="ffuserguide.html#4392">3.</A>
<DT><STRONG>shape</STRONG>
-<DD><A HREF="ffuserguide.html#4415">3.</A>
- | <A HREF="ffuserguide.html#4475">3.1</A>
- | <A HREF="ffuserguide.html#4509">3.1</A>
- | <A HREF="ffuserguide.html#6800">8.1</A>
+<DD><A HREF="ffuserguide.html#4416">3.</A>
+ | <A HREF="ffuserguide.html#4476">3.1</A>
+ | <A HREF="ffuserguide.html#4510">3.1</A>
+ | <A HREF="ffuserguide.html#6801">8.1</A>
<DT><STRONG>style</STRONG>
-<DD><A HREF="ffuserguide.html#4413">3.</A>
+<DD><A HREF="ffuserguide.html#4414">3.</A>
<DT><STRONG>textcolor</STRONG>
-<DD><A HREF="ffuserguide.html#4389">3.</A>
+<DD><A HREF="ffuserguide.html#4390">3.</A>
<DT><STRONG>valign</STRONG>
-<DD><A HREF="ffuserguide.html#4318">3.</A>
- | <A HREF="ffuserguide.html#6832">8.1</A>
+<DD><A HREF="ffuserguide.html#4319">3.</A>
+ | <A HREF="ffuserguide.html#6833">8.1</A>
<DT><STRONG>width</STRONG>
-<DD><A HREF="ffuserguide.html#4289">3.</A>
+<DD><A HREF="ffuserguide.html#4290">3.</A>
<DT><STRONG>x</STRONG>
-<DD><A HREF="ffuserguide.html#4291">3.</A>
-<DT><STRONG>y</STRONG>
<DD><A HREF="ffuserguide.html#4292">3.</A>
+<DT><STRONG>y</STRONG>
+<DD><A HREF="ffuserguide.html#4293">3.</A>
</DL>
<DT><STRONG><TT>&#92;framebreak</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3809">2.1.1</A>
- | <A HREF="ffuserguide.html#3814">2.1.1</A>
- | <A HREF="ffuserguide.html#6853">8.2</A>
+<DD><A HREF="ffuserguide.html#3810">2.1.1</A>
+ | <A HREF="ffuserguide.html#3815">2.1.1</A>
+ | <A HREF="ffuserguide.html#6854">8.2</A>
<DT><STRONG><TT>&#92;getdynamicbounds</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4682">4.2</A>
+<DD><A HREF="ffuserguide.html#4683">4.2</A>
<DT><STRONG><TT>&#92;getdynamicbounds*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4689">4.2</A>
+<DD><A HREF="ffuserguide.html#4690">4.2</A>
<DT><STRONG><TT>&#92;getdynamicid</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4039">2.3</A>
- | <A HREF="ffuserguide.html#4053">2.3</A>
+<DD><A HREF="ffuserguide.html#4040">2.3</A>
+ | <A HREF="ffuserguide.html#4054">2.3</A>
<DT><STRONG><TT>&#92;getdynamiclabel</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4032">2.3</A>
- | <A HREF="ffuserguide.html#4048">2.3</A>
+<DD><A HREF="ffuserguide.html#4033">2.3</A>
+ | <A HREF="ffuserguide.html#4049">2.3</A>
<DT><STRONG><TT>&#92;getflowbounds</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4668">4.2</A>
+<DD><A HREF="ffuserguide.html#4669">4.2</A>
<DT><STRONG><TT>&#92;getflowbounds*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4675">4.2</A>
+<DD><A HREF="ffuserguide.html#4676">4.2</A>
<DT><STRONG><TT>&#92;getflowid</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3754">2.1</A>
- | <A HREF="ffuserguide.html#3768">2.1</A>
+<DD><A HREF="ffuserguide.html#3755">2.1</A>
+ | <A HREF="ffuserguide.html#3769">2.1</A>
<DT><STRONG><TT>&#92;getflowlabel</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3747">2.1</A>
- | <A HREF="ffuserguide.html#3763">2.1</A>
+<DD><A HREF="ffuserguide.html#3748">2.1</A>
+ | <A HREF="ffuserguide.html#3764">2.1</A>
<DT><STRONG><TT>&#92;getstaticbounds</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4654">4.2</A>
+<DD><A HREF="ffuserguide.html#4655">4.2</A>
<DT><STRONG><TT>&#92;getstaticbounds*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4661">4.2</A>
+<DD><A HREF="ffuserguide.html#4662">4.2</A>
<DT><STRONG><TT>&#92;getstaticid</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3867">2.2</A>
- | <A HREF="ffuserguide.html#3881">2.2</A>
+<DD><A HREF="ffuserguide.html#3868">2.2</A>
+ | <A HREF="ffuserguide.html#3882">2.2</A>
<DT><STRONG><TT>&#92;getstaticlabel</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3860">2.2</A>
- | <A HREF="ffuserguide.html#3876">2.2</A>
+<DD><A HREF="ffuserguide.html#3861">2.2</A>
+ | <A HREF="ffuserguide.html#3877">2.2</A>
<DT><STRONG><TT>ghostscript</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6858">8.2</A>
+<DD><A HREF="ffuserguide.html#6859">8.2</A>
<DT><STRONG><TT>&#92;heartshape</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4572">3.1</A>
+<DD><A HREF="ffuserguide.html#4573">3.1</A>
<DT><STRONG><TT>&#92;hNtone</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6143">5.4.2</A>
+<DD><A HREF="ffuserguide.html#6144">5.4.2</A>
<DT><STRONG><TT>&#92;hNtoneleft</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6227">5.4.2</A>
+<DD><A HREF="ffuserguide.html#6228">5.4.2</A>
<DT><STRONG><TT>&#92;hNtoneright</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6257">5.4.2</A>
+<DD><A HREF="ffuserguide.html#6258">5.4.2</A>
<DT><STRONG><TT>&#92;hsize</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3819">2.1.1</A>
- | <A HREF="ffuserguide.html#6848">8.2</A>
+<DD><A HREF="ffuserguide.html#3820">2.1.1</A>
+ | <A HREF="ffuserguide.html#6849">8.2</A>
<DT><STRONG><TT>html</TT> package</STRONG>
-<DD><A HREF="ffuserguide.html#3716">1.3</A>
+<DD><A HREF="ffuserguide.html#3717">1.3</A>
<DT><STRONG><TT>&#92;htwotone</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6122">5.4.2</A>
- | <A HREF="ffuserguide.html#6166">5.4.2</A>
- | <A HREF="ffuserguide.html#6194">5.4.2</A>
- | <A HREF="ffuserguide.html#6222">5.4.2</A>
+<DD><A HREF="ffuserguide.html#6123">5.4.2</A>
+ | <A HREF="ffuserguide.html#6167">5.4.2</A>
+ | <A HREF="ffuserguide.html#6195">5.4.2</A>
+ | <A HREF="ffuserguide.html#6223">5.4.2</A>
<DT><STRONG><TT>&#92;htwotoneleft</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6171">5.4.2</A>
- | <A HREF="ffuserguide.html#6252">5.4.2</A>
+<DD><A HREF="ffuserguide.html#6172">5.4.2</A>
+ | <A HREF="ffuserguide.html#6253">5.4.2</A>
<DT><STRONG><TT>&#92;htwotoneright</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6199">5.4.2</A>
- | <A HREF="ffuserguide.html#6282">5.4.2</A>
+<DD><A HREF="ffuserguide.html#6200">5.4.2</A>
+ | <A HREF="ffuserguide.html#6283">5.4.2</A>
<DT><STRONG><TT>hyperref</TT> package</STRONG>
-<DD><A HREF="ffuserguide.html#3644">1.</A>
- | <A HREF="ffuserguide.html#6521">6.1</A>
- | <A HREF="ffuserguide.html#6469">6.1</A>
+<DD><A HREF="ffuserguide.html#3645">1.</A>
+ | <A HREF="ffuserguide.html#6522">6.1</A>
+ | <A HREF="ffuserguide.html#6470">6.1</A>
<DT><STRONG><TT>&#92;hypersetup</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6516">6.1</A>
+<DD><A HREF="ffuserguide.html#6517">6.1</A>
<DT><STRONG><TT>&#92;inserthrule</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6344">5.4.4</A>
- | <A HREF="ffuserguide.html#6366">5.4.4</A>
- | <A HREF="ffuserguide.html#6389">5.4.4</A>
- | <A HREF="ffuserguide.html#6598">7.1</A>
- | <A HREF="ffuserguide.html#6693">7.2</A>
+<DD><A HREF="ffuserguide.html#6345">5.4.4</A>
+ | <A HREF="ffuserguide.html#6367">5.4.4</A>
+ | <A HREF="ffuserguide.html#6390">5.4.4</A>
+ | <A HREF="ffuserguide.html#6599">7.1</A>
+ | <A HREF="ffuserguide.html#6694">7.2</A>
<DT><STRONG><TT>&#92;insertvrule</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6304">5.4.4</A>
- | <A HREF="ffuserguide.html#6331">5.4.4</A>
- | <A HREF="ffuserguide.html#6384">5.4.4</A>
- | <A HREF="ffuserguide.html#6593">7.1</A>
- | <A HREF="ffuserguide.html#6688">7.2</A>
+<DD><A HREF="ffuserguide.html#6305">5.4.4</A>
+ | <A HREF="ffuserguide.html#6332">5.4.4</A>
+ | <A HREF="ffuserguide.html#6385">5.4.4</A>
+ | <A HREF="ffuserguide.html#6594">7.1</A>
+ | <A HREF="ffuserguide.html#6689">7.2</A>
<DT><STRONG><TT>&#92;item</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6922">8.3</A>
+<DD><A HREF="ffuserguide.html#6923">8.3</A>
<DT><STRONG><TT>&#92;label</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3615">1.</A>
- | <A HREF="ffuserguide.html#3989">2.2.1</A>
- | <A HREF="ffuserguide.html#4408">3.</A>
- | <A HREF="ffuserguide.html#6732">7.3</A>
- | <A HREF="ffuserguide.html#6806">8.1</A>
+<DD><A HREF="ffuserguide.html#3616">1.</A>
+ | <A HREF="ffuserguide.html#3990">2.2.1</A>
+ | <A HREF="ffuserguide.html#4409">3.</A>
+ | <A HREF="ffuserguide.html#6733">7.3</A>
+ | <A HREF="ffuserguide.html#6807">8.1</A>
<DT><STRONG><TT>&#92;labelflow</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6756">7.3</A>
- | <A HREF="ffuserguide.html#6770">7.3</A>
- | <A HREF="ffuserguide.html#6775">7.3</A>
+<DD><A HREF="ffuserguide.html#6757">7.3</A>
+ | <A HREF="ffuserguide.html#6771">7.3</A>
+ | <A HREF="ffuserguide.html#6776">7.3</A>
<DT><STRONG><TT>&#92;labelflowid</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6725">7.3</A>
- | <A HREF="ffuserguide.html#6748">7.3</A>
+<DD><A HREF="ffuserguide.html#6726">7.3</A>
+ | <A HREF="ffuserguide.html#6749">7.3</A>
<DT><STRONG><TT>&#92;lefttorightcolumnsfalse</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5924">5.3</A>
+<DD><A HREF="ffuserguide.html#5925">5.3</A>
<DT><STRONG><TT>&#92;lefttorightcolumnstrue</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5939">5.3</A>
+<DD><A HREF="ffuserguide.html#5940">5.3</A>
<DT><STRONG><TT>&#92;makebackgroundframe</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6291">5.4.3</A>
+<DD><A HREF="ffuserguide.html#6292">5.4.3</A>
<DT><STRONG><TT>&#92;makedfheaderfooter</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4145">2.3</A>
+<DD><A HREF="ffuserguide.html#4146">2.3</A>
<DT><STRONG><TT>&#92;makethumbtabs</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6418">6.1</A>
+<DD><A HREF="ffuserguide.html#6419">6.1</A>
<DT><STRONG><TT>maxdynamic</TT> counter</STRONG>
-<DD><A HREF="ffuserguide.html#6783">7.3</A>
+<DD><A HREF="ffuserguide.html#6784">7.3</A>
<DT><STRONG><TT>maxflow</TT> counter</STRONG>
-<DD><A HREF="ffuserguide.html#6719">7.3</A>
+<DD><A HREF="ffuserguide.html#6720">7.3</A>
<DT><STRONG><TT>maxstatic</TT> counter</STRONG>
-<DD><A HREF="ffuserguide.html#6780">7.3</A>
+<DD><A HREF="ffuserguide.html#6781">7.3</A>
<DT><STRONG><TT>maxthumbtabs</TT> counter</STRONG>
-<DD><A HREF="ffuserguide.html#6499">6.1</A>
- | <A HREF="ffuserguide.html#6786">7.3</A>
+<DD><A HREF="ffuserguide.html#6500">6.1</A>
+ | <A HREF="ffuserguide.html#6787">7.3</A>
<DT><STRONG><TT>&#92;minitocstyle</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6542">6.2</A>
+<DD><A HREF="ffuserguide.html#6543">6.2</A>
<DT><STRONG><TT>&#92;Ncolumn</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4919">5.1</A>
- | <A HREF="ffuserguide.html#5934">5.3</A>
- | <A HREF="ffuserguide.html#6673">7.2</A>
+<DD><A HREF="ffuserguide.html#4920">5.1</A>
+ | <A HREF="ffuserguide.html#5935">5.3</A>
+ | <A HREF="ffuserguide.html#6674">7.2</A>
<DT><STRONG><TT>&#92;Ncolumnbottom</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5853">5.2</A>
- | <A HREF="ffuserguide.html#5882">5.2</A>
- | <A HREF="ffuserguide.html#5905">5.2</A>
+<DD><A HREF="ffuserguide.html#5854">5.2</A>
+ | <A HREF="ffuserguide.html#5883">5.2</A>
+ | <A HREF="ffuserguide.html#5906">5.2</A>
<DT><STRONG><TT>&#92;Ncolumnbottominarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5116">5.2</A>
- | <A HREF="ffuserguide.html#5794">5.2</A>
- | <A HREF="ffuserguide.html#5833">5.2</A>
- | <A HREF="ffuserguide.html#5866">5.2</A>
+<DD><A HREF="ffuserguide.html#5117">5.2</A>
+ | <A HREF="ffuserguide.html#5795">5.2</A>
+ | <A HREF="ffuserguide.html#5834">5.2</A>
+ | <A HREF="ffuserguide.html#5867">5.2</A>
<DT><STRONG><TT>&#92;NcolumnDbottom</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5894">5.2</A>
+<DD><A HREF="ffuserguide.html#5895">5.2</A>
<DT><STRONG><TT>&#92;NcolumnDbottominarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5814">5.2</A>
+<DD><A HREF="ffuserguide.html#5815">5.2</A>
<DT><STRONG><TT>&#92;NcolumnDtop</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5504">5.2</A>
+<DD><A HREF="ffuserguide.html#5505">5.2</A>
<DT><STRONG><TT>&#92;NcolumnDtopinarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5424">5.2</A>
+<DD><A HREF="ffuserguide.html#5425">5.2</A>
<DT><STRONG><TT>&#92;Ncolumninarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4983">5.1</A>
+<DD><A HREF="ffuserguide.html#4984">5.1</A>
<DT><STRONG><TT>&#92;NcolumnSbottom</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5871">5.2</A>
+<DD><A HREF="ffuserguide.html#5872">5.2</A>
<DT><STRONG><TT>&#92;NcolumnSbottominarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5775">5.2</A>
+<DD><A HREF="ffuserguide.html#5776">5.2</A>
<DT><STRONG><TT>&#92;NcolumnStop</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5481">5.2</A>
+<DD><A HREF="ffuserguide.html#5482">5.2</A>
<DT><STRONG><TT>&#92;NcolumnStopinarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5385">5.2</A>
+<DD><A HREF="ffuserguide.html#5386">5.2</A>
<DT><STRONG><TT>&#92;Ncolumntop</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5463">5.2</A>
- | <A HREF="ffuserguide.html#5492">5.2</A>
- | <A HREF="ffuserguide.html#5515">5.2</A>
- | <A HREF="ffuserguide.html#6658">7.2</A>
- | <A HREF="ffuserguide.html#6678">7.2</A>
+<DD><A HREF="ffuserguide.html#5464">5.2</A>
+ | <A HREF="ffuserguide.html#5493">5.2</A>
+ | <A HREF="ffuserguide.html#5516">5.2</A>
+ | <A HREF="ffuserguide.html#6659">7.2</A>
+ | <A HREF="ffuserguide.html#6679">7.2</A>
<DT><STRONG><TT>&#92;Ncolumntopinarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5057">5.2</A>
- | <A HREF="ffuserguide.html#5404">5.2</A>
- | <A HREF="ffuserguide.html#5443">5.2</A>
- | <A HREF="ffuserguide.html#5476">5.2</A>
+<DD><A HREF="ffuserguide.html#5058">5.2</A>
+ | <A HREF="ffuserguide.html#5405">5.2</A>
+ | <A HREF="ffuserguide.html#5444">5.2</A>
+ | <A HREF="ffuserguide.html#5477">5.2</A>
<DT><STRONG><TT>&#92;newdynamicframe</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4005">2.3</A>
+<DD><A HREF="ffuserguide.html#4006">2.3</A>
<DT><STRONG><TT>&#92;newdynamicframe*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4058">2.3</A>
+<DD><A HREF="ffuserguide.html#4059">2.3</A>
<DT><STRONG><TT>&#92;newflowframe</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3730">2.1</A>
- | <A HREF="ffuserguide.html#3855">2.2</A>
- | <A HREF="ffuserguide.html#3886">2.2</A>
- | <A HREF="ffuserguide.html#4022">2.3</A>
+<DD><A HREF="ffuserguide.html#3731">2.1</A>
+ | <A HREF="ffuserguide.html#3856">2.2</A>
+ | <A HREF="ffuserguide.html#3887">2.2</A>
+ | <A HREF="ffuserguide.html#4023">2.3</A>
<DT><STRONG><TT>&#92;newflowframe*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3773">2.1</A>
+<DD><A HREF="ffuserguide.html#3774">2.1</A>
<DT><STRONG><TT>&#92;newpage</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3799">2.1.1</A>
+<DD><A HREF="ffuserguide.html#3800">2.1.1</A>
<DT><STRONG><TT>&#92;newstaticframe</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3838">2.2</A>
- | <A HREF="ffuserguide.html#4027">2.3</A>
+<DD><A HREF="ffuserguide.html#3839">2.2</A>
+ | <A HREF="ffuserguide.html#4028">2.3</A>
<DT><STRONG><TT>&#92;newstaticframe*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3891">2.2</A>
+<DD><A HREF="ffuserguide.html#3892">2.2</A>
<DT><STRONG><TT>nocolor</TT> option</STRONG>
-<DD><A HREF="ffuserguide.html#3695">1.1</A>
+<DD><A HREF="ffuserguide.html#3696">1.1</A>
<DT><STRONG><TT>norotate</TT> option</STRONG>
-<DD><A HREF="ffuserguide.html#3698">1.1</A>
- | <A HREF="ffuserguide.html#6487">6.1</A>
+<DD><A HREF="ffuserguide.html#3699">1.1</A>
+ | <A HREF="ffuserguide.html#6488">6.1</A>
<DT><STRONG><TT>&#92;nutshape</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4577">3.1</A>
+<DD><A HREF="ffuserguide.html#4578">3.1</A>
<DT><STRONG><TT>&#92;oddsidemargin</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3588">1.</A>
+<DD><A HREF="ffuserguide.html#3589">1.</A>
<DT><STRONG><TT>&#92;onecolumn</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4869">5.1</A>
- | <A HREF="ffuserguide.html#4899">5.1</A>
- | <A HREF="ffuserguide.html#4909">5.1</A>
- | <A HREF="ffuserguide.html#6819">8.1</A>
+<DD><A HREF="ffuserguide.html#4870">5.1</A>
+ | <A HREF="ffuserguide.html#4900">5.1</A>
+ | <A HREF="ffuserguide.html#4910">5.1</A>
+ | <A HREF="ffuserguide.html#6820">8.1</A>
<DT><STRONG><TT>&#92;onecolumnbottom</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5597">5.2</A>
- | <A HREF="ffuserguide.html#5622">5.2</A>
- | <A HREF="ffuserguide.html#5641">5.2</A>
+<DD><A HREF="ffuserguide.html#5598">5.2</A>
+ | <A HREF="ffuserguide.html#5623">5.2</A>
+ | <A HREF="ffuserguide.html#5642">5.2</A>
<DT><STRONG><TT>&#92;onecolumnbottominarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5078">5.2</A>
- | <A HREF="ffuserguide.html#5544">5.2</A>
- | <A HREF="ffuserguide.html#5579">5.2</A>
- | <A HREF="ffuserguide.html#5608">5.2</A>
+<DD><A HREF="ffuserguide.html#5079">5.2</A>
+ | <A HREF="ffuserguide.html#5545">5.2</A>
+ | <A HREF="ffuserguide.html#5580">5.2</A>
+ | <A HREF="ffuserguide.html#5609">5.2</A>
<DT><STRONG><TT>&#92;onecolumnDbottom</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5632">5.2</A>
+<DD><A HREF="ffuserguide.html#5633">5.2</A>
<DT><STRONG><TT>&#92;onecolumnDbottominarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5562">5.2</A>
+<DD><A HREF="ffuserguide.html#5563">5.2</A>
<DT><STRONG><TT>&#92;onecolumnDtop</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5242">5.2</A>
+<DD><A HREF="ffuserguide.html#5243">5.2</A>
<DT><STRONG><TT>&#92;onecolumnDtopinarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5172">5.2</A>
+<DD><A HREF="ffuserguide.html#5173">5.2</A>
<DT><STRONG><TT>&#92;onecolumninarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4933">5.1</A>
+<DD><A HREF="ffuserguide.html#4934">5.1</A>
<DT><STRONG><TT>&#92;onecolumnSbottom</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5613">5.2</A>
+<DD><A HREF="ffuserguide.html#5614">5.2</A>
<DT><STRONG><TT>&#92;onecolumnSbottominarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5527">5.2</A>
+<DD><A HREF="ffuserguide.html#5528">5.2</A>
<DT><STRONG><TT>&#92;onecolumnStop</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5223">5.2</A>
+<DD><A HREF="ffuserguide.html#5224">5.2</A>
<DT><STRONG><TT>&#92;onecolumnStopinarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5137">5.2</A>
+<DD><A HREF="ffuserguide.html#5138">5.2</A>
<DT><STRONG><TT>&#92;onecolumntop</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5207">5.2</A>
- | <A HREF="ffuserguide.html#5232">5.2</A>
- | <A HREF="ffuserguide.html#5251">5.2</A>
+<DD><A HREF="ffuserguide.html#5208">5.2</A>
+ | <A HREF="ffuserguide.html#5233">5.2</A>
+ | <A HREF="ffuserguide.html#5252">5.2</A>
<DT><STRONG><TT>&#92;onecolumntopinarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5019">5.2</A>
- | <A HREF="ffuserguide.html#5154">5.2</A>
- | <A HREF="ffuserguide.html#5189">5.2</A>
- | <A HREF="ffuserguide.html#5218">5.2</A>
+<DD><A HREF="ffuserguide.html#5020">5.2</A>
+ | <A HREF="ffuserguide.html#5155">5.2</A>
+ | <A HREF="ffuserguide.html#5190">5.2</A>
+ | <A HREF="ffuserguide.html#5219">5.2</A>
<DT><STRONG><TT>&#92;Ovalbox</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4335">3.</A>
- | <A HREF="ffuserguide.html#4340">3.</A>
- | <A HREF="ffuserguide.html#4369">3.</A>
- | <A HREF="ffuserguide.html#4374">3.</A>
+<DD><A HREF="ffuserguide.html#4336">3.</A>
+ | <A HREF="ffuserguide.html#4341">3.</A>
+ | <A HREF="ffuserguide.html#4370">3.</A>
+ | <A HREF="ffuserguide.html#4375">3.</A>
<DT><STRONG><TT>&#92;pagebreak</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3804">2.1.1</A>
+<DD><A HREF="ffuserguide.html#3805">2.1.1</A>
<DT><STRONG><TT>&#92;par</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4477">3.1</A>
+<DD><A HREF="ffuserguide.html#4478">3.1</A>
<DT><STRONG><TT>&#92;parshape</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4466">3.1</A>
- | <A HREF="ffuserguide.html#4430">3.1</A>
- | <A HREF="ffuserguide.html#4451">3.1</A>
- | <A HREF="ffuserguide.html#4471">3.1</A>
- | <A HREF="ffuserguide.html#4516">3.1</A>
- | <A HREF="ffuserguide.html#4521">3.1</A>
- | <A HREF="ffuserguide.html#6878">8.2</A>
- | <A HREF="ffuserguide.html#6883">8.2</A>
+<DD><A HREF="ffuserguide.html#4467">3.1</A>
+ | <A HREF="ffuserguide.html#4431">3.1</A>
+ | <A HREF="ffuserguide.html#4452">3.1</A>
+ | <A HREF="ffuserguide.html#4472">3.1</A>
+ | <A HREF="ffuserguide.html#4517">3.1</A>
+ | <A HREF="ffuserguide.html#4522">3.1</A>
+ | <A HREF="ffuserguide.html#6879">8.2</A>
+ | <A HREF="ffuserguide.html#6884">8.2</A>
<DT><STRONG><TT>&#92;part</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4487">3.1</A>
+<DD><A HREF="ffuserguide.html#4488">3.1</A>
<DT><STRONG><TT>&#92;ref</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6737">7.3</A>
- | <A HREF="ffuserguide.html#6763">7.3</A>
+<DD><A HREF="ffuserguide.html#6738">7.3</A>
+ | <A HREF="ffuserguide.html#6764">7.3</A>
<DT><STRONG><TT>&#92;relativeframelocation</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4720">4.3</A>
- | <A HREF="ffuserguide.html#4791">4.3</A>
- | <A HREF="ffuserguide.html#4805">4.3</A>
- | <A HREF="ffuserguide.html#4825">4.3</A>
- | <A HREF="ffuserguide.html#4845">4.3</A>
+<DD><A HREF="ffuserguide.html#4721">4.3</A>
+ | <A HREF="ffuserguide.html#4792">4.3</A>
+ | <A HREF="ffuserguide.html#4806">4.3</A>
+ | <A HREF="ffuserguide.html#4826">4.3</A>
+ | <A HREF="ffuserguide.html#4846">4.3</A>
<DT><STRONG><TT>&#92;relativeframelocation*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4733">4.3</A>
+<DD><A HREF="ffuserguide.html#4734">4.3</A>
<DT><STRONG><TT>&#92;relax</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4417">3.</A>
- | <A HREF="ffuserguide.html#4511">3.1</A>
+<DD><A HREF="ffuserguide.html#4418">3.</A>
+ | <A HREF="ffuserguide.html#4512">3.1</A>
<DT><STRONG><TT>&#92;reldynamicloc</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4796">4.3</A>
+<DD><A HREF="ffuserguide.html#4797">4.3</A>
<DT><STRONG><TT>&#92;relflowloc</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4836">4.3</A>
+<DD><A HREF="ffuserguide.html#4837">4.3</A>
<DT><STRONG><TT>&#92;relstaticloc</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4816">4.3</A>
+<DD><A HREF="ffuserguide.html#4817">4.3</A>
<DT><STRONG><TT>&#92;renewcommand</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6568">7.1</A>
+<DD><A HREF="ffuserguide.html#6569">7.1</A>
<DT><STRONG><TT>RL</TT> option</STRONG>
-<DD><A HREF="ffuserguide.html#5921">5.3</A>
+<DD><A HREF="ffuserguide.html#5922">5.3</A>
<DT><STRONG><TT>&#92;sdfparindent</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6644">7.2</A>
- | <A HREF="ffuserguide.html#6869">8.2</A>
+<DD><A HREF="ffuserguide.html#6645">7.2</A>
+ | <A HREF="ffuserguide.html#6870">8.2</A>
<DT><STRONG><TT>&#92;setalldynamicframes</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4283">3.</A>
+<DD><A HREF="ffuserguide.html#4284">3.</A>
<DT><STRONG><TT>&#92;setallflowframes</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4233">3.</A>
+<DD><A HREF="ffuserguide.html#4234">3.</A>
<DT><STRONG><TT>&#92;setallstaticframes</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4258">3.</A>
+<DD><A HREF="ffuserguide.html#4259">3.</A>
<DT><STRONG><TT>&#92;setdynamiccontents</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4080">2.3</A>
- | <A HREF="ffuserguide.html#4206">2.3.1</A>
- | <A HREF="ffuserguide.html#4403">3.</A>
+<DD><A HREF="ffuserguide.html#4081">2.3</A>
+ | <A HREF="ffuserguide.html#4207">2.3.1</A>
+ | <A HREF="ffuserguide.html#4404">3.</A>
<DT><STRONG><TT>&#92;setdynamiccontents*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4089">2.3</A>
+<DD><A HREF="ffuserguide.html#4090">2.3</A>
<DT><STRONG><TT>&#92;setdynamicframe</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4075">2.3</A>
- | <A HREF="ffuserguide.html#4150">2.3</A>
- | <A HREF="ffuserguide.html#4265">3.</A>
- | <A HREF="ffuserguide.html#6511">6.1</A>
- | <A HREF="ffuserguide.html#6839">8.1</A>
+<DD><A HREF="ffuserguide.html#4076">2.3</A>
+ | <A HREF="ffuserguide.html#4151">2.3</A>
+ | <A HREF="ffuserguide.html#4266">3.</A>
+ | <A HREF="ffuserguide.html#6512">6.1</A>
+ | <A HREF="ffuserguide.html#6840">8.1</A>
<DT><STRONG><TT>&#92;setdynamicframe*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4274">3.</A>
+<DD><A HREF="ffuserguide.html#4275">3.</A>
<DT><STRONG><TT>&#92;setffdraftcolor</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6573">7.1</A>
+<DD><A HREF="ffuserguide.html#6574">7.1</A>
<DT><STRONG><TT>&#92;setffdrafttypeblockcolor</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6578">7.1</A>
+<DD><A HREF="ffuserguide.html#6579">7.1</A>
<DT><STRONG><TT>&#92;setflowframe</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3790">2.1</A>
- | <A HREF="ffuserguide.html#4215">3.</A>
+<DD><A HREF="ffuserguide.html#3791">2.1</A>
+ | <A HREF="ffuserguide.html#4216">3.</A>
<DT><STRONG><TT>&#92;setflowframe*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4224">3.</A>
- | <A HREF="ffuserguide.html#6892">8.3</A>
+<DD><A HREF="ffuserguide.html#4225">3.</A>
+ | <A HREF="ffuserguide.html#6893">8.3</A>
<DT><STRONG><TT>&#92;setlength</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6559">6.2</A>
- | <A HREF="ffuserguide.html#6614">7.2</A>
+<DD><A HREF="ffuserguide.html#6560">6.2</A>
+ | <A HREF="ffuserguide.html#6615">7.2</A>
<DT><STRONG><TT>&#92;setstaticcontents</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3566">ffuserguide</A>
- | <A HREF="ffuserguide.html#3913">2.2</A>
- | <A HREF="ffuserguide.html#3939">2.2</A>
- | <A HREF="ffuserguide.html#4395">3.</A>
+<DD><A HREF="ffuserguide.html#3567">ffuserguide</A>
+ | <A HREF="ffuserguide.html#3914">2.2</A>
+ | <A HREF="ffuserguide.html#3940">2.2</A>
+ | <A HREF="ffuserguide.html#4396">3.</A>
<DT><STRONG><TT>&#92;setstaticcontents*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3924">2.2</A>
- | <A HREF="ffuserguide.html#3944">2.2</A>
- | <A HREF="ffuserguide.html#3961">2.2</A>
+<DD><A HREF="ffuserguide.html#3925">2.2</A>
+ | <A HREF="ffuserguide.html#3945">2.2</A>
+ | <A HREF="ffuserguide.html#3962">2.2</A>
<DT><STRONG><TT>&#92;setstaticframe</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4240">3.</A>
- | <A HREF="ffuserguide.html#6834">8.1</A>
+<DD><A HREF="ffuserguide.html#4241">3.</A>
+ | <A HREF="ffuserguide.html#6835">8.1</A>
<DT><STRONG><TT>&#92;setstaticframe*</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4249">3.</A>
+<DD><A HREF="ffuserguide.html#4250">3.</A>
<DT><STRONG><TT>&#92;setthumbtab</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6490">6.1</A>
+<DD><A HREF="ffuserguide.html#6491">6.1</A>
<DT><STRONG><TT>&#92;setthumbtabindex</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6502">6.1</A>
+<DD><A HREF="ffuserguide.html#6503">6.1</A>
<DT><STRONG><TT>&#92;sfswapoddeven</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4302">3.</A>
+<DD><A HREF="ffuserguide.html#4303">3.</A>
<DT><STRONG><TT>&#92;shadowbox</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4345">3.</A>
- | <A HREF="ffuserguide.html#4384">3.</A>
+<DD><A HREF="ffuserguide.html#4346">3.</A>
+ | <A HREF="ffuserguide.html#4385">3.</A>
<DT><STRONG><TT>shapepar</TT> package</STRONG>
-<DD><A HREF="ffuserguide.html#4492">3.1</A>
- | <A HREF="ffuserguide.html#4435">3.1</A>
- | <A HREF="ffuserguide.html#4440">3.1</A>
- | <A HREF="ffuserguide.html#4443">3.1</A>
- | <A HREF="ffuserguide.html#4448">3.1</A>
- | <A HREF="ffuserguide.html#4456">3.1</A>
- | <A HREF="ffuserguide.html#4461">3.1</A>
- | <A HREF="ffuserguide.html#4497">3.1</A>
- | <A HREF="ffuserguide.html#4507">3.1</A>
- | <A HREF="ffuserguide.html#4546">3.1</A>
- | <A HREF="ffuserguide.html#4551">3.1</A>
- | <A HREF="ffuserguide.html#4554">3.1</A>
- | <A HREF="ffuserguide.html#4559">3.1</A>
+<DD><A HREF="ffuserguide.html#4493">3.1</A>
+ | <A HREF="ffuserguide.html#4436">3.1</A>
+ | <A HREF="ffuserguide.html#4441">3.1</A>
+ | <A HREF="ffuserguide.html#4444">3.1</A>
+ | <A HREF="ffuserguide.html#4449">3.1</A>
+ | <A HREF="ffuserguide.html#4457">3.1</A>
+ | <A HREF="ffuserguide.html#4462">3.1</A>
+ | <A HREF="ffuserguide.html#4498">3.1</A>
+ | <A HREF="ffuserguide.html#4508">3.1</A>
+ | <A HREF="ffuserguide.html#4547">3.1</A>
+ | <A HREF="ffuserguide.html#4552">3.1</A>
+ | <A HREF="ffuserguide.html#4555">3.1</A>
+ | <A HREF="ffuserguide.html#4560">3.1</A>
<DT><STRONG><TT>&#92;showframebboxfalse</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3682">1.1</A>
+<DD><A HREF="ffuserguide.html#3683">1.1</A>
<DT><STRONG><TT>&#92;showframebboxtrue</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3677">1.1</A>
+<DD><A HREF="ffuserguide.html#3678">1.1</A>
<DT><STRONG><TT>&#92;showmarginsfalse</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3672">1.1</A>
+<DD><A HREF="ffuserguide.html#3673">1.1</A>
<DT><STRONG><TT>&#92;showmarginstrue</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3667">1.1</A>
+<DD><A HREF="ffuserguide.html#3668">1.1</A>
<DT><STRONG><TT>&#92;showtypeblockfalse</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3662">1.1</A>
+<DD><A HREF="ffuserguide.html#3663">1.1</A>
<DT><STRONG><TT>&#92;showtypeblocktrue</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3657">1.1</A>
+<DD><A HREF="ffuserguide.html#3658">1.1</A>
<DT><STRONG><TT>&#92;simpar</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4502">3.1</A>
+<DD><A HREF="ffuserguide.html#4503">3.1</A>
<DT><STRONG><TT>&#92;squareshape</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4562">3.1</A>
+<DD><A HREF="ffuserguide.html#4563">3.1</A>
<DT><STRONG><TT>staticcontents</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#3908">2.2</A>
- | <A HREF="ffuserguide.html#3933">2.2</A>
- | <A HREF="ffuserguide.html#3999">2.3</A>
- | <A HREF="ffuserguide.html#4400">3.</A>
+<DD><A HREF="ffuserguide.html#3909">2.2</A>
+ | <A HREF="ffuserguide.html#3934">2.2</A>
+ | <A HREF="ffuserguide.html#4000">2.3</A>
+ | <A HREF="ffuserguide.html#4401">3.</A>
<DT><STRONG><TT>staticcontents*</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#3936">2.2</A>
- | <A HREF="ffuserguide.html#3958">2.2</A>
+<DD><A HREF="ffuserguide.html#3937">2.2</A>
+ | <A HREF="ffuserguide.html#3959">2.2</A>
<DT><STRONG><TT>staticfigure</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#3598">1.</A>
- | <A HREF="ffuserguide.html#3620">1.</A>
- | <A HREF="ffuserguide.html#6916">8.3</A>
+<DD><A HREF="ffuserguide.html#3599">1.</A>
+ | <A HREF="ffuserguide.html#3621">1.</A>
+ | <A HREF="ffuserguide.html#6917">8.3</A>
<DT><STRONG><TT>statictable</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#3601">1.</A>
- | <A HREF="ffuserguide.html#3623">1.</A>
- | <A HREF="ffuserguide.html#6919">8.3</A>
+<DD><A HREF="ffuserguide.html#3602">1.</A>
+ | <A HREF="ffuserguide.html#3624">1.</A>
+ | <A HREF="ffuserguide.html#6920">8.3</A>
<DT><STRONG><TT>table</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#3607">1.</A>
- | <A HREF="ffuserguide.html#3629">1.</A>
- | <A HREF="ffuserguide.html#3641">1.</A>
+<DD><A HREF="ffuserguide.html#3608">1.</A>
+ | <A HREF="ffuserguide.html#3630">1.</A>
+ | <A HREF="ffuserguide.html#3642">1.</A>
<DT><STRONG><TT>table*</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#3635">1.</A>
+<DD><A HREF="ffuserguide.html#3636">1.</A>
<DT><STRONG><TT>&#92;tableofcontents</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6459">6.1</A>
+<DD><A HREF="ffuserguide.html#6460">6.1</A>
<DT><STRONG><TT>&#92;textheight</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3553">ffuserguide</A>
+<DD><A HREF="ffuserguide.html#3554">ffuserguide</A>
<DT><STRONG><TT>&#92;textwidth</TT></STRONG>
-<DD><A HREF="ffuserguide.html#3548">ffuserguide</A>
+<DD><A HREF="ffuserguide.html#3549">ffuserguide</A>
<DT><STRONG><TT>theindex</TT> environment</STRONG>
-<DD><A HREF="ffuserguide.html#6816">8.1</A>
+<DD><A HREF="ffuserguide.html#6817">8.1</A>
<DT><STRONG><TT>thisframe</TT> counter</STRONG>
-<DD><A HREF="ffuserguide.html#6722">7.3</A>
+<DD><A HREF="ffuserguide.html#6723">7.3</A>
<DT><STRONG><TT>&#92;thumbtabformat</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6482">6.1</A>
+<DD><A HREF="ffuserguide.html#6483">6.1</A>
<DT><STRONG><TT>&#92;thumbtabindex</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6439">6.1</A>
- | <A HREF="ffuserguide.html#6464">6.1</A>
+<DD><A HREF="ffuserguide.html#6440">6.1</A>
+ | <A HREF="ffuserguide.html#6465">6.1</A>
<DT><STRONG><TT>&#92;thumbtabindexformat</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6477">6.1</A>
+<DD><A HREF="ffuserguide.html#6478">6.1</A>
<DT><STRONG><TT>&#92;thumbtabwidth</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6434">6.1</A>
+<DD><A HREF="ffuserguide.html#6435">6.1</A>
<DT><STRONG><TT>tikz</TT> package</STRONG>
-<DD><A HREF="ffuserguide.html#4350">3.</A>
- | <A HREF="ffuserguide.html#6399">5.4.4</A>
+<DD><A HREF="ffuserguide.html#4351">3.</A>
+ | <A HREF="ffuserguide.html#6400">5.4.4</A>
<DT><STRONG><TT>&#92;tocandthumbtabindex</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6454">6.1</A>
- | <A HREF="ffuserguide.html#6472">6.1</A>
+<DD><A HREF="ffuserguide.html#6455">6.1</A>
+ | <A HREF="ffuserguide.html#6473">6.1</A>
<DT><STRONG><TT>ttbnonum</TT> option</STRONG>
-<DD><A HREF="ffuserguide.html#6415">6.1</A>
+<DD><A HREF="ffuserguide.html#6416">6.1</A>
<DT><STRONG><TT>ttbnotitle</TT> option</STRONG>
-<DD><A HREF="ffuserguide.html#6409">6.1</A>
+<DD><A HREF="ffuserguide.html#6410">6.1</A>
<DT><STRONG><TT>ttbnum</TT> option</STRONG>
-<DD><A HREF="ffuserguide.html#6412">6.1</A>
+<DD><A HREF="ffuserguide.html#6413">6.1</A>
<DT><STRONG><TT>ttbtitle</TT> option</STRONG>
-<DD><A HREF="ffuserguide.html#6406">6.1</A>
+<DD><A HREF="ffuserguide.html#6407">6.1</A>
<DT><STRONG><TT>&#92;twocolumn</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4874">5.1</A>
- | <A HREF="ffuserguide.html#4879">5.1</A>
- | <A HREF="ffuserguide.html#4904">5.1</A>
- | <A HREF="ffuserguide.html#4914">5.1</A>
- | <A HREF="ffuserguide.html#5929">5.3</A>
- | <A HREF="ffuserguide.html#6824">8.1</A>
+<DD><A HREF="ffuserguide.html#4875">5.1</A>
+ | <A HREF="ffuserguide.html#4880">5.1</A>
+ | <A HREF="ffuserguide.html#4905">5.1</A>
+ | <A HREF="ffuserguide.html#4915">5.1</A>
+ | <A HREF="ffuserguide.html#5930">5.3</A>
+ | <A HREF="ffuserguide.html#6825">8.1</A>
<DT><STRONG><TT>&#92;twocolumnbottom</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5721">5.2</A>
- | <A HREF="ffuserguide.html#5746">5.2</A>
- | <A HREF="ffuserguide.html#5765">5.2</A>
+<DD><A HREF="ffuserguide.html#5722">5.2</A>
+ | <A HREF="ffuserguide.html#5747">5.2</A>
+ | <A HREF="ffuserguide.html#5766">5.2</A>
<DT><STRONG><TT>&#92;twocolumnbottominarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5097">5.2</A>
- | <A HREF="ffuserguide.html#5668">5.2</A>
- | <A HREF="ffuserguide.html#5703">5.2</A>
- | <A HREF="ffuserguide.html#5732">5.2</A>
+<DD><A HREF="ffuserguide.html#5098">5.2</A>
+ | <A HREF="ffuserguide.html#5669">5.2</A>
+ | <A HREF="ffuserguide.html#5704">5.2</A>
+ | <A HREF="ffuserguide.html#5733">5.2</A>
<DT><STRONG><TT>&#92;twocolumnDbottom</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5756">5.2</A>
+<DD><A HREF="ffuserguide.html#5757">5.2</A>
<DT><STRONG><TT>&#92;twocolumnDbottominarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5686">5.2</A>
+<DD><A HREF="ffuserguide.html#5687">5.2</A>
<DT><STRONG><TT>&#92;twocolumnDtop</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5366">5.2</A>
+<DD><A HREF="ffuserguide.html#5367">5.2</A>
<DT><STRONG><TT>&#92;twocolumnDtopinarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5296">5.2</A>
+<DD><A HREF="ffuserguide.html#5297">5.2</A>
<DT><STRONG><TT>&#92;twocolumninarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#4953">5.1</A>
- | <A HREF="ffuserguide.html#5000">5.1</A>
+<DD><A HREF="ffuserguide.html#4954">5.1</A>
+ | <A HREF="ffuserguide.html#5001">5.1</A>
<DT><STRONG><TT>&#92;twocolumnSbottom</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5737">5.2</A>
+<DD><A HREF="ffuserguide.html#5738">5.2</A>
<DT><STRONG><TT>&#92;twocolumnSbottominarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5651">5.2</A>
+<DD><A HREF="ffuserguide.html#5652">5.2</A>
<DT><STRONG><TT>&#92;twocolumnStop</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5347">5.2</A>
+<DD><A HREF="ffuserguide.html#5348">5.2</A>
<DT><STRONG><TT>&#92;twocolumnStopinarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5261">5.2</A>
+<DD><A HREF="ffuserguide.html#5262">5.2</A>
<DT><STRONG><TT>&#92;twocolumntop</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5331">5.2</A>
- | <A HREF="ffuserguide.html#5356">5.2</A>
- | <A HREF="ffuserguide.html#5375">5.2</A>
+<DD><A HREF="ffuserguide.html#5332">5.2</A>
+ | <A HREF="ffuserguide.html#5357">5.2</A>
+ | <A HREF="ffuserguide.html#5376">5.2</A>
<DT><STRONG><TT>&#92;twocolumntopinarea</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5038">5.2</A>
- | <A HREF="ffuserguide.html#5278">5.2</A>
- | <A HREF="ffuserguide.html#5313">5.2</A>
- | <A HREF="ffuserguide.html#5342">5.2</A>
+<DD><A HREF="ffuserguide.html#5039">5.2</A>
+ | <A HREF="ffuserguide.html#5279">5.2</A>
+ | <A HREF="ffuserguide.html#5314">5.2</A>
+ | <A HREF="ffuserguide.html#5343">5.2</A>
<DT><STRONG><TT>&#92;value</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6712">7.3</A>
+<DD><A HREF="ffuserguide.html#6713">7.3</A>
<DT><STRONG><TT>&#92;vcolumnsep</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5014">5.2</A>
- | <A HREF="ffuserguide.html#6653">7.2</A>
+<DD><A HREF="ffuserguide.html#5015">5.2</A>
+ | <A HREF="ffuserguide.html#6654">7.2</A>
<DT><STRONG>verbatim text</STRONG>
-<DD><A HREF="ffuserguide.html#3997">2.3</A>
- | <A HREF="ffuserguide.html#4097">2.3</A>
- | <A HREF="ffuserguide.html#4107">2.3</A>
- | <A HREF="ffuserguide.html#960">2.3.1</A>
- | <A HREF="ffuserguide.html#6929">8.3</A>
+<DD><A HREF="ffuserguide.html#3998">2.3</A>
+ | <A HREF="ffuserguide.html#4098">2.3</A>
+ | <A HREF="ffuserguide.html#4108">2.3</A>
+ | <A HREF="ffuserguide.html#961">2.3.1</A>
| <A HREF="ffuserguide.html#6930">8.3</A>
- | <A HREF="ffuserguide.html#6934">8.3</A>
+ | <A HREF="ffuserguide.html#6931">8.3</A>
+ | <A HREF="ffuserguide.html#6935">8.3</A>
<DT><STRONG><TT>&#92;vNtone</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5969">5.4.1</A>
+<DD><A HREF="ffuserguide.html#5970">5.4.1</A>
<DT><STRONG><TT>&#92;vNtonebottom</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6058">5.4.1</A>
+<DD><A HREF="ffuserguide.html#6059">5.4.1</A>
<DT><STRONG><TT>&#92;vNtonetop</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6088">5.4.1</A>
+<DD><A HREF="ffuserguide.html#6089">5.4.1</A>
<DT><STRONG><TT>&#92;vtwotone</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5948">5.4.1</A>
- | <A HREF="ffuserguide.html#5992">5.4.1</A>
- | <A HREF="ffuserguide.html#6020">5.4.1</A>
- | <A HREF="ffuserguide.html#6048">5.4.1</A>
+<DD><A HREF="ffuserguide.html#5949">5.4.1</A>
+ | <A HREF="ffuserguide.html#5993">5.4.1</A>
+ | <A HREF="ffuserguide.html#6021">5.4.1</A>
+ | <A HREF="ffuserguide.html#6049">5.4.1</A>
<DT><STRONG><TT>&#92;vtwotonebottom</TT></STRONG>
-<DD><A HREF="ffuserguide.html#5997">5.4.1</A>
- | <A HREF="ffuserguide.html#6083">5.4.1</A>
+<DD><A HREF="ffuserguide.html#5998">5.4.1</A>
+ | <A HREF="ffuserguide.html#6084">5.4.1</A>
<DT><STRONG><TT>&#92;vtwotonetop</TT></STRONG>
-<DD><A HREF="ffuserguide.html#6025">5.4.1</A>
- | <A HREF="ffuserguide.html#6053">5.4.1</A>
- | <A HREF="ffuserguide.html#6113">5.4.1</A>
+<DD><A HREF="ffuserguide.html#6026">5.4.1</A>
+ | <A HREF="ffuserguide.html#6054">5.4.1</A>
+ | <A HREF="ffuserguide.html#6114">5.4.1</A>
</DL>
@@ -4821,20 +4821,20 @@ Index</A>
<BR><HR><H4>Footnotes</H4>
<DL>
-<DT><A NAME="foot3518">...
+<DT><A NAME="foot3519">...
user</A><A
HREF="ffuserguide.html#tex2html2"><SUP>1.1</SUP></A></DT>
<DD>Can I have arbitrary shaped frames? See
<A HREF="ffuserguide.html#sec:parshape">Non-Rectangular Frames</A>
</DD>
-<DT><A NAME="foot404">... environment</A><A
+<DT><A NAME="foot405">... environment</A><A
HREF="ffuserguide.html#tex2html3"><SUP>1.2</SUP></A></DT>
<DD>This is because
of the arbitrary layout of the flow frames.
</DD>
-<DT><A NAME="foot3519">...
+<DT><A NAME="foot3520">...
them.</A><A
HREF="ffuserguide.html#tex2html17"><SUP>1.3</SUP></A></DT>
<DD>Can I have arbitrary
@@ -4843,27 +4843,27 @@ shaped frames? See
Frames</A>.
</DD>
-<DT><A NAME="foot3521">...typeblock</A><A
+<DT><A NAME="foot3522">...typeblock</A><A
HREF="ffuserguide.html#tex2html29"><SUP>2.1</SUP></A></DT>
<DD>See <A HREF="ffuserguide.html#itm:absval">converting from absolute to relative page
co-ordinates</A>
</DD>
-<DT><A NAME="foot3522">... counter</A><A
+<DT><A NAME="foot3523">... counter</A><A
HREF="ffuserguide.html#tex2html30"><SUP>2.2</SUP></A></DT>
<DD>why can't I use the page number format?
See query&nbsp;<A HREF="ffuserguide.html#itm:whynot">3</A>
</DD>
-<DT><A NAME="foot3523">...flow</A><A
+<DT><A NAME="foot3524">...flow</A><A
HREF="ffuserguide.html#tex2html31"><SUP>2.3</SUP></A></DT>
<DD>the
-position for the even pages is set using <TT>&#92;setflowframe</TT><A NAME="3790"></A>
+position for the even pages is set using <TT>&#92;setflowframe</TT><A NAME="3791"></A>
defined in <A HREF="ffuserguide.html#sec:modattr">Modifying
Frame Attributes</A>
</DD>
-<DT><A NAME="foot2893">... of.</A><A
+<DT><A NAME="foot2894">... of.</A><A
HREF="ffuserguide.html#tex2html41"><SUP>2.4</SUP></A></DT>
<DD>By "neither flows into nor
flows out of" I mean you have to explicitly set the contents of
@@ -4871,46 +4871,46 @@ this frame. Note that it may appear to contain text if another
frame overlaps it, but this text belongs to the other frame.
</DD>
-<DT><A NAME="foot3524">... macro.</A><A
+<DT><A NAME="foot3525">... macro.</A><A
HREF="ffuserguide.html#tex2html48"><SUP>2.5</SUP></A></DT>
<DD>which means that you can have
-verbatim text<A NAME="3997"></A> in the body of the <TT>staticcontents</TT><A NAME="3999"></A> environment
-but not in the body of the <TT>dynamiccontents</TT><A NAME="4002"></A> environment
+verbatim text<A NAME="3998"></A> in the body of the <TT>staticcontents</TT><A NAME="4000"></A> environment
+but not in the body of the <TT>dynamiccontents</TT><A NAME="4003"></A> environment
</DD>
-<DT><A NAME="foot3052">...
+<DT><A NAME="foot3053">...
approximately</A><A
HREF="ffuserguide.html#tex2html92"><SUP>5.1</SUP></A></DT>
<DD>It may not be exact, as the flow frames are adjusted so that their height is an integer multiple
-of <TT>&#92;baselineskip</TT><A NAME="5009"></A>, which may increase the gap.
+of <TT>&#92;baselineskip</TT><A NAME="5010"></A>, which may increase the gap.
</DD>
-<DT><A NAME="foot2403">... thumbtabs</A><A
+<DT><A NAME="foot2404">... thumbtabs</A><A
HREF="ffuserguide.html#tex2html114"><SUP>6.1</SUP></A></DT>
<DD>but
only do this if there is enough room on the page!
</DD>
-<DT><A NAME="foot3457">...hypersetup@<TT>&#92;hypersetup</TT></A><A
+<DT><A NAME="foot3458">...hypersetup@<TT>&#92;hypersetup</TT></A><A
HREF="ffuserguide.html#tex2html115"><SUP>6.2</SUP></A></DT>
<DD>defined by the
-<TT>hyperref</TT><A NAME="6521"></A> package
+<TT>hyperref</TT><A NAME="6522"></A> package
</DD>
-<DT><A NAME="foot2634">... approximate</A><A
+<DT><A NAME="foot2635">... approximate</A><A
HREF="ffuserguide.html#tex2html144"><SUP>8.1</SUP></A></DT>
<DD>The pedantic may point out
that TeX may make several attempts to fill in the flow frames
depending on penalties and so on.
</DD>
-<DT><A NAME="foot2635">... pencilled</A><A
+<DT><A NAME="foot2636">... pencilled</A><A
HREF="ffuserguide.html#tex2html145"><SUP>8.2</SUP></A></DT>
<DD>actually it hasn't
drawn anything really, but it has in its mind's eye.
</DD>
-<DT><A NAME="foot3487">...offset</A><A
+<DT><A NAME="foot3488">...offset</A><A
HREF="ffuserguide.html#tex2html206"><SUP>8.3</SUP></A></DT>
<DD><TT>offset</TT> can also have the value <TT>compute</TT>
diff --git a/Master/texmf-dist/doc/latex/flowfram/ffuserguide.pdf b/Master/texmf-dist/doc/latex/flowfram/ffuserguide.pdf
index fefae5fd929..595c0cfbbab 100644
--- a/Master/texmf-dist/doc/latex/flowfram/ffuserguide.pdf
+++ b/Master/texmf-dist/doc/latex/flowfram/ffuserguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex b/Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex
index bfe1228e039..37aacadebbc 100644
--- a/Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex
+++ b/Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex
@@ -1,6 +1,6 @@
\documentclass[a4paper,twoside]{book}
-
+\usepackage{etex}
\usepackage{mathptmx}
\usepackage{courier}
\usepackage[scaled=0.9]{helvet}
@@ -348,9 +348,9 @@ backcolor=blue,textcolor=white,style=footstyle,pages=none}
\begin{document}\label{top}
\title{Creating Flow Frames for Posters, Brochures or
-Magazines using flowfram.sty v 1.12}
+Magazines using flowfram.sty v 1.13}
\author{Nicola L. C. Talbot}
-\date{25th November 2009}
+\date{23rd January 2010}
% swap frames around for title page
\ffswapoddeven*{main}
diff --git a/Master/texmf-dist/doc/latex/flowfram/flowfram.dtx b/Master/texmf-dist/doc/latex/flowfram/flowfram.dtx
deleted file mode 100644
index 57cdcdd2391..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/flowfram.dtx
+++ /dev/null
@@ -1,7774 +0,0 @@
-%\iffalse
-% flowfram.dtx generated using makedtx version 0.94b (c) Nicola Talbot
-% Command line args:
-% -src "flowfram.sty\Z=>flowfram.sty"
-% -doc "docstub.tex"
-% -author "Nicola Talbot"
-% -dir "source"
-% flowfram
-% Created on 2009/11/25 11:29
-%\fi
-%\iffalse
-%<*package>
-%% \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 \~}
-%</package>
-%\fi
-% \iffalse
-% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2009 Nicola Talbot, all rights reserved.
-% \fi
-% \iffalse
-%<*driver>
-\documentclass{ltxdoc}
-
-\CheckSum{9498}
-\PageIndex
-
-\usepackage{url}
-\usepackage[colorlinks,hyperindex=false,
-pdfauthor={Nicola L C Talbot},
-pdftitle={Documented Source Code for flowfram.sty}]{hyperref}
-\usepackage[style=altlist,toc,nonumberlist]{glossaries}
-
-\newglossary[slg]{secondary}{sgi}{sgo}{Glossary}
-\renewcommand{\acronymtype}{secondary}
-
-\MakeShortVerb"
-\DeleteShortVerb|
-
-\newcommand{\sty}[1]{\textsf{#1}}
-\newcommand{\env}[1]{\textsf{#1}}
-
-\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
-
-
-\newglossaryentry{typeblock}{name=typeblock,description={The
-area of the page where the main body of the text goes.
-The width and height of this area are given by \cs{textwidth}
-and \cs{textheight}},type=secondary}
-
-\newglossaryentry{flow}{name=flow frame,description={The frames in
-a document such that the contents of the \env{document}
-environment flow from one frame to the next in the order
-that they were defined. There must be at least one flow frame on
-every page},type=secondary}
-
-\newglossaryentry{static}{name=static frame,description={Frames
-in which text is fixed in place. The contents are fixed until
-explicitly changed},type=secondary}
-
-\newglossaryentry{dynamic}{name=dynamic frame,description={Frames
-in which text is fixed in place, but the contents are re-typeset
-after each page},type=secondary}
-
-\newglossaryentry{frame}{name=frame,description={A rectangular
-area of the page in which text can be placed (not to be
-confused with a frame making command). There are three types:
-flow, static and dynamic},type=secondary}
-
-\newglossaryentry{fcmd}{name=frame making command,description={A
-\LaTeX\ command which places some kind of border around its
-argument. For example: \cs{fbox}},type=secondary}
-
-\newglossaryentry{pglist}{name=page list,description={A list of
-pages. This can either be a single keyword: \texttt{all},
-\texttt{odd}, \texttt{even} or \texttt{none}, or it can
-be a comma-separated list of individual page numbers or
-page ranges. For example: \texttt{\textless3,5,7-11,\textgreater15}
-indicates pages 1,2,5,7,8,9,10,11 and all pages after page 15.
-Note that these numbers refer to the actual value of the
-page counter, not the absolute physical page number},
-type=secondary}
-
-\newglossaryentry{pgrange}{name=page range,description={Page
-ranges can be closed, e.g.\ \texttt{5-10}, or open, e.g.
-\texttt{\textless7} or \texttt{\textgreater9}},
-type=secondary}
-
-\newglossaryentry{bbox}{name=bounding box,plural=bounding boxes,
-description={The smallest
-possible rectangle that completely encompasses the object},
-type=secondary}
-
-\newacronym[name={identification number (IDN)},
-description={A unique
-number assigned to each frame, which you can use to identify
-the frame when modifying its appearance. Example: if you
-have defined 3 flow frames, 2 static frames and 1 dynamic
-frame, the flow frames will have IDNs 1, 2 and 3, the static
-frames will have IDNs 1 and 2, and the dynamic frame will
-have IDN 1}]{idn}{IDN}{identification number}
-
-\newacronym[name={identification label (IDL)},
-description={A unique
-label which can be assigned to a frame, enabling you to
-refer to the frame by label instead of by its
-IDN}]{idl}{IDL}{identification label}
-
-\makeglossaries
-
-\begin{document}
-\DocInput{flowfram.dtx}
-\end{document}
-%</driver>
-%\fi
-%\title{Documented Source Code for flowfram.sty v1.12}
-%\author{Nicola L. C. Talbot}
-%\date{25th November 2009}
-%\maketitle
-%
-%This is the documented source code for the flowfram package.
-%For a user manual, see \url{ffuserguide.pdf}.
-%
-%\tableofcontents
-%
-%\printglossary[type=secondary]
-%
-%\StopEventually{\PrintIndex}
-%
-%
-%\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}[2009/11/25 v1.12]
-% \end{macrocode}
-% Load packages needed by this package
-% \begin{macrocode}
-\RequirePackage{ifthen}
-\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:
-% \begin{macrocode}
-\newcommand{\setffdraftcolor}{\color[gray]{0.8}}
-\newcommand{\setffdrafttypeblockcolor}{\color[gray]{0.9}}
-% \end{macrocode}
-%\begin{macro}{\fflabelsep}
-% In draft mode, each \gls{bbox} (apart from the one indicating
-% the \gls{typeblock}), has a label positioned to the right of the
-% box, at a distance of "\fflabelsep" from the right hand
-% border.\DescribeMacro{\fflabelsep}
-% \begin{macrocode}
-\newlength\fflabelsep
-\fflabelsep=1pt
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\fflabelfont}
-% The appearance of the label is set by the declaration:
-% \begin{macrocode}
-\newcommand*{\fflabelfont}{\small\sffamily}
-% \end{macrocode}
-%\end{macro}
-% The command "\@ffdraft" is used to switch to draft mode.
-% Allow user the option to show particular types of bounding
-% boxes.
-% \begin{macrocode}
-\newif\ifshowtypeblock
-\newif\ifshowmargins
-\newif\ifshowframebbox
-% \end{macrocode}
-%\begin{macro}{\@ffdraft}
-% Set all draft settings.
-% \begin{macrocode}
-\newcommand*{\@ffdraft}{%
-\showtypeblocktrue
-\showmarginstrue
-\showframebboxtrue
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ffnodraft}
-% Unset all draft settings.
-% \begin{macrocode}
-\newcommand*{\@ffnodraft}{%
-\showtypeblockfalse
-\showmarginsfalse
-\showframebboxfalse
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@fr@meifdraft}
-% Draw \gls{bbox}.
-% \begin{macrocode}
-\newcommand*{\@fr@meifdraft}[3][\setffdraftcolor]{%
-\def\ff@backcol{{none}}%
-\@ifundefined{color}{\frame{#2}}{#1\frame{#2}}%
-\ifthenelse{\equal{#3}{}}{}{%
-\makebox[0pt][l]{\hskip\fflabelsep\fflabelfont{[#3]}}}}%
-% \end{macrocode}
-%\end{macro}
-% Colour setting commands, do nothing by default:
-% \begin{macrocode}
-\newcommand*{\@s@tffcol}{}
-\newcommand*{\@s@tfftextcol}{}
-% \end{macrocode}
-%\begin{macro}{\@ffbackground}
-% Deal with \gls{frame} background colour. Note that the background colour only
-% extends to the limit of the \gls{frame}['s] \gls{bbox}. If you want the background
-% colour to be flush with the \glspl{frame} border, you will have to create your own
-% customised border.
-% \begin{macrocode}
-\newcommand*{\@ffbackground}[1]{#1}
-% \end{macrocode}
-%\end{macro}
-% Now declare the options. If draft, switch to draft definitions.
-% \begin{macrocode}
-\DeclareOption{draft}{\@ffdraft}
-% \end{macrocode}
-% If not draft, reset commands so that no \glspl{bbox}
-% are drawn.
-% \begin{macrocode}
-\DeclareOption{final}{\@ffnodraft}
-% \end{macrocode}
-%\begin{macro}{\if@ttb@rotate}
-% Allow provision to prevent rotation in the thumbtabs.
-% If no rotation, thumbtab text will be stacked vertically.
-% This will also affect whether or not to rotate \glspl{frame}.
-% \begin{macrocode}
-\newif\if@ttb@rotate
-\@ttb@rotatetrue
-\DeclareOption{rotate}{\@ttb@rotatetrue}
-\DeclareOption{norotate}{\@ttb@rotatefalse}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\rotateframe}
-% Define command that will only rotate box if rotate option
-% set.
-% \begin{macrocode}
-\newcommand{\rotateframe}[2]{\if@ttb@rotate
-\rotatebox{#1}{#2}%
-\else
-#2\relax
-\fi}
-% \end{macrocode}
-%\end{macro}
-% Should the thumbtabs include number, title, both or
-% neither?
-% \begin{macrocode}
-\newif\if@ttb@num
-\newif\if@ttb@title
-\@ttb@numfalse
-\@ttb@titletrue
-\DeclareOption{ttbtitle}{\@ttb@titletrue}
-\DeclareOption{ttbnotitle}{\@ttb@titlefalse}
-\DeclareOption{ttbnum}{\@ttb@numtrue}
-\DeclareOption{ttbnonum}{\@ttb@numfalse}
-% \end{macrocode}
-% If color option specified, set up the default colours
-% for the borders and text for all \gls{frame} types. Note that
-% the colour name has to be grouped within the definition
-% of "\flowframecol" and "\flowframetextcol". This
-% was done so that you could do, for example,
-% "\renewcommand{\flowframecol}{[rgb]{1,1,0}}" so that
-% you can specify the colour model as well.
-% The commands "\@s@tffcol" and "\@s@tfftextcol"
-% switch to the border and text colour, respectively. They
-% both assume that "\ff@col" has been set to the
-% relevant colour before use.
-% \begin{macrocode}
-\DeclareOption{color}{%
-\def\flowframecol{{black}}\def\flowframetextcol{{black}}
-\renewcommand*\@s@tffcol{\ifthenelse{\equal{\ff@col}{}}{}{%
-\expandafter\color\ff@col}}
-\renewcommand*\@s@tfftextcol{\ifthenelse{\equal{\ff@txtcol}{}}{}{%
-\expandafter\color\ff@txtcol}}
-\renewcommand*{\@ffbackground}[1]{%
-\ifthenelse{\equal{\ff@backcol}{{none}}}{%
-#1}{{\fboxsep=0pt\expandafter\colorbox\ff@backcol{#1}}}}
-}
-% \end{macrocode}
-% If nocolor is specified, ensure that the colour changing
-% commands do nothing.
-% \begin{macrocode}
-\DeclareOption{nocolor}{%
-\def\flowframetextcol{}%
-\def\flowframecol{}%
-\renewcommand{\@s@tffcol}{}\renewcommand{\@s@tfftextcol}{}
-\renewcommand{\@ffbackground}[1]{#1}
-}
-% \end{macrocode}
-%\begin{macro}{\iflefttorightcolumns}
-% Determine whether to define the Ncolumn style frames from left
-% to right or from right to left.
-%\changes{1.12}{2009/11/25}{new}
-% \begin{macrocode}
-\newif\iflefttorightcolumns
-\lefttorightcolumnstrue
-% \end{macrocode}
-%\end{macro}
-% Define options that set the direction:
-% \begin{macrocode}
-\DeclareOption{LR}{\lefttorightcolumnstrue}
-\DeclareOption{RL}{\lefttorightcolumnsfalse}
-% \end{macrocode}
-% Check to see if the document class has the draft option
-% set. The easiest way to do this is to check the length
-% of "\overfullrule" (the marker that indicates overfull
-% hboxes).
-% \begin{macrocode}
-\ifdim\overfullrule=0pt
-\ExecuteOptions{final}
-\else
-\ExecuteOptions{draft}
-\fi
-% \end{macrocode}
-% If the "\normalcolor" command is something other than
-% "\relax", then implement
-% the color option as the default, otherwise implement the
-% nocolor option as the default.
-% \begin{macrocode}
-\ifx\normalcolor\relax
-\ExecuteOptions{nocolor}
-\else
-\ExecuteOptions{color}
-\fi
-% \end{macrocode}
-% Now the defaults have all been set, the package options
-% specified by the user can be processed:
-% \begin{macrocode}
-\ProcessOptions
-% \end{macrocode}
-% If color option has been specified, but no color
-% package has been loaded yet, load color.sty
-% \begin{macrocode}
-\ifx\normalcolor\relax
-\ifthenelse{\equal{\flowframetextcol}{}}{}{%
-\RequirePackage{color}}
-\fi
-% \end{macrocode}
-% User may want a non standard style for the first page of
-% each chapter, so modify chapter commands to take this into
-% account.\DescribeMacro{\chapterfirstpagestyle}
-% \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}{%
-\thispagestyle{\chapterfirstpagestyle}\@ff@OLD@schapter}
-}
-% \end{macrocode}
-% Now get on with the package. First we need to set up
-% a register to store the number of \glspl{flow} that have been defined:
-% \begin{macrocode}
-\newcounter{maxflow}
-\c@maxflow=0\relax
-% \end{macrocode}
-% Next define a counter to keep track of the \gls{idn} of the current
-% \gls{flow}.
-% \begin{macrocode}
-\newcounter{thisframe}
-\c@thisframe=0\relax
-\@ifpackageloaded{hyperref}{%
-\def\theHthisframe{\thepage.\arabic{thisframe}}}{}
-% \end{macrocode}
-%\begin{macro}{\labelflowidn}
-%\changes{1.11}{2008/06/27}{new}
-% Define a command to label the current \gls{flow} so that its
-% \gls{idn} can be referenced:
-% \begin{macrocode}
-\newcommand*{\labelflowidn}[1]{%
-{\def\@currentlabel{\thethisframe}\label{#1}}}
-% \end{macrocode}
-%\end{macro}
-% Define a counter to store the current frame index for the current
-% page. This will be the same as the \gls{idn} if all \glspl{flow}
-% are displayed on the current page, but may be different to the
-% \gls{idn} if some \glspl{flow} are not displayed.
-%\changes{1.11}{2008/06/27}{displayedframe counter added}
-% \begin{macrocode}
-\newcounter{displayedframe}
-\c@displayedframe=0
-\@ifpackageloaded{hyperref}{%
-\def\theHdisplayedframe{\thepage.\arabic{displayedframe}}}{}
-% \end{macrocode}
-%\begin{macro}{\labelflow}
-%\changes{1.11}{2008/06/27}{new}
-% Define a command to label the current \gls{flow} so that its
-% displayed index can be referenced:
-% \begin{macrocode}
-\newcommand*{\labelflow}[1]{%
-{\def\@currentlabel{\thedisplayedframe}\label{#1}}}
-% \end{macrocode}
-%\end{macro}
-% Define a counter to store the total number of \glspl{static}:
-% \begin{macrocode}
-\newcounter{maxstatic}
-\c@maxstatic=0\relax
-% \end{macrocode}
-% Define a counter to store the total number of \glspl{dynamic}:
-% \begin{macrocode}
-\newcounter{maxdynamic}
-\c@maxdynamic=0\relax
-% \end{macrocode}
-% Define some temporary variables
-% \begin{macrocode}
-\newcount\@colN
-\newcount\@ff@tmpN
-\newcount\ff@id
-\newlength\@ff@offset
-\newlength\@ff@tmp@x
-\newlength\@ff@tmp@x@even
-\newlength\@ff@tmp@y
-% \end{macrocode}
-%\begin{macro}{\sdfparindent}
-% Define a length to govern paragraph indentation within
-% static and dynamic frames.
-% This is 0pt by default.
-% \begin{macrocode}
-\newlength\sdfparindent
-% \end{macrocode}
-%\end{macro}
-%
-% \subsection{Flow Frames}
-%\begin{macro}{\flowframesep}
-% Set up default lengths. The gap between the text and the
-% border is given by:
-% \begin{macrocode}
-\newlength\flowframesep
-\flowframesep=\fboxsep
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\flowframerule}
-% The width of the frame is given by:
-% \begin{macrocode}
-\newlength\flowframerule
-\flowframerule=\fboxrule
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\flowframeshowlayout}
-% Define command to show page layout. This finishes the current
-% page, temporarily sets draft mode, and prints an empty page.
-% Only the \glspl{frame} for that page will be shown.
-%\DescribeMacro{\flowframeshowlayout}
-% \begin{macrocode}
-\newcommand*{\flowframeshowlayout}{%
-\finishthispage
-{\@ffdraft\mbox{}\finishthispage\clearpage}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\framebreak}
-% If the \glspl{flow} are not all of the same width, the change
-% in "\hsize" will not come into effect until the end
-% of the paragraph. Provide a command to simulate a paragraph
-% break, without making it look as though there is a paragraph.
-% Provides an optional argument that is passed to
-% "\pagebreak". Make sure it is grouped to localise
-% the change in "\parfillskip" and "\parskip".
-% \begin{macrocode}
-\newif\ifusedframebreak
-\newcommand{\framebreak}[1][4]{%
-\usedframebreaktrue
-{\parfillskip=0pt\pagebreak[#1]\parskip=0pt\par\noindent}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\finishthispage}
-% The commands "\newpage" and
-% "\pagebreak" can be used to move on to the next
-% \gls{flow}, but to finish the entire page, use
-% "\finishthispage".
-% \begin{macrocode}
-\newcommand{\finishthispage}{%
-\@colN=\c@thisframe
-\newpage
-\whiledo{\@colN<\c@maxflow}{\advance\@colN by 1\relax
-\@ff@chckifthispg{\c@page}{\@colN}%
-\if@notthiscol\else
-\mbox{}\newpage%
-\fi
-}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\cleardoublepage}
-% Modify the definition of "\cleardoublepage". This may
-% or may not be defined so use "\def".
-% \begin{macrocode}
-\def\cleardoublepage{\finishthispage
-\if@twoside
-\ifodd\c@page
-\else
-\hbox{}\finishthispage
-\fi
-\fi}
-% \end{macrocode}
-%\end{macro}
-% Disable "@twocolumn" flag, as it makes no sense.
-% \begin{macrocode}
-\@twocolumnfalse
-% \end{macrocode}
-% Disable "@mparswitch" flag, as each \gls{flow} has
-% its own predefined margin setting.
-% \begin{macrocode}
-\@mparswitchfalse
-% \end{macrocode}
-%\begin{macro}{\globalreversemargin}
-% The margins get switched during the output routine, so
-% need the effect to be global.
-% \begin{macrocode}
-\newcommand{\globalreversemargin}{%
-\global\@mparbottom\z@\global\@reversemargintrue}
-\newcommand{\globalnormalmargin}{%
-\global\@mparbottom\z@\global\@reversemarginfalse}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@getmarginpos}
-% Determine whether the margin should be on the right
-% or left. This depends on the setting, which can either
-% be "right" or "left" (self explanatory) or "inner" (on the
-% spine side, so left for odd pages and right for even
-% pages) or "outer" (on the outside of the page, so right
-% for odd pages and left for even pages.) When "\@getmarginpos"
-% is finished, the setting is stored in "\ff@margin".
-% \begin{macrocode}
-\newcommand{\@getmarginpos}[1]{%
-\ifthenelse{\equal{#1}{inner}}{%
-\if@twoside
-\ifodd\c@page\def\ff@margin{left}\else\def\ff@margin{right}\fi
-\else
-\def\ff@margin{left}%
-\fi
-}{%
-\ifthenelse{\equal{#1}{outer}}{%
-\if@twoside
-\ifodd\c@page\def\ff@margin{right}\else\def\ff@margin{left}\fi
-\else
-\def\ff@margin{right}%
-\fi
-}{%
-\def\ff@margin{#1}}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\setmargin}
-% Set the margin for current \gls{flow}.
-% \begin{macrocode}
-\newcommand{\setmargin}{%
-\@getmarginpos{%
-\csname @ff@margin@\romannumeral\c@thisframe\endcsname}%
-\ifthenelse{\equal{\ff@margin}{left}}%
-{\globalreversemargin}{\globalnormalmargin}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\newflowframe}
-% Create a new \gls{flow}. Syntax:\newline
-% \cs{newflowframe}\oarg{pages}\marg{width}\marg{height}\marg{x}\marg{y}\oarg{label}
-%
-% First increment "\c@maxflow", and define boolean
-% to indicate whether or not the \gls{flow} has a border,
-% Then check to see whether or not the starred version is
-% begin used. All the settings must be global: the
-% output routine will create a new \gls{flow}, if there are no
-% more defined, and since changes made in the output routine
-% are localised, the new \gls{frame} will be lost unless it is
-% globally defined. Flow frames should only be set up in the
-% preamble, but if there are not enough \glspl{frame} to fit all
-% the document text, the output routine will create a new \gls{flow}.
-% So, define "\newflowframe" so that it calls
-% "\@n@wflowframe"
-% \begin{macrocode}
-\newcommand{\newflowframe}{\@n@wflowframe}
-% \end{macrocode}
-%\end{macro}
-% Set the external command for use only in the preamble, an
-% make the output routine use the internal command
-% \begin{macrocode}
-\@onlypreamble{\newflowframe}
-% \end{macrocode}
-%\begin{macro}{\@n@wflowframe}
-% \begin{macrocode}
-\newcommand{\@n@wflowframe}{%
-\global\advance\c@maxflow by 1\relax
-\expandafter\global\expandafter
-\newif\csname ifcolumnframe\romannumeral\c@maxflow\endcsname
-\@ifstar\@snewflowframe\@newflowframe
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@snewflowframe}
-% Starred version sets boolean flag to indicate a border
-% \begin{macrocode}
-\newcommand{\@snewflowframe}{%
-\expandafter\global\expandafter
-\let\csname ifcolumnframe\romannumeral\c@maxflow\endcsname\iftrue
-\@@newflowframe}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@newflowframe}
-% 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
-\@@newflowframe}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@newflowframe}
-% Now get on with initialising the \gls{flow}. By default, it
-% will apply the \gls{flow} to all pages, the optional argument
-% 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}
-\ifnum\c@thisframe=0\relax
-\ifthenelse{\equal{#1}{all}\TE@or\equal{#1}{odd}}{%
-\c@thisframe=\c@maxflow
-\global\setlength{\hsize}{#2}%
-\global\usedframebreaktrue
-}{\ifthenelse{\equal{#1}{even}\TE@or\equal{#1}{none}}{}{%
-\def\ff@pages{#1}%
-\@for\@ff@pp:=\ff@pages\do{%
-\def\@ff@numstart{0}\def\@ff@numend{0}%
-\@ff@getrange{\@ff@pp}%
-\ifnum\@ff@numstart=0\def\@ff@numstart{1}\fi
-\ifnum\@ff@numstart=1\relax
-\c@thisframe=\c@maxflow
-\global\setlength{\hsize}{#2}%
-\global\usedframebreaktrue
-\fi
-}}}%
-\fi
-\@ifnextchar[{\@s@tflowframeid{\c@maxflow}}{%
-\@s@tflowframeid{\c@maxflow}[\number\c@maxflow]}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@s@tflowframeid}
-% If square brackets occur after "\newflowframe", take
-% the contents to be the label, otherwise the label will be
-% the \gls{flow} number.
-% \begin{macrocode}
-\def\@s@tflowframeid#1[#2]{%
-\edef\ff@label{#2}%
-\@ff@checkuniqueidl{#1}{\ff@label}%
-\expandafter
-\xdef\csname @col@id@\romannumeral#1\endcsname{\ff@label}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@checkuniqueidl}
-% Check \gls{idl} "#2" for \gls{flow} "#1" is unique
-% \begin{macrocode}
-\newcommand*{\@ff@checkuniqueidl}[2]{%
-{\@colN=0\relax
-\whiledo{\@colN<\c@maxflow}{%
-\advance\@colN by 1\relax
-\ifnum\@colN=#1\relax
-\else
-\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}}{}%
-\fi
-}}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\getflowlabel}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{getflowlabel}\marg{idn}
-% Gets the \gls{idl} for the \gls{flow} identified by its
-% \gls{idn}.
-% \begin{macrocode}
-\newcommand*{\getflowlabel}[1]{%
-\csname @col@id@\romannumeral#1\endcsname}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\getflowid}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{getflowid}\marg{cmd}\marg{idl}
-% Gets the \gls{idn} for the \gls{flow} identified by its
-% \gls{idl} and stores in \meta{cmd} which must be a control
-% sequence.
-% \begin{macrocode}
-\newcommand*{\getflowid}[2]{%
-\@flowframeid{#2}\edef#1{\number\ff@id}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\@flowframeid}
-% Work out the \gls{flow} \gls{idn} from the label. This
-% iterates through the \glspl{flow}, so if you have a lot of
-% them it is quicker to identifiy them by their \gls{idn}
-% rather than their \gls{idl}.
-% The \gls{idn} stored in "\ff@id".
-% \begin{macrocode}
-\newcommand*{\@flowframeid}[1]{\@colN=0\relax
-\ff@id=0\relax
-\whiledo{\@colN<\c@maxflow}{\advance\@colN by 1\relax
-\ifthenelse{%
-\equal{#1}{\csname @col@id@\romannumeral\@colN\endcsname}}{%
-\ff@id=\@colN\relax
-% break out of loop
-\@colN=\c@maxflow}{}}%
-\ifnum\ff@id=0\relax
-\PackageError{flowfram}{Can't find flow frame id '#1'}{}\fi}
-% \end{macrocode}
-%\end{macro}
-% Set up the keys for use with "\setflowframe",
-% "\setstaticframe" and "\setdynamicframe".
-%
-% Frame width is stored in "\ff@width".
-% \begin{macrocode}
-\define@key{flowframe}{width}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'width' key}{}}{}%
-\def\ff@width{#1}}
-% \end{macrocode}
-% Frame height is stored in "\ff@height".
-% \begin{macrocode}
-\define@key{flowframe}{height}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'height' key}{}}{}%
-\def\ff@height{#1}}
-% \end{macrocode}
-% Frame $x$ co-ordinate (odd and even pages) is stored
-% in "\ff@x".
-% \begin{macrocode}
-\define@key{flowframe}{x}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'x' key}{}}{}%
-\def\ff@x{#1}}
-% \end{macrocode}
-% Frame $y$ co-ordinate (odd and even pages) is stored
-% in "\ff@y".
-% \begin{macrocode}
-\define@key{flowframe}{y}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'y' key}{}}{}%
-\def\ff@y{#1}}
-% \end{macrocode}
-% Frame $x$ co-ordinate (even pages only) is stored
-% in "\ff@evenx".
-% \begin{macrocode}
-\define@key{flowframe}{evenx}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'evenx' key}{}}{}%
-\def\ff@evenx{#1}}
-% \end{macrocode}
-% Frame $y$ co-ordinate (even pages only) is stored in
-% "\ff@eveny".
-% \begin{macrocode}
-\define@key{flowframe}{eveny}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'eveny' key}{}}{}%
-\def\ff@eveny{#1}}
-% \end{macrocode}
-% Frame $x$ co-ordinate (odd pages only if twoside implemented)
-% is stored in "\ff@oddx".
-% \begin{macrocode}
-\define@key{flowframe}{oddx}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'oddx' key}{}}{}%
-\def\ff@oddx{#1}}
-% \end{macrocode}
-% Frame $y$ co-ordinate (odd pages only if twoside implemented)
-% is stored in "\ff@oddy".
-% \begin{macrocode}
-\define@key{flowframe}{oddy}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'oddy' key}{}}{}%
-\def\ff@oddy{#1}}
-% \end{macrocode}
-% New \gls{idl} for \gls{frame} is stored in "\ff@label".
-% \begin{macrocode}
-\define@key{flowframe}{label}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'label' key}{}}{}%
-\def\ff@label{#1}}
-% \end{macrocode}
-% Frame border. If "none", define "\ff@frame" as "false",
-% otherwise define "\ff@frame" as "true". If "plain", define
-% "\ff@frametype" as "fbox", otherwise define it to be
-% the specified type, which should be the name of a
-% \gls{fcmd} without the preceding backslash.
-% \begin{macrocode}
-\define@key{flowframe}{border}[plain]{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'border' key - use
-'none' for no border}{}}{}%
-\ifthenelse{\equal{#1}{none}}{%
-\def\ff@frame{false}}{\def\ff@frame{true}%
-\ifthenelse{\equal{#1}{plain}}{\def\ff@frametype{fbox}}{%
-\def\ff@frametype{#1}}}}
-% \end{macrocode}
-% Frame's border colour. (This may not work for non-standard
-% \glspl{fcmd}.)
-% \begin{macrocode}
-\define@key{flowframe}{bordercolor}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'bordercolor' key}{}}{}%
-\def\ff@col{#1}}
-% \end{macrocode}
-% Frame's text colour.
-% \begin{macrocode}
-\define@key{flowframe}{textcolor}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'textcolor' key}{}}{}%
-\def\ff@txtcol{#1}}
-% \end{macrocode}
-% The background colour of the \gls{frame}. Note this only covers
-% the region of the \gls{bbox}, not any extra space between
-% the \gls{bbox} and the border. If you want the background
-% colour to go right up to the border, you will need to
-% define your own customised border.
-% \begin{macrocode}
-\define@key{flowframe}{backcolor}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'backcolor' key}{}}{}%
-\def\ff@backcol{#1}}
-% \end{macrocode}
-% \Gls{pglist} for which the \gls{frame} should appear.
-% \begin{macrocode}
-\define@key{flowframe}{pages}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'pages' key}{}}{}%
-\def\ff@pages{#1}}
-% \end{macrocode}
-% The border takes up extra space, which needs to be
-% adjusted. This can be done for standard border types,
-% but non-standard borders may require some help.
-% \begin{macrocode}
-\define@key{flowframe}{offset}{\def\ff@offset{#1}%
-\ifthenelse{\equal{#1}{}}{\PackageError{flowframe}{%
-Invalid value for key 'offset'}{%
-'offset' can either be 'compute' (to compute it according
-to certain pre-defined rules) or a length}}{}}
-% \end{macrocode}
-% Angle to rotate \gls{flow}:
-% \begin{macrocode}
-\define@key{flowframe}{angle}{\def\ff@angle{#1}%
-}
-% \end{macrocode}
-% This key is only for \glspl{flow}:
-% \begin{macrocode}
-\define@key{flowframe}{margin}{%
-\ifthenelse{\equal{#1}{left} \or \equal{#1}{right}
-\or \equal{#1}{inner} \or \equal{#1}{outer}}{%
-\def\ff@margin{#1}}{\PackageError{flowfram}{invalid value of
-'margin' key}{Key 'margin' can only take the values
-'left' or 'right'}}}
-% \end{macrocode}
-% This key is only for \glspl{static}:
-% \begin{macrocode}
-\define@key{flowframe}{clear}[true]{%
-\ifthenelse{\equal{#1}{true}\or\equal{#1}{false}}{%
-\def\ff@clear{#1}}{\PackageError{flowfram}{Key 'clear' is
-boolean}{You can only specify the values 'true' or 'false'}}}
-% \end{macrocode}
-% This key is only for \glspl{dynamic}:
-% \begin{macrocode}
-\define@key{flowframe}{style}{\ifthenelse{\equal{#1}{}}{%
-\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 \glspl{static} and \glspl{dynamic}.
-% \begin{macrocode}
-\define@key{flowframe}{shape}{\def\ff@shape{#1}%
-}
-% \end{macrocode}
-% This key is only for \glspl{static} and \glspl{dynamic}.
-% \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}
-%\begin{macro}{\setallflowframes}
-% Provide a command to change the settings for all flow
-% frames. This just iterates through all the \glspl{flow},
-% and sets each one in turn.
-% \begin{macrocode}
-\newcommand*{\setallflowframes}[1]{%
-\@colN=0\whiledo{\@colN<\c@maxflow}{\advance\@colN by 1\relax
-\@@setflowframe{\@colN}{#1}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\setflowframe}
-% Define "\setflowframe" command. Check to see
-% whether or not the starred version is being used.
-% \begin{macrocode}
-\newcommand*{\setflowframe}{\@ifstar\@ssetflowframe\@setflowframe}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ssetflowframe}
-% This is the starred version. It finds the \gls{idn} for
-% each label in the comma-separated list (first argument),
-% and applies the setting for that numbered \gls{flow}.
-% \begin{macrocode}
-\newcommand{\@ssetflowframe}[2]{%
-\@for\@ff@id:=#1\do{%
-\@flowframeid{\@ff@id}%
-\@@setflowframe{\ff@id}{#2}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@setflowframe}
-% This is the unstarred version. It iterates through
-% each \gls{idn} in the comma-separated list passed
-% as the first argument, but it also checks for number
-% ranges, and sets the values for that \gls{flow}. Ensures
-% that number ranges do not lie out of bounds.
-% \begin{macrocode}
-\newcommand*{\@setflowframe}[2]{%
-\ifthenelse{\equal{#1}{all}}{%
-\setallflowframes{#2}}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxflow\TE@or\@colN=\c@maxflow}{%
-\@@setflowframe{\@colN}{#2}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxflow\relax
- \def\@ff@numend{\c@maxflow}%
-\fi
-\@colN=\@ff@numstart\relax
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@setflowframe{\@colN}{#2}%
-\advance\@colN by 1\relax
-}}}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@setflowframe}
-% This is the command that actually sets the values for
-% the \gls{flow} whose \gls{idn} is specified by the first
-% parameter.
-%\changes{1.11}{2008/06/27}{removed unwanted spaces}
-% \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@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@shape{\empty}%
-\setkeys{flowframe}{#2}%
-\ifthenelse{\equal{\ff@frame}{}}{}{%
-\setboolean{columnframe\romannumeral#1}{\ff@frame}}%
-\ifthenelse{\equal{\ff@width}{}}{}{%
-\expandafter\setlength\csname colwidth\romannumeral#1\endcsname
-{\ff@width}}%
-\ifthenelse{\equal{\ff@height}{}}{}{%
-\expandafter\setlength\csname colheight\romannumeral#1\endcsname
-{\ff@height}}%
-\ifthenelse{\equal{\ff@x}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@posx\endcsname
-{\ff@x}%
-\expandafter\setlength\csname col@\romannumeral#1@evenx\endcsname
-{\ff@x}}
-\ifthenelse{\equal{\ff@y}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@posy\endcsname
-{\ff@y}%
-\expandafter\setlength\csname col@\romannumeral#1@eveny\endcsname
-{\ff@y}}%
-\ifthenelse{\equal{\ff@evenx}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@evenx\endcsname
-{\ff@evenx}}%
-\ifthenelse{\equal{\ff@eveny}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@eveny\endcsname
-{\ff@eveny}}%
-\ifthenelse{\equal{\ff@oddx}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@posx\endcsname
-{\ff@oddx}}%
-\ifthenelse{\equal{\ff@oddy}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@posy\endcsname
-{\ff@oddy}}%
-\ifthenelse{\equal{\ff@label}{}}{}{%
-\@s@tflowframeid{#1}[\ff@label]}%
-\ifthenelse{\equal{\ff@frametype}{}}{}{%
-\expandafter\edef\csname @ff@frametype@\romannumeral#1\endcsname
-{\ff@frametype}}%
-\ifthenelse{\equal{\ff@col}{}}{}{%
-\expandafter\@setframecol\ff@col\end{#1}{col}{ff}}%
-\ifthenelse{\equal{\ff@txtcol}{}}{}{%
-\expandafter\@setframecol\ff@txtcol\end{#1}{txtcol}{ff}}%
-\ifthenelse{\equal{\ff@backcol}{}}{}{%
-\expandafter\@setframecol\ff@backcol\end{#1}{backcol}{ff}}%
-\ifthenelse{\equal{\ff@margin}{}}{}{%
-\expandafter\xdef\csname @ff@margin@\romannumeral#1\endcsname
-{\ff@margin}}%
-\ifthenelse{\equal{\ff@pages}{}}{}{%
-\expandafter\xdef\csname @ff@pages@\romannumeral#1\endcsname
-{\ff@pages}}%
-\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}{}}%
-\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}
-%\end{macro}
-%\begin{macro}{\ffswapoddeven}
-% Swap odd and even offsets for a given \gls{flow}. Do the main stuff for
-% a given \gls{flow} \gls{idn}.
-% \begin{macrocode}
-\newcommand*{\@@flowframeswapcoords}[1]{%
-\setlength{\@ff@tmp@x}%
-{\csname col@\romannumeral#1@evenx\endcsname}
-\expandafter\setlength\csname col@\romannumeral#1@evenx\endcsname
-{\csname col@\romannumeral#1@posx\endcsname}%
-\expandafter\setlength\csname col@\romannumeral#1@posx\endcsname
-{\@ff@tmp@x}%
-\setlength{\@ff@tmp@y}%
-{\csname col@\romannumeral#1@eveny\endcsname}
-\expandafter\setlength\csname col@\romannumeral#1@eveny\endcsname
-{\csname col@\romannumeral#1@posy\endcsname}%
-\expandafter\setlength\csname col@\romannumeral#1@posy\endcsname
-{\@ff@tmp@y}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ffswapoddeven}
-% Allow user to specify \gls{flow} either by \gls{idn} or \gls{idl}:
-% \begin{macrocode}
-\newcommand*{\ffswapoddeven}{%
-\@ifstar\@sflowframeswapcoords\@flowframeswapcoords}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sflowframeswapcoords}
-% Starred form
-% \begin{macrocode}
-\newcommand*{\@sflowframeswapcoords}[1]{%
-\@for\@ff@id:=#1\do{%
-\@flowframeid{\@ff@id}%
-\@@flowframeswapcoords{\ff@id}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@flowframeswapcoords}
-% Unstarred form:
-% \begin{macrocode}
-\newcommand*{\@flowframeswapcoords}[1]{%
-\ifthenelse{\equal{#1}{all}}{%
-\ff@id=0\relax
-\whiledo{\ff@id<\c@maxflow}{\advance\ff@id by 1\relax
-\@@flowframeswapcoords{\ff@id}}%
-}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxflow\TE@or\@colN=\c@maxflow}{%
-\@@flowframeswapcoords{\@colN}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxflow
- \def\@ff@numend{\c@maxflow}%
-\fi
-\@colN=\@ff@numstart
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@flowframeswapcoords{\@colN}%
-\advance\@colN by 1\relax
-}}}}}
-% \end{macrocode}
-%\end{macro}
-%
-% Allow user to get the dimensions of \gls{flow} (useful for
-% \glspl{flow} created using "\Ncolumns" etc.) Only the \gls{idn} can
-% be used for these commands.
-%\begin{macro}{\flowframex}
-% \begin{macrocode}
-\newcommand*{\flowframex}[1]{%
-\csname col@\romannumeral#1@posx\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\flowframey}
-% \begin{macrocode}
-\newcommand*{\flowframey}[1]{%
-\csname col@\romannumeral#1@posy\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\flowframeevenx}
-% \begin{macrocode}
-\newcommand*{\flowframeevenx}[1]{%
-\csname col@\romannumeral#1@evenx\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\flowframeeveny}
-% \begin{macrocode}
-\newcommand*{\flowframeeveny}[1]{%
-\csname col@\romannumeral#1@eveny\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\flowframewidth}
-% \begin{macrocode}
-\newcommand{\flowframewidth}[1]{%
-\csname colwidth\romannumeral#1\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\flowframeheight}
-% \begin{macrocode}
-\newcommand*{\flowframeheight}[1]{%
-\csname colheight\romannumeral#1\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@setframecol}
-% Set the colour of the frame, this is a little tricky
-% because the model may need to be specified in square
-% brackets. First check to see if a colour model has been
-% specified
-% \begin{macrocode}
-\def\@setframecol{\@ifnextchar[\@@setframecol\@@setfr@mecol}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@setframecol}
-% A colour model has been specified.
-% \begin{macrocode}
-\def\@@setframecol[#1]#2\end#3#4#5{%
-\expandafter\edef\csname @#5@#4@\romannumeral#3\endcsname{%
-[#1]{#2}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@setfr@mecol}
-% A colour model has not been specified.
-% \begin{macrocode}
-\def\@@setfr@mecol#1\end#2#3#4{%
-\expandafter\edef\csname @#4@#3@\romannumeral#2\endcsname{{#1}}}
-% \end{macrocode}
-%\end{macro}
-%
-% \subsection{Static Frames}
-%\begin{macro}{\newstaticframe}
-% Now deal with setting up the \glspl{static}. This is
-% similar to the \glspl{flow}, except it has an
-% associated \LaTeX\ savebox rather than a \TeX\ box.
-% Syntax:\newline
-% \cs{newstaticframe}\oarg{pages}\marg{width}\marg{height}\marg{x}\marg{y}\oarg{label}\par
-% As with "\newflowframe", the final optional argument is
-% dealt with at the end.
-% \begin{macrocode}
-\newcommand*{\newstaticframe}{\@n@wstaticframe}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@n@wstaticframe}
-% \begin{macrocode}
-\newcommand*{\@n@wstaticframe}{%
-\global\advance\c@maxstatic by 1\relax
-\newboolean{staticframe\romannumeral\c@maxstatic}%
-\@ifstar\@snewstaticframe\@newstaticframe
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@snewstaticframe}
-% Starred version (has a border):
-% \begin{macrocode}
-\newcommand{\@snewstaticframe}{%
-\setboolean{staticframe\romannumeral\c@maxstatic}{true}%
-\@@newstaticframe}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@newstaticframe}
-% Unstarred version (no border):
-% \begin{macrocode}
-\newcommand{\@newstaticframe}{%
-\setboolean{staticframe\romannumeral\c@maxstatic}{false}%
-\@@newstaticframe}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@newstaticframe}
-% Now set up the \gls{static}:
-% \begin{macrocode}
-\newcommand*{\@@newstaticframe}[5][all]{%
-\expandafter
-\newbox\csname @staticframe@\romannumeral\c@maxstatic\endcsname
-\expandafter
-\newlength\csname @sf@\romannumeral\c@maxstatic @posx\endcsname
-\expandafter
-\newlength\csname @sf@\romannumeral\c@maxstatic @posy\endcsname
-\expandafter\setlength
-\csname @sf@\romannumeral\c@maxstatic @posx\endcsname{#4}%
-\expandafter\setlength
-\csname @sf@\romannumeral\c@maxstatic @posy\endcsname{#5}%
-\expandafter\newlength
-\csname @sf@\romannumeral\c@maxstatic @evenx\endcsname
-\expandafter\newlength
-\csname @sf@\romannumeral\c@maxstatic @eveny\endcsname
-\expandafter\setlength
-\csname @sf@\romannumeral\c@maxstatic @evenx\endcsname{#4}%
-\expandafter\setlength
-\csname @sf@\romannumeral\c@maxstatic @eveny\endcsname{#5}%
-{\@ff@tmp@x=#2\relax
-\@ff@tmp@y=#3\relax
-\expandafter
-\xdef\csname @sf@dim@\romannumeral\c@maxstatic\endcsname{%
-[c][\the\@ff@tmp@y][c]{\the\@ff@tmp@x}}}%
-\expandafter
-\def\csname @sf@col@\romannumeral\c@maxstatic\endcsname{%
-\flowframecol}%
-\expandafter
-\def\csname @sf@txtcol@\romannumeral\c@maxstatic\endcsname{%
-\flowframetextcol}%
-\expandafter
-\def\csname @sf@backcol@\romannumeral\c@maxstatic\endcsname{%
-{none}}%
-\expandafter
-\xdef\csname @sf@pages@\romannumeral\c@maxstatic\endcsname{#1}%
-\expandafter
-\gdef\csname @sf@offset@\romannumeral\c@maxstatic\endcsname{%
-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}%
-\setboolean{@sf@clear@\romannumeral\c@maxstatic}{false}
-\@ifnextchar[{\@s@tstaticframeid{\c@maxstatic}}%
-{\@s@tstaticframeid{\c@maxstatic}[\number\c@maxstatic]}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@s@tstaticframeid}
-% Set the label for the \gls{static}:
-% \begin{macrocode}
-\def\@s@tstaticframeid#1[#2]{%
-\edef\ff@label{#2}%
-\@sf@checkuniqueidl{#1}{\ff@label}%
-\expandafter
-\xdef\csname @sf@id@\romannumeral#1\endcsname{\ff@label}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sf@checkuniqueidl}
-% Check \gls{idl} "#2" for \gls{static} "#1" is unique
-% \begin{macrocode}
-\newcommand*{\@sf@checkuniqueidl}[2]{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxstatic}{%
-\advance\@colN by 1\relax
-\ifnum\@colN=#1\relax
-\else
-\ifthenelse{%
-\equal{#2}{\csname @sf@id@\romannumeral\@colN\endcsname}}{%
-\PackageError{flowfram}{Static frame IDL '#2' already defined}{%
-You can't assign this label, as it is already defined
-for static frame \number\@colN}}{}%
-\fi
-}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\getstaticlabel}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{getstaticlabel}\marg{idn}
-% Gets the \gls{idl} for the \gls{static} identified by its
-% \gls{idn}.
-% \begin{macrocode}
-\newcommand*{\getstaticlabel}[1]{%
-\csname @sf@id@\romannumeral#1\endcsname}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\getstaticid}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{getstaticid}\marg{cmd}\marg{idl}
-% Gets the \gls{idn} for the \gls{static} identified by its
-% \gls{idl} and stores in \meta{cmd} which must be a control
-% sequence.
-% \begin{macrocode}
-\newcommand*{\getstaticid}[2]{%
-\@staticframeid{#2}\edef#1{\number\ff@id}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\@staticframeid}
-% Work out the \gls{idn} of the \gls{static} with the
-% given label. This iterates through each \gls{static},
-% so if there are a lot of \glspl{static}, it may take a while.
-% The \gls{idn} stored in "\ff@id".
-% \begin{macrocode}
-\newcommand*{\@staticframeid}[1]{\@colN=0\relax
-\ff@id=0\relax
-\whiledo{\@colN<\c@maxstatic}{\advance\@colN by 1\relax
-\ifthenelse{%
-\equal{#1}{\csname @sf@id@\romannumeral\@colN\endcsname}}{%
-\ff@id=\@colN\relax
-% break out of loop
-\@colN=\c@maxstatic}{}}%
-\ifnum\ff@id=0\PackageError{flowfram}{Can't find static frame
-id '#1'}{}\fi}
-% \end{macrocode}
-%\end{macro}
-%
-% Make it easier to get the x and y values for static
-% frames. (Width and height stored differently.)
-%\begin{macro}{\staticframex}
-% \begin{macrocode}
-\newcommand*{\staticframex}[1]{%
-\csname @sf@\romannumeral#1@posx\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\staticframey}
-% \begin{macrocode}
-\newcommand*{\staticframey}[1]{%
-\csname @sf@\romannumeral#1@posy\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\staticframeevenx}
-% \begin{macrocode}
-\newcommand*{\staticframeevenx}[1]{%
-\csname @sf@\romannumeral#1@evenx\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\staticframeeveny}
-% \begin{macrocode}
-\newcommand*{\staticframeeveny}[1]{%
-\csname @sf@\romannumeral#1@eveny\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\setallstaticframes}
-% Modify the settings for all the \glspl{static}:
-% \begin{macrocode}
-\newcommand*{\setallstaticframes}[1]{%
-\@colN=0\whiledo{\@colN<\c@maxstatic}{\advance\@colN by 1\relax
-\@@setstaticframe{\@colN}{#1}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\setstaticframe}
-% Modify the settings for the specified \glspl{static}:
-% \begin{macrocode}
-\newcommand*{\setstaticframe}{%
-\@ifstar\@ssetstaticframe\@setstaticframe}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ssetstaticframe}
-% Starred version: Iterate through the comma-separated
-% list of labels.
-% \begin{macrocode}
-\newcommand*{\@ssetstaticframe}[2]{%
-\@for\@ff@id:=#1\do{%
-\@staticframeid{\@ff@id}%
-\@@setstaticframe{\ff@id}{#2}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@setstaticframe}
-% Unstarred version. Iterate through the comma-separated
-% list of \glspl{idn}, and check for number ranges.
-% Ensures that number ranges do not lie out of bounds.
-% \begin{macrocode}
-\newcommand*{\@setstaticframe}[2]{%
-\ifthenelse{\equal{#1}{all}}{%
-\setallstaticframes{#2}}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxstatic\TE@or\@colN=\c@maxstatic}{%
-\@@setstaticframe{\@colN}{#2}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxstatic\relax
- \def\@ff@numend{\c@maxstatic}%
-\fi
-\@colN=\@ff@numstart\relax
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@setstaticframe{\@colN}{#2}%
-\advance\@colN by 1\relax
-}}}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@setstaticframe}
-% Modify the settings for the \gls{static} whose \gls{idn}\
-% is given by the first argument.
-% \begin{macrocode}
-\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@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@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{}%
-\setkeys{flowframe}{#2}%
-\ifthenelse{\equal{\ff@frame}{}}{}{%
-\setboolean{staticframe\romannumeral#1}{\ff@frame}}%
-\ifthenelse{\equal{\ff@x}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@posx\endcsname
-{\ff@x}%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@evenx\endcsname
-{\ff@x}}%
-\ifthenelse{\equal{\ff@y}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@posy\endcsname
-{\ff@y}%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@eveny\endcsname
-{\ff@y}}%
-\ifthenelse{\equal{\ff@evenx}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@evenx\endcsname
-{\ff@evenx}}%
-\ifthenelse{\equal{\ff@eveny}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@eveny\endcsname
-{\ff@eveny}}%
-\ifthenelse{\equal{\ff@oddx}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@posx\endcsname
-{\ff@oddx}}%
-\ifthenelse{\equal{\ff@oddy}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@posy\endcsname
-{\ff@oddy}}%
-\expandafter
-\xdef\csname @sf@dim@\romannumeral#1\endcsname{%
-[c][\ff@height][\ff@valign]{\ff@width}}%
-\ifthenelse{\equal{\ff@frametype}{}}{}{%
-\expandafter
-\xdef\csname @sf@frametype@\romannumeral#1\endcsname{%
-\ff@frametype}}%
-\ifthenelse{\equal{\ff@label}{}}{}{%
-\@s@tstaticframeid{#1}[\ff@label]}
-\ifthenelse{\equal{\ff@col}{}}{}{%
-\expandafter\@setframecol\ff@col\end{#1}{col}{sf}}%
-\ifthenelse{\equal{\ff@txtcol}{}}{}{%
-\expandafter\@setframecol\ff@txtcol\end{#1}{txtcol}{sf}}%
-\ifthenelse{\equal{\ff@backcol}{}}{}{%
-\expandafter\@setframecol\ff@backcol\end{#1}{backcol}{sf}}%
-\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}}%
-\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}}%
-\ifthenelse{\equal{\ff@clear}{}}{}{%
-\setboolean{@sf@clear@\romannumeral#1}{\ff@clear}}%
-\ifthenelse{\equal{\ff@margin}{}}{}{%
-\PackageError{flowfram}{Key 'margin' not available for
-static frames}{Static frames don't have marginal notes}}%
-\ifthenelse{\equal{\ff@style}{}}{}{%
-\PackageError{flowfram}{Key 'style' not available for
-static frames}{}}%
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\simpar}
-% Simulate paragraph break inside "\shapepar"
-% \begin{macrocode}
- %\newcommand*{\simpar}{\hfil\vadjust{\vskip\parskip}\break\indent}
-\newcommand*{\simpar}{\hfill\\\indent\mbox{}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ffpshpar}
-% Provide means to allow parshape to be carried over a paragraph
-% break.
-% \begin{macrocode}
-\let\FLForgpar\par
-\newcommand{\ffpshpar}{\edef\flf@next{\hangafter=\the\hangafter
-\hangindent=\the\hangindent}\FLForgpar\flf@next
-\edef\flf@next{\prevgraf=\the\prevgraf}\@ff@parshape\indent\mbox{}\flf@next}
-% \end{macrocode}
-%\end{macro}
-%
-% Provide a means to have section headings within "\parshape".
-%\begin{macro}{\@ff@parshape}
-% \begin{macrocode}
-\def\@ff@parshape{\parshape=0}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@sectionhead}
-% \begin{macrocode}
-\newcommand*{\@ff@sectionhead}[1]{%
-\def\ff@sechead{#1}%
-\ffpshpar
-\@ifstar{\@s@ff@heading}{\@dblarg\@ff@heading}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@s@ff@heading}
-% \begin{macrocode}
-\def\@s@ff@heading#1{%
-\@ifundefined{@ff@old\ff@sechead}{\PackageError{flowfram}{Unknown
-heading command '\ff@sechead'}{}}{%
-\begingroup
-\edef\flf@next{\hangafter=\the\hangafter
-\hangindent=\the\hangindent}\FLForgpar\flf@next
-\let\par=\FLForgpar
-\edef\flf@next{\prevgraf=\the\prevgraf}%
-\csname @ff@old\ff@sechead\endcsname*{\@ff@parshape\flf@next
-#1}%
-\xdef\flf@next{\@ff@parshape
-\prevgraf=\the\prevgraf}%
-\endgroup
-}%
-\mbox{}\flf@next\let\flf@next\undefined}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@heading}
-% \begin{macrocode}
-\def\@ff@heading[#1]#2{%
-\@ifundefined{@ff@old\ff@sechead}{\PackageError{flowfram}{Unknown
-heading command '\ff@sechead'}{}}{%
-\begingroup
-\edef\flf@next{\hangafter=\the\hangafter
-\hangindent=\the\hangindent}\FLForgpar\flf@next
-\let\par=\FLForgpar
-\edef\flf@next{\prevgraf=\the\prevgraf}%
-\csname @ff@old\ff@sechead\endcsname[#1]{\@ff@parshape\flf@next
-#2}%
-\xdef\flf@next{\@ff@parshape
-\prevgraf=\the\prevgraf}%
-\endgroup}%
-\mbox{}\flf@next\let\flf@next\undefined}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@setsecthead}
-% 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}
-%\end{macro}
-%\begin{macro}{\@ff@getshape}
-% 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}
-%\end{macro}
-%\begin{macro}{\@ff@disablesec}
-% 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}
-%\end{macro}
-%
-%\begin{environment}{staticcontents}
-% Set the contents of the \gls{static} given by its \gls{idn}.
-% Syntax: "\begin{staticcontents}"\marg{idn}.
-% \begin{macrocode}
-\newbox\staticframe
-\newenvironment{staticcontents}[1]{%
-\let\continueonframe=\@staticcontinueonframe
-\@beginstaticcontents{#1}%
-}{%
-\@endstaticcontents
-\ignorespaces}
-% \end{macrocode}
-%\end{environment}
-%\begin{environment}{staticcontents*}
-% Set the contents of the \gls{static} given by its \gls{idl}.
-% Syntax: "\begin{staticcontents*}"\marg{label}.
-% \begin{macrocode}
-\newenvironment{staticcontents*}[1]{\@staticframeid{#1}%
-\let\continueonframe=\@staticscontinueonframe
-\@beginstaticcontents{\ff@id}%
-}{%
-\@endstaticcontents
-\ignorespaces}
-% \end{macrocode}
-%\end{environment}
-%
-% Begin staticcontents stuff.
-% \begin{macrocode}
-\newcommand{\@beginstaticcontents}[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
-\noexpand\begingroup
-\noexpand\let\noexpand\FLForgpar=\noexpand\par
-}%
-\or
-% \parshape
-\edef\@sf@mpg{%
-\noexpand
-\begin{minipage}\csname @sf@dim@\romannumeral#1\endcsname
-\@ff@parshape
-\noexpand\begingroup
-\noexpand\let\noexpand\FLForgpar=\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\noindent
-\@sf@mpg
-\setlength\parindent\sdfparindent
-}
-% \end{macrocode}
-% End staticcontents stuff
-% \begin{macrocode}
-\newcommand*{\@endstaticcontents}{%
-\ifnum\ff@shape=2\par
-\else\FLForgpar\fi\endgroup\end{minipage}\end{lrbox}%
-\expandafter\global\expandafter\sbox\@sf@thisframe{%
-\usebox\staticframe}}
-% \end{macrocode}
-%
-%\begin{macro}{\setstaticcontents}
-% Provide a command version.
-% Syntax: \cs{setstaticcontents}\marg{idn}\marg{text}.
-% \begin{macrocode}
-\newcommand{\setstaticcontents}{%
-\@ifstar\@sstaticconts\@staticconts}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sstaticconts}
-% Starred version: \gls{static} identified by label.
-% \begin{macrocode}
-\newcommand{\@sstaticconts}[2]{\begin{staticcontents*}{#1}%
-#2\end{staticcontents*}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@staticconts}
-% Unstarred version: \gls{static} identified by \gls{idn}.
-% \begin{macrocode}
-\newcommand{\@staticconts}[2]{\begin{staticcontents}{#1}%
-#2\end{staticcontents}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\@@staticframeswapcoords}
-% Swap odd and even offsets for a given \gls{static}. Do the main stuff for
-% a given \gls{static} \gls{idn}.
-% \begin{macrocode}
-\newcommand*{\@@staticframeswapcoords}[1]{%
-\setlength{\@ff@tmp@x}%
-{\csname @sf@\romannumeral#1@evenx\endcsname}
-\expandafter\setlength\csname @sf@\romannumeral#1@evenx\endcsname
-{\csname @sf@\romannumeral#1@posx\endcsname}%
-\expandafter\setlength\csname @sf@\romannumeral#1@posx\endcsname
-{\@ff@tmp@x}%
-\setlength{\@ff@tmp@y}%
-{\csname @sf@\romannumeral#1@eveny\endcsname}
-\expandafter\setlength\csname @sf@\romannumeral#1@eveny\endcsname
-{\csname @sf@\romannumeral#1@posy\endcsname}%
-\expandafter\setlength\csname @sf@\romannumeral#1@posy\endcsname
-{\@ff@tmp@y}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\sfswapoddeven}
-% Allow user to specify \gls{flow} either by \gls{idn} or \gls{idl}:
-% \begin{macrocode}
-\newcommand*{\sfswapoddeven}{%
-\@ifstar\@sstaticframeswapcoords\@staticframeswapcoords}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sstaticframeswapcoords}
-% Starred form
-% \begin{macrocode}
-\newcommand*{\@sstaticframeswapcoords}[1]{%
-\@for\@ff@id:=#1\do{%
-\@staticframeid{\@ff@id}%
-\@@staticframeswapcoords{\ff@id}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@staticframeswapcoords}
-% Unstarred form:
-% \begin{macrocode}
-\newcommand*{\@staticframeswapcoords}[1]{%
-\ifthenelse{\equal{#1}{all}}{%
-\ff@id=0\relax
-\whiledo{\ff@id<\c@maxflow}{\advance\ff@id by 1\relax
-\@@staticframeswapcoords{\ff@id}}%
-}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxflow\TE@or\@colN=\c@maxflow}{%
-\@@staticframeswapcoords{\@colN}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxflow
- \def\@ff@numend{\c@maxflow}%
-\fi
-\@colN=\@ff@numstart
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@staticframeswapcoords{\@colN}%
-\advance\@colN by 1\relax
-}}}}}
-% \end{macrocode}
-%\end{macro}
-%
-% \subsection{Dynamic Frames}
-% Now deal with the \glspl{dynamic}. These are very similar
-% to the \glspl{static}, but instead of having a savebox,
-% the contents of the \gls{dynamic} are stored in a macro.
-%\begin{macro}{\newdynamicframe}
-% Syntax:\newline
-% \cs{newdynamicframe}\oarg{pages}\marg{width}\marg{height}\marg{x}\marg{y}\oarg{label}
-% \begin{macrocode}
-\newcommand*{\newdynamicframe}{%
-\@n@wdynamicframe}
-\newcommand*{\@n@wdynamicframe}{%
-\global\advance\c@maxdynamic by 1\relax
-\newboolean{dynamicframe\romannumeral\c@maxdynamic}
-\@ifstar\@snewdynamicframe\@newdynamicframe
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@snewdynamicframe}
-% Starred version: has a border.
-% \begin{macrocode}
-\newcommand*{\@snewdynamicframe}{%
-\setboolean{dynamicframe\romannumeral\c@maxdynamic}{true}%
-\@@newdynamicframe}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@newdynamicframe}
-% Unstarred version: no border.
-% \begin{macrocode}
-\newcommand*{\@newdynamicframe}{%
-\setboolean{dynamicframe\romannumeral\c@maxdynamic}{false}%
-\@@newdynamicframe}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@newdynamicframe}
-% Create new \gls{dynamic}:
-% \begin{macrocode}
-\newcommand*{\@@newdynamicframe}[5][all]{%
-\expandafter
-\gdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{}%
-\expandafter
-\newlength\csname @df@\romannumeral\c@maxdynamic @posx\endcsname
-\expandafter
-\newlength\csname @df@\romannumeral\c@maxdynamic @posy\endcsname
-\expandafter\setlength
-\csname @df@\romannumeral\c@maxdynamic @posx\endcsname{#4}%
-\expandafter\setlength
-\csname @df@\romannumeral\c@maxdynamic @posy\endcsname{#5}%
-\expandafter\newlength
-\csname @df@\romannumeral\c@maxdynamic @evenx\endcsname
-\expandafter\newlength
-\csname @df@\romannumeral\c@maxdynamic @eveny\endcsname
-\expandafter\setlength
-\csname @df@\romannumeral\c@maxdynamic @evenx\endcsname{#4}%
-\expandafter\setlength
-\csname @df@\romannumeral\c@maxdynamic @eveny\endcsname{#5}%
-{\@ff@tmp@x=#2\relax
-\@ff@tmp@y=#3\relax
-\expandafter
-\xdef\csname @df@dim@\romannumeral\c@maxdynamic\endcsname{%
-[c][\the\@ff@tmp@y][t]{\the\@ff@tmp@x}}}%
-\expandafter
-\gdef\csname @df@col@\romannumeral\c@maxdynamic\endcsname{%
-\flowframecol}%
-\expandafter
-\gdef\csname @df@txtcol@\romannumeral\c@maxdynamic\endcsname{%
-\flowframetextcol}%
-\expandafter
-\gdef\csname @df@backcol@\romannumeral\c@maxdynamic\endcsname{%
-{none}}%
-\expandafter
-\gdef\csname @df@pages@\romannumeral\c@maxdynamic\endcsname{#1}%
-\expandafter
-\gdef\csname @df@frametype@\romannumeral\c@maxdynamic\endcsname{%
-fbox}%
-\expandafter
-\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}%
-\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}}%
-{\@s@tdynamicframeid{\c@maxdynamic}[\number\c@maxdynamic]}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@s@tdynamicframeid}
-% Set the label for the given \gls{dynamic}:
-% \begin{macrocode}
-\def\@s@tdynamicframeid#1[#2]{%
-\edef\ff@label{#2}%
-\@df@checkuniqueidl{#1}{\ff@label}%
-\expandafter
-\xdef\csname @df@id@\romannumeral#1\endcsname{\ff@label}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@df@checkuniqueidl}
-% Check \gls{idl} "#2" for \gls{static} "#1" is unique
-% \begin{macrocode}
-\newcommand*{\@df@checkuniqueidl}[2]{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxdynamic}{%
-\advance\@colN by 1\relax
-\ifnum\@colN=#1\relax
-\else
-\ifthenelse{\equal{#2}%
-{\csname @df@id@\romannumeral\@colN\endcsname}}{%
-\PackageError{flowfram}{Dynamic frame IDL '#2' already defined}{%
-You can't assign this label, as it is already defined
-for dynamic frame \number\@colN}}{}%
-\fi
-}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\getdynamiclabel}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{getdynamiclabel}\marg{idn}
-% Gets the \gls{idl} for the \gls{dynamic} identified by its
-% \gls{idn}.
-% \begin{macrocode}
-\newcommand*{\getdynamiclabel}[1]{%
-\csname @df@id@\romannumeral#1\endcsname}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\getdynamicid}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{getdynamicid}\marg{cmd}\marg{idl}
-% Gets the \gls{idn} for the \gls{dynamic} identified by its
-% \gls{idl} and stores in \meta{cmd} which must be a control
-% sequence.
-% \begin{macrocode}
-\newcommand*{\getdynamicid}[2]{%
-\@dynamicframeid{#2}\edef#1{\number\ff@id}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\@dynamicframeid}
-% Determine the \gls{idn} of the \gls{dynamic} from its label.
-% The \gls{idn} is stored in "\ff@id".
-% \begin{macrocode}
-\newcommand*{\@dynamicframeid}[1]{\@colN=0\relax
-\ff@id=0\relax
-\whiledo{\@colN<\c@maxdynamic}{\advance\@colN by 1\relax
-\ifthenelse{%
-\equal{#1}{\csname @df@id@\romannumeral\@colN\endcsname}}{%
-\ff@id=\@colN\relax
-% break out of loop
-\@colN=\c@maxdynamic}{}}%
-\ifnum\ff@id=0\PackageError{flowfram}{Can't find dynamic frame
-id '#1'}{}\fi}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\@getframeid}
-% \cs{@getframeid}\marg{type}\marg{idl}
-%
-% Gets the \gls{idl} for the frame of type \meta{type} whose \gls{idl}
-% is given by \meta{idl}. The \gls{idn} is stored in "\ff@id".
-% \begin{macrocode}
-\newcommand*{\@getframeid}[2]{%
-\@ifdefined{@#1frameid}{\csname @#1frameid\endcsname{#2}}{%
-\PackageError{flowfram}{Unknown frame type `#1'}{Frame types can
-be one of: flow, static or dynamic}}}
-% \end{macrocode}
-%\end{macro}
-%
-% Make it easier to get the x and y values for dynamic
-% frames. (Width and height stored differently.)
-%\begin{macro}{\dynamicframex}
-% \begin{macrocode}
-\newcommand*{\dynamicframex}[1]{%
-\csname @df@\romannumeral#1@posx\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\dynamicframey}
-% \begin{macrocode}
-\newcommand*{\dynamicframey}[1]{%
-\csname @df@\romannumeral#1@posy\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\dynamicframeevenx}
-% \begin{macrocode}
-\newcommand*{\dynamicframeevenx}[1]{%
-\csname @df@\romannumeral#1@evenx\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\dynamicframeeveny}
-% \begin{macrocode}
-\newcommand*{\dynamicframeeveny}[1]{%
-\csname @df@\romannumeral#1@eveny\endcsname}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\setalldynamicframes}
-% Change the settings for all the \glspl{dynamic}:
-% \begin{macrocode}
-\newcommand*{\setalldynamicframes}[1]{%
-\@colN=0\whiledo{\@colN<\c@maxdynamic}{\advance\@colN by 1\relax
-\@@setdynamicframe{\@colN}{#1}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\setdynamicframe}
-% Change the settings for specified \glspl{dynamic}:
-% \begin{macrocode}
-\newcommand*{\setdynamicframe}{%
-\@ifstar\@ssetdynamicframe\@setdynamicframe}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ssetdynamicframe}
-% Starred version: iterate through comma-separated list
-% of labels.
-% \begin{macrocode}
-\newcommand*{\@ssetdynamicframe}[2]{%
-\@for\@ff@id:=#1\do{%
-\@dynamicframeid{\@ff@id}%
-\@@setdynamicframe{\ff@id}{#2}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@setdynamicframe}
-% Unstarred version: iterate through comma-separated list
-% of ID numbers. Include provision for number ranges.
-% If necessary, modify number ranges to ensure they are valid.
-% \begin{macrocode}
-\newcommand*{\@setdynamicframe}[2]{%
-\ifthenelse{\equal{#1}{all}}{%
-\setalldynamicframes{#2}}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxdynamic\TE@or\@colN=\c@maxdynamic}{%
-\@@setdynamicframe{\@colN}{#2}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxdynamic\relax
- \def\@ff@numend{\c@maxdynamic}%
-\fi
-\@colN=\@ff@numstart\relax
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@setdynamicframe{\@colN}{#2}%
-\advance\@colN by 1\relax
-}}}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@setdynamicframe}
-% Change the setting for the \gls{dynamic} given by its \gls{idn}.
-%\changes{1.11}{2008/06/27}{removed unwanted space}
-%\changes{1.11}{2008/06/27}{fixed bug in clear key}
-% \begin{macrocode}
-\newcommand*{\@@setdynamicframe}[2]{%
-\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@shape{0}%
-\setkeys{flowframe}{#2}%
-\ifthenelse{\equal{\ff@frame}{}}{}{%
-\setboolean{dynamicframe\romannumeral#1}{\ff@frame}}%
-\ifthenelse{\equal{\ff@x}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@posx\endcsname{\ff@x}%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@evenx\endcsname{\ff@x}}%
-\ifthenelse{\equal{\ff@y}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@posy\endcsname{\ff@y}%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@eveny\endcsname{\ff@y}}%
-\ifthenelse{\equal{\ff@evenx}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@evenx\endcsname{\ff@evenx}}%
-\ifthenelse{\equal{\ff@eveny}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@eveny\endcsname{\ff@eveny}}%
-\ifthenelse{\equal{\ff@oddx}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@posx\endcsname{\ff@oddx}}%
-\ifthenelse{\equal{\ff@oddy}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@posy\endcsname{\ff@oddy}}%
-\expandafter\xdef\csname @df@dim@\romannumeral#1\endcsname{%
-[c][\ff@height][\ff@valign]{\ff@width}}%
-\ifthenelse{\equal{\ff@label}{}}{}{%
-\@s@tdynamicframeid{#1}[\ff@label]}%
-\ifthenelse{\equal{\ff@frametype}{}}{}{%
-\expandafter
-\xdef\csname @df@frametype@\romannumeral#1\endcsname{%
-\ff@frametype}}%
-\ifthenelse{\equal{\ff@col}{}}{}{%
-\expandafter\@setframecol\ff@col\end{#1}{col}{df}}%
-\ifthenelse{\equal{\ff@txtcol}{}}{}{%
-\expandafter\@setframecol\ff@txtcol\end{#1}{txtcol}{df}}%
-\ifthenelse{\equal{\ff@backcol}{}}{}{%
-\expandafter\@setframecol\ff@backcol\end{#1}{backcol}{df}}%
-\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}}%
-\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}}%
-\ifthenelse{\equal{\ff@style}{}}{}{%
-\@ifundefined{\ff@style}{\PackageError{flowfram}%
-{Unknown style '\ff@style'}{The command \expandafter
-\string\csname\ff@style\endcsname\space has not been defined}}{%
-\expandafter
-\xdef\csname @df@style@\romannumeral#1\endcsname{\ff@style}}}%
-\ifthenelse{\equal{\ff@clear}{}}{}{%
-\setboolean{@df@clear@\romannumeral#1}{\ff@clear}%
-}%
-\ifthenelse{\equal{\ff@margin}{}}{}{%
-\PackageError{flowfram}{Key 'margin' not available for dynamic
-frames}{dynamic frames don't have marginal notes}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@dynamicframeswapcoords}
-% Swap odd and even offsets for a given \gls{static}. Do the main stuff for
-% a given \gls{static} \gls{idn}.
-% \begin{macrocode}
-\newcommand*{\@@dynamicframeswapcoords}[1]{%
-\setlength{\@ff@tmp@x}%
-{\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}%
-\expandafter\setlength
-\csname @df@\romannumeral#1@eveny\endcsname
-{\csname @df@\romannumeral#1@posy\endcsname}%
-\expandafter\setlength\csname @df@\romannumeral#1@posy\endcsname
-{\@ff@tmp@y}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\dfswapoddeven}
-% Allow user to specify \gls{flow} either by \gls{idn} or \gls{idl}:
-% \begin{macrocode}
-\newcommand*{\dfswapoddeven}{%
-\@ifstar\@sdynamicframeswapcoords\@dynamicframeswapcoords}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sdynamicframeswapcoords}
-% Starred form
-% \begin{macrocode}
-\newcommand*{\@sdynamicframeswapcoords}[1]{%
-\@for\@ff@id:=#1\do{%
-\@dynamicframeid{\@ff@id}%
-\@@dynamicframeswapcoords{\ff@id}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@dynamicframeswapcoords}
-% Unstarred form:
-% \begin{macrocode}
-\newcommand*{\@dynamicframeswapcoords}[1]{%
-\ifthenelse{\equal{#1}{all}}{%
-\ff@id=0\relax
-\whiledo{\ff@id<\c@maxflow}{\advance\ff@id by 1\relax
-\@@dynamicframeswapcoords{\ff@id}}%
-}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxflow\TE@or\@colN=\c@maxflow}{%
-\@@dynamicframeswapcoords{\@colN}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxflow
- \def\@ff@numend{\c@maxflow}%
-\fi
-\@colN=\@ff@numstart
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@dynamicframeswapcoords{\@colN}%
-\advance\@colN by 1\relax
-}}}}}
-% \end{macrocode}
-%\end{macro}
-% Set the contents of a \gls{dynamic}.
-%
-%\begin{environment}{dynamiccontents}
-% Syntax: "\begin{dynamiccontents}"\marg{idn}
-%
-% The contents of the \env{dynamiccontents} environment needs
-% to be stored in the control sequence "\@dynamicframe@"\meta{rn}
-% (where \meta{rn} is the \meta{idn} as a roman numeral.)
-% \begin{macrocode}
-\newenvironment{dynamiccontents}[1]{%
-\def\@flf@{dynamiccontents}%
-\xdynamiccontents{#1}}{%
-\endxdynamiccontents
-}
-% \end{macrocode}
-%\end{environment}
-% Token to store contents of environment:
-% \begin{macrocode}
-\newtoks\@dynamictok
-% \end{macrocode}
-% Start of the environment (unstarred):
-% \begin{macrocode}
-\def\xdynamiccontents#1{%
-\def\@flf@idn{#1}%
-\@dynamictok{}\@flf@get@body
-}
-% \end{macrocode}
-% Get the body of the environment:
-% \begin{macrocode}
-\long\def\@flf@get@body#1\end{%
-\@flf@checkcontinued#1\continueonframe\@nil
-\ifdfcontinued
- \expandafter\flf@ta\expandafter{\@flf@tmpa}%
- \edef\@flf@tmp{\the\@dynamictok\the\flf@ta}%
- \@dynamictok\expandafter{\@flf@tmp}%
-\else
- \@dynamictok\expandafter{\the\@dynamictok#1}%
-\fi
-\@flf@find@end}
-% \end{macrocode}
-% Check if \cs{continueonframe} has been used.
-% \begin{macrocode}
-\newif\ifdfcontinued
-\long\def\@flf@checkcontinued#1\continueonframe#2\@nil{%
-\long\def\@flf@tmpa{#1}\long\def\@flf@tmpb{#2}%
-\ifx\@flf@tmpb\@lempty
- \dfcontinuedfalse
-\else
- \dfcontinuedtrue
- \flf@getcontargs#2\@ff@text\@ff@nextid\@ff@rest
-\fi
-}
-% \end{macrocode}
-% Long equivalent of \cs{@empty}:
-% \begin{macrocode}
-\long\def\@lempty{}
-% \end{macrocode}
-% Get the first optional argument and store in the forth argument
-% (which should be a control sequence). Get the second argument and
-% store in the fifth argument (which should be a control sequence).
-% Get the third argument and
-% store in the sixth argument (which should be a control sequence).
-% \begin{macrocode}
-\def\flf@getcontargs{%
-\@ifnextchar[{\@flf@getcontargs}{\@flf@getcontargs[]}}
-% \end{macrocode}
-% \begin{macrocode}
-\long\def\@flf@getcontargs[#1]#2#3\continueonframe#4#5#6{%
-\def#4{#1}\def#5{#2}\def#6{#3}%
-}
-% \end{macrocode}
-% Find the end of the environment:
-% \begin{macrocode}
-\def\@flf@find@end#1{%
-\def\@tempa{#1}%
-\global\let\flf@next=\relax
-\ifdfcontinued
- \@dynamictok\expandafter
- {\the\@dynamictok\ffcontinuedtextlayout}%
- \protected@edef\@tmpa{\the\@dynamictok{\@ff@text}}%
- \@dynamictok\expandafter{\@tmpa}%
- \toks@\expandafter{\@ff@rest}%
- \edef\flf@next{\noexpand\@flf@get@body\noexpand\end{#1}%
- \noexpand\begin{#1}{\@ff@nextid}\noexpand\par
- \noexpand\noindent\noexpand\ignorespaces
- \the\toks@\noexpand\end{#1}}%
-\else
- \ifx\@tempa\@flf@
- \let\flf@next=\@flf@endxdynamiccontents
- \else
- \@dynamictok\expandafter
- {\the\@dynamictok\end{#1}}%
- \let\flf@next=\@flf@get@body
- \fi
-\fi
-\flf@next
-}
-% \end{macrocode}
-% End of the environment:
-% \begin{macrocode}
-\let\endxdynamiccontents\relax
-\def\@flf@endxdynamiccontents{%
-\ifnum\@flf@idn>\c@maxdynamic
- \PackageError{flowfram}{Dynamic frame \number\@flf@idn\ does not exist}{%
- You have specified dynamic frame number \number\@flf@idn, but there are
- only \number\c@maxdynamic\space dynamic frames currently defined}%
-\else
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\@flf@idn\endcsname{%
- \the\@dynamictok}%
- \expandafter
-\fi
-\expandafter\end\expandafter{\@flf@}%
-}
-% \end{macrocode}
-%\begin{environment}{dynamiccontents*}
-% Starred version
-% \begin{macrocode}
-\newenvironment{dynamiccontents*}[1]{%
-\def\@flf@{dynamiccontents*}%
-\@dynamicframeid{#1}%
-\xdynamiccontents{\ff@id}}{%
-\enddynamiccontents
-}
-% \end{macrocode}
-%\end{environment}
-%
-%\begin{macro}{\setdynamiccontents}
-% \begin{macrocode}
-\newcommand{\setdynamiccontents}{%
-\@ifstar\@ssetdynamiccontents\@setdynamiccontents}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ssetdynamiccontents}
-% Starred version: identify \gls{dynamic} by its \gls{idl}:
-% \begin{macrocode}
-\newcommand{\@ssetdynamiccontents}[2]{%
-\@dynamicframeid{#1}\@setdynamiccontents{\ff@id}{#2}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@setdynamiccontents}
-% Unstarred version: identify \gls{dynamic} by its \gls{idn}:
-% \begin{macrocode}
-\newcommand{\@setdynamiccontents}[2]{%
-\ifnum#1>\c@maxdynamic
-\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
-\expandafter
-\gdef\csname @dynamicframe@\romannumeral#1\endcsname{#2}%
-\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\appenddynamiccontents}
-% Append information to \gls{dynamic}. First check to
-% see if starred or unstarred version is being used.
-% \begin{macrocode}
-\newcommand{\appenddynamiccontents}{%
-\@ifstar\@sappenddynamic\@appenddynamic}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sappenddynamic}
-% Starred version: find the \gls{idn} and pass it to
-% the unstarred version.
-% \begin{macrocode}
-\newcommand{\@sappenddynamic}[2]{%
-\@dynamicframeid{#1}\@appenddynamic{\ff@id}{#2}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@appenddynamic}
-% Unstarred version.
-% \begin{macrocode}
-\newcommand{\@appenddynamic}[2]{%
-\ifnum#1>\c@maxdynamic
- \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
- \expandafter\@ff@addtolist
- \csname @dynamicframe@\romannumeral#1\endcsname\entry{#2}%
-\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@addtolist}
-% Append "#2" onto the end of "#1".
-% \begin{macrocode}
-\newtoks\flf@ta \newtoks\flf@tb
-\long\def\@ff@addtolist#1\entry#2{\flf@ta={{#2}}%
-\flf@tb=\expandafter{#1}%
-\xdef#1{\the\flf@tb\the\flf@ta}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\continueonframe}
-% \cs{continueonframe}\oarg{text}\marg{id}
-% Ends current \env{staticcontents} or \env{dynamiccontents}
-% environment and starts environment of the same type for frame
-% given by \meta{id}. Can only be used inside \env{staticcontents}
-% or \env{dynamiccontents} environments. If the starred version of
-% the environment is used, \marg{id} refers to the \gls{idl}, otherwise
-% it refers to the \gls{idn} of the new frame.
-% \begin{macrocode}
-\newcommand{\continueonframe}{\PackageError{flowfram}{Can't continue
-to new frame: not in static or dynamic frame}{%
-\string\continueonframe\space may only
-be used inside `staticcontents' or `dynamiccontents' environments
-(of their starred versions)}}
-% \end{macrocode}
-%\end{macro}
-% \cs{@scontinueonframe} and \cs{@continueonframe} are set
-% by \env{staticcontents} and \env{dynamiccontents} environments
-% (and their starred forms).
-%
-% Static starred version uses \gls{idl}
-% \begin{macrocode}
-\newcommand*{\@staticscontinueonframe}[2][]{%
-\ffcontinuedtextlayout{#1}%
-\end{staticcontents*}%
-\begin{staticcontents*}{#2}\par\noindent\ignorespaces}
-% \end{macrocode}
-% Static unstarred version uses \gls{idn}
-% \begin{macrocode}
-\newcommand*{\@staticcontinueonframe}[2][]{%
-\ffcontinuedtextlayout{#1}%
-\end{staticcontents}%
-\begin{staticcontents}{#2}\par\noindent\ignorespaces}
-% \end{macrocode}
-%
-%\begin{macro}{\ffcontinuedtextlayout}
-%Displays the continued text used by \cs{continueonframe}.
-% \begin{macrocode}
-\newcommand{\ffcontinuedtextlayout}[1]{%
-\parfillskip=0pt\par\hfill\ffcontinuedtextfont{#1}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ffcontinuedtextfont}
-%Sets the font to display the continuation text used by
-%\cs{continueonframe}
-% \begin{macrocode}
-\newcommand*{\ffcontinuedtextfont}[1]{\emph{\small #1}}
-% \end{macrocode}
-%\end{macro}
-%
-%\subsection{Determining Dimensions and Locations}
-%\begin{macro}{\computeleftedgeodd}
-% Compute the position of the left most edge of the page,
-% relative to the left side of the \gls{typeblock}. Since odd and
-% even pages may have a different offset if "\oddsidemargin"
-% and "\evensidemargin" have different values, it is necessary
-% to have two separate commands for odd and even pages.
-% First the odd pages.
-% \begin{macrocode}
-\newcommand*{\computeleftedgeodd}[1]{%
-\setlength{#1}{-1in}%
-\addtolength{#1}{-\hoffset}%
-\addtolength{#1}{-\oddsidemargin}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\computeleftedgeeven}
-% Now for the even pages
-% \begin{macrocode}
-\newcommand*{\computeleftedgeeven}[1]{%
-\setlength{#1}{-1in}%
-\addtolength{#1}{-\hoffset}%
-\addtolength{#1}{-\evensidemargin}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\computetopedge}
-% Compute the top edge of the page, relative to the bottom of
-% the \gls{typeblock}.
-% \begin{macrocode}
-\newcommand*{\computetopedge}[1]{%
-\setlength{#1}{\textheight}%
-\addtolength{#1}{\headheight}%
-\addtolength{#1}{\headsep}%
-\addtolength{#1}{1in}%
-\addtolength{#1}{\voffset}%
-\addtolength{#1}{\topmargin}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\computebottomedge}
-% Compute the bottom edge of the page, relative to the bottom
-% of the \gls{typeblock}.
-% \begin{macrocode}
-\newcommand*{\computebottomedge}[1]{%
-\computetopedge{#1}%
-\addtolength{#1}{-\paperheight}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\computerightedgeodd}
-% Compute the right edge of the page, relative to the left edge
-% of the \gls{typeblock}. Again, two commands are needed for odd
-% and even pages. First the odd pages.
-% \begin{macrocode}
-\newcommand*{\computerightedgeodd}[1]{%
-\computeleftedgeodd{#1}%
-\addtolength{#1}{\paperwidth}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\computerightedgeeven}
-% Now for the even pages.
-% \begin{macrocode}
-\newcommand*{\computerightedgeeven}[1]{%
-\computeleftedgeeven{#1}%
-\addtolength{#1}{\paperwidth}}
-% \end{macrocode}
-%\end{macro}
-% Compute the minimum area surrounding the listed \glspl{flow}.
-% Values stored in "\ffareawidth", "\ffareaheight", "\ffareax"
-% and "\ffareay"
-% \begin{macrocode}
-\newlength\ffareawidth
-\newlength\ffareaheight
-\newlength\ffareax
-\newlength\ffareay
-% \end{macrocode}
-%\begin{macro}{\computeflowframearea}
-% Starred version identifies frame by \gls{idl}, unstarred
-% version identifies frame by \gls{idn}.
-% \begin{macrocode}
-\newcommand*{\computeflowframearea}{%
-\@ifstar\@scomputeffarea\@computeffarea}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@scomputeffarea}
-% Starred version.
-% \begin{macrocode}
-\newcommand*{\@scomputeffarea}[1]{%
-\setlength{\ffareax}{\paperwidth}%
-\setlength{\ffareay}{\paperheight}%
-\setlength{\@ff@tmp@x}{0pt}%
-\setlength{\@ff@tmp@y}{0pt}%
-\@for\@ff@id:=#1\do{\@flowframeid{\@ff@id}%
-%\ff@id is the IDN
-\ifnum\ffareax>\flowframex{\ff@id}%
-\setlength{\ffareax}{\flowframex{\ff@id}}%
-\fi
-\ifnum\ffareay>\flowframey{\ff@id}%
-\setlength{\ffareay}{\flowframey{\ff@id}}%
-\fi
-\setlength{\@ff@offset}{\flowframex{\ff@id}}%
-\addtolength{@ff@offset}{\flowframewidth{\ff@id}}%
-\ifnum\@ff@tmp@x<\@ff@offset
-\setlength{\@ff@tmp@x}{\@ff@offset}%
-\fi
-\setlength{\@ff@offset}{\flowframey{\ff@id}}%
-\addtolength{@ff@offset}{\flowframeheight{\ff@id}}%
-\ifnum\@ff@tmp@y<\@ff@offset
-\setlength{\@ff@tmp@y}{\@ff@offset}%
-\fi
-}%
-\setlength{\ffareawidth}{\@ff@tmp@x}%
-\addtolength{\ffareawidth}{-\ffareax}%
-\setlength{\ffareaheight}{\@ff@tmp@y}%
-\addtolength{\ffareaheight}{-\ffareay}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@computeffarea}
-% Unstarred version.
-% \begin{macrocode}
-\newcommand*{\@computeffarea}[1]{%
-\setlength{\ffareax}{\paperwidth}%
-\setlength{\ffareay}{\paperheight}%
-\setlength{\@ff@tmp@x}{0pt}%
-\setlength{\@ff@tmp@y}{0pt}%
-\@for\@ff@id:=#1\do{%
-\ff@id=\@ff@id\relax
-\setlength{\@ff@offset}{\flowframex{\ff@id}}%
-\ifdim\ffareax>\@ff@offset
-\setlength{\ffareax}{\@ff@offset}%
-\fi
-\setlength{\@ff@offset}{\flowframey{\ff@id}}%
-\ifdim\ffareay>\@ff@offset
-\setlength{\ffareay}{\@ff@offset}%
-\fi
-\setlength{\@ff@offset}{\flowframex{\ff@id}}%
-\addtolength{\@ff@offset}{\flowframewidth{\ff@id}}%
-\ifdim\@ff@tmp@x<\@ff@offset
-\setlength{\@ff@tmp@x}{\@ff@offset}%
-\fi
-\setlength{\@ff@offset}{\flowframey{\ff@id}}%
-\addtolength{\@ff@offset}{\flowframeheight{\ff@id}}%
-\ifdim\@ff@tmp@y<\@ff@offset
-\setlength{\@ff@tmp@y}{\@ff@offset}%
-\fi
-}%
-\setlength{\ffareawidth}{\@ff@tmp@x}%
-\addtolength{\ffareawidth}{-\ffareax}%
-\setlength{\ffareaheight}{\@ff@tmp@y}%
-\addtolength{\ffareaheight}{-\ffareay}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@swaplen}
-% Swap the values of two lengths
-% \begin{macrocode}
-\newcommand*{\@ff@swaplen}[2]{%
-\setlength{\@ff@tmp@x}{#1}%
-\setlength{#1}{#2}%
-\setlength{#2}{\@ff@tmp@x}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\@ff@getdim}
-% Get the dimensions for the given type of frame.
-% The first parameter should be a number indictating
-% type of frame : 1 (flow), 2 (static), 3 (dynamic).
-% The second number is its \gls{idn}. Values are stored in
-% "\ffareax", "\ffareay", "\ffareawidth" and "\ffareaheight".
-% \begin{macrocode}
-\newcommand*{\@ff@getdim}[2]{%
-\ifnum#2<1\relax
- \PackageError{flowfram}{Frame IDNs start from 1}{%
- You have specified a frame IDN of '\number#2'}%
-\fi
-\ifcase#1\relax
- \PackageError{flowfram}{Unknown frame ID type '#1'}{%
- Frame ID types are: 1 (flow), 2 (static) and 3 (dynamic)}%
-\or
- \ifnum#2>\c@maxflow\relax
- \PackageError{flowfram}{Invalid flow frame IDN '\number#2'}{%
- Flow frame IDNs go from 1 to \number\c@maxflow}%
- \else
- \setlength{\ffareax}{\flowframex{#2}}%
- \setlength{\ffareay}{\flowframey{#2}}%
- \setlength{\ffareawidth}{\flowframewidth{#2}}%
- \setlength{\ffareaheight}{\flowframeheight{#2}}%
- \fi
-\or
- \ifnum#2>\c@maxstatic\relax
- \PackageError{flowfram}{Invalid static frame IDN '\number#2'}{%
- Static frame IDNs go from 1 to \number\c@maxstatic}%
- \else
- \setlength{\ffareax}{\staticframex{#2}}%
- \setlength{\ffareay}{\staticframey{#2}}%
- \expandafter\expandafter\expandafter
- \@ff@getstaticpos
- \csname @sf@dim@\romannumeral#2\endcsname
- \setlength{\ffareawidth}{\@ff@tmp@x}%
- \setlength{\ffareaheight}{\@ff@tmp@y}%
- \fi
-\or
- \ifnum#2>\c@maxdynamic\relax
- \PackageError{flowfram}{Invalid dynamic frame IDN '\number#2'}{%
- Dynamic frame IDNs go from 1 to \number\c@maxdynamic}%
- \else
- \setlength{\ffareax}{\dynamicframex{#2}}%
- \setlength{\ffareay}{\dynamicframey{#2}}%
- \expandafter\expandafter\expandafter
- \@ff@getstaticpos
- \csname @df@dim@\romannumeral#2\endcsname
- \setlength{\ffareawidth}{\@ff@tmp@x}%
- \setlength{\ffareaheight}{\@ff@tmp@y}%
- \fi
-\else
- \PackageError{flowfram}{Unknown frame ID type '#1'}{%
- Frame ID types are: 1 (flow), 2 (static) and 3 (dynamic)}%
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\@ff@getevendim}
-%\changes{1.11}{2008/06/27}{new}
-% Get the dimensions for the given type of frame on even pages.
-% The first parameter should be a number indictating
-% type of frame : 1 (flow), 2 (static), 3 (dynamic).
-% The second number is its \gls{idn}. Values are stored in
-% "\ffareax", "\ffareay", "\ffareawidth" and "\ffareaheight".
-% \begin{macrocode}
-\newcommand*{\@ff@getevendim}[2]{%
-\ifnum#2<1\relax
- \PackageError{flowfram}{Frame IDNs start from 1}{%
- You have specified a frame IDN of '\number#2'}%
-\fi
-\ifcase#1\relax
- \PackageError{flowfram}{Unknown frame ID type '#1'}{%
- Frame ID types are: 1 (flow), 2 (static) and 3 (dynamic)}
-\or
- \ifnum#2>\c@maxflow
- \PackageError{flowfram}{Invalid flow frame IDN '\number#2'}{%
- Flow frame IDNs go from 1 to \number\c@maxflow}%
- \else
- \setlength{\ffareax}{\flowframeevenx{#2}}%
- \setlength{\ffareay}{\flowframeeveny{#2}}%
- \setlength{\ffareawidth}{\flowframewidth{#2}}%
- \setlength{\ffareaheight}{\flowframeheight{#2}}%
- \fi
-\or
- \ifnum#2>\c@maxstatic\relax
- \PackageError{flowfram}{Invalid static frame IDN '\number#2'}{%
- Static frame IDNs go from 1 to \number\c@maxstatic}%
- \else
- \setlength{\ffareax}{\staticframeevenx{#2}}%
- \setlength{\ffareay}{\staticframeeveny{#2}}%
- \expandafter\expandafter\expandafter
- \@ff@getstaticpos
- \csname @sf@dim@\romannumeral#2\endcsname
- \setlength{\ffareawidth}{\@ff@tmp@x}%
- \setlength{\ffareaheight}{\@ff@tmp@y}%
- \fi
-\or
- \ifnum#2>\c@maxdynamic\relax
- \PackageError{flowfram}{Invalid dynamic frame IDN '\number#2'}{%
- Dynamic frame IDNs go from 1 to \number\c@maxdynamic}%
- \else
- \setlength{\ffareax}{\dynamicframeevenx{#2}}%
- \setlength{\ffareay}{\dynamicframeeveny{#2}}%
- \expandafter\expandafter\expandafter
- \@ff@getstaticpos
- \csname @df@dim@\romannumeral#2\endcsname
- \setlength{\ffareawidth}{\@ff@tmp@x}%
- \setlength{\ffareaheight}{\@ff@tmp@y}%
- \fi
-\else
- \PackageError{flowfram}{Unknown frame ID type '#1'}{%
- Frame ID types are: 1 (flow), 2 (static) and 3 (dynamic)}
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\getstaticbounds}
-% Convenience method for calling the above. Firstly for static
-% frames:
-% \begin{macrocode}
-\newcommand*{\getstaticbounds}{%
-\@ifstar\@sgetstaticbounds\@getstaticbounds}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sgetstaticbounds}
-% Starred version (specify by \gls{idl}):
-% \begin{macrocode}
-\newcommand*{\@sgetstaticbounds}[1]{%
-\@staticframeid{#1}\@getstaticbounds{\ff@id}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@getstaticbounds}
-% Unstarred version (specify by \gls{idn}):
-%\changes{1.11}{2008/06/27}{fixed bug: changed frame id from
-% 1 to 2 (thanks to Lutz Goldmann for pointing it out)}
-% \begin{macrocode}
-\newcommand*{\@getstaticbounds}[1]{\@ff@getdim{2}{#1}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\getstaticevenbounds}
-%\changes{1.11}{2008/06/27}{new}
-% Even pages
-% \begin{macrocode}
-\newcommand*{\getstaticevenbounds}{%
-\@ifstar\@sgetstaticevenbounds\@getstaticevenbounds}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sgetstaticevenbounds}
-% Starred version (specify by \gls{idl}):
-% \begin{macrocode}
-\newcommand*{\@sgetstaticevenbounds}[1]{%
-\@staticframeid{#1}\@getstaticevenbounds{\ff@id}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@getstaticevenbounds}
-%\changes{1.11}{2008/06/27}{new}
-% Unstarred version (specify by \gls{idn}):
-% \begin{macrocode}
-\newcommand*{\@getstaticevenbounds}[1]{\@ff@getevendim{2}{#1}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\getflowbounds}
-% Next flow frames:
-% \begin{macrocode}
-\newcommand*{\getflowbounds}{%
-\@ifstar\@sgetflowbounds\@getflowbounds}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sgetflowbounds}
-% Starred version (specify by \gls{idl}):
-% \begin{macrocode}
-\newcommand*{\@sgetflowbounds}[1]{%
-\@flowframeid{#1}\@getflowbounds{\ff@id}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@getflowbounds}
-% Unstarred version (specify by \gls{idn}):
-%\changes{1.11}{2008/06/27}{fixed bug: changed frame id from
-% 2 to 1 (thanks to Lutz Goldmann for pointing it out)}
-% \begin{macrocode}
-\newcommand*{\@getflowbounds}[1]{\@ff@getdim{1}{#1}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\getflowevenbounds}
-%\changes{1.11}{2008/06/27}{new}
-% Even pages:
-% \begin{macrocode}
-\newcommand*{\getflowevenbounds}{%
-\@ifstar\@sgetflowevenbounds\@getflowevenbounds}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sgetflowevenbounds}
-%\changes{1.11}{2008/06/27}{new}
-% Starred version (specify by \gls{idl}):
-% \begin{macrocode}
-\newcommand*{\@sgetflowevenbounds}[1]{%
-\@flowframeid{#1}\@getflowevenbounds{\ff@id}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@getflowevenbounds}
-%\changes{1.11}{2008/06/27}{new}
-% Unstarred version (specify by \gls{idn}):
-% \begin{macrocode}
-\newcommand*{\@getflowevenbounds}[1]{\@ff@getevendim{1}{#1}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\getdynamicbounds}
-% Next dynamic frames:
-% \begin{macrocode}
-\newcommand*{\getdynamicbounds}{%
-\@ifstar\@sgetdynamicbounds\@getdynamicbounds}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sgetdynamicbounds}
-% Starred version (specify by \gls{idl}):
-% \begin{macrocode}
-\newcommand*{\@sgetdynamicbounds}[1]{%
-\@dynamicframeid{#1}\@getdynamicbounds{\ff@id}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@getdynamicbounds}
-% Unstarred version (specify by \gls{idn}):
-% \begin{macrocode}
-\newcommand*{\@getdynamicbounds}[1]{\@ff@getdim{3}{#1}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\getdynamicevenbounds}
-% Even pages:
-% \begin{macrocode}
-\newcommand*{\getdynamicevenbounds}{%
-\@ifstar\@sgetdynamicevenbounds\@getdynamicevenbounds}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sgetdynamicevenbounds}
-% Starred version (specify by \gls{idl}):
-% \begin{macrocode}
-\newcommand*{\@sgetdynamicevenbounds}[1]{%
-\@dynamicframeid{#1}\@getdynamicevenbounds{\ff@id}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@getdynamicevenbounds}
-% Unstarred version (specify by \gls{idn}):
-% \begin{macrocode}
-\newcommand*{\@getdynamicevenbounds}[1]{\@ff@getevendim{3}{#1}}
-% \end{macrocode}
-%\end{macro}
-%
-% \subsection{Determining the relative location of one frame from
-% another}
-%\changes{1.11}{2008/06/27}{added relative location commands}
-% The commands in this section set the following boolean variables:
-% \begin{macrocode}
-\newif\ifFLFabove
-\newif\ifFLFbelow
-\newif\ifFLFleft
-\newif\ifFLFright
-% \end{macrocode}
-% These can then be used after one of the \cs{checkifframe}\meta{loc}
-% commands defined below. For example:
-%\begin{verbatim}
-%\checkifframeabove{static}{1}{flow}{1}
-%\ifFLFabove
-% Static frame is above flow frame.
-%\else
-% Static frame isn't above flow frame.
-%\fi
-%\end{verbatim}
-%
-%\begin{macro}{\checkifframeabove}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{checkifframeabove}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-%
-% Checks if the first frame is above the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2}. The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be above the
-% second frame if they overlap. This code checks the page number to
-% determine whether to use \cs{oddcheckifframeabove} or
-% \cs{evencheckifframeabove} so it should not be used in the
-% first paragraph of the first \gls{flow} on the page if the paragraph
-% spans the page break.
-% \begin{macrocode}
-\newcommand*{\checkifframeabove}{%
-\@ifstar\@scheckifframeabove\@checkifframeabove}
-% \end{macrocode}
-% Starred version:
-% \begin{macrocode}
-\newcommand*{\@scheckifframeabove}[4]{%
-\ifodd\c@page
- \@soddcheckifframeabove{#1}{#2}{#3}{#4}%
-\else
- \@sevencheckifframeabove{#1}{#2}{#3}{#4}%
-\fi}
-% \end{macrocode}
-% Unstarred version:
-% \begin{macrocode}
-\newcommand*{\@checkifframeabove}[4]{%
-\ifodd\c@page
- \@oddcheckifframeabove{#1}{#2}{#3}{#4}%
-\else
- \@evencheckifframeabove{#1}{#2}{#3}{#4}%
-\fi}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\oddcheckifframeabove}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{oddcheckifframeabove}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-% Checks if the first frame is above the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2} for odd pages. The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be above the
-% second frame if they overlap.
-% \begin{macrocode}
-\newcommand*{\oddcheckifframeabove}{%
-\@ifstar\@soddcheckifframeabove\@oddcheckifframeabove}
-% \end{macrocode}
-% The starred version
-% \begin{macrocode}
-\newcommand*{\@soddcheckifframeabove}[4]{%
-\@ifundefined{@sget#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1bounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@sget#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3bounds\endcsname{#4}%
-\advance\ffareay by \ffareaheight\relax
-\expandafter\ifdim\@ff@check>\ffareay
- \FLFabovetrue
-\else
- \FLFabovefalse
-\fi
-}
-% \end{macrocode}
-% The unstarred version
-% \begin{macrocode}
-\newcommand*{\@oddcheckifframeabove}[4]{%
-\@ifundefined{@get#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1bounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@get#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3bounds\endcsname{#4}%
-\advance\ffareay by \ffareaheight\relax
-\expandafter\ifdim\@ff@check>\ffareay
- \FLFabovetrue
-\else
- \FLFabovefalse
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\checkifframebelow}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{checkifframebelow}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-% Checks if the first frame is below the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2}. The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be below the
-% second frame if they overlap. This code checks the page number to
-% determine whether to use \cs{oddcheckifframebelow} or
-% \cs{evencheckifframebelow} so it should not be used in the
-% first paragraph of the first \gls{flow} on the page if the paragraph
-% spans the page break.
-% \begin{macrocode}
-\newcommand*{\checkifframebelow}{%
-\@ifstar\@scheckifframebelow\@checkifframebelow}
-% \end{macrocode}
-% Starred version:
-% \begin{macrocode}
-\newcommand*{\@scheckifframebelow}[4]{%
-\ifodd\c@page
- \@soddcheckifframebelow{#1}{#2}{#3}{#4}%
-\else
- \@sevencheckifframebelow{#1}{#2}{#3}{#4}%
-\fi}
-% \end{macrocode}
-% Unstarred version:
-% \begin{macrocode}
-\newcommand*{\@checkifframebelow}[4]{%
-\ifodd\c@page
- \@oddcheckifframebelow{#1}{#2}{#3}{#4}%
-\else
- \@evencheckifframebelow{#1}{#2}{#3}{#4}%
-\fi}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\oddcheckifframebelow}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{oddcheckifframebelow}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-%
-% Checks if the first frame is below the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2} on odd pages. The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be below the
-% second frame if they overlap.
-% \begin{macrocode}
-\newcommand*{\oddcheckifframebelow}{%
-\@ifstar\@soddcheckifframebelow\@oddcheckifframebelow}
-% \end{macrocode}
-% The starred version
-% \begin{macrocode}
-\newcommand*{\@soddcheckifframebelow}[4]{%
-\@ifundefined{@sget#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1bounds\endcsname{#2}%
-\advance\ffareay by \ffareaheight\relax
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@sget#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3bounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareay
- \FLFbelowtrue
-\else
- \FLFbelowfalse
-\fi
-}
-% \end{macrocode}
-% The unstarred version
-% \begin{macrocode}
-\newcommand*{\@oddcheckifframebelow}[4]{%
-\@ifundefined{@get#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1bounds\endcsname{#2}%
-\advance\ffareay by \ffareaheight\relax
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@get#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3bounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareay
- \FLFbelowtrue
-\else
- \FLFbelowfalse
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\checkifframeleft}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{checkifframeleft}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-% Checks if the first frame is to the left of the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2}. The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be to the
-% left of the second frame if they overlap. This code checks the page number to
-% determine whether to use \cs{oddcheckifframeleft} or
-% \cs{evencheckifframeleft} so it should not be used in the
-% first paragraph of the first \gls{flow} on the page if the paragraph
-% spans the page break.
-% \begin{macrocode}
-\newcommand*{\checkifframeleft}{%
-\@ifstar\@scheckifframeleft\@checkifframeleft}
-% \end{macrocode}
-% Starred version:
-% \begin{macrocode}
-\newcommand*{\@scheckifframeleft}[4]{%
-\ifodd\c@page
- \@soddcheckifframeleft{#1}{#2}{#3}{#4}%
-\else
- \@sevencheckifframeleft{#1}{#2}{#3}{#4}%
-\fi}
-% \end{macrocode}
-% Unstarred version:
-% \begin{macrocode}
-\newcommand*{\@checkifframeleft}[4]{%
-\ifodd\c@page
- \@oddcheckifframeleft{#1}{#2}{#3}{#4}%
-\else
- \@evencheckifframeleft{#1}{#2}{#3}{#4}%
-\fi}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\oddcheckifframeleft}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{oddcheckifframeleft}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-%
-% Checks if the first frame is to the left of the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2} on odd pages. The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be to the
-% left of the second frame if they overlap.
-% \begin{macrocode}
-\newcommand*{\oddcheckifframeleft}{%
-\@ifstar\@soddcheckifframeleft\@oddcheckifframeleft}
-% \end{macrocode}
-% The starred version
-% \begin{macrocode}
-\newcommand*{\@soddcheckifframeleft}[4]{%
-\@ifundefined{@sget#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1bounds\endcsname{#2}%
-\advance\ffareax by \ffareawidth\relax
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@sget#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3bounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareax
- \FLFlefttrue
-\else
- \FLFleftfalse
-\fi
-}
-% \end{macrocode}
-% The unstarred version
-% \begin{macrocode}
-\newcommand*{\@oddcheckifframeleft}[4]{%
-\@ifundefined{@get#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1bounds\endcsname{#2}%
-\advance\ffareax by \ffareawidth\relax
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@get#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3bounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareax
- \FLFlefttrue
-\else
- \FLFleftfalse
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\checkifframeright}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{checkifframeright}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-% Checks if the first frame is to the right of the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2}. The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be to the
-% right of the second frame if they overlap. This code checks the page number to
-% determine whether to use \cs{oddcheckifframeright} or
-% \cs{evencheckifframeright} so it should not be used in the
-% first paragraph of the first \gls{flow} on the page if the paragraph
-% spans the page break.
-% \begin{macrocode}
-\newcommand*{\checkifframeright}{%
-\@ifstar\@scheckifframeright\@checkifframeright}
-% \end{macrocode}
-% Starred version:
-% \begin{macrocode}
-\newcommand*{\@scheckifframeright}[4]{%
-\ifodd\c@page
- \@soddcheckifframeright{#1}{#2}{#3}{#4}%
-\else
- \@sevencheckifframeright{#1}{#2}{#3}{#4}%
-\fi}
-% \end{macrocode}
-% Unstarred version:
-% \begin{macrocode}
-\newcommand*{\@checkifframeright}[4]{%
-\ifodd\c@page
- \@oddcheckifframeright{#1}{#2}{#3}{#4}%
-\else
- \@evencheckifframeright{#1}{#2}{#3}{#4}%
-\fi}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\oddcheckifframeright}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{oddcheckifframeright}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-%
-% Checks if the first frame is to the right of the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2} on odd pages. The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be to the
-% right of the second frame if they overlap.
-% \begin{macrocode}
-\newcommand*{\oddcheckifframeright}{%
-\@ifstar\@soddcheckifframeright\@oddcheckifframeright}
-% \end{macrocode}
-% The starred version
-% \begin{macrocode}
-\newcommand*{\@soddcheckifframeright}[4]{%
-\@ifundefined{@sget#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1bounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@sget#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3bounds\endcsname{#4}%
-\advance\ffareax by \ffareawidth\relax
-\expandafter\ifdim\@ff@check>\ffareax
- \FLFrighttrue
-\else
- \FLFrightfalse
-\fi
-}
-% \end{macrocode}
-% The unstarred version
-% \begin{macrocode}
-\newcommand*{\@oddcheckifframeright}[4]{%
-\@ifundefined{@get#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1bounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@get#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3bounds\endcsname{#4}%
-\advance\ffareax by \ffareawidth\relax
-\expandafter\ifdim\@ff@check>\ffareax
- \FLFrighttrue
-\else
- \FLFrightfalse
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\evencheckifframeabove}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{evencheckifframeabove}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-% Checks if the first frame is above the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2} for even pages.
-% The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be above the
-% second frame if they overlap.
-% \begin{macrocode}
-\newcommand*{\evencheckifframeabove}{%
-\@ifstar\@sevencheckifframeabove\@evencheckifframeabove}
-% \end{macrocode}
-% The starred version
-% \begin{macrocode}
-\newcommand*{\@sevencheckifframeabove}[4]{%
-\@ifundefined{@sget#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1evenbounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@sget#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3evenbounds\endcsname{#4}%
-\advance\ffareay by \ffareaheight\relax
-\expandafter\ifdim\@ff@check>\ffareay
- \FLFabovetrue
-\else
- \FLFabovefalse
-\fi
-}
-% \end{macrocode}
-% The unstarred version
-% \begin{macrocode}
-\newcommand*{\@evencheckifframeabove}[4]{%
-\@ifundefined{@get#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1evenbounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@get#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3evenbounds\endcsname{#4}%
-\advance\ffareay by \ffareaheight\relax
-\expandafter\ifdim\@ff@check>\ffareay
- \FLFabovetrue
-\else
- \FLFabovefalse
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\evencheckifframebelow}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{checkifframebelow}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-% Checks if the first frame is below the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2}. The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be below the
-% second frame if they overlap.
-% \begin{macrocode}
-\newcommand*{\evencheckifframebelow}{%
-\@ifstar\@sevencheckifframebelow\@evencheckifframebelow}
-% \end{macrocode}
-% The starred version
-% \begin{macrocode}
-\newcommand*{\@sevencheckifframebelow}[4]{%
-\@ifundefined{@sget#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1evenbounds\endcsname{#2}%
-\advance\ffareay by \ffareaheight\relax
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@sget#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3evenbounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareay
- \FLFbelowtrue
-\else
- \FLFbelowfalse
-\fi
-}
-% \end{macrocode}
-% The unstarred version
-% \begin{macrocode}
-\newcommand*{\@evencheckifframebelow}[4]{%
-\@ifundefined{@get#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1evenbounds\endcsname{#2}%
-\advance\ffareay by \ffareaheight\relax
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@get#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3evenbounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareay
- \FLFbelowtrue
-\else
- \FLFbelowfalse
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\evencheckifframeleft}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{evencheckifframeleft}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-% Checks if the first frame is to the left of the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2}. The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be to the
-% left of the second frame if they overlap.
-% \begin{macrocode}
-\newcommand*{\evencheckifframeleft}{%
-\@ifstar\@sevencheckifframeleft\@evencheckifframeleft}
-% \end{macrocode}
-% The starred version
-% \begin{macrocode}
-\newcommand*{\@sevencheckifframeleft}[4]{%
-\@ifundefined{@sget#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1evenbounds\endcsname{#2}%
-\advance\ffareax by \ffareawidth\relax
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@sget#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3evenbounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareax
- \FLFlefttrue
-\else
- \FLFleftfalse
-\fi
-}
-% \end{macrocode}
-% The unstarred version
-% \begin{macrocode}
-\newcommand*{\@evencheckifframeleft}[4]{%
-\@ifundefined{@get#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1evenbounds\endcsname{#2}%
-\advance\ffareax by \ffareawidth\relax
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@get#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3evenbounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareax
- \FLFlefttrue
-\else
- \FLFleftfalse
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\evencheckifframeright}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{evencheckifframeright}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-% Checks if the first frame is to the right of the second frame where the
-% first frame is of type \meta{type1} with \gls{idn} given by
-% \meta{id1} and the second frame is of type \meta{type2} with \gls{idn}
-% given by \meta{id2}. The starred version uses the \gls{idl} instead
-% of the \gls{idn}. The first frame is not considered to be to the
-% right of the second frame if they overlap.
-% \begin{macrocode}
-\newcommand*{\evencheckifframeright}{%
-\@ifstar\@sevencheckifframeright\@evencheckifframeright}
-% \end{macrocode}
-% The starred version
-% \begin{macrocode}
-\newcommand*{\@sevencheckifframeright}[4]{%
-\@ifundefined{@sget#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1evenbounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@sget#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3evenbounds\endcsname{#4}%
-\advance\ffareax by \ffareawidth\relax
-\expandafter\ifdim\@ff@check>\ffareax
- \FLFrighttrue
-\else
- \FLFrightfalse
-\fi
-}
-% \end{macrocode}
-% The unstarred version
-% \begin{macrocode}
-\newcommand*{\@evencheckifframeright}[4]{%
-\@ifundefined{@get#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1evenbounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@get#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3evenbounds\endcsname{#4}%
-\advance\ffareax by \ffareawidth\relax
-\expandafter\ifdim\@ff@check>\ffareax
- \FLFrighttrue
-\else
- \FLFrightfalse
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%
-% Textual labels used to indicate relative location of one frame
-% to another.
-%\begin{macro}{\FFaboveleft}
-%\changes{1.11}{2008/06/27}{new}
-% \begin{macrocode}
-\newcommand*{\FFaboveleft}{above left}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\FFaboveright}
-%\changes{1.11}{2008/06/27}{new}
-% \begin{macrocode}
-\newcommand*{\FFaboveright}{above right}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\FFbelowleft}
-%\changes{1.11}{2008/06/27}{new}
-% \begin{macrocode}
-\newcommand*{\FFbelowleft}{below left}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\FFbelowright}
-%\changes{1.11}{2008/06/27}{new}
-% \begin{macrocode}
-\newcommand*{\FFbelowright}{below right}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\FFleft}
-%\changes{1.11}{2008/06/27}{new}
-% \begin{macrocode}
-\newcommand*{\FFleft}{on the left}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\FFbelowright}
-%\changes{1.11}{2008/06/27}{new}
-% \begin{macrocode}
-\newcommand*{\FFright}{on the right}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\FFabove}
-%\changes{1.11}{2008/06/27}{new}
-% \begin{macrocode}
-\newcommand*{\FFabove}{above}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\FFbelow}
-%\changes{1.11}{2008/06/27}{new}
-% \begin{macrocode}
-\newcommand*{\FFbelow}{below}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\FFoverlap}
-%\changes{1.11}{2008/06/27}{new}
-% \begin{macrocode}
-\newcommand*{\FFoverlap}{overlap}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\relativeframelocation}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{relativeframelocation}\marg{type1}\marg{id1}\marg{type2}\marg{id2}
-% Displays one of the above commands depending on the relative
-% locations of the first frame to the second frame. The arguments
-% \meta{id1} and \meta{id2} refer to the \gls{idn} for the unstarred
-% version and to the \gls{idl} for the starred version.
-% \begin{macrocode}
-\DeclareRobustCommand*{\relativeframelocation}{%
-\@ifstar\@srelativeframelocation\@relativeframelocation}
-% \end{macrocode}
-% Starred version:
-% \begin{macrocode}
-\newcommand*{\@srelativeframelocation}[4]{%
-\@scheckifframeabove{#1}{#2}{#3}{#4}%
-\@scheckifframebelow{#1}{#2}{#3}{#4}%
-\@scheckifframeleft{#1}{#2}{#3}{#4}%
-\@scheckifframeright{#1}{#2}{#3}{#4}%
-\ifFLFabove
- \ifFLFleft
- \FFaboveleft
- \else
- \ifFLFright
- \FFaboveright
- \else
- \FFabove
- \fi
- \fi
-\else
- \ifFLFbelow
- \ifFLFleft
- \FFbelowleft
- \else
- \ifFLFright
- \FFbelowright
- \else
- \FFbelow
- \fi
- \fi
- \else
- \ifFLFleft
- \FFleft
- \else
- \ifFLFright
- \FFright
- \else
- \FFoverlap
- \fi
- \fi
- \fi
-\fi
-}
-% \end{macrocode}
-% Unstarred version:
-% \begin{macrocode}
-\newcommand*{\@relativeframelocation}[4]{%
-\@checkifframeabove{#1}{#2}{#3}{#4}%
-\@checkifframebelow{#1}{#2}{#3}{#4}%
-\@checkifframeleft{#1}{#2}{#3}{#4}%
-\@checkifframeright{#1}{#2}{#3}{#4}%
-\ifFLFabove
- \ifFLFleft
- \FFaboveleft
- \else
- \ifFLFright
- \FFaboveright
- \else
- \FFabove
- \fi
- \fi
-\else
- \ifFLFbelow
- \ifFLFleft
- \FFbelowleft
- \else
- \ifFLFright
- \FFbelowright
- \else
- \FFbelow
- \fi
- \fi
- \else
- \ifFLFleft
- \FFleft
- \else
- \ifFLFright
- \FFright
- \else
- \FFoverlap
- \fi
- \fi
- \fi
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%
-% Short cut commands for \glspl{frame} of the same type.
-%\begin{macro}{\reldynamicloc}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{reldynamicloc}\marg{id1}\marg{id2}
-% \begin{macrocode}
-\DeclareRobustCommand*{\reldynamicloc}{%
-\@ifstar\@sreldynamicloc\@reldynamicloc}
-% \end{macrocode}
-% Starred version:
-% \begin{macrocode}
-\newcommand*{\@sreldynamicloc}[2]{
-\@srelativeframelocation{dynamic}{#1}{dynamic}{#2}}
-% \end{macrocode}
-% Unstarred version:
-% \begin{macrocode}
-\newcommand*{\@reldynamicloc}[2]{
-\@relativeframelocation{dynamic}{#1}{dynamic}{#2}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\relstaticloc}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{relstaticloc}\marg{id1}\marg{id2}
-% \begin{macrocode}
-\DeclareRobustCommand*{\relstaticloc}{%
-\@ifstar\@srelstaticloc\@relstaticloc}
-% \end{macrocode}
-% Starred version:
-% \begin{macrocode}
-\newcommand*{\@srelstaticloc}[2]{
-\@srelativeframelocation{static}{#1}{static}{#2}}
-% \end{macrocode}
-% Unstarred version:
-% \begin{macrocode}
-\newcommand*{\@relstaticloc}[2]{
-\@relativeframelocation{static}{#1}{static}{#2}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\relflowloc}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{relflowloc}\marg{id1}\marg{id2}
-% \begin{macrocode}
-\DeclareRobustCommand*{\relflowloc}{%
-\@ifstar\@srelflowloc\@relflowloc}
-% \end{macrocode}
-% Starred version:
-% \begin{macrocode}
-\newcommand*{\@srelflowloc}[2]{
-\@srelativeframelocation{flow}{#1}{flow}{#2}}
-% \end{macrocode}
-% Unstarred version:
-% \begin{macrocode}
-\newcommand*{\@relflowloc}[2]{
-\@relativeframelocation{flow}{#1}{flow}{#2}}
-% \end{macrocode}
-%\end{macro}
-%
-%\subsection{Initialise Flow Frames}
-%\begin{macro}{\setinitialframe}
-% Specify initial frame. This should be the first flow
-% frame that is defined on the first page of the document.
-% Having another \gls{flow} as the initial frame is not
-% a good idea, and may have unexpected results.
-% \begin{macrocode}
-\newcommand*{\setinitialframe}[1]{\c@thisframe=#1%
-\global\usedframebreaktrue
-\global\setlength{\hsize}{%
-\csname colwidth\romannumeral\c@thisframe\endcsname}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\setframes}
-% Set the initial frame.
-% \begin{macrocode}
-\newif\if@setfr@mes
-\@setfr@mesfalse
-\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}%
-\@nxtcol=1\relax
-\c@curpg=1\relax
-\@g@tnextcol{\@nxtcol}%
-% \end{macrocode}
-% shipout pages without flow frames
-% \begin{macrocode}
-\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}%
-\c@thisframe=\@nxtcol
-\fi
-\@setcol{\c@thisframe}\relax
-\@setfr@mestrue
-\edef\ff@txtcol{%
-\csname @ff@txtcol@\romannumeral\c@thisframe\endcsname}%
-\@s@tfftextcol
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\emulatetwocolumn}
-% Emulate original "\twocolumn" declaration.
-% This is provided for backward compatibilty, and
-% may be removed in later versions.
-% \begin{macrocode}
-\newcommand{\emulatetwocolumn}[1][]{%
-\finishthispage
-\setallflowframes{pages=none}%
-\settoheight{\@ff@staticH}{#1}%
-\settodepth{\@ff@tmp@y}{#1}%
-\addtolength{\@ff@staticH}{\@ff@tmp@y}%
-\ifdim\@ff@staticH>0pt\relax
-\twocolumnStop[\c@page]{\@ff@staticH}%
-\c@thisframe=\c@maxflow
-\advance\c@thisframe by -1\relax
-\@twocolumn[>\c@page]%
-\setstaticcontents{\c@maxstatic}{#1}%
-\else
-\@twocolumn
-\c@thisframe=\c@maxflow
-\advance\c@thisframe by -1\relax
-\fi
-\@setcol{\c@thisframe}\relax
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\emulateonecolumn}
-% Emulate original "\onecolumn" declaration.
-% This is provided for backward compatibilty, and
-% may be removed in later versions.
-% \begin{macrocode}
-\newcommand{\emulateonecolumn}[1][]{%
-\finishthispage
-\setallflowframes{pages=none}%
-\settoheight{\@ff@staticH}{#1}%
-\settodepth{\@ff@tmp@y}{#1}%
-\addtolength{\@ff@staticH}{\@ff@tmp@y}%
-\ifdim\@ff@staticH>0pt\relax
-\onecolumnStop[\c@page]{\@ff@staticH}%
-\c@thisframe=\c@maxflow
-\advance\c@thisframe by -1\relax
-\@onecolumn[>\c@page]%
-\setstaticcontents{\c@maxstatic}{#1}%
-\else
-\@twocolumn
-\c@thisframe=\c@maxflow
-\advance\c@thisframe by -1\relax
-\fi
-\@setcol{\c@thisframe}\relax
-}
-% \end{macrocode}
-%\end{macro}
-% If no flow frames have been defined, create one big one
-% the size of the \gls{typeblock}, and initialise the frames.
-% \begin{macrocode}
-\AtBeginDocument{%
-\ifnum\c@maxflow=0\relax
-\PackageWarning{flowfram}{No flow frames, adding one}%
-\@onecolumn
-\fi
-\setframes
-\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}%
-}
-% \end{macrocode}
-% If the document finishes before the last frame on the last
-% 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}
-% \end{macrocode}
-%\subsection{Output Routine}
-%\begin{macro}{\@setcol}
-% Set up the output box so it has the correct dimensions for
-% specified \gls{flow}. This is used by the output routine.
-%\changes{1.11}{2008/06/27}{added displayedframe increment}
-% \begin{macrocode}
-\newcommand{\@setcol}[1]{%
-\ifnum\c@maxflow<#1\relax
- \PackageError{flowfram}{Can't set frame '\number#1', doesn't
- exist}{}%
-\else
- \expandafter\global\expandafter\columnwidth
- \csname colwidth\romannumeral#1\endcsname
- \ifdim\hsize=\columnwidth
- \else
- \ifusedframebreak
- \else
- \PackageWarning{flowfram}{Moving to flow frame of unequal
- width,\MessageBreak use of \string\framebreak\space advised,
- or text might not appear correctly}%
- \fi
- \fi
- \global\usedframebreakfalse
- \global\hsize\columnwidth
- \expandafter\global
- \expandafter\vsize\csname colheight\romannumeral#1\endcsname
- \global\@colht\vsize
- \global\@colroom\@colht
- \global\linewidth\columnwidth
- \setmargin
-\fi
-\stepcounter{displayedframe}%
-}
-% \end{macrocode}
-%\end{macro}
-% Modify the output routine so that it uses "\vsize"
-% instead of "\textheight".
-% \begin{macrocode}
-\output={\let\par\@@par
-\ifnum\outputpenalty <-\@M
- \@specialoutput
-\else
- \@makecol
- \@opcol \@startcolumn
- \@whilesw \if@fcolmade \fi {\@opcol \@startcolumn }%
-\fi
-\ifnum\outputpenalty>-\@Miv
- \ifdim\@colroom<1.5\baselineskip
- \ifdim\@colroom<\vsize
- \@latex@warning@no@line{Text page \thepage \space
- contains only floats}\@emptycol
- \else
- \global\vsize\@colroom
- \fi
- \else
- \global\vsize\@colroom
- \fi
-\else
- \global\vsize\maxdimen
-\fi
-}
-% \end{macrocode}
-%\begin{macro}{\@doclearpage}
-% Modify "\@doclearpage", again replace "\textheight"
-% with "\vsize", and only use the twocolumn stuff.
-% \begin{macrocode}
-\def\@doclearpage{%
-\ifvoid\footins
- \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@firstcolumn
- \xdef\@dbldeferlist{\@dbltoplist\@dbldeferlist}%
-\global\let\@dbltoplist\@empty
-\global\@colht\vsize
-\begingroup
- \@dblfloatplacement
- \@makefcolumn
- \@dbldeferlist
- \@whilesw \if@fcolmade \fi {\@outputpage
-\@makefcolumn\@dbldeferlist}%
-\endgroup
-\else
- \vbox{}\clearpage
-\fi
-\else
- \setbox\@cclv\vbox{\box\@cclv\vfil}%
-\@makecol\@opcol\clearpage\fi}
-% \end{macrocode}
-%\end{macro}
-% Modify "\@outputpage" slightly. Add provision for
-% turning headers and footers into \glspl{dynamic}.
-%
-%\begin{macro}{\@dothehead}
-% First define macro to do the header. This will be
-% modified if it is turned into a \gls{dynamic}.
-% \begin{macrocode}
-\newcommand{\@dothehead}{\vbox to \headheight{%
-\color@hbox\normalcolor\hbox to \textwidth{%
-\@thehead}\color@endbox}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@dothefoot}
-% Same again for the footer.
-% \begin{macrocode}
-\newcommand{\@dothefoot}{%
-\color@hbox\normalcolor\hbox to \textwidth{%
-\@thefoot}\color@endbox}
-\newcommand{\@dodynamicthehead}{}
-\newcommand{\@dodynamicthefoot}{}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@outputpage}
-% Now for the modified version of "\@outputpage". The
-% page style stuff has been moved to "\@outputdblcol"
-% so that the headers and footers can be set in \glspl{dynamic}
-% before the \glspl{dynamic} are put on the page.
-% \begin{macrocode}
-\def\@outputpage{%
-\begingroup
- \let\protect\noexpand
- \@resetactivechars
- \global\let\@@if@newlist\if@newlist
- \global\@newlistfalse\@parboxrestore
- \shipout\vbox{\set@typeset@protect
- \aftergroup
- \endgroup
- \aftergroup
- \set@typeset@protect
- \reset@font\normalsize\normalsfcodes
- \let\label\@gobble
- \let\index\@gobble
- \let\glossary\@gobble
- \baselineskip\z@skip
- \lineskip\z@skip
- \lineskiplimit\z@
- \vskip\topmargin\moveright\@themargin
- \vbox{%
- \vskip\headheight
- \vskip\headsep
- \box\@outputbox
- }}%
- \global\let\if@newlist\@@if@newlist
- \stepcounter{page}%
- \setcounter{displayedframe}{0}%
- \let\firstmark\botmark}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\makedfheaderfooter}
-% Make the headers and footers be in \glspl{dynamic}. There
-% will initially be no difference in appearance until
-% the settings are changed using "\setdynamicframe".
-% The header frame is given the \gls{idl} "header", and the
-% footer is given the \gls{idl} "footer".
-% \begin{macrocode}
-\newcommand*{\makedfheaderfooter}{%
-% create dynamic frames at the standard location
-\setlength{\@ff@tmp@y}{\textheight}%
-\addtolength{\@ff@tmp@y}{\headsep}%
-\newdynamicframe{\textwidth}{\headheight}{0pt}{\@ff@tmp@y}[header]%
-\newdynamicframe{\textwidth}{\headheight}{0pt}{-\footskip}[footer]%
-\renewcommand{\@dothehead}{}%
-\renewcommand{\@dothefoot}{}%
-\renewcommand{\@dodynamicthehead}{%
-\@dynamicframeid{header}%
-\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}%
-}%
-}
-% \end{macrocode}
-%\end{macro}
-% This should only be done in the preamble.
-% \begin{macrocode}
-\@onlypreamble{\makedfheaderfooter}
-% \end{macrocode}
-%\begin{macro}{\footnotecolor}
-% Set footnotes in "\footnotecolor" rather than "\normalcolor"
-% This ensures that the footnotes appear in the same colour
-% as the text colour for the \gls{flow} to which they belong.
-% \begin{macrocode}
-\newcommand{\footnotecolor}{%
-\@ifundefined{@ff@txtcol@\romannumeral\c@thisframe}{%
-\normalcolor}{%
-\edef\ff@txtcol{%
-\csname @ff@txtcol@\romannumeral\c@thisframe\endcsname}%
-\@s@tfftextcol}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@makecol}
-% Modify "\@makecol" so that the footnotes, and the
-% footnote rule are in the colour for that frame.
-% \begin{macrocode}
-\renewcommand{\@makecol}{%
-\ifvoid\footins
- \setbox\@outputbox\box\@cclv
-\else
- \setbox\@outputbox\vbox{%
-\boxmaxdepth\@maxdepth\@tempdima\dp\@cclv
- \unvbox\@cclv
- \vskip\skip\footins
- \color@begingroup
- \footnotecolor
- \footnoterule
- \unvbox\footins
- \color@endgroup
-}\fi
-\xdef\@freelist{\@freelist \@midlist }%
-\global\let\@midlist\@empty
-\@combinefloats
-\ifvbox\@kludgeins
- \@makespecialcolbox
-\else
- \setbox\@outputbox\vbox to\@colht{%
-\@texttop\dimen@\dp\@outputbox
- \unvbox \@outputbox
- \vskip -\dimen@\@textbottom
-}\fi
-\global\maxdepth\@maxdepth}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@opcol}
-% Modify "\@opcol", as "\if@twocolumn" is now
-% irrelevant.
-% \begin{macrocode}
-\def\@opcol{\@outputdblcol
-\global\@mparbottom\z@
-\global\@textfloatsheight\z@
-\@floatplacement
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@checkifmoreframes}
-% Check to see if there are more \glspl{flow} defined, and
-% set "\if@ff@moreframes" as appropriate. This involves
-% iterating through all \glspl{flow}, and through each
-% frame's \gls{pglist}.
-% \begin{macrocode}
-\newif\if@ff@moreframes
-\newcommand*{\@ff@checkifmoreframes}{%
-\@ff@moreframesfalse
-\@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}%
-}%
-\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}
-%\end{macro}
-%\begin{macro}{\@ff@checkpages}
-% Check to see if the current page lies in the \gls{pglist}
-% given by "#1".
-% \begin{macrocode}
-\newcommand*{\@ff@checkpages}[2][\c@page]{%
-\@for\@ff@pp:=#2\do{%
-\@ff@checkthispage{#1}{\@ff@pp}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@checkthispage}
-% Check to see if the current page lies in the \gls{pgrange}
-% given by "#1". If the \gls{pgrange} is specified by
-% "all", "odd" or "even" then there are definitely more
-% frames available, otherwise check to see if the current page
-% lies within the number range. If the \gls{pgrange} is "none",
-% ignore it.
-% \begin{macrocode}
-\newcommand*{\@ff@checkthispage}[2]{%
-\ifthenelse{\equal{#2}{all}\or\equal{#2}{even}\or\equal{#2}{odd}}{%
-\@ff@moreframestrue}{%
-\ifthenelse{\equal{#2}{none}}{}{%
-\@ff@checknumrange{#1}{#2}}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@checknumrange}
-% The number range could be a single number, a closed range
-% (e.g.\ "2-6") or an open range (e,g.\ "<4" or ">10").
-% Use "\@ff@getrange" to find the start and end ranges.
-% For open ended ranges assume a maximum value of 10000.
-% If the current page is less than or equal to the maximum,
-% there are still more \glspl{flow} available.
-% \begin{macrocode}
-\newcommand*{\@ff@checknumrange}[2]{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{#2}%
-\ifnum\@ff@numend>#1\relax
-\@ff@moreframestrue
-\else
-\ifnum\@ff@numend=#1\relax
-\@ff@moreframestrue
-\fi
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-% Work out the minimum and maximum values of a number range
-% which could either be a single number, a closed number
-% range or an open number range. If the first character
-% is "<" or ">" then it is an open range, otherwise it is
-% a closed range or a single number. Define a counter
-% to use whilst determining the range.
-% \begin{macrocode}
-\newcount\c@ffrangenum
-% \end{macrocode}
-%\begin{macro}{\@ff@getrange}
-% Now to find out what kind of range it is. If it is a single
-% number, e.g.\ "24", then it will do, e.g.\
-% "\@ff@@getrange24-\relax".
-% If it is a closed range, e.g. "30-40", it will do , e.g.\
-% "\@ff@@getrange30-40-\relax". If it is an open range, e.g.\
-% ">25", it will do, e.g.\ "\@ff@@getrange>25-\relax".
-% \begin{macrocode}
-\newcommand*{\@ff@getrange}[1]{%
-\expandafter\@ff@@getrange#1-\relax\end}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@@getrange}
-% The ranges can now be picked out. If the first character
-% is a "<" or ">" it is an open ended range, otherwise it
-% is either a single value, or a close ended range.
-% \begin{macrocode}
-\def\@ff@@getrange#1#2\end{%
-\ifx#1<\relax
- \@ff@getrangeless#1#2\end
-\else
- \ifx#1>\relax
- \@ff@getrangegreater#1#2\end
- \else
- \@@ff@getrange#1#2\end
- \fi
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@getrangeless}
-% Get the values for an open ended range with an
-% upper bound. A minimum value of "0" is assumed.
-% \begin{macrocode}
-\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}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@getrangegreater}
-% Get the values for an open ended range with a lower
-% bound. A maximum value of "10000" is assumed.
-% \begin{macrocode}
-\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}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@ff@getrange}
-% Determine whether we have a single number or
-% a closed range. If "#2" is "\relax", it is a single
-% value, otherwise it is a range.
-% \begin{macrocode}
-\def\@@ff@getrange#1-#2\end{%
-\ifx\relax#2\relax
-\def\@ff@numstart{#1}\def\@ff@numend{#1}%
-\else
-\def\@ff@numstart{#1}%
-\@@@ff@getrange#2\end
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@@ff@getrange}
-% Extract the end value from the closed range.
-% \begin{macrocode}
-\def\@@@ff@getrange#1-\relax\end{%
-\def\@ff@numend{#1}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@g@tnextcol}
-% Find the next \gls{flow}. If there are no more flow
-% frames, define a new one the size of the \gls{typeblock}.
-% (Otherwise the remaining document text will be lost.)
-% \begin{macrocode}
-\newif\if@notthiscol
-\newif\if@ff@nwpg
-\newcount\c@curpg
-\newcommand*{\@g@tnextcol}[1]{%
-\@ff@checkifmoreframes
-\if@ff@moreframes
-\else
-% No more frames, add new frame
-\PackageWarning{flowfram}{Run out of flows frames,
-adding new one}%
-\@onecolumn
-#1=\c@maxflow
-\fi
-\@notthiscoltrue
-\@ff@nwpgfalse
-\@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\relax
-\fi
-\@ff@chckifthispg{\c@curpg}{\@colN}%
-\if@notthiscol
-\repeat
-#1=\@colN
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@chckifthispg}
-% This is used to determine the next \gls{flow}, since not
-% all \glspl{flow} may be defined on every page. Checks to
-% see if \gls{flow} "#2" is defined on page "#1".
-% First set up some variables.
-% \begin{macrocode}
-\newcommand*{\@ff@chckifthispg}[2]{%
-\@notthiscoltrue
-\edef\ff@pages{\csname @ff@pages@\romannumeral#2\endcsname}%
-\@@ff@chckifthispg{#1}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@ff@chckifthispg}
-% Now go ahead and check.
-% \begin{macrocode}
-\newcommand*{\@@ff@chckifthispg}[1]{%
-\ifthenelse{\equal{\ff@pages}{none}}{}{%
-\ifthenelse{\equal{\ff@pages}{all}}{\@notthiscolfalse}{%
-\ifthenelse{\equal{\ff@pages}{odd}}{%
-\ifodd#1\@notthiscolfalse\fi}{%
-\ifthenelse{\equal{\ff@pages}{even}}{%
-\ifodd#1\else\@notthiscolfalse\fi}{%
-% check through list of page numbers
-\@for\@ff@pp:=\ff@pages\do{%
-\def\@ff@numstart{0}\def\@ff@numend{0}%
-\@ff@getrange{\@ff@pp}%
-\ifthenelse{#1<\@ff@numstart \or #1>\@ff@numend}{}{%
-\@notthiscolfalse}%
-}%
-}}}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sf@chckifthispg}
-% Checks to see if \gls{static} "#1" is defined on the
-% current page.
-% \begin{macrocode}
-\newcommand*{\@sf@chckifthispg}[1]{%
-\@notthiscoltrue
-\edef\ff@pages{\csname @sf@pages@\romannumeral#1\endcsname}%
-\@@ff@chckifthispg{\c@page}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@df@chckifthispg}
-% Checks to see if \gls{dynamic} "#1" is defined on the
-% current page.
-% \begin{macrocode}
-\newcommand*{\@df@chckifthispg}[1]{%
-\@notthiscoltrue
-\edef\ff@pages{\csname @df@pages@\romannumeral#1\endcsname}%
-\@@ff@chckifthispg{\c@page}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@setcolbox}
-% Sets the \TeX\ box defining the \gls{flow} to the output
-% box. This saves the output until the page is shipped out after
-% all the \glspl{flow} have been filled for that page.
-% \begin{macrocode}
-\newcommand*{\@setcolbox}[1]{%
-\expandafter\global\expandafter\setbox
-\csname column\romannumeral#1\endcsname\box\@outputbox
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@docolbox}
-% Put \gls{flow} on the page with the correct border, if it
-% has one.
-% \begin{macrocode}
-\newcommand*{\@docolbox}[1]{%
-\edef\ff@frametype{%
-\csname @ff@frametype@\romannumeral#1\endcsname}%
-\edef\ff@col{\csname @ff@col@\romannumeral#1\endcsname}%
-\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}{%
-\expandafter\box\csname column\romannumeral#1\endcsname}{%
-\csname\ff@frametype\endcsname}%
-}{%
-\@ff@box{\csname colwidth\romannumeral#1\endcsname}%
-{\csname colheight\romannumeral#1\endcsname}{%
-\expandafter\box\csname column\romannumeral#1\endcsname}%
-}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@docolbbox}
-% Do the \gls{bbox} for given \gls{flow}.
-% \begin{macrocode}
-\newcommand*{\@docolbbox}[1]{%
-\@ff@setoffset{#1}%
-\def\ff@col{}\def\ff@txtcol{}%
-\@fr@meifdraft{%
-\@ff@box{\csname colwidth\romannumeral#1\endcsname}%
-{\csname colheight\romannumeral#1\endcsname}{%
-\expandafter\box\csname column\romannumeral#1\endcsname}}%
-{F:\number#1;\csname @col@id@\romannumeral#1\endcsname}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@fbox}
-% Put the \TeX\ box "#3" of width "#1" and
-% height "#2", and frame making command
-% specified by "#4".
-% \begin{macrocode}
-\newcommand{\@ff@fbox}[4]{{%
-\fboxsep=\flowframesep\fboxrule=\flowframerule\@s@tffcol
-\kern\@ff@offset
-#4{\@ff@box{#1}{#2}{#3}}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@box}
-% Put the \TeX\ box "#3" of width "#1" and height "#2" on
-% the page.
-% \begin{macrocode}
-\newcommand{\@ff@box}[3]{{\@ffbackground{\vbox to#2
-{\hb@xt@ #1{\hss{\@s@tfftextcol #3}\hss}\vss\kern\z@}}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@putcolbox}
-% Display the \gls{flow} on the page, at its given position.
-% If the document is two-sided, need to check whether
-% the current page is odd or even to determine the correct
-% location.
-% \begin{macrocode}
-\newcommand*{\@putcolbox}[1]{%
-\@ff@chckifthispg{\c@page}{#1}%
-\if@notthiscol
-\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname col@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@posx\endcsname
-\@docolbox{#1}\hss}%
-\else
-\expandafter\raise\csname col@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@evenx\endcsname
-\@docolbox{#1}\hss}%
-\fi
-\else
-\expandafter\raise\csname col@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@posx\endcsname
-\@docolbox{#1}\hss}%
-\fi
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@putcolbbox}
-% Same for \gls{flow} \gls{bbox}:
-% \begin{macrocode}
-\newcommand*{\@putcolbbox}[1]{%
-\@ff@chckifthispg{\c@page}{#1}%
-\if@notthiscol
-\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname col@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@posx\endcsname
-\@docolbbox{#1}\hss}%
-\else
-\expandafter\raise\csname col@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@evenx\endcsname
-\@docolbbox{#1}\hss}%
-\fi
-\else
-\expandafter\raise\csname col@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@posx\endcsname
-\@docolbbox{#1}\hss}%
-\fi
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-% If an offset hasn't been specified, compute it. If the
-% frame making command is known (e.g. doublebox), compute
-% the offset according to known specifications, otherwise
-% set the negative offset to "\flowframesep" plus
-% "\flowframerule", which may or may not be correct.
-%
-%\begin{macro}{\@ff@s@t@doubleboxoffset}
-% Compute offset for "\doublebox":
-% \begin{macrocode}
-\newcommand*{\@ff@s@t@doubleboxoffset}{%
-\setlength{\@ff@offset}{-\flowframesep}%
-\addtolength{\@ff@offset}{-3.75\flowframerule}%
-\addtolength{\@ff@offset}{-.5pt}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@s@t@ovalboxoffset}
-% Compute offset for "\ovalbox":
-% \begin{macrocode}
-\newcommand*{\@ff@s@t@ovalboxoffset}{%
-\@ff@offset=-\fontdimen 8\tenln\relax
-\advance\@ff@offset by -\flowframesep\relax
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@s@t@Ovalboxoffset}
-% Compute offset for "\ovalbox":
-% \begin{macrocode}
-\newcommand*{\@ff@s@t@Ovalboxoffset}{%
-\@ff@offset=-\fontdimen 8\tenlnw\relax
-\advance\@ff@offset by -\flowframesep\relax
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@s@t@defaultoffset}
-% Compute default offset:
-% \begin{macrocode}
-\newcommand*{\@ff@s@t@defaultoffset}{%
-\@ff@offset=-\flowframesep\relax
-\addtolength{\@ff@offset}{-\flowframerule}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@setoffset}
-% Compute offset for \gls{flow} "#1". Stores offset value
-% in "\ff@offset".
-% \begin{macrocode}
-\newcommand*{\@ff@setoffset}[1]{%
-\ifthenelse{\equal{\csname @ff@offset@\romannumeral#1\endcsname}%
-{compute}}{%
-\ifthenelse{\boolean{columnframe\romannumeral#1}}{%
-\ifthenelse{%
-\equal{\csname @ff@frametype@\romannumeral#1\endcsname}%
-{doublebox}}{%
-\@ff@s@t@doubleboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @ff@frametype@\romannumeral#1\endcsname}%
-{ovalbox}}{%
-\@ff@s@t@ovalboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @ff@frametype@\romannumeral#1\endcsname}%
-{Ovalbox}}{%
-\@ff@s@t@Ovalboxoffset}{%
-\@ff@s@t@defaultoffset
-}}}%
-}{}%
-}{%
-\setlength{\@ff@offset}%
-{\csname @ff@offset@\romannumeral#1\endcsname}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sf@setoffset}
-% Compute offset for \gls{static} "#1". Stores offset value
-% in "\ff@offset".
-% \begin{macrocode}
-\newcommand*{\@sf@setoffset}[1]{%
-\ifthenelse{%
-\equal{\csname @sf@offset@\romannumeral#1\endcsname}%
-{compute}}{%
-\ifthenelse{\boolean{staticframe\romannumeral#1}}{%
-\ifthenelse{%
-\equal{\csname @sf@frametype@\romannumeral#1\endcsname}%
-{doublebox}}{%
-\@ff@s@t@doubleboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @sf@frametype@\romannumeral#1\endcsname}%
-{ovalbox}}{%
-\@ff@s@t@ovalboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @sf@frametype@\romannumeral#1\endcsname}%
-{Ovalbox}}{%
-\@ff@s@t@Ovalboxoffset
-}{%
-\@ff@s@t@defaultoffset
-}}}%
-}{}%
-}{%
-\setlength{\@ff@offset}%
-{\csname @sf@offset@\romannumeral#1\endcsname}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@df@setoffset}
-% Compute offset for \gls{dynamic} "#1". Stores offset value
-% in "\ff@offset".
-% \begin{macrocode}
-\newcommand*{\@df@setoffset}[1]{%
-\ifthenelse{%
-\equal{\csname @df@offset@\romannumeral#1\endcsname}%
-{compute}}{%
-\setlength{\@ff@offset}{0pt}%
-\ifthenelse{\boolean{dynamicframe\romannumeral#1}}{%
-\ifthenelse{%
-\equal{\csname @df@frametype@\romannumeral#1\endcsname}%
-{doublebox}}{%
-\@ff@s@t@doubleboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @df@frametype@\romannumeral#1\endcsname}%
-{ovalbox}}{%
-\@ff@s@t@ovalboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @df@frametype@\romannumeral#1\endcsname}%
-{Ovalbox}}{%
-\@ff@s@t@Ovalboxoffset}{%
-\@ff@s@t@defaultoffset
-}}}%
-}{}%
-}{%
-\setlength{\@ff@offset}%
-{\csname @df@offset@\romannumeral#1\endcsname}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@putmarginbox}
-% Draw box representing the margin for \gls{flow} "#1".
-% \begin{macrocode}
-\newcommand*{\@putmarginbox}[1]{%
-\@ff@chckifthispg{\c@page}{#1}%
-\if@notthiscol
-\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\edef\ff@x{\csname col@\romannumeral#1@posx\endcsname}%
-\edef\ff@y{\csname col@\romannumeral#1@posy\endcsname}%
-\else
-\edef\ff@x{\csname col@\romannumeral#1@evenx\endcsname}%
-\edef\ff@y{\csname col@\romannumeral#1@eveny\endcsname}%
-\fi
-\else
-\edef\ff@x{\csname col@\romannumeral#1@posx\endcsname}%
-\edef\ff@y{\csname col@\romannumeral#1@posy\endcsname}%
-\fi
-\setlength{\@ff@tmp@x}{\ff@x}%
-\setlength{\@ff@tmp@y}{\ff@y}%
-\@getmarginpos{\csname @ff@margin@\romannumeral#1\endcsname}%
-\ifthenelse{\equal{\ff@margin}{left}}{%
-\addtolength{\@ff@tmp@x}{-\marginparwidth}%
-\addtolength{\@ff@tmp@x}{-\marginparsep}%
-\ifthenelse{\boolean{columnframe\romannumeral#1}}{%
-}{}%
-}{%
-\addtolength{\@ff@tmp@x}%
-{\csname colwidth\romannumeral#1\endcsname}%
-\addtolength{\@ff@tmp@x}{\marginparsep}%
-\ifthenelse{\boolean{columnframe\romannumeral#1}}{%
-}{}%
-}%
-\raise\@ff@tmp@y
-\hb@xt@\z@{%
-\expandafter\kern\@ff@tmp@x
-\@fr@meifdraft{\@ff@box{\marginparwidth}%
-{\csname colheight\romannumeral#1\endcsname}{}}%
-{M:\number#1}\hss}\fi
-\ignorespaces}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@drawmargins}
-% Draw all the margins associated with the \glspl{flow} defined
-% on the current page.
-% \begin{macrocode}
-\newcommand*{\@ff@drawmargins}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxflow}{%
-\advance\@colN by 1\relax
-\makebox[0pt][l]{\@putmarginbox{\@colN}}%
-}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@getstaticpos}
-% Extract the width and height for static or \gls{dynamic}
-% specified in the form \oarg{c}\oarg{height}\oarg{valign}\marg{width}
-% \begin{macrocode}
-\def\@ff@getstaticpos[#1][#2][#3]#4{\@ff@tmp@x=#4\relax
-\@ff@tmp@y=#2\relax
-\def\ff@valign{#3}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@dostaticbox}
-% Display the savebox associated with \gls{static} "#1"
-% \begin{macrocode}
-\newcommand*{\@dostaticbox}[1]{%
-\edef\ff@frametype{%
-\csname @sf@frametype@\romannumeral#1\endcsname}%
-\edef\ff@col{\csname @sf@col@\romannumeral#1\endcsname}%
-\edef\ff@backcol{\csname @sf@backcol@\romannumeral#1\endcsname}%
-\@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}
-{\csname\ff@frametype\endcsname}%
-}{%
-\@ff@box{\@ff@tmp@x}{\@ff@tmp@y}%
-{\expandafter\usebox\csname @staticframe@\romannumeral#1\endcsname}%
-}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@dostaticbbox}
-% Now for the \gls{bbox}:
-% \begin{macrocode}
-\newcommand*{\@dostaticbbox}[1]{%
-\edef\ff@col{}%
-\@sf@setoffset{#1}%
-\expandafter\expandafter\expandafter
-\@ff@getstaticpos\csname @sf@dim@\romannumeral#1\endcsname
-\@fr@meifdraft{%
-\@ff@box{\@ff@tmp@x}{\@ff@tmp@y}%
-{\expandafter\usebox\csname @staticframe@\romannumeral#1\endcsname}%
-}{S:\number#1;\csname @sf@id@\romannumeral#1\endcsname}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@putstaticbox}
-% Put the static box "#1" at its given position, with its
-% associated border.
-% \begin{macrocode}
-\newcommand*{\@putstaticbox}[1]{%
-\@sf@chckifthispg{#1}%
-\if@notthiscol\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname @sf@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@posx\endcsname
-\@dostaticbox{#1}\hss}%
-\else
-\expandafter\raise\csname @sf@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@evenx\endcsname
-\@dostaticbox{#1}\hss}%
-\fi
-\else
-\expandafter\raise\csname @sf@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@posx\endcsname
-\@dostaticbox{#1}\hss}%
-\fi
-\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@putstaticbbox}
-% Now for the \gls{bbox}:
-% \begin{macrocode}
-\newcommand*{\@putstaticbbox}[1]{%
-\@sf@chckifthispg{#1}%
-\if@notthiscol\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname @sf@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@posx\endcsname
-\@dostaticbbox{#1}\hss}\ignorespaces
-\else
-\expandafter\raise\csname @sf@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@evenx\endcsname
-\@dostaticbbox{#1}\hss}\ignorespaces
-\fi
-\else
-\expandafter\raise\csname @sf@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@posx\endcsname
-\@dostaticbbox{#1}\hss}\ignorespaces
-\fi
-\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@resetst@tics}
-% Clear the contents of all the \glspl{static} that have
-% the "clear" option set.
-% \begin{macrocode}
-\newcommand*{\@resetst@tics}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxstatic}{\advance\@colN by 1\relax
-\ifthenelse{\boolean{@sf@clear@\romannumeral\@colN}}{%
-\global\sbox{%
-\csname @staticframe@\romannumeral\@colN\endcsname}{}}{}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@resetdyn@mics}
-% Clear the contents of the \glspl{dynamic} that have the "clear" option
-% set.
-% \begin{macrocode}
-\newcommand*{\@resetdyn@mics}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxdynamic}{\advance\@colN by 1\relax
-\ifthenelse{\boolean{@df@clear@\romannumeral\@colN}}{%
-\expandafter\global\expandafter
-\gdef\csname @dynamicframe@\romannumeral\@colN\endcsname{}}{}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@dodfparbox}
-% 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}
-%\end{macro}
-%\begin{macro}{\@dodynamicbox}
-% Typeset the dynamic box with its associated border.
-% \begin{macrocode}
-\newcommand*{\@dodynamicbox}[1]{%
-\edef\ff@frametype{%
-\csname @df@frametype@\romannumeral#1\endcsname}%
-\edef\ff@col{\csname @df@col@\romannumeral#1\endcsname}%
-\edef\ff@txtcol{\csname @df@txtcol@\romannumeral#1\endcsname}%
-\edef\ff@backcol{\csname @df@backcol@\romannumeral#1\endcsname}%
-\edef\ff@style{\csname @df@style@\romannumeral#1\endcsname}%
-\def\ff@contents{\csname @dynamicframe@\romannumeral#1\endcsname}%
-\@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}%
-{\@dodfparbox{#1}}%
-{\csname\ff@frametype\endcsname}%
-}{%
-\@ff@box{\@ff@tmp@x}{\@ff@tmp@y}{%
-\@dodfparbox{#1}}%
-}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@dodynamicbbox}
-% Now for the \gls{bbox}:
-% \begin{macrocode}
-\newcommand*{\@dodynamicbbox}[1]{%
-\edef\ff@col{}%
-\@df@setoffset{#1}%
-\expandafter\expandafter\expandafter
-\@ff@getstaticpos\csname @df@dim@\romannumeral#1\endcsname
-\@fr@meifdraft{%
-\@ff@box{\@ff@tmp@x}{\@ff@tmp@y}{%
-\expandafter\expandafter\expandafter
-\parbox\csname @df@dim@\romannumeral#1\endcsname
-{}}%
-}{D:\number#1;\csname @df@id@\romannumeral#1\endcsname}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@putdynamicbox}
-% Put the \gls{dynamic} "#1" at its given position
-% \begin{macrocode}
-\newcommand*{\@putdynamicbox}[1]{%
-\@df@chckifthispg{#1}%
-\if@notthiscol\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname @df@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@posx\endcsname
-\@dodynamicbox{#1}\hss}\ignorespaces
-\else
-\expandafter\raise\csname @df@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@evenx\endcsname
-\@dodynamicbox{#1}\hss}\ignorespaces
-\fi
-\else
-\expandafter\raise\csname @df@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@posx\endcsname
-\@dodynamicbox{#1}\hss}\ignorespaces
-\fi
-\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@putdynamicbbox}
-% Bounding box:
-% \begin{macrocode}
-\newcommand*{\@putdynamicbbox}[1]{%
-\@df@chckifthispg{#1}%
-\if@notthiscol\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname @df@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@posx\endcsname
-\@dodynamicbbox{#1}\hss}\ignorespaces
-\else
-\expandafter\raise\csname @df@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@evenx\endcsname
-\@dodynamicbbox{#1}\hss}\ignorespaces
-\fi
-\else
-\expandafter\raise\csname @df@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@posx\endcsname
-\@dodynamicbbox{#1}\hss}\ignorespaces
-\fi
-\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@doheader}
-% Do standard header in the standard place.
-% \begin{macrocode}
-\newcommand*{\@@doheader}{%
-\setlength\@ff@tmp@y{\textheight}%
-\addtolength{\@ff@tmp@y}{\headsep}%
-\def\ff@col{}%
-\def\ff@txtcol{}%
-\def\ff@backcol{{none}}%
-\@ff@box{0pt}{\@ff@tmp@y}{\makebox[0pt][l]{\@dothehead}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@dofooter}
-% Do standard footer in the standard place.
-% \begin{macrocode}
-\newcommand*{\@@dofooter}{%
-\setlength\@ff@tmp@y{-\footskip}%
-\def\ff@col{}%
-\def\ff@txtcol{}%
-\def\ff@backcol{{none}}%
-\@ff@box{0pt}{\@ff@tmp@y}{\makebox[0pt][l]{\@dothefoot}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@s@tfr@mes}
-% This is a modified version of the way the picture environment
-% works:
-% \begin{macrocode}
-\newcommand{\@s@tfr@mes}[1]{{\@picht\textheight
-\setbox\@picbox\hb@xt@ \textwidth
-\bgroup \hbox \bgroup #1\relax
-\egroup
-\hss \egroup
-\ht\@picbox\@picht \dp\@picbox
-\z@ \mbox{\box \@picbox}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@doallflowframes}
-% Puts all the \glspl{flow} defined on the current page
-% \begin{macrocode}
-\newcommand*{\@ff@doallflowframes}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxflow}{\advance\@colN by 1\relax
-\@putcolbox{\@colN}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@doallflowframesbbox}
-% Flow frame \glspl{bbox}:
-% \begin{macrocode}
-\newcommand*{\@ff@doallflowframesbbox}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxflow}{\advance\@colN by 1\relax
-\@putcolbbox{\@colN}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@doallstatics}
-% Puts all \glspl{static} defined on the current page
-% \begin{macrocode}
-\newcommand*{\@ff@doallstatics}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxstatic}{\advance\@colN by 1\relax
-\@putstaticbox{\@colN}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@doallstaticsbbox}
-% Static frame \glspl{bbox}:
-% \begin{macrocode}
-\newcommand*{\@ff@doallstaticsbbox}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxstatic}{\advance\@colN by 1\relax
-\@putstaticbbox{\@colN}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@doalldynamics}
-% Puts all the \glspl{dynamic} defined on the current page
-% \begin{macrocode}
-\newcommand*{\@ff@doalldynamics}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxdynamic}{\advance\@colN by 1\relax
-\@putdynamicbox{\@colN}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@doalldynamicsbbox}
-% Dynamic frame \glspl{bbox}:
-% \begin{macrocode}
-\newcommand*{\@ff@doalldynamicsbbox}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxdynamic}{\advance\@colN by 1\relax
-\@putdynamicbbox{\@colN}}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@dotypeblock}
-% Draw \gls{typeblock} frame if draft.
-% \begin{macrocode}
-\newcommand*{\@ff@dotypeblock}{%
-\makebox[0pt][l]{\@fr@meifdraft[\setffdrafttypeblockcolor]{%
-\vbox to \textheight{\hbox to \textwidth{}}}{}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ff@do@allframes}
-% Put all frames defined on the current page.
-% \begin{macrocode}
-\newlength\ffevenoffset
-\newcommand*{\@ff@do@allframes}{%
-\ffevenoffset=0pt\relax
-\if@twoside
- \ifodd\c@page
- \else
- \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
-\@@dofooter
-\@ff@doallflowframes
-\@ff@doalldynamics
-\ifshowtypeblock
- \@ff@dotypeblock
-\fi
-\ifshowframebbox
- \@ff@doallstaticsbbox
- \@ff@doallflowframesbbox
- \@ff@doalldynamicsbbox
-\fi
-\ifshowmargins
- \@ff@drawmargins
-\fi
-}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@outputdblcol}
-% This was modified from the output routine for standard
-% two column format. After "\@g@tnextcol", the register
-% "\c@curpg" contains the page that the next \gls{flow}
-% is on. If "\c@curpg" minus "\c@page" is greater
-% than 1, then there is at least one page without a \gls{flow}.
-% These pages will have to be shipped before \TeX\ can
-% continue with the rest of the document.
-% \begin{macrocode}
-\newcount\@nxtcol
-\def\@outputdblcol{%
-\@nxtcol=\c@thisframe
-\c@curpg=\c@page
-\@g@tnextcol{\@nxtcol}%
-\if@ff@nwpg % next flow frame starts on new page
- \global\@firstcolumntrue
- \@setcolbox\c@thisframe
- \if@specialpage
- \global\@specialpagefalse
- \@nameuse{ps@\@specialstyle}\relax
- \fi
- \if@twoside
- \ifodd\count\z@
- \let\@thehead\@oddhead
- \let\@thefoot\@oddfoot
- \else
- \let\@thehead\@evenhead
- \let\@thefoot\@evenfoot
- \fi
- \else
- \let\@thehead\@oddhead
- \let\@thefoot\@oddfoot
- \fi
- \@begindvi
- \@dodynamicthehead\@dodynamicthefoot
- \vbadness=\@M
- \setbox\@outputbox\vbox{\hbox to \textwidth{\@ff@do@allframes}}%
- \@combinedblfloats
- \@outputpage
-%shipout pages without flow frames
-\advance\c@curpg by -\c@page\relax
- \whiledo{\c@curpg>0}{\advance\c@curpg by -1\relax
- \setbox\@outputbox\vbox{\hbox to \textwidth{\@ff@do@allframes}}%
-\@outputpage}
- \begingroup
- \@dblfloatplacement
- \@startdblcolumn
- \@whilesw \if@fcolmade \fi
- {\@outputpage \@startdblcolumn }\endgroup
- \@resetst@tics
- \@resetdyn@mics
-\else % still on same page, save contents of box255
- \global\@firstcolumnfalse
- \@setcolbox\c@thisframe
-\fi
-\global\c@thisframe=\@nxtcol
-\@setcol{\c@thisframe}\relax
-\global\@colht\vsize
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@dblfloatplacement}
-% Modify "\@dblfloatplacement" replacing "\textheight"
-% with "\vsize".
-% \begin{macrocode}
-\def\@dblfloatplacement{%
- \global\@dbltopnum\c@dbltopnumber
- \global\@dbltoproom\dbltopfraction\@colht\@textmin
- \@colht\advance\@textmin -\@dbltoproom
- \@fpmin\dblfloatpagefraction\vsize
- \@fptop \@dblfptop \@fpsep \@dblfpsep \@fpbot \@dblfpbot}
-% \end{macrocode}
-%\end{macro}
-%
-%\subsection{Static versions of floats}
-% Floats can not go in saveboxes or minipages, so define
-% static versions to go in static and \glspl{dynamic}.
-% These just set "\@captype" so that the "\caption"
-% command may be used.
-%\begin{environment}{statictable}
-% \begin{macrocode}
-\newenvironment{statictable}{\def\@captype{table}}{}
-% \end{macrocode}
-%\end{environment}
-%\begin{environment}{staticfigure}
-% \begin{macrocode}
-\newenvironment{staticfigure}{\def\@captype{figure}}{}
-% \end{macrocode}
-%\end{environment}
-%
-%\subsection{Standard Layouts}
-%\subsubsection{Column Styles}
-% Redefine "\twocolumn" and "\onecolumn" to set up \glspl{flow} from
-% the dimensions of the \gls{typeblock}. Ignore the optional argument.
-% The \gls{flow} height will be adjusted to make sure that it
-% is an integer multiple of "\baselineskip", unless
-% "\ffvajdustfalse" is used.
-% \begin{macrocode}
-\newif\ifffvadjust
-\ffvadjusttrue
-% \end{macrocode}
-%\begin{macro}{\onecolumn}
-% "\onecolumn" will make a single \gls{flow} that takes
-% up the entire area of the \gls{typeblock} (adjusted according
-% to "\ifffvadjust".) Frames should only be created in
-% the preamble, otherwise the next \gls{flow} may not
-% be detected by the output routine. The exception to this
-% is when the output routine can't find any more \glspl{flow}
-% to use, in which case it creates a single \gls{flow} using
-% "\@onecolumn". Therefore, make "\onecolumn" use "\@onecolumn",
-% and then set "\onecolumn" as a preamble command, so it
-% can't be used in the document, but the output routine can
-% use "\@onecolumn". Syntax: \cs{onecolumn}\oarg{pages},
-% where \meta{pages} is the \gls{pglist} for which the new
-% \gls{flow} is defined.
-% \begin{macrocode}
-\renewcommand*{\onecolumn}{\@onecolumn}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@onecolumn}
-% \begin{macrocode}
-\newcommand*{\@onecolumn}[1][all]{%
-\@onecolumninarea[#1]{\textwidth}{\textheight}{0pt}{0pt}}
-% \end{macrocode}
-%\end{macro}
-% Need a length to store the height of
-% the \gls{flow} so that it can be adjusted.
-% \begin{macrocode}
-\newlength\columnheight
-% \end{macrocode}
-%\begin{macro}{\onecolumninarea}
-% "\onecolumn" is in fact a special case of "\onecolumninarea"
-% which sets up one \gls{flow} in the specified area, given
-% by bottom left corner (\meta{x}, \meta{y}),
-% relative to the \gls{typeblock}, with width \meta{w}
-% and height \meta{h}.
-% The only difference between "\onecolumninarea" and
-% explicitly creating the \gls{flow} using "\newflowframe"
-% is the "\onecolumninarea" will adjust the vertical height
-% the ensure it is a multiple of "\baselineskip". There
-% is also no starred version, so if you want a border, you
-% will need to set it explicitly using "\setflowframe".
-% Syntax:\newline
-% \cs{onecolumninarea}\oarg{pages}\marg{w}\marg{h}\marg{x}\marg{y}.
-% \begin{macrocode}
-\newcommand*{\onecolumninarea}{\@onecolumninarea}
-\@onlypreamble{\onecolumninarea}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@onecolumninarea}
-% \begin{macrocode}
-\newcommand*{\@onecolumninarea}[5][all]{%
-\setlength{\columnheight}{#3}%
-\ifffvadjust\adjustheight{\columnheight}\fi%
-\@n@wflowframe[#1]{#2}{\columnheight}{#4}{#5}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumn}
-% Set up two \glspl{flow} parallel to each other
-% with a distance of "\columnsep" between them, to
-% fill the entire \gls{typeblock} (although the frames may
-% end up marginally shorter than "\textheight" after
-% they have been adjusted.) Again, these commands may only
-% be used in the preamble. Note that unlike the standard
-% "\twocolumn" command, this one has an optional argument
-% that indicates which pages the two \glspl{flow} should
-% appear on. Syntax: \cs{twocolumn}\oarg{pages}.
-% \begin{macrocode}
-\renewcommand*{\twocolumn}{\@twocolumn}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@twocolumn}
-% \begin{macrocode}
-\newcommand*{\@twocolumn}[1][all]{%
-\@twocolumninarea[#1]{\textwidth}{\textheight}{0pt}{0pt}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumninarea}
-% Again, "\twocolumn" is actually a special case of
-% "\twocolumninarea".
-% Syntax:\newline
-% \cs{twocolumninarea}\oarg{pages}\marg{w}\marg{h}\marg{x}\marg{y}.
-% \begin{macrocode}
-\newcommand*{\twocolumninarea}{\@twocolumninarea}
-\@onlypreamble{\twocolumninarea}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@twocolumninarea}
-% \begin{macrocode}
-\newcommand*{\@twocolumninarea}[5][all]{%
- \setlength{\columnheight}{#3}%
- \ifffvadjust\adjustheight{\columnheight}\fi%
- \setlength{\columnwidth}{#2}%
- \addtolength{\columnwidth}{-\columnsep}%
- \divide\columnwidth by 2\relax
- \setlength{\@ff@tmp@x}{#4}%
- \addtolength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \iflefttorightcolumns
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{#4}{#5}%
- \setflowframe{\c@maxflow}{margin=left}%
- \else
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#5}%
- \setflowframe{\c@maxflow}{margin=right}%
- \fi
- \iflefttorightcolumns
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#5}%
- \setflowframe{\c@maxflow}{margin=right}%
- \else
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{#4}{#5}%
- \setflowframe{\c@maxflow}{margin=left}%
- \fi
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\Ncolumn}
-% Again for an aribtrary number of columns (\meta{n}). Syntax:
-% \cs{Ncolumn}\oarg{pages}\marg{n}.
-% \begin{macrocode}
-\newcommand*{\Ncolumn}[2][all]{%
-\Ncolumninarea[#1]{#2}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\Ncolumn}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\Ncolumninarea}
-% Check the number of \glspl{flow} requested, and do one
-% of the special cases if available.
-% Syntax:\newline
-% \cs{Ncolumninarea}\oarg{pages}\marg{n}\marg{w}\marg{h}\marg{x}\marg{y}.
-% \begin{macrocode}
-\newcommand*{\Ncolumninarea}[6][all]{%
-\ifnum#2>2\relax
- \@Ncolumninarea[#1]{#2}{#3}{#4}{#5}{#6}%
-\else
- \ifcase#2\relax
- \PackageError{flowfram}{%
- You have requested 0 flowframes!}{%
- It does not make much sense to ask to create 0 flow frames}%
- \or
- \onecolumninarea[#1]{#3}{#4}{#5}{#6}%
- \or
- \twocolumninarea[#1]{#3}{#4}{#5}{#6}%
- \else
- \PackageError{flowfram}{%
- Can't create a negative number of flow frames!}{%
- You have asked for \number#2 \space flow frames
- which really doesn't make sense}%
- \fi
-\fi
-}
-
-\@onlypreamble{\Ncolumninarea}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@Ncolumninarea}
-% Set up \meta{n} columns in the area specified.
-% There is a horizontal distance of "\columnsep"
-% between them all.
-% \begin{macrocode}
-\newcommand*{\@Ncolumninarea}[6][all]{%
- \@colN=#2\relax
- \advance\@colN by -1\relax
- \setlength{\columnwidth}{#3}%
- \addtolength{\columnwidth}{-\@colN\columnsep}%
- \divide\columnwidth by #2\relax
- \setlength{\@ff@tmp@x}{#5}%
- \iflefttorightcolumns
- \else
- \addtolength{\@ff@tmp@x}{#3}%
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \fi
- \setlength{\columnheight}{#4}%
- \ifffvadjust\adjustheight{\columnheight}\fi%
- \@colN=0\relax
- \loop
- \advance\@colN by 1\relax
- \newflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#6}%
- \iflefttorightcolumns
- \addtolength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \else
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \addtolength{\@ff@tmp@x}{-\columnsep}%
- \fi
- \ifnum\@colN<#2
- \repeat
-}
-% \end{macrocode}
-%\end{macro}
-%
-% Set up something similar but have another frame (of type
-% \meta{type}) at the top of the other frames.
-%\begin{macro}{\vcolumnsep}
-% The vertical distance between the top frames and column flow
-% frames when created using "\Ncolumntop" etc is given by:
-% \begin{macrocode}
-\newlength{\vcolumnsep}
-\setlength{\vcolumnsep}{\columnsep}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\onecolumntop}
-% "\onecolumntop" makes one \gls{flow}, and one \meta{type}
-% frame in the area specified, where the \meta{type} frame is
-% \meta{H} high.
-% The distance between the top frame and the column \gls{flow}
-% will be approximately "\vcolumnsep". (The height of \gls{flow}
-% may be adjusted to make it an integer multiple of
-% "\baselineskip".)
-%
-% First the special case where the area is the \gls{typeblock}.
-% Syntax:\newline
-% \cs{onecolumntop}\oarg{pages}\marg{type}\marg{H}
-% \begin{macrocode}
-\newcommand*{\onecolumntop}[3][all]{%
-\onecolumntopinarea[#1]{#2}{#3}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\onecolumntop}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\onecolumnStop}
-% Special case for \gls{static}.
-% Syntax: \cs{onecolumnStop}\oarg{pages}\marg{H}
-% \begin{macrocode}
-\newcommand*{\onecolumnStop}[2][all]{%
-\onecolumntopinarea[#1]{static}{#2}{\textwidth}{\textheight}{0pt}{0pt}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\onecolumnDtop}
-% Special case for \gls{dynamic}.
-% Syntax: \cs{onecolumnDtop}\oarg{pages}\marg{H}
-% \begin{macrocode}
-\newcommand*{\onecolumnDtop}[2][all]{%
-\onecolumntopinarea[#1]{dynamic}{#2}{\textwidth}{\textheight}{0pt}{0pt}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\newframe}
-% Create a frame of given type.
-% Syntax:\newline
-% \cs{newframe}\oarg{pages}\marg{type}\marg{w}\marg{h}\marg{x}\marg{y}.
-% \begin{macrocode}
-\newcommand*{\newframe}[6][all]{%
-\ifthenelse{\equal{#2}{flow}}{%
-\@n@wflowframe[#1]{#3}{#4}{#5}{#6}%
-}{%
-\ifthenelse{\equal{#2}{dynamic}}{%
-\@n@wdynamicframe[#1]{#3}{#4}{#5}{#6}}{%
-\ifthenelse{\equal{#2}{static}}{%
-\@n@wstaticframe[#1]{#3}{#4}{#5}{#6}}{%
-\PackageError{flowfram}{Unknown frame type '#2'}{%
-Available frame types are: 'flow', 'static' and 'dynamic'}}}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\onecolumntopinarea}
-% Now for a specified area.
-% Syntax:\newline
-% \cs{onecolumntopinarea}\oarg{pages}\marg{type}\marg{H}\marg{w}\marg{h}\marg{x}\marg{y}.
-% \begin{macrocode}
-\newlength\@ff@staticH
-
-\newcommand*{\onecolumntopinarea}[7][all]{%
-\setlength{\@ff@staticH}{#3}%
-\setlength{\@ff@tmp@y}{#5}%
-\addtolength{\@ff@tmp@y}{-\@ff@staticH}%
-\setlength{\columnheight}{\@ff@tmp@y}%
-\addtolength{\columnheight}{-\vcolumnsep}%
-\ifffvadjust\adjustheight{\columnheight}\fi%
-\addtolength{\@ff@tmp@y}{#7}%
-\newframe[#1]{#2}{#4}{\@ff@staticH}{#6}{\@ff@tmp@y}%
-\@n@wflowframe[#1]{#4}{\columnheight}{#6}{#7}%
-}
-
-\@onlypreamble{\onecolumntopinarea}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\onecolumnStopinarea}
-% Special case for \gls{static}.
-% Syntax:\newline
-% \cs{onecolumnStopinarea}\oarg{pages}\marg{H}\marg{w}\marg{h}\marg{x}\marg{y}.
-% \begin{macrocode}
-\newcommand*{\onecolumnStopinarea}[6][all]{%
-\onecolumntopinarea[#1]{static}{#2}{#3}{#4}{#5}{#6}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\onecolumnDtopinarea}
-% Special case for \gls{dynamic}.
-% Syntax:\newline
-% \cs{onecolumnDtopinarea}\oarg{pages}\marg{H}\marg{w}\marg{h}\marg{x}\marg{y}.
-% \begin{macrocode}
-\newcommand*{\onecolumnDtopinarea}[6][all]{%
-\onecolumntopinarea[#1]{dynamic}{#2}{#3}{#4}{#5}{#6}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumntop}
-% Now for two \glspl{flow}, with a single \meta{type} frame
-% above both of them.
-% Syntax:\newline
-% \cs{twocolumntop}\oarg{pages}\marg{type}\marg{H}
-%
-% First the special case where the area is the entire
-% \gls{typeblock}:
-% \begin{macrocode}
-\newcommand*{\twocolumntop}[3][all]{%
-\twocolumntopinarea[#1]{#2}{#3}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\twocolumntop}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumnStop}
-% Special case for \gls{static}.
-% \begin{macrocode}
-\newcommand*{\twocolumnStop}[2][all]{%
-\@twocolumntopinarea[#1]{static}{#2}{\textwidth}{\textheight}{0pt}{0pt}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumnDtop}
-% Special case for \gls{dynamic}.
-% \begin{macrocode}
-\newcommand*{\twocolumnDtop}[2][all]{%
-\twocolumntop[#1]{dynamic}{#2}}
-% \end{macrocode}
-%\end{macro}
-%
-% Now for a general area.
-%\begin{macro}{\twocolumntopinarea}
-% Syntax:\newline
-% \cs{twocolumntopinarea}\oarg{pages}\marg{type}\marg{H}\marg{w}\marg{h}\marg{x}\marg{y}.
-% \begin{macrocode}
-\newcommand*{\twocolumntopinarea}{\@twocolumntopinarea}
-\newcommand*{\@twocolumntopinarea}[7][all]{%
- \setlength{\@ff@staticH}{#3}%
-% \end{macrocode}
-% work out where to put the static frame
-% \begin{macrocode}
- \setlength{\@ff@tmp@y}{#5}%
- \addtolength{\@ff@tmp@y}{-\@ff@staticH}%
- \setlength{\columnheight}{\@ff@tmp@y}%
- \addtolength{\@ff@tmp@y}{#7}%
- \newframe[#1]{#2}{#4}{\@ff@staticH}{#6}{\@ff@tmp@y}%
-% \end{macrocode}
-% work out height of the flow frames
-% \begin{macrocode}
- \addtolength{\columnheight}{-\vcolumnsep}%
- \ifffvadjust\adjustheight{\columnheight}\fi
-% \end{macrocode}
-% work out the widths of the flow frames
-% \begin{macrocode}
- \setlength{\columnwidth}{#4}%
- \addtolength{\columnwidth}{-\columnsep}%
- \divide\columnwidth by 2\relax
-% \end{macrocode}
-% work out the offset of the right column
-% \begin{macrocode}
- \setlength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \addtolength{\@ff@tmp@x}{#6}%
- \iflefttorightcolumns
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{#6}{#7}%
- \setflowframe{\c@maxflow}{margin=left}%
- \else
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#7}%
- \setflowframe{\c@maxflow}{margin=right}%
- \fi
- \iflefttorightcolumns
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#7}%
- \setflowframe{\c@maxflow}{margin=right}%
- \else
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{#6}{#7}%
- \setflowframe{\c@maxflow}{margin=left}%
- \fi
-}
-\@onlypreamble{\twocolumntopinarea}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumnStopinarea}
-% Special case for \gls{static}.
-% \begin{macrocode}
-\newcommand*{\twocolumnStopinarea}[6][all]{%
-\twocolumntopinarea[#1]{static}{#2}{#3}{#4}{#5}{#6}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumnDtopinarea}
-% Special case for \gls{dynamic}.
-% \begin{macrocode}
-\newcommand*{\twocolumnDtopinarea}[6][all]{%
-\twocolumntopinarea[#1]{dynamic}{#2}{#3}{#4}{#5}{#6}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\Ncolumntop}
-% Similarly for an arbitrary number of \glspl{flow}.
-% Special case where the area is the \gls{typeblock}.
-%
-% Syntax:\newline
-% \cs{Ncolumntop}\oarg{pages}\marg{type}\marg{n}\marg{H}
-% \begin{macrocode}
-\newcommand*{\Ncolumntop}[4][all]{%
-\Ncolumntopinarea[#1]{#2}{#3}{#4}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\Ncolumntop}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\NcolumnStop}
-% Special case for \gls{static}.
-% \begin{macrocode}
-\newcommand*{\NcolumnStop}[3][all]{%
-\Ncolumntop[#1]{static}{#2}{#3}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\NcolumnDtop}
-% Special case for \gls{dynamic}.
-% \begin{macrocode}
-\newcommand*{\NcolumnDtop}[3][all]{%
-\Ncolumntop[#1]{dynamic}{#2}{#3}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\Ncolumntopinarea}
-% Again test to make sure the user requested a sensible
-% number.
-% \begin{macrocode}
-\newcommand*{\Ncolumntopinarea}[8][all]{%
-\ifnum#3>2\relax
- \@Ncolumntopinarea[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
-\else
- \ifcase#3\relax
- \PackageError{flowfram}{%
- You have requested 0 flowframes!}{%
- It does not make much sense to ask to create 0 flow frames}
- \or
- \onecolumntopinarea[#1]{#2}{#4}{#5}{#6}{#7}{#8}%
- \or
- \twocolumntopinarea[#1]{#2}{#4}{#5}{#6}{#7}{#8}%
- \else
- \PackageError{flowfram}{%
- Can't create a negative number of flow frames!}{%
- You have asked for \number#3 \space flow frames
- which really doesn't make sense}%
- \fi
-\fi
-}
-\@onlypreamble{\Ncolumntopinarea}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@Ncolumntopinarea}
-% Fit the frames into specified area.
-% Syntax:\newline
-% \cs{Ncolumntopinarea}\oarg{pages}\marg{type}\marg{n}\marg{H}\marg{w}\marg{h}\marg{x}\marg{y}.
-% \begin{macrocode}
-\newcommand*{\@Ncolumntopinarea}[8][all]{%
- \setlength{\@ff@staticH}{#4}%
-% \end{macrocode}
-% work out where to put the static frame
-% \begin{macrocode}
- \setlength{\@ff@tmp@y}{#6}%
- \addtolength{\@ff@tmp@y}{-\@ff@staticH}%
- \setlength{\columnheight}{\@ff@tmp@y}%
- \addtolength{\@ff@tmp@y}{#8}%
- \newframe[#1]{#2}{#5}{\@ff@staticH}{#7}{\@ff@tmp@y}%
-% \end{macrocode}
-% work out height of the flow frames
-% \begin{macrocode}
- \addtolength{\columnheight}{-\vcolumnsep}%
-% \end{macrocode}
-% adjust the flow frame height so that it is a multiple of
-% \cs{baselineskip}
-% \begin{macrocode}
- \ifffvadjust\adjustheight{\columnheight}\fi%
-% \end{macrocode}
-% work out the widths of the flow frames
-% \begin{macrocode}
- \@colN=#3\relax
- \advance\@colN by -1\relax
- \setlength{\columnwidth}{#5}%
- \addtolength{\columnwidth}{-\@colN\columnsep}%
- \divide\columnwidth by #3\relax
-% \end{macrocode}
-% Set the $x$ position of the first frame
-% \begin{macrocode}
- \setlength{\@ff@tmp@x}{#7}%
- \iflefttorightcolumns
- \else
- \addtolength{\@ff@tmp@x}{#5}%
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \fi
- \@colN=0\relax
- \loop
- \advance\@colN by 1\relax
- \newflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#8}%
-% \end{macrocode}
-% work out the offset for the next column
-% \begin{macrocode}
- \iflefttorightcolumns
- \addtolength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \else
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \addtolength{\@ff@tmp@x}{-\columnsep}%
- \fi
- \ifnum\@colN<#3
- \repeat
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\NcolumnStopinarea}
-% Specific case for \gls{static}.
-% \begin{macrocode}
-\newcommand*{\NcolumnStopinarea}[7][all]{%
-\Ncolumntopinarea[#1]{static}{#2}{#3}{#4}{#5}{#6}{#7}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\NcolumnDtopinarea}
-% Specific case for \gls{dynamic}.
-% \begin{macrocode}
-\newcommand*{\NcolumnDtopinarea}[7][all]{%
-\Ncolumntopinarea[#1]{dynamic}{#2}{#3}{#4}{#5}{#6}{#7}}
-% \end{macrocode}
-%\end{macro}
-% Now the same kind of thing but with the \meta{type} frame at the
-% bottom. Firstly, a single \gls{flow} with a \meta{type}
-% frame below it.
-%
-%\begin{macro}{\onecolumnbottom}
-% Syntax:\newline
-% \cs{onecolumnbottom}\oarg{pages}\marg{type}\marg{H}
-% \begin{macrocode}
-\newcommand*{\onecolumnbottom}[3][all]{%
-\onecolumnbottominarea[#1]{#2}{#3}{\textwidth}{\textheight}{0pt}{0pt}}
-% \end{macrocode}
-%\end{macro}
-% This command may only be used in the preamble.
-% \begin{macrocode}
-\@onlypreamble{\onecolumnbottom}
-% \end{macrocode}
-%\begin{macro}{\onecolumnSbottom}
-% Special case for \gls{static}.
-% \begin{macrocode}
-\newcommand*{\onecolumnSbottom}[2][all]{%
-\onecolumnbottom[#1]{static}{#2}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\onecolumnDbottom}
-% Special case for \gls{dynamic}.
-% \begin{macrocode}
-\newcommand*{\onecolumnDbottom}[2][all]{%
-\onecolumnbottom[#1]{dynamic}{#2}}
-% \end{macrocode}
-%\end{macro}
-%
-% General case of the above, but fit in specified area.
-%\begin{macro}{\onecolumnbottominarea}
-% Syntax:\newline
-% \cs{onecolumnbottominarea}\oarg{pages}\marg{type}\marg{H}\marg{w}\marg{h}\marg{x}\marg{y},\newline
-% where \meta{H} is the \meta{type} frame's height.
-% The area is defined by bottom
-% left co-ordinates (\meta{x}, \meta{y}) width \meta{w}, and
-% height \meta{h}.
-% \begin{macrocode}
-\newcommand*{\onecolumnbottominarea}[7][all]{%
- \setlength{\@ff@staticH}{#3}%
- \setlength{\columnheight}{#5}%
- \addtolength{\columnheight}{-\@ff@staticH}%
- \addtolength{\columnheight}{-\vcolumnsep}%
- \ifffvadjust\adjustheight{\columnheight}\fi%
- \setlength{\@ff@tmp@y}{#5}%
- \addtolength{\@ff@tmp@y}{-\columnheight}%
- \addtolength{\@ff@tmp@y}{#7}%
- \newframe[#1]{#2}{#4}{\@ff@staticH}{#6}{#7}%
- \newflowframe[#1]{#4}{\columnheight}{#6}{\@ff@tmp@y}%
-}
-% \end{macrocode}
-%\end{macro}
-% Again, this command may only be used in the preamble.
-% \begin{macrocode}
-\@onlypreamble{\onecolumnbottominarea}
-% \end{macrocode}
-%\begin{macro}{\onecolumnSbottominarea}
-% Special case for \gls{static}.
-% \begin{macrocode}
-\newcommand*{\onecolumnSbottominarea}[6][all]{%
-\onecolumnbottominarea[#1]{static}{#2}{#3}{#4}{#5}{#6}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\onecolumnDbottominarea}
-% Special case for \gls{dynamic}.
-% \begin{macrocode}
-\newcommand*{\onecolumnDbottominarea}[6][all]{%
-\onecolumnbottominarea[#1]{dynamic}{#2}{#3}{#4}{#5}{#6}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumnbottom}
-% Now for two \glspl{flow} side by side with a static
-% frame underneath both of them. Firstly, the specific
-% case where the area is the entire \gls{typeblock}.
-% Syntax:\newline
-% \cs{twocolumnbottom}\oarg{pages}\marg{type}\marg{H}.
-% \begin{macrocode}
-\newcommand*{\twocolumnbottom}[3][all]{%
-\twocolumnSbottominarea[#1]{#2}{#3}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\twocolumnbottom}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumnSbottom}
-% Special case for \gls{static}.
-% \begin{macrocode}
-\newcommand*{\twocolumnSbottom}[2][all]{%
-\twocolumnbottom[#1]{static}{#2}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumnDbottom}
-% Special case for \gls{dynamic}.
-% \begin{macrocode}
-\newcommand*{\twocolumnDbottom}[2][all]{%
-\twocolumnbottom[#1]{dynamic}{#2}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumnbottominarea}
-% Now for a general area.
-% Syntax:\newline
-% \cs{twocolumnbottominarea}\oarg{pages}\marg{type}\marg{H}\marg{w}\marg{h}\marg{x}\marg{y}.
-% \begin{macrocode}
-\newcommand*{\twocolumnbottominarea}[7][all]{%
- \setlength{\@ff@staticW}{#4}%
- \setlength{\@ff@staticH}{#3}%
-% \end{macrocode}
-% work out height of the flow frames
-% \begin{macrocode}
- \setlength{\columnheight}{#5}%
- \addtolength{\columnheight}{-\@ff@staticH}%
- \addtolength{\columnheight}{-\vcolumnsep}%
- \ifffvadjust\adjustheight{\columnheight}\fi%
- \newframe[#1]{#2}{\@ff@staticW}{\@ff@staticH}{#6}{#7}%
-% \end{macrocode}
-% work out the $y$ position of the flow frames
-% \begin{macrocode}
- \setlength{\@ff@tmp@y}{#5}%
- \addtolength{\@ff@tmp@y}{-\columnheight}%
- \addtolength{\@ff@tmp@y}{#7}%
-% \end{macrocode}
-% work out the widths of the flow frames
-% \begin{macrocode}
- \setlength{\columnwidth}{\@ff@staticW}%
- \addtolength{\columnwidth}{-\columnsep}%
- \divide\columnwidth by 2\relax
-% \end{macrocode}
-% work out the $x$ offset of the right column
-% \begin{macrocode}
- \setlength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \addtolength{\@ff@tmp@x}{#6}%
-% \end{macrocode}
-% Define the frames
-% \begin{macrocode}
- \iflefttorightcolumns
- \newflowframe[#1]{\columnwidth}{\columnheight}{#6}{\@ff@tmp@y}%
- \setflowframe{\c@maxflow}{margin=left}%
- \else
- \newflowframe[#1]{\columnwidth}{\columnheight}%
- {\@ff@tmp@x}{\@ff@tmp@y}%
- \setflowframe{\c@maxflow}{margin=right}%
- \fi
- \iflefttorightcolumns
- \newflowframe[#1]{\columnwidth}{\columnheight}%
- {\@ff@tmp@x}{\@ff@tmp@y}%
- \setflowframe{\c@maxflow}{margin=right}%
- \else
- \newflowframe[#1]{\columnwidth}{\columnheight}{#6}{\@ff@tmp@y}%
- \setflowframe{\c@maxflow}{margin=left}%
- \fi
-}
-\@onlypreamble{\twocolumnbottominarea}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumnSbottominarea}
-% Special case for \gls{static}.
-% \begin{macrocode}
-\newcommand*{\twocolumnSbottominarea}[6][all]{%
-\twocolumnbottominarea[#1]{static}{#2}{#3}{#4}{#5}{#6}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\twocolumnDbottominarea}
-% Special case for \gls{dynamic}.
-% \begin{macrocode}
-\newcommand*{\twocolumnDbottominarea}[6][all]{%
-\twocolumnbottominarea[#1]{dynamic}{#2}{#3}{#4}{#5}{#6}}
-% \end{macrocode}
-%\end{macro}
-% Now for an arbitrary number of parallel \glspl{flow}
-% with a \gls{static} beneath all of them.
-%
-%\begin{macro}{\Ncolumnbottom}
-% First make them fill the entire \gls{typeblock}.
-% Syntax:\newline
-% \cs{Ncolumnbottom}\oarg{pages}\marg{type}\marg{H}.
-% \begin{macrocode}
-\newcommand*{\Ncolumnbottom}[4][all]{%
-\Ncolumnbottominarea[#1]{#2}{#3}{#4}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\Ncolumnbottom}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\NcolumnSbottom}
-% Special case for \gls{static}.
-% \begin{macrocode}
-\newcommand*{\NcolumnSbottom}[3][all]{%
-\Ncolumnbottom[#1]{static}{#2}{#3}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\NcolumnDbottom}
-% Special case for \gls{dynamic}.
-% \begin{macrocode}
-\newcommand*{\NcolumnDbottom}[3][all]{%
-\Ncolumnbottom[#1]{dynamic}{#2}{#3}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\Ncolumnbottominarea}
-% Again check the user has requested a sensible number.
-% \begin{macrocode}
-\newcommand*{\Ncolumnbottominarea}[8][all]{%
-\ifnum#3>2\relax
- \@Ncolumnbottominarea[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
-\else
- \ifcase#3\relax
- \PackageError{flowfram}{%
- You have requested 0 flowframes!}{%
- It does not make much sense to ask to create 0 flow frames}
- \or
- \onecolumnbottominarea[#1]{#2}{#4}{#5}{#6}{#7}{#8}%
- \or
- \twocolumnbottominarea[#1]{#2}{#4}{#5}{#6}{#7}{#8}%
- \else
- \PackageError{flowfram}{%
- Can't create a negative number of flow frames!}{%
- You have asked for \number#3 \space flow frames
- which really doesn't make sense}%
- \fi
-\fi
-}
-\@onlypreamble{\Ncolumnbottominarea}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@NcolumnSbottominarea}
-% An arbitrary number of columns with a \gls{static}
-% underneath them all, filling the specified area.
-% \begin{macrocode}
-\newcommand*{\@NcolumnSbottominarea}[8][all]{%
- \setlength{\@ff@staticH}{#4}%
-% \end{macrocode}
-% work out height of the flow frames
-% \begin{macrocode}
- \setlength{\columnheight}{#6}%
- \addtolength{\columnheight}{-\@ff@staticH}%
- \addtolength{\columnheight}{-\vcolumnsep}%
-% \end{macrocode}
-% adjust the flow frame height so that it is a multiple of
-% \cs{baselineskip}
-% \begin{macrocode}
- \ifffvadjust\adjustheight{\columnheight}\fi
- \newframe[#1]{#2}{#5}{\@ff@staticH}{#7}{#8}%
-% \end{macrocode}
-% work out the $y$ offset of the flow frames
-% \begin{macrocode}
- \setlength{\@ff@tmp@y}{#6}%
- \addtolength{\@ff@tmp@y}{-\columnheight}%
- \addtolength{\@ff@tmp@y}{#8}%
-% \end{macrocode}
-% work out the widths of the flow frames
-% \begin{macrocode}
- \@colN=#3\relax
- \advance\@colN by -1\relax
- \setlength{\columnwidth}{#5}%
- \addtolength{\columnwidth}{-\@colN\columnsep}%
- \divide\columnwidth by #3\relax
-% \end{macrocode}
-% Set the $x$ offset of the first frame.
-% \begin{macrocode}
- \setlength{\@ff@tmp@x}{#7}%
- \iflefttorightcolumns
- \else
- \addtolength{\@ff@tmp@x}{#5}%
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \fi
- \@colN=0\relax
- \loop
- \advance\@colN by 1\relax
- \newflowframe[#1]{\columnwidth}{\columnheight}%
- {\@ff@tmp@x}{\@ff@tmp@y}%
-% \end{macrocode}
-% work out the offset for the next column
-% \begin{macrocode}
- \iflefttorightcolumns
- \addtolength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \else
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \addtolength{\@ff@tmp@x}{-\columnsep}%
- \fi
- \ifnum\@colN<#3
- \repeat
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\NcolumnSbottominarea}
-% Specific case for \gls{static}.
-% \begin{macrocode}
-\newcommand*{\NcolumnSbottominarea}[1][all]{%
-\Ncolumnbottominarea[#1]{static}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\NcolumnDbottominarea}
-% Specific case for \gls{dynamic}.
-% \begin{macrocode}
-\newcommand*{\NcolumnDbottominarea}[1][all]{%
-\Ncolumnbottominarea[#1]{dynamic}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\adjustheight}
-% Given a height "#1" (a length), adjust it so that it is a multiple of "\baselineskip".
-% \begin{macrocode}
-\newcount\@ff@adjh
-\newcommand*{\adjustheight}[1]{%
-% \end{macrocode}
-% convert to an integer
-% \begin{macrocode}
-\@ff@adjh=#1\relax
-\divide\@ff@adjh by \baselineskip\relax
-#1=\baselineskip\relax
-\multiply#1 by \@ff@adjh\relax
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\adjustcolsep}
-% Adjust the value of "\columnsep" so that the margins will fit between columns.
-% \begin{macrocode}
-\newcommand*{\adjustcolsep}{%
-\multiply\columnsep by 2\relax
-\addtolength{\columnsep}{\marginparwidth}}
-% \end{macrocode}
-%\end{macro}
-%
-%\subsubsection{Backdrop Effects}
-% Set up some commands to make \glspl{static} for different styles
-% of backdrop.
-%\begin{macro}{\vtwotone}
-% Syntax:\newline
-% \cs{vtwotone}\oarg{pages}\oarg{xoffset}\marg{W1}\marg{C1}\marg{L1}\marg{W2}\marg{C2}\marg{L2}
-%\newline where the first frame
-% has width \meta{W1} with background colour \meta{C1} and label \meta{L1}.
-% The second frame has width \meta{W2} with background colour \meta{C2}
-% and label \meta{L2}. Unlike earlier commands, the $x$-offset is
-% relative to the left page edge \emph{not} the \gls{typeblock}.
-% This is because they are designed for backdrops, which
-% tend to span the entire page.
-% Note that the colour specs must be
-% completely enclosed in braces. e.g.\ "{[gray]{0.5}}" \emph{not} "[gray]{0.5}".
-%
-% Need a length to store the width of the \gls{static}.
-% \begin{macrocode}
-\newlength\@ff@staticW
-% \end{macrocode}
-% Vertical two tone effect where the height of the static
-% frames is equal to the paper height.
-% \begin{macrocode}
-\newcommand*{\vtwotone}[1][all]{%
-\def\ff@pages{#1}\@vtwotone}
-
-\newcommand*{\@vtwotone}[1][0pt]{\@@vtwotonebottom{#1}{\paperheight}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\vtwotonebottom}
-% Vertical two tone effect along the bottom of the page, of
-% height \meta{H}.
-% Syntax:\newline
-% \cs{vtwotonebottom}\oarg{pages}\oarg{xoffset}\marg{H}\marg{W1}\marg{C1}\marg{L1}\marg{W2}\marg{C2}\marg{L2}
-% where the first frame starts at \meta{xoffset}.
-% \begin{macrocode}
-\newcommand*{\@@vtwotonebottom}[8]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@x}{#1}%
-\addtolength{\@ff@tmp@x@even}{#1}%
-\@nextvband{\ff@pages}{#2}{#3}{#4}{#5}%
-\@nextvband{\ff@pages}{#2}{#6}{#7}{#8}%
-}
-
-\@onlypreamble{\vtwotone}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\vtwotonebottom}
-% Border strip along the bottom of the page
-% \begin{macrocode}
-\newcommand*{\vtwotonebottom}[1][all]{%
-\def\ff@pages{#1}\@vtwotonebottom}
-
-\@onlypreamble{\vtwotonebottom}
-
-\newcommand*{\@vtwotonebottom}[2][0pt]{\@@vtwotonebottom{#1}{#2}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\vtwotonetop}
-% Border strip along the top of the page
-% \begin{macrocode}
-\newcommand*{\vtwotonetop}[1][all]{%
-\def\ff@pages{#1}\@vtwotonetop}
-
-\newcommand*{\@vtwotonetop}[2][0pt]{\@@vtwotonetop{#1}{#2}}
-
-\newcommand*{\@@vtwotonetop}[8]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computetopedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{-#2}%
-\addtolength{\@ff@tmp@x}{#1}%
-\addtolength{\@ff@tmp@x@even}{#1}%
-\@nextvband{\ff@pages}{#2}{#3}{#4}{#5}%
-\@nextvband{\ff@pages}{#2}{#6}{#7}{#8}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@nextvband}
-% Make next \gls{static}. Syntax:\newline
-% \cs{@nextvband}\marg{pages}\marg{height}\marg{width}\marg{colour specs}\marg{label}\newline
-% $x$ and $y$ offsets are given by "\@ff@tmp@x" and "\@ff@tmp@y".
-% On exit, "\@ff@tmp@x" is set to the right border.
-% \begin{macrocode}
-\newcommand*{\@nextvband}[5]{%
-\setlength{\@ff@staticW}{#3}%
-\ifthenelse{\equal{#5}{}}{%
-\newstaticframe[#1]{\@ff@staticW}{#2}{\@ff@tmp@x}{\@ff@tmp@y}}%
-{\newstaticframe[#1]{\@ff@staticW}{#2}{\@ff@tmp@x}{\@ff@tmp@y}[#5]}%
-\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@x}{\@ff@staticW}%
-\addtolength{\@ff@tmp@x@even}{\@ff@staticW}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\vNtone}
-% Similarly for N colours. Syntax:\newline
-% \cs{vNtone}\oarg{pages}\oarg{xoffset}\marg{n}\marg{W1}\marg{C1}\marg{L1}\ldots\marg{Wn}\marg{Cn}\marg{Ln}\newline
-% where the first frame has width \meta{W1} with background
-% colour \meta{C1} and label \meta{L1} all the way up to
-% the \meta{n}th frame which has width \meta{Wn}, background
-% colour \meta{Cn} and \gls{idl} \meta{Ln}.
-%
-% Keep track of which strip we are doing.
-% \begin{macrocode}
-\newcount\@thisstrip
-% \end{macrocode}
-% This command needs two optional arguments, so store
-% first optional argument, and look for the next.
-% \begin{macrocode}
-\newcommand*{\vNtone}[1][all]{%
-\def\ff@pages{#1}\@vNtone}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@vNtone}
-% Got the first argument, now get the next.
-% \begin{macrocode}
-\newcommand*{\@vNtone}[2][0pt]{%
-\@@vNtone{#1}{#2}{\paperheight}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@vNtone}
-% Vertical \meta{n} tone aligned along the
-% bottom of the page with height "#3".
-% \begin{macrocode}
-\newcommand*{\@@vNtone}[3]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@x}{#1}%
-\addtolength{\@ff@tmp@x@even}{#1}%
-\@thisstrip=#2\relax
-\setlength{\@ff@staticH}{#3}%
-\@nextvNband%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@nextvNband}
-% Recursively do the next strip.
-% \begin{macrocode}
-\newcommand*{\@nextvNband}{%
-\ifnum\@thisstrip>0\relax
- \let\flf@next\@@nextvNband
-\else
- \let\flf@next\relax
-\fi
-\advance\@thisstrip by -1\relax
-\flf@next}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@nextvNband}
-% Do current strip, and go on to next one.
-% \begin{macrocode}
-\newcommand*{\@@nextvNband}[3]{%
-\@nextvband{\ff@pages}{\@ff@staticH}{#1}{#2}{#3}\@nextvNband}
-
-\@onlypreamble{\vNtone}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\vNtonebottom}
-% Border strip along the bottom of the page. Same as above
-% but user specifies the height.
-% \begin{macrocode}
-\newcommand*{\vNtonebottom}[1][all]{%
-\def\ff@pages{#1}\@vNtonebottom}
-\@onlypreamble{\vNtonebottom}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@vNtonebottom}
-% \begin{macrocode}
-\newcommand*{\@vNtonebottom}[3][0pt]{%
-\@@vNtone{#1}{#2}{#3}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\vNtonetop}
-% Border strip along the top of the page. Again two
-% optional arguments are required. Get first optional
-% argument.
-% \begin{macrocode}
-\newcommand*{\vNtonetop}[1][all]{%
-\def\ff@pages{#1}\@vNtonetop}
-\@onlypreamble{\vNtonetop}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@vNtonetop}
-% Get next optional argument.
-% \begin{macrocode}
-\newcommand*{\@vNtonetop}[3][0pt]{%
-\@@vNtonetop{#1}{#2}{#3}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@vNtonetop}
-% Now get on with it. Again, it has to be done
-% recursively.
-% \begin{macrocode}
-\newcommand*{\@@vNtonetop}[3]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computetopedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{-#3}%
-\addtolength{\@ff@tmp@x}{#1}%
-\addtolength{\@ff@tmp@x@even}{#1}%
-\@thisstrip=#2\relax
-\setlength{\@ff@staticH}{#3}%
-\@nextvNband%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\htwotone}
-% Now do horizontal strips. Syntax:\newline
-% \cs{htwotone}\oarg{pages}\oarg{y offset}\marg{H1}\marg{C1}\marg{L1}\marg{H2}\marg{C2}\marg{L2}
-% \begin{macrocode}
-\newcommand*{\htwotone}[1][all]{%
-\def\ff@pages{#1}\@htwotone}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@htwotone}
-% \begin{macrocode}
-\newcommand*{\@htwotone}[1][0pt]{\@@htwotoneleft{#1}{\paperwidth}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@htwotoneleft}
-% This is all done in much the same way as the vertical
-% strips.
-% \begin{macrocode}
-\newcommand*{\@@htwotoneleft}[8]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{#1}%
-\@nexthband{\ff@pages}{#2}{#3}{#4}{#5}%
-\@nexthband{\ff@pages}{#2}{#6}{#7}{#8}%
-}
-
-\@onlypreamble{\htwotone}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\htwotoneleft}
-% Two tone horizontal strips along left border
-% Syntax: \cs{htwotoneleft}\oarg{pages}\oarg{y offset}\marg{width}\marg{H1}\marg{C1}\marg{L1}\marg{H2}\marg{C2}\marg{L2}
-% \begin{macrocode}
-\newcommand*{\htwotoneleft}[1][all]{%
-\def\ff@pages{#1}\@htwotoneleft}
-\@onlypreamble{\htwotoneleft}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@htwotoneleft}
-% \begin{macrocode}
-\newcommand*{\@htwotoneleft}[2][0pt]{\@@htwotoneleft{#1}{#2}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\htwotoneright}
-% Two tone horizontal strips along right border
-% \begin{macrocode}
-\newcommand*{\htwotoneright}[1][all]{%
-\def\ff@pages{#1}\@htwotoneright}
-\@onlypreamble{\htwotoneright}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@htwotoneright}
-% \begin{macrocode}
-\newcommand*{\@htwotoneright}[2][0pt]{\@@htwotoneright{#1}{#2}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@htwotoneright}
-% \begin{macrocode}
-\newcommand*{\@@htwotoneright}[8]{%
-\computerightedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computerightedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{#1}%
-\addtolength{\@ff@tmp@x}{-#2}%
-\addtolength{\@ff@tmp@x@even}{-#2}%
-\@nexthband{\ff@pages}{#2}{#3}{#4}{#5}%
-\@nexthband{\ff@pages}{#2}{#6}{#7}{#8}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\hNtone}
-% Now for \meta{N} coloured horizontal strips
-% \begin{macrocode}
-\newcommand*{\hNtone}[1][all]{%
-\def\ff@pages{#1}\@hNtone}
-\@onlypreamble{\hNtone}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@hNtone}
-% \begin{macrocode}
-\newcommand*{\@hNtone}[2][0pt]{%
-\@@hNtone{#1}{#2}{\paperwidth}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@hNtone}
-% \begin{macrocode}
-\newcommand*{\@@hNtone}[3]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{#1}%
-\@thisstrip=#2\relax
-\setlength{\@ff@staticW}{#3}%
-\@nexthNband%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\hNtoneleft}
-% Now for the N tone strips along the left border
-% \begin{macrocode}
-\newcommand*{\hNtoneleft}[1][all]{%
-\def\ff@pages{#1}\@hNtoneleft}
-\@onlypreamble{\hNtoneleft}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@hNtoneleft}
-% \begin{macrocode}
-\newcommand*{\@hNtoneleft}[3][0pt]{%
-\@@hNtone{#1}{#2}{#3}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\hNtoneright}
-% Border strip along the right border
-% \begin{macrocode}
-\newcommand*{\hNtoneright}[1][all]{%
-\def\ff@pages{#1}\@hNtoneright}
-\@onlypreamble{\hNtoneright}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@hNtoneright}
-% \begin{macrocode}
-\newcommand*{\@hNtoneright}[3][0pt]{%
-\@@hNtoneright{#1}{#2}{#3}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@hNtoneright}
-% \begin{macrocode}
-\newcommand*{\@@hNtoneright}[3]{%
-\computerightedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computerightedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{#1}%
-\addtolength{\@ff@tmp@x}{-#3}%
-\addtolength{\@ff@tmp@x@even}{-#3}%
-\@thisstrip=#2\relax
-\setlength{\@ff@staticW}{#3}%
-\@nexthNband%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@nexthband}
-% Make next \gls{static}. Syntax:\newline
-% \cs{@nexthband}\marg{pages}\marg{width}\marg{height}\marg{colour specs}\marg{label}\newline
-% $x$ and $y$ offsets are given by "\@ff@tmp@x" and "\@ff@tmp@y".
-% On exit, "\@ff@tmp@y" is set to the top border.
-% \begin{macrocode}
-\newcommand*{\@nexthband}[5]{%
-\setlength{\@ff@staticH}{#3}%
-\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}%
-\@setframecol#4\end{\c@maxstatic}{backcol}{sf}%
-\addtolength{\@ff@tmp@y}{\@ff@staticH}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@nexthNband}
-% Get next horizontal strip recursively.
-% \begin{macrocode}
-\newcommand*{\@nexthNband}{%
-\ifnum\@thisstrip>0\relax
- \let\flf@next\@@nexthNband%
-\else
- \let\flf@next\relax%
-\fi
-\advance\@thisstrip by -1\relax
-\flf@next}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@nexthNband}
-% \begin{macrocode}
-\newcommand*{\@@nexthNband}[3]{%
-\@nexthband{\ff@pages}{\@ff@staticW}{#1}{#2}{#3}\@nexthNband}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\makebackgroundframe}
-% Make one big \gls{static} that covers the entire page.
-% This command should come before all other commands that create
-% \glspl{static}, otherwise it will obscure all the ones defined
-% before it. Syntax:\newline
-% \cs{makebackgroundframe}\oarg{pages}\oarg{label}.
-% \begin{macrocode}
-\newcommand*{\makebackgroundframe}[1][all]{%
-\ifnum\c@maxstatic>0\relax
- \PackageWarning{flowfram}{Background frame is not
- first static frame to be defined. All previously defined
- static frames may be obscured.}%
-\fi
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\newstaticframe[#1]{\paperwidth}{\paperheight}{\@ff@tmp@x}%
-{\@ff@tmp@y}%
-\expandafter\global\expandafter
-\setlength\csname @sf@\romannumeral\c@maxstatic @evenx\endcsname
-{\@ff@tmp@x@even}}
-% \end{macrocode}
-%\end{macro}
-%
-%\subsubsection{Lines Between Frames}
-%\DescribeMacro{\insertvrule}
-% Insert a \gls{static} between two frames with a vertical
-% rule that goes from the maximum height of the highest
-% to the minimum height of the lowest, equidistant from
-% both frames. Syntax:\newline
-% \cs{insertvrule}\oarg{y top}\oarg{y bottom}\marg{frame1 type}\marg{IDN1}\marg{frame2 type}\meta{IDN2}.
-% The starred version uses \glspl{idl} instead of \glspl{idn}.
-% The optional arguments indicate to continue above the highest
-% point by \meta{y top} or continue below the lowest point
-% by \meta{y bottom}.
-%
-%\begin{macro}{\ffcolumnseprule}
-% This has changed in v1.09. Define "\ffcolumnseprule" and use
-% instead of "\columnseprule"
-% \begin{macrocode}
-\newlength\ffcolumnseprule
-\setlength{\ffcolumnseprule}{2pt}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ffruledeclarations}
-%\changes{1.11}{2008/06/27}{new}
-% This can be redefined to use declarations that affect how the
-% rule appears. For example, it can be used to set the colour of
-% the rule.
-% \begin{macrocode}
-\newcommand*{\ffruledeclarations}{}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\insertvrule}
-% Determine whether or not the starred version is being
-% used.
-% \begin{macrocode}
-\newcommand*{\insertvrule}{\@ifstar\@sinsertvrule\@insertvrule}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@insertvrule}
-% Two optional arguments required.
-% \begin{macrocode}
-\newcommand*{\@insertvrule}[1][0pt]{%
-\@ifnextchar[{\@@insertvrule[#1]}{\@@insertvrule[#1][0pt]}}
-% \end{macrocode}
-%\end{macro}
-% Need some lengths:
-% \begin{macrocode}
-\newlength\@ff@left@x
-\newlength\@ff@left@y
-\newlength\@ff@left@evenx
-\newlength\@ff@left@eveny
-\newlength\@ff@left@width
-\newlength\@ff@left@height
-% \end{macrocode}
-%\begin{macro}{\@@insertvrule}
-% Arguments all accounted for. Convert the frame type
-% into a number to make life easier
-% \begin{macrocode}
-\def\@@insertvrule[#1][#2]#3#4#5#6{%
-\ifthenelse{\equal{#3}{flow}}{%
-\def\@ff@type@i{1}}{\ifthenelse{\equal{#3}{static}}{%
-\def\@ff@type@i{2}}{\ifthenelse{\equal{#3}{dynamic}}{%
-\def\@ff@type@i{3}}{\PackageError{flowfram}{Unknown frame
-type '#3'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\ifthenelse{\equal{#5}{flow}}{%
-\def\@ff@type@ii{1}}{\ifthenelse{\equal{#5}{static}}{%
-\def\@ff@type@ii{2}}{\ifthenelse{\equal{#5}{dynamic}}{%
-\def\@ff@type@ii{3}}{\PackageError{flowfram}{Unknown frame
-type '#5'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\@@insert@vrule{#1}{#2}{\@ff@type@i}{#4}{\@ff@type@ii}{#6}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@insert@vrule}
-% Insert a new \gls{static} between the two specified frames.
-% Check to make sure which one is on the left and which one
-% is on the right.
-% Syntax:\newline
-%\cs{@@insert@vrule}\marg{y top}\marg{y bottom}\marg{type ID}\marg{IDN}\marg{type ID}\marg{IDN}.
-% \begin{macrocode}
-\newcommand*{\@@insert@vrule}[6]{%
-\@ff@getdim{#3}{#4}%
-\setlength{\@ff@left@x}{\ffareax}%
-\setlength{\@ff@left@y}{\ffareay}%
-\setlength{\@ff@left@width}{\ffareawidth}%
-\setlength{\@ff@left@height}{\ffareaheight}%
-\@ff@getdim{#5}{#6}%
-\ifnum\@ff@left@x>\ffareax\relax
- \@ff@swaplen{\@ff@left@x}{\ffareax}%
- \@ff@swaplen{\@ff@left@y}{\ffareax}%
- \@ff@swaplen{\@ff@left@evenx}{\ffareaevenx}%
- \@ff@swaplen{\@ff@left@eveny}{\ffareaevenx}%
- \@ff@swaplen{\@ff@left@width}{\ffareawidth}%
- \@ff@swaplen{\@ff@left@height}{\ffareaheight}%
-\fi
-\setlength{\@ff@tmp@x}{\@ff@left@x}
-\addtolength{\@ff@tmp@x}{\@ff@left@width}%
-\setlength{\@ff@staticW}{\ffareax}%
-\addtolength{\@ff@staticW}{-\@ff@tmp@x}%
-\setlength{\@ff@staticH}{\@ff@left@y}%
-\addtolength{\@ff@staticH}{\@ff@left@height}%
-\setlength{\@ff@tmp@y}{\ffareay}%
-\addtolength{\@ff@tmp@y}{\ffareaheight}%
-\ifnum\@ff@tmp@y>\@ff@staticH
- \setlength{\@ff@staticH}{\@ff@tmp@y}%
-\fi
-\ifnum\@ff@left@y<\ffareay\relax
- \setlength{\@ff@tmp@y}{\@ff@left@y}%
-\else
- \setlength{\@ff@tmp@y}{\ffareay}%
-\fi
-\addtolength{\@ff@staticH}{-\@ff@tmp@y}%
-\newstaticframe{\@ff@staticW}{\@ff@staticH}%
-{\@ff@tmp@x}{\@ff@tmp@y}%
-\addtolength{\@ff@staticH}{#1}%
-\addtolength{\@ff@staticH}{#2}%
-\setstaticcontents{\c@maxstatic}{%
-\ffruledeclarations
-\ffvrule{#2}{\ffcolumnseprule}{\@ff@staticH}}%
-\ifcase#3\relax
-\or \edef\@ff@pages{\csname @ff@pages@\romannumeral#4\endcsname}%
-\or \edef\@ff@pages{\csname @sf@pages@\romannumeral#4\endcsname}%
-\or \edef\@ff@pages{\csname @df@pages@\romannumeral#4\endcsname}%
-\fi
-\setstaticframe{\c@maxstatic}{pages=\@ff@pages}%
-% \end{macrocode}
-% check the difference between odd and even page co-ordinates
-% and shift new frame in same direction. (Assumes the two
-% original frames stay in the same relative position.)
-% \begin{macrocode}
-\addtolength{\@ff@tmp@x}{\@ff@left@evenx}%
-\addtolength{\@ff@tmp@x}{-\@ff@left@x}%
-\addtolength{\@ff@tmp@y}{\@ff@left@eveny}%
-\addtolength{\@ff@tmp@y}{-\@ff@left@y}%
-\setstaticframe{\c@maxstatic}{evenx=\@ff@tmp@x,eveny=\@ff@tmp@y}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ffvrule}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{ffvrule}\marg{offset}\marg{width}\marg{height}\par
-% Draws the rule for \cs{insertvrule}
-% \begin{macrocode}
-\newcommand*{\ffvrule}[3]{%
-\hfill \rule[-#1]{#2}{#3}\hfill\mbox{}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sinsertvrule}
-% Starred version. Two optional arguments required.
-% \begin{macrocode}
-\newcommand*{\@sinsertvrule}[1][0pt]{%
-\@ifnextchar[{\@@sinsertvrule[#1]}{\@@sinsertvrule[#1][0pt]}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@sinsertvrule}
-% Find out the frame types and their \gls{idn}.
-% \begin{macrocode}
-\def\@@sinsertvrule[#1][#2]#3#4#5#6{%
-\ifthenelse{\equal{#3}{flow}}{%
-\def\@ff@type@i{1}\@flowframeid{#4}\@ff@tmpN=\ff@id}{%
-\ifthenelse{\equal{#3}{static}}{%
-\def\@ff@type@i{2}\@staticframeid{#4}\@ff@tmpN=\ff@id}{%
-\ifthenelse{\equal{#3}{dynamic}}{%
-\def\@ff@type@i{3}\@dynamicframeid{#4}\@ff@tmpN=\ff@id}{%
-\PackageError{flowfram}{Unknown frame
-type '#3'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\ifthenelse{\equal{#5}{flow}}{%
-\def\@ff@type@ii{1}\@flowframeid{#6}}{%
-\ifthenelse{\equal{#5}{static}}{%
-\def\@ff@type@ii{2}\@staticframeid{#6}}{%
-\ifthenelse{\equal{#5}{dynamic}}{%
-\def\@ff@type@ii{3}\@dynamicframeid{#6}}{%
-\PackageError{flowfram}{Unknown frame
-type '#5'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\@@insert@vrule{#1}{#2}{\@ff@type@i}{\@ff@tmpN}%
-{\@ff@type@ii}{\ff@id}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\inserthrule}
-% Now for a horizontal rule. Syntax similar to "\insertvrule".
-% Determine whether or not the starred version is being
-% used.
-% \begin{macrocode}
-\newcommand*{\inserthrule}{\@ifstar\@sinserthrule\@inserthrule}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@inserthrule}
-% Two optional arguments required.
-% \begin{macrocode}
-\newcommand*{\@inserthrule}[1][0pt]{%
-\@ifnextchar[{\@@inserthrule[#1]}{\@@inserthrule[#1][0pt]}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@inserthrule}
-% Arguments all accounted for. Convert the frame type
-% into a number to make life easier
-% \begin{macrocode}
-\def\@@inserthrule[#1][#2]#3#4#5#6{%
-\ifthenelse{\equal{#3}{flow}}{%
-\def\@ff@type@i{1}}{\ifthenelse{\equal{#3}{static}}{%
-\def\@ff@type@i{2}}{\ifthenelse{\equal{#3}{dynamic}}{%
-\def\@ff@type@i{3}}{\PackageError{flowfram}{Unknown frame
-type '#3'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\ifthenelse{\equal{#5}{flow}}{%
-\def\@ff@type@ii{1}}{\ifthenelse{\equal{#5}{static}}{%
-\def\@ff@type@ii{2}}{\ifthenelse{\equal{#5}{dynamic}}{%
-\def\@ff@type@ii{3}}{\PackageError{flowfram}{Unknown frame
-type '#5'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\@@insert@hrule{#1}{#2}{\@ff@type@i}{#4}{\@ff@type@ii}{#6}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@insert@hrule}
-% Insert a new \gls{static} between the two specified frames.
-% Check to make sure which one is on the top and which one
-% is on the bottom.
-% Syntax:\newline
-%\cs{@@insert@hrule}\marg{x left}\marg{x right}\marg{type ID}\marg{IDN}\marg{type ID}\marg{IDN}.
-% \begin{macrocode}
-\newcommand*{\@@insert@hrule}[6]{%
-\@ff@getdim{#3}{#4}%
-\setlength{\@ff@left@x}{\ffareax}%
-\setlength{\@ff@left@y}{\ffareay}%
-\setlength{\@ff@left@width}{\ffareawidth}%
-\setlength{\@ff@left@height}{\ffareaheight}%
-\@ff@getdim{#5}{#6}%
-\ifnum\@ff@left@y>\ffareay\relax
- \@ff@swaplen{\@ff@left@x}{\ffareax}%
- \@ff@swaplen{\@ff@left@y}{\ffareay}%
- \@ff@swaplen{\@ff@left@width}{\ffareawidth}%
- \@ff@swaplen{\@ff@left@height}{\ffareaheight}%
-\fi
-\setlength{\@ff@tmp@y}{\@ff@left@y}%
-\addtolength{\@ff@tmp@y}{\@ff@left@height}%
-\setlength{\@ff@staticH}{\ffareay}%
-\addtolength{\@ff@staticH}{-\@ff@tmp@y}%
-\setlength{\@ff@staticW}{\@ff@left@x}%
-\addtolength{\@ff@staticW}{\@ff@left@width}%
-\setlength{\@ff@tmp@x}{\ffareax}%
-\addtolength{\@ff@tmp@x}{\ffareawidth}%
-\ifnum\@ff@tmp@x>\@ff@staticW\relax
- \setlength{\@ff@staticW}{\@ff@tmp@x}%
-\fi
-\ifnum\@ff@left@x<\ffareax\relax
- \setlength{\@ff@tmp@x}{\@ff@left@x}%
-\else
- \setlength{\@ff@tmp@x}{\ffareax}%
-\fi
-\addtolength{\@ff@staticW}{-\@ff@tmp@x}%
-\newstaticframe{\@ff@staticW}{\@ff@staticH}%
-{\@ff@tmp@x}{\@ff@tmp@y}%
-\addtolength{\@ff@staticW}{#1}%
-\addtolength{\@ff@staticW}{#2}%
-\setstaticcontents{\c@maxstatic}{%
-\ffruledeclarations
-\ffhrule{#1}{\@ff@staticW}{\ffcolumnseprule}}%
-\ifcase#3\relax
-\or \edef\@ff@pages{\csname @ff@pages@\romannumeral#4\endcsname}%
-\or \edef\@ff@pages{\csname @sf@pages@\romannumeral#4\endcsname}%
-\or \edef\@ff@pages{\csname @df@pages@\romannumeral#4\endcsname}%
-\fi
-\setstaticframe{\c@maxstatic}{pages=\@ff@pages}%
-\addtolength{\@ff@tmp@x}{\@ff@left@evenx}%
-\addtolength{\@ff@tmp@x}{-\@ff@left@x}%
-\addtolength{\@ff@tmp@y}{\@ff@left@eveny}%
-\addtolength{\@ff@tmp@y}{-\@ff@left@y}%
-\setstaticframe{\c@maxstatic}{evenx=\@ff@tmp@x,eveny=\@ff@tmp@y}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ffhrule}
-%\changes{1.11}{2008/06/27}{new}
-%\cs{ffhrule}\marg{offset}\marg{width}\marg{height}\par
-% Draws the rule for \cs{inserthrule}
-% \begin{macrocode}
-\newcommand*{\ffhrule}[3]{%
-\hspace*{-#1}\rule{#2}{#3}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sinserthrule}
-% Starred version. Two optional arguments required.
-% \begin{macrocode}
-\newcommand*{\@sinserthrule}[1][0pt]{%
-\@ifnextchar[{\@@sinserthrule[#1]}{\@@sinserthrule[#1][0pt]}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@sinserthrule}
-% Find out the frame types and their \gls{idn}.
-% \begin{macrocode}
-\def\@@sinserthrule[#1][#2]#3#4#5#6{%
-\ifthenelse{\equal{#3}{flow}}{%
-\def\@ff@type@i{1}\@flowframeid{#4}\@ff@tmpN=\ff@id}{%
-\ifthenelse{\equal{#3}{static}}{%
-\def\@ff@type@i{2}\@staticframeid{#4}\@ff@tmpN=\ff@id}{%
-\ifthenelse{\equal{#3}{dynamic}}{%
-\def\@ff@type@i{3}\@dynamicframeid{#4}\@ff@tmpN=\ff@id}{%
-\PackageError{flowfram}{Unknown frame
-type '#3'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\ifthenelse{\equal{#5}{flow}}{%
-\def\@ff@type@ii{1}\@flowframeid{#6}}{%
-\ifthenelse{\equal{#5}{static}}{%
-\def\@ff@type@ii{2}\@staticframeid{#6}}{%
-\ifthenelse{\equal{#5}{dynamic}}{%
-\def\@ff@type@ii{3}\@dynamicframeid{#6}}{%
-\PackageError{flowfram}{Unknown frame
-type '#5'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\@@insert@hrule{#1}{#2}{\@ff@type@i}{\@ff@tmpN}%
-{\@ff@type@ii}{\ff@id}%
-}
-% \end{macrocode}
-%\end{macro}
-%
-% \subsection{Putting Chapter Headings in Dynamic Frames}
-%\begin{macro}{\dfchaphead}
-% Provide facility to make chapter headings appear
-% in specified \gls{dynamic}.
-% I originally called this macro "\putchapterheadingsindynamicframe"
-% which was descriptive, but overly long, so I changed it
-% to the rather more cryptic name "\dfchaphead".
-% If the starred form is used, the frame is identified by \gls{idl},
-% the unstarred form identifies the frame \gls{idn}.
-% \begin{macrocode}
-\newcommand*{\dfchaphead}{%
-\@ifstar\@sdynamicchap\@dynamicchap}
-% \end{macrocode}
-%\end{macro}
-% Define style for the chapter heading. These commands
-% are should only be used when "\dfchaphead" has been used.
-%\begin{macro}{\DFchapterstyle}
-% \begin{macrocode}
-\newcommand{\DFchapterstyle}[1]{#1}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\DFschapterstyle}
-% \begin{macrocode}
-\newcommand{\DFschapterstyle}[1]{#1}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@dynamicchap}
-% Unstarred version.
-% \begin{macrocode}
-\newcommand{\@dynamicchap}[1]{%
-\@ifundefined{chapter}{\PackageError{flowfram}{Chapters aren't
-defined}{The document
-class you are using does not define chapters}}{%
-\let\@ff@OLDmakechapterhead\@makechapterhead
-\let\@ff@OLDmakeschapterhead\@makeschapterhead
-\renewcommand{\DFchapterstyle}[1]{\@ff@OLDmakechapterhead{##1}}%
-\renewcommand{\DFschapterstyle}[1]{\@ff@OLDmakeschapterhead{##1}}%
-%
-\xdef\@makechapterhead##1{%
-\noexpand\@setdynamiccontents{\number#1}{%
-\noexpand\DFchapterstyle{##1}}}%
-\xdef\@makeschapterhead##1{%
-\noexpand\@setdynamiccontents{\number#1}{%
-\noexpand\DFschapterstyle{##1}}}%
-}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sdynamicchap}
-% Starred form.
-% \begin{macrocode}
-\newcommand{\@sdynamicchap}[1]{%
-\@dynamicframeid{#1}\@dynamicchap{\ff@id}}
-% \end{macrocode}
-%\end{macro}
-% There is no facility for placing other sectional types
-% in \glspl{dynamic}. This is because, either (1) the sectioning
-% command does not start a new page, in which case there
-% is no way of telling where exactly the new section will start,
-% and having a section title in some other location on the
-% page is ambiguous, and would really confuse the reader, or
-% (2) in the case of "\part" in report or book class files, the
-% title appears on a page of its own, so where is the point in
-% putting it in a \gls{dynamic}?
-%
-%\subsection{Thumbtabs}
-% Define counter to keep track of total number of
-% thumbtabs.
-% \begin{macrocode}
-\newcounter{maxthumbtabs}
-% \end{macrocode}
-%\begin{macro}{\defaultthumbtabtype}
-% Check to see if chapters are defined, if they are make
-% thumbtabs correspond to chapters, otherwise make
-% thumbtabs correspond to sections.
-% \begin{macrocode}
-\@ifundefined{chapter}{%
-\newcommand*{\defaultthumbtabtype}{section}}{
-\newcommand*{\defaultthumbtabtype}{chapter}
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ttb@type}
-% Section type to assign to thumbtabs.
-% \begin{macrocode}
-\newcommand*{\@ttb@type}{\defaultthumbtabtype}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\makethumbtabs}
-% Make the thumbtabs. Read in information from ".ttb"
-% file, and open it for output.
-% Syntax:\newline
-% \cs{makethumbtabs}\oarg{y offset}\marg{height}\oarg{sec type}.
-%
-% First check to see if there is a second optional argument.
-% \begin{macrocode}
-\newcommand*{\makethumbtabs}[2][0pt]{%
-\@ifnextchar[{\@makethumbtabs[#1]{#2}}{%
-\@makethumbtabs[#1]{#2}[\defaultthumbtabtype]}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@makethumbtabs}
-% Now all arguments are known, first redefine the
-% appropriate sectioning command, then input the ttb file,
-% and create the thumbtabs.
-% \begin{macrocode}
-\def\@makethumbtabs[#1]#2[#3]{%
-\@ifundefined{#3}{\PackageError{flowfram}{%
-Unknown section type '#3'}{}}{%
-\renewcommand{\@ttb@type}{#3}%
-\ifthenelse{\equal{#3}{chapter}}{\@makethumbchapter}{%
-\ifthenelse{\equal{#3}{part}}{\@makethumbpart}{%
-\@makethumbsection{#3}}}}
-\@starttoc{ttb}%
-\@dothumbtabs{#1}{#2}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@makethumbchapter}
-% If thumbtabs correspond to chapters, redefine "\@chapter"
-% so that each unstarred chapter writes an entry to the
-% ".ttb" file.
-% \begin{macrocode}
-\newcommand{\@makethumbchapter}{
-\let\@ttb@old@chapter\@chapter
-\def\@chapter[##1]##2{%
-\@ttb@old@chapter[##1]{##2}%
-\addtocontents{ttb}{\protect\thumbtab
- {\thepage}{\thechapter}{##1}{chapter.\thechapter}}%
-\@afterheading
-}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@makethumbpart}
-% For parts in books or reports, the thumbtab needs to be
-% saved after the part counter has been incremented, but
-% before the page break so that the page number and part
-% numbers are correct. If "\@endpart" is not defined, then
-% the document class probably does not start a new page after
-% "\part". (This can't be guaranteed for non standard class
-% files, but there's nothing that can be done about that.)
-% If this happens, just redefine "\@part", and hope for the
-% best.
-% \begin{macrocode}
-\newcommand{\@makethumbpart}{
-\let\@ttb@old@part\@part
-\@ifundefined{@endpart}{%
-\def\@part[##1]##2{\@ttb@old@part[##1]{##2}%
-\addtocontents{ttb}{\protect\thumbtab
- {\thepage}{\thepart}{##1}{part.\thepage}}%
-\@afterheading}}{%
-\let\@ttb@old@endpart\@endpart
-\def\@part[##1]##2{%
-\def\@parttitle{##1}%
-\@ttb@old@part[##1]{##2}%
-}%
-\def\@endpart{%
-\addtocontents{ttb}{%
-\protect\thumbtab{\thepage}%
-{\thepart}{\@parttitle}{part.\thepage}}%
-\@ttb@old@endpart
-}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@makethumbsection}
-% Thumbtabs defined for one of the remaining standard
-% sectioning commands. Since these commands use
-% "\@startsection", it is necessary to redefine
-% "\@sect" to add the thumbtab information to the .ttb file.
-% \begin{macrocode}
-\newcommand*{\@makethumbsection}[1]{%
-\let\@ttb@old@sect=\@sect
-\def\@sect##1##2##3##4##5##6[##7]##8{%
-\@ttb@old@sect{##1}{##2}{##3}{##4}{##5}{##6}[##7]{##8}%
-\ifthenelse{\equal{##1}{#1}}{%
-\addtocontents{ttb}{%
-\protect\thumbtab{\thepage}{\csname the#1\endcsname}%
-{##7}{#1.\csname the#1\endcsname}}%
-\@afterheading}{}%
-}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\thumbtab}
-% The thumbtab file, ".ttb", will have a series of "\thumbtab"
-% commands, when this file is read in, just store the
-% information for now.
-% \begin{macrocode}
-\newcommand{\thumbtab}[4]{%
-\stepcounter{maxthumbtabs}%
-\expandafter
-\gdef\csname thumbtab@pages@\romannumeral\c@maxthumbtabs\endcsname
-{#1}%
-\expandafter
-\gdef\csname thumbtab@num@\romannumeral\c@maxthumbtabs\endcsname
-{#2}%
-\expandafter
-\gdef\csname thumbtab@title@\romannumeral\c@maxthumbtabs\endcsname
-{#3}%
-\expandafter
-\gdef\csname thumbtab@link@\romannumeral\c@maxthumbtabs\endcsname
-{#4}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@dothumbtabs}
-% Once the thumbtab information has been read in and stored
-% in the thumbtab macros, create the thumbtabs using this
-% information. First need to work out the \glspl{pgrange} between
-% each thumbtab. If the following thumbtab starts on the
-% same page as the previous one, leave the page varable
-% as a single number (this may happen if the thumbtabs
-% correspond to sections rather than chapters). If the
-% following thumbtab starts on a different page to the
-% one before it, the preceding thumbtab page variable so
-% be a range from its own initial page up to the page before
-% the next thumbtab starts. The final thumbtab has an open
-% ended range. This final thumbtab will continue to be displayed
-% until cancelled by "\disablethumbtabs".
-%
-% Syntax: \cs{@dothumbtabs}\marg{y offset}\marg{height}.
-% \begin{macrocode}
-\newcommand*{\@dothumbtabs}[2]{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxthumbtabs}{%
- \advance\@colN by 1\relax
- \edef\ff@pages{%
- \csname thumbtab@pages@\romannumeral\@colN\endcsname}%
- \ifnum\@colN=\c@maxthumbtabs
- \expandafter
- \xdef\csname thumbtab@pages@\romannumeral\@colN\endcsname{%
- \ff@pages,>\ff@pages}%
- \else
- \advance\@colN by 1\relax
- \edef\ff@endpage{%
- \csname thumbtab@pages@\romannumeral\@colN\endcsname}%
- \advance\@colN by -1\relax
- \@ff@tmpN=\ff@endpage\relax
- \advance\@ff@tmpN by -1\relax
- \ifnum\@ff@tmpN>\ff@pages
- \expandafter
- \xdef\csname thumbtab@pages@\romannumeral\@colN\endcsname{%
- \ff@pages-\number\@ff@tmpN}%
- \fi
- \fi
-}%
-\@@dothumbtabs{#1}{#2}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\thumbtabwidth}
-% Default thumbtab width.
-% \begin{macrocode}
-\newlength{\thumbtabwidth}
-\setlength{\thumbtabwidth}{1cm}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\thumbtabindexformat}
-% Thumbtab format. If hyperlinks have been defined,
-% use a hyperlink in the thumbtab index.
-% Syntax: \cs{thumbtabindexformat}\marg{link}\marg{text}\marg{height}
-% \begin{macrocode}
-\@ifundefined{hyperlink}{%
-\newcommand{\thumbtabindexformat}[3]{%
-\thumbtabformat{#2}{#3}}}{%
-\newcommand{\thumbtabindexformat}[3]{%
-\hyperlink{#1}{\thumbtabformat{#2}{#3}}}
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\thumbtabformat}
-% Individual thumbtab format. If rotating has
-% been disabled, stack the letters vertically (this
-% doesn't look very good).
-% Syntax: \cs{thumbtabformat}\marg{text}\marg{height}
-% \begin{macrocode}
-\newcommand{\thumbtabformat}[2]{%
-\if@ttb@rotate
-\rotatebox{-90}{\parbox[c][\thumbtabwidth]{#2}{%
-\centering#1}}%
-\else
-\parbox[c][#2]{\thumbtabwidth}{%
-\centering\@ttb@stack{#1}}%
-\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@flf@subsp}
-% Substitute spaces for \cs{space}. Stores resulting text in
-% \cs{@flf@subsptext} which should be set to empty before use.
-%\changes{1.10}{2007/08/21}{new}
-% \begin{macrocode}
-\def\@flf@subsp#1 #2{%
-\expandafter\flf@ta\expandafter{\@flf@subsptext}%
-\flf@tb{#1}%
-\edef\@flf@subsptext{\the\flf@ta\the\flf@tb}%
-\def\@flf@tmp{#2}%
-\ifx\@flf@tmp\@nnil
- \let\@flf@donextsubsp=\@gobble
-\else
- \expandafter\flf@ta\expandafter{\@flf@subsptext}%
- \edef\@flf@subsptext{\the\flf@ta\noexpand\space}%
- \let\@flf@donextsubsp=\@flf@subsp
-\fi
-\@flf@donextsubsp{#2}%
-}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ttb@stack}
-% Stack letters vertically.
-% Any spaces first need to be substituted
-% with \cs{space}, otherwise they will be ignored.
-%\changes{1.10}{2007/08/21}{spaces now replaced with \cs{space}}
-% \begin{macrocode}
-\newcommand{\@ttb@stack}[1]{%
-\def\@flf@subsptext{}%
-\expandafter\@flf@subsp#1 \@nil\relax
-\begin{tabular}{l}%
-\expandafter\@@ttb@stack\@flf@subsptext\@nil\relax
-\end{tabular}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@ttb@stack}
-%\changes{1.10}{2007/08/21}{now uses \cs{mbox}}
-% \begin{macrocode}
-\def\@@ttb@stack#1#2{%
-\def\@flf@tmp{#1}%
-\ifx\@flf@tmp\@nnil
- \let\flf@next\relax
-\else
- #1\\%
- \def\@flf@tmp{#2}%
- \ifx\@nnil#2\relax
- \let\flf@next\@gobble
- \else
- \let\flf@next\@@ttb@stack
- \fi
-\fi
-\flf@next{#2}}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\@greyscale}
-% Count register to compute the grey scale.
-% \begin{macrocode}
-\newcount\@greyscale
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@dothumbtabs}
-% Once the \gls{pgrange} have been sorted, create the
-% \glspl{dynamic} associated with each thumbtab.
-% Thumbtabs will initially have a grey background, but
-% this can be changed by the user. Each thumbtab is given
-% an \gls{idl} "thumbtab"\meta{n} where \meta{n} is the index of
-% the thumbtab (starting from 1 for the topmost thumbtab.)
-% Each frame in the thumbtab index is given an \gls{idl}
-% "thumbtabindex"\meta{n}, where \meta{n} is as before.
-% \begin{macrocode}
-\newcommand{\@@dothumbtabs}[2]{%
-\setlength{\@ff@tmp@y}{\textheight}%
-\addtolength{\@ff@tmp@y}{-#2}%
-\addtolength{\@ff@tmp@y}{-#1}%
-\computerightedgeodd{\@ff@tmp@x}%
-\addtolength{\@ff@tmp@x}{-\thumbtabwidth}%
-\computeleftedgeeven{\@ff@tmp@x@even}%
-\@ff@tmpN=0\relax
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
- \advance\@ff@tmpN by 1\relax
- \@greyscale=\@ff@tmpN\relax
- \multiply\@greyscale by 60\relax
- \divide\@greyscale by \c@maxthumbtabs
- \advance\@greyscale by 25\relax
- \edef\@ff@greyscale{0.\number\@greyscale}%
-% \end{macrocode}
-% Thumbtab
-% \begin{macrocode}
- \newdynamicframe[none]{\thumbtabwidth}{#2}%
- {\@ff@tmp@x}{\@ff@tmp@y}[thumbtab\number\@ff@tmpN]%
- \expandafter\global\expandafter
- \setlength\csname @df@\romannumeral\c@maxdynamic @evenx\endcsname
- {\@ff@tmp@x@even}%
-% \end{macrocode}
-% set the contents of the dynamic frame
-% \begin{macrocode}
- \ifthenelse{\boolean{@ttb@title}\and\boolean{@ttb@num}}{%
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabformat{%
- \csname thumbtab@num@\romannumeral\@ff@tmpN\endcsname\
- \csname thumbtab@title@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- }{%
- \if@ttb@title
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabformat{%
- \csname thumbtab@title@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- \fi
- \if@ttb@num
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabformat{%
- \csname thumbtab@num@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- \fi
- }%
- \expandafter
- \xdef\csname @df@backcol@\romannumeral\c@maxdynamic\endcsname
- {[gray]{\@ff@greyscale}}
-% \end{macrocode}
-% Thumbtab index
-% \begin{macrocode}
- \newdynamicframe[none]{\thumbtabwidth}{#2}%
- {\@ff@tmp@x}{\@ff@tmp@y}[thumbtabindex\number\@ff@tmpN]%
- \expandafter\global\expandafter
- \setlength\csname @df@\romannumeral\c@maxdynamic @evenx\endcsname
- {\@ff@tmp@x@even}%
- \expandafter
-% \end{macrocode}
-% set the contents of the dynamic frame
-% \begin{macrocode}
- \ifthenelse{\boolean{@ttb@title}\and\boolean{@ttb@num}}{%
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabindexformat{%
- \csname thumbtab@link@\romannumeral\@ff@tmpN\endcsname}{%
- \csname thumbtab@num@\romannumeral\@ff@tmpN\endcsname\
- \csname thumbtab@title@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- }{%
- \if@ttb@title
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabindexformat{%
- \csname thumbtab@link@\romannumeral\@ff@tmpN\endcsname}{%
- \csname thumbtab@title@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- \fi
- \if@ttb@num
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabindexformat{%
- \csname thumbtab@link@\romannumeral\@ff@tmpN\endcsname}{%
- \csname thumbtab@num@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- \fi
- }%
- \expandafter
- \xdef\csname @df@backcol@\romannumeral\c@maxdynamic\endcsname
- {[gray]{\@ff@greyscale}}
- \addtolength{\@ff@tmp@y}{-#2}%
-}%
-}%
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\enablethumbtabs}
-% Enable thumbtabs. Once the \gls{idn} is obtained for the
-% first thumbtab, the rest can be found by incrementing the
-% number by 2 (the frames in between correspond to the
-% thumbtab index.)
-% \begin{macrocode}
-\newcommand*{\enablethumbtabs}{%
-\ifnum\c@maxthumbtabs>0
-\@ff@tmpN=0\relax
-\@dynamicframeid{thumbtab1}%
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
-\advance\@ff@tmpN by 1\relax
-% \end{macrocode}
-% thumbtab
-% \begin{macrocode}
-\edef\@ff@pages{\csname thumbtab@pages@\romannumeral\@ff@tmpN\endcsname}%
-\@@setdynamicframe{\ff@id}{pages=\@ff@pages}%
-\advance\ff@id by 2\relax
-}%
-\else\PackageWarning{flowfram}{No thumb tabs defined}\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\disablethumbtabs}
-% Disable all thumbtabs.
-% \begin{macrocode}
-\newcommand*{\disablethumbtabs}{%
-\ifnum\c@maxthumbtabs>0
-\@ff@tmpN=0\relax
-\@dynamicframeid{thumbtab1}%
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
-\advance\@ff@tmpN by 1\relax
-% \end{macrocode}
-%thumbtab
-% \begin{macrocode}
-\expandafter\xdef\csname @df@pages@\romannumeral\ff@id\endcsname
-{none}%
-\advance\ff@id by 1\relax
-% \end{macrocode}
-%thumbtab index
-% \begin{macrocode}
-\expandafter\xdef\csname @df@pages@\romannumeral\ff@id\endcsname
-{none}%
-\advance\ff@id by 1\relax
-}\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\thumbtabindex}
-% Show thumbtab index on current page.
-% The "\@ff@doafter" bit circumvents the problem of duplicate page
-% numbers, as the table of contents
-% is quite frequently on page i while the first chapter starts on page 1.
-% \begin{macrocode}
-\newcommand*{\thumbtabindex}{%
-\ifnum\c@maxthumbtabs>0\relax
-\@ff@tmpN=0\relax
-\@dynamicframeid{thumbtabindex1}%
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
-\advance\@ff@tmpN by 1\relax
-\expandafter
-\xdef\csname @df@pages@\romannumeral\ff@id\endcsname{\c@page}%
-\edef\@ff@doafter{%
-\noexpand\afterpage{%
-\noexpand\setdynamicframe{\number\ff@id}{pages=none}}}
-\@ff@doafter
-\advance\ff@id by 2\relax
-}\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\setthumbtab}
-% Modify the settings for all the thumbtabs (including thumbtab
-% index). Since the thumbtabs are \glspl{dynamic}
-% you could just use "\setdynamicframe", however, the thumbtabs
-% will not be generated on the first run, as there will be no
-% information in the ttb file, so "\setdynamicframe" would
-% generate an error. "\setthumbtab" will only give
-% a warning message if it can not find the thumbtab.
-% The argument "#1" is the index of the thumbtab (starting
-% from 1), the second argument "#2" is the
-% frame settings.
-% \begin{macrocode}
-\newcommand{\setthumbtab}[2]{%
-\ifthenelse{\equal{#1}{all}}{%
-\@ff@tmpN=0\relax
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
-\advance\@ff@tmpN by 1\relax
-\@setthumbtab{\@ff@tmpN}{#2}}}{%
-\@for\@ttb@id:=#1\do{\@setthumbtab{\@ttb@id}{#2}}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@setthumbtab}
-% Set individual thumbtab and its index tab.
-% \begin{macrocode}
-\newcommand{\@setthumbtab}[2]{%
-% check if this thumbtab exists
-\ifthenelse{\(\c@maxthumbtabs<#1\) \or \(#1<1\)}{%
-\PackageWarning{flowfram}{Can't find thumbtab number '#1',
-ttb file may not be up-to-date}}{%
-\@dynamicframeid{thumbtab\number#1}%
-\@@setdynamicframe{\ff@id}{#2}%
-\@dynamicframeid{thumbtabindex\number#1}%
-\@@setdynamicframe{\ff@id}{#2}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\setthumbtabindex}
-% Only change settings for the thumbtab index. This can
-% take a comma-separated number list.
-% \begin{macrocode}
-\newcommand{\setthumbtabindex}[2]{%
-\ifthenelse{\equal{#1}{all}}{%
-\@ff@tmpN=0\relax
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
-\advance\@ff@tmpN by 1\relax
-\@setthumbtabindex{\@ff@tmpN}{#2}}}{%
-\@for\@ttb@id:=#1\do{\@setthumbtabindex{\@ttb@id}{#2}}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@setthumbtabindex}
-% Change setting for individual thumbtab index entry.
-% \begin{macrocode}
-\newcommand{\@setthumbtabindex}[2]{%
-% check if this thumbtab exists
-\ifthenelse{\(\c@maxthumbtabs<#1\) \or \(#1<1\)}{%
-\PackageWarning{flowfram}{Can't find thumbtab number `\number#1',
-ttb file may not be up-to-date}}{%
-\@dynamicframeid{thumbtabindex\number#1}%
-\@@setdynamicframe{\ff@id}{#2}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\tocandhumbtabindex}
-% Do both the table of contents and the thumbtab index
-% \begin{macrocode}
-\newcommand*{\tocandthumbtabindex}{%
-\aligntoctrue
-\tableofcontents
-\thumbtabindex
-\aligntocfalse
-}
-% \end{macrocode}
-%\end{macro}
-%
-% \subsection{Minitocs}
-%\begin{macro}{\@ttb@minitoctype}
-% Sectioning type for the minitoc, by default it is the
-% same as the thumbtabs
-% \begin{macrocode}
-\newcommand*{\@ttb@minitoctype}{\@ttb@type}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@starttoc}
-% In order to align the table of contents with the thumbtabs,
-% or to use minitocs, the toc information must be stored,
-% rather than simply input.
-% Therefore, modify "\@starttoc" so that it can store the contents
-% of the file. "\if@storetoc" is used to determine whether
-% to store the contents, or act as normal.
-% \begin{macrocode}
-\let\@ttb@old@starttoc\@starttoc
-\newif\if@storetoc
-\@storetocfalse
-\renewcommand*{\@starttoc}[1]{%
-\if@storetoc
- \@ttb@storetoc{#1}%
-\else
- \@ttb@old@starttoc{#1}%
-\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@ttb@storetoc}
-% store the contents of the file with the given extension
-% \begin{macrocode}
-\newcommand*{\@ttb@storetoc}[1]{%
-\begingroup
-\makeatletter
-\@storefileconts{\jobname.#1}%
-\if@filesw
- \expandafter\newwrite\csname tf@#1\endcsname
- \immediate\openout\csname tf@#1\endcsname\jobname.#1\relax
-\fi
-\@nobreakfalse
-\endgroup}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@storefileconts}
-% store the contents of named file, if it exists.
-%\changes{1.10}{2007/08/21}{uses \cs{PackageInfo} instead of
-% \cs{typeout}}
-% \begin{macrocode}
-\newcommand*{\@storefileconts}[1]{\IfFileExists{#1}{%
-\@@storefileconts\@filef@und}{%
-\PackageInfo{flowfram}{No file #1.}}}
-% \end{macrocode}
-%\end{macro}
-% store the number of units corresponding to the
-% thumbtab type, and minitoc units. These will usually
-% have the same value, but this is not always
-% guaranteed.
-%\begin{macro}{\c@maxtocunits}
-% Total number of toc units
-% \begin{macrocode}
-\newcount\c@maxtocunits
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\c@maxminitoc}
-% Total number of minitoc units
-% \begin{macrocode}
-\newcount\c@maxminitoc
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@storefileconts}
-% Read each line in from the file, and add to the contents
-% list.
-% \begin{macrocode}
-\newcommand{\@@storefileconts}[1]{%
-\@ifundefined{\@ttb@minitoctype}{\@ttb@minitoclevel=6\relax}{%
-\expandafter\@ttb@minitoclevel\expandafter
- =\csname @ttb@\@ttb@minitoctype @level\endcsname}%
-\newread\@ttb@toc
-\openin\@ttb@toc=#1\relax
-\c@maxtocunits=0\relax
-\c@maxminitoc=0\relax
-\whiledo{\not\boolean{eof}\@ttb@toc}{%
-\read\@ttb@toc to\tocline
-\@addtotoclist{\tocline}{\c@maxtocunits}%
-}%
-\closein\@ttb@toc}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@addtotoclist}
-% Before each line is added to the contents list, it is
-% first checked to see whether the line starts with
-% "\contentsline". If it does, then check to see if the
-% sectioning type corresponds to the thumbtab level. If
-% it does, then start a new list. There will be "\c@maxtocunits"
-% lists, each one corresponding to each thumbtab group.
-% In addition, each contents line needs to be added to
-% the minitoclists, but only if the sectioning type level
-% is greater than "\@ttb@minitoctype". The number of minitoc
-% lists is given by "\c@maxminitoc".
-% \begin{macrocode}
-\newif\if@contsline
-\newcount\@ttb@level
-\newcount\@ttb@minitoclevel
-
-\newcommand{\@addtotoclist}[2]{%
-\expandafter\@checkcontentsline#1\end
-\if@contsline
-\expandafter\@gettype#1\end
-\ifthenelse{\equal{\@ttb@contstype}{\@ttb@type}}{%
-\global\advance#2 by 1\relax
-}{%
-}%
-\fi
-\@ifundefined{@toc@\romannumeral#2}{%
-\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}}%
-% \end{macrocode}
-% now do minitoc stuff. If the sectioning type is unknown,
-% assume it comes last
-% \begin{macrocode}
-\if@minitoc
- \if@contsline
- \@ifundefined{\@ttb@contstype}{\@ttb@level=6}{%
- \@ttb@level=\csname @ttb@\@ttb@contstype @level\endcsname}%
- \relax
- \ifnum\@ttb@level=\@ttb@minitoclevel
- \global\advance\c@maxminitoc by 1\relax
- \expandafter
- \gdef\csname @minitoc@\romannumeral\c@maxminitoc\endcsname{}%
- \else
- \ifnum\@ttb@level>\@ttb@minitoclevel
- \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
-\fi
-}
-% \end{macrocode}
-%\end{macro}
-% Is there already a way of determining the sectioning
-% level from its name?
-% \begin{macrocode}
-\def\@ttb@part@level{-1}
-\def\@ttb@chapter@level{0}
-\def\@ttb@section@level{1}
-\def\@ttb@subsection@level{2}
-\def\@ttb@subsubsection@level{3}
-\def\@ttb@paragraph@level{4}
-\def\@ttb@subparagraph@level{5}
-% \end{macrocode}
-%\begin{macro}{\@checkcontentsline}
-% Check to see if line starts with "\contentsline"
-% \begin{macrocode}
-\long\def\@checkcontentsline#1#2\end{%
-\ifx#1\contentsline
- \@contslinetrue
-\else
- \@contslinefalse
-\fi}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@gettype}
-% Given that the line starts with "\contentsline", extract
-% the first argument of "\contentsline" to get the sectioning
-% type.
-% \begin{macrocode}
-\def\@gettype\contentsline#1#2\end{%
-\def\@ttb@contstype{#1}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\tableofcontents}
-% Modify "\tableofcontents". It first stores the contents
-% of the toc file, and then, either simply prints it on the
-% page (so it appears no different to the standard
-% "\tableofcontents"), or it prints it out so that each
-% thumbtab unit has the same height as the thumbtabs.
-% Note: this assumes that the actual table of contents
-% starts at the same height as the thumbtabs. The thumbtab
-% vertical position may need to be adjusted to compensate
-% for space taken up by the contents title.
-% \begin{macrocode}
-\newif\ifaligntoc
-\aligntocfalse
-
-\let\@ttb@old@tableofcontents\tableofcontents
-\renewcommand{\tableofcontents}{%
-\@storetoctrue
-\@ttb@old@tableofcontents
-\ifaligntoc
- \@printalignedtoc
-\else
- \@printtoc
-\fi
-\@storetocfalse
-\global\c@minitoc=0\relax}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\beforeminitocskip}
-% Vertical space to add before minitoc.
-% \begin{macrocode}
-\newlength\beforeminitocskip
-\setlength{\beforeminitocskip}{0pt}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\afterminitocskip}
-% Vertical space to add after minitoc.
-% \begin{macrocode}
-\newlength\afterminitocskip
-\setlength{\afterminitocskip}{\baselineskip}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\dominitoc}
-% Do the minitoc for unit "#1". Check first that
-% minitocs have been enabled.
-% \begin{macrocode}
-\newcommand*{\dominitoc}[1]{%
-\if@minitoc \@dominitoc{#1}\fi}
-\newcommand*{\@dominitoc}[1]{\@@dominitoc{#1}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\minitocstyle}
-% Style in which to display the minitoc.
-% \begin{macrocode}
-\newcommand{\minitocstyle}[1]{\normalfont\normalsize\normalcolor
-#1}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@@dominitoc}
-% Now do the actual minitoc for unit "#1".
-% \begin{macrocode}
-\newcommand*{\@@dominitoc}[1]{%
-{\minitocstyle{%
-\vskip\beforeminitocskip
-\csname @minitoc@\romannumeral#1\endcsname}}
-\vskip\afterminitocskip}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\appenddfminitoc}
-% Modify "\dominitoc" so that the minitoc is appended
-% to specified \gls{dynamic}. Starred version uses
-% \gls{dynamic} \gls{idl}, unstarred version uses \gls{dynamic}
-% \gls{idn}. I originally called this macro "\appendminitoctodynamicframe"
-% but decided it was too long, for I've opted instead
-% for a slightly more cryptic name.
-% \begin{macrocode}
-\newcommand*{\appenddfminitoc}{%
-\renewcommand{\beforeminitocskip}{\baselineskip}%
-\@ifstar\@sappendminitocdf\@appendminitocdf}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@sappendminitocdf}
-% Starred version
-% \begin{macrocode}
-\newcommand*{\@sappendminitocdf}[1]{%
-\renewcommand{\@dominitoc}[1]{%
-\@sappenddynamic{#1}{\@@dominitoc{##1}}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@appendminitocdf}
-% Unstarred version
-% \begin{macrocode}
-\newcommand*{\@appendminitocdf}[1]{%
-\renewcommand{\@dominitoc}[1]{%
-\@appenddynamic{#1}{\@@dominitoc{##1}}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@printtoc}
-% Do the table of contents, which has been stored
-% in "\c@maxtocunits" macros. (or possibly
-% "\c@maxtocunits + 1", if information was added
-% before the first group---which corresponds to
-% "\@colN=0".)
-% \begin{macrocode}
-\newcommand*{\@printtoc}{%
-\@colN=0\relax
-\csname @toc@\romannumeral\@colN\endcsname
-\whiledo{\@colN<\c@maxtocunits}{%
-\advance\@colN by 1\relax
-\csname @toc@\romannumeral\@colN\endcsname}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@printalignedtoc}
-% Print the table of contents so that each unit is
-% has vertical height the same as the height of the
-% thumbtabs. Note that you may have to adjust the
-% vertical offset of the thumbtabs (in "\makethumbtabs")
-% in order to make them correctly aligned.
-% \begin{macrocode}
-\newcommand{\@printalignedtoc}{%
-\@ff@tmpN=0\relax
-\@ifundefined{@toc@\romannumeral\@ff@tmpN}{%
-}{%
-\csname @toc@\romannumeral\@ff@tmpN\endcsname
-\par\noindent\hrulefill
-}%
-\whiledo{\@ff@tmpN<\c@maxtocunits}{%
-\advance\@ff@tmpN by 1\relax
-\ifnum\@ff@tmpN>\c@maxthumbtabs
-\csname @toc@\romannumeral\@ff@tmpN\endcsname
-\else
-\@dynamicframeid{thumbtabindex\number\@ff@tmpN}%
-\expandafter\expandafter\expandafter
-\@ff@getstaticpos\csname @df@dim@\romannumeral\ff@id\endcsname
-\vbox to \@ff@tmp@y{%
-\noindent\parbox{\linewidth}{%
-\csname @toc@\romannumeral\@ff@tmpN\endcsname}%
-\vfill
-\par\noindent\hrulefill
-}%
-\fi}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\enableminitoc}
-% Make mini tocs appear at the start of given sectional unit.
-% \begin{macrocode}
-\newcounter{minitoc}
-\newif\if@minitoc
-\@minitocfalse
-
-\newcommand*{\enableminitoc}[1][\@ttb@type]{%
-\@minitoctrue
-\setcounter{minitoc}{0}%
-\@ifundefined{#1}{%
-\PackageError{flowfram}{Sectioning type `#1' not defined}{}}{%
-\renewcommand{\@ttb@minitoctype}{#1}%
-\ifthenelse{\equal{#1}{chapter}}{\@makeminitocchapter}{%
-\ifthenelse{\equal{#1}{part}}{\@makeminitocpart}{%
-\@makeminitocsection{#1}}}}%
-}
-% \end{macrocode}
-%\end{macro}
-% This command should only appear in the preamble. (This
-% ensures that it is used before "\tableofcontents".
-% \begin{macrocode}
-\@onlypreamble{\enableminitoc}
-% \end{macrocode}
-%\begin{macro}{\@makeminitocchapter}
-% If minitocs are associated with chapters, redefine
-% "\@chapter" so that the minitoc appears after the
-% chapter heading.
-% \begin{macrocode}
-\newcommand{\@makeminitocchapter}{
-\let\@mtoc@old@chapter\@chapter
-\def\@chapter[##1]##2{%
-\@mtoc@old@chapter[##1]{##2}%
-\stepcounter{minitoc}%
-\dominitoc{\c@minitoc}%
-\@afterheading
-}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@makeminitocpart}
-% Again, for parts. As before, need to redefine
-% "\@endpart" if it exists, otherwise redefine
-% "\@part".
-% \begin{macrocode}
-\newcommand{\@makeminitocpart}{
-\@ifundefined{@endpart}{%
-\let\@mtoc@old@part\@part
-\def\@part[##1]##2{%
-\@mtoc@old@part[##1]{##2}%
-\stepcounter{minitoc}%
-\dominitoc{\c@minitoc}%
-\@afterheading
-}}{%
-\let\@mtoc@old@endpart\@endpart
-\def\@endpart{%
-\stepcounter{minitoc}%
-\dominitoc{\c@minitoc}%
-\@mtoc@old@endpart
-}}}
-% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\@makeminitocsection}
-% Now for the remaining sectional units.
-% \begin{macrocode}
-\newcommand{\@makeminitocsection}[1]{%
-\let\@mtoc@old@sect=\@sect
-\def\@sect##1##2##3##4##5##6[##7]##8{%
-\@mtoc@old@sect{##1}{##2}{##3}{##4}{##5}{##6}[##7]{##8}%
-\ifthenelse{\equal{##1}{#1}}{%
-\stepcounter{minitoc}%
-\dominitoc{\c@minitoc}\@afterheading}{}%
-}}
-% \end{macrocode}
-%\end{macro}
-%\iffalse
-% \begin{macrocode}
-%</flowfram.sty>
-% \end{macrocode}
-%\fi
-%\Finale
-\endinput
diff --git a/Master/texmf-dist/doc/latex/flowfram/flowfram.ins b/Master/texmf-dist/doc/latex/flowfram/flowfram.ins
deleted file mode 100644
index 78f6abf9788..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/flowfram.ins
+++ /dev/null
@@ -1,31 +0,0 @@
-% flowfram.ins generated using makedtx version 0.94b 2009/11/25 11:29
-\input docstrip
-
-\preamble
-
- flowfram.dtx
- Copyright 2009 Nicola Talbot
-
- This work may be distributed and/or modified under the
- conditions of the LaTeX Project Public License, either version 1.3
- of this license of (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 Nicola Talbot.
-
- This work consists of the files flowfram.dtx and flowfram.ins and the derived file flowfram.sty.
-
-\endpreamble
-
-\askforoverwritefalse
-
-\generate{\file{flowfram.sty}{\usepreamble\defaultpreamble
-\usepostamble\defaultpostamble\from{flowfram.dtx}{flowfram.sty,package}}
-}
-
-\endbatchfile
diff --git a/Master/texmf-dist/doc/latex/flowfram/flowfram.pdf b/Master/texmf-dist/doc/latex/flowfram/flowfram.pdf
index a9e11aeecc2..b4ebe1d54cf 100644
--- a/Master/texmf-dist/doc/latex/flowfram/flowfram.pdf
+++ b/Master/texmf-dist/doc/latex/flowfram/flowfram.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/flowfram/flowfram.perl b/Master/texmf-dist/doc/latex/flowfram/flowfram.perl
deleted file mode 100644
index 7d7f8c23c56..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/flowfram.perl
+++ /dev/null
@@ -1,1632 +0,0 @@
-#!/usr/bin/env perl
-# File : flowfram.perl
-# Author : Nicola L C Talbot
-# Date : 28 June 2008
-# Last Modified : 1 July 2008
-# Version : 1.0
-# Description : LaTeX2HTML implementation of the flowfram package.
-# This is not meant to emulate the flowfram package.
-# Most of the frame related commands are ignored, to
-# provide a simple HTML version of the document.
-#
-# Copyright 2007 Nicola L.C. Talbot
-#
-# This work may be distributed and/or modified under the
-# conditions of the LaTeX Project Public License, either version 1.3
-# of this license of (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 Nicola Talbot.
-
-package main;
-
-$showstaticcontents = 0;
-$showdynamiccontents = 0;
-
-sub do_cmd_onecolumninarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumninarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_Ncolumninarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_Ncolumn{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumntopinarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumntopinarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_Ncolumntopinarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumnbottominarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumnbottominarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_Ncolumnbottominarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumnStopinarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumnDtopinarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumnSbottominarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumnDbottominarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumnStopinarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumnDtopinarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumnSbottominarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumnDbottominarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_NcolumnDbottominarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_NcolumnSbottominarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumntop
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumntop
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_Ncolumntop
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumnStop
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumnStop
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_NcolumnStop
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumnDtop
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumnDtop
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_NcolumnDtop
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumnbottom
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumnbottom
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_Ncolumnbottom
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumnSbottom
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumnSbottom
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_NcolumnSbottom
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_onecolumnDbottom
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_twocolumnDbottom
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_NcolumnDbottom
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_NcolumnDtopinarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_NcolumnStopinarea
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_makebackgroundframe
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- ($keyval,$pat) = &get_next_optional_argument;
-
- $_
-}
-
-sub do_cmd_vtwotone
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_vtwotonetop
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_vtwotonebottom
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_htwotone
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_htwotoneleft
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_htwotoneright
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_hNtone{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- $keyval,$pat = &get_next_optional_argument;
-
- local($n);
-
- $n = &missing_braces
- unless(s/$next_pair_pr_rx/$n=$2;''/eo);
-
- for ($idx = 1; $idx <= $n; $idx++)
- {
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- }
-
- $_;
-}
-
-sub do_cmd_hNtoneleft{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- $keyval,$pat = &get_next_optional_argument;
-
- local($n);
-
- $n = &missing_braces
- unless(s/$next_pair_pr_rx/$n=$2;''/eo);
-
- for ($idx = 1; $idx <= $n; $idx++)
- {
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- }
-
- $_;
-}
-
-sub do_cmd_hNtoneright{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- $keyval,$pat = &get_next_optional_argument;
-
- local($n);
-
- $n = &missing_braces
- unless(s/$next_pair_pr_rx/$n=$2;''/eo);
-
- for ($idx = 1; $idx <= $n; $idx++)
- {
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- }
-
- $_;
-}
-
-sub do_cmd_vNtone{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- $keyval,$pat = &get_next_optional_argument;
-
- local($n);
-
- $n = &missing_braces
- unless(s/$next_pair_pr_rx/$n=$2;''/eo);
-
- for ($idx = 1; $idx <= $n; $idx++)
- {
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- }
-
- $_;
-}
-
-sub do_cmd_vNtonetop{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- $keyval,$pat = &get_next_optional_argument;
-
- local($n);
-
- $n = &missing_braces
- unless(s/$next_pair_pr_rx/$n=$2;''/eo);
-
- for ($idx = 1; $idx <= $n; $idx++)
- {
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- }
-
- $_;
-}
-
-sub do_cmd_vNtonebottom{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- $keyval,$pat = &get_next_optional_argument;
-
- local($n);
-
- $n = &missing_braces
- unless(s/$next_pair_pr_rx/$n=$2;''/eo);
-
- for ($idx = 1; $idx <= $n; $idx++)
- {
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- }
-
- $_;
-}
-
-sub do_cmd_inserthrule{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
- ($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_insertvrule{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
- ($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_newflowframe
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- ($keyval,$pat) = &get_next_optional_argument;
-
- $_
-}
-
-sub do_cmd_newflowframestar
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- ($keyval,$pat) = &get_next_optional_argument;
-
- $_
-}
-
-sub do_cmd_newstaticframe
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- ($keyval,$pat) = &get_next_optional_argument;
-
- $_
-}
-
-sub do_cmd_newstaticframestar
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- ($keyval,$pat) = &get_next_optional_argument;
-
- $_
-}
-
-sub do_cmd_newdynamicframe
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- ($keyval,$pat) = &get_next_optional_argument;
-
- $_
-}
-
-sub do_cmd_newdynamicframestar
-{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- ($keyval,$pat) = &get_next_optional_argument;
-
- $_
-}
-
-sub do_cmd_setflowframe
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_setflowframestar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_setstaticframe
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_setstaticframestar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_setdynamicframe
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_setdynamicframestar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_setalldynamicframes
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_setallflowframes
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_setallstaticframes
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_setthumbtab
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_setthumbtabindex
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_ffswapoddeven
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_ffswapoddevenstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_dfswapoddeven
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_dfswapoddevenstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_sfswapoddeven
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_sfswapoddevenstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_dfchaphead
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_dfchapheadstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_computeleftedgeodd
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_computeleftedgeeven
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_computerightedgeodd
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_computerightedgeeven
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_computebottomedge
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_computetopedge
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_appenddfminitoc
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_appenddfminitocstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_makethumbtabs
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_setstaticcontents
-{
- local($_) = @_;
- local($text);
-
- s/$next_pair_pr_rx/;''/eo;
-
- $text = &missing_braces
- unless (s/$next_pair_pr_rx/$text=$2;''/eo);
-
- $text = "" unless($showstaticcontents);
-
- "$text$_"
-}
-
-sub do_cmd_setstaticcontentsstar
-{
- local($_) = @_;
- local($text);
-
- s/$next_pair_pr_rx/;''/eo;
-
- $text = &missing_braces
- unless (s/$next_pair_pr_rx/$text=$2;''/eo);
-
- $text = "" unless($showstaticcontents);
-
- "$text$_"
-}
-
-sub do_cmd_setdynamiccontents
-{
- local($_) = @_;
- local($text);
-
- s/$next_pair_pr_rx/;''/eo;
-
- $text = &missing_braces
- unless (s/$next_pair_pr_rx/$text=$2;''/eo);
-
- $text = "" unless($showdynamiccontents);
-
- "$text$_"
-}
-
-sub do_cmd_setdynamiccontentsstar
-{
- local($_) = @_;
- local($text);
-
- s/$next_pair_pr_rx/;''/eo;
-
- $text = &missing_braces
- unless (s/$next_pair_pr_rx/$text=$2;''/eo);
-
- $text = "" unless($showdynamiccontents);
-
- "$text$_"
-}
-
-sub do_cmd_appenddynamiccontents
-{
- local($_) = @_;
- local($text);
-
- s/$next_pair_pr_rx/;''/eo;
-
- $text = &missing_braces
- unless (s/$next_pair_pr_rx/$text=$2;''/eo);
-
- $text = "" unless($showdynamiccontents);
-
- "$text$_"
-}
-
-sub do_cmd_appenddynamiccontentsstar
-{
- local($_) = @_;
- local($text);
-
- s/$next_pair_pr_rx/;''/eo;
-
- $text = &missing_braces
- unless (s/$next_pair_pr_rx/$text=$2;''/eo);
-
- $text = "" unless($showdynamiccontents);
-
- "$text$_"
-}
-
-sub do_env_staticcontents{
- local($_) = @_;
- local($id);
-
- $id = &missing_braces
- unless (s/$next_pair_rx/$id=$2,''/eo);
-
- local($body) = ($showstaticcontents ? $_ : "");
-
- $body
-}
-
-sub do_env_staticcontentsstar{
- local($_) = @_;
- local($id);
-
- $id = &missing_braces
- unless (s/$next_pair_rx/$id=$2,''/eo);
-
- local($body) = ($showstaticcontents ? $_ : "");
-
- $body
-}
-
-sub do_env_dynamiccontents{
- local($_) = @_;
- local($id);
-
- $id = &missing_braces
- unless (s/$next_pair_rx/$id=$2,''/eo);
-
- local($body) = ($showdynamiccontents ? $_ : "");
-
- $body
-}
-
-sub do_env_dynamiccontentsstar{
- local($_) = @_;
- local($id);
-
- $id = &missing_braces
- unless (s/$next_pair_rx/$id=$2,''/eo);
-
- local($body) = ($showdynamiccontents ? $_ : "");
-
- $body
-}
-
-sub do_continueonframe{
- local($_) = @_;
-
- local($keyval,$pat) = &get_next_optional_argument;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getflowid
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getstaticid
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getdynamicid
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getdynamiclabel
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getflowlabel
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getstaticlabel
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getdynamicbounds
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getdynamicboundsstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getflowbounds
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getflowboundsstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getstaticbounds
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_getstaticboundsstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_FFaboveleft{ "above left".$_[0] }
-sub do_cmd_FFaboveright{ "above right".$_[0] }
-sub do_cmd_FFbelowleft{ "below left".$_[0] }
-sub do_cmd_FFbelowright{ "below right".$_[0] }
-sub do_cmd_FFleft{ "on the left".$_[0] }
-sub do_cmd_FFright{ "on the right".$_[0] }
-sub do_cmd_FFabove{ "above".$_[0] }
-sub do_cmd_FFbelow{ "below".$_[0] }
-sub do_cmd_FFoverlap{ "overlap".$_[0] }
-
-sub do_cmd_ffcontinuedtextfont{
- local($_) = @_;
- local($text);
-
- $text = &missingbraces
- unless (s/$next_pair_pr_rx/$text=$2;''/eo);
-
- "<EM>$text</EM>$_"
-}
-
-sub do_cmd_ffhrule{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_ffvrule{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_labelflow{ &do_cmd_label(@_) }
-
-sub do_cmd_labelflowid{ &do_cmd_label(@_) }
-
-sub do_cmd_minitocstyle{
- local($_) = @_;
- local($text);
-
- $text = &missing_braces
- unless(s/$next_pair_pr_rx/$text=$2;''/eo);
-
- "$text$_"
-}
-
-sub do_cmd_relativeframelocation
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_relativeframelocationstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_reldynamicloc
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_reldynamiclocstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_relflowloc
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_relflowlocstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_relstaticloc
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_relstaticlocstar
-{
- local($_) = @_;
-
- s/$next_pair_pr_rx/;''/eo;
- s/$next_pair_pr_rx/;''/eo;
-
- $_
-}
-
-sub do_cmd_simpar{
- local($_) = @_;
-
- "<P>$_"
-}
-
-sub do_env_staticfigure{ &do_env_figure(@_) }
-sub do_env_statictable{ &do_env_table(@_) }
-
-&ignore_commands( <<_IGNORED_CMDS);
-thumbtabindex
-tocandthumbtabindex
-enablethumbtabs
-disablethumbtabs
-enableminitoc
-makedfheaderfooter
-ffcontinuedtextlayout
-fflabelfont
-ffruledeclarations
-ffvadjustfalse
-ffvadjusttrue
-flowframeshowlayout
-finishthispage
-framebreak
-setffdraftcolor
-setffdraftypeblockcolor
-showframebboxfalse
-showframebboxtrue
-showmarginsfalse
-showmarginstrue
-showtypeblockfalse
-showtypeblocktrue
-thumbtabformat
-thumbtabindexformat
-_IGNORED_CMDS
-
-1;
diff --git a/Master/texmf-dist/doc/latex/flowfram/flowfram.sty b/Master/texmf-dist/doc/latex/flowfram/flowfram.sty
deleted file mode 100644
index adfb3eaef7d..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/flowfram.sty
+++ /dev/null
@@ -1,4342 +0,0 @@
-%%
-%% This is file `flowfram.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% flowfram.dtx (with options: `flowfram.sty,package')
-%%
-%% flowfram.dtx
-%% Copyright 2009 Nicola Talbot
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license of (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 Nicola Talbot.
-%%
-%% This work consists of the files flowfram.dtx and flowfram.ins and the derived file flowfram.sty.
-%%
-%% \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 \~}
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{flowfram}[2009/11/25 v1.12]
-\RequirePackage{ifthen}
-\RequirePackage{keyval}
-\RequirePackage{graphics}
-\RequirePackage{afterpage}
-\@ifundefined{@ldc@l@r}{\RequirePackage{color}}{}
-\newcommand{\setffdraftcolor}{\color[gray]{0.8}}
-\newcommand{\setffdrafttypeblockcolor}{\color[gray]{0.9}}
-\newlength\fflabelsep
-\fflabelsep=1pt
-\newcommand*{\fflabelfont}{\small\sffamily}
-\newif\ifshowtypeblock
-\newif\ifshowmargins
-\newif\ifshowframebbox
-\newcommand*{\@ffdraft}{%
-\showtypeblocktrue
-\showmarginstrue
-\showframebboxtrue
-}
-\newcommand*{\@ffnodraft}{%
-\showtypeblockfalse
-\showmarginsfalse
-\showframebboxfalse
-}
-\newcommand*{\@fr@meifdraft}[3][\setffdraftcolor]{%
-\def\ff@backcol{{none}}%
-\@ifundefined{color}{\frame{#2}}{#1\frame{#2}}%
-\ifthenelse{\equal{#3}{}}{}{%
-\makebox[0pt][l]{\hskip\fflabelsep\fflabelfont{[#3]}}}}%
-\newcommand*{\@s@tffcol}{}
-\newcommand*{\@s@tfftextcol}{}
-\newcommand*{\@ffbackground}[1]{#1}
-\DeclareOption{draft}{\@ffdraft}
-\DeclareOption{final}{\@ffnodraft}
-\newif\if@ttb@rotate
-\@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
-\@ttb@titletrue
-\DeclareOption{ttbtitle}{\@ttb@titletrue}
-\DeclareOption{ttbnotitle}{\@ttb@titlefalse}
-\DeclareOption{ttbnum}{\@ttb@numtrue}
-\DeclareOption{ttbnonum}{\@ttb@numfalse}
-\DeclareOption{color}{%
-\def\flowframecol{{black}}\def\flowframetextcol{{black}}
-\renewcommand*\@s@tffcol{\ifthenelse{\equal{\ff@col}{}}{}{%
-\expandafter\color\ff@col}}
-\renewcommand*\@s@tfftextcol{\ifthenelse{\equal{\ff@txtcol}{}}{}{%
-\expandafter\color\ff@txtcol}}
-\renewcommand*{\@ffbackground}[1]{%
-\ifthenelse{\equal{\ff@backcol}{{none}}}{%
-#1}{{\fboxsep=0pt\expandafter\colorbox\ff@backcol{#1}}}}
-}
-\DeclareOption{nocolor}{%
-\def\flowframetextcol{}%
-\def\flowframecol{}%
-\renewcommand{\@s@tffcol}{}\renewcommand{\@s@tfftextcol}{}
-\renewcommand{\@ffbackground}[1]{#1}
-}
-\newif\iflefttorightcolumns
-\lefttorightcolumnstrue
-\DeclareOption{LR}{\lefttorightcolumnstrue}
-\DeclareOption{RL}{\lefttorightcolumnsfalse}
-\ifdim\overfullrule=0pt
-\ExecuteOptions{final}
-\else
-\ExecuteOptions{draft}
-\fi
-\ifx\normalcolor\relax
-\ExecuteOptions{nocolor}
-\else
-\ExecuteOptions{color}
-\fi
-\ProcessOptions
-\ifx\normalcolor\relax
-\ifthenelse{\equal{\flowframetextcol}{}}{}{%
-\RequirePackage{color}}
-\fi
-\@ifundefined{chapter}{}{%
-\newcommand*{\chapterfirstpagestyle}{plain}
-\let\@ff@OLD@chapter\@chapter
-\let\@ff@OLD@schapter\@schapter
-\renewcommand{\@chapter}{%
-\thispagestyle{\chapterfirstpagestyle}\@ff@OLD@chapter}
-\renewcommand{\@schapter}{%
-\thispagestyle{\chapterfirstpagestyle}\@ff@OLD@schapter}
-}
-\newcounter{maxflow}
-\c@maxflow=0\relax
-\newcounter{thisframe}
-\c@thisframe=0\relax
-\@ifpackageloaded{hyperref}{%
-\def\theHthisframe{\thepage.\arabic{thisframe}}}{}
-\newcommand*{\labelflowidn}[1]{%
-{\def\@currentlabel{\thethisframe}\label{#1}}}
-\newcounter{displayedframe}
-\c@displayedframe=0
-\@ifpackageloaded{hyperref}{%
-\def\theHdisplayedframe{\thepage.\arabic{displayedframe}}}{}
-\newcommand*{\labelflow}[1]{%
-{\def\@currentlabel{\thedisplayedframe}\label{#1}}}
-\newcounter{maxstatic}
-\c@maxstatic=0\relax
-\newcounter{maxdynamic}
-\c@maxdynamic=0\relax
-\newcount\@colN
-\newcount\@ff@tmpN
-\newcount\ff@id
-\newlength\@ff@offset
-\newlength\@ff@tmp@x
-\newlength\@ff@tmp@x@even
-\newlength\@ff@tmp@y
-\newlength\sdfparindent
-\newlength\flowframesep
-\flowframesep=\fboxsep
-\newlength\flowframerule
-\flowframerule=\fboxrule
-\newcommand*{\flowframeshowlayout}{%
-\finishthispage
-{\@ffdraft\mbox{}\finishthispage\clearpage}}
-\newif\ifusedframebreak
-\newcommand{\framebreak}[1][4]{%
-\usedframebreaktrue
-{\parfillskip=0pt\pagebreak[#1]\parskip=0pt\par\noindent}}
-\newcommand{\finishthispage}{%
-\@colN=\c@thisframe
-\newpage
-\whiledo{\@colN<\c@maxflow}{\advance\@colN by 1\relax
-\@ff@chckifthispg{\c@page}{\@colN}%
-\if@notthiscol\else
-\mbox{}\newpage%
-\fi
-}}
-\def\cleardoublepage{\finishthispage
-\if@twoside
-\ifodd\c@page
-\else
-\hbox{}\finishthispage
-\fi
-\fi}
-\@twocolumnfalse
-\@mparswitchfalse
-\newcommand{\globalreversemargin}{%
-\global\@mparbottom\z@\global\@reversemargintrue}
-\newcommand{\globalnormalmargin}{%
-\global\@mparbottom\z@\global\@reversemarginfalse}
-\newcommand{\@getmarginpos}[1]{%
-\ifthenelse{\equal{#1}{inner}}{%
-\if@twoside
-\ifodd\c@page\def\ff@margin{left}\else\def\ff@margin{right}\fi
-\else
-\def\ff@margin{left}%
-\fi
-}{%
-\ifthenelse{\equal{#1}{outer}}{%
-\if@twoside
-\ifodd\c@page\def\ff@margin{right}\else\def\ff@margin{left}\fi
-\else
-\def\ff@margin{right}%
-\fi
-}{%
-\def\ff@margin{#1}}}%
-}
-\newcommand{\setmargin}{%
-\@getmarginpos{%
-\csname @ff@margin@\romannumeral\c@thisframe\endcsname}%
-\ifthenelse{\equal{\ff@margin}{left}}%
-{\globalreversemargin}{\globalnormalmargin}%
-}
-\newcommand{\newflowframe}{\@n@wflowframe}
-\@onlypreamble{\newflowframe}
-\newcommand{\@n@wflowframe}{%
-\global\advance\c@maxflow by 1\relax
-\expandafter\global\expandafter
-\newif\csname ifcolumnframe\romannumeral\c@maxflow\endcsname
-\@ifstar\@snewflowframe\@newflowframe
-}
-\newcommand{\@snewflowframe}{%
-\expandafter\global\expandafter
-\let\csname ifcolumnframe\romannumeral\c@maxflow\endcsname\iftrue
-\@@newflowframe}
-\newcommand{\@newflowframe}{%
-\expandafter\global\expandafter
-\let\csname ifcolumnframe\romannumeral\c@maxflow\endcsname\iffalse
-\@@newflowframe}
-\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}
-\ifnum\c@thisframe=0\relax
-\ifthenelse{\equal{#1}{all}\TE@or\equal{#1}{odd}}{%
-\c@thisframe=\c@maxflow
-\global\setlength{\hsize}{#2}%
-\global\usedframebreaktrue
-}{\ifthenelse{\equal{#1}{even}\TE@or\equal{#1}{none}}{}{%
-\def\ff@pages{#1}%
-\@for\@ff@pp:=\ff@pages\do{%
-\def\@ff@numstart{0}\def\@ff@numend{0}%
-\@ff@getrange{\@ff@pp}%
-\ifnum\@ff@numstart=0\def\@ff@numstart{1}\fi
-\ifnum\@ff@numstart=1\relax
-\c@thisframe=\c@maxflow
-\global\setlength{\hsize}{#2}%
-\global\usedframebreaktrue
-\fi
-}}}%
-\fi
-\@ifnextchar[{\@s@tflowframeid{\c@maxflow}}{%
-\@s@tflowframeid{\c@maxflow}[\number\c@maxflow]}}
-\def\@s@tflowframeid#1[#2]{%
-\edef\ff@label{#2}%
-\@ff@checkuniqueidl{#1}{\ff@label}%
-\expandafter
-\xdef\csname @col@id@\romannumeral#1\endcsname{\ff@label}%
-}
-\newcommand*{\@ff@checkuniqueidl}[2]{%
-{\@colN=0\relax
-\whiledo{\@colN<\c@maxflow}{%
-\advance\@colN by 1\relax
-\ifnum\@colN=#1\relax
-\else
-\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}}{}%
-\fi
-}}}
-\newcommand*{\getflowlabel}[1]{%
-\csname @col@id@\romannumeral#1\endcsname}
-\newcommand*{\getflowid}[2]{%
-\@flowframeid{#2}\edef#1{\number\ff@id}}
-\newcommand*{\@flowframeid}[1]{\@colN=0\relax
-\ff@id=0\relax
-\whiledo{\@colN<\c@maxflow}{\advance\@colN by 1\relax
-\ifthenelse{%
-\equal{#1}{\csname @col@id@\romannumeral\@colN\endcsname}}{%
-\ff@id=\@colN\relax
-\@colN=\c@maxflow}{}}%
-\ifnum\ff@id=0\relax
-\PackageError{flowfram}{Can't find flow frame id '#1'}{}\fi}
-\define@key{flowframe}{width}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'width' key}{}}{}%
-\def\ff@width{#1}}
-\define@key{flowframe}{height}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'height' key}{}}{}%
-\def\ff@height{#1}}
-\define@key{flowframe}{x}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'x' key}{}}{}%
-\def\ff@x{#1}}
-\define@key{flowframe}{y}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'y' key}{}}{}%
-\def\ff@y{#1}}
-\define@key{flowframe}{evenx}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'evenx' key}{}}{}%
-\def\ff@evenx{#1}}
-\define@key{flowframe}{eveny}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'eveny' key}{}}{}%
-\def\ff@eveny{#1}}
-\define@key{flowframe}{oddx}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'oddx' key}{}}{}%
-\def\ff@oddx{#1}}
-\define@key{flowframe}{oddy}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'oddy' key}{}}{}%
-\def\ff@oddy{#1}}
-\define@key{flowframe}{label}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'label' key}{}}{}%
-\def\ff@label{#1}}
-\define@key{flowframe}{border}[plain]{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'border' key - use
-'none' for no border}{}}{}%
-\ifthenelse{\equal{#1}{none}}{%
-\def\ff@frame{false}}{\def\ff@frame{true}%
-\ifthenelse{\equal{#1}{plain}}{\def\ff@frametype{fbox}}{%
-\def\ff@frametype{#1}}}}
-\define@key{flowframe}{bordercolor}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'bordercolor' key}{}}{}%
-\def\ff@col{#1}}
-\define@key{flowframe}{textcolor}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'textcolor' key}{}}{}%
-\def\ff@txtcol{#1}}
-\define@key{flowframe}{backcolor}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'backcolor' key}{}}{}%
-\def\ff@backcol{#1}}
-\define@key{flowframe}{pages}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'pages' key}{}}{}%
-\def\ff@pages{#1}}
-\define@key{flowframe}{offset}{\def\ff@offset{#1}%
-\ifthenelse{\equal{#1}{}}{\PackageError{flowframe}{%
-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}}{%
-\def\ff@margin{#1}}{\PackageError{flowfram}{invalid value of
-'margin' key}{Key 'margin' can only take the values
-'left' or 'right'}}}
-\define@key{flowframe}{clear}[true]{%
-\ifthenelse{\equal{#1}{true}\or\equal{#1}{false}}{%
-\def\ff@clear{#1}}{\PackageError{flowfram}{Key 'clear' is
-boolean}{You can only specify the values 'true' or 'false'}}}
-\define@key{flowframe}{style}{\ifthenelse{\equal{#1}{}}{%
-\PackageError{flowfram}{Missing value for 'style' key}{}}{}%
-\ifthenelse{\equal{#1}{none}}{\def\ff@style{relax}}{\def\ff@style{#1}}}
-\define@key{flowframe}{shape}{\def\ff@shape{#1}%
-}
-\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'}}}
-\newcommand*{\setallflowframes}[1]{%
-\@colN=0\whiledo{\@colN<\c@maxflow}{\advance\@colN by 1\relax
-\@@setflowframe{\@colN}{#1}}}
-\newcommand*{\setflowframe}{\@ifstar\@ssetflowframe\@setflowframe}
-\newcommand{\@ssetflowframe}[2]{%
-\@for\@ff@id:=#1\do{%
-\@flowframeid{\@ff@id}%
-\@@setflowframe{\ff@id}{#2}}}
-\newcommand*{\@setflowframe}[2]{%
-\ifthenelse{\equal{#1}{all}}{%
-\setallflowframes{#2}}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxflow\TE@or\@colN=\c@maxflow}{%
-\@@setflowframe{\@colN}{#2}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxflow\relax
- \def\@ff@numend{\c@maxflow}%
-\fi
-\@colN=\@ff@numstart\relax
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@setflowframe{\@colN}{#2}%
-\advance\@colN by 1\relax
-}}}}}
-\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@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@shape{\empty}%
-\setkeys{flowframe}{#2}%
-\ifthenelse{\equal{\ff@frame}{}}{}{%
-\setboolean{columnframe\romannumeral#1}{\ff@frame}}%
-\ifthenelse{\equal{\ff@width}{}}{}{%
-\expandafter\setlength\csname colwidth\romannumeral#1\endcsname
-{\ff@width}}%
-\ifthenelse{\equal{\ff@height}{}}{}{%
-\expandafter\setlength\csname colheight\romannumeral#1\endcsname
-{\ff@height}}%
-\ifthenelse{\equal{\ff@x}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@posx\endcsname
-{\ff@x}%
-\expandafter\setlength\csname col@\romannumeral#1@evenx\endcsname
-{\ff@x}}
-\ifthenelse{\equal{\ff@y}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@posy\endcsname
-{\ff@y}%
-\expandafter\setlength\csname col@\romannumeral#1@eveny\endcsname
-{\ff@y}}%
-\ifthenelse{\equal{\ff@evenx}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@evenx\endcsname
-{\ff@evenx}}%
-\ifthenelse{\equal{\ff@eveny}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@eveny\endcsname
-{\ff@eveny}}%
-\ifthenelse{\equal{\ff@oddx}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@posx\endcsname
-{\ff@oddx}}%
-\ifthenelse{\equal{\ff@oddy}{}}{}{%
-\expandafter\setlength\csname col@\romannumeral#1@posy\endcsname
-{\ff@oddy}}%
-\ifthenelse{\equal{\ff@label}{}}{}{%
-\@s@tflowframeid{#1}[\ff@label]}%
-\ifthenelse{\equal{\ff@frametype}{}}{}{%
-\expandafter\edef\csname @ff@frametype@\romannumeral#1\endcsname
-{\ff@frametype}}%
-\ifthenelse{\equal{\ff@col}{}}{}{%
-\expandafter\@setframecol\ff@col\end{#1}{col}{ff}}%
-\ifthenelse{\equal{\ff@txtcol}{}}{}{%
-\expandafter\@setframecol\ff@txtcol\end{#1}{txtcol}{ff}}%
-\ifthenelse{\equal{\ff@backcol}{}}{}{%
-\expandafter\@setframecol\ff@backcol\end{#1}{backcol}{ff}}%
-\ifthenelse{\equal{\ff@margin}{}}{}{%
-\expandafter\xdef\csname @ff@margin@\romannumeral#1\endcsname
-{\ff@margin}}%
-\ifthenelse{\equal{\ff@pages}{}}{}{%
-\expandafter\xdef\csname @ff@pages@\romannumeral#1\endcsname
-{\ff@pages}}%
-\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}{}}%
-\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}{}}%
-}
-\newcommand*{\@@flowframeswapcoords}[1]{%
-\setlength{\@ff@tmp@x}%
-{\csname col@\romannumeral#1@evenx\endcsname}
-\expandafter\setlength\csname col@\romannumeral#1@evenx\endcsname
-{\csname col@\romannumeral#1@posx\endcsname}%
-\expandafter\setlength\csname col@\romannumeral#1@posx\endcsname
-{\@ff@tmp@x}%
-\setlength{\@ff@tmp@y}%
-{\csname col@\romannumeral#1@eveny\endcsname}
-\expandafter\setlength\csname col@\romannumeral#1@eveny\endcsname
-{\csname col@\romannumeral#1@posy\endcsname}%
-\expandafter\setlength\csname col@\romannumeral#1@posy\endcsname
-{\@ff@tmp@y}%
-}
-\newcommand*{\ffswapoddeven}{%
-\@ifstar\@sflowframeswapcoords\@flowframeswapcoords}
-\newcommand*{\@sflowframeswapcoords}[1]{%
-\@for\@ff@id:=#1\do{%
-\@flowframeid{\@ff@id}%
-\@@flowframeswapcoords{\ff@id}}}
-\newcommand*{\@flowframeswapcoords}[1]{%
-\ifthenelse{\equal{#1}{all}}{%
-\ff@id=0\relax
-\whiledo{\ff@id<\c@maxflow}{\advance\ff@id by 1\relax
-\@@flowframeswapcoords{\ff@id}}%
-}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxflow\TE@or\@colN=\c@maxflow}{%
-\@@flowframeswapcoords{\@colN}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxflow
- \def\@ff@numend{\c@maxflow}%
-\fi
-\@colN=\@ff@numstart
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@flowframeswapcoords{\@colN}%
-\advance\@colN by 1\relax
-}}}}}
-\newcommand*{\flowframex}[1]{%
-\csname col@\romannumeral#1@posx\endcsname}
-\newcommand*{\flowframey}[1]{%
-\csname col@\romannumeral#1@posy\endcsname}
-\newcommand*{\flowframeevenx}[1]{%
-\csname col@\romannumeral#1@evenx\endcsname}
-\newcommand*{\flowframeeveny}[1]{%
-\csname col@\romannumeral#1@eveny\endcsname}
-\newcommand{\flowframewidth}[1]{%
-\csname colwidth\romannumeral#1\endcsname}
-\newcommand*{\flowframeheight}[1]{%
-\csname colheight\romannumeral#1\endcsname}
-\def\@setframecol{\@ifnextchar[\@@setframecol\@@setfr@mecol}
-\def\@@setframecol[#1]#2\end#3#4#5{%
-\expandafter\edef\csname @#5@#4@\romannumeral#3\endcsname{%
-[#1]{#2}}}
-\def\@@setfr@mecol#1\end#2#3#4{%
-\expandafter\edef\csname @#4@#3@\romannumeral#2\endcsname{{#1}}}
-\newcommand*{\newstaticframe}{\@n@wstaticframe}
-\newcommand*{\@n@wstaticframe}{%
-\global\advance\c@maxstatic by 1\relax
-\newboolean{staticframe\romannumeral\c@maxstatic}%
-\@ifstar\@snewstaticframe\@newstaticframe
-}
-\newcommand{\@snewstaticframe}{%
-\setboolean{staticframe\romannumeral\c@maxstatic}{true}%
-\@@newstaticframe}
-\newcommand{\@newstaticframe}{%
-\setboolean{staticframe\romannumeral\c@maxstatic}{false}%
-\@@newstaticframe}
-\newcommand*{\@@newstaticframe}[5][all]{%
-\expandafter
-\newbox\csname @staticframe@\romannumeral\c@maxstatic\endcsname
-\expandafter
-\newlength\csname @sf@\romannumeral\c@maxstatic @posx\endcsname
-\expandafter
-\newlength\csname @sf@\romannumeral\c@maxstatic @posy\endcsname
-\expandafter\setlength
-\csname @sf@\romannumeral\c@maxstatic @posx\endcsname{#4}%
-\expandafter\setlength
-\csname @sf@\romannumeral\c@maxstatic @posy\endcsname{#5}%
-\expandafter\newlength
-\csname @sf@\romannumeral\c@maxstatic @evenx\endcsname
-\expandafter\newlength
-\csname @sf@\romannumeral\c@maxstatic @eveny\endcsname
-\expandafter\setlength
-\csname @sf@\romannumeral\c@maxstatic @evenx\endcsname{#4}%
-\expandafter\setlength
-\csname @sf@\romannumeral\c@maxstatic @eveny\endcsname{#5}%
-{\@ff@tmp@x=#2\relax
-\@ff@tmp@y=#3\relax
-\expandafter
-\xdef\csname @sf@dim@\romannumeral\c@maxstatic\endcsname{%
-[c][\the\@ff@tmp@y][c]{\the\@ff@tmp@x}}}%
-\expandafter
-\def\csname @sf@col@\romannumeral\c@maxstatic\endcsname{%
-\flowframecol}%
-\expandafter
-\def\csname @sf@txtcol@\romannumeral\c@maxstatic\endcsname{%
-\flowframetextcol}%
-\expandafter
-\def\csname @sf@backcol@\romannumeral\c@maxstatic\endcsname{%
-{none}}%
-\expandafter
-\xdef\csname @sf@pages@\romannumeral\c@maxstatic\endcsname{#1}%
-\expandafter
-\gdef\csname @sf@offset@\romannumeral\c@maxstatic\endcsname{%
-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}%
-\setboolean{@sf@clear@\romannumeral\c@maxstatic}{false}
-\@ifnextchar[{\@s@tstaticframeid{\c@maxstatic}}%
-{\@s@tstaticframeid{\c@maxstatic}[\number\c@maxstatic]}}
-\def\@s@tstaticframeid#1[#2]{%
-\edef\ff@label{#2}%
-\@sf@checkuniqueidl{#1}{\ff@label}%
-\expandafter
-\xdef\csname @sf@id@\romannumeral#1\endcsname{\ff@label}}
-\newcommand*{\@sf@checkuniqueidl}[2]{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxstatic}{%
-\advance\@colN by 1\relax
-\ifnum\@colN=#1\relax
-\else
-\ifthenelse{%
-\equal{#2}{\csname @sf@id@\romannumeral\@colN\endcsname}}{%
-\PackageError{flowfram}{Static frame IDL '#2' already defined}{%
-You can't assign this label, as it is already defined
-for static frame \number\@colN}}{}%
-\fi
-}}
-\newcommand*{\getstaticlabel}[1]{%
-\csname @sf@id@\romannumeral#1\endcsname}
-\newcommand*{\getstaticid}[2]{%
-\@staticframeid{#2}\edef#1{\number\ff@id}}
-\newcommand*{\@staticframeid}[1]{\@colN=0\relax
-\ff@id=0\relax
-\whiledo{\@colN<\c@maxstatic}{\advance\@colN by 1\relax
-\ifthenelse{%
-\equal{#1}{\csname @sf@id@\romannumeral\@colN\endcsname}}{%
-\ff@id=\@colN\relax
-\@colN=\c@maxstatic}{}}%
-\ifnum\ff@id=0\PackageError{flowfram}{Can't find static frame
-id '#1'}{}\fi}
-\newcommand*{\staticframex}[1]{%
-\csname @sf@\romannumeral#1@posx\endcsname}
-\newcommand*{\staticframey}[1]{%
-\csname @sf@\romannumeral#1@posy\endcsname}
-\newcommand*{\staticframeevenx}[1]{%
-\csname @sf@\romannumeral#1@evenx\endcsname}
-\newcommand*{\staticframeeveny}[1]{%
-\csname @sf@\romannumeral#1@eveny\endcsname}
-\newcommand*{\setallstaticframes}[1]{%
-\@colN=0\whiledo{\@colN<\c@maxstatic}{\advance\@colN by 1\relax
-\@@setstaticframe{\@colN}{#1}}}
-\newcommand*{\setstaticframe}{%
-\@ifstar\@ssetstaticframe\@setstaticframe}
-\newcommand*{\@ssetstaticframe}[2]{%
-\@for\@ff@id:=#1\do{%
-\@staticframeid{\@ff@id}%
-\@@setstaticframe{\ff@id}{#2}}}
-\newcommand*{\@setstaticframe}[2]{%
-\ifthenelse{\equal{#1}{all}}{%
-\setallstaticframes{#2}}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxstatic\TE@or\@colN=\c@maxstatic}{%
-\@@setstaticframe{\@colN}{#2}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxstatic\relax
- \def\@ff@numend{\c@maxstatic}%
-\fi
-\@colN=\@ff@numstart\relax
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@setstaticframe{\@colN}{#2}%
-\advance\@colN by 1\relax
-}}}}}
-\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@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@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{}%
-\setkeys{flowframe}{#2}%
-\ifthenelse{\equal{\ff@frame}{}}{}{%
-\setboolean{staticframe\romannumeral#1}{\ff@frame}}%
-\ifthenelse{\equal{\ff@x}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@posx\endcsname
-{\ff@x}%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@evenx\endcsname
-{\ff@x}}%
-\ifthenelse{\equal{\ff@y}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@posy\endcsname
-{\ff@y}%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@eveny\endcsname
-{\ff@y}}%
-\ifthenelse{\equal{\ff@evenx}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@evenx\endcsname
-{\ff@evenx}}%
-\ifthenelse{\equal{\ff@eveny}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@eveny\endcsname
-{\ff@eveny}}%
-\ifthenelse{\equal{\ff@oddx}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@posx\endcsname
-{\ff@oddx}}%
-\ifthenelse{\equal{\ff@oddy}{}}{}{%
-\expandafter\global
-\expandafter\setlength\csname @sf@\romannumeral#1@posy\endcsname
-{\ff@oddy}}%
-\expandafter
-\xdef\csname @sf@dim@\romannumeral#1\endcsname{%
-[c][\ff@height][\ff@valign]{\ff@width}}%
-\ifthenelse{\equal{\ff@frametype}{}}{}{%
-\expandafter
-\xdef\csname @sf@frametype@\romannumeral#1\endcsname{%
-\ff@frametype}}%
-\ifthenelse{\equal{\ff@label}{}}{}{%
-\@s@tstaticframeid{#1}[\ff@label]}
-\ifthenelse{\equal{\ff@col}{}}{}{%
-\expandafter\@setframecol\ff@col\end{#1}{col}{sf}}%
-\ifthenelse{\equal{\ff@txtcol}{}}{}{%
-\expandafter\@setframecol\ff@txtcol\end{#1}{txtcol}{sf}}%
-\ifthenelse{\equal{\ff@backcol}{}}{}{%
-\expandafter\@setframecol\ff@backcol\end{#1}{backcol}{sf}}%
-\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}}%
-\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}}%
-\ifthenelse{\equal{\ff@clear}{}}{}{%
-\setboolean{@sf@clear@\romannumeral#1}{\ff@clear}}%
-\ifthenelse{\equal{\ff@margin}{}}{}{%
-\PackageError{flowfram}{Key 'margin' not available for
-static frames}{Static frames don't have marginal notes}}%
-\ifthenelse{\equal{\ff@style}{}}{}{%
-\PackageError{flowfram}{Key 'style' not available for
-static frames}{}}%
-}
- %\newcommand*{\simpar}{\hfil\vadjust{\vskip\parskip}\break\indent}
-\newcommand*{\simpar}{\hfill\\\indent\mbox{}}
-\let\FLForgpar\par
-\newcommand{\ffpshpar}{\edef\flf@next{\hangafter=\the\hangafter
-\hangindent=\the\hangindent}\FLForgpar\flf@next
-\edef\flf@next{\prevgraf=\the\prevgraf}\@ff@parshape\indent\mbox{}\flf@next}
-\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\flf@next{\hangafter=\the\hangafter
-\hangindent=\the\hangindent}\FLForgpar\flf@next
-\let\par=\FLForgpar
-\edef\flf@next{\prevgraf=\the\prevgraf}%
-\csname @ff@old\ff@sechead\endcsname*{\@ff@parshape\flf@next
-#1}%
-\xdef\flf@next{\@ff@parshape
-\prevgraf=\the\prevgraf}%
-\endgroup
-}%
-\mbox{}\flf@next\let\flf@next\undefined}
-\def\@ff@heading[#1]#2{%
-\@ifundefined{@ff@old\ff@sechead}{\PackageError{flowfram}{Unknown
-heading command '\ff@sechead'}{}}{%
-\begingroup
-\edef\flf@next{\hangafter=\the\hangafter
-\hangindent=\the\hangindent}\FLForgpar\flf@next
-\let\par=\FLForgpar
-\edef\flf@next{\prevgraf=\the\prevgraf}%
-\csname @ff@old\ff@sechead\endcsname[#1]{\@ff@parshape\flf@next
-#2}%
-\xdef\flf@next{\@ff@parshape
-\prevgraf=\the\prevgraf}%
-\endgroup}%
-\mbox{}\flf@next\let\flf@next\undefined}
-\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}}%
-}
-\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}
-\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}{}}%
-}
-\newbox\staticframe
-\newenvironment{staticcontents}[1]{%
-\let\continueonframe=\@staticcontinueonframe
-\@beginstaticcontents{#1}%
-}{%
-\@endstaticcontents
-\ignorespaces}
-\newenvironment{staticcontents*}[1]{\@staticframeid{#1}%
-\let\continueonframe=\@staticscontinueonframe
-\@beginstaticcontents{\ff@id}%
-}{%
-\@endstaticcontents
-\ignorespaces}
-\newcommand{\@beginstaticcontents}[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
-\edef\@sf@mpg{%
-\noexpand
-\begin{minipage}\csname @sf@dim@\romannumeral#1\endcsname
-\noexpand\begingroup
-\noexpand\let\noexpand\FLForgpar=\noexpand\par
-}%
-\or
-\edef\@sf@mpg{%
-\noexpand
-\begin{minipage}\csname @sf@dim@\romannumeral#1\endcsname
-\@ff@parshape
-\noexpand\begingroup
-\noexpand\let\noexpand\FLForgpar=\noexpand\par
-\noexpand\let\noexpand\par=\noexpand\ffpshpar
-\noexpand\@ff@setsecthead
-}%
-\or
-\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\noindent
-\@sf@mpg
-\setlength\parindent\sdfparindent
-}
-\newcommand*{\@endstaticcontents}{%
-\ifnum\ff@shape=2\par
-\else\FLForgpar\fi\endgroup\end{minipage}\end{lrbox}%
-\expandafter\global\expandafter\sbox\@sf@thisframe{%
-\usebox\staticframe}}
-\newcommand{\setstaticcontents}{%
-\@ifstar\@sstaticconts\@staticconts}
-\newcommand{\@sstaticconts}[2]{\begin{staticcontents*}{#1}%
-#2\end{staticcontents*}}
-\newcommand{\@staticconts}[2]{\begin{staticcontents}{#1}%
-#2\end{staticcontents}}
-\newcommand*{\@@staticframeswapcoords}[1]{%
-\setlength{\@ff@tmp@x}%
-{\csname @sf@\romannumeral#1@evenx\endcsname}
-\expandafter\setlength\csname @sf@\romannumeral#1@evenx\endcsname
-{\csname @sf@\romannumeral#1@posx\endcsname}%
-\expandafter\setlength\csname @sf@\romannumeral#1@posx\endcsname
-{\@ff@tmp@x}%
-\setlength{\@ff@tmp@y}%
-{\csname @sf@\romannumeral#1@eveny\endcsname}
-\expandafter\setlength\csname @sf@\romannumeral#1@eveny\endcsname
-{\csname @sf@\romannumeral#1@posy\endcsname}%
-\expandafter\setlength\csname @sf@\romannumeral#1@posy\endcsname
-{\@ff@tmp@y}%
-}
-\newcommand*{\sfswapoddeven}{%
-\@ifstar\@sstaticframeswapcoords\@staticframeswapcoords}
-\newcommand*{\@sstaticframeswapcoords}[1]{%
-\@for\@ff@id:=#1\do{%
-\@staticframeid{\@ff@id}%
-\@@staticframeswapcoords{\ff@id}}}
-\newcommand*{\@staticframeswapcoords}[1]{%
-\ifthenelse{\equal{#1}{all}}{%
-\ff@id=0\relax
-\whiledo{\ff@id<\c@maxflow}{\advance\ff@id by 1\relax
-\@@staticframeswapcoords{\ff@id}}%
-}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxflow\TE@or\@colN=\c@maxflow}{%
-\@@staticframeswapcoords{\@colN}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxflow
- \def\@ff@numend{\c@maxflow}%
-\fi
-\@colN=\@ff@numstart
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@staticframeswapcoords{\@colN}%
-\advance\@colN by 1\relax
-}}}}}
-\newcommand*{\newdynamicframe}{%
-\@n@wdynamicframe}
-\newcommand*{\@n@wdynamicframe}{%
-\global\advance\c@maxdynamic by 1\relax
-\newboolean{dynamicframe\romannumeral\c@maxdynamic}
-\@ifstar\@snewdynamicframe\@newdynamicframe
-}
-\newcommand*{\@snewdynamicframe}{%
-\setboolean{dynamicframe\romannumeral\c@maxdynamic}{true}%
-\@@newdynamicframe}
-\newcommand*{\@newdynamicframe}{%
-\setboolean{dynamicframe\romannumeral\c@maxdynamic}{false}%
-\@@newdynamicframe}
-\newcommand*{\@@newdynamicframe}[5][all]{%
-\expandafter
-\gdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{}%
-\expandafter
-\newlength\csname @df@\romannumeral\c@maxdynamic @posx\endcsname
-\expandafter
-\newlength\csname @df@\romannumeral\c@maxdynamic @posy\endcsname
-\expandafter\setlength
-\csname @df@\romannumeral\c@maxdynamic @posx\endcsname{#4}%
-\expandafter\setlength
-\csname @df@\romannumeral\c@maxdynamic @posy\endcsname{#5}%
-\expandafter\newlength
-\csname @df@\romannumeral\c@maxdynamic @evenx\endcsname
-\expandafter\newlength
-\csname @df@\romannumeral\c@maxdynamic @eveny\endcsname
-\expandafter\setlength
-\csname @df@\romannumeral\c@maxdynamic @evenx\endcsname{#4}%
-\expandafter\setlength
-\csname @df@\romannumeral\c@maxdynamic @eveny\endcsname{#5}%
-{\@ff@tmp@x=#2\relax
-\@ff@tmp@y=#3\relax
-\expandafter
-\xdef\csname @df@dim@\romannumeral\c@maxdynamic\endcsname{%
-[c][\the\@ff@tmp@y][t]{\the\@ff@tmp@x}}}%
-\expandafter
-\gdef\csname @df@col@\romannumeral\c@maxdynamic\endcsname{%
-\flowframecol}%
-\expandafter
-\gdef\csname @df@txtcol@\romannumeral\c@maxdynamic\endcsname{%
-\flowframetextcol}%
-\expandafter
-\gdef\csname @df@backcol@\romannumeral\c@maxdynamic\endcsname{%
-{none}}%
-\expandafter
-\gdef\csname @df@pages@\romannumeral\c@maxdynamic\endcsname{#1}%
-\expandafter
-\gdef\csname @df@frametype@\romannumeral\c@maxdynamic\endcsname{%
-fbox}%
-\expandafter
-\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}%
-\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}}%
-{\@s@tdynamicframeid{\c@maxdynamic}[\number\c@maxdynamic]}}
-\def\@s@tdynamicframeid#1[#2]{%
-\edef\ff@label{#2}%
-\@df@checkuniqueidl{#1}{\ff@label}%
-\expandafter
-\xdef\csname @df@id@\romannumeral#1\endcsname{\ff@label}}
-\newcommand*{\@df@checkuniqueidl}[2]{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxdynamic}{%
-\advance\@colN by 1\relax
-\ifnum\@colN=#1\relax
-\else
-\ifthenelse{\equal{#2}%
-{\csname @df@id@\romannumeral\@colN\endcsname}}{%
-\PackageError{flowfram}{Dynamic frame IDL '#2' already defined}{%
-You can't assign this label, as it is already defined
-for dynamic frame \number\@colN}}{}%
-\fi
-}}
-\newcommand*{\getdynamiclabel}[1]{%
-\csname @df@id@\romannumeral#1\endcsname}
-\newcommand*{\getdynamicid}[2]{%
-\@dynamicframeid{#2}\edef#1{\number\ff@id}}
-\newcommand*{\@dynamicframeid}[1]{\@colN=0\relax
-\ff@id=0\relax
-\whiledo{\@colN<\c@maxdynamic}{\advance\@colN by 1\relax
-\ifthenelse{%
-\equal{#1}{\csname @df@id@\romannumeral\@colN\endcsname}}{%
-\ff@id=\@colN\relax
-\@colN=\c@maxdynamic}{}}%
-\ifnum\ff@id=0\PackageError{flowfram}{Can't find dynamic frame
-id '#1'}{}\fi}
-\newcommand*{\@getframeid}[2]{%
-\@ifdefined{@#1frameid}{\csname @#1frameid\endcsname{#2}}{%
-\PackageError{flowfram}{Unknown frame type `#1'}{Frame types can
-be one of: flow, static or dynamic}}}
-\newcommand*{\dynamicframex}[1]{%
-\csname @df@\romannumeral#1@posx\endcsname}
-\newcommand*{\dynamicframey}[1]{%
-\csname @df@\romannumeral#1@posy\endcsname}
-\newcommand*{\dynamicframeevenx}[1]{%
-\csname @df@\romannumeral#1@evenx\endcsname}
-\newcommand*{\dynamicframeeveny}[1]{%
-\csname @df@\romannumeral#1@eveny\endcsname}
-\newcommand*{\setalldynamicframes}[1]{%
-\@colN=0\whiledo{\@colN<\c@maxdynamic}{\advance\@colN by 1\relax
-\@@setdynamicframe{\@colN}{#1}}}
-\newcommand*{\setdynamicframe}{%
-\@ifstar\@ssetdynamicframe\@setdynamicframe}
-\newcommand*{\@ssetdynamicframe}[2]{%
-\@for\@ff@id:=#1\do{%
-\@dynamicframeid{\@ff@id}%
-\@@setdynamicframe{\ff@id}{#2}}}
-\newcommand*{\@setdynamicframe}[2]{%
-\ifthenelse{\equal{#1}{all}}{%
-\setalldynamicframes{#2}}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxdynamic\TE@or\@colN=\c@maxdynamic}{%
-\@@setdynamicframe{\@colN}{#2}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxdynamic\relax
- \def\@ff@numend{\c@maxdynamic}%
-\fi
-\@colN=\@ff@numstart\relax
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@setdynamicframe{\@colN}{#2}%
-\advance\@colN by 1\relax
-}}}}}
-\newcommand*{\@@setdynamicframe}[2]{%
-\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@shape{0}%
-\setkeys{flowframe}{#2}%
-\ifthenelse{\equal{\ff@frame}{}}{}{%
-\setboolean{dynamicframe\romannumeral#1}{\ff@frame}}%
-\ifthenelse{\equal{\ff@x}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@posx\endcsname{\ff@x}%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@evenx\endcsname{\ff@x}}%
-\ifthenelse{\equal{\ff@y}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@posy\endcsname{\ff@y}%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@eveny\endcsname{\ff@y}}%
-\ifthenelse{\equal{\ff@evenx}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@evenx\endcsname{\ff@evenx}}%
-\ifthenelse{\equal{\ff@eveny}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@eveny\endcsname{\ff@eveny}}%
-\ifthenelse{\equal{\ff@oddx}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@posx\endcsname{\ff@oddx}}%
-\ifthenelse{\equal{\ff@oddy}{}}{}{%
-\expandafter\global\expandafter\setlength
-\csname @df@\romannumeral#1@posy\endcsname{\ff@oddy}}%
-\expandafter\xdef\csname @df@dim@\romannumeral#1\endcsname{%
-[c][\ff@height][\ff@valign]{\ff@width}}%
-\ifthenelse{\equal{\ff@label}{}}{}{%
-\@s@tdynamicframeid{#1}[\ff@label]}%
-\ifthenelse{\equal{\ff@frametype}{}}{}{%
-\expandafter
-\xdef\csname @df@frametype@\romannumeral#1\endcsname{%
-\ff@frametype}}%
-\ifthenelse{\equal{\ff@col}{}}{}{%
-\expandafter\@setframecol\ff@col\end{#1}{col}{df}}%
-\ifthenelse{\equal{\ff@txtcol}{}}{}{%
-\expandafter\@setframecol\ff@txtcol\end{#1}{txtcol}{df}}%
-\ifthenelse{\equal{\ff@backcol}{}}{}{%
-\expandafter\@setframecol\ff@backcol\end{#1}{backcol}{df}}%
-\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}}%
-\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}}%
-\ifthenelse{\equal{\ff@style}{}}{}{%
-\@ifundefined{\ff@style}{\PackageError{flowfram}%
-{Unknown style '\ff@style'}{The command \expandafter
-\string\csname\ff@style\endcsname\space has not been defined}}{%
-\expandafter
-\xdef\csname @df@style@\romannumeral#1\endcsname{\ff@style}}}%
-\ifthenelse{\equal{\ff@clear}{}}{}{%
-\setboolean{@df@clear@\romannumeral#1}{\ff@clear}%
-}%
-\ifthenelse{\equal{\ff@margin}{}}{}{%
-\PackageError{flowfram}{Key 'margin' not available for dynamic
-frames}{dynamic frames don't have marginal notes}}%
-}
-\newcommand*{\@@dynamicframeswapcoords}[1]{%
-\setlength{\@ff@tmp@x}%
-{\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}%
-\expandafter\setlength
-\csname @df@\romannumeral#1@eveny\endcsname
-{\csname @df@\romannumeral#1@posy\endcsname}%
-\expandafter\setlength\csname @df@\romannumeral#1@posy\endcsname
-{\@ff@tmp@y}%
-}
-\newcommand*{\dfswapoddeven}{%
-\@ifstar\@sdynamicframeswapcoords\@dynamicframeswapcoords}
-\newcommand*{\@sdynamicframeswapcoords}[1]{%
-\@for\@ff@id:=#1\do{%
-\@dynamicframeid{\@ff@id}%
-\@@dynamicframeswapcoords{\ff@id}}}
-\newcommand*{\@dynamicframeswapcoords}[1]{%
-\ifthenelse{\equal{#1}{all}}{%
-\ff@id=0\relax
-\whiledo{\ff@id<\c@maxflow}{\advance\ff@id by 1\relax
-\@@dynamicframeswapcoords{\ff@id}}%
-}{%
-\ifthenelse{\equal{#1}{odd} \TE@or \equal{#1}{even}}{%
-\ifthenelse{\equal{#1}{odd}}{\@colN=1}{\@colN=2}%
-\whiledo{\@colN<\c@maxflow\TE@or\@colN=\c@maxflow}{%
-\@@dynamicframeswapcoords{\@colN}%
-\advance\@colN by 2\relax}%
-}{%
-\@for\@ff@id:=#1\do{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{\@ff@id}%
-\ifnum\@ff@numstart=0\relax
- \def\@ff@numstart{1}%
-\fi
-\ifnum\@ff@numend>\c@maxflow
- \def\@ff@numend{\c@maxflow}%
-\fi
-\@colN=\@ff@numstart
-\whiledo{\@colN<\@ff@numend \TE@or \@colN=\@ff@numend}{%
-\@@dynamicframeswapcoords{\@colN}%
-\advance\@colN by 1\relax
-}}}}}
-\newenvironment{dynamiccontents}[1]{%
-\def\@flf@{dynamiccontents}%
-\xdynamiccontents{#1}}{%
-\endxdynamiccontents
-}
-\newtoks\@dynamictok
-\def\xdynamiccontents#1{%
-\def\@flf@idn{#1}%
-\@dynamictok{}\@flf@get@body
-}
-\long\def\@flf@get@body#1\end{%
-\@flf@checkcontinued#1\continueonframe\@nil
-\ifdfcontinued
- \expandafter\flf@ta\expandafter{\@flf@tmpa}%
- \edef\@flf@tmp{\the\@dynamictok\the\flf@ta}%
- \@dynamictok\expandafter{\@flf@tmp}%
-\else
- \@dynamictok\expandafter{\the\@dynamictok#1}%
-\fi
-\@flf@find@end}
-\newif\ifdfcontinued
-\long\def\@flf@checkcontinued#1\continueonframe#2\@nil{%
-\long\def\@flf@tmpa{#1}\long\def\@flf@tmpb{#2}%
-\ifx\@flf@tmpb\@lempty
- \dfcontinuedfalse
-\else
- \dfcontinuedtrue
- \flf@getcontargs#2\@ff@text\@ff@nextid\@ff@rest
-\fi
-}
-\long\def\@lempty{}
-\def\flf@getcontargs{%
-\@ifnextchar[{\@flf@getcontargs}{\@flf@getcontargs[]}}
-\long\def\@flf@getcontargs[#1]#2#3\continueonframe#4#5#6{%
-\def#4{#1}\def#5{#2}\def#6{#3}%
-}
-\def\@flf@find@end#1{%
-\def\@tempa{#1}%
-\global\let\flf@next=\relax
-\ifdfcontinued
- \@dynamictok\expandafter
- {\the\@dynamictok\ffcontinuedtextlayout}%
- \protected@edef\@tmpa{\the\@dynamictok{\@ff@text}}%
- \@dynamictok\expandafter{\@tmpa}%
- \toks@\expandafter{\@ff@rest}%
- \edef\flf@next{\noexpand\@flf@get@body\noexpand\end{#1}%
- \noexpand\begin{#1}{\@ff@nextid}\noexpand\par
- \noexpand\noindent\noexpand\ignorespaces
- \the\toks@\noexpand\end{#1}}%
-\else
- \ifx\@tempa\@flf@
- \let\flf@next=\@flf@endxdynamiccontents
- \else
- \@dynamictok\expandafter
- {\the\@dynamictok\end{#1}}%
- \let\flf@next=\@flf@get@body
- \fi
-\fi
-\flf@next
-}
-\let\endxdynamiccontents\relax
-\def\@flf@endxdynamiccontents{%
-\ifnum\@flf@idn>\c@maxdynamic
- \PackageError{flowfram}{Dynamic frame \number\@flf@idn\ does not exist}{%
- You have specified dynamic frame number \number\@flf@idn, but there are
- only \number\c@maxdynamic\space dynamic frames currently defined}%
-\else
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\@flf@idn\endcsname{%
- \the\@dynamictok}%
- \expandafter
-\fi
-\expandafter\end\expandafter{\@flf@}%
-}
-\newenvironment{dynamiccontents*}[1]{%
-\def\@flf@{dynamiccontents*}%
-\@dynamicframeid{#1}%
-\xdynamiccontents{\ff@id}}{%
-\enddynamiccontents
-}
-\newcommand{\setdynamiccontents}{%
-\@ifstar\@ssetdynamiccontents\@setdynamiccontents}
-\newcommand{\@ssetdynamiccontents}[2]{%
-\@dynamicframeid{#1}\@setdynamiccontents{\ff@id}{#2}}
-\newcommand{\@setdynamiccontents}[2]{%
-\ifnum#1>\c@maxdynamic
-\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
-\expandafter
-\gdef\csname @dynamicframe@\romannumeral#1\endcsname{#2}%
-\fi}
-\newcommand{\appenddynamiccontents}{%
-\@ifstar\@sappenddynamic\@appenddynamic}
-\newcommand{\@sappenddynamic}[2]{%
-\@dynamicframeid{#1}\@appenddynamic{\ff@id}{#2}}
-\newcommand{\@appenddynamic}[2]{%
-\ifnum#1>\c@maxdynamic
- \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
- \expandafter\@ff@addtolist
- \csname @dynamicframe@\romannumeral#1\endcsname\entry{#2}%
-\fi}
-\newtoks\flf@ta \newtoks\flf@tb
-\long\def\@ff@addtolist#1\entry#2{\flf@ta={{#2}}%
-\flf@tb=\expandafter{#1}%
-\xdef#1{\the\flf@tb\the\flf@ta}}
-\newcommand{\continueonframe}{\PackageError{flowfram}{Can't continue
-to new frame: not in static or dynamic frame}{%
-\string\continueonframe\space may only
-be used inside `staticcontents' or `dynamiccontents' environments
-(of their starred versions)}}
-\newcommand*{\@staticscontinueonframe}[2][]{%
-\ffcontinuedtextlayout{#1}%
-\end{staticcontents*}%
-\begin{staticcontents*}{#2}\par\noindent\ignorespaces}
-\newcommand*{\@staticcontinueonframe}[2][]{%
-\ffcontinuedtextlayout{#1}%
-\end{staticcontents}%
-\begin{staticcontents}{#2}\par\noindent\ignorespaces}
-\newcommand{\ffcontinuedtextlayout}[1]{%
-\parfillskip=0pt\par\hfill\ffcontinuedtextfont{#1}}
-\newcommand*{\ffcontinuedtextfont}[1]{\emph{\small #1}}
-\newcommand*{\computeleftedgeodd}[1]{%
-\setlength{#1}{-1in}%
-\addtolength{#1}{-\hoffset}%
-\addtolength{#1}{-\oddsidemargin}}
-\newcommand*{\computeleftedgeeven}[1]{%
-\setlength{#1}{-1in}%
-\addtolength{#1}{-\hoffset}%
-\addtolength{#1}{-\evensidemargin}}
-\newcommand*{\computetopedge}[1]{%
-\setlength{#1}{\textheight}%
-\addtolength{#1}{\headheight}%
-\addtolength{#1}{\headsep}%
-\addtolength{#1}{1in}%
-\addtolength{#1}{\voffset}%
-\addtolength{#1}{\topmargin}}
-\newcommand*{\computebottomedge}[1]{%
-\computetopedge{#1}%
-\addtolength{#1}{-\paperheight}}
-\newcommand*{\computerightedgeodd}[1]{%
-\computeleftedgeodd{#1}%
-\addtolength{#1}{\paperwidth}}
-\newcommand*{\computerightedgeeven}[1]{%
-\computeleftedgeeven{#1}%
-\addtolength{#1}{\paperwidth}}
-\newlength\ffareawidth
-\newlength\ffareaheight
-\newlength\ffareax
-\newlength\ffareay
-\newcommand*{\computeflowframearea}{%
-\@ifstar\@scomputeffarea\@computeffarea}
-\newcommand*{\@scomputeffarea}[1]{%
-\setlength{\ffareax}{\paperwidth}%
-\setlength{\ffareay}{\paperheight}%
-\setlength{\@ff@tmp@x}{0pt}%
-\setlength{\@ff@tmp@y}{0pt}%
-\@for\@ff@id:=#1\do{\@flowframeid{\@ff@id}%
-\ifnum\ffareax>\flowframex{\ff@id}%
-\setlength{\ffareax}{\flowframex{\ff@id}}%
-\fi
-\ifnum\ffareay>\flowframey{\ff@id}%
-\setlength{\ffareay}{\flowframey{\ff@id}}%
-\fi
-\setlength{\@ff@offset}{\flowframex{\ff@id}}%
-\addtolength{@ff@offset}{\flowframewidth{\ff@id}}%
-\ifnum\@ff@tmp@x<\@ff@offset
-\setlength{\@ff@tmp@x}{\@ff@offset}%
-\fi
-\setlength{\@ff@offset}{\flowframey{\ff@id}}%
-\addtolength{@ff@offset}{\flowframeheight{\ff@id}}%
-\ifnum\@ff@tmp@y<\@ff@offset
-\setlength{\@ff@tmp@y}{\@ff@offset}%
-\fi
-}%
-\setlength{\ffareawidth}{\@ff@tmp@x}%
-\addtolength{\ffareawidth}{-\ffareax}%
-\setlength{\ffareaheight}{\@ff@tmp@y}%
-\addtolength{\ffareaheight}{-\ffareay}}
-\newcommand*{\@computeffarea}[1]{%
-\setlength{\ffareax}{\paperwidth}%
-\setlength{\ffareay}{\paperheight}%
-\setlength{\@ff@tmp@x}{0pt}%
-\setlength{\@ff@tmp@y}{0pt}%
-\@for\@ff@id:=#1\do{%
-\ff@id=\@ff@id\relax
-\setlength{\@ff@offset}{\flowframex{\ff@id}}%
-\ifdim\ffareax>\@ff@offset
-\setlength{\ffareax}{\@ff@offset}%
-\fi
-\setlength{\@ff@offset}{\flowframey{\ff@id}}%
-\ifdim\ffareay>\@ff@offset
-\setlength{\ffareay}{\@ff@offset}%
-\fi
-\setlength{\@ff@offset}{\flowframex{\ff@id}}%
-\addtolength{\@ff@offset}{\flowframewidth{\ff@id}}%
-\ifdim\@ff@tmp@x<\@ff@offset
-\setlength{\@ff@tmp@x}{\@ff@offset}%
-\fi
-\setlength{\@ff@offset}{\flowframey{\ff@id}}%
-\addtolength{\@ff@offset}{\flowframeheight{\ff@id}}%
-\ifdim\@ff@tmp@y<\@ff@offset
-\setlength{\@ff@tmp@y}{\@ff@offset}%
-\fi
-}%
-\setlength{\ffareawidth}{\@ff@tmp@x}%
-\addtolength{\ffareawidth}{-\ffareax}%
-\setlength{\ffareaheight}{\@ff@tmp@y}%
-\addtolength{\ffareaheight}{-\ffareay}}
-\newcommand*{\@ff@swaplen}[2]{%
-\setlength{\@ff@tmp@x}{#1}%
-\setlength{#1}{#2}%
-\setlength{#2}{\@ff@tmp@x}}
-\newcommand*{\@ff@getdim}[2]{%
-\ifnum#2<1\relax
- \PackageError{flowfram}{Frame IDNs start from 1}{%
- You have specified a frame IDN of '\number#2'}%
-\fi
-\ifcase#1\relax
- \PackageError{flowfram}{Unknown frame ID type '#1'}{%
- Frame ID types are: 1 (flow), 2 (static) and 3 (dynamic)}%
-\or
- \ifnum#2>\c@maxflow\relax
- \PackageError{flowfram}{Invalid flow frame IDN '\number#2'}{%
- Flow frame IDNs go from 1 to \number\c@maxflow}%
- \else
- \setlength{\ffareax}{\flowframex{#2}}%
- \setlength{\ffareay}{\flowframey{#2}}%
- \setlength{\ffareawidth}{\flowframewidth{#2}}%
- \setlength{\ffareaheight}{\flowframeheight{#2}}%
- \fi
-\or
- \ifnum#2>\c@maxstatic\relax
- \PackageError{flowfram}{Invalid static frame IDN '\number#2'}{%
- Static frame IDNs go from 1 to \number\c@maxstatic}%
- \else
- \setlength{\ffareax}{\staticframex{#2}}%
- \setlength{\ffareay}{\staticframey{#2}}%
- \expandafter\expandafter\expandafter
- \@ff@getstaticpos
- \csname @sf@dim@\romannumeral#2\endcsname
- \setlength{\ffareawidth}{\@ff@tmp@x}%
- \setlength{\ffareaheight}{\@ff@tmp@y}%
- \fi
-\or
- \ifnum#2>\c@maxdynamic\relax
- \PackageError{flowfram}{Invalid dynamic frame IDN '\number#2'}{%
- Dynamic frame IDNs go from 1 to \number\c@maxdynamic}%
- \else
- \setlength{\ffareax}{\dynamicframex{#2}}%
- \setlength{\ffareay}{\dynamicframey{#2}}%
- \expandafter\expandafter\expandafter
- \@ff@getstaticpos
- \csname @df@dim@\romannumeral#2\endcsname
- \setlength{\ffareawidth}{\@ff@tmp@x}%
- \setlength{\ffareaheight}{\@ff@tmp@y}%
- \fi
-\else
- \PackageError{flowfram}{Unknown frame ID type '#1'}{%
- Frame ID types are: 1 (flow), 2 (static) and 3 (dynamic)}%
-\fi
-}
-\newcommand*{\@ff@getevendim}[2]{%
-\ifnum#2<1\relax
- \PackageError{flowfram}{Frame IDNs start from 1}{%
- You have specified a frame IDN of '\number#2'}%
-\fi
-\ifcase#1\relax
- \PackageError{flowfram}{Unknown frame ID type '#1'}{%
- Frame ID types are: 1 (flow), 2 (static) and 3 (dynamic)}
-\or
- \ifnum#2>\c@maxflow
- \PackageError{flowfram}{Invalid flow frame IDN '\number#2'}{%
- Flow frame IDNs go from 1 to \number\c@maxflow}%
- \else
- \setlength{\ffareax}{\flowframeevenx{#2}}%
- \setlength{\ffareay}{\flowframeeveny{#2}}%
- \setlength{\ffareawidth}{\flowframewidth{#2}}%
- \setlength{\ffareaheight}{\flowframeheight{#2}}%
- \fi
-\or
- \ifnum#2>\c@maxstatic\relax
- \PackageError{flowfram}{Invalid static frame IDN '\number#2'}{%
- Static frame IDNs go from 1 to \number\c@maxstatic}%
- \else
- \setlength{\ffareax}{\staticframeevenx{#2}}%
- \setlength{\ffareay}{\staticframeeveny{#2}}%
- \expandafter\expandafter\expandafter
- \@ff@getstaticpos
- \csname @sf@dim@\romannumeral#2\endcsname
- \setlength{\ffareawidth}{\@ff@tmp@x}%
- \setlength{\ffareaheight}{\@ff@tmp@y}%
- \fi
-\or
- \ifnum#2>\c@maxdynamic\relax
- \PackageError{flowfram}{Invalid dynamic frame IDN '\number#2'}{%
- Dynamic frame IDNs go from 1 to \number\c@maxdynamic}%
- \else
- \setlength{\ffareax}{\dynamicframeevenx{#2}}%
- \setlength{\ffareay}{\dynamicframeeveny{#2}}%
- \expandafter\expandafter\expandafter
- \@ff@getstaticpos
- \csname @df@dim@\romannumeral#2\endcsname
- \setlength{\ffareawidth}{\@ff@tmp@x}%
- \setlength{\ffareaheight}{\@ff@tmp@y}%
- \fi
-\else
- \PackageError{flowfram}{Unknown frame ID type '#1'}{%
- Frame ID types are: 1 (flow), 2 (static) and 3 (dynamic)}
-\fi
-}
-\newcommand*{\getstaticbounds}{%
-\@ifstar\@sgetstaticbounds\@getstaticbounds}
-\newcommand*{\@sgetstaticbounds}[1]{%
-\@staticframeid{#1}\@getstaticbounds{\ff@id}}
-\newcommand*{\@getstaticbounds}[1]{\@ff@getdim{2}{#1}}
-\newcommand*{\getstaticevenbounds}{%
-\@ifstar\@sgetstaticevenbounds\@getstaticevenbounds}
-\newcommand*{\@sgetstaticevenbounds}[1]{%
-\@staticframeid{#1}\@getstaticevenbounds{\ff@id}}
-\newcommand*{\@getstaticevenbounds}[1]{\@ff@getevendim{2}{#1}}
-\newcommand*{\getflowbounds}{%
-\@ifstar\@sgetflowbounds\@getflowbounds}
-\newcommand*{\@sgetflowbounds}[1]{%
-\@flowframeid{#1}\@getflowbounds{\ff@id}}
-\newcommand*{\@getflowbounds}[1]{\@ff@getdim{1}{#1}}
-\newcommand*{\getflowevenbounds}{%
-\@ifstar\@sgetflowevenbounds\@getflowevenbounds}
-\newcommand*{\@sgetflowevenbounds}[1]{%
-\@flowframeid{#1}\@getflowevenbounds{\ff@id}}
-\newcommand*{\@getflowevenbounds}[1]{\@ff@getevendim{1}{#1}}
-\newcommand*{\getdynamicbounds}{%
-\@ifstar\@sgetdynamicbounds\@getdynamicbounds}
-\newcommand*{\@sgetdynamicbounds}[1]{%
-\@dynamicframeid{#1}\@getdynamicbounds{\ff@id}}
-\newcommand*{\@getdynamicbounds}[1]{\@ff@getdim{3}{#1}}
-\newcommand*{\getdynamicevenbounds}{%
-\@ifstar\@sgetdynamicevenbounds\@getdynamicevenbounds}
-\newcommand*{\@sgetdynamicevenbounds}[1]{%
-\@dynamicframeid{#1}\@getdynamicevenbounds{\ff@id}}
-\newcommand*{\@getdynamicevenbounds}[1]{\@ff@getevendim{3}{#1}}
-\newif\ifFLFabove
-\newif\ifFLFbelow
-\newif\ifFLFleft
-\newif\ifFLFright
-\newcommand*{\checkifframeabove}{%
-\@ifstar\@scheckifframeabove\@checkifframeabove}
-\newcommand*{\@scheckifframeabove}[4]{%
-\ifodd\c@page
- \@soddcheckifframeabove{#1}{#2}{#3}{#4}%
-\else
- \@sevencheckifframeabove{#1}{#2}{#3}{#4}%
-\fi}
-\newcommand*{\@checkifframeabove}[4]{%
-\ifodd\c@page
- \@oddcheckifframeabove{#1}{#2}{#3}{#4}%
-\else
- \@evencheckifframeabove{#1}{#2}{#3}{#4}%
-\fi}
-\newcommand*{\oddcheckifframeabove}{%
-\@ifstar\@soddcheckifframeabove\@oddcheckifframeabove}
-\newcommand*{\@soddcheckifframeabove}[4]{%
-\@ifundefined{@sget#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1bounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@sget#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3bounds\endcsname{#4}%
-\advance\ffareay by \ffareaheight\relax
-\expandafter\ifdim\@ff@check>\ffareay
- \FLFabovetrue
-\else
- \FLFabovefalse
-\fi
-}
-\newcommand*{\@oddcheckifframeabove}[4]{%
-\@ifundefined{@get#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1bounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@get#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3bounds\endcsname{#4}%
-\advance\ffareay by \ffareaheight\relax
-\expandafter\ifdim\@ff@check>\ffareay
- \FLFabovetrue
-\else
- \FLFabovefalse
-\fi
-}
-\newcommand*{\checkifframebelow}{%
-\@ifstar\@scheckifframebelow\@checkifframebelow}
-\newcommand*{\@scheckifframebelow}[4]{%
-\ifodd\c@page
- \@soddcheckifframebelow{#1}{#2}{#3}{#4}%
-\else
- \@sevencheckifframebelow{#1}{#2}{#3}{#4}%
-\fi}
-\newcommand*{\@checkifframebelow}[4]{%
-\ifodd\c@page
- \@oddcheckifframebelow{#1}{#2}{#3}{#4}%
-\else
- \@evencheckifframebelow{#1}{#2}{#3}{#4}%
-\fi}
-\newcommand*{\oddcheckifframebelow}{%
-\@ifstar\@soddcheckifframebelow\@oddcheckifframebelow}
-\newcommand*{\@soddcheckifframebelow}[4]{%
-\@ifundefined{@sget#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1bounds\endcsname{#2}%
-\advance\ffareay by \ffareaheight\relax
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@sget#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3bounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareay
- \FLFbelowtrue
-\else
- \FLFbelowfalse
-\fi
-}
-\newcommand*{\@oddcheckifframebelow}[4]{%
-\@ifundefined{@get#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1bounds\endcsname{#2}%
-\advance\ffareay by \ffareaheight\relax
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@get#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3bounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareay
- \FLFbelowtrue
-\else
- \FLFbelowfalse
-\fi
-}
-\newcommand*{\checkifframeleft}{%
-\@ifstar\@scheckifframeleft\@checkifframeleft}
-\newcommand*{\@scheckifframeleft}[4]{%
-\ifodd\c@page
- \@soddcheckifframeleft{#1}{#2}{#3}{#4}%
-\else
- \@sevencheckifframeleft{#1}{#2}{#3}{#4}%
-\fi}
-\newcommand*{\@checkifframeleft}[4]{%
-\ifodd\c@page
- \@oddcheckifframeleft{#1}{#2}{#3}{#4}%
-\else
- \@evencheckifframeleft{#1}{#2}{#3}{#4}%
-\fi}
-\newcommand*{\oddcheckifframeleft}{%
-\@ifstar\@soddcheckifframeleft\@oddcheckifframeleft}
-\newcommand*{\@soddcheckifframeleft}[4]{%
-\@ifundefined{@sget#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1bounds\endcsname{#2}%
-\advance\ffareax by \ffareawidth\relax
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@sget#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3bounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareax
- \FLFlefttrue
-\else
- \FLFleftfalse
-\fi
-}
-\newcommand*{\@oddcheckifframeleft}[4]{%
-\@ifundefined{@get#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1bounds\endcsname{#2}%
-\advance\ffareax by \ffareawidth\relax
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@get#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3bounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareax
- \FLFlefttrue
-\else
- \FLFleftfalse
-\fi
-}
-\newcommand*{\checkifframeright}{%
-\@ifstar\@scheckifframeright\@checkifframeright}
-\newcommand*{\@scheckifframeright}[4]{%
-\ifodd\c@page
- \@soddcheckifframeright{#1}{#2}{#3}{#4}%
-\else
- \@sevencheckifframeright{#1}{#2}{#3}{#4}%
-\fi}
-\newcommand*{\@checkifframeright}[4]{%
-\ifodd\c@page
- \@oddcheckifframeright{#1}{#2}{#3}{#4}%
-\else
- \@evencheckifframeright{#1}{#2}{#3}{#4}%
-\fi}
-\newcommand*{\oddcheckifframeright}{%
-\@ifstar\@soddcheckifframeright\@oddcheckifframeright}
-\newcommand*{\@soddcheckifframeright}[4]{%
-\@ifundefined{@sget#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1bounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@sget#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3bounds\endcsname{#4}%
-\advance\ffareax by \ffareawidth\relax
-\expandafter\ifdim\@ff@check>\ffareax
- \FLFrighttrue
-\else
- \FLFrightfalse
-\fi
-}
-\newcommand*{\@oddcheckifframeright}[4]{%
-\@ifundefined{@get#1bounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1bounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@get#3bounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3bounds\endcsname{#4}%
-\advance\ffareax by \ffareawidth\relax
-\expandafter\ifdim\@ff@check>\ffareax
- \FLFrighttrue
-\else
- \FLFrightfalse
-\fi
-}
-\newcommand*{\evencheckifframeabove}{%
-\@ifstar\@sevencheckifframeabove\@evencheckifframeabove}
-\newcommand*{\@sevencheckifframeabove}[4]{%
-\@ifundefined{@sget#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1evenbounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@sget#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3evenbounds\endcsname{#4}%
-\advance\ffareay by \ffareaheight\relax
-\expandafter\ifdim\@ff@check>\ffareay
- \FLFabovetrue
-\else
- \FLFabovefalse
-\fi
-}
-\newcommand*{\@evencheckifframeabove}[4]{%
-\@ifundefined{@get#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1evenbounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@get#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3evenbounds\endcsname{#4}%
-\advance\ffareay by \ffareaheight\relax
-\expandafter\ifdim\@ff@check>\ffareay
- \FLFabovetrue
-\else
- \FLFabovefalse
-\fi
-}
-\newcommand*{\evencheckifframebelow}{%
-\@ifstar\@sevencheckifframebelow\@evencheckifframebelow}
-\newcommand*{\@sevencheckifframebelow}[4]{%
-\@ifundefined{@sget#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1evenbounds\endcsname{#2}%
-\advance\ffareay by \ffareaheight\relax
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@sget#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3evenbounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareay
- \FLFbelowtrue
-\else
- \FLFbelowfalse
-\fi
-}
-\newcommand*{\@evencheckifframebelow}[4]{%
-\@ifundefined{@get#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1evenbounds\endcsname{#2}%
-\advance\ffareay by \ffareaheight\relax
-\edef\@ff@check{\the\ffareay}%
-\@ifundefined{@get#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3evenbounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareay
- \FLFbelowtrue
-\else
- \FLFbelowfalse
-\fi
-}
-\newcommand*{\evencheckifframeleft}{%
-\@ifstar\@sevencheckifframeleft\@evencheckifframeleft}
-\newcommand*{\@sevencheckifframeleft}[4]{%
-\@ifundefined{@sget#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1evenbounds\endcsname{#2}%
-\advance\ffareax by \ffareawidth\relax
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@sget#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3evenbounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareax
- \FLFlefttrue
-\else
- \FLFleftfalse
-\fi
-}
-\newcommand*{\@evencheckifframeleft}[4]{%
-\@ifundefined{@get#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1evenbounds\endcsname{#2}%
-\advance\ffareax by \ffareawidth\relax
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@get#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3evenbounds\endcsname{#4}%
-\expandafter\ifdim\@ff@check<\ffareax
- \FLFlefttrue
-\else
- \FLFleftfalse
-\fi
-}
-\newcommand*{\evencheckifframeright}{%
-\@ifstar\@sevencheckifframeright\@evencheckifframeright}
-\newcommand*{\@sevencheckifframeright}[4]{%
-\@ifundefined{@sget#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#1evenbounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@sget#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @sget#3evenbounds\endcsname{#4}%
-\advance\ffareax by \ffareawidth\relax
-\expandafter\ifdim\@ff@check>\ffareax
- \FLFrighttrue
-\else
- \FLFrightfalse
-\fi
-}
-\newcommand*{\@evencheckifframeright}[4]{%
-\@ifundefined{@get#1evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#1'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#1evenbounds\endcsname{#2}%
-\edef\@ff@check{\the\ffareax}%
-\@ifundefined{@get#3evenbounds}{\PackageError{flowfram}{Unknown frame
-type `#3'}{Frame types may only be one of: static, dynamic or
-flow}}{}%
-\csname @get#3evenbounds\endcsname{#4}%
-\advance\ffareax by \ffareawidth\relax
-\expandafter\ifdim\@ff@check>\ffareax
- \FLFrighttrue
-\else
- \FLFrightfalse
-\fi
-}
-\newcommand*{\FFaboveleft}{above left}
-\newcommand*{\FFaboveright}{above right}
-\newcommand*{\FFbelowleft}{below left}
-\newcommand*{\FFbelowright}{below right}
-\newcommand*{\FFleft}{on the left}
-\newcommand*{\FFright}{on the right}
-\newcommand*{\FFabove}{above}
-\newcommand*{\FFbelow}{below}
-\newcommand*{\FFoverlap}{overlap}
-\DeclareRobustCommand*{\relativeframelocation}{%
-\@ifstar\@srelativeframelocation\@relativeframelocation}
-\newcommand*{\@srelativeframelocation}[4]{%
-\@scheckifframeabove{#1}{#2}{#3}{#4}%
-\@scheckifframebelow{#1}{#2}{#3}{#4}%
-\@scheckifframeleft{#1}{#2}{#3}{#4}%
-\@scheckifframeright{#1}{#2}{#3}{#4}%
-\ifFLFabove
- \ifFLFleft
- \FFaboveleft
- \else
- \ifFLFright
- \FFaboveright
- \else
- \FFabove
- \fi
- \fi
-\else
- \ifFLFbelow
- \ifFLFleft
- \FFbelowleft
- \else
- \ifFLFright
- \FFbelowright
- \else
- \FFbelow
- \fi
- \fi
- \else
- \ifFLFleft
- \FFleft
- \else
- \ifFLFright
- \FFright
- \else
- \FFoverlap
- \fi
- \fi
- \fi
-\fi
-}
-\newcommand*{\@relativeframelocation}[4]{%
-\@checkifframeabove{#1}{#2}{#3}{#4}%
-\@checkifframebelow{#1}{#2}{#3}{#4}%
-\@checkifframeleft{#1}{#2}{#3}{#4}%
-\@checkifframeright{#1}{#2}{#3}{#4}%
-\ifFLFabove
- \ifFLFleft
- \FFaboveleft
- \else
- \ifFLFright
- \FFaboveright
- \else
- \FFabove
- \fi
- \fi
-\else
- \ifFLFbelow
- \ifFLFleft
- \FFbelowleft
- \else
- \ifFLFright
- \FFbelowright
- \else
- \FFbelow
- \fi
- \fi
- \else
- \ifFLFleft
- \FFleft
- \else
- \ifFLFright
- \FFright
- \else
- \FFoverlap
- \fi
- \fi
- \fi
-\fi
-}
-\DeclareRobustCommand*{\reldynamicloc}{%
-\@ifstar\@sreldynamicloc\@reldynamicloc}
-\newcommand*{\@sreldynamicloc}[2]{
-\@srelativeframelocation{dynamic}{#1}{dynamic}{#2}}
-\newcommand*{\@reldynamicloc}[2]{
-\@relativeframelocation{dynamic}{#1}{dynamic}{#2}}
-\DeclareRobustCommand*{\relstaticloc}{%
-\@ifstar\@srelstaticloc\@relstaticloc}
-\newcommand*{\@srelstaticloc}[2]{
-\@srelativeframelocation{static}{#1}{static}{#2}}
-\newcommand*{\@relstaticloc}[2]{
-\@relativeframelocation{static}{#1}{static}{#2}}
-\DeclareRobustCommand*{\relflowloc}{%
-\@ifstar\@srelflowloc\@relflowloc}
-\newcommand*{\@srelflowloc}[2]{
-\@srelativeframelocation{flow}{#1}{flow}{#2}}
-\newcommand*{\@relflowloc}[2]{
-\@relativeframelocation{flow}{#1}{flow}{#2}}
-\newcommand*{\setinitialframe}[1]{\c@thisframe=#1%
-\global\usedframebreaktrue
-\global\setlength{\hsize}{%
-\csname colwidth\romannumeral\c@thisframe\endcsname}}
-\newif\if@setfr@mes
-\@setfr@mesfalse
-\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}%
-\@nxtcol=1\relax
-\c@curpg=1\relax
-\@g@tnextcol{\@nxtcol}%
-\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}%
-\c@thisframe=\@nxtcol
-\fi
-\@setcol{\c@thisframe}\relax
-\@setfr@mestrue
-\edef\ff@txtcol{%
-\csname @ff@txtcol@\romannumeral\c@thisframe\endcsname}%
-\@s@tfftextcol
-}
-\newcommand{\emulatetwocolumn}[1][]{%
-\finishthispage
-\setallflowframes{pages=none}%
-\settoheight{\@ff@staticH}{#1}%
-\settodepth{\@ff@tmp@y}{#1}%
-\addtolength{\@ff@staticH}{\@ff@tmp@y}%
-\ifdim\@ff@staticH>0pt\relax
-\twocolumnStop[\c@page]{\@ff@staticH}%
-\c@thisframe=\c@maxflow
-\advance\c@thisframe by -1\relax
-\@twocolumn[>\c@page]%
-\setstaticcontents{\c@maxstatic}{#1}%
-\else
-\@twocolumn
-\c@thisframe=\c@maxflow
-\advance\c@thisframe by -1\relax
-\fi
-\@setcol{\c@thisframe}\relax
-}
-\newcommand{\emulateonecolumn}[1][]{%
-\finishthispage
-\setallflowframes{pages=none}%
-\settoheight{\@ff@staticH}{#1}%
-\settodepth{\@ff@tmp@y}{#1}%
-\addtolength{\@ff@staticH}{\@ff@tmp@y}%
-\ifdim\@ff@staticH>0pt\relax
-\onecolumnStop[\c@page]{\@ff@staticH}%
-\c@thisframe=\c@maxflow
-\advance\c@thisframe by -1\relax
-\@onecolumn[>\c@page]%
-\setstaticcontents{\c@maxstatic}{#1}%
-\else
-\@twocolumn
-\c@thisframe=\c@maxflow
-\advance\c@thisframe by -1\relax
-\fi
-\@setcol{\c@thisframe}\relax
-}
-\AtBeginDocument{%
-\ifnum\c@maxflow=0\relax
-\PackageWarning{flowfram}{No flow frames, adding one}%
-\@onecolumn
-\fi
-\setframes
-\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}%
-}
-\newcommand{\@setcol}[1]{%
-\ifnum\c@maxflow<#1\relax
- \PackageError{flowfram}{Can't set frame '\number#1', doesn't
- exist}{}%
-\else
- \expandafter\global\expandafter\columnwidth
- \csname colwidth\romannumeral#1\endcsname
- \ifdim\hsize=\columnwidth
- \else
- \ifusedframebreak
- \else
- \PackageWarning{flowfram}{Moving to flow frame of unequal
- width,\MessageBreak use of \string\framebreak\space advised,
- or text might not appear correctly}%
- \fi
- \fi
- \global\usedframebreakfalse
- \global\hsize\columnwidth
- \expandafter\global
- \expandafter\vsize\csname colheight\romannumeral#1\endcsname
- \global\@colht\vsize
- \global\@colroom\@colht
- \global\linewidth\columnwidth
- \setmargin
-\fi
-\stepcounter{displayedframe}%
-}
-\output={\let\par\@@par
-\ifnum\outputpenalty <-\@M
- \@specialoutput
-\else
- \@makecol
- \@opcol \@startcolumn
- \@whilesw \if@fcolmade \fi {\@opcol \@startcolumn }%
-\fi
-\ifnum\outputpenalty>-\@Miv
- \ifdim\@colroom<1.5\baselineskip
- \ifdim\@colroom<\vsize
- \@latex@warning@no@line{Text page \thepage \space
- contains only floats}\@emptycol
- \else
- \global\vsize\@colroom
- \fi
- \else
- \global\vsize\@colroom
- \fi
-\else
- \global\vsize\maxdimen
-\fi
-}
-\def\@doclearpage{%
-\ifvoid\footins
- \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@firstcolumn
- \xdef\@dbldeferlist{\@dbltoplist\@dbldeferlist}%
-\global\let\@dbltoplist\@empty
-\global\@colht\vsize
-\begingroup
- \@dblfloatplacement
- \@makefcolumn
- \@dbldeferlist
- \@whilesw \if@fcolmade \fi {\@outputpage
-\@makefcolumn\@dbldeferlist}%
-\endgroup
-\else
- \vbox{}\clearpage
-\fi
-\else
- \setbox\@cclv\vbox{\box\@cclv\vfil}%
-\@makecol\@opcol\clearpage\fi}
-\newcommand{\@dothehead}{\vbox to \headheight{%
-\color@hbox\normalcolor\hbox to \textwidth{%
-\@thehead}\color@endbox}}
-\newcommand{\@dothefoot}{%
-\color@hbox\normalcolor\hbox to \textwidth{%
-\@thefoot}\color@endbox}
-\newcommand{\@dodynamicthehead}{}
-\newcommand{\@dodynamicthefoot}{}
-\def\@outputpage{%
-\begingroup
- \let\protect\noexpand
- \@resetactivechars
- \global\let\@@if@newlist\if@newlist
- \global\@newlistfalse\@parboxrestore
- \shipout\vbox{\set@typeset@protect
- \aftergroup
- \endgroup
- \aftergroup
- \set@typeset@protect
- \reset@font\normalsize\normalsfcodes
- \let\label\@gobble
- \let\index\@gobble
- \let\glossary\@gobble
- \baselineskip\z@skip
- \lineskip\z@skip
- \lineskiplimit\z@
- \vskip\topmargin\moveright\@themargin
- \vbox{%
- \vskip\headheight
- \vskip\headsep
- \box\@outputbox
- }}%
- \global\let\if@newlist\@@if@newlist
- \stepcounter{page}%
- \setcounter{displayedframe}{0}%
- \let\firstmark\botmark}
-\newcommand*{\makedfheaderfooter}{%
-\setlength{\@ff@tmp@y}{\textheight}%
-\addtolength{\@ff@tmp@y}{\headsep}%
-\newdynamicframe{\textwidth}{\headheight}{0pt}{\@ff@tmp@y}[header]%
-\newdynamicframe{\textwidth}{\headheight}{0pt}{-\footskip}[footer]%
-\renewcommand{\@dothehead}{}%
-\renewcommand{\@dothefoot}{}%
-\renewcommand{\@dodynamicthehead}{%
-\@dynamicframeid{header}%
-\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}%
-}%
-}
-\@onlypreamble{\makedfheaderfooter}
-\newcommand{\footnotecolor}{%
-\@ifundefined{@ff@txtcol@\romannumeral\c@thisframe}{%
-\normalcolor}{%
-\edef\ff@txtcol{%
-\csname @ff@txtcol@\romannumeral\c@thisframe\endcsname}%
-\@s@tfftextcol}}
-\renewcommand{\@makecol}{%
-\ifvoid\footins
- \setbox\@outputbox\box\@cclv
-\else
- \setbox\@outputbox\vbox{%
-\boxmaxdepth\@maxdepth\@tempdima\dp\@cclv
- \unvbox\@cclv
- \vskip\skip\footins
- \color@begingroup
- \footnotecolor
- \footnoterule
- \unvbox\footins
- \color@endgroup
-}\fi
-\xdef\@freelist{\@freelist \@midlist }%
-\global\let\@midlist\@empty
-\@combinefloats
-\ifvbox\@kludgeins
- \@makespecialcolbox
-\else
- \setbox\@outputbox\vbox to\@colht{%
-\@texttop\dimen@\dp\@outputbox
- \unvbox \@outputbox
- \vskip -\dimen@\@textbottom
-}\fi
-\global\maxdepth\@maxdepth}
-\def\@opcol{\@outputdblcol
-\global\@mparbottom\z@
-\global\@textfloatsheight\z@
-\@floatplacement
-}
-\newif\if@ff@moreframes
-\newcommand*{\@ff@checkifmoreframes}{%
-\@ff@moreframesfalse
-\@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}%
-}%
-\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
-}
-\newcommand*{\@ff@checkpages}[2][\c@page]{%
-\@for\@ff@pp:=#2\do{%
-\@ff@checkthispage{#1}{\@ff@pp}}}
-\newcommand*{\@ff@checkthispage}[2]{%
-\ifthenelse{\equal{#2}{all}\or\equal{#2}{even}\or\equal{#2}{odd}}{%
-\@ff@moreframestrue}{%
-\ifthenelse{\equal{#2}{none}}{}{%
-\@ff@checknumrange{#1}{#2}}}}
-\newcommand*{\@ff@checknumrange}[2]{%
-\def\@ff@numstart{0}\def\@ff@numend{10000}%
-\@ff@getrange{#2}%
-\ifnum\@ff@numend>#1\relax
-\@ff@moreframestrue
-\else
-\ifnum\@ff@numend=#1\relax
-\@ff@moreframestrue
-\fi
-\fi
-}
-\newcount\c@ffrangenum
-\newcommand*{\@ff@getrange}[1]{%
-\expandafter\@ff@@getrange#1-\relax\end}
-\def\@ff@@getrange#1#2\end{%
-\ifx#1<\relax
- \@ff@getrangeless#1#2\end
-\else
- \ifx#1>\relax
- \@ff@getrangegreater#1#2\end
- \else
- \@@ff@getrange#1#2\end
- \fi
-\fi
-}
-\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-\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\relax#2\relax
-\def\@ff@numstart{#1}\def\@ff@numend{#1}%
-\else
-\def\@ff@numstart{#1}%
-\@@@ff@getrange#2\end
-\fi
-}
-\def\@@@ff@getrange#1-\relax\end{%
-\def\@ff@numend{#1}}
-\newif\if@notthiscol
-\newif\if@ff@nwpg
-\newcount\c@curpg
-\newcommand*{\@g@tnextcol}[1]{%
-\@ff@checkifmoreframes
-\if@ff@moreframes
-\else
-\PackageWarning{flowfram}{Run out of flows frames,
-adding new one}%
-\@onecolumn
-#1=\c@maxflow
-\fi
-\@notthiscoltrue
-\@ff@nwpgfalse
-\@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\relax
-\fi
-\@ff@chckifthispg{\c@curpg}{\@colN}%
-\if@notthiscol
-\repeat
-#1=\@colN
-}
-\newcommand*{\@ff@chckifthispg}[2]{%
-\@notthiscoltrue
-\edef\ff@pages{\csname @ff@pages@\romannumeral#2\endcsname}%
-\@@ff@chckifthispg{#1}%
-}
-\newcommand*{\@@ff@chckifthispg}[1]{%
-\ifthenelse{\equal{\ff@pages}{none}}{}{%
-\ifthenelse{\equal{\ff@pages}{all}}{\@notthiscolfalse}{%
-\ifthenelse{\equal{\ff@pages}{odd}}{%
-\ifodd#1\@notthiscolfalse\fi}{%
-\ifthenelse{\equal{\ff@pages}{even}}{%
-\ifodd#1\else\@notthiscolfalse\fi}{%
-\@for\@ff@pp:=\ff@pages\do{%
-\def\@ff@numstart{0}\def\@ff@numend{0}%
-\@ff@getrange{\@ff@pp}%
-\ifthenelse{#1<\@ff@numstart \or #1>\@ff@numend}{}{%
-\@notthiscolfalse}%
-}%
-}}}}%
-}
-\newcommand*{\@sf@chckifthispg}[1]{%
-\@notthiscoltrue
-\edef\ff@pages{\csname @sf@pages@\romannumeral#1\endcsname}%
-\@@ff@chckifthispg{\c@page}%
-}
-\newcommand*{\@df@chckifthispg}[1]{%
-\@notthiscoltrue
-\edef\ff@pages{\csname @df@pages@\romannumeral#1\endcsname}%
-\@@ff@chckifthispg{\c@page}%
-}
-\newcommand*{\@setcolbox}[1]{%
-\expandafter\global\expandafter\setbox
-\csname column\romannumeral#1\endcsname\box\@outputbox
-}
-\newcommand*{\@docolbox}[1]{%
-\edef\ff@frametype{%
-\csname @ff@frametype@\romannumeral#1\endcsname}%
-\edef\ff@col{\csname @ff@col@\romannumeral#1\endcsname}%
-\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}{%
-\expandafter\box\csname column\romannumeral#1\endcsname}{%
-\csname\ff@frametype\endcsname}%
-}{%
-\@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{}%
-\@fr@meifdraft{%
-\@ff@box{\csname colwidth\romannumeral#1\endcsname}%
-{\csname colheight\romannumeral#1\endcsname}{%
-\expandafter\box\csname column\romannumeral#1\endcsname}}%
-{F:\number#1;\csname @col@id@\romannumeral#1\endcsname}}
-\newcommand{\@ff@fbox}[4]{{%
-\fboxsep=\flowframesep\fboxrule=\flowframerule\@s@tffcol
-\kern\@ff@offset
-#4{\@ff@box{#1}{#2}{#3}}}}
-\newcommand{\@ff@box}[3]{{\@ffbackground{\vbox to#2
-{\hb@xt@ #1{\hss{\@s@tfftextcol #3}\hss}\vss\kern\z@}}}}
-\newcommand*{\@putcolbox}[1]{%
-\@ff@chckifthispg{\c@page}{#1}%
-\if@notthiscol
-\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname col@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@posx\endcsname
-\@docolbox{#1}\hss}%
-\else
-\expandafter\raise\csname col@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@evenx\endcsname
-\@docolbox{#1}\hss}%
-\fi
-\else
-\expandafter\raise\csname col@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@posx\endcsname
-\@docolbox{#1}\hss}%
-\fi
-\fi
-}
-\newcommand*{\@putcolbbox}[1]{%
-\@ff@chckifthispg{\c@page}{#1}%
-\if@notthiscol
-\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname col@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@posx\endcsname
-\@docolbbox{#1}\hss}%
-\else
-\expandafter\raise\csname col@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@evenx\endcsname
-\@docolbbox{#1}\hss}%
-\fi
-\else
-\expandafter\raise\csname col@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname col@\romannumeral#1@posx\endcsname
-\@docolbbox{#1}\hss}%
-\fi
-\fi
-}
-\newcommand*{\@ff@s@t@doubleboxoffset}{%
-\setlength{\@ff@offset}{-\flowframesep}%
-\addtolength{\@ff@offset}{-3.75\flowframerule}%
-\addtolength{\@ff@offset}{-.5pt}%
-}
-\newcommand*{\@ff@s@t@ovalboxoffset}{%
-\@ff@offset=-\fontdimen 8\tenln\relax
-\advance\@ff@offset by -\flowframesep\relax
-}
-\newcommand*{\@ff@s@t@Ovalboxoffset}{%
-\@ff@offset=-\fontdimen 8\tenlnw\relax
-\advance\@ff@offset by -\flowframesep\relax
-}
-\newcommand*{\@ff@s@t@defaultoffset}{%
-\@ff@offset=-\flowframesep\relax
-\addtolength{\@ff@offset}{-\flowframerule}%
-}
-\newcommand*{\@ff@setoffset}[1]{%
-\ifthenelse{\equal{\csname @ff@offset@\romannumeral#1\endcsname}%
-{compute}}{%
-\ifthenelse{\boolean{columnframe\romannumeral#1}}{%
-\ifthenelse{%
-\equal{\csname @ff@frametype@\romannumeral#1\endcsname}%
-{doublebox}}{%
-\@ff@s@t@doubleboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @ff@frametype@\romannumeral#1\endcsname}%
-{ovalbox}}{%
-\@ff@s@t@ovalboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @ff@frametype@\romannumeral#1\endcsname}%
-{Ovalbox}}{%
-\@ff@s@t@Ovalboxoffset}{%
-\@ff@s@t@defaultoffset
-}}}%
-}{}%
-}{%
-\setlength{\@ff@offset}%
-{\csname @ff@offset@\romannumeral#1\endcsname}}%
-}
-\newcommand*{\@sf@setoffset}[1]{%
-\ifthenelse{%
-\equal{\csname @sf@offset@\romannumeral#1\endcsname}%
-{compute}}{%
-\ifthenelse{\boolean{staticframe\romannumeral#1}}{%
-\ifthenelse{%
-\equal{\csname @sf@frametype@\romannumeral#1\endcsname}%
-{doublebox}}{%
-\@ff@s@t@doubleboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @sf@frametype@\romannumeral#1\endcsname}%
-{ovalbox}}{%
-\@ff@s@t@ovalboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @sf@frametype@\romannumeral#1\endcsname}%
-{Ovalbox}}{%
-\@ff@s@t@Ovalboxoffset
-}{%
-\@ff@s@t@defaultoffset
-}}}%
-}{}%
-}{%
-\setlength{\@ff@offset}%
-{\csname @sf@offset@\romannumeral#1\endcsname}}%
-}
-\newcommand*{\@df@setoffset}[1]{%
-\ifthenelse{%
-\equal{\csname @df@offset@\romannumeral#1\endcsname}%
-{compute}}{%
-\setlength{\@ff@offset}{0pt}%
-\ifthenelse{\boolean{dynamicframe\romannumeral#1}}{%
-\ifthenelse{%
-\equal{\csname @df@frametype@\romannumeral#1\endcsname}%
-{doublebox}}{%
-\@ff@s@t@doubleboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @df@frametype@\romannumeral#1\endcsname}%
-{ovalbox}}{%
-\@ff@s@t@ovalboxoffset
-}{%
-\ifthenelse{%
-\equal{\csname @df@frametype@\romannumeral#1\endcsname}%
-{Ovalbox}}{%
-\@ff@s@t@Ovalboxoffset}{%
-\@ff@s@t@defaultoffset
-}}}%
-}{}%
-}{%
-\setlength{\@ff@offset}%
-{\csname @df@offset@\romannumeral#1\endcsname}}%
-}
-\newcommand*{\@putmarginbox}[1]{%
-\@ff@chckifthispg{\c@page}{#1}%
-\if@notthiscol
-\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\edef\ff@x{\csname col@\romannumeral#1@posx\endcsname}%
-\edef\ff@y{\csname col@\romannumeral#1@posy\endcsname}%
-\else
-\edef\ff@x{\csname col@\romannumeral#1@evenx\endcsname}%
-\edef\ff@y{\csname col@\romannumeral#1@eveny\endcsname}%
-\fi
-\else
-\edef\ff@x{\csname col@\romannumeral#1@posx\endcsname}%
-\edef\ff@y{\csname col@\romannumeral#1@posy\endcsname}%
-\fi
-\setlength{\@ff@tmp@x}{\ff@x}%
-\setlength{\@ff@tmp@y}{\ff@y}%
-\@getmarginpos{\csname @ff@margin@\romannumeral#1\endcsname}%
-\ifthenelse{\equal{\ff@margin}{left}}{%
-\addtolength{\@ff@tmp@x}{-\marginparwidth}%
-\addtolength{\@ff@tmp@x}{-\marginparsep}%
-\ifthenelse{\boolean{columnframe\romannumeral#1}}{%
-}{}%
-}{%
-\addtolength{\@ff@tmp@x}%
-{\csname colwidth\romannumeral#1\endcsname}%
-\addtolength{\@ff@tmp@x}{\marginparsep}%
-\ifthenelse{\boolean{columnframe\romannumeral#1}}{%
-}{}%
-}%
-\raise\@ff@tmp@y
-\hb@xt@\z@{%
-\expandafter\kern\@ff@tmp@x
-\@fr@meifdraft{\@ff@box{\marginparwidth}%
-{\csname colheight\romannumeral#1\endcsname}{}}%
-{M:\number#1}\hss}\fi
-\ignorespaces}
-\newcommand*{\@ff@drawmargins}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxflow}{%
-\advance\@colN by 1\relax
-\makebox[0pt][l]{\@putmarginbox{\@colN}}%
-}%
-}
-\def\@ff@getstaticpos[#1][#2][#3]#4{\@ff@tmp@x=#4\relax
-\@ff@tmp@y=#2\relax
-\def\ff@valign{#3}}
-\newcommand*{\@dostaticbox}[1]{%
-\edef\ff@frametype{%
-\csname @sf@frametype@\romannumeral#1\endcsname}%
-\edef\ff@col{\csname @sf@col@\romannumeral#1\endcsname}%
-\edef\ff@backcol{\csname @sf@backcol@\romannumeral#1\endcsname}%
-\@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}
-{\csname\ff@frametype\endcsname}%
-}{%
-\@ff@box{\@ff@tmp@x}{\@ff@tmp@y}%
-{\expandafter\usebox\csname @staticframe@\romannumeral#1\endcsname}%
-}}}
-\newcommand*{\@dostaticbbox}[1]{%
-\edef\ff@col{}%
-\@sf@setoffset{#1}%
-\expandafter\expandafter\expandafter
-\@ff@getstaticpos\csname @sf@dim@\romannumeral#1\endcsname
-\@fr@meifdraft{%
-\@ff@box{\@ff@tmp@x}{\@ff@tmp@y}%
-{\expandafter\usebox\csname @staticframe@\romannumeral#1\endcsname}%
-}{S:\number#1;\csname @sf@id@\romannumeral#1\endcsname}}
-\newcommand*{\@putstaticbox}[1]{%
-\@sf@chckifthispg{#1}%
-\if@notthiscol\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname @sf@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@posx\endcsname
-\@dostaticbox{#1}\hss}%
-\else
-\expandafter\raise\csname @sf@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@evenx\endcsname
-\@dostaticbox{#1}\hss}%
-\fi
-\else
-\expandafter\raise\csname @sf@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@posx\endcsname
-\@dostaticbox{#1}\hss}%
-\fi
-\fi}
-\newcommand*{\@putstaticbbox}[1]{%
-\@sf@chckifthispg{#1}%
-\if@notthiscol\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname @sf@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@posx\endcsname
-\@dostaticbbox{#1}\hss}\ignorespaces
-\else
-\expandafter\raise\csname @sf@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@evenx\endcsname
-\@dostaticbbox{#1}\hss}\ignorespaces
-\fi
-\else
-\expandafter\raise\csname @sf@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @sf@\romannumeral#1@posx\endcsname
-\@dostaticbbox{#1}\hss}\ignorespaces
-\fi
-\fi}
-\newcommand*{\@resetst@tics}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxstatic}{\advance\@colN by 1\relax
-\ifthenelse{\boolean{@sf@clear@\romannumeral\@colN}}{%
-\global\sbox{%
-\csname @staticframe@\romannumeral\@colN\endcsname}{}}{}}}
-\newcommand*{\@resetdyn@mics}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxdynamic}{\advance\@colN by 1\relax
-\ifthenelse{\boolean{@df@clear@\romannumeral\@colN}}{%
-\expandafter\global\expandafter
-\gdef\csname @dynamicframe@\romannumeral\@colN\endcsname{}}{}}}
-\newcommand*{\@dodfparbox}[1]{%
-\expandafter\let\expandafter
-\@ff@parshape\csname @df@shape@\romannumeral#1\endcsname
-\expandafter\@ff@getshape\@ff@parshape\relax
-\ifcase\ff@shape
-\expandafter\expandafter\expandafter
-\parbox\csname @df@dim@\romannumeral#1\endcsname
-{%
-\setlength\parindent\sdfparindent
-\csname\ff@style\endcsname{\ff@contents}}%
-\or
-\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
-\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
-}
-\newcommand*{\@dodynamicbox}[1]{%
-\edef\ff@frametype{%
-\csname @df@frametype@\romannumeral#1\endcsname}%
-\edef\ff@col{\csname @df@col@\romannumeral#1\endcsname}%
-\edef\ff@txtcol{\csname @df@txtcol@\romannumeral#1\endcsname}%
-\edef\ff@backcol{\csname @df@backcol@\romannumeral#1\endcsname}%
-\edef\ff@style{\csname @df@style@\romannumeral#1\endcsname}%
-\def\ff@contents{\csname @dynamicframe@\romannumeral#1\endcsname}%
-\@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}%
-{\@dodfparbox{#1}}%
-{\csname\ff@frametype\endcsname}%
-}{%
-\@ff@box{\@ff@tmp@x}{\@ff@tmp@y}{%
-\@dodfparbox{#1}}%
-}}}
-\newcommand*{\@dodynamicbbox}[1]{%
-\edef\ff@col{}%
-\@df@setoffset{#1}%
-\expandafter\expandafter\expandafter
-\@ff@getstaticpos\csname @df@dim@\romannumeral#1\endcsname
-\@fr@meifdraft{%
-\@ff@box{\@ff@tmp@x}{\@ff@tmp@y}{%
-\expandafter\expandafter\expandafter
-\parbox\csname @df@dim@\romannumeral#1\endcsname
-{}}%
-}{D:\number#1;\csname @df@id@\romannumeral#1\endcsname}}
-\newcommand*{\@putdynamicbox}[1]{%
-\@df@chckifthispg{#1}%
-\if@notthiscol\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname @df@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@posx\endcsname
-\@dodynamicbox{#1}\hss}\ignorespaces
-\else
-\expandafter\raise\csname @df@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@evenx\endcsname
-\@dodynamicbox{#1}\hss}\ignorespaces
-\fi
-\else
-\expandafter\raise\csname @df@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@posx\endcsname
-\@dodynamicbox{#1}\hss}\ignorespaces
-\fi
-\fi}
-\newcommand*{\@putdynamicbbox}[1]{%
-\@df@chckifthispg{#1}%
-\if@notthiscol\else
-\@killglue
-\if@twoside
-\ifodd\c@page
-\expandafter\raise\csname @df@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@posx\endcsname
-\@dodynamicbbox{#1}\hss}\ignorespaces
-\else
-\expandafter\raise\csname @df@\romannumeral#1@eveny\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@evenx\endcsname
-\@dodynamicbbox{#1}\hss}\ignorespaces
-\fi
-\else
-\expandafter\raise\csname @df@\romannumeral#1@posy\endcsname
-\hb@xt@\z@{%
-\expandafter\kern \csname @df@\romannumeral#1@posx\endcsname
-\@dodynamicbbox{#1}\hss}\ignorespaces
-\fi
-\fi}
-\newcommand*{\@@doheader}{%
-\setlength\@ff@tmp@y{\textheight}%
-\addtolength{\@ff@tmp@y}{\headsep}%
-\def\ff@col{}%
-\def\ff@txtcol{}%
-\def\ff@backcol{{none}}%
-\@ff@box{0pt}{\@ff@tmp@y}{\makebox[0pt][l]{\@dothehead}}%
-}
-\newcommand*{\@@dofooter}{%
-\setlength\@ff@tmp@y{-\footskip}%
-\def\ff@col{}%
-\def\ff@txtcol{}%
-\def\ff@backcol{{none}}%
-\@ff@box{0pt}{\@ff@tmp@y}{\makebox[0pt][l]{\@dothefoot}}%
-}
-\newcommand{\@s@tfr@mes}[1]{{\@picht\textheight
-\setbox\@picbox\hb@xt@ \textwidth
-\bgroup \hbox \bgroup #1\relax
-\egroup
-\hss \egroup
-\ht\@picbox\@picht \dp\@picbox
-\z@ \mbox{\box \@picbox}}}
-\newcommand*{\@ff@doallflowframes}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxflow}{\advance\@colN by 1\relax
-\@putcolbox{\@colN}}%
-}
-\newcommand*{\@ff@doallflowframesbbox}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxflow}{\advance\@colN by 1\relax
-\@putcolbbox{\@colN}}%
-}
-\newcommand*{\@ff@doallstatics}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxstatic}{\advance\@colN by 1\relax
-\@putstaticbox{\@colN}}%
-}
-\newcommand*{\@ff@doallstaticsbbox}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxstatic}{\advance\@colN by 1\relax
-\@putstaticbbox{\@colN}}%
-}
-\newcommand*{\@ff@doalldynamics}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxdynamic}{\advance\@colN by 1\relax
-\@putdynamicbox{\@colN}}%
-}
-\newcommand*{\@ff@doalldynamicsbbox}{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxdynamic}{\advance\@colN by 1\relax
-\@putdynamicbbox{\@colN}}%
-}
-\newcommand*{\@ff@dotypeblock}{%
-\makebox[0pt][l]{\@fr@meifdraft[\setffdrafttypeblockcolor]{%
-\vbox to \textheight{\hbox to \textwidth{}}}{}}}
-\newlength\ffevenoffset
-\newcommand*{\@ff@do@allframes}{%
-\ffevenoffset=0pt\relax
-\if@twoside
- \ifodd\c@page
- \else
- \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
-\@@dofooter
-\@ff@doallflowframes
-\@ff@doalldynamics
-\ifshowtypeblock
- \@ff@dotypeblock
-\fi
-\ifshowframebbox
- \@ff@doallstaticsbbox
- \@ff@doallflowframesbbox
- \@ff@doalldynamicsbbox
-\fi
-\ifshowmargins
- \@ff@drawmargins
-\fi
-}}}
-\newcount\@nxtcol
-\def\@outputdblcol{%
-\@nxtcol=\c@thisframe
-\c@curpg=\c@page
-\@g@tnextcol{\@nxtcol}%
-\if@ff@nwpg % next flow frame starts on new page
- \global\@firstcolumntrue
- \@setcolbox\c@thisframe
- \if@specialpage
- \global\@specialpagefalse
- \@nameuse{ps@\@specialstyle}\relax
- \fi
- \if@twoside
- \ifodd\count\z@
- \let\@thehead\@oddhead
- \let\@thefoot\@oddfoot
- \else
- \let\@thehead\@evenhead
- \let\@thefoot\@evenfoot
- \fi
- \else
- \let\@thehead\@oddhead
- \let\@thefoot\@oddfoot
- \fi
- \@begindvi
- \@dodynamicthehead\@dodynamicthefoot
- \vbadness=\@M
- \setbox\@outputbox\vbox{\hbox to \textwidth{\@ff@do@allframes}}%
- \@combinedblfloats
- \@outputpage
-\advance\c@curpg by -\c@page\relax
- \whiledo{\c@curpg>0}{\advance\c@curpg by -1\relax
- \setbox\@outputbox\vbox{\hbox to \textwidth{\@ff@do@allframes}}%
-\@outputpage}
- \begingroup
- \@dblfloatplacement
- \@startdblcolumn
- \@whilesw \if@fcolmade \fi
- {\@outputpage \@startdblcolumn }\endgroup
- \@resetst@tics
- \@resetdyn@mics
-\else % still on same page, save contents of box255
- \global\@firstcolumnfalse
- \@setcolbox\c@thisframe
-\fi
-\global\c@thisframe=\@nxtcol
-\@setcol{\c@thisframe}\relax
-\global\@colht\vsize
-}
-\def\@dblfloatplacement{%
- \global\@dbltopnum\c@dbltopnumber
- \global\@dbltoproom\dbltopfraction\@colht\@textmin
- \@colht\advance\@textmin -\@dbltoproom
- \@fpmin\dblfloatpagefraction\vsize
- \@fptop \@dblfptop \@fpsep \@dblfpsep \@fpbot \@dblfpbot}
-\newenvironment{statictable}{\def\@captype{table}}{}
-\newenvironment{staticfigure}{\def\@captype{figure}}{}
-\newif\ifffvadjust
-\ffvadjusttrue
-\renewcommand*{\onecolumn}{\@onecolumn}
-\newcommand*{\@onecolumn}[1][all]{%
-\@onecolumninarea[#1]{\textwidth}{\textheight}{0pt}{0pt}}
-\newlength\columnheight
-\newcommand*{\onecolumninarea}{\@onecolumninarea}
-\@onlypreamble{\onecolumninarea}
-\newcommand*{\@onecolumninarea}[5][all]{%
-\setlength{\columnheight}{#3}%
-\ifffvadjust\adjustheight{\columnheight}\fi%
-\@n@wflowframe[#1]{#2}{\columnheight}{#4}{#5}}
-\renewcommand*{\twocolumn}{\@twocolumn}
-\newcommand*{\@twocolumn}[1][all]{%
-\@twocolumninarea[#1]{\textwidth}{\textheight}{0pt}{0pt}}
-\newcommand*{\twocolumninarea}{\@twocolumninarea}
-\@onlypreamble{\twocolumninarea}
-\newcommand*{\@twocolumninarea}[5][all]{%
- \setlength{\columnheight}{#3}%
- \ifffvadjust\adjustheight{\columnheight}\fi%
- \setlength{\columnwidth}{#2}%
- \addtolength{\columnwidth}{-\columnsep}%
- \divide\columnwidth by 2\relax
- \setlength{\@ff@tmp@x}{#4}%
- \addtolength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \iflefttorightcolumns
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{#4}{#5}%
- \setflowframe{\c@maxflow}{margin=left}%
- \else
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#5}%
- \setflowframe{\c@maxflow}{margin=right}%
- \fi
- \iflefttorightcolumns
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#5}%
- \setflowframe{\c@maxflow}{margin=right}%
- \else
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{#4}{#5}%
- \setflowframe{\c@maxflow}{margin=left}%
- \fi
-}
-\newcommand*{\Ncolumn}[2][all]{%
-\Ncolumninarea[#1]{#2}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\Ncolumn}
-\newcommand*{\Ncolumninarea}[6][all]{%
-\ifnum#2>2\relax
- \@Ncolumninarea[#1]{#2}{#3}{#4}{#5}{#6}%
-\else
- \ifcase#2\relax
- \PackageError{flowfram}{%
- You have requested 0 flowframes!}{%
- It does not make much sense to ask to create 0 flow frames}%
- \or
- \onecolumninarea[#1]{#3}{#4}{#5}{#6}%
- \or
- \twocolumninarea[#1]{#3}{#4}{#5}{#6}%
- \else
- \PackageError{flowfram}{%
- Can't create a negative number of flow frames!}{%
- You have asked for \number#2 \space flow frames
- which really doesn't make sense}%
- \fi
-\fi
-}
-
-\@onlypreamble{\Ncolumninarea}
-\newcommand*{\@Ncolumninarea}[6][all]{%
- \@colN=#2\relax
- \advance\@colN by -1\relax
- \setlength{\columnwidth}{#3}%
- \addtolength{\columnwidth}{-\@colN\columnsep}%
- \divide\columnwidth by #2\relax
- \setlength{\@ff@tmp@x}{#5}%
- \iflefttorightcolumns
- \else
- \addtolength{\@ff@tmp@x}{#3}%
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \fi
- \setlength{\columnheight}{#4}%
- \ifffvadjust\adjustheight{\columnheight}\fi%
- \@colN=0\relax
- \loop
- \advance\@colN by 1\relax
- \newflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#6}%
- \iflefttorightcolumns
- \addtolength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \else
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \addtolength{\@ff@tmp@x}{-\columnsep}%
- \fi
- \ifnum\@colN<#2
- \repeat
-}
-\newlength{\vcolumnsep}
-\setlength{\vcolumnsep}{\columnsep}
-\newcommand*{\onecolumntop}[3][all]{%
-\onecolumntopinarea[#1]{#2}{#3}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\onecolumntop}
-\newcommand*{\onecolumnStop}[2][all]{%
-\onecolumntopinarea[#1]{static}{#2}{\textwidth}{\textheight}{0pt}{0pt}}
-\newcommand*{\onecolumnDtop}[2][all]{%
-\onecolumntopinarea[#1]{dynamic}{#2}{\textwidth}{\textheight}{0pt}{0pt}}
-\newcommand*{\newframe}[6][all]{%
-\ifthenelse{\equal{#2}{flow}}{%
-\@n@wflowframe[#1]{#3}{#4}{#5}{#6}%
-}{%
-\ifthenelse{\equal{#2}{dynamic}}{%
-\@n@wdynamicframe[#1]{#3}{#4}{#5}{#6}}{%
-\ifthenelse{\equal{#2}{static}}{%
-\@n@wstaticframe[#1]{#3}{#4}{#5}{#6}}{%
-\PackageError{flowfram}{Unknown frame type '#2'}{%
-Available frame types are: 'flow', 'static' and 'dynamic'}}}}}
-\newlength\@ff@staticH
-
-\newcommand*{\onecolumntopinarea}[7][all]{%
-\setlength{\@ff@staticH}{#3}%
-\setlength{\@ff@tmp@y}{#5}%
-\addtolength{\@ff@tmp@y}{-\@ff@staticH}%
-\setlength{\columnheight}{\@ff@tmp@y}%
-\addtolength{\columnheight}{-\vcolumnsep}%
-\ifffvadjust\adjustheight{\columnheight}\fi%
-\addtolength{\@ff@tmp@y}{#7}%
-\newframe[#1]{#2}{#4}{\@ff@staticH}{#6}{\@ff@tmp@y}%
-\@n@wflowframe[#1]{#4}{\columnheight}{#6}{#7}%
-}
-
-\@onlypreamble{\onecolumntopinarea}
-\newcommand*{\onecolumnStopinarea}[6][all]{%
-\onecolumntopinarea[#1]{static}{#2}{#3}{#4}{#5}{#6}}
-\newcommand*{\onecolumnDtopinarea}[6][all]{%
-\onecolumntopinarea[#1]{dynamic}{#2}{#3}{#4}{#5}{#6}}
-\newcommand*{\twocolumntop}[3][all]{%
-\twocolumntopinarea[#1]{#2}{#3}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\twocolumntop}
-\newcommand*{\twocolumnStop}[2][all]{%
-\@twocolumntopinarea[#1]{static}{#2}{\textwidth}{\textheight}{0pt}{0pt}}
-\newcommand*{\twocolumnDtop}[2][all]{%
-\twocolumntop[#1]{dynamic}{#2}}
-\newcommand*{\twocolumntopinarea}{\@twocolumntopinarea}
-\newcommand*{\@twocolumntopinarea}[7][all]{%
- \setlength{\@ff@staticH}{#3}%
- \setlength{\@ff@tmp@y}{#5}%
- \addtolength{\@ff@tmp@y}{-\@ff@staticH}%
- \setlength{\columnheight}{\@ff@tmp@y}%
- \addtolength{\@ff@tmp@y}{#7}%
- \newframe[#1]{#2}{#4}{\@ff@staticH}{#6}{\@ff@tmp@y}%
- \addtolength{\columnheight}{-\vcolumnsep}%
- \ifffvadjust\adjustheight{\columnheight}\fi
- \setlength{\columnwidth}{#4}%
- \addtolength{\columnwidth}{-\columnsep}%
- \divide\columnwidth by 2\relax
- \setlength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \addtolength{\@ff@tmp@x}{#6}%
- \iflefttorightcolumns
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{#6}{#7}%
- \setflowframe{\c@maxflow}{margin=left}%
- \else
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#7}%
- \setflowframe{\c@maxflow}{margin=right}%
- \fi
- \iflefttorightcolumns
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#7}%
- \setflowframe{\c@maxflow}{margin=right}%
- \else
- \@n@wflowframe[#1]{\columnwidth}{\columnheight}{#6}{#7}%
- \setflowframe{\c@maxflow}{margin=left}%
- \fi
-}
-\@onlypreamble{\twocolumntopinarea}
-\newcommand*{\twocolumnStopinarea}[6][all]{%
-\twocolumntopinarea[#1]{static}{#2}{#3}{#4}{#5}{#6}}
-\newcommand*{\twocolumnDtopinarea}[6][all]{%
-\twocolumntopinarea[#1]{dynamic}{#2}{#3}{#4}{#5}{#6}}
-\newcommand*{\Ncolumntop}[4][all]{%
-\Ncolumntopinarea[#1]{#2}{#3}{#4}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\Ncolumntop}
-\newcommand*{\NcolumnStop}[3][all]{%
-\Ncolumntop[#1]{static}{#2}{#3}}
-\newcommand*{\NcolumnDtop}[3][all]{%
-\Ncolumntop[#1]{dynamic}{#2}{#3}}
-\newcommand*{\Ncolumntopinarea}[8][all]{%
-\ifnum#3>2\relax
- \@Ncolumntopinarea[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
-\else
- \ifcase#3\relax
- \PackageError{flowfram}{%
- You have requested 0 flowframes!}{%
- It does not make much sense to ask to create 0 flow frames}
- \or
- \onecolumntopinarea[#1]{#2}{#4}{#5}{#6}{#7}{#8}%
- \or
- \twocolumntopinarea[#1]{#2}{#4}{#5}{#6}{#7}{#8}%
- \else
- \PackageError{flowfram}{%
- Can't create a negative number of flow frames!}{%
- You have asked for \number#3 \space flow frames
- which really doesn't make sense}%
- \fi
-\fi
-}
-\@onlypreamble{\Ncolumntopinarea}
-\newcommand*{\@Ncolumntopinarea}[8][all]{%
- \setlength{\@ff@staticH}{#4}%
- \setlength{\@ff@tmp@y}{#6}%
- \addtolength{\@ff@tmp@y}{-\@ff@staticH}%
- \setlength{\columnheight}{\@ff@tmp@y}%
- \addtolength{\@ff@tmp@y}{#8}%
- \newframe[#1]{#2}{#5}{\@ff@staticH}{#7}{\@ff@tmp@y}%
- \addtolength{\columnheight}{-\vcolumnsep}%
- \ifffvadjust\adjustheight{\columnheight}\fi%
- \@colN=#3\relax
- \advance\@colN by -1\relax
- \setlength{\columnwidth}{#5}%
- \addtolength{\columnwidth}{-\@colN\columnsep}%
- \divide\columnwidth by #3\relax
- \setlength{\@ff@tmp@x}{#7}%
- \iflefttorightcolumns
- \else
- \addtolength{\@ff@tmp@x}{#5}%
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \fi
- \@colN=0\relax
- \loop
- \advance\@colN by 1\relax
- \newflowframe[#1]{\columnwidth}{\columnheight}{\@ff@tmp@x}{#8}%
- \iflefttorightcolumns
- \addtolength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \else
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \addtolength{\@ff@tmp@x}{-\columnsep}%
- \fi
- \ifnum\@colN<#3
- \repeat
-}
-\newcommand*{\NcolumnStopinarea}[7][all]{%
-\Ncolumntopinarea[#1]{static}{#2}{#3}{#4}{#5}{#6}{#7}}
-\newcommand*{\NcolumnDtopinarea}[7][all]{%
-\Ncolumntopinarea[#1]{dynamic}{#2}{#3}{#4}{#5}{#6}{#7}}
-\newcommand*{\onecolumnbottom}[3][all]{%
-\onecolumnbottominarea[#1]{#2}{#3}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\onecolumnbottom}
-\newcommand*{\onecolumnSbottom}[2][all]{%
-\onecolumnbottom[#1]{static}{#2}}
-\newcommand*{\onecolumnDbottom}[2][all]{%
-\onecolumnbottom[#1]{dynamic}{#2}}
-\newcommand*{\onecolumnbottominarea}[7][all]{%
- \setlength{\@ff@staticH}{#3}%
- \setlength{\columnheight}{#5}%
- \addtolength{\columnheight}{-\@ff@staticH}%
- \addtolength{\columnheight}{-\vcolumnsep}%
- \ifffvadjust\adjustheight{\columnheight}\fi%
- \setlength{\@ff@tmp@y}{#5}%
- \addtolength{\@ff@tmp@y}{-\columnheight}%
- \addtolength{\@ff@tmp@y}{#7}%
- \newframe[#1]{#2}{#4}{\@ff@staticH}{#6}{#7}%
- \newflowframe[#1]{#4}{\columnheight}{#6}{\@ff@tmp@y}%
-}
-\@onlypreamble{\onecolumnbottominarea}
-\newcommand*{\onecolumnSbottominarea}[6][all]{%
-\onecolumnbottominarea[#1]{static}{#2}{#3}{#4}{#5}{#6}}
-\newcommand*{\onecolumnDbottominarea}[6][all]{%
-\onecolumnbottominarea[#1]{dynamic}{#2}{#3}{#4}{#5}{#6}}
-\newcommand*{\twocolumnbottom}[3][all]{%
-\twocolumnSbottominarea[#1]{#2}{#3}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\twocolumnbottom}
-\newcommand*{\twocolumnSbottom}[2][all]{%
-\twocolumnbottom[#1]{static}{#2}}
-\newcommand*{\twocolumnDbottom}[2][all]{%
-\twocolumnbottom[#1]{dynamic}{#2}}
-\newcommand*{\twocolumnbottominarea}[7][all]{%
- \setlength{\@ff@staticW}{#4}%
- \setlength{\@ff@staticH}{#3}%
- \setlength{\columnheight}{#5}%
- \addtolength{\columnheight}{-\@ff@staticH}%
- \addtolength{\columnheight}{-\vcolumnsep}%
- \ifffvadjust\adjustheight{\columnheight}\fi%
- \newframe[#1]{#2}{\@ff@staticW}{\@ff@staticH}{#6}{#7}%
- \setlength{\@ff@tmp@y}{#5}%
- \addtolength{\@ff@tmp@y}{-\columnheight}%
- \addtolength{\@ff@tmp@y}{#7}%
- \setlength{\columnwidth}{\@ff@staticW}%
- \addtolength{\columnwidth}{-\columnsep}%
- \divide\columnwidth by 2\relax
- \setlength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \addtolength{\@ff@tmp@x}{#6}%
- \iflefttorightcolumns
- \newflowframe[#1]{\columnwidth}{\columnheight}{#6}{\@ff@tmp@y}%
- \setflowframe{\c@maxflow}{margin=left}%
- \else
- \newflowframe[#1]{\columnwidth}{\columnheight}%
- {\@ff@tmp@x}{\@ff@tmp@y}%
- \setflowframe{\c@maxflow}{margin=right}%
- \fi
- \iflefttorightcolumns
- \newflowframe[#1]{\columnwidth}{\columnheight}%
- {\@ff@tmp@x}{\@ff@tmp@y}%
- \setflowframe{\c@maxflow}{margin=right}%
- \else
- \newflowframe[#1]{\columnwidth}{\columnheight}{#6}{\@ff@tmp@y}%
- \setflowframe{\c@maxflow}{margin=left}%
- \fi
-}
-\@onlypreamble{\twocolumnbottominarea}
-\newcommand*{\twocolumnSbottominarea}[6][all]{%
-\twocolumnbottominarea[#1]{static}{#2}{#3}{#4}{#5}{#6}}
-\newcommand*{\twocolumnDbottominarea}[6][all]{%
-\twocolumnbottominarea[#1]{dynamic}{#2}{#3}{#4}{#5}{#6}}
-\newcommand*{\Ncolumnbottom}[4][all]{%
-\Ncolumnbottominarea[#1]{#2}{#3}{#4}{\textwidth}{\textheight}{0pt}{0pt}}
-\@onlypreamble{\Ncolumnbottom}
-\newcommand*{\NcolumnSbottom}[3][all]{%
-\Ncolumnbottom[#1]{static}{#2}{#3}}
-\newcommand*{\NcolumnDbottom}[3][all]{%
-\Ncolumnbottom[#1]{dynamic}{#2}{#3}}
-\newcommand*{\Ncolumnbottominarea}[8][all]{%
-\ifnum#3>2\relax
- \@Ncolumnbottominarea[#1]{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
-\else
- \ifcase#3\relax
- \PackageError{flowfram}{%
- You have requested 0 flowframes!}{%
- It does not make much sense to ask to create 0 flow frames}
- \or
- \onecolumnbottominarea[#1]{#2}{#4}{#5}{#6}{#7}{#8}%
- \or
- \twocolumnbottominarea[#1]{#2}{#4}{#5}{#6}{#7}{#8}%
- \else
- \PackageError{flowfram}{%
- Can't create a negative number of flow frames!}{%
- You have asked for \number#3 \space flow frames
- which really doesn't make sense}%
- \fi
-\fi
-}
-\@onlypreamble{\Ncolumnbottominarea}
-\newcommand*{\@NcolumnSbottominarea}[8][all]{%
- \setlength{\@ff@staticH}{#4}%
- \setlength{\columnheight}{#6}%
- \addtolength{\columnheight}{-\@ff@staticH}%
- \addtolength{\columnheight}{-\vcolumnsep}%
- \ifffvadjust\adjustheight{\columnheight}\fi
- \newframe[#1]{#2}{#5}{\@ff@staticH}{#7}{#8}%
- \setlength{\@ff@tmp@y}{#6}%
- \addtolength{\@ff@tmp@y}{-\columnheight}%
- \addtolength{\@ff@tmp@y}{#8}%
- \@colN=#3\relax
- \advance\@colN by -1\relax
- \setlength{\columnwidth}{#5}%
- \addtolength{\columnwidth}{-\@colN\columnsep}%
- \divide\columnwidth by #3\relax
- \setlength{\@ff@tmp@x}{#7}%
- \iflefttorightcolumns
- \else
- \addtolength{\@ff@tmp@x}{#5}%
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \fi
- \@colN=0\relax
- \loop
- \advance\@colN by 1\relax
- \newflowframe[#1]{\columnwidth}{\columnheight}%
- {\@ff@tmp@x}{\@ff@tmp@y}%
- \iflefttorightcolumns
- \addtolength{\@ff@tmp@x}{\columnwidth}%
- \addtolength{\@ff@tmp@x}{\columnsep}%
- \else
- \addtolength{\@ff@tmp@x}{-\columnwidth}%
- \addtolength{\@ff@tmp@x}{-\columnsep}%
- \fi
- \ifnum\@colN<#3
- \repeat
-}
-\newcommand*{\NcolumnSbottominarea}[1][all]{%
-\Ncolumnbottominarea[#1]{static}}
-\newcommand*{\NcolumnDbottominarea}[1][all]{%
-\Ncolumnbottominarea[#1]{dynamic}}
-\newcount\@ff@adjh
-\newcommand*{\adjustheight}[1]{%
-\@ff@adjh=#1\relax
-\divide\@ff@adjh by \baselineskip\relax
-#1=\baselineskip\relax
-\multiply#1 by \@ff@adjh\relax
-}
-\newcommand*{\adjustcolsep}{%
-\multiply\columnsep by 2\relax
-\addtolength{\columnsep}{\marginparwidth}}
-\newlength\@ff@staticW
-\newcommand*{\vtwotone}[1][all]{%
-\def\ff@pages{#1}\@vtwotone}
-
-\newcommand*{\@vtwotone}[1][0pt]{\@@vtwotonebottom{#1}{\paperheight}}
-\newcommand*{\@@vtwotonebottom}[8]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@x}{#1}%
-\addtolength{\@ff@tmp@x@even}{#1}%
-\@nextvband{\ff@pages}{#2}{#3}{#4}{#5}%
-\@nextvband{\ff@pages}{#2}{#6}{#7}{#8}%
-}
-
-\@onlypreamble{\vtwotone}
-\newcommand*{\vtwotonebottom}[1][all]{%
-\def\ff@pages{#1}\@vtwotonebottom}
-
-\@onlypreamble{\vtwotonebottom}
-
-\newcommand*{\@vtwotonebottom}[2][0pt]{\@@vtwotonebottom{#1}{#2}}
-\newcommand*{\vtwotonetop}[1][all]{%
-\def\ff@pages{#1}\@vtwotonetop}
-
-\newcommand*{\@vtwotonetop}[2][0pt]{\@@vtwotonetop{#1}{#2}}
-
-\newcommand*{\@@vtwotonetop}[8]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computetopedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{-#2}%
-\addtolength{\@ff@tmp@x}{#1}%
-\addtolength{\@ff@tmp@x@even}{#1}%
-\@nextvband{\ff@pages}{#2}{#3}{#4}{#5}%
-\@nextvband{\ff@pages}{#2}{#6}{#7}{#8}%
-}
-\newcommand*{\@nextvband}[5]{%
-\setlength{\@ff@staticW}{#3}%
-\ifthenelse{\equal{#5}{}}{%
-\newstaticframe[#1]{\@ff@staticW}{#2}{\@ff@tmp@x}{\@ff@tmp@y}}%
-{\newstaticframe[#1]{\@ff@staticW}{#2}{\@ff@tmp@x}{\@ff@tmp@y}[#5]}%
-\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@x}{\@ff@staticW}%
-\addtolength{\@ff@tmp@x@even}{\@ff@staticW}%
-}
-\newcount\@thisstrip
-\newcommand*{\vNtone}[1][all]{%
-\def\ff@pages{#1}\@vNtone}
-\newcommand*{\@vNtone}[2][0pt]{%
-\@@vNtone{#1}{#2}{\paperheight}}
-\newcommand*{\@@vNtone}[3]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@x}{#1}%
-\addtolength{\@ff@tmp@x@even}{#1}%
-\@thisstrip=#2\relax
-\setlength{\@ff@staticH}{#3}%
-\@nextvNband%
-}
-\newcommand*{\@nextvNband}{%
-\ifnum\@thisstrip>0\relax
- \let\flf@next\@@nextvNband
-\else
- \let\flf@next\relax
-\fi
-\advance\@thisstrip by -1\relax
-\flf@next}
-\newcommand*{\@@nextvNband}[3]{%
-\@nextvband{\ff@pages}{\@ff@staticH}{#1}{#2}{#3}\@nextvNband}
-
-\@onlypreamble{\vNtone}
-\newcommand*{\vNtonebottom}[1][all]{%
-\def\ff@pages{#1}\@vNtonebottom}
-\@onlypreamble{\vNtonebottom}
-\newcommand*{\@vNtonebottom}[3][0pt]{%
-\@@vNtone{#1}{#2}{#3}}
-\newcommand*{\vNtonetop}[1][all]{%
-\def\ff@pages{#1}\@vNtonetop}
-\@onlypreamble{\vNtonetop}
-\newcommand*{\@vNtonetop}[3][0pt]{%
-\@@vNtonetop{#1}{#2}{#3}}
-\newcommand*{\@@vNtonetop}[3]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computetopedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{-#3}%
-\addtolength{\@ff@tmp@x}{#1}%
-\addtolength{\@ff@tmp@x@even}{#1}%
-\@thisstrip=#2\relax
-\setlength{\@ff@staticH}{#3}%
-\@nextvNband%
-}
-\newcommand*{\htwotone}[1][all]{%
-\def\ff@pages{#1}\@htwotone}
-\newcommand*{\@htwotone}[1][0pt]{\@@htwotoneleft{#1}{\paperwidth}}
-\newcommand*{\@@htwotoneleft}[8]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{#1}%
-\@nexthband{\ff@pages}{#2}{#3}{#4}{#5}%
-\@nexthband{\ff@pages}{#2}{#6}{#7}{#8}%
-}
-
-\@onlypreamble{\htwotone}
-\newcommand*{\htwotoneleft}[1][all]{%
-\def\ff@pages{#1}\@htwotoneleft}
-\@onlypreamble{\htwotoneleft}
-\newcommand*{\@htwotoneleft}[2][0pt]{\@@htwotoneleft{#1}{#2}}
-\newcommand*{\htwotoneright}[1][all]{%
-\def\ff@pages{#1}\@htwotoneright}
-\@onlypreamble{\htwotoneright}
-\newcommand*{\@htwotoneright}[2][0pt]{\@@htwotoneright{#1}{#2}}
-\newcommand*{\@@htwotoneright}[8]{%
-\computerightedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computerightedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{#1}%
-\addtolength{\@ff@tmp@x}{-#2}%
-\addtolength{\@ff@tmp@x@even}{-#2}%
-\@nexthband{\ff@pages}{#2}{#3}{#4}{#5}%
-\@nexthband{\ff@pages}{#2}{#6}{#7}{#8}%
-}
-\newcommand*{\hNtone}[1][all]{%
-\def\ff@pages{#1}\@hNtone}
-\@onlypreamble{\hNtone}
-\newcommand*{\@hNtone}[2][0pt]{%
-\@@hNtone{#1}{#2}{\paperwidth}}
-\newcommand*{\@@hNtone}[3]{%
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{#1}%
-\@thisstrip=#2\relax
-\setlength{\@ff@staticW}{#3}%
-\@nexthNband%
-}
-\newcommand*{\hNtoneleft}[1][all]{%
-\def\ff@pages{#1}\@hNtoneleft}
-\@onlypreamble{\hNtoneleft}
-\newcommand*{\@hNtoneleft}[3][0pt]{%
-\@@hNtone{#1}{#2}{#3}}
-\newcommand*{\hNtoneright}[1][all]{%
-\def\ff@pages{#1}\@hNtoneright}
-\@onlypreamble{\hNtoneright}
-\newcommand*{\@hNtoneright}[3][0pt]{%
-\@@hNtoneright{#1}{#2}{#3}}
-\newcommand*{\@@hNtoneright}[3]{%
-\computerightedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computerightedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\addtolength{\@ff@tmp@y}{#1}%
-\addtolength{\@ff@tmp@x}{-#3}%
-\addtolength{\@ff@tmp@x@even}{-#3}%
-\@thisstrip=#2\relax
-\setlength{\@ff@staticW}{#3}%
-\@nexthNband%
-}
-\newcommand*{\@nexthband}[5]{%
-\setlength{\@ff@staticH}{#3}%
-\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}%
-\@setframecol#4\end{\c@maxstatic}{backcol}{sf}%
-\addtolength{\@ff@tmp@y}{\@ff@staticH}%
-}
-\newcommand*{\@nexthNband}{%
-\ifnum\@thisstrip>0\relax
- \let\flf@next\@@nexthNband%
-\else
- \let\flf@next\relax%
-\fi
-\advance\@thisstrip by -1\relax
-\flf@next}
-\newcommand*{\@@nexthNband}[3]{%
-\@nexthband{\ff@pages}{\@ff@staticW}{#1}{#2}{#3}\@nexthNband}
-\newcommand*{\makebackgroundframe}[1][all]{%
-\ifnum\c@maxstatic>0\relax
- \PackageWarning{flowfram}{Background frame is not
- first static frame to be defined. All previously defined
- static frames may be obscured.}%
-\fi
-\computeleftedgeodd{\@ff@tmp@x}%
-\if@twoside
- \computeleftedgeeven{\@ff@tmp@x@even}%
-\else
- \setlength{\@ff@tmp@x@even}{\@ff@tmp@x}%
-\fi
-\computebottomedge{\@ff@tmp@y}%
-\newstaticframe[#1]{\paperwidth}{\paperheight}{\@ff@tmp@x}%
-{\@ff@tmp@y}%
-\expandafter\global\expandafter
-\setlength\csname @sf@\romannumeral\c@maxstatic @evenx\endcsname
-{\@ff@tmp@x@even}}
-\newlength\ffcolumnseprule
-\setlength{\ffcolumnseprule}{2pt}
-\newcommand*{\ffruledeclarations}{}
-\newcommand*{\insertvrule}{\@ifstar\@sinsertvrule\@insertvrule}
-\newcommand*{\@insertvrule}[1][0pt]{%
-\@ifnextchar[{\@@insertvrule[#1]}{\@@insertvrule[#1][0pt]}}
-\newlength\@ff@left@x
-\newlength\@ff@left@y
-\newlength\@ff@left@evenx
-\newlength\@ff@left@eveny
-\newlength\@ff@left@width
-\newlength\@ff@left@height
-\def\@@insertvrule[#1][#2]#3#4#5#6{%
-\ifthenelse{\equal{#3}{flow}}{%
-\def\@ff@type@i{1}}{\ifthenelse{\equal{#3}{static}}{%
-\def\@ff@type@i{2}}{\ifthenelse{\equal{#3}{dynamic}}{%
-\def\@ff@type@i{3}}{\PackageError{flowfram}{Unknown frame
-type '#3'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\ifthenelse{\equal{#5}{flow}}{%
-\def\@ff@type@ii{1}}{\ifthenelse{\equal{#5}{static}}{%
-\def\@ff@type@ii{2}}{\ifthenelse{\equal{#5}{dynamic}}{%
-\def\@ff@type@ii{3}}{\PackageError{flowfram}{Unknown frame
-type '#5'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\@@insert@vrule{#1}{#2}{\@ff@type@i}{#4}{\@ff@type@ii}{#6}%
-}
-\newcommand*{\@@insert@vrule}[6]{%
-\@ff@getdim{#3}{#4}%
-\setlength{\@ff@left@x}{\ffareax}%
-\setlength{\@ff@left@y}{\ffareay}%
-\setlength{\@ff@left@width}{\ffareawidth}%
-\setlength{\@ff@left@height}{\ffareaheight}%
-\@ff@getdim{#5}{#6}%
-\ifnum\@ff@left@x>\ffareax\relax
- \@ff@swaplen{\@ff@left@x}{\ffareax}%
- \@ff@swaplen{\@ff@left@y}{\ffareax}%
- \@ff@swaplen{\@ff@left@evenx}{\ffareaevenx}%
- \@ff@swaplen{\@ff@left@eveny}{\ffareaevenx}%
- \@ff@swaplen{\@ff@left@width}{\ffareawidth}%
- \@ff@swaplen{\@ff@left@height}{\ffareaheight}%
-\fi
-\setlength{\@ff@tmp@x}{\@ff@left@x}
-\addtolength{\@ff@tmp@x}{\@ff@left@width}%
-\setlength{\@ff@staticW}{\ffareax}%
-\addtolength{\@ff@staticW}{-\@ff@tmp@x}%
-\setlength{\@ff@staticH}{\@ff@left@y}%
-\addtolength{\@ff@staticH}{\@ff@left@height}%
-\setlength{\@ff@tmp@y}{\ffareay}%
-\addtolength{\@ff@tmp@y}{\ffareaheight}%
-\ifnum\@ff@tmp@y>\@ff@staticH
- \setlength{\@ff@staticH}{\@ff@tmp@y}%
-\fi
-\ifnum\@ff@left@y<\ffareay\relax
- \setlength{\@ff@tmp@y}{\@ff@left@y}%
-\else
- \setlength{\@ff@tmp@y}{\ffareay}%
-\fi
-\addtolength{\@ff@staticH}{-\@ff@tmp@y}%
-\newstaticframe{\@ff@staticW}{\@ff@staticH}%
-{\@ff@tmp@x}{\@ff@tmp@y}%
-\addtolength{\@ff@staticH}{#1}%
-\addtolength{\@ff@staticH}{#2}%
-\setstaticcontents{\c@maxstatic}{%
-\ffruledeclarations
-\ffvrule{#2}{\ffcolumnseprule}{\@ff@staticH}}%
-\ifcase#3\relax
-\or \edef\@ff@pages{\csname @ff@pages@\romannumeral#4\endcsname}%
-\or \edef\@ff@pages{\csname @sf@pages@\romannumeral#4\endcsname}%
-\or \edef\@ff@pages{\csname @df@pages@\romannumeral#4\endcsname}%
-\fi
-\setstaticframe{\c@maxstatic}{pages=\@ff@pages}%
-\addtolength{\@ff@tmp@x}{\@ff@left@evenx}%
-\addtolength{\@ff@tmp@x}{-\@ff@left@x}%
-\addtolength{\@ff@tmp@y}{\@ff@left@eveny}%
-\addtolength{\@ff@tmp@y}{-\@ff@left@y}%
-\setstaticframe{\c@maxstatic}{evenx=\@ff@tmp@x,eveny=\@ff@tmp@y}%
-}
-\newcommand*{\ffvrule}[3]{%
-\hfill \rule[-#1]{#2}{#3}\hfill\mbox{}}
-\newcommand*{\@sinsertvrule}[1][0pt]{%
-\@ifnextchar[{\@@sinsertvrule[#1]}{\@@sinsertvrule[#1][0pt]}}
-\def\@@sinsertvrule[#1][#2]#3#4#5#6{%
-\ifthenelse{\equal{#3}{flow}}{%
-\def\@ff@type@i{1}\@flowframeid{#4}\@ff@tmpN=\ff@id}{%
-\ifthenelse{\equal{#3}{static}}{%
-\def\@ff@type@i{2}\@staticframeid{#4}\@ff@tmpN=\ff@id}{%
-\ifthenelse{\equal{#3}{dynamic}}{%
-\def\@ff@type@i{3}\@dynamicframeid{#4}\@ff@tmpN=\ff@id}{%
-\PackageError{flowfram}{Unknown frame
-type '#3'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\ifthenelse{\equal{#5}{flow}}{%
-\def\@ff@type@ii{1}\@flowframeid{#6}}{%
-\ifthenelse{\equal{#5}{static}}{%
-\def\@ff@type@ii{2}\@staticframeid{#6}}{%
-\ifthenelse{\equal{#5}{dynamic}}{%
-\def\@ff@type@ii{3}\@dynamicframeid{#6}}{%
-\PackageError{flowfram}{Unknown frame
-type '#5'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\@@insert@vrule{#1}{#2}{\@ff@type@i}{\@ff@tmpN}%
-{\@ff@type@ii}{\ff@id}%
-}
-\newcommand*{\inserthrule}{\@ifstar\@sinserthrule\@inserthrule}
-\newcommand*{\@inserthrule}[1][0pt]{%
-\@ifnextchar[{\@@inserthrule[#1]}{\@@inserthrule[#1][0pt]}}
-\def\@@inserthrule[#1][#2]#3#4#5#6{%
-\ifthenelse{\equal{#3}{flow}}{%
-\def\@ff@type@i{1}}{\ifthenelse{\equal{#3}{static}}{%
-\def\@ff@type@i{2}}{\ifthenelse{\equal{#3}{dynamic}}{%
-\def\@ff@type@i{3}}{\PackageError{flowfram}{Unknown frame
-type '#3'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\ifthenelse{\equal{#5}{flow}}{%
-\def\@ff@type@ii{1}}{\ifthenelse{\equal{#5}{static}}{%
-\def\@ff@type@ii{2}}{\ifthenelse{\equal{#5}{dynamic}}{%
-\def\@ff@type@ii{3}}{\PackageError{flowfram}{Unknown frame
-type '#5'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\@@insert@hrule{#1}{#2}{\@ff@type@i}{#4}{\@ff@type@ii}{#6}%
-}
-\newcommand*{\@@insert@hrule}[6]{%
-\@ff@getdim{#3}{#4}%
-\setlength{\@ff@left@x}{\ffareax}%
-\setlength{\@ff@left@y}{\ffareay}%
-\setlength{\@ff@left@width}{\ffareawidth}%
-\setlength{\@ff@left@height}{\ffareaheight}%
-\@ff@getdim{#5}{#6}%
-\ifnum\@ff@left@y>\ffareay\relax
- \@ff@swaplen{\@ff@left@x}{\ffareax}%
- \@ff@swaplen{\@ff@left@y}{\ffareay}%
- \@ff@swaplen{\@ff@left@width}{\ffareawidth}%
- \@ff@swaplen{\@ff@left@height}{\ffareaheight}%
-\fi
-\setlength{\@ff@tmp@y}{\@ff@left@y}%
-\addtolength{\@ff@tmp@y}{\@ff@left@height}%
-\setlength{\@ff@staticH}{\ffareay}%
-\addtolength{\@ff@staticH}{-\@ff@tmp@y}%
-\setlength{\@ff@staticW}{\@ff@left@x}%
-\addtolength{\@ff@staticW}{\@ff@left@width}%
-\setlength{\@ff@tmp@x}{\ffareax}%
-\addtolength{\@ff@tmp@x}{\ffareawidth}%
-\ifnum\@ff@tmp@x>\@ff@staticW\relax
- \setlength{\@ff@staticW}{\@ff@tmp@x}%
-\fi
-\ifnum\@ff@left@x<\ffareax\relax
- \setlength{\@ff@tmp@x}{\@ff@left@x}%
-\else
- \setlength{\@ff@tmp@x}{\ffareax}%
-\fi
-\addtolength{\@ff@staticW}{-\@ff@tmp@x}%
-\newstaticframe{\@ff@staticW}{\@ff@staticH}%
-{\@ff@tmp@x}{\@ff@tmp@y}%
-\addtolength{\@ff@staticW}{#1}%
-\addtolength{\@ff@staticW}{#2}%
-\setstaticcontents{\c@maxstatic}{%
-\ffruledeclarations
-\ffhrule{#1}{\@ff@staticW}{\ffcolumnseprule}}%
-\ifcase#3\relax
-\or \edef\@ff@pages{\csname @ff@pages@\romannumeral#4\endcsname}%
-\or \edef\@ff@pages{\csname @sf@pages@\romannumeral#4\endcsname}%
-\or \edef\@ff@pages{\csname @df@pages@\romannumeral#4\endcsname}%
-\fi
-\setstaticframe{\c@maxstatic}{pages=\@ff@pages}%
-\addtolength{\@ff@tmp@x}{\@ff@left@evenx}%
-\addtolength{\@ff@tmp@x}{-\@ff@left@x}%
-\addtolength{\@ff@tmp@y}{\@ff@left@eveny}%
-\addtolength{\@ff@tmp@y}{-\@ff@left@y}%
-\setstaticframe{\c@maxstatic}{evenx=\@ff@tmp@x,eveny=\@ff@tmp@y}%
-}
-\newcommand*{\ffhrule}[3]{%
-\hspace*{-#1}\rule{#2}{#3}}
-\newcommand*{\@sinserthrule}[1][0pt]{%
-\@ifnextchar[{\@@sinserthrule[#1]}{\@@sinserthrule[#1][0pt]}}
-\def\@@sinserthrule[#1][#2]#3#4#5#6{%
-\ifthenelse{\equal{#3}{flow}}{%
-\def\@ff@type@i{1}\@flowframeid{#4}\@ff@tmpN=\ff@id}{%
-\ifthenelse{\equal{#3}{static}}{%
-\def\@ff@type@i{2}\@staticframeid{#4}\@ff@tmpN=\ff@id}{%
-\ifthenelse{\equal{#3}{dynamic}}{%
-\def\@ff@type@i{3}\@dynamicframeid{#4}\@ff@tmpN=\ff@id}{%
-\PackageError{flowfram}{Unknown frame
-type '#3'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\ifthenelse{\equal{#5}{flow}}{%
-\def\@ff@type@ii{1}\@flowframeid{#6}}{%
-\ifthenelse{\equal{#5}{static}}{%
-\def\@ff@type@ii{2}\@staticframeid{#6}}{%
-\ifthenelse{\equal{#5}{dynamic}}{%
-\def\@ff@type@ii{3}\@dynamicframeid{#6}}{%
-\PackageError{flowfram}{Unknown frame
-type '#5'}{Available frame types are: 'flow', 'static'
-or 'dynamic'}}}}%
-\@@insert@hrule{#1}{#2}{\@ff@type@i}{\@ff@tmpN}%
-{\@ff@type@ii}{\ff@id}%
-}
-\newcommand*{\dfchaphead}{%
-\@ifstar\@sdynamicchap\@dynamicchap}
-\newcommand{\DFchapterstyle}[1]{#1}
-\newcommand{\DFschapterstyle}[1]{#1}
-\newcommand{\@dynamicchap}[1]{%
-\@ifundefined{chapter}{\PackageError{flowfram}{Chapters aren't
-defined}{The document
-class you are using does not define chapters}}{%
-\let\@ff@OLDmakechapterhead\@makechapterhead
-\let\@ff@OLDmakeschapterhead\@makeschapterhead
-\renewcommand{\DFchapterstyle}[1]{\@ff@OLDmakechapterhead{##1}}%
-\renewcommand{\DFschapterstyle}[1]{\@ff@OLDmakeschapterhead{##1}}%
-\xdef\@makechapterhead##1{%
-\noexpand\@setdynamiccontents{\number#1}{%
-\noexpand\DFchapterstyle{##1}}}%
-\xdef\@makeschapterhead##1{%
-\noexpand\@setdynamiccontents{\number#1}{%
-\noexpand\DFschapterstyle{##1}}}%
-}}
-\newcommand{\@sdynamicchap}[1]{%
-\@dynamicframeid{#1}\@dynamicchap{\ff@id}}
-\newcounter{maxthumbtabs}
-\@ifundefined{chapter}{%
-\newcommand*{\defaultthumbtabtype}{section}}{
-\newcommand*{\defaultthumbtabtype}{chapter}
-}
-\newcommand*{\@ttb@type}{\defaultthumbtabtype}
-\newcommand*{\makethumbtabs}[2][0pt]{%
-\@ifnextchar[{\@makethumbtabs[#1]{#2}}{%
-\@makethumbtabs[#1]{#2}[\defaultthumbtabtype]}%
-}
-\def\@makethumbtabs[#1]#2[#3]{%
-\@ifundefined{#3}{\PackageError{flowfram}{%
-Unknown section type '#3'}{}}{%
-\renewcommand{\@ttb@type}{#3}%
-\ifthenelse{\equal{#3}{chapter}}{\@makethumbchapter}{%
-\ifthenelse{\equal{#3}{part}}{\@makethumbpart}{%
-\@makethumbsection{#3}}}}
-\@starttoc{ttb}%
-\@dothumbtabs{#1}{#2}%
-}
-\newcommand{\@makethumbchapter}{
-\let\@ttb@old@chapter\@chapter
-\def\@chapter[##1]##2{%
-\@ttb@old@chapter[##1]{##2}%
-\addtocontents{ttb}{\protect\thumbtab
- {\thepage}{\thechapter}{##1}{chapter.\thechapter}}%
-\@afterheading
-}}
-\newcommand{\@makethumbpart}{
-\let\@ttb@old@part\@part
-\@ifundefined{@endpart}{%
-\def\@part[##1]##2{\@ttb@old@part[##1]{##2}%
-\addtocontents{ttb}{\protect\thumbtab
- {\thepage}{\thepart}{##1}{part.\thepage}}%
-\@afterheading}}{%
-\let\@ttb@old@endpart\@endpart
-\def\@part[##1]##2{%
-\def\@parttitle{##1}%
-\@ttb@old@part[##1]{##2}%
-}%
-\def\@endpart{%
-\addtocontents{ttb}{%
-\protect\thumbtab{\thepage}%
-{\thepart}{\@parttitle}{part.\thepage}}%
-\@ttb@old@endpart
-}}}
-\newcommand*{\@makethumbsection}[1]{%
-\let\@ttb@old@sect=\@sect
-\def\@sect##1##2##3##4##5##6[##7]##8{%
-\@ttb@old@sect{##1}{##2}{##3}{##4}{##5}{##6}[##7]{##8}%
-\ifthenelse{\equal{##1}{#1}}{%
-\addtocontents{ttb}{%
-\protect\thumbtab{\thepage}{\csname the#1\endcsname}%
-{##7}{#1.\csname the#1\endcsname}}%
-\@afterheading}{}%
-}}
-\newcommand{\thumbtab}[4]{%
-\stepcounter{maxthumbtabs}%
-\expandafter
-\gdef\csname thumbtab@pages@\romannumeral\c@maxthumbtabs\endcsname
-{#1}%
-\expandafter
-\gdef\csname thumbtab@num@\romannumeral\c@maxthumbtabs\endcsname
-{#2}%
-\expandafter
-\gdef\csname thumbtab@title@\romannumeral\c@maxthumbtabs\endcsname
-{#3}%
-\expandafter
-\gdef\csname thumbtab@link@\romannumeral\c@maxthumbtabs\endcsname
-{#4}}
-\newcommand*{\@dothumbtabs}[2]{%
-\@colN=0\relax
-\whiledo{\@colN<\c@maxthumbtabs}{%
- \advance\@colN by 1\relax
- \edef\ff@pages{%
- \csname thumbtab@pages@\romannumeral\@colN\endcsname}%
- \ifnum\@colN=\c@maxthumbtabs
- \expandafter
- \xdef\csname thumbtab@pages@\romannumeral\@colN\endcsname{%
- \ff@pages,>\ff@pages}%
- \else
- \advance\@colN by 1\relax
- \edef\ff@endpage{%
- \csname thumbtab@pages@\romannumeral\@colN\endcsname}%
- \advance\@colN by -1\relax
- \@ff@tmpN=\ff@endpage\relax
- \advance\@ff@tmpN by -1\relax
- \ifnum\@ff@tmpN>\ff@pages
- \expandafter
- \xdef\csname thumbtab@pages@\romannumeral\@colN\endcsname{%
- \ff@pages-\number\@ff@tmpN}%
- \fi
- \fi
-}%
-\@@dothumbtabs{#1}{#2}%
-}
-\newlength{\thumbtabwidth}
-\setlength{\thumbtabwidth}{1cm}
-\@ifundefined{hyperlink}{%
-\newcommand{\thumbtabindexformat}[3]{%
-\thumbtabformat{#2}{#3}}}{%
-\newcommand{\thumbtabindexformat}[3]{%
-\hyperlink{#1}{\thumbtabformat{#2}{#3}}}
-}
-\newcommand{\thumbtabformat}[2]{%
-\if@ttb@rotate
-\rotatebox{-90}{\parbox[c][\thumbtabwidth]{#2}{%
-\centering#1}}%
-\else
-\parbox[c][#2]{\thumbtabwidth}{%
-\centering\@ttb@stack{#1}}%
-\fi}
-\def\@flf@subsp#1 #2{%
-\expandafter\flf@ta\expandafter{\@flf@subsptext}%
-\flf@tb{#1}%
-\edef\@flf@subsptext{\the\flf@ta\the\flf@tb}%
-\def\@flf@tmp{#2}%
-\ifx\@flf@tmp\@nnil
- \let\@flf@donextsubsp=\@gobble
-\else
- \expandafter\flf@ta\expandafter{\@flf@subsptext}%
- \edef\@flf@subsptext{\the\flf@ta\noexpand\space}%
- \let\@flf@donextsubsp=\@flf@subsp
-\fi
-\@flf@donextsubsp{#2}%
-}
-\newcommand{\@ttb@stack}[1]{%
-\def\@flf@subsptext{}%
-\expandafter\@flf@subsp#1 \@nil\relax
-\begin{tabular}{l}%
-\expandafter\@@ttb@stack\@flf@subsptext\@nil\relax
-\end{tabular}}
-\def\@@ttb@stack#1#2{%
-\def\@flf@tmp{#1}%
-\ifx\@flf@tmp\@nnil
- \let\flf@next\relax
-\else
- #1\\%
- \def\@flf@tmp{#2}%
- \ifx\@nnil#2\relax
- \let\flf@next\@gobble
- \else
- \let\flf@next\@@ttb@stack
- \fi
-\fi
-\flf@next{#2}}
-\newcount\@greyscale
-\newcommand{\@@dothumbtabs}[2]{%
-\setlength{\@ff@tmp@y}{\textheight}%
-\addtolength{\@ff@tmp@y}{-#2}%
-\addtolength{\@ff@tmp@y}{-#1}%
-\computerightedgeodd{\@ff@tmp@x}%
-\addtolength{\@ff@tmp@x}{-\thumbtabwidth}%
-\computeleftedgeeven{\@ff@tmp@x@even}%
-\@ff@tmpN=0\relax
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
- \advance\@ff@tmpN by 1\relax
- \@greyscale=\@ff@tmpN\relax
- \multiply\@greyscale by 60\relax
- \divide\@greyscale by \c@maxthumbtabs
- \advance\@greyscale by 25\relax
- \edef\@ff@greyscale{0.\number\@greyscale}%
- \newdynamicframe[none]{\thumbtabwidth}{#2}%
- {\@ff@tmp@x}{\@ff@tmp@y}[thumbtab\number\@ff@tmpN]%
- \expandafter\global\expandafter
- \setlength\csname @df@\romannumeral\c@maxdynamic @evenx\endcsname
- {\@ff@tmp@x@even}%
- \ifthenelse{\boolean{@ttb@title}\and\boolean{@ttb@num}}{%
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabformat{%
- \csname thumbtab@num@\romannumeral\@ff@tmpN\endcsname\
- \csname thumbtab@title@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- }{%
- \if@ttb@title
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabformat{%
- \csname thumbtab@title@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- \fi
- \if@ttb@num
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabformat{%
- \csname thumbtab@num@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- \fi
- }%
- \expandafter
- \xdef\csname @df@backcol@\romannumeral\c@maxdynamic\endcsname
- {[gray]{\@ff@greyscale}}
- \newdynamicframe[none]{\thumbtabwidth}{#2}%
- {\@ff@tmp@x}{\@ff@tmp@y}[thumbtabindex\number\@ff@tmpN]%
- \expandafter\global\expandafter
- \setlength\csname @df@\romannumeral\c@maxdynamic @evenx\endcsname
- {\@ff@tmp@x@even}%
- \expandafter
- \ifthenelse{\boolean{@ttb@title}\and\boolean{@ttb@num}}{%
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabindexformat{%
- \csname thumbtab@link@\romannumeral\@ff@tmpN\endcsname}{%
- \csname thumbtab@num@\romannumeral\@ff@tmpN\endcsname\
- \csname thumbtab@title@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- }{%
- \if@ttb@title
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabindexformat{%
- \csname thumbtab@link@\romannumeral\@ff@tmpN\endcsname}{%
- \csname thumbtab@title@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- \fi
- \if@ttb@num
- \expandafter
- \xdef\csname @dynamicframe@\romannumeral\c@maxdynamic\endcsname{%
- \noexpand\thumbtabindexformat{%
- \csname thumbtab@link@\romannumeral\@ff@tmpN\endcsname}{%
- \csname thumbtab@num@\romannumeral\@ff@tmpN\endcsname
- }{#2}}%
- \fi
- }%
- \expandafter
- \xdef\csname @df@backcol@\romannumeral\c@maxdynamic\endcsname
- {[gray]{\@ff@greyscale}}
- \addtolength{\@ff@tmp@y}{-#2}%
-}%
-}%
-\newcommand*{\enablethumbtabs}{%
-\ifnum\c@maxthumbtabs>0
-\@ff@tmpN=0\relax
-\@dynamicframeid{thumbtab1}%
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
-\advance\@ff@tmpN by 1\relax
-\edef\@ff@pages{\csname thumbtab@pages@\romannumeral\@ff@tmpN\endcsname}%
-\@@setdynamicframe{\ff@id}{pages=\@ff@pages}%
-\advance\ff@id by 2\relax
-}%
-\else\PackageWarning{flowfram}{No thumb tabs defined}\fi}
-\newcommand*{\disablethumbtabs}{%
-\ifnum\c@maxthumbtabs>0
-\@ff@tmpN=0\relax
-\@dynamicframeid{thumbtab1}%
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
-\advance\@ff@tmpN by 1\relax
-\expandafter\xdef\csname @df@pages@\romannumeral\ff@id\endcsname
-{none}%
-\advance\ff@id by 1\relax
-\expandafter\xdef\csname @df@pages@\romannumeral\ff@id\endcsname
-{none}%
-\advance\ff@id by 1\relax
-}\fi}
-\newcommand*{\thumbtabindex}{%
-\ifnum\c@maxthumbtabs>0\relax
-\@ff@tmpN=0\relax
-\@dynamicframeid{thumbtabindex1}%
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
-\advance\@ff@tmpN by 1\relax
-\expandafter
-\xdef\csname @df@pages@\romannumeral\ff@id\endcsname{\c@page}%
-\edef\@ff@doafter{%
-\noexpand\afterpage{%
-\noexpand\setdynamicframe{\number\ff@id}{pages=none}}}
-\@ff@doafter
-\advance\ff@id by 2\relax
-}\fi}
-\newcommand{\setthumbtab}[2]{%
-\ifthenelse{\equal{#1}{all}}{%
-\@ff@tmpN=0\relax
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
-\advance\@ff@tmpN by 1\relax
-\@setthumbtab{\@ff@tmpN}{#2}}}{%
-\@for\@ttb@id:=#1\do{\@setthumbtab{\@ttb@id}{#2}}}}
-\newcommand{\@setthumbtab}[2]{%
-\ifthenelse{\(\c@maxthumbtabs<#1\) \or \(#1<1\)}{%
-\PackageWarning{flowfram}{Can't find thumbtab number '#1',
-ttb file may not be up-to-date}}{%
-\@dynamicframeid{thumbtab\number#1}%
-\@@setdynamicframe{\ff@id}{#2}%
-\@dynamicframeid{thumbtabindex\number#1}%
-\@@setdynamicframe{\ff@id}{#2}}}
-\newcommand{\setthumbtabindex}[2]{%
-\ifthenelse{\equal{#1}{all}}{%
-\@ff@tmpN=0\relax
-\whiledo{\@ff@tmpN<\c@maxthumbtabs}{%
-\advance\@ff@tmpN by 1\relax
-\@setthumbtabindex{\@ff@tmpN}{#2}}}{%
-\@for\@ttb@id:=#1\do{\@setthumbtabindex{\@ttb@id}{#2}}}}
-\newcommand{\@setthumbtabindex}[2]{%
-\ifthenelse{\(\c@maxthumbtabs<#1\) \or \(#1<1\)}{%
-\PackageWarning{flowfram}{Can't find thumbtab number `\number#1',
-ttb file may not be up-to-date}}{%
-\@dynamicframeid{thumbtabindex\number#1}%
-\@@setdynamicframe{\ff@id}{#2}}}
-\newcommand*{\tocandthumbtabindex}{%
-\aligntoctrue
-\tableofcontents
-\thumbtabindex
-\aligntocfalse
-}
-\newcommand*{\@ttb@minitoctype}{\@ttb@type}
-\let\@ttb@old@starttoc\@starttoc
-\newif\if@storetoc
-\@storetocfalse
-\renewcommand*{\@starttoc}[1]{%
-\if@storetoc
- \@ttb@storetoc{#1}%
-\else
- \@ttb@old@starttoc{#1}%
-\fi}
-\newcommand*{\@ttb@storetoc}[1]{%
-\begingroup
-\makeatletter
-\@storefileconts{\jobname.#1}%
-\if@filesw
- \expandafter\newwrite\csname tf@#1\endcsname
- \immediate\openout\csname tf@#1\endcsname\jobname.#1\relax
-\fi
-\@nobreakfalse
-\endgroup}
-\newcommand*{\@storefileconts}[1]{\IfFileExists{#1}{%
-\@@storefileconts\@filef@und}{%
-\PackageInfo{flowfram}{No file #1.}}}
-\newcount\c@maxtocunits
-\newcount\c@maxminitoc
-\newcommand{\@@storefileconts}[1]{%
-\@ifundefined{\@ttb@minitoctype}{\@ttb@minitoclevel=6\relax}{%
-\expandafter\@ttb@minitoclevel\expandafter
- =\csname @ttb@\@ttb@minitoctype @level\endcsname}%
-\newread\@ttb@toc
-\openin\@ttb@toc=#1\relax
-\c@maxtocunits=0\relax
-\c@maxminitoc=0\relax
-\whiledo{\not\boolean{eof}\@ttb@toc}{%
-\read\@ttb@toc to\tocline
-\@addtotoclist{\tocline}{\c@maxtocunits}%
-}%
-\closein\@ttb@toc}
-\newif\if@contsline
-\newcount\@ttb@level
-\newcount\@ttb@minitoclevel
-
-\newcommand{\@addtotoclist}[2]{%
-\expandafter\@checkcontentsline#1\end
-\if@contsline
-\expandafter\@gettype#1\end
-\ifthenelse{\equal{\@ttb@contstype}{\@ttb@type}}{%
-\global\advance#2 by 1\relax
-}{%
-}%
-\fi
-\@ifundefined{@toc@\romannumeral#2}{%
-\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}}%
-\if@minitoc
- \if@contsline
- \@ifundefined{\@ttb@contstype}{\@ttb@level=6}{%
- \@ttb@level=\csname @ttb@\@ttb@contstype @level\endcsname}%
- \relax
- \ifnum\@ttb@level=\@ttb@minitoclevel
- \global\advance\c@maxminitoc by 1\relax
- \expandafter
- \gdef\csname @minitoc@\romannumeral\c@maxminitoc\endcsname{}%
- \else
- \ifnum\@ttb@level>\@ttb@minitoclevel
- \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
-\fi
-}
-\def\@ttb@part@level{-1}
-\def\@ttb@chapter@level{0}
-\def\@ttb@section@level{1}
-\def\@ttb@subsection@level{2}
-\def\@ttb@subsubsection@level{3}
-\def\@ttb@paragraph@level{4}
-\def\@ttb@subparagraph@level{5}
-\long\def\@checkcontentsline#1#2\end{%
-\ifx#1\contentsline
- \@contslinetrue
-\else
- \@contslinefalse
-\fi}
-\def\@gettype\contentsline#1#2\end{%
-\def\@ttb@contstype{#1}}
-\newif\ifaligntoc
-\aligntocfalse
-
-\let\@ttb@old@tableofcontents\tableofcontents
-\renewcommand{\tableofcontents}{%
-\@storetoctrue
-\@ttb@old@tableofcontents
-\ifaligntoc
- \@printalignedtoc
-\else
- \@printtoc
-\fi
-\@storetocfalse
-\global\c@minitoc=0\relax}
-\newlength\beforeminitocskip
-\setlength{\beforeminitocskip}{0pt}
-\newlength\afterminitocskip
-\setlength{\afterminitocskip}{\baselineskip}
-\newcommand*{\dominitoc}[1]{%
-\if@minitoc \@dominitoc{#1}\fi}
-\newcommand*{\@dominitoc}[1]{\@@dominitoc{#1}}
-\newcommand{\minitocstyle}[1]{\normalfont\normalsize\normalcolor
-#1}
-\newcommand*{\@@dominitoc}[1]{%
-{\minitocstyle{%
-\vskip\beforeminitocskip
-\csname @minitoc@\romannumeral#1\endcsname}}
-\vskip\afterminitocskip}
-\newcommand*{\appenddfminitoc}{%
-\renewcommand{\beforeminitocskip}{\baselineskip}%
-\@ifstar\@sappendminitocdf\@appendminitocdf}
-\newcommand*{\@sappendminitocdf}[1]{%
-\renewcommand{\@dominitoc}[1]{%
-\@sappenddynamic{#1}{\@@dominitoc{##1}}}}
-\newcommand*{\@appendminitocdf}[1]{%
-\renewcommand{\@dominitoc}[1]{%
-\@appenddynamic{#1}{\@@dominitoc{##1}}}}
-\newcommand*{\@printtoc}{%
-\@colN=0\relax
-\csname @toc@\romannumeral\@colN\endcsname
-\whiledo{\@colN<\c@maxtocunits}{%
-\advance\@colN by 1\relax
-\csname @toc@\romannumeral\@colN\endcsname}}
-\newcommand{\@printalignedtoc}{%
-\@ff@tmpN=0\relax
-\@ifundefined{@toc@\romannumeral\@ff@tmpN}{%
-}{%
-\csname @toc@\romannumeral\@ff@tmpN\endcsname
-\par\noindent\hrulefill
-}%
-\whiledo{\@ff@tmpN<\c@maxtocunits}{%
-\advance\@ff@tmpN by 1\relax
-\ifnum\@ff@tmpN>\c@maxthumbtabs
-\csname @toc@\romannumeral\@ff@tmpN\endcsname
-\else
-\@dynamicframeid{thumbtabindex\number\@ff@tmpN}%
-\expandafter\expandafter\expandafter
-\@ff@getstaticpos\csname @df@dim@\romannumeral\ff@id\endcsname
-\vbox to \@ff@tmp@y{%
-\noindent\parbox{\linewidth}{%
-\csname @toc@\romannumeral\@ff@tmpN\endcsname}%
-\vfill
-\par\noindent\hrulefill
-}%
-\fi}}
-\newcounter{minitoc}
-\newif\if@minitoc
-\@minitocfalse
-
-\newcommand*{\enableminitoc}[1][\@ttb@type]{%
-\@minitoctrue
-\setcounter{minitoc}{0}%
-\@ifundefined{#1}{%
-\PackageError{flowfram}{Sectioning type `#1' not defined}{}}{%
-\renewcommand{\@ttb@minitoctype}{#1}%
-\ifthenelse{\equal{#1}{chapter}}{\@makeminitocchapter}{%
-\ifthenelse{\equal{#1}{part}}{\@makeminitocpart}{%
-\@makeminitocsection{#1}}}}%
-}
-\@onlypreamble{\enableminitoc}
-\newcommand{\@makeminitocchapter}{
-\let\@mtoc@old@chapter\@chapter
-\def\@chapter[##1]##2{%
-\@mtoc@old@chapter[##1]{##2}%
-\stepcounter{minitoc}%
-\dominitoc{\c@minitoc}%
-\@afterheading
-}}
-\newcommand{\@makeminitocpart}{
-\@ifundefined{@endpart}{%
-\let\@mtoc@old@part\@part
-\def\@part[##1]##2{%
-\@mtoc@old@part[##1]{##2}%
-\stepcounter{minitoc}%
-\dominitoc{\c@minitoc}%
-\@afterheading
-}}{%
-\let\@mtoc@old@endpart\@endpart
-\def\@endpart{%
-\stepcounter{minitoc}%
-\dominitoc{\c@minitoc}%
-\@mtoc@old@endpart
-}}}
-\newcommand{\@makeminitocsection}[1]{%
-\let\@mtoc@old@sect=\@sect
-\def\@sect##1##2##3##4##5##6[##7]##8{%
-\@mtoc@old@sect{##1}{##2}{##3}{##4}{##5}{##6}[##7]{##8}%
-\ifthenelse{\equal{##1}{#1}}{%
-\stepcounter{minitoc}%
-\dominitoc{\c@minitoc}\@afterheading}{}%
-}}
-\endinput
-%%
-%% End of file `flowfram.sty'.
diff --git a/Master/texmf-dist/doc/latex/flowfram/news.pdf b/Master/texmf-dist/doc/latex/flowfram/news.pdf
deleted file mode 100644
index c3d0af301ee..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/news.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/flowfram/news.tex b/Master/texmf-dist/doc/latex/flowfram/news.tex
deleted file mode 100644
index a8ff83b3922..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/news.tex
+++ /dev/null
@@ -1,204 +0,0 @@
-\documentclass{article}
-
-\usepackage{color}
-\usepackage{flowfram}
-\usepackage[a5paper,top=10mm,bottom=10mm,margin=10mm]{geometry}
-\usepackage{graphicx}
-
-% define lengths to help compute positions
-\newlength\leftX
-\newlength\leftY
-\newlength\leftH
-\newlength\leftW
-
-\newlength\rightX
-\newlength\rightY
-\newlength\rightH
-\newlength\rightW
-
-% Create a static frame to put title in
-\setlength{\leftH}{2cm}
-\setlength{\leftY}{\textheight}
-\addtolength{\leftY}{-\leftH}
-
-\newstaticframe[1]{\textwidth}{\leftH}{0pt}{\leftY}[title]
-
-% First flow frame.
-
-\setlength{\leftH}{7cm}
-\adjustheight{\leftH}
-\addtolength{\leftY}{-\leftH}
-\setlength{\leftW}{0.5\textwidth}
-
-\newflowframe[1]{\leftW}{\leftH}{0pt}{\leftY}
-
-\setlength{\rightH}{\leftH}
-\setlength{\rightY}{\leftY}
-
-% Second flow frame
-
-\setlength{\leftH}{3.5cm}
-\adjustheight{\leftH}
-\addtolength{\leftY}{-\leftH}
-
-\newflowframe[1]{\textwidth}{\leftH}{0pt}{\leftY}
-
-% Right hand flow frame
-
-\setlength{\rightX}{\leftW}
-\addtolength{\rightX}{\columnsep}
-\setlength{\rightW}{\textwidth}
-\addtolength{\rightW}{-\rightX}
-
-\newflowframe[1]{\rightW}{\rightH}{\rightX}{\rightY}
-
-% insert vertical line between left and right flow frames
-
-\insertvrule{flow}{1}{flow}{3}
-
-% insert horizontal line between flow frames 2 and 3
-% don't want it to go under frame 1 so shift the starting
-% position
-
-\addtolength{\rightX}{-0.5\columnsep}
-\addtolength{\rightX}{-0.5\columnseprule}
-\inserthrule[-\rightX]{flow}{3}{flow}{2}
-
-% egg picture
-
-\addtolength{\rightY}{\rightH}
-\addtolength{\rightY}{-10mm}
-\setlength{\rightW}{0.75in}
-\setlength{\rightH}{0.8in}
-\addtolength{\rightY}{-\rightH}
-\setlength{\rightX}{\textwidth}
-\addtolength{\rightX}{-\rightW}
-\newstaticframe[1]{\rightW}{\rightH}{\rightX}{\rightY}[egg]
-
-% set contents
-\setstaticcontents*{egg}{\includegraphics[scale=0.75]{egg}}
-
-% middle heading
-
-\setlength{\leftH}{2cm}
-\addtolength{\leftY}{-\leftH}
-
-\newstaticframe[1]{\textwidth}{\leftH}{0pt}{\leftY}[midhead]
-
-% insert horizontal line
-\inserthrule*{flow}{2}{static}{midhead}
-
-% bottom left flow frame
-
-\setlength{\leftH}{\leftY}
-\adjustheight{\leftH}
-\setlength{\leftW}{0.6\textwidth}
-
-\newflowframe[1]{\leftW}{\leftH}{0pt}{0pt}
-
-% bottom right flow frame
-
-\setlength{\rightX}{\leftW}
-\addtolength{\rightX}{\columnsep}
-\setlength{\rightW}{\textwidth}
-\addtolength{\rightW}{-\rightX}
-
-\newflowframe[1]{\rightW}{\leftH}{\rightX}{0pt}
-
-% static frame for sheep picture
-
-\newstaticframe[1]{0.8in}{0.8in}{0pt}{0pt}[sheep]
-
-% set contents
-\setstaticcontents*{sheep}{\includegraphics[scale=0.75]{sheep}}
-
-\onecolumn[>1] % for any text that falls off the last page
-
-\setcounter{secnumdepth}{0}
-\pagestyle{empty}
-
-\begin{document}
-
-\begin{staticcontents*}{title}
-\begin{center}
-\bfseries\Huge
-Fairy Tale Times
-\end{center}
-\hfill Issue 1. 20 November 2005.
-\end{staticcontents*}
-
-\section{Killer Wolf on the Loose}
-
-The authorites are warning of a killer wolf on the
-loose. He has so far devoured an old grandmother and
-two pig brothers. He is described as being furry with
-big eyes and big teeth.
-
-On Monday this week he broke into a house, and devoured
-an old lady. He then disguised himself as the old lady
-in order to deceive her granddaughter. Luckily for the little
-girl a woodsman arrived in time to rescue her. Parents are
-being cautioned not to let their children wander about on
-their own, and to remind them not to talk to strangers.\par
-\framebreak
-
-The next day the wolf struck again, this time targeting two
-pig brothers who had most incautiously made their dwellings
-on the cheap using inadequate materials. The wolf also made
-an attempt on the third pig brother, but was unable to break
-into his house.
-
-Police are appealing to the public for witnesses and remind
-people to keep their doors securely fastened at all times.
-
-``Always ask to see identification,'' said one police advisor,
-``and invest in improving the general security of your property.''
-
-\framebreak
-\section{Tragic Wall Accident}
-
-{\parshape=6 0pt 13em 0pt 13em 0pt 11em 0pt 11em 0pt 13em
-0pt 17em
-An egg person tragically fell from a six foot wall yesterday
-afternoon and was smash\-ed to pieces. The king's cavalry rushed
-to the scene, but regretted that they were unable to help him.
-\par}
-
-Humpty Dumpty was believed to be sitting
-on the wall when he fell. Police have ruled out foul play, but
-are advising people not to play on high walls, particularly
-those vulnerable members of the population suffering from
-eggshell syndrome.
-
-\begin{staticcontents*}{midhead}
-\section{Relief as Missing Sheep Finally Return Home}
-\end{staticcontents*}
-
-\framebreak
-There was much celebration yesterday morning when Little Bo
-Peep's sheep finally returned home. They had been missing
-for more than a week.
-
-{\parshape=8 0pt \linewidth 0pt \linewidth 0pt \linewidth
-0pt \linewidth 40pt 180pt 36pt 184pt 29pt 191pt
-0pt \linewidth
-``I just didn't know where to find them,'' the shepherdess
-stated, ``but I was told to leave them alone and they'd come
-home.'' Unusual advice perhaps, but it seems to have worked
-as they did indeed come home. Eye witnesses reported that their
-tails were wagging behind them.
-``I'm just so happy they've come home,'' Little Bo Peep said
-in a press conference yesterday\framebreak}afternoon.
-The sheep themselves made no comment, and police are still
-trying to determine what happened to them.
-
-\noindent\hrulefill
-
-This is a sample document illustrating the
-flowfram package. It uses \TeX's \verb|\parshape| command
-to create irregularly shaped paragraphs.
-
-\hfill Nicola Talbot
-\framebreak
-
-\end{document}
diff --git a/Master/texmf-dist/doc/latex/flowfram/news2.pdf b/Master/texmf-dist/doc/latex/flowfram/news2.pdf
deleted file mode 100644
index a861bae1601..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/news2.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/flowfram/news2.tex b/Master/texmf-dist/doc/latex/flowfram/news2.tex
deleted file mode 100644
index 125d5d3cd58..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/news2.tex
+++ /dev/null
@@ -1,231 +0,0 @@
-\documentclass[12pt]{article}
-
-\usepackage{graphicx}
-\usepackage{color}
-\usepackage{flowfram}
-\usepackage[a4paper,margin=20mm]{geometry}
-
-% define lengths to help compute positions
-\newlength\leftX
-\newlength\leftY
-\newlength\leftH
-\newlength\leftW
-
-\newlength\rightX
-\newlength\rightY
-\newlength\rightH
-\newlength\rightW
-
-% Create a static frame to put title in
-\setlength{\leftH}{3cm}
-\setlength{\leftY}{\textheight}
-\addtolength{\leftY}{-\leftH}
-
-\newstaticframe[1]{\textwidth}{\leftH}{0pt}{\leftY}[title]
-
-% Create left hand frame. This will have an L shape
-
-\setlength{\leftH}{13cm}
-\adjustheight{\leftH}
-\addtolength{\leftY}{-\leftH}
-
-\newstaticframe[1]{\textwidth}{\leftH}{0pt}{\leftY}[L]
-\setstaticframe*{L}{shape={\parshape=24
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt 0.5\linewidth
-0pt \linewidth
-0pt \linewidth
-0pt \linewidth
-0pt \linewidth
-0pt \linewidth
-0pt \linewidth
-0pt \linewidth
-}}
-
-% egg picture
-
-\addtolength{\rightY}{\leftY}
-\addtolength{\rightY}{73mm}
-\setlength{\rightW}{0.9in}
-\setlength{\rightH}{1.5in}
-\setlength{\rightX}{\textwidth}
-\addtolength{\rightX}{-\rightW}
-\newstaticframe[1]{\rightW}{\rightH}{\rightX}{\rightY}[egg]
-
-% set contents
-\setstaticcontents*{egg}{\includegraphics[scale=0.9]{egg}}
-
-% Right hand static frame
-
-\setlength{\rightX}{0.5\textwidth}
-\addtolength{\rightX}{\columnsep}
-\setlength{\rightW}{\textwidth}
-\addtolength{\rightW}{-\rightX}
-\setlength{\rightY}{\leftY}
-\addtolength{\rightY}{2.8cm}
-\setlength{\rightH}{\leftH}
-\addtolength{\rightH}{-2.8cm}
-
-\newstaticframe[1]{\rightW}{\rightH}{\rightX}{\rightY}[right]
-
-\setstaticframe*{right}{shape={\parshape=15
-0pt \linewidth
-0pt \linewidth
-0pt \linewidth
-0pt 0.75\linewidth
-0pt 0.65\linewidth
-0pt 0.75\linewidth
-0pt 0.8\linewidth
-0pt 0.8\linewidth
-0pt \linewidth
-0pt \linewidth
-0pt \linewidth
-0pt \linewidth
-0pt \linewidth
-0pt \linewidth
-0pt \linewidth
-}}
-
-% insert vertical and horizontal rules, can't use
-% \insertrule as left hand
-% frame is actually the width of the typeblock
-\addtolength{\rightX}{-0.5\columnsep}
-\newstaticframe[1]{0pt}{\rightH}{\rightX}{\rightY}[Lrule]
-\setstaticcontents*{Lrule}{\makebox[0pt][l]{%
-\rule{\columnseprule}{\rightH}\rule{\rightW}{\columnseprule}}}
-
-% middle heading
-
-\setlength{\leftH}{2cm}
-\addtolength{\leftY}{-\leftH}
-
-\newstaticframe[1]{\textwidth}{\leftH}{0pt}{\leftY}[midhead]
-
-% insert horizontal rule
-\inserthrule*{static}{L}{static}{midhead}
-
-% flow frames
-\twocolumninarea{\textwidth}{\leftY}{0pt}{0pt}
-
-% static frame for sheep picture
-
-\newstaticframe[1]{1.6in}{1.6in}{0pt}{0pt}[sheep]
-
-% set contents
-\setstaticcontents*{sheep}{\includegraphics[scale=1.2]{sheep}}
-
-\setcounter{secnumdepth}{0}
-\setlength{\sdfparindent}{\parindent}
-
-\begin{document}
-\begin{staticcontents*}{title}
-\begin{center}
-\bfseries\Huge
-Fairy Tale Times
-\end{center}
-\hfill Issue 2. 7 December 2005.
-\end{staticcontents*}
-
-\begin{staticcontents*}{L}
-\section{Killer Wolf on the Loose}
-
-The authorites are warning of a killer wolf on the
-loose. He has so far devoured an old grandmother and
-two pig brothers. He is described as being furry with
-big eyes and big teeth.
-
-On Monday this week he broke into a house, and devoured
-an old lady. He then disguised himself as the old lady
-in order to deceive her granddaughter. Luckily for the little
-girl a woodsman arrived in time to rescue her. Parents are
-being cautioned not to let their children wander about on
-their own, and to remind them not to talk to strangers.
-
-The next day the wolf struck again, this time targeting two
-pig brothers who had most incautiously made their dwellings
-on the cheap using inadequate materials. The wolf also made
-an attempt on the third pig brother, but was unable to break
-into his house.
-
-Police are appealing to the public for witnesses and remind
-people to keep their doors securely fastened at all times.
-``Always ask to see identification,'' said one police advisor,
-``and invest in improving the general security of your property.''
-\end{staticcontents*}
-
-\begin{staticcontents*}{right}
-\section{Tragic Wall Accident}
-
-An egg person tragically fell from a six foot wall yesterday
-afternoon and was smash\-ed to pieces. The king's cavalry rushed
-to the scene, but regretted that they were unable to help him.
-
-Humpty Dumpty was believed to be sitting on the wall when he fell. Police have ruled out foul play, but
-are advising people not to play on high walls, particularly
-those vulnerable members of the population suffering from
-eggshell syndrome.
-
-\small\em
-%Wall related incidents this year: page 3
-%
-Exclusive interview with one of the King's men on page 6
-\end{staticcontents*}
-
-\begin{staticcontents*}{midhead}
-\section{Relief as Missing Sheep Finally Return Home}
-\end{staticcontents*}
-
-There was much celebration yesterday morning when Little Bo
-Peep's sheep finally returned home. They had been missing
-for more than a week.
-
-``I just didn't know where to find them,'' the shepherdess
-stated, ``but I was told to leave them alone and they'd come
-home.''
-
-\parshape=8
-0pt \linewidth
-0pt \linewidth
-0.3\linewidth 0.7\linewidth
-0.3\linewidth 0.7\linewidth
-0.25\linewidth 0.75\linewidth
-0.25\linewidth 0.75\linewidth
-0pt \linewidth
-0pt \linewidth
-Unusual advice perhaps, but it seems to have worked
-as they did indeed come home. Eye witnesses reported that their
-tails were wagging behind them.
-``I'm just so happy they've come home,'' Little Bo Peep said
-in a press conference yesterday afternoon.
-The sheep themselves made no comment, and police are%
-\framebreak\parshape=0
-still trying to determine what happened to them.
-The big bad wolf is reportedly helping them with their inquiries.
-
-\noindent\hrulefill
-
-This is a sample document illustrating the
-flowfram package. It uses \TeX's \verb|\parshape| command
-to create irregularly shaped paragraphs. This can be a complicated
-and somewhat tiresome task, and is generally not recommended.
-Using the shapepar package provides you with more intricate
-shapes, but as its documentation says, it is not intended
-for use in large documents.
-
-\hfill Nicola Talbot
-\end{document}
diff --git a/Master/texmf-dist/doc/latex/flowfram/poster.pdf b/Master/texmf-dist/doc/latex/flowfram/poster.pdf
deleted file mode 100644
index d2af4baaae3..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/poster.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/flowfram/poster.tex b/Master/texmf-dist/doc/latex/flowfram/poster.tex
deleted file mode 100644
index 05fe2131f7d..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/poster.tex
+++ /dev/null
@@ -1,363 +0,0 @@
-\documentclass[a0]{a0poster}
-
-\usepackage{color}
-\usepackage{times}
-\usepackage{courier}
-\usepackage{helvet}
-\usepackage{flowfram}
-
-% set up frames
-
-\setlength{\columnsep}{2cm}
-
-% Base the page layout on 4 column with static header.
-% The static frame has height = 0.2\textheight
-\NcolumnStop{4}{0.2\textheight}
-% give the static frame a label to make it easier to keep track of
-\setstaticframe{\value{maxstatic}}{label={title},backcolor=[cmyk]{0.64,0,0.95,0.40},textcolor=white}
-
-% Insert a vertical line between flow frames 2 and 3:
-\insertvrule{flow}{2}{flow}{3}
-
-% On the first page, replace last two columns with
-% 2 columns and a static underneath
-\setflowframe{3,4}{pages={>1}}
-
-\computeflowframearea{3,4}
-\twocolumnSbottominarea[1]{0.5\ffareaheight}{\ffareawidth}{\ffareaheight}{\ffareax}{\ffareay}
-\setstaticframe{\value{maxstatic}}{label={info},backcolor=[cmyk]{0.26,0,0.76,0},clear}
-
-% insert a horizontal rule between flow frame 5 and static
-% frame 5
-\inserthrule*[0.5\columnsep]{flow}{5}{static}{info}
-
-\setallflowframes{backcolor=[cmyk]{0.15,0,0.69,0}}
-
-\newcommand{\sty}[1]{\textsf{#1}}
-\newcommand{\env}[1]{\textsf{#1}}
-\newcommand{\cmdname}[1]{\texttt{\symbol{92}#1}}
-\newcommand{\meta}[1]{\textnormal{\textless\textit{#1}\textgreater}}
-
-%\raggedright
-%\setlength{\parindent}{15pt}
-
-\begin{document}
-\begin{staticcontents*}{title}
-\begin{center}
-\bfseries\veryHuge flowframe.sty : Creating Posters, Magazines or Brochures in \LaTeX
-\vskip1cm
-\huge Nicola L. C. Talbot
-\vskip2ex
-\normalsize \verb"http://theoval.cmp.uea.ac.uk/~nlct/"
-\end{center}
-\end{staticcontents*}
-
-\pagestyle{empty}
-
-\begin{staticcontents*}{info}
-\begin{staticfigure}
-
-\begin{verbatim}
- % Make the distance between columns = 1.5cm
- \setlength{\columnsep}{2cm}
-
- % Make a 4 column layout with a static frame on top.
- % The static frame has height = 0.2\textheight
- \NcolumnStop{4}{0.2\textheight}
-
- % give the static frame a label to make it easier to keep track of
- \setstaticframe{\value{maxstatic}}{label={title},backcolor=[cmyk]{0.64,0,0.95,0.40},textcolor=white}
-
- % On the first page, replace the 3rd and 4th columns
- % with two shorter columns with a static frame underneath
- \setflowframe{3,4}{pages={>1}}
-
- % The area taken up by the 3rd and 4th columns is given by
- \computeflowframearea{3,4}
-
- % Set up new frames in this area
- \twocolumnSbottominarea[1]{0.5}{\ffareawidth}{\ffareaheight}{\ffareax}{\ffareay}
-
- % Assign a label to the last static frame to be created, and set background colour
- \setstaticframe{\value{maxstatic}}{label={info},backcolor=[cmyk]{0.26,0,0.76,0}}
-
- % Set the background colour for all flow frames
- \setallflowframes{backcolor=[cmyk]{0.15,0,0.69,0}}
-\end{verbatim}
-
-\caption{The commands used to define the frames for this document}
-\protect\label{fig:thisdoc}
-\end{staticfigure}
-\end{staticcontents*}
-
-This is a modified version of the manual for the \sty{flowfram}
-package. It is intended to illustrated what can be done. See the
-full manual (ffuserguide.pdf) for
-a comprehensive description, as this may now be out of date. The commands used to define the frames for
-this document are shown in Figure~\ref{fig:thisdoc}.
-If the columns are very narrow, it may be better to
-use \cmdname{raggedright}, otherwise \TeX\ may have a
-problem working out the line breaks.
-
-\section{Introduction}
-
-The \sty{flowfram} package is designed to enable you to create
-frames in a document such that the
-contents of the \env{document} environment flow from one
-frame to the next in the order that they were defined.
-This is useful for creating posters
-or magazines or any other form of document that does not
-conform to the standard one or two column layout.
-
-\section{Setting up Frames}
-
-The \sty{flowfram} package provides three types of frame:
-{flow frames}, {static
-frames} and {dynamic frames}.
-
-\subsection{Flow Frames}
-
-The flow frame is the principle type of frame.
-The text of the \env{document} environment will flow from
-one frame to the next in order of definition. Each
-flow frame has an associated width, height,
-position on the page, and optionally a border.
-
-It is recommended that all the flow frames in a document
-have the same width, otherwise problems may occur
-when a paragraph spans to flow frames of unequal
-widths. This is because \TeX's output routine does not
-register the change in \cmdname{hsize} until it reaches
-a paragraph break. If it is absolutely necessary for
-flow frames to have unequal widths, judicious use of
-\cmdname{framebreak} is required.
-
-\subsection{Static Frames}
-
-A static frame is a rectangular area in which text neither
-flows into, nor flows out of. The contents must be set
-explicitly, and once set, the contents of the static frame will
-remain the same on each page until it is explicitly
-changed. Thus, a static frame can be used, for example, to make
-a company logo appear in the same place on every page.
-
-\subsection{Dynamic Frames}
-
-A dynamic frame is similar to a static frame, but its contents
-are re-typeset on each page. (A static frame stores its
-contents in a savebox, whereas a dynamic frame stores its
-contents in a macro).
-
-\section{Frame Attributes}
-\label{sec:modattr}
-
-Once you have defined the {flow frames}, {static frames} and
-{dynamic frames}, their attributes can be changed.
-The three types of frame mostly have the
-same set of attributes, but some are specific to a certain type.
-The available attributes are as follows
-(\textsuperscript{\textbf{F}} indicates the key is
-only available for {flow frames},
-\textsuperscript{\textbf{S}} indicates the key is only available
-for {static frames}
-and \textsuperscript{\textbf{D}} indicates the key
-is only available for {dynamic frames}):
-
-\begin{description}
-\item[width=\meta{length}] The width of the frame.
-
-\item[height=\meta{length}] The height of the frame.
-
-\item[x=\meta{length}] The x-coordinate of the frame.
-
-\item[y=\meta{length}] The y-coordinate of the frame.
-
-\item[border=\meta{style}] The style of the border around the
-frame, this can take the values: \texttt{none} (no border),
-\texttt{plain} (plain border) or the name of a \LaTeX\
-frame making command without the preceding backslash.
-The value \texttt{fbox} is equivalent to \texttt{plain}.
-
-\item[offset=\meta{offset}] The border offset, if it is a
-user-defined border. This is the distance from the outer
-edge of the left hand border to the left edge of the
-bounding box of the text inside the border. The \sty{flowfram}
-package is able to compute the border for
-known frame making commands.
-If you define your own frame making command, you may need to
-specify the offset explicitly, or the frames
-may end up shifted to the right or left.
-
-\item[bordercolor=\meta{colour}] The colour of the border
-if you are using a standard frame making command.
-The colour can either be specified as, e.g.\ \texttt{green},
-or including the colour model, e.g. \verb/[rgb]{0,1,0}/.
-
-\item[textcolor=\meta{colour}] The text colour for that
-frame. Again, the colour can either be specified as,
-e.g.\ \texttt{green}, or including the colour model,
-e.g. \verb/[rgb]{0,1,0}/.
-
-\item[pages=\meta{page list}] The {list of
-pages} for which the frame
-should appear. This can either have the values: \texttt{all},
-\texttt{even}, \texttt{odd} or \texttt{none} (the latter
-removes the frame from that point on---useful if you
-have multiple pages with the same number), or it can be a
-comma-separated list of single pages, or
-{page ranges}.
-
-\item[margin=\meta{side}\textsuperscript{F}] The side of
-the flow frame that its corresponding margin should go on. This
-can take the values \texttt{left} or \texttt{right}.
-
-\item[clear=\meta{boolean}\textsuperscript{S}] If this value
-is set, the static frame will be cleared at the start of the
-next page.
-
-\item[style=\meta{cmd}\textsuperscript{D}] This should be
-the name of a command \emph{without} the preceding backslash,
-to be applied to the contents of the specified dynamic frame.
-The command may either be a declaration, for example \verb/style=large/
-which will set the contents of all the dynamic frames in a
-large font, or it can be a command that takes a single argument,
-for example \verb/style=textbf/
-which will make the text for all the dynamic frames come out in
-bold. To unset a style, do \verb/style=none/.
-
-\end{description}
-
-\section{Miscellaneous}
-
-\subsection{Page Layout}
-
-The \sty{flowfram} package has the package option \texttt{draft}
-which will draw the {bounding boxes} for
-each frame defined. At the bottom right of each
-bounding box (except for the bounding box denoting the
-typeblock), a marker will be shown to indictate the type
-of frame, its IDN and its IDL.
-
-You can see the layout for the current page (irrespective of
-whether or not the \texttt{draft} option has been set) using
-the command:\newline
-\cmdname{flowframeshowlayout}
-
-The headers and footers will appear as usual (but will not
-be shown in draft mode), according to the format given by
-\cmdname{pagestyle}.
-
-\subsection{Frame Stacking Order}
-
-The material on each page is placed in the following order:
-\begin{enumerate}
-\item Each static frame defined for that page in ascending
-order of IDN.
-
-\item Each flow frame defined for that page in ascending
-order of IDN.
-
-\item Each dynamic frame defined for that page in ascending
-order of IDN.
-
-\item {Bounding boxes} if the \texttt{draft}
-package option has been used.
-\end{enumerate}
-
-This ordering can be used to determine if you want something
-to overlay or underlay everything else on the page.
-
-\subsection{Prematurely Ending a Flow Frame}
-
-You can force text to move immediately to the next defined
-flow frame using one of the standard \LaTeX\ page breaking commands
-which work in an analogous way to the way they
-work in standard two column mode.
-
-The command \cmdname{framebreak} is provided for situations
-where a paragraph spans two flow frames
-of different widths, as \TeX's output routine does not
-adjust to the new value of \cmdname{hsize} until the last
-paragraph of the previous frame has ended. As a
-result, the end of the paragraph at the beginning of the new
-flow frame retains the width of the previous flow frame.
-
-If you want to start a new page, rather than simply move to the
-next frame, use the command\newline
-\cmdname{finishthispage}.
-
-\subsection{Floats}
-
-Since floats (such as figures and tables) can only go in
-{flow frames}, this package provides
-the additional environments:
-\env{staticfigure} and
-\env{statictable} which can be used in static frames
-and dynamic frames. Unlike their \env{figure} and
-\env{table} counterparts, they are fixed in place, and
-so do not take an optional placement specifier. The
-\cmdname{caption} and \cmdname{label} commands can
-be used within \env{staticfigure} and \env{statictable} as
-usual.
-
-The standard \env{figure} and \env{table} commands will
-behave as usual in the flow frames, but their starred versions,
-\env{figure*} and \env{table*} behave no differently
-from \env{figure} and \env{table}.
-
-\subsection{Global Values}
-
-The following macros can be changed using \cmdname{renewcommand}:
-
-\begin{itemize}
-\item \cmdname{setffdraftcolor}
-
-This sets the colour of the bounding box
-when it is displayed in draft mode.
-
-\item
-\cmdname{setffdrafttypeblockcolor}
-
-This sets the colour of
-the bounding box of the typeblock when it is displayed
-in draft mode.
-
-\item \cmdname{fflabelfont}
-
-This sets the font size for the bounding box markers in
-draft mode.
-
-\end{itemize}
-
-The following are lengths, which can be changed using
-\cmdname{setlength}:
-
-\begin{itemize}
-\item \cmdname{fflabelsep}
-
-This is the distance from the right hand side of the
-bounding box at which to place the bounding box marker.
-
-\item \cmdname{flowframesep}
-
-This is the gap between the text of the frame and
-its border, for the standard border types.
-
-\item \cmdname{flowframerule}
-
-This is the width of the frame's border, if using
-a border given by a frame making command that uses \cmdname{fboxsep}
-to set its border width.
-
-\item \cmdname{columnsep}
-
-This is the horizontal distance between flow frames when using one of the
-\cmdname{Ncolumn} type of commands
-
-\item \cmdname{vcolumnsep}
-
-This is the vertical distance between the flow frames and the static or
-dynamic frame when using one of the \cmdname{Ncolumntop} type of commands.
-\end{itemize}
-
-\end{document}
diff --git a/Master/texmf-dist/doc/latex/flowfram/samples/brochure.pdf b/Master/texmf-dist/doc/latex/flowfram/samples/brochure.pdf
index 7c9b9a491c6..4e37ce2e49b 100644
--- a/Master/texmf-dist/doc/latex/flowfram/samples/brochure.pdf
+++ b/Master/texmf-dist/doc/latex/flowfram/samples/brochure.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/flowfram/samples/news.pdf b/Master/texmf-dist/doc/latex/flowfram/samples/news.pdf
index c3d0af301ee..d36d46ddccd 100644
--- a/Master/texmf-dist/doc/latex/flowfram/samples/news.pdf
+++ b/Master/texmf-dist/doc/latex/flowfram/samples/news.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/flowfram/samples/news2.pdf b/Master/texmf-dist/doc/latex/flowfram/samples/news2.pdf
index a861bae1601..62df0e2b448 100644
--- a/Master/texmf-dist/doc/latex/flowfram/samples/news2.pdf
+++ b/Master/texmf-dist/doc/latex/flowfram/samples/news2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/flowfram/samples/poster.pdf b/Master/texmf-dist/doc/latex/flowfram/samples/poster.pdf
index d2af4baaae3..ea499d7b56f 100644
--- a/Master/texmf-dist/doc/latex/flowfram/samples/poster.pdf
+++ b/Master/texmf-dist/doc/latex/flowfram/samples/poster.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/flowfram/sheep.eps b/Master/texmf-dist/doc/latex/flowfram/sheep.eps
deleted file mode 100644
index 525aec2992e..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/sheep.eps
+++ /dev/null
@@ -1,135 +0,0 @@
-%!PS-Adobe-1.0 EPSF-3.0
-%%BoundingBox: 0 796 58 842
-%%Creator: KDE 3.5.3-0.2.fc4 Red Hat
-%%CreationDate: Mon Aug 20 21:24:28 2007
-%%Orientation: Portrait
-%%Pages: 1
-%%DocumentFonts:
-
-%%EndComments
-%%BeginProlog
-% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
-% that is directly related to this document. For other use of this prolog,
-% see your licensing agreement for Qt.
-/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
-/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
-/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
-/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
-pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
-d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
-false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
-0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
-LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
-gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
-SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
-bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
-0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
-exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
-ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
-eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
-64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
-i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
-putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
-1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
-/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
-colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
-QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
-QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
-add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
-{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
-imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
-where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
-/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
-DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
-/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
-h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
-DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
-pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
-WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
-1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
-if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
-2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
-RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
-exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
-BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
-add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
-6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
-}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
-D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
-add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
-ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
-0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
-MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
-{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
-ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
-D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
-w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
-200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
-x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
--90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
-ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
-NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
-D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
-x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
-ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
-div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
-B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
-/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
-exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
--1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
-/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
-maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
-fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
-dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
-definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
-D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
-MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
-stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
-1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
-exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
-showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
-pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
-/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
-ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
-D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
-
-/LArr[ [] [] [ 10.000 3.000 ] [ 3.000 10.000 ] [ 3.000 3.000 ] [ 3.000 3.000 ] [ 5.000 3.000 3.000 3.000 ] [ 3.000 5.000 3.000 3.000 ] [ 5.000 3.000 3.000 3.000 3.000 ] [ 3.000 5.000 3.000 3.000 3.000 3.000 ] ] d
-/pageinit {
-% 210*297mm (portrait)
-0 842 translate 1 -1 scale/defM matrix CM d } d
-%%EndProlog
-%%BeginSetup
-%%EndSetup
-%%Page: 1 1
-%%BeginPageSetup
-QI
-%%EndPageSetup
-[1 0 0 1 0 0]ST
-CLSTART
-0 0 58 46 ACR
-CLEND
-B P1
-NB
-W BC
-/sl 2668 string uc
-îý´+*öA*V¹8º¼ùðãÁAYܺÆIAHÚñ/×Y³+¾ýüûÙ¶óðãíÍÞMêüûùñÍ+*ù-*=+Á+NH¸ò=1¼¶ïàÉYI½Xü
-¯¹êJ8P7¾ûÞÊî6ñìG¹õ/**üâP¾*GÍGùâ¿É?U´ëßÕYMAôëIÑ-åI½¼øð×±ÕXÏI½XÚ¶ï;Dü¹öîßÃ=Å8Û
-UÅ8ÛöêÇ=é»JGʳëàýÁ1ýʸÔ:1ÀIý¶4Õ̺öîݱݼëLÅ8û÷*JF¾ÝÌGÙ´ëØYµP»ùÈ»:1X³éÜ»MUÕìü
-7F.î¶óè½å8Gøðâضïß½ýô»**¼¶ïâÇEµìº×7ÔUµéR-*ÎÚ,éX@XFû=¶*ù-FúõíÒ=9HÚÕXVÙ´WزáÀÄ
-*ZëÙ¹õô7ÅJ¹éÔG·¶Þ?Ö´°ïàãÝ:ÐWâ¿ÙåÌÛöéÕ5õó³éÈ?Ù³éÔVÍ*¾²/Eø:*ÎâîP8LUÌÖê/X0ý>DFç
-¾ÀÀæ-*ÙÜ+ÞH¾+=ÙµíéÅÀ²3·*÷ÍWßç/F×·9ìØÓèØÉA5½ð·¯·CãßZÂÆÓEÈäõìÓE÷õíìñÁú1Ê=ð:Zã
-HõëÉôÛÑÚMž<èùöïÖKÆGÞ+êI3íëâ+Æ»°´µñÞÙÈ?Uµïæϳ-ï+ù<½ü±±ËTUFêسùP¼ûضÐXÛú¹OÜÅF
-æîßM9HÚ´,·2¹2Wß»=åÌûÚº÷1Qí÷Ù1YÚöéÃ5Ý×ç=A¸ÁÀ;NÚõðê×ÏÉAý2·T8ú¼÷åÍåܺ·YJE0÷ÀWMC
-PüXòßâ+´üûÙ¸÷õÖ°5·2µ7U´ÝYݼFÔº,ÞçÐOÙ´WÛ¸óÈÙµÁÌéGLÆâîæ;1ÞüGñʸ¾úóñØøðàÃ1ýW*:Á
-5A*6ÊÅH¶ØµýüÛFù÷ñ¯·Añ:¾ìëÉÕXÛöêÕYM*Í+*2G**X1*ÖæÏEQ8ÉλùüWÚ·ñ;C¯½ýOÔ6ë-ùUÆ-ݽ
-Ý»÷ð×UAìÃ-ö7*¾îàÃ5ïâá*¶ï¿Ið¸òÎ.,JÙô¶Q;Iý3ÖÜù?åI½¼ùðßÁ1¾Û-*ÞGºöîÁ,:ºóèÓM9»**
-L=ê÷ñèãÝóÏËâß+é÷ûôë-Z9**ù>½üû+*Þ¼îÅÉõìÛ¸**Ò-JîßѽX?åðß*î1*JBÞÇO¾úß1K3*JVL@µR
-.Z*ü-*î>=L=Ð÷ÄÛãßÆJÊJXµæ.·¶÷.·ä߯PÚìÂñ·¶V.ç×Kà·*
-d
-58 46[1 0 0 1 0 0]sl 8 false 0 0 di
-
-QP
-%%Trailer
-%%Pages: 1
-%%DocumentFonts:
-%%EOF
diff --git a/Master/texmf-dist/doc/latex/flowfram/sheep.png b/Master/texmf-dist/doc/latex/flowfram/sheep.png
deleted file mode 100644
index d7cb3517613..00000000000
--- a/Master/texmf-dist/doc/latex/flowfram/sheep.png
+++ /dev/null
Binary files differ