summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-11-13 00:16:56 +0000
committerKarl Berry <karl@freefriends.org>2012-11-13 00:16:56 +0000
commitb847625057328d18cbaff06505599203c8382a17 (patch)
treeb040c624881b1af975180256f90173d440d284d7 /Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex
parentf5c4d1df6475f098e051b5c8a71ce506a2c0d802 (diff)
flowfram 1.14 (12nov12)
git-svn-id: svn://tug.org/texlive/trunk@28238 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex')
-rw-r--r--Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex505
1 files changed, 450 insertions, 55 deletions
diff --git a/Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex b/Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex
index 37aacadebbc..20059639d4d 100644
--- a/Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex
+++ b/Master/texmf-dist/doc/latex/flowfram/ffuserguide.tex
@@ -1,5 +1,6 @@
\documentclass[a4paper,twoside]{book}
+\usepackage{etoolbox}
\usepackage{etex}
\usepackage{mathptmx}
\usepackage{courier}
@@ -35,7 +36,20 @@
\newcommand{\marg}[1]{\texttt{\char`\{#1\char`\}}}
\newcommand{\oarg}[1]{\texttt{[#1]}}
\newcommand{\appname}[1]{\texttt{#1}\index{#1@\texttt{#1}}}
-\newcommand{\pkgopt}[1]{\pkgoptni{#1}\index{#1@\pkgoptni{#1} option}}
+
+\newcommand{\pkgopt}[2][]{%
+ \ifstrempty{#1}%
+ {%
+ \pkgoptni{#2}\index{#2@\pkgoptni{#2} option}%
+ }%
+ {%
+ \pkgoptni{#2}=\pkgoptni{#1}\index{#2@\pkgoptni{#2}
+option!#1@\pkgoptni{#1}}%
+ }%
+}
+
+\newcommand{\pkgoptval}[2]{\pkgoptni{#2}\index{#1@\pkgoptni{#1} option!#2@\pkgoptni{#2}}}
+
\newcommand{\key}[1]{#1\index{frame settings!#1}}
\newcommand{\dq}[1]{``#1''}
\newcommand*{\Index}[1]{#1\index{#1}}
@@ -58,8 +72,9 @@
\vskip10pt\noindent\ignorespacesafterend}
\newcommand{\chapdesc}[1]{%
-\appenddynamiccontents*{chaphead}{\par
-\emph{#1}}}
+ \appenddynamiccontents*{chaphead}{\par
+ \normalfont\emph{#1}}%
+}
\newcommand*{\glsindex}[1]{\protect\index{#1}}
@@ -105,7 +120,7 @@ on every page}}
\newglossaryentry{static}{name=static frame\glsindex{frame!static},%
description={Frames in which text is fixed in place. The contents are fixed until
-explicitly changed or cleared via the \protect\cmdname{clear} key
+explicitly changed or cleared via the \protect\key{clear} key
in \protect\cmdname{setstaticcontents}}}
\newglossaryentry{dynamic}{name=dynamic frame\glsindex{frame!dynamic},%
@@ -134,8 +149,9 @@ pages. This can either be a single keyword: \texttt{all},
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}}
+These numbers refer to the decimal value of the page counter by
+default. To make them refer to the absolute physical page number use
+the package option \pkgopt[absolute]{pages}}}
\newglossaryentry{pgrange}{name=page range\glsindex{page range},%
description={Page
@@ -348,9 +364,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.13}
+Magazines using flowfram.sty version 1.14}
\author{Nicola L. C. Talbot}
-\date{23rd January 2010}
+\date{2012-11-10}
% swap frames around for title page
\ffswapoddeven*{main}
@@ -365,11 +381,8 @@ Magazines using flowfram.sty v 1.13}
\noindent
Dr Nicola Talbot\\
-School of Computing Sciences\\
-University of East Anglia\\
-Norwich. Norfolk. NR4 7TJ.\\
-United Kingdom\\
-\url{http://theoval.cmp.uea.ac.uk/~nlct/}
+Dickimaw Books\\
+\url{http://www.dickimaw-books.com/}
\frontmatter
% swap frames back again
@@ -391,6 +404,14 @@ United Kingdom\\
\chapdesc{This chapter provides a brief overview of the package,
the package options and the various frame types.}
+This document is the user manual for the \styni{flowfram} package.
+Advanced users wanting further details of the package should read
+the documented code \texttt{flowfram.pdf}. Sample files are provided
+in the directory \meta{TEXMF}\texttt{/doc/latex/flowfram/samples/}
+where \meta{TEXMF} indicates the root \TeX\ installation directory
+for this package. (This document is located in
+\meta{TEXMF}\texttt{/doc/latex/flowfram/}.)
+
The \styni{flowfram} package is a \LaTeXe\ package designed to
enable you to create text \glspl{frame} in a document such that
the contents of the \env{document} environment flow from one
@@ -399,6 +420,11 @@ 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.
+\textbf{The \styni{flowfram} package tries to make \TeX\ do
+something it wasn't originally designed to do. It modifies the
+output routine and may not always perform as desired. Caveat
+emptor---or `you get what you pay for'.}
+
The \styni{flowfram} package provides three types of \gls*{frame}:
\glspl{flow}, \glspl{static} and \glspl{dynamic} with dimensions and
positions specified by the
@@ -417,10 +443,69 @@ may vary depending on the values of \cmdname{oddsidemargin}
and \cmdname{evensidemargin}, and all the \glspl*{frame} will shift
accordingly unless otherwise indicated.
-Since floats (such as figures and tables) can only go in
-\glspl*{flow}, this package provides
-the additional environments:
-\env{staticfigure} and
+This package has only been tested with a limited number of
+class files and packages. Since it modifies the output routine,
+it is likely to conflict with any other package which also
+does this (such as \sty{longtable}).
+
+You should load \styni{flowfram} \emph{after} \sty{hyperref} and any
+colour package (e.g.\ \sty{color}).\htmlnav
+
+\section{Package Options}
+
+\begin{description}
+
+ \item[\pkgopt{pages}] Determines whether the \gls{pglist} refers to
+ the page number as given by the page counter (\pkgopt[relative]{pages})
+ or the absolute page number (\pkgopt[absolute]{pages}). The
+ default is \pkgoptval{pages}{relative} to ensure backward compatibility,
+ but if you have a document where the page counter is reset it's
+ best to use \pkgopt[absolute]{pages}.
+
+ \item[\pkgopt{draft}] Switch on draft mode (see
+ \latexhtml{\autoref{sec:draft}}{\htmlref{Draft Option}{sec:draft}}).
+
+ \item[\pkgopt{final}] Switch off draft mode (default).
+
+ \item[\pkgopt{thumbtabs}] Controls thumbtab contents. See
+ \latexhtml{\autoref{sec:thumbtabs}}{\htmlref{Thumbtabs}{sec:thumbtabs}}
+ for details.
+
+ \item[\pkgopt{LR}] When using the column style layouts described in
+ \latexhtml{\autoref{sec:Ncolumn}}{\htmlref{Column
+ Styles}{sec:Ncolumn}}, define the \glspl{flow} from left to right.
+ (Default.)
+
+ \item[\pkgopt{RL}] When using the column style layouts described in
+ \latexhtml{\autoref{sec:Ncolumn}}{\htmlref{Column
+ Styles}{sec:Ncolumn}}, define the \glspl{flow} from right to left.
+
+ \item[\pkgopt{rotate}] May have the value \pkgoptval{rotate}{true}
+ (rotate text in thumbtabs) or \pkgoptval{rotate}{false}
+ (stack text in thumbtabs). (Default is \pkgoptval{rotate}{true}.)
+
+ \item[\pkgopt{color}] May have the value \pkgoptval{color}{true}
+ (allow frames to have colour settings) or \pkgoptval{color}{false}
+ (disable colour in frame settings). The default is \pkgoptval{color}{true}.
+
+ \item[\pkgopt{verbose}] May have the value \pkgoptval{verbose}{true} or
+ \pkgoptval{verbose}{false}. (Default is \pkgoptval{verbose}{false}.)
+ Provided to assist debugging.
+
+\end{description}
+
+\section{Floats}
+\label{sec:floats}
+
+The standard \env{figure} and \env{table} commands will
+behave as usual in the \glspl*{flow}, but their starred versions,
+\env{figure*} and \env{table*} behave no differently
+from \env{figure} and \env{table}\footnote{This is because
+of the arbitrary layout of the flow frames.}.
+
+Floats (such as figures and tables) can only go in
+\glspl*{flow}. However, this package provides
+the additional environments: \env{staticfigure} and
\env{statictable} which can be used in \glspl*{static}
and \glspl*{dynamic}. Unlike their \env{figure} and
\env{table} counterparts, they are fixed in place, and
@@ -429,22 +514,10 @@ so do not take an optional placement specifier. The
be used within \env{staticfigure} and \env{statictable} as
usual, but remember that if the frame is displayed on multiple
pages, you may end up with multiply defined labels.
-
-The standard \env{figure} and \env{table} commands will
-behave as usual in the \glspl*{flow}, but their starred versions,
-\env{figure*} and \env{table*} behave no differently
-from \env{figure} and \env{table}\footnote{This is because
-of the arbitrary layout of the flow frames.}.
-
-This package has only been tested with a limited number of
-class files and packages. Since it modifies the output routine,
-it is likely to conflict with any other package which also
-does this.
-
-You should load \styni{flowfram} \emph{after} \sty{hyperref} and any
-colour package (e.g.\ \sty{color}).\htmlnav
+\htmlnav
\section{Draft Option}
+\label{sec:draft}
The \styni{flowfram} package has the package option \pkgopt{draft}
which will draw the \glspl{bbox} for
@@ -497,12 +570,32 @@ the command:
\cmdname{flowframeshowlayout}
\end{definition}
-The \styni{flowfram} package also has the options \pkgopt{nocolor}
-and \pkgopt{norotate} for previewers that can not process
+The \styni{flowfram} package also has the options \pkgopt[false]{color}
+and \pkgopt[false]{rotate} 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.)\htmlnav
+\section{Chapters}
+
+If the \cmdname{chapter} command has been defined, the \styni{flowfram}
+package will modify its definition so that it sets the page style to
+\cmdname{chapterfirstpagestyle} for the first page of each chapter. This
+command defaults to \texttt{plain}, which is the usual page style
+for the first page of a chapter. If you want to use a different
+style, you will need to redefine \cmdname{chapterfirstpagestyle} to the
+name of the relevant page style. A hook
+\begin{definition}
+\cmdname{ffprechapterhook}
+\end{definition}
+is used at the start of \cmdname{chapter} definition \emph{before
+\cmdname{clearpage} or \cmdname{cleardoublepage} is called.}
+
+Chapter titles can be placed in a \gls{dynamic} (as in \html{the PDF version of }this document). See
+\latexhtml{\autoref{sec:dfchaphead}}{\htmlref{Putting Chapter Titles
+in a Dynamic Frame}{sec:dfchaphead}} for further details.
+\htmlnav
+
\section{Frame Stacking Order}
\label{sec:stacking}
@@ -598,13 +691,19 @@ A \gls*{pgrange} can be a closed
range (e.g.\ \verb+2-8+) or an open range (e.g.\
\verb+<10+ or \verb/>5/). For example: \verb'<3,5,7-11,>15'
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\footnote{why can't I use the page number format?
-See query~\ref{itm:whynot}\latex{ on page~\pageref{itm:whynot}}},
-so if you have a page~i and a page~1, they
+greater than page 15. These page numbers refer to the integer value of
+the page counter\footnote{Why can't I use the page number format?
+See query~\ref{itm:whynot}\latex{ on page~\pageref{itm:whynot}}.}\
+by default, so if you have a page~i and a page~1, they
will both have the same layout (unless you change the
page list setting somewhere between the two pages).
+As from version 1.4, if you use the package option
+\pkgopt[absolute]{pages} then the numbers in the page list refer to
+the absolute page number. In which case page~1 refers to the first
+page of the document only, regardless of whether there is another
+page~1 or page~i later in the document.
+
Each \gls*{frame} has its own unique \gls{idn},
corresponding to the order in which it was defined. So the first
\gls*{flow} to be defined has \gls*{idn}~1,
@@ -687,6 +786,18 @@ paragraph of the previous \gls{frame} has ended. As a
result, the end of the paragraph at the beginning of the new
\gls*{flow} retains the width of the previous \gls*{flow}.
+If a paragraph does span two \glspl*{flow} of unequal width without
+using \cmdname{framebreak} a warning will be issued. If a subtle
+difference in frame widths is caused by rounding errors (for
+example, if the frames were created using Jpgfdraw) you can adjust
+the tolerance to suppress these warnings. The default tolerance is
+2pt. To change this, set the length register \cmdname{fftolerance}
+to the required tolerance. For example, to suppress warnings where
+the difference in width is less than 3pt, do
+\begin{verbatim}
+\setlength{\fftolerance}{3pt}
+\end{verbatim}
+
If you want to start a new page, rather than simply move to the
next \gls*{frame}, use the command \cmdname{clearpage},
or for two-sided documents, to start on the next odd page
@@ -915,7 +1026,7 @@ To create a new \gls*{dynamic}, use the command:
The parameters are exactly the same as for \cmdname{newflowframe}
and \cmdname{newstaticframe}.
Again, each \gls*{dynamic} has an associated unique \gls{idn},
-starting from 1 for the first \gls*{dynamic} to be defined, and
+starting from~1 for the first \gls*{dynamic} to be defined, and
a unique \gls{idl}\ can also be set using the final optional
argument \meta{label}.
@@ -1011,6 +1122,9 @@ or:
\cmdname{appenddynamiccontents*}\marg{\meta{label}}\marg{\meta{contents}}
\end{definition}
+\subsection{Putting Chapter Titles in a Dynamic Frame}
+\label{sec:dfchaphead}
+
If \cmdname{chapter} is defined, you can make the chapter titles
appear in a dynamic frame using the command
\begin{definition}
@@ -1024,6 +1138,36 @@ use the \gls{idl}\ instead of the \gls*{idn}. For example, in
\dfchaphead*{chaphead}
\end{verbatim}
+If you use \cmdname{dfchaphead}, you can adjust the format of the
+chapter headings by redefining
+\begin{definition}
+\cmdname{DFchapterstyle}\marg{\meta{title}}
+\end{definition}
+for the numbered chapters and
+\begin{definition}
+\cmdname{DFschapterstyle}\marg{\meta{title}}
+\end{definition}
+for the unnumbered chapters. For example, this document redefined
+those commands as follows:
+\begin{verbatim}
+\renewcommand{\DFchapterstyle}[1]{%
+ {\raggedright\sffamily\bfseries\Huge
+ \color{blue}\thechapter. #1\par
+ }%
+}
+
+\renewcommand{\DFschapterstyle}[1]{%
+ {\raggedright\sffamily\bfseries\Huge
+ \color{blue} #1\par
+ }%
+}
+\end{verbatim}
+There is no facility for placing other sectional types in a
+\gls{dynamic}.
+\htmlnav
+
+\subsection{Putting Headers and Footers in a Dynamic Frame}
+
The headers and footers can be turned into \glspl*{dynamic}
using the command
\begin{definition}
@@ -1034,6 +1178,9 @@ This will create two \glspl*{dynamic} with \glspl*{idl}
usual, but you can then move or resize the header and footer using
\cmdname{setdynamicframe} (described \latexhtml{in
\autoref{sec:modattr}}{\htmlref{later}{sec:modattr}}).
+\htmlnav
+
+\subsection{Continued Text}
In the body of \env{dynamiccontents} or \env{dynamiccontents*},
you can move onto another \gls*{dynamic} using:
@@ -1182,7 +1329,9 @@ above keywords or have ranges in \meta{label list}.
The \meta{key-val list} argument must be a comma-separated
list of \meta{key}=\meta{value} pairs, indicating which
-attributes to modify. The available values are as follows:
+attributes to modify. \textbf{Make sure you group \meta{value}
+if it contains one or more commas or equal signs.}
+The available values are as follows:
\begin{description}
\item[\key{width}=\meta{length}] The width of the \gls*{frame}.
@@ -1367,8 +1516,63 @@ comma-separated list of single pages, or
\glspl{pgrange}.
For example:
\begin{verbatim}
-\setdynamicframe{1}{pages=1,5,8-10}
+\setdynamicframe{1}{pages={1,5,8-10}}
+\end{verbatim}
+Recall that the numbers in the list either refer to the integer
+value of the page counter
+(when used with the package option \pkgopt[relative]{pages})
+or the absolute page number (when used with the package option
+\pkgopt[absolute]{pages}).
+
+As from version 1.14, there is also a quick way of setting the page
+list that doesn't have the overhead of parsing the
+\meta{key}=\meta{value} format of commands such as
+\cmdname{setflowframe}:
+\begin{definition}
+\cmdname{flowsetpagelist}\marg{\meta{idn}}\marg{\meta{page
+list}}\newline
+\cmdname{dynamicsetpagelist}\marg{\meta{idn}}\marg{\meta{page
+list}}\newline
+\cmdname{staticsetpagelist}\marg{\meta{idn}}\marg{\meta{page list}}
+\end{definition}
+\textbf{Note that these commands don't have starred variants. The
+first argument must be a single \gls{idn}.}
+
+See also \latexhtml{\autoref{sec:switch}}{\htmlref{Switching Frames
+On and Off On-The-Fly}{sec:switch}}.
+
+\item[\key{excludepages}=\meta{list}] (New to version~1.14.)
+A comma-separated list of page
+numbers where the frame should not appear. Note that this overrides
+any page given by the \key{pages} key. For this key, \meta{list} may
+only contain comma-separated numbers. Ranges are not permitted. For
+example:
+\begin{verbatim}
+\setdynamicframe{1}{excludepages={7}}
+\setdynamicframe{1}{pages={1-10}}
\end{verbatim}
+This will make the dynamic frame appear on pages~1 to~6 and~8 to~10.
+
+Again, there is also a quick way of setting the exclusion
+list that doesn't have the overhead of parsing the
+\meta{key}=\meta{value} format of commands such as
+\cmdname{setflowframe}:
+\begin{definition}
+\cmdname{flowsetexclusion}\marg{\meta{idn}}\marg{\meta{list}}\newline
+\cmdname{dynamicsetexclusion}\marg{\meta{idn}}\marg{\meta{list}}\newline
+\cmdname{staticsetexclusion}\marg{\meta{idn}}\marg{\meta{list}}
+\end{definition}
+or you can add to an exclusion list using:
+\begin{definition}
+\cmdname{flowaddexclusion}\marg{\meta{idn}}\marg{\meta{list}}\newline
+\cmdname{dynamicaddexclusion}\marg{\meta{idn}}\marg{\meta{list}}\newline
+\cmdname{staticaddexclusion}\marg{\meta{idn}}\marg{\meta{list}}
+\end{definition}
+\textbf{Note that these commands don't have starred variants. The
+first argument must be a single \gls{idn}.}
+
+See also \latexhtml{\autoref{sec:switch}}{\htmlref{Switching Frames
+On and Off On-The-Fly}{sec:switch}}.
\item[\key{margin}=\meta{side}] The side of
the \gls*{flow} that its corresponding margin should go on. This
@@ -1483,7 +1687,7 @@ indentation for the \latexhtml{$j$th}{jth} line and
the \latexhtml{$j$th}{jth} line.
\latexhtml{The \gls*{static} on the top
-\ifthenelse{\isodd{page}}{left}{right}
+\ifthenelse{\isodd{page}}{right}{left}
was assigned a zigzag shape using:}{For example, to create a
zigzag shaped static frame (whose \gls*{idn} is \texttt{shapedt}):}
\setstaticframe*{shapedb,shapedt}{pages=all}
@@ -1548,7 +1752,7 @@ The \sty{shapepar} package has four predefined shapes:
\cmdname{heartshape} and \cmdname{nutshape}.
\latexhtml{The \gls{static} on the bottom
-\ifthenelse{\isodd{page}}{left}{right}
+\ifthenelse{\isodd{page}}{right} {left}
was assigned a heart shape using the command:}{For example, to assign
a heart shape to the static frame whose \gls*{idl} is \texttt{shapedb}:}
\begin{verbatim}
@@ -1576,6 +1780,173 @@ The \styni{flowfram} package currently does not support any other
paragraph shape making commands. Any other commands would
have to be used explicitly within the contents of the frame.\htmlnav
+\section{Switching Frames On and Off On-The-Fly}
+\label{sec:switch}
+
+Modifying the \gls{pglist} (or the page exclusion list) within the
+\env{document} environment is a risky business. This list must
+be up-to-date before the output routine looks for the next frame.
+To make this a little easier, as from version~1.14 there are
+commands that help you do this. \textbf{If you want to use these
+commands, it's best to use the package option \pkgopt[absolute]{pages}.}
+
+The commands described in this section update the \glspl{pglist}
+(and possibly the exclusion list) \emph{when the output routine is
+next used}. They are designed to switch frames on or off either on
+the next page or on the next odd page. You therefore need to take
+care where you place these commands. For example, if you have a
+two-sided document and you do:
+\begin{verbatim}
+\dynamicswitchonnextodd{1}
+\mainmatter
+\chapter{Introduction}
+\end{verbatim}
+This will set the dynamic frame whose \gls{idn} is~1 to be visible for
+the first page of chapter~1. However, if you do
+\begin{verbatim}
+\mainmatter
+\dynamicswitchonnextodd{1}
+\chapter{Introduction}
+\end{verbatim}
+This will have a different effect as \cmdname{mainmatter} issues a
+\cmdname{cleardoublepage} so the command to switch on the dynamic
+frame is on the same page as the start of chapter~1. This means that
+the dynamic frame won't appear until the following odd page
+(page~3).
+
+These commands all have the same syntax with one argument that may
+be a comma-separated list. The starred version uses
+\glspl{idl} and the unstarred version uses \glspl{idn}.
+
+\begin{definition}
+\cmdname{flowswitchonnext}\marg{\meta{IDN list}}\\
+\cmdname{flowswitchonnext*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{flow} from the following page onwards.
+\begin{definition}
+\cmdname{flowswitchoffnext}\marg{\meta{IDN list}}\\
+\cmdname{flowswitchoffnext*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{flow} from the following page onwards.
+\begin{definition}
+\cmdname{flowswitchonnextodd}\marg{\meta{IDN list}}\\
+\cmdname{flowswitchonnextodd*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{flow} from the next odd page onwards.
+\begin{definition}
+\cmdname{flowswitchoffnextodd}\marg{\meta{IDN list}}\\
+\cmdname{flowswitchoffnextodd*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{flow} from the next odd page onwards.
+
+\begin{definition}
+\cmdname{flowswitchonnextonly}\marg{\meta{IDN list}}\\
+\cmdname{flowswitchonnextonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{flow} just for the following page.
+\begin{definition}
+\cmdname{flowswitchoffnextonly}\marg{\meta{IDN list}}\\
+\cmdname{flowswitchoffnextonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{flow} just for the following page.
+\begin{definition}
+\cmdname{flowswitchonnextoddonly}\marg{\meta{IDN list}}\\
+\cmdname{flowswitchonnextoddonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{flow} just for the next odd page.
+\begin{definition}
+\cmdname{flowswitchoffnextoddonly}\marg{\meta{IDN list}}\\
+\cmdname{flowswitchoffnextoddonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{flow} just for the next odd page.
+
+\begin{definition}
+\cmdname{dynamicswitchonnext}\marg{\meta{IDN list}}\\
+\cmdname{dynamicswitchonnext*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{dynamic} from the following page onwards.
+\begin{definition}
+\cmdname{dynamicswitchoffnext}\marg{\meta{IDN list}}\\
+\cmdname{dynamicswitchoffnext*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{dynamic} from the following page onwards.
+\begin{definition}
+\cmdname{dynamicswitchonnextodd}\marg{\meta{IDN list}}\\
+\cmdname{dynamicswitchonnextodd*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{dynamic} from the next odd page onwards.
+\begin{definition}
+\cmdname{dynamicswitchoffnextodd}\marg{\meta{IDN list}}\\
+\cmdname{dynamicswitchoffnextodd*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{dynamic} from the next odd page onwards.
+
+\begin{definition}
+\cmdname{dynamicswitchonnextonly}\marg{\meta{IDN list}}\\
+\cmdname{dynamicswitchonnextonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{dynamic} just for the following page.
+\begin{definition}
+\cmdname{dynamicswitchoffnextonly}\marg{\meta{IDN list}}\\
+\cmdname{dynamicswitchoffnextonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{dynamic} just for the following page.
+\begin{definition}
+\cmdname{dynamicswitchonnextoddonly}\marg{\meta{IDN list}}\\
+\cmdname{dynamicswitchonnextoddonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{dynamic} just for the next odd page.
+\begin{definition}
+\cmdname{dynamicswitchoffnextoddonly}\marg{\meta{IDN list}}\\
+\cmdname{dynamicswitchoffnextoddonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{dynamic} just for the next odd page.
+
+\begin{definition}
+\cmdname{staticswitchonnext}\marg{\meta{IDN list}}\\
+\cmdname{staticswitchonnext*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{static} from the following page onwards.
+\begin{definition}
+\cmdname{staticswitchoffnext}\marg{\meta{IDN list}}\\
+\cmdname{staticswitchoffnext*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{static} from the following page onwards.
+\begin{definition}
+\cmdname{staticswitchonnextodd}\marg{\meta{IDN list}}\\
+\cmdname{staticswitchonnextodd*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{static} from the next odd page onwards.
+\begin{definition}
+\cmdname{staticswitchoffnextodd}\marg{\meta{IDN list}}\\
+\cmdname{staticswitchoffnextodd*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{static} from the next odd page onwards.
+
+\begin{definition}
+\cmdname{staticswitchonnextonly}\marg{\meta{IDN list}}\\
+\cmdname{staticswitchonnextonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{static} just for the following page.
+\begin{definition}
+\cmdname{staticswitchoffnextonly}\marg{\meta{IDN list}}\\
+\cmdname{staticswitchoffnextonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{static} just for the following page.
+\begin{definition}
+\cmdname{staticswitchonnextoddonly}\marg{\meta{IDN list}}\\
+\cmdname{staticswitchonnextoddonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch on the listed \glspl{static} just for the next odd page.
+\begin{definition}
+\cmdname{staticswitchoffnextoddonly}\marg{\meta{IDN list}}\\
+\cmdname{staticswitchoffnextoddonly*}\marg{\meta{IDL list}}
+\end{definition}%
+Switch off the listed \glspl{static} just for the next odd page.
+
+The \styni{flowfram} package comes with a sample file
+\texttt{sample-pages.tex} that uses some of these commands.
+
\chapter{Locations and Dimensions}
\chapdesc{This chapter describes some of the commands provided to
determine the locations and dimensions of frames.}
@@ -1805,6 +2176,7 @@ create \glspl{frame} in a predefined layout. These commands
may only be used in the preamble.\htmlnav
\section{Column Styles}
+\label{sec:Ncolumn}
The standard \LaTeX\ commands \cmdname{onecolumn} and
\cmdname{twocolumn} are redefined to create one or two
@@ -2167,6 +2539,7 @@ This is equivalent to:
\htmlnav
\section{Right to Left Columns}
+\label{sec:RL}
The default behaviour for the commands defined above is
to create the \glspl{flow} from left to right. However if you are
@@ -2467,6 +2840,7 @@ package):
such as those used in \html{the PDF version of }this document.}
\section{Thumbtabs}
+\label{sec:thumbtabs}
On the right hand side of \latexhtml{this page}{the odd pages
and on the left hand side of the even pages in the
@@ -2475,11 +2849,13 @@ with the chapter number in it. This is a thumbtab, and it gives
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: \pkgopt{ttbtitle} (show
-title---default), \pkgopt{ttbnotitle} (don't show the title),
-\pkgopt{ttbnum} (show the number) and \pkgopt{ttbnonum}
-(don't show the number---default).
+number and/or title appear in the thumbtab by using
+the package option \pkgopt{thumbtabs}. This is a key=value option,
+where the value may be one of \pkgoptval{thumbtabs}{title}
+(show the title but not the number---default),
+\pkgoptval{thumbtabs}{number} (show the number but not the title),
+\pkgoptval{thumbtabs}{both} (show the number and the title)
+and \pkgoptval{thumbtabs}{none} (don't show the number or title).
If you want thumbtabs in your document, you need to use
the command
@@ -2743,6 +3119,12 @@ This is the vertical distance before the minitoc.
\item \cmdname{afterminitocskip}
This is the vertical distance after the minitoc.
+
+\item \cmdname{fftolerance}
+
+The output routine will issue a warning when a paragraph spans two
+\glspl{flow} of unequal width, unless the difference in width is
+less than the value of \cmdname{fftolerance}.
\end{itemize}
\htmlnav
@@ -2751,7 +3133,7 @@ This is the vertical distance after the minitoc.
The following are counters that can be accessed via
\cmdname{value}\marg{\meta{counter name}} or via
\verb|\the|\meta{counter name}. However the value of these counters
-should not be modified.
+\emph{should not be modified}.
\begin{description}
\item[\ctr{maxflow}] The total number of \glspl{flow} that have
@@ -2803,6 +3185,8 @@ been defined so far.
have been defined so far.
\item[\ctr{maxthumbtabs}] The total number of thumbtabs.
+
+\item[\ctr{absolutepage}] The absolute page number.
\end{description}
\htmlnav
@@ -2812,9 +3196,20 @@ problems using the \styni{flowfram} package.}
For an up-to-date list of frequently asked questions, see
\latexhtml{%
-\url{http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/flowframfaq.html}}{the \htmladdnormallink{flowfram FAQ}{http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/faq/flowframfaq.html}}.
-If you have a query that is not addressed here, please try there
-before contacting me.\htmlnav
+\url{http://www.dickimaw-books.com/faqs/flowframfaq.html}}{the
+\htmladdnormallink{flowfram
+FAQ}{http://www.dickimaw-books.com/faqs/flowframfaq.html}}. If you
+have a query that is not addressed here, please try there first. If
+that doesn't answer your query, try posting a message to the \LaTeX\
+Community Forum (\url{http://latex-community.org/forum/}), \TeX\ on
+StackExchange (\url{http://tex.stackexchange.com/}) or the
+\texttt{comp.text.tex} newsgroup. I generally answer questions in
+those places much quicker than queries that are emailed to me.
+
+Bugs can be reported using the \latexhtml{form at
+\url{http://www.dickimaw-books.com/bug-report.html}}{\htmladdnormallink{bug
+report form}{http://www.dickimaw-books.com/bug-report.html}}
+\htmlnav
\section{General Queries}
@@ -2847,7 +3242,7 @@ that point, which it hasn't yet. So it is looking for a
\gls{flow} defined on page~15, not on page~A.
\item How does \LaTeX\ tell if page C lies between
-pages A and D? It would require an algorithm that can convert
+pages A and D\@? It would require an algorithm that can convert
from a formatted number back to an integer. Given that there
are many different ways of formatting the value of a counter
(besides the standard Roman and alphabetical formats) it
@@ -2954,7 +3349,7 @@ Location of the Typeblock}{sec:typeblockloc}}.
\glspl{frame}?
Yes, Jpgfdraw which can be downloaded from:
-\url{http://theoval.cmp.uea.ac.uk/~nlct/jpgfdraw/}
+\url{http://www.dickimaw-books.com/apps/jpgfdraw/}
\end{enumerate}
\htmlnav
@@ -3175,9 +3570,9 @@ unstarred version of the \env{dynamiccontents} environment.
\htmlnav
-\clearpage
+\ifthenelse{\isodd{page}}{}{\clearpage\mbox{}}
% have a backcover:
\setdynamicframe*{footer}{pages=none}
\setstaticframe*{lastbackleft,lastbackright}{pages=even}
-\mbox{}\clearpage
+\clearpage\mbox{}
\end{document}