summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/floatrow
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-06-24 16:36:04 +0000
committerKarl Berry <karl@freefriends.org>2009-06-24 16:36:04 +0000
commitf1fef055879de5641d7a1fcfab20d36da85686b2 (patch)
tree723c74d97a0528b89d48a1c4cb7ede2128d9673a /Master/texmf-dist/source/latex/floatrow
parentd73a503687f31a927aea191ec9ed3cf1c950fd8f (diff)
floatrow 0.3a (22jun09)
git-svn-id: svn://tug.org/texlive/trunk@13942 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/floatrow')
-rw-r--r--Master/texmf-dist/source/latex/floatrow/floatrow.dtx2100
1 files changed, 1569 insertions, 531 deletions
diff --git a/Master/texmf-dist/source/latex/floatrow/floatrow.dtx b/Master/texmf-dist/source/latex/floatrow/floatrow.dtx
index 12b27e04b44..bee497c1e00 100644
--- a/Master/texmf-dist/source/latex/floatrow/floatrow.dtx
+++ b/Master/texmf-dist/source/latex/floatrow/floatrow.dtx
@@ -1,6 +1,10 @@
% \iffalse
-% floatrow.dtx - The float row package (extension of float package)
-% (c) 2004-2007 Olga Lapko (Lapko.O@g23.relcom.ru)
+% floatrow.dtx - The floatrow package (extension of float package)
+% (c) 2004-2007 Olga Lapko
+% (Lapko.O@g23.relcom.ru
+% tr-paw@yandex.ru
+% tr-paw@mail.ru
+% http://www.ru.net/~Lapko.O/)
%
% This package borrowed code (core parts) from:
% float package 2001/11/08 v1.3d,
@@ -27,7 +31,7 @@
%<forlongtable>\ProvidesPackage{fr-longtable}
%
% \ProvidesFile{floatrow.dtx}
-%<floatrow> [2008/03/28 v0.2c floatrow: float package extension]
+%<floatrow> [2009/06/20 v0.3a floatrow: float package extension]
%<frfancy> [2007/11/28 v0.1i floatrow: fancy boxes]
%<floatpagestyle> [2005/10/02 v0.1h floating page style]
%<listpen> [2007/10/28 v0.1d list penalty managing]
@@ -71,14 +75,14 @@
\ignorespaces{\nouppercase\leftmark}\hfil\strut}
\fancyhead[LO]{\setlength{\dimen@}{\marginparwidth+\marginparsep}%^^A
\leavevmode\hbox to\dimen@{}
- \ignorespaces{\nouppercase\rightmark}\hfill\hbox to2em{\hfil\normalsize\bfseries\thepage}\strut}
+ \ignorespaces{\nouppercase\rightmark}\hfill
+ \hbox to2em{\hfil\normalsize\bfseries\thepage}\strut}
\fancyheadoffset[L]{\marginparwidth+\marginparsep}
}{}
\usepackage[font=small,labelfont=bf,labelsep=period,
justification=centerlast]
{caption}[2007/04/11]
-
\usepackage[format=default,justification=centerlast,
labelfont=up,captionskip=5pt]
{subfig}[2005/06/28]
@@ -106,7 +110,8 @@
\usepackage{color}
\definecolor{gray}{gray}{.5}
-\definecolor{emphblue}{rgb}{0,0,0.5}
+%\definecolor{emphblue}{rgb}{0,0,0.5}
+\definecolor{emphblue}{rgb}{0,0,1}
\def\emphcolor{\color{emphblue}}
\usepackage[
@@ -168,18 +173,18 @@
captionskip=5pt,frameset={\fboxrule1pt\fboxsep12pt}}
\DeclareFloatVCode{lowthickrule}{\par\vskip2pt\rule{\hsize}{.8pt}\par}
-\DeclareFloatVCode{grayruleabove}{{\color{gray}\par\rule\hsize{2.8pt}\vskip4pt\par}}
-\DeclareFloatVCode{grayrulebelow}{{\color{gray}\par\vskip4pt\rule\hsize{2.8pt}}}
+\DeclareFloatVCode{grayruleabove}{{\color{gray}\par\hrule height2.8pt depth0pt\vskip4pt\par}}
+\DeclareFloatVCode{grayrulebelow}{{\color{gray}\par\vskip4pt\hrule height2.8pt depth0pt}}
\DeclareObjectSet{colorred}{\parskip2pt\parindent15pt\color{red}}
-\DeclareMarginSet{hangleft}{\setfloatmargins
- {\hskip-\marginparwidth\hskip-\marginparsep}{\hfil}}
\DeclareMarginSet{hangtoheads}{\setfloatmargins
{\hfil}{\hskip-.7\headheight\hskip-\headsep}}
-\DeclareFloatSeparators{colorsep}{\begingroup\color{blue}
- \hskip8pt\vrule width4.8pt\hskip8pt\endgroup}
+\DeclareFloatSeparators{colorsep}{\begingroup\color{blue}%
+ \floatfacing*
+ {\hskip16pt\vrule width4.8pt\hskip6pt}{\hskip6pt\vrule width4.8pt\hskip16pt}%
+ \endgroup}
\DeclareFloatSeparators{none}{}
\DeclareFloatSeparators{cicero}{\hskip1cc}
\DeclareFloatSeparators{enskip}{\hskip.5em}
@@ -187,6 +192,26 @@
\DeclareFloatSeparators{mcapwidth}{\hskip-\FCwidth}
\DeclareColorBox{framedfigure}{\fcolorbox{gray}{white}}
+\DeclareColorBox{yellowplate}{\colorbox{yellow}}
+
+\DeclareCBoxCorners{angles}
+ {{\color{green}%green llcorner
+ \linethickness{10pt}\put(-5pt,-5pt)
+ {{\put(0pt,0pt){\line(0,1){\FRcolorboxht}}}%
+ {\put(-5pt,0pt){\line(1,0){\FRcolorboxwd}}}}%
+ }}{{\color{red}%red lrcorner
+ \linethickness{10pt}\put(0pt,0pt)
+ {{\put(0pt,0pt){\line(0,1){\FRcolorboxht}}}%
+ {\put(5pt,0pt){\line(-1,0){\FRcolorboxwd}}}}%
+ }}{{\color{blue}%blue urcorner
+ \linethickness{10pt}\put(5pt,-5pt)
+ {{\put(0pt,0pt){\line(0,-1){\FRcolorboxht}}}%
+ {\put(5pt,0pt){\line(-1,0){\FRcolorboxwd}}}}%
+ }}{{\color{magenta}%magenta ulcorner
+ \linethickness{10pt}\put(0pt,0pt)
+ {{\put(0pt,0pt){\line(0,-1){\FRcolorboxht}}}%
+ {\put(-5pt,0pt){\line(1,0){\FRcolorboxwd}}}}%
+ }}
%^^A -----------------------
\DeclareCaptionListOfFormat{comma-separated}{#1,\,#2}
@@ -209,6 +234,12 @@
\captionsetup[capbesidefigure]{justification=togglelast}
\captionsetup[floatfoot]{format=default}
+\DeclareCaptionFormat{break}{#1#2\par#3\par}
+
+\newcounter{Note}
+\newcommand\Note{\ifhmode\ifdim\lastskip>0pt\unskip\fi~\nobreak\quad\fi
+ \addtocounter{Note}1\textup{\theNote)}\nobreak\enskip}
+\newcommand\startNotes{\setcounter{Note}0}
%^^A -----------------------
\advance\oddsidemargin.25\marginparwidth
@@ -241,7 +272,8 @@
\providecommand*{\meta}[1]{$\langle$\textit{#1}$\rangle$}
\newenvironment{Options}[1]%
- {\RestoreSpaces\list{}{\renewcommand{\makelabel}[1]{\texttt{##1}\hfil}%
+ {\RemoveSpaces
+ \allowprelistbreaks[-4]\vspace*{\topsep}\list{}{\renewcommand{\makelabel}[1]{\texttt{##1}\hfil}%
\settowidth{\labelwidth}{\texttt{#1\space}}%
\setlength{\leftmargin}{\labelwidth}%
\addtolength{\leftmargin}{\labelsep}%
@@ -287,6 +319,7 @@
\EnableCrossrefs
\RecordChanges
%\makeindex
+\raggedbottom
\begin{document}
\DocInput{floatrow.dtx}
\PrintChanges
@@ -295,8 +328,7 @@
%</driver>
% \fi
%
-% \CheckSum{5094}
-%
+% \CheckSum{5863}
%
% \changes{v0.1e}{2005/03/22}{The user documentation loaded inside
% \file{floatrow.dtx}.}
@@ -323,8 +355,8 @@
% the \package{float}\footnote{\package{float} package, version v1.3d dated
% 2001/11/08, \copyright{} 1991--2000 Anselm Lingnau.} and
% \package{rotfloat}\footnote{\package{rotfloat} package, version v1.2
-% dated 2004/01/04, \copyright{} 1995--2004 Axel
-% Sommerfeldt.} packages, so you \emph{must not} load these packages.
+% dated 2004/01/04, \copyright{} 1995--2004 Axel Sommerfeldt.}
+% packages, so you \emph{must not} load these packages.
%
% The \package{float} package has a~good mechanism for the creation (and easy
% modification) of common layout for all floats of one type without
@@ -333,11 +365,11 @@
% with alone (plain) combinations ``object (float contents)---caption''.
%
% The \package{rotfloat}
-% package changes environments of rotated floats (the \env{sideways...}
+% package changes environments of rotated floats (the |sideways...|
% environment of \package{rotating} package)
% to adapt them to \package{float}'s settings.
%
-% This package extends these possibilities and, at last, it allows:
+% The package \package{floatrow} extends these possibilities and, at last, it allows:
% \begin{itemize}\itemsep0pt\parskip0pt
% \item
% to use mechanism, borrowed from \package{float} package, for
@@ -358,8 +390,8 @@
% \end{itemize}
%
% The \package{floatrow} package is cooperated with \package{caption} package
-% (\textit{needs version} 3.0\textbf{q} \textit{or later}).
-% Also the \package{floatrow} package (like
+% (needs version 3.0\textbf{q} or later, \emph{the better} cooperation will be with
+% version \textbf{3.1\emph{x}}). Also the \package{floatrow} package (like
% \package{caption} one) uses \package{keyval} package mechanism for layout
% settings.
% \medskip
@@ -377,7 +409,7 @@
% \item[float (float box)]
% could include \emph{object}, \emph{caption}, and
% \emph{foot material}; \emph{float} is created by |figure| or
-% |table| environments (\emph{plain float}), or by |\floatbox|
+% |table| environments (\emph{plain float}), or by |\|\FRkey{floatbox}
% command and its modifications (\emph{float box});
%
% \item[float type]
@@ -393,12 +425,13 @@
%
% \item[foot material]could include explications, legends and/or footnotes inside
% \emph{float box} (|\footnote|/\allowbreak|\mpfootnotemark|/\allowbreak|\footnotetext|,
-% and |\floatfoot| macros).
+% and |\|\FRkey{floatfoot} macros).
% \end{description}
% \end{abstract}
%
% \begingroup\small
-% \vspace{2ex}\pdfbookmark[1]{Frequently Appeared Design}{FAD}\nopagebreak\centerline{\textbf{Frequently Appeared Design}\nopagebreak}
+% \vspace{2ex}\pdfbookmark[1]{Frequently Appeared Design}{FAD}\nopagebreak
+% \centerline{\textbf{Frequently Appeared Design}\nopagebreak}
% \begin{multicols}{2}\raggedright\advance\rightskip1em
% \makeatletter\let\item\@idxitem\ignorespaces\makeatother
% \def\sectionname{sec.}
@@ -467,12 +500,13 @@
% \strut\pfill
% page~\pageref{FAD:floatfillspace}
%
+% \subitem{empty (special) page style (|\emptyfloatpage|)}
+% \strut\pfill
+% page~\pageref{FAD:emptyfloatpage}
+%
% \subitem{rotated (|sideways..|~env.)}\nopagebreak
% \strut\pfill
% \textsl{\sectionname}~\ref{ssec:rotating}
-% \subsubitem{empty (special) page style (|\emptyfloatpage|)}
-% \strut\pfill
-% page~\pageref{FAD:emptyfloatpage}
%
% \subsubitem{placing on the facing pages}
% \strut\pfill
@@ -529,7 +563,7 @@
%
% \clearpage
% \begingroup\addtocounter{lofdepth}1\addtocounter{lotdepth}1
-% \small
+% \small\openup-.65pt
% \pdfbookmark[1]{Contents}{TOC}\nopagebreak\tableofcontents
% \pdfbookmark[1]{List of Figures}{LOF}
% \nopagebreak\listoffigures
@@ -546,8 +580,6 @@
%
% \section{Introduction}\label{sec:intro}
%
-% \FRorisubsection{Start With \package{floatrow} Package}\label{sec:start}
-%
% During creation of document, you usually type figures and tables as \emph{floating objects}
% (\emph{floats}), i.e. put their contents
% inside |figure| and~|table| environments consequently. The simplest floating environment
@@ -566,9 +598,9 @@
%|\end{|\meta{float type}|}|
%\end{Quote}
%
-% \subsubsection{Loading The Package}\label{sec:load}
+% \subsection{Loading The Package}\label{sec:load}\label{sec:start}
%
-% Just now you have loaded the \package{floatrow} package:
+% Just now you have loaded the \package{floatrow} package:
%\begin{Quote}
%\begin{preamble}
%|\usepackage{floatrow}|\quad.
@@ -590,9 +622,9 @@
% they were typed in source file. These first minimal settings will arrange all floats
% contents and their captions accordingly to the real typographic rules.
% (The {\sectionname}~\ref{sec:floatsetup} describes and demonstrates various layouts,
-% which you can get with the settings of |\floatsetup| command.)
+% which you can get with the settings of |\|\FRkey[sec]{floatsetup} command.)
%
-% But maybe the settings above are still not sufficient to you, because you need to get
+% But surely the settings above are still not sufficient to you, because you need to get
% the table caption width equal to the width of table material. Also you may want to put some
% figure captions beside graphics. Besides that, it is better to put small floats beside
% in one row. For all these reasons this package offers special commands for building of float boxes
@@ -601,9 +633,11 @@
% \subsubsection{Float Box Commands}\label{sec:intro:flbox}
% One of the first macros of this package for creation of float boxes
% is a macro which builds contents of the table environment with caption
-% above. The width of caption equals to the width of contents, e.g.
-% of tabular (see table~\ref{intro:table}). Let's look at the first example with plain \LaTeX{}
-% layout:%^^A
+% above (|\|\FRkey[FB]{ttabbox}). The width of caption equals to the width of contents, e.g.
+% of tabular (see table~\ref{intro:table}). (The first example uses plain \LaTeX{}
+% layout---the \package{caption} and \package{floatrow} packages loaded without package setting options;
+% the options at the end of |\usepackage| command define dates of package versions
+% which support correct work of this tandem today.)%^^A
% \FRmpar{Caption above table object}{FAD:CaptionAbove}%^^A
%\begin{Quote}
%\begin{preamble}
@@ -634,9 +668,9 @@
% \end{table}%^^A
%\endgroup
%
-% Another command which creates figures---|\ffigbox| (figure~\ref{intro:figure})---puts
+% Another command which creates figures---|\|\FRkey[FB]{ffigbox} (figure~\ref{intro:figure})---puts
% caption below contents. The default width of caption equals
-% to the width of text. (In the following example the
+% to the width of text. (In the following example the most popular
% layout settings for captions were added.)
%\begin{Quote}
%\begin{preamble}
@@ -661,7 +695,7 @@
%\endgroup
% The example above shows that a float box, created by
% the |\ffigbox| command looks similar to the plain |figure| environment.
-% But if you set, for example, the option |[\FBwidth]| like below:
+% But if you set, for example, the option |[\|\FRkey{FBwidth}|]| like below:
% \FRmpar{Caption's width equals to object}{FAD:FBwidthI}
%\begin{Quote}
%|...|
@@ -669,7 +703,7 @@
%|\ffigbox[\|\FRkey[FB]{FBwidth}|]|
%| {\caption{A figure}\label{...}}|
%| {...}|
-%|\end{figure}|\vspace*{-\intextsep}
+%|\end{figure}|\vspace*{-2\intextsep}
%\end{Quote}
%\begingroup\floatsetup{style=default}
% \begin{figure}[H]
@@ -684,22 +718,22 @@
% you'll get a~caption width equal to the width of picture
% (figure~\ref{intro:figure:FBwidth}).
%
-% The third macro---|\fcapside| (figure~\ref{intro:beside})---puts
+% The third macro---|\|\FRkey[FB]{fcapside} (figure~\ref{intro:beside})---puts
% caption beside. (In the next example the float layout settings were added,
% which put captions to the binding margin
-% and changed value of separation space between caption and object.)
+% and changed value of separation space between caption and object to |\quad|.)
%\begin{Quote}[0pt]
%\begin{preamble}
%|...|
% |\usepackage|{\emphcolor|[|%^^A
-% \FRkey{capbesideposition}|=inside,|%^^A
-% \FRkey{facing}|=yes,|\FRkey{capbesidesep}|=quad]|}|{floatrow}|
+% \FRkey{capbesideposition}|=inside,|
+% | |\FRkey{facing}|=yes,|\FRkey{capbesidesep}|=quad]|}|{floatrow}|
%\end{preamble}
%|\begin{figure}|
%|\|\FRkey[FB]{fcapside}
%| {\caption{...}\label{...}}|
%| {...}|
-%|\end{figure}|\vspace*{-\intextsep}
+%|\end{figure}|\enlargethispage\baselineskip\vspace*{-\intextsep}
%\end{Quote}
%\begingroup\floatsetup{style=default,capbesideposition=inside,facing=yes,capbesidesep=quad}%
%\clearcaptionsetup{capbesidefigure}
@@ -715,19 +749,19 @@
% \end{figure}
%\endgroup
% The width of text,
-% by default, divided into two columns, their width equals to the half text
-% (figure~\ref{intro:beside}) excluding float margins and
-% horizontal space (or width of the separation material) between float and caption.
+% by default, divided into two columns, their width equals to the half text width
+% (figure~\ref{intro:beside}) float margins and
+% horizontal space (or width of the separation material) between float and caption are taken into account.
% The one column is occupied by the object, the other by the caption and foot material (explications
% or legends and footnotes).
%
% If you set the |[\FBwidth]| option:
-% \FRmpar{Caption's width equals to object}{FAD:FBwidthII}
+% \FRmpar{The width of object box equals to object}{FAD:FBwidthII}
%\begin{Quote}
%|...|\nopagebreak
%|\fcapside[\FBwidth]|\nopagebreak
%|...|
-%\end{Quote}
+%\end{Quote}\vspace*{-.5\intextsep}
%\begingroup\floatsetup{style=default,capbesideposition=inside,facing=yes,capbesidesep=quad}%
%\clearcaptionsetup{capbesidefigure}
% \begin{figure}[H]
@@ -741,7 +775,7 @@
% \input{Bear.picture}}}
% \end{figure}
%\endgroup
-% The graphic column width will be equal to the width of the graphics and the caption
+% the graphic box width will be equal to the width of the graphics and the caption
% will occupy the rest space (see figure~\ref{intro:beside:FBwidth}).
%
% The examples above show the most frequent and most simple variants of float creation. Read
@@ -766,12 +800,14 @@
% {\emphcolor\FRkey{style}|=Plaintop|}|}|\nopagebreak
%\end{preamble}
%|\begin{table}|
-%| \begin{floatrow}|
-%| \ttabbox|
-%| {\caption{...}\label{...}}{...}|
-%
+%| \begin{|\FRkey[sec]{floatrow}|}|
+%| \|\FRkey[FB]{ttabbox}
+%| {\caption{...}\label{...}}|
+%| {...}|
+%| |
%| \ttabbox|
-%| {\caption{...}\label{...}}{...}|
+%| {\caption{...}\label{...}}|
+%| {...}|
%| \end{floatrow}|\nopagebreak
%|\end{table}|\vspace*{-\intextsep}
%\end{Quote}
@@ -822,8 +858,8 @@
%
% In the example with beside floats the special settings for table captions were applied
% (see \package{caption} package documentation).
-% Float layout: The value of the separation space between beside floats have been changed,
-% the vertical skip between captions and float objects was also changed. For the tables
+% Float layout: The value of the separation space between beside floats have been changed to |\qquad|,
+% the vertical skip between captions and float objects was changed to 5pt. For the tables
% the style |Plaintop| was used which not only puts captions above, but also aligns them by top line
% (see \sectionname~\ref{sec:floatsetup} of current documentation).
%
@@ -850,16 +886,17 @@
% \end{table}
% \endgroup
%
-% So if you want to put table captions above its contents~\nobreak\quad
-% 1)\nobreak\enskip change code, using command |\ttabbox|,
-% like in table~\ref{intro:table};~\nobreak\quad2)\nobreak\enskip
+% So if you want to put table captions above its contents\startNotes
+% \Note change code, using command |\ttabbox|,
+% like in table~\ref{intro:table}; \Note
% write |\|\FRkey[sec]{floatsetup}|[table]|\allowbreak|{|\FRkey{style}|=plaintop}| in the preamble
-% ({\sectionname}~\ref{sec:floatsetup}); or~\nobreak
-% \quad3)\nobreak\enskip restore the standard \LaTeX{} behavior with the |\RawFloats| command
+% ({\sectionname}~\ref{sec:floatsetup}); or
+% \Note restore the standard \LaTeX{} behavior with the |\RawFloats| command
% or the package option |rawfloats| ({\sectionname}~\ref{sec:rawfloats}).
%
% The next example. If you put beside floats by following way:
%\par\nobreak\vbox{\begin{Quote}
+%|...|\nopagebreak
%|\begin{figure}|\nopagebreak
%|\begin{minipage}{0.45\textwidth}|
%| \centering ...|
@@ -891,7 +928,7 @@
% The examples in Introduction ({\sectionname}~\ref{sec:intro:flbox})
% use three commands |\ttabbox|, |\ffigbox| and |\fcapside|. All these commands
% were built using the |\floatbox| macro.
-% This macro creates the float box with necessary positioning of its elements (object,
+% This macro creates the float box with defined positioning of its elements (object,
% caption, foot material) and applies the layout of current float type.
% The usage of the |\floatbox| macro looks like:
% \begin{Quote}
@@ -914,7 +951,7 @@
% \item[\meta{captype}]the type of float this command is created for. Since this command
% is supposed to appear outside floating environments or in ``foreign'' environments
% (see {\sectionname}~\ref{sec:mixrow} below),
-% we write here, usually, the actual name of float type;
+% we write here, usually, the \emph{actual} name of float type;
% \item[\meta{width}]the width of object---caption box
% (in case of caption above or below object),
% or width of object box (if caption stays beside object).
@@ -926,7 +963,7 @@
% \item[\meta{vert pos}]vertical alignment of object contents in
% object's box in case of the \meta{height} argument differs from the natural value of
% object height, or in the float layout there are used settings
-% for common heights of float objects inside |floatrow| environment.
+% for common (max) height for float objects inside |floatrow| environment.
% Arguments are analogous to |minipage|'s ones:
% \begin{Options}{cc}
% \item[t]
@@ -940,11 +977,11 @@
% \end{Options}\pagebreak[1]
% \item[\meta{caption}]text of caption; you
% may also use the |\footnote|/\allowbreak|\mpfootnotemark|/\allowbreak|\footnotetext| stuff
-% for footnotes inside float and/or |\floatfoot| command;
+% for footnotes inside float, and/or |\floatfoot| command;
% \item[\meta{object}]contents of float; you may also use the
% |\footnote|/\allowbreak|\mpfootnotemark|/\allowbreak|\footnotetext| stuff and/or
% |\floatfoot| command.
-% \end{description}
+% \end{description}\enlargethispage{\baselineskip}
% \emph{Note}. The order of the two last mandatory arguments,
% \meta{caption} and \meta{object}, and their contents makes no
% difference during building of float box. The |\floatbox| macro
@@ -957,9 +994,9 @@
% The |[\FBwidth]| option%^^A
% \FRmpar{Caption's width\\ equals to object}{FAD:FBwidthIII}
% in~the \meta{width} argument
-% allows usage of natural width of float contents:~\nobreak\qquad1)\nobreak\enskip
+% allows usage of natural width of float contents:\startNotes\Note
% for full float box in the case of caption
-% above/\allowbreak below;~\nobreak\qquad2)\nobreak\enskip in~the case of caption beside float object,
+% above/\allowbreak below; \Note in~the case of caption beside float object,
% the natural width of float object expands to the
% object box only.
%
@@ -977,10 +1014,10 @@
% when \package{calc} is loaded: you may define height option like |[\FBheight+1cm]|.
%
% \subsubsection{Complex Example of Usage of \texorpdfstring{\cs{floatbox}}{floatbox} Command}
-% The next example shows |figure| environment with beside caption.
+% The next example shows |figure| environment with beside caption.
% In this example the \meta{preamble} argument consists of rather complex definition.
% The \meta{width} option includes the |\FBwidth| command, so the object box
-% has its natural width, the with of caption box equals to 4cm, and all lines in
+% has its natural width, the width of caption box equals to 4cm, and all lines in
% caption justified, but the last one flushed to the right.
%
%\begin{Quote}
@@ -1000,7 +1037,7 @@
%| {\caption{...}\label{...}}|
%| {...}|
%|\end{figure}|
-%\end{Quote}
+%\end{Quote}\vspace*{-2\intextsep}\enlargethispage\baselineskip
%\begingroup
% \begin{figure}[H]
% \floatbox[{\capbeside
@@ -1076,12 +1113,12 @@
% the height of object---caption box
% (in case of caption above or below object),
% or height of object box (if caption stays beside object). The |[\FBheight]|
-% option sets natural object height. With the empty width option, |[]|, is used
+% option sets natural object height. With the empty height option, |[]|, is used
% the natural height of object;
% \item[\meta{vert pos}]
% vertical alignment of object contents in
% object's box in the case of \meta{height} argument has a~different value than
-% natural height of object contents, or in the float layout there are used settings for common
+% natural height of object contents, or in the float layout there are used settings for common (max)
% heights of float elements (object or/and caption) inside |floatrow| environment.
% Arguments are analogous to |minipage|'s:
% |t|, |c|, |b|, |s| (see above).
@@ -1114,9 +1151,9 @@
% with doubled first letters, |\ffigbox| and |\ttabbox| were created, because of the
% expected names, |\figbox| and |\tabbox|, are already used by the \package{floatflt}
% package, which creates figures and tables which do not span the full width of a page and
-% are filled around by text (i.e. \emph{wrapped} floats, see {\sectionname}~\ref{ssec:floatflt} on the
-% page~\pageref{ssec:floatflt}). Also there were founded |\figbox| in \package{formlett}
-% package and |\tabbox| in \package{automata} package among styles in \LaTeX{} folder.
+% are filled around by text (i.e. \emph{wrapped} floats, see {\sectionname}~\ref{ssec:floatflt}).
+% Also there were founded |\figbox| in \package{formlett}
+% and |\tabbox| in \package{automata} package among styles in \LaTeX{} folder.
%
%\end{small}
%
@@ -1135,7 +1172,7 @@
%
% The |floatrow| environment creates necessary number of ``columns'',
% the default number is two, where floats are placed (during the calculation of width of column
-% there are excluded widths of the separations between beside floats and margins around the float row).
+% the widths of the separations between beside floats and margins around the float row are taken into account).
% You may redefine the width of each float box,
% e.g. the boxes of tables~\ref{tab:row:tabIII} and~\ref{tab:row:tabIV} (page~\pageref{tab:row:tabIII})
% have the width of their contents
@@ -1151,13 +1188,11 @@
%|\begin{figure}|\nopagebreak
%| \begin{floatrow}|\nopagebreak
%| \ffigbox[\FBwidth]|
-%| {...}|
-%| {\caption{...}\label{...}}|
-%| |
+%| {...}{\caption{...}\label{...}}|
+%
%| \ffigbox[\Xhsize]|%^^A
% \FRmpar{Float occupies the rest space in the row}{FAD:floatfillspace}
-%| {...}|
-%| {\caption{...}\label{...}}|
+%| {...}{\caption{...}\label{...}}|
%| \end{floatrow}|\nopagebreak
%|\end{figure}|
%\end{Quote}
@@ -1200,24 +1235,20 @@
%|\begin{figure*}|
%|\begin{floatrow}|{\emphcolor|[4]|}
%| \ffigbox|\nopagebreak
-%| {\caption{Beside figure~I...}...}|\nopagebreak
-%| {...}|
+%| {\caption{Beside figure~I...}...}{...}|\nopagebreak
%
%| \ffigbox[\FBwidth]|\nopagebreak
-%| {\caption{Beside figure~II...}...}|\nopagebreak
-%| {...}|
+%| {\caption{Beside figure~II...}...}{...}|\nopagebreak
%
%| \ffigbox[\Xhsize/2]|\nopagebreak
-%| {\caption{Beside figure~III...}...}|\nopagebreak
-%| {...}|
+%| {\caption{Beside figure~III...}...}{...}|\nopagebreak
%
%| \ffigbox[\Xhsize]|\nopagebreak
-%| {\caption{Beside figure~IV...}...}|\nopagebreak
-%| {...}|
+%| {\caption{Beside figure~IV...}...}{...}|\nopagebreak
%|\end{floatrow}|
%|\end{figure*}|
%\end{Quote}
-%\begingroup
+%\begingroup\makeatletter
% \floatsetup[widefloat]{margins=hangleft}
% \begin{figure*}%
% \begin{floatrow}[4]
@@ -1260,25 +1291,25 @@
% appear on the left side (like in current document).
%
% \subsubsection{Mixed Row}\label{sec:mixrow}
-% \textbf{Problems}. 1.\enskip Sometimes, for example, it is necessary to put beside figure and table.
-% The problem of such mixed row is that you must put different types of float in
+% \textbf{Problems}.\startNotes\Note Sometimes, for example, it is necessary to put beside
+% figure and table. The problem of such mixed row is that you must put different types of float in
% one floating environment, which sets its own layout for included float box(es).
%
-% 2.\enskip Another problem is that figures usually have captions below
+% \Note Another problem is that figures usually have captions below
% graphics, but tables could have caption \emph{above} their contents.
% The alignment of all floats is similar: the bottom of upper part and
% top of lower part. In this case if you want to put such beside figure
% and table you'll get an undesirable result.
%
% \DescribeMacro{\killfloatstyle}
-% \textbf{Solutions}. 1.\enskip For creation of right layouts for each float type in mixed row, you ought to write
-% |\|\FRkey{killfloatstyle} command just before each ``foreign''
+% \textbf{Solutions}.\startNotes\Note For creation of right layouts for each float type in mixed row,
+% you ought to write |\|\FRkey{killfloatstyle} command just before each ``foreign''
% (for current floating environment) |\floatbox| macro.
%
% \DescribeMacro{\CenterFloatBoxes}
% \DescribeMacro{\TopFloatBoxes}
% \DescribeMacro{\BottomFloatBoxes}
-% {\sloppy2.\enskip For correct vertical alignment of different float types, which put captions in different
+% {\sloppy\Note For correct vertical alignment of different float types, which put captions in different
% positions, you may use one of the following commands:
%\begin{Quote}
%|\CenterFloatBoxes|\label{FB:CenterFloatBoxes}
@@ -1326,7 +1357,7 @@
% \begin{figure}[H]\CenterFloatBoxes
% \begin{floatrow}
% \ffigbox[\FBwidth]
-% {\unitlength1.86\unitlength\input{Horse.picture}}
+% {\unitlength1.75\unitlength\input{Horse.picture}}
% {\caption{A \texttt{Boxed} figure in the mixed row}\label{fig:rowmixspec:WcatI}}%
% \extrarowheight1pt
% \killfloatstyle
@@ -1337,7 +1368,7 @@
% \end{figure}
% \endgroup
% \MakeShortVerb{\|}%
-% \RestoreSpaces
+% \RestoreSpaces\enlargethispage{\baselineskip}
%
% \emph{Note.} Both figure and table boxes have got width equal to
% contents of objects: the |\ffigbox| command in the example has optional argument
@@ -1350,15 +1381,15 @@
% of creation of common layout for all floats. This redefinition creates
% some limitations for source document file, which were mentioned in
% introduction (see \sectionname~\ref{floatrow:wrong}). If you still need a raw behavior
-% of floating environment, you may do that by one of the following three ways.
+% of floating environment, you may do that by one of the following three ways.\startNotes
%
-% \DescribeMacro{\RawFloats}\label{setup:RawFloats}%^^A
-% 1.\enskip If you want \LaTeX\ behavior \emph{just for one environment},
+% \Note\DescribeMacro{\RawFloats}\label{setup:RawFloats}%^^A
+% If you want \LaTeX\ behavior \emph{just for one environment},
% input a |\RawFloats| command \emph{inside} environment:
%\begin{Quote}
%\begin{preamble}
%|\|\FRkey[sec]{floatsetup}|[figure]{|\FRkey{style}|=Boxed}|\%{ \em please note, it does nothing here}
-%\end{preamble}
+%\end{preamble}\vskip-\lastskip
%|\begin{figure}\RawFloats|\nopagebreak
%|\captionsetup[table]{position=top}|
%|\begin{minipage}{0.45\textwidth}|
@@ -1377,11 +1408,11 @@
% \begin{figure}[H]\RawFloats
% \captionsetup[table]{position=top}
% \begin{minipage}{0.45\textwidth}
-% \centering {\unitlength1.86\unitlength\input{Horse.picture}}
+% \centering {\unitlength1.44\unitlength\input{Horse.picture}}
% \caption{A figure in raw \LaTeX's mode}\label{Right:expect:fig}
% \end{minipage}\quad\hfill
% \killfloatstyle\begin{minipage}{0.45\textwidth}
-% \captionof{table}{A table in raw \LaTeX's mode}\label{Right:expect:tab}
+% \captionof{table}{A beside table in raw \LaTeX's mode}\label{Right:expect:tab}
% \centering\tabcolsep5\tabcolsep
% \begin{tabular}{|c|c|}\hline A & B \\ C & D \\ \hline\end{tabular}
% \end{minipage}
@@ -1409,8 +1440,8 @@
% \begin{figure}[ht]\RawFloats\CenterFloatBoxes
% \begin{floatrow}
% \ffigbox[\FBwidth]
-% {\unitlength1.88\unitlength\input{Horse.picture}}
-% {\caption{A figure in \cmd{\ffigbox} and inside \texttt{floatrow} in raw \LaTeX's mode}%
+% {\unitlength1.44\unitlength\input{Horse.picture}}
+% {\caption{A figure in \cmd{\ffigbox} and inside \texttt{floatrow} in raw \LaTeX's mode}%
% \label{leftfig:raw}}%
%
% \ttabbox
@@ -1423,7 +1454,7 @@
% \end{figure}%^^A
%\endgroup
%
-% 2.\enskip Canceling of \package{floatrow}'s behavior for \emph{all floats of one type
+% \Note Canceling of \package{floatrow}'s behavior for \emph{all floats of one type
% or subtype} should be done outside any floating environment, usually in the
% preamble of the document. In this case the |\RawFloats| command needs optional
% argument with name(s) of float type. You may set that by two ways:
@@ -1446,33 +1477,46 @@
% {\sectionname}~\ref{sec:floatsetup}, but you may use here only options
% which include ``float'' word).\label{FAD:PlainFloatII}%^^A
%
-% \DescribeMacro{rawfloats}\label{setup:rawfloats}%^^A
-% 3.\enskip This option stores the plain \LaTeX{} mode (i.e. stores usage of
+% \Note\DescribeMacro{rawfloats}\label{setup:rawfloats}%^^A
+% This option stores the plain \LaTeX{} mode (i.e. stores usage of
% standard \LaTeX{} float macros) for all \emph{standard and new defined}
% float types. This option can be used only in |\usepackage| line.
%
%\medskip
-% \emph{Notes}.\nopagebreak
+% \emph{Notes}.\startNotes\nopagebreak
%
-% 1)\enskip Please note that with |\RawFloats[...]| command and |rawfloats=| key
+% \Note Please note that with |\RawFloats[...]| command and |rawfloats=| key
% you will cancel layout (|\floatsetup|) settings of all chosen float types/subtypes
-% ({\sectionname}~\ref{sec:floatsetup}).
+% ({\sectionname}~\ref{sec:floatsetup}) for plain floats.
%
-% {\sloppy2)\enskip The |floatrow| environment ({\sectionname}~\ref{sec:floatrow})
+%\begingroup
+% {\emergencystretch2em\Note The |floatrow| environment ({\sectionname}~\ref{sec:floatrow})
% and commands of |\floatbox| stuff ({\sectionname}~\ref{sec:floatbox})
% still work after |\RawFloats[...]| command and |rawfloats=| key
% (see example with figure~\ref{leftfig:raw}
% and table~\ref{righttab:raw})\label{FAD:MixedRow}.
-% But inside |\floatbox| commands can work only layout settings
-% of the package, written in |\usepackage| line and inside |\floatsetup{...}|,
-% and settings for main types of floats like |\floatsetup[figure]{...}|
-% or |\floatsetup[table]{...}|. The settings for all other layout subtypes
+% Also note that\startNotes\def\theNote{\alph{Note}}\Note
+% the layout settings of the package, written in |\usepackage| line
+% and inside |\floatsetup{...}| command, and settings for main types of floats
+% like |\floatsetup|\allowbreak|[figure]{...}| or |\floatsetup|\allowbreak|[table]{...}|
+% still can work inside |\|\FRkey{floatbox} commands; \Note for the figures inside |\fcapside|
+% command and similar ones (with the |\|\FRkey{capbeside} command
+% inside the |\floatbox|'s \meta{preamble} option)---the settings |\floatsetup|\allowbreak|[capbesidefloat]{...}|
+% and |\floatsetup|\allowbreak|[capbesidefigure]{...}| or |\floatsetup|\allowbreak|[capbesidetable]{...}|
+% work; \Note inside the \FRkey{floatrow} environment---the settings |\floatsetup|\allowbreak|[floatrow]{...}|
+% and |\floatsetup|\allowbreak|[figurerow]{...}| or |\floatsetup|\allowbreak|[tablerow]{...}| are added
+% to the settings for |\floatbox|'es inside;
+% \Note also you may use |\|\FRkey{thisfloatsetup} settings in the case of usage of |\floatbox| commands.
+%
+% The settings for all other layout subtypes
% (see {\sectionname}~\ref{sec:floatsetup}) will be canceled.\par}
+%\endgroup
%
% \subsubsection{Raw Caption---Printing in Unusual Way}
% \DescribeMacro{\RawCaption}\label{setup:RawCaption}%^^A
-% This command allows to ``release'' caption contents from special
-% box register. The caption is placed as argument of |\RawCaption|:
+% This command allows to ``release'' caption contents from special box register created by
+% \package{floatrow} package for the creation of necessary layout. The caption is placed as
+% argument of |\RawCaption|:
% \begin{Quote}
% |\RawCaption{\caption\marg{contents}\label{...}}|\quad.
% \end{Quote}
@@ -1483,7 +1527,7 @@
% \begin{Quote}
%\begin{preamble}
%|\|\FRkey[sec]{floatsetup}|[figure]{|\FRkey{style}|=plain}|
-%\end{preamble}
+%\end{preamble}\vskip-\lastskip
%|\begin{figure}|\lineskip0pt
%|\framebox(70,60){...}\hspace{2\unitlength}%|
%|\framebox(70,60){...}\vspace{2\unitlength}\par|
@@ -1491,15 +1535,14 @@
%|\parbox[b][60\unitlength]{70\unitlength}%|
%| {\RawCaption{\caption{...}\label{...}}}|
%|\end{figure}|
-% \end{Quote}
+% \end{Quote}\enlargethispage\baselineskip
%\floatsetup{style=plain}
%\begin{figure}[H]\unitlength1.28\unitlength\lineskip0pt
%\framebox(70,60){\input{TheCat.picture}}\hspace{2\unitlength}%%^^A
%\framebox(70,60){\unitlength.5\unitlength\input{TheCat.picture}}\vspace{2\unitlength}\par
%\framebox(70,60){\unitlength.25\unitlength\input{TheCat.picture}}\hspace{2\unitlength}%%^^A
%\parbox[b][60\unitlength]{70\unitlength}{\RawCaption{\caption
-% [Caption in raw \LaTeX{} mode, placed in the free corner of figure]{The cat's portrait,
-% printed with different scaling}\label{rawcaption:plain}}}
+% [Caption in raw \LaTeX{} mode, placed in the free corner of figure]{Caption in raw \LaTeX{} mode, placed in the free corner of figure}\label{rawcaption:plain}}}
%\end{figure}%
% The more suitable example of usage of the |\RawCaption| command see on the
% page~\pageref{fig:subIcap:IcatsI} (figure~\ref{fig:subIcap:IcatsI} with modified
@@ -1523,8 +1566,8 @@
% \begin{Quote}
% \begin{preamble}
% |\|\FRkey[sec]{floatsetup}|[table]{...,|\FRkey{footnoterule}|=none,|%^^A
-% \FRkey{footskip}|=.35 \skip\footins,...}|
-% \end{preamble}
+% \FRkey{footskip}|=.35\skip\footins,...}|
+% \end{preamble}\vskip-\lastskip
% |\begin{table}|
% |\|\FRkey[FB]{ttabbox}
% | {\caption{...}\label{...}}%|
@@ -1564,9 +1607,9 @@
% \subsection{The Legend-Like Macro}\label{subsec:floatfoot}
% In the case of table or figure have some additional explanations
% which could not put in caption contents and they are definitely not
-% a footnote you may use |\floatfoot|\label{FAD:Legend}
+% a footnote you may use the |\floatfoot|\label{FAD:Legend}
% command. The |\floatfoot| is
-% build by usage of |\caption| stuff and uses caption's text justification:
+% build by usage of |\caption| stuff and uses by default caption's text justification:
%\begin{Quote}
%|\begin{table}|\nopagebreak
%|\|\FRkey[FB]{ttabbox}
@@ -1580,7 +1623,7 @@
%\begingroup\floatsetup[table]{footnoterule=none,footskip=.35\skip\footins}
% \begin{table}[H]
% \ttabbox
-% {\caption[Table with foot material (e.g. legend)]{Table with foot material}%^^A
+% {\caption{Table with foot material (e.g. legend)}%^^A
% \label{tab:floatfoot}}%^^A
% {\extrarowheight1pt%^^A\tabcolsep2\tabcolsep
% \begin{tabular}{|l|c|c|}
@@ -1609,7 +1652,7 @@
%\begingroup\floatsetup[table]{footnoterule=none,footskip=.35\skip\footins}
% \begin{table}[H]
% \ttabbox
-% {\caption[Table with foot material (e.g. legend)]{Table with foot material}%^^A
+% {\caption{Table with foot material (e.g. legend) printed as unindented paragraph}%^^A
% \label{tab:floatfoot}}%^^A
% {\extrarowheight1pt%^^A\tabcolsep2\tabcolsep
% \begin{tabular}{|l|c|c|}
@@ -1632,7 +1675,7 @@
% define special settings for float foot using
% \cmd{\captionsetup[floatfoot]} (see~{\sectionname}~\ref{sec:floatsetup}).
%
-% \emph{Notes.} 1)\enskip The \package{float} package defines additional
+% \emph{Notes.} \startNotes\Note The \package{float} package defines additional
% optional argument after main caption text, possibly for explications.
% Since this possibility
% didn't declared in user part of documentation the current version of
@@ -1640,11 +1683,11 @@
% doesn't support this possibility. You may use |\floatfoot| and
% |\footnote|/\allowbreak|\mpfootnotemark|/\allowbreak|\footnotetext| stuff instead.
%
-% 2)\enskip If you use both commands |\floatfoot| and |\footnote|
+% \Note If you use both commands |\floatfoot| and |\footnote|
% inside one float box, the |\floatfoot| appears above |\footnote|
% contents.
%
-% 3)\enskip Foot material (footnotes and text in floatfoot) can be placed
+% \Note Foot material (footnotes and text in floatfoot) can be placed
% in several variants: at the very bottom of float box, below caption
% (even if caption is above float object; see description of \FRkey{footposition}|=| key
% on the page \pageref{setup:footposition}
@@ -1821,16 +1864,26 @@
% \end{itemize}
% \item
% Wide or two-column rotated floats
-% (|sidewaysfigure*|)\footnote{The settings
-% for wide float (|widefloat|, |widefigure|)
-% are absent---use settings for |widerotfloat|
-% and---here---|widerotfigure|}:
+% (|sidewaysfigure*|):
% \begin{itemize}
% \item |\floatsetup[widerotfigure]|\label{setup:widerotfigure};
% \item |\floatsetup[widerotfloat]|\label{setup:widerotfloat};
% \item |\floatsetup[rotfigure]|;
% \item |\floatsetup[rotfloat]|;
% \item |\floatsetup[figure]|;
+% \end{itemize}\enlargethispage\baselineskip
+% \emph{Note}. The settings
+% for wide float (|widefloat|, |widefigure|)
+% are skipped for rotated floats---use settings for |widerotfloat|
+% and---here---|widerotfigure|;\pagebreak[1]
+% \item
+% Beside floats:
+% \begin{itemize}
+% \item |\floatsetup[floatrow]|\label{setup:floatrow};
+% \item |\floatsetup[figurerow]|\label{setup:figurerow};
+% \item
+% settings of outer environment from previous items, e.g.,
+% |sidewaysfigure*|, |sidewaysfigure|, |figure*| and |figure|.
% \end{itemize}
% \item
% Floats with beside captions (please note, that settings in these options are limited,
@@ -1839,36 +1892,47 @@
% \item |\floatsetup[capbesidefigure]|\label{setup:capbesidefigure};
% \item |\floatsetup[capbesidefloat]|\label{setup:capbesidefloat};
% \item
-% setting of outer environments from previous items, e.g.,
+% settings for the float row; settings of outer environment from previous items, e.g.,
% |sidewaysfigure*|, |sidewaysfigure|, |figure*| and |figure|.
% \end{itemize}
% \end{itemize}
%
-% \emph{Notes}.\nopagebreak
+% \emph{Notes}.\startNotes\nopagebreak
%
-% 1)\enskip You can also create and change special settings for captions of
+% \Note You can also create and change special settings for captions of
% necessary float types or subtypes, using
% co-named \meta{float~type} options inside the |\captionsetup| command,
% e.g., |\captionsetup[widefigure]{...}|.
%
-% 2)\enskip Please note that with |\RawFloats[...]| command and |rawfloats=| key
+% \Note Please note that with |\RawFloats[...]| command and |rawfloats=| key
% (\sectionname~\ref{sec:rawfloats}) you will cancel all layout
% settings created as options in the |\usepackage| line or inside
% the |\floatsetup| command for all chosen float types/subtypes.
%
-% {\sloppy3)\enskip Since the |floatrow| environment ({\sectionname}~\ref{sec:floatrow})
+%\begingroup
+% {\emergencystretch2em\Note The |floatrow| environment ({\sectionname}~\ref{sec:floatrow})
% and |\floatbox| commands (e.g. |\ffigbox|, |\ttabbox|, see {\sectionname}~\ref{sec:floatbox})
% still work after both |\RawFloats| (|\RawFloats[...]|) command and |rawfloats=| key (see example width
-% figure~\ref{leftfig:raw} and table~\ref{righttab:raw})\label{FAD:MixedRow}, these boxes
-% still support layout settings. But please note, that inside |\floatbox| commands
-% only~\nobreak\quad1)\nobreak\enskip layout settings of the package,
-% written in |\usepackage| line and inside |\floatsetup{...}|,
-% and~\nobreak\quad2)\nobreak\enskip settings for main types of floats like |\floatsetup[figure]{...}|
-% or |\floatsetup[table]{...}| can work;
-% settings for all subtypes will be canceled.\par}\medskip\nopagebreak
+% figure~\ref{leftfig:raw} and table~\ref{righttab:raw})\label{FAD:MixedRowA}.
+% Also note that\startNotes\def\theNote{\alph{Note}}\Note
+% inside |\|\FRkey{floatbox} commands still can work layout settings
+% of the package, written in |\usepackage| line and inside |\floatsetup{...}| command,
+% and settings for main types of floats like |\floatsetup|\allowbreak|[figure]{...}|
+% or |\floatsetup|\allowbreak|[table]{...}|; \Note for the figures inside |\fcapside|
+% command and similar ones (with the |\|\FRkey{capbeside} command
+% inside the |\floatbox|'s \meta{preamble} option) the settings |\floatsetup|\allowbreak|[capbesidefloat]{...}|
+% and |\floatsetup|\allowbreak|[capbesidefigure]{...}| or |\floatsetup|\allowbreak|[capbesidetable]{...}|
+% work; \Note inside the \FRkey{floatrow} environment the settings |\floatsetup|\allowbreak|[floatrow]{...}|
+% and |\floatsetup|\allowbreak|[figurerow]{...}| or |\floatsetup|\allowbreak|[tablerow]{...}| are added
+% to the settings for |\floatbox|'es inside;
+% \Note also you may use |\|\FRkey{thisfloatsetup} settings in the case of usage of |\floatbox| commands.
+%
+% The settings for all other layout subtypes
+% (see {\sectionname}~\ref{sec:floatsetup}) will be canceled.\par}
+%\endgroup
%
% The next few sections describe keys of |\floatsetup| macro.
-%
+%\enlargethispage\baselineskip
% \subsection{Floatsetup Keys}\label{sec:floatkeys}
% \FRorisubsubsection{Float Style}
% \DescribeMacro{style}\label{setup:style}%^^A
@@ -1933,8 +1997,8 @@
% \hfil\thead{\cmd{\floatsetup} keys} &
% \hfil\thead{Description}
% }
-% \begin{longtable}{|>{\extrarowheight0pt\def\arraystretch{.75}\ttfamily}p{\Icolumn}
-% |>{\extrarowheight0pt\def\arraystretch{.75}\ttfamily}p{\IIcolumn}
+% \begin{longtable}{|>{\extrarowheight0pt\def\arraystretch{.75}\ttfamily\openup-.325pt}p{\Icolumn}
+% |>{\extrarowheight0pt\def\arraystretch{.75}\ttfamily\openup-.325pt}p{\IIcolumn}
% |>{\parindent1em\sloppy\topstrut}p{\IIIcolumn}<{\botstrut}|}
% \caption{Float layout styles}\label{tab:floatlayouts}\\
% \hline
@@ -1984,7 +2048,7 @@
% %^^A
% \leftcell{\topstrut Ruled\smash{\mpfootnotemark[2]}\botstrut}
% & \leftcell[50mm]{\topstrut style=ruled,\\ capposition=TOP\botstrut}
-% & Capitalized form, |Ruled|, aligns captions of the floats, which were placed
+% & Capitalized form, |Ruled|, aligns captions of the floats, which were placed beside
% in one row (in the |floatrow| environment),
% by top line (see example on the page~\pageref{leftfig:Ruled}).
% \\\hline
@@ -1992,8 +2056,8 @@
% & \leftcell[50mm]{captionskip=2pt,\\framestyle=fbox,\\
% heightadjust=object,\\framearound=object\botstrut}
% &The first style, |boxed|, emulates co-named style from the \package{float} package.
-% The \emph{width of object} equals to the |\textwidth|, predefined |\hsize|, or
-% the width in |\floatbox|'s option;
+% The \emph{width of object} equals to the width of main text (usually |\textwidth|),
+% predefined |\hsize|, or the width in |\floatbox|'s option;
% frame climbs out to the right and left sides (see example on the page~\pageref{fig:setup:boxed}).
% Frame separation and rule width equal to current |\fboxsep| and |\fboxrule| settings.
% (Default values
@@ -2001,22 +2065,23 @@
% %^^A
% \leftcell{\topstrut|Boxed|\label{setup:Boxed}\mpfootnotemark[2]\mpfootnotemark[3]\botstrut}
% & \leftcell[50mm]{\topstrut style=boxed,\\ framefit=yes\botstrut}
-% & In capitalized form, |Boxed|, \emph{the width of frame} around object fits the
-% |\textwidth|, predefined |\hsize|, or the width in |\floatbox|'s option; the width of object
+% & In capitalized form, |Boxed|, \emph{the width of frame} around object fits the width of main text
+% (usually |\textwidth|), predefined |\hsize|,
+% or the width in |\floatbox|'s option; the width of object
% is reduced to fit inside frame (see example on the page~\pageref{fig:setup:Boxed}).\\ \cline{1-2}
% %^^A
% \leftcell{\topstrut|BOXED|\smash{\mpfootnotemark[2]}\mpfootnotemark[3]\botstrut}
% & \leftcell[50mm]{\topstrut framestyle=fbox,\\ framefit=yes,\\
% heightadjust=all,\\ framearound=all\botstrut}
% & Uppercase form, |BOXED|,
-% draws frame which fits to current |\textwidth|, predefined |\hsize|,
-% or the width in |\floatbox|'s option,
+% draws frame which fits to the width of main text (usually |\textwidth|),
+% predefined |\hsize|, or the width in |\floatbox|'s option,
% but around all float elements: caption, object and foot material
% (see example on the page~\pageref{BOXED:heightmod}).
% \\ \hline
% \multicolumn{3}{|c|}{Offered by \package{fr-fancy} package.
-% They also need \package{fancybox} package.\botstrut\topstrut}\\*
-% \hline \leftcell{|shadowbox|\smash{\mpfootnotemark[4]}
+% They also need \package{fancybox} package.\botstrut\topstrut}\cr\noalign{\nobreak\hrule\nobreak}
+% \leftcell{|shadowbox|\smash{\mpfootnotemark[4]}
% \\ \botstrut\\ \hline\topstrut|Shadowbox|
% \\ \botstrut\\ \hline\topstrut|SHADOWBOX|}
% & \leftcell[50mm]{style=boxed,\\framestyle=shadowbox\botstrut\\ \hline\topstrut
@@ -2041,7 +2106,7 @@
% The frame shape is controlled by |\fboxrule| and |\fboxsep| parameters.
% \\ \hline\noalign{\penalty-9000}
% \multicolumn{3}{|c|}{Additional float styles. They also need
-% \package{fancybox} package.\botstrut\topstrut}\cr\noalign{\nobreak} \hline
+% \package{fancybox} package.\botstrut\topstrut}\cr\noalign{\nobreak\hrule\nobreak}
% \leftcell{|wshadowbox|\smash{\mpfootnotemark[4]}
% \\ \botstrut\\ \hline\topstrut|Wshadowbox|
% \\ \botstrut\\ \hline\topstrut|WSHADOWBOX|}
@@ -2058,9 +2123,9 @@
% %^^A \multicolumn3{@{}p{\hsize}@{}}
% \noalign
% {\floatfoot*{When a~float style is set with frame around object which is
-% fitted to the box width (like |Boxed|, etc.), and
+% fitted to the box width (like |Boxed|), and
% \cmd{\floatbox} macro uses \cmd{\FBwidth} command as \meta{width}
-% option, which sets box width equal to float object's width, the width of all other
+% option, which sets box width equal to float contents, the width of all other
% float elements in this case enlarged to get width of framed object
% (see figure~\ref{fig:setup:FBwidth:Boxed} on the page~\pageref{fig:setup:FBwidth:Boxed}).\vspace{-3pt}\par
% \rule{1in}{.4pt}\vspace{2pt}\parindent15pt
@@ -2073,7 +2138,7 @@
% \mpfootnotemark[3]{This style is used in the sample file \file{frsmaple02.tex}}
%
% \mpfootnotemark[4]{During usage of these styles in
-% \env{floatrow} environment you ought to enlarge
+% |floatrow| environment you ought to enlarge
% space between floats, using key \texttt{floatrowsep}.}
% }}
% \end{longtable}
@@ -2083,13 +2148,13 @@
% \subsubsection{Font Settings}\label{setup:start}
% \DescribeMacro{font}\label{setup:font}%^^A
% Defines font for float object contents. Option
-% analogous to |font=| key in |\captionsetup| stuff.\nopagebreak
+% analogous to |font=| key in |\captionsetup| stuff.\enlargethispage\baselineskip\nopagebreak
%
% Available font setting options:
%
% \begin{Options}{\OptionLabel}
% \item[scriptsize] {\scriptsize Very small size}\allowitembreaks[-4]
-% \item[footnotesize] {\footnotesize The size usually used for footnotes}\allowitembreaks
+% \item[footnotesize] {\footnotesize The size usually used for footnotes}\allowitembreaks[1]
% \item[small] {\small Small size}
% \item[normalsize] {\normalsize Normal size}
% \item[large] {\large Large size}
@@ -2119,19 +2184,24 @@
% \begin{Quote}
% |font={small,sf}|\quad .
% \end{Quote}
+% If you need to color text of your float object, you may use the mechanism,
+% created by the version \textbf{3.1} of the \package{caption} package:
+% \begin{Quote}
+% |font={small,color={blue}}|\quad .
+% \end{Quote}
%
% \addvspace\medskipamount\noindent
% \DescribeMacro{footfont}\label{setup:footfont}%^^A
-% Defines font for legends or explications (defined by |\floatfoot| command,
+% Defines font for legends or explications (defined by the |\floatfoot| command,
% see~\textsl{\sectionname}~\ref{subsec:floatfoot}). This macro
% uses |\captionsetup| mechanism (because |\floatfoot| macro
% uses \package{caption} package's mechanism and utilities). By default the font size
% of float foot text equals to footnote text: |footfont=footnotesize|.
%
% \paragraph{Font Settings for longtable.}
-% The font settings loaded in |\floatsetup|
-% in |longtable| environment could expand to captions\footnote
-% {The version 3.1 of \package{caption} package corrects that.}.
+% If you use \package{caption} package version 3.0\textbf{q},
+% the font settings, loaded in |\floatsetup|
+% in |longtable| environment, could expand to captions.
% In this case, when you write something like
% \begin{Quote}
% |\floatsetup{font={sf,scriptsize,it}...|
@@ -2140,8 +2210,8 @@
% \begin{Quote}
% |\floatsetup[longtable]{font={sf,scriptsize,it}...|
% \end{Quote}
-% for floats (or for [long]tables only), you ought to restore correct
-% font size, family, shape (here) and series for caption contents and write:
+% for floats (or for [long]tables only, option [longtable] of |\floatsetup|), you ought to restore
+% correct font size, family, shape (here) and series for caption contents and write:
% \begin{Quote}
% |\captionsetup{font={rm,small,up}...|
% \end{Quote}
@@ -2149,16 +2219,16 @@
% \begin{Quote}
% |\captionsetup[longtable]{font={rm,small,up}...|
% \end{Quote}
+% The version \textbf{3.1} of \package{caption} package corrects that.
%
% \subsubsection{Position of Caption}
% \DescribeMacro{capposition}\label{setup:capposition}%^^A
% Defines position of captions. It is similar to |position=|
% key in \package{caption} package, but it has two additional
-% options\footnote{The option \texttt{auto} isn't used by
-% \texttt{capposition=}.}:~\nobreak\qquad1)\nobreak\enskip|TOP|%^^A
+% options:\startNotes\Note|TOP|%^^A
% \FRmpar{Caption above\\ table object}{FAD:CaptionAboveTableII}, if you prefer to align captions
% above objects, in the case of beside floats (in |floatrow|
-% environment), by the top line;~\nobreak\qquad2)\nobreak\enskip|beside| to put caption
+% environment), by the top line; \Note|beside| to put caption
% beside object (this option could be more popular in settings
% for one environment, see about |\thisfloatsetup| on the
% page~\pageref{thisfloatsetup}):
@@ -2173,6 +2243,8 @@
% \item[beside] caption beside object.%^^A
%^^A% \FRmpar{Beside caption and float object}{FAD:BesideCaptionII}
% \end{Options}
+% \emph{Floatrow note}. The |auto| option does not used by the
+% |capposition=| key.
%
% Compare two examples:
% \begin{Quote}
@@ -2297,7 +2369,8 @@
% outer side of page if |twoside| option switched on
% in document class and key |facing=yes| is used;
% in |oneside| option of document (or key |facing=no| is used),
-% caption is printed at the right side.
+% caption is printed at the right side; this option makes sense for the document with usage of
+% outer margins.
% \end{Options}
%
% For vertical position there are defined three options
@@ -2313,6 +2386,31 @@
% \begin{Quote}
% |capbesideposition={top,outside}|\quad.
% \end{Quote}
+%
+% \begingroup
+% \begin{Quote}
+% \begin{preamble}
+% |\floatsetup[widefigure]{|\FRkey{margins}|=hangleft,capposition=beside,|\\%^^A
+% | capbesideposition={top,left},|\FRkey{floatwidth}|=\textwidth}|\nopagebreak
+% \end{preamble}
+% |\begin{figure*}|
+% | \includegraphics{BlackDog}|
+% | \caption{...}\label{...}|\nopagebreak
+% |\end{figure*}|
+% \end{Quote}%
+%
+% \floatsetup[widefigure]{margins=hangleft,capposition=beside,capbesideposition={top,left},floatwidth=\textwidth}
+% \begin{figure*}[H]
+% \setlength\unitlength{2.12\unitlength}\input{BlackDog.picture}%^^A
+% \caption[Wide figure with the settings of float box width \texttt{floatwidth=}\cmd{\textwidth};
+% caption beside object (on the margins),
+% top aligned]{Wide figure with the settings of float box width
+% \texttt{floatwidth=}\cmd{\textwidth}; caption beside object (on the margins),
+% aligned by top of graphics}%
+% \label{fig:capbeside}
+% \end{figure*}%
+% \endgroup
+%
% See examples in file \file{frsample02.tex} with all variants of
% position of captions beside float objects.
%
@@ -2344,7 +2442,10 @@
% \end{Quote}
% It could be used at first for settings of one floating environment
% (see page~\pageref{thisfloatsetup} about settings for current floating environment
-% and |\thisfloatsetup|).\pagebreak[1]
+% and |\thisfloatsetup|). Such settings anyway may be used for example for wide floats
+% with the object width equal to main text width (|floatwidth=\textwidth|) and
+% beside caption placed on the margins (see figure~\ref{color:frame}).
+% \pagebreak[1]
%
% \begingroup
% \begin{Quote}
@@ -2446,7 +2547,6 @@
% |{|\FRkey{capposition}|=beside,|
% | |\FRkey{floatwidth}|=9cm,|%^^A
% \FRkey{capbesidewidth}|=sidefil}|
-%| |
% \end{Quote}%
% \floatsetup[figure]{capbesideframe=no}
% \thisfloatsetup{capposition=beside,floatwidth=9cm,capbesidewidth=sidefil}
@@ -2481,7 +2581,7 @@
% beside float object, footnotes and foot text are always placed below
% caption.
%
-% Next example shows the usage of the |caption| option of this key:
+% The next example shows the usage of the |caption| option of this key:
%\begin{Quote}
%\begin{preamble}
%|\floatsetup{|\FRkey{style}|=ruled,footposition=caption}|
@@ -2547,14 +2647,14 @@
% \begin{figure}[H]\floatsetup{style=ruled}\killfloatstyle
% \begin{floatrow}
% \ffigbox
-% {\unitlength.8\unitlength\input{BlackCat.picture}}
+% {\unitlength.75\unitlength\input{BlackCat.picture}}
% {\caption{Left \texttt{ruled} figure}%
% \label{leftfig:ruled}}%
%
% \ffigbox
% {\caption{The beside figure at the right side uses settings of \texttt{ruled} layout}%^^A
% \label{rightfig:ruled}}
-% {\unitlength1.25\unitlength\input{Cat.picture}}
+% {\unitlength1.15\unitlength\input{Cat.picture}}
% \end{floatrow}
% \end{figure}%^^A
%\begin{Quote}
@@ -2566,14 +2666,14 @@
% \begin{figure}[H]\floatsetup{style=Ruled}\killfloatstyle
% \begin{floatrow}
% \ffigbox
-% {\unitlength.8\unitlength\input{BlackCat.picture}}
+% {\unitlength.75\unitlength\input{BlackCat.picture}}
% {\caption{Left \texttt{Ruled} figure}%
% \label{leftfig:Ruled}}%
%
% \ffigbox
% {\caption{The beside figure at the right side uses settings of \texttt{Ruled} layout}%^^A
% \label{rightfig:Ruled}}
-% {\unitlength1.25\unitlength\input{Cat.picture}}
+% {\unitlength1.15\unitlength\input{Cat.picture}}
% \end{floatrow}
% \end{figure}\pagebreak[1]
%
@@ -2591,7 +2691,7 @@
% aligns objects by top line;
% \item[c]
% aligns objects by center line (this is default for all float styles which
-% use |heightadjust=object| or |heightadjust=all| settings, see examples above);
+% use |heightadjust=object| or |heightadjust=all| settings, see examples above);
% \item[b]
% aligns objects by bottom line;
% \item[s]
@@ -2600,11 +2700,11 @@
%
% Next example (figure~\ref{BOXED:heightmod}) shows default vertical centered alignment
% for figure with changed height (remember that empty \meta{width} option means |\hsize|).
-%\begin{Quote}
+%\begin{Quote}\openup-.5pt
%\begin{preamble}
%|\floatsetup{style=BOXED}|
%|\usepackage{calc}|\nopagebreak
-%\end{preamble}
+%\end{preamble}\vskip-.5\lastskip
% |\begin{figure}|\nopagebreak
% | \|\FRkey[FB]{ffigbox}|[][\FBheight+2cm]|\nopagebreak
% |...|
@@ -2623,7 +2723,7 @@
% also the |valign=t| option was added.
%^^A% (see also example with various alignment on the page
%^^A% \pageref{example:ruledcapposTOP}).
-%\begin{Quote}
+%\begin{Quote}\openup-.5pt
%\begin{preamble}
%|\floatsetup{style=BOXED,valign=t}|
%|\usepackage{calc}|\nopagebreak
@@ -2643,14 +2743,14 @@
% \begin{figure}[H]\floatsetup{style=BOXED,valign=t}\killfloatstyle
% \begin{floatrow}
% \ffigbox[\FBwidth+2cm]
-% {\unitlength.9\unitlength\input{BlackCat.picture}}
+% {\unitlength.8\unitlength\input{BlackCat.picture}}
% {\caption{The left beside figure uses settings for vertical top alignment}%
% \label{leftfig:BOXED:valigned}}%
%
% \ffigbox[\FBwidth+2cm][2\FBheight]
% {\caption{The beside figure at the right side in float row uses settings for vertical top alignment too}%^^A
% \label{rightfig:BOXED:valigned}}
-% {\unitlength1.25\unitlength\input{Cat.picture}}
+% {\unitlength1\unitlength\input{Cat.picture}}
% \end{floatrow}
% \end{figure}%^^A
% Please look at the \meta{height} and \meta{width} options of |\ffigbox|
@@ -2659,10 +2759,11 @@
% you may set the height and widths in this way with \package{calc} package.
% Right figure in the row has double height in the \meta{height} argument of |\ffigbox|.
%
+%
% \subsubsection{Facing Layout}
% \DescribeMacro{facing}\label{setup:facing}%^^A
% This key defines whether facing layout is used
-% for floats, if it switched on, key options, which create different layout for even and odd pages
+% for floats, if it is switched on, key options, which create different layout for even and odd pages
% are switched on. This key works if |twoside| option is switched on inside the
% document class line.
%
@@ -2684,10 +2785,10 @@
% \begin{Options}{RaggedRigh}
% \item[justified]
% Blocks (in the case of a~picture or text in parbox)
-% moved to the left, the text aligned as a normal paragraph (without indentation). (This is the default.)
+% moved to the left, the text aligned as a normal paragraph (without indentation).
%
% \item[centering]
-% Blocks centered, each line of the object text will be centered.
+% Blocks centered, each line of the object text will be centered. (This is the default.)
%
% \item[raggedright]
% Blocks moved to the left, each line of the text shoved to the left margin.
@@ -2717,13 +2818,25 @@
% captions above/below, of float boxes with beside captions, and of
% |floatrow| environments. It has following three predefined
% options:
-% \begin{Options}{RaggedRigh}
+% \begin{Options}{hangoutside}
% \item[centering]
% float box centered;
% \item[raggedright]
% float box flushed to the left (see figure~\ref{fig:floatwidth});
% \item[raggedleft]
-% float box flushed to the right.
+% float box flushed to the right;
+% \item[hangleft]
+% usually for wide floats: left edge of float boxes hangs to the margin space (there are used
+% |\marginparwidth| and |\marginparsep| values; the |\leftskip| and |\rightskip| values are
+% added, which have been taken from the settings of the |objectset=| key);
+% \item[hangright]
+% analogous to previous, right edge of floats boxes hangs to the margin space;
+% \item[hanginside]
+% analogous to previous, but in this option hangs inner edge for facing/twoside layout,
+% or left margin for one side layout;
+% \item[hangoutside]
+% analogous to previous, but in this option hangs outer edge for facing/twoside layout,
+% or right margin for one side layout;
% \item[...]
% You may create your own alignment settings with \\|\DeclareMarginSet| command, see
% page~\pageref{ssec:decl:marg}.
@@ -2788,9 +2901,9 @@
% Usage of such float layout supposes that all
% float objects with beside captions are narrower than |\hsize| (|\textwidth|) by at least 2~caption
% widths. Please note the |\FCwidth| command in the definition of |mcapwidth|
-% key---later you may change the width of beside caption (loading the changed |capbesideposition=|
-% key inside |\thisfloatsetup| settings), and, in spite of the value of the separator also
-% will be changed, picture will be anyway
+% key---later you may change the width of beside caption (loading e.g.
+% |\thisfloatsetup|\allowbreak|{capbesidewidth=8cc}| settings), and, in spite of the value
+% the separator also will be changed, picture will be anyway
% centered accordingly to full \verb|\hsize|.
%
% \begingroup
@@ -2861,6 +2974,10 @@
% You may create your own options with the |\DeclareFloatVCode| command,
% see page~\pageref{ssec:decl:rule}.
% \end{Options}
+% The |rowprecode=| and~|rowpostcode=| keys, in the case of unfilled row
+% may occupy the whole width of the predefined size or get the natural width of row,
+% depending to the defined settings of row contents (see description of the
+% \FRkey{rowfill} key, page~\pageref{setup:rowfill}).
%
% \subsubsection{Defining Float Frames}
% \DescribeMacro{framestyle}\label{setup:framestyle}%^^A
@@ -2872,6 +2989,14 @@
% \item[colorbox]
% colored frame, needs also \package{color} package;
% if not defined, the |\fbox| command is used instead.
+% \item[FRcolorbox]\label{setup:FRcolorbox}%
+% colored frame which allow to set additional material attached to its corners,
+% needs also \package{color} package;
+% if not defined, there is used |\fbox|;
+% \item[corners]\label{setup:corners}%
+% the same as previous but without |\colorbox|---it puts the corner material only
+% (current option doesn't need the frame definition);
+% anyway it needs also \package{color} package.
% \end{Options}
% There are options for additional frames, offered by \package{fr-fancy}
% package, installed with |floatrow|:
@@ -2893,15 +3018,26 @@
% \begin{Quote}
% |frameset={\fboxrule1pt\fboxsep12pt}|\quad.
% \end{Quote}
+% The default settings for frame building with the
+% |\fbox| command:
+% \begin{Quote}
+% |\fboxrule=.4pt \fboxsep=3pt|\quad.
+% \end{Quote}
%
% \noindent
% \DescribeMacro{framearound}\label{setup:framearound}%^^A
% Declares element of float box to be framed:
% \begin{Options}{\OptionLabel}
+% \item[none]
+% no frames (usually not used);
% \item[object]
% float object contents;
% \item[all]
-% full float box including object, caption, and any foot text.
+% full float box including object, caption, and any foot text;
+% \item[row]
+% float row of beside floats, or alone float;
+% \item[none]
+% nothing.
% \end{Options}
%
% \addvspace\medskipamount\noindent
@@ -2916,9 +3052,11 @@
% float box (|framefit=no|, see figure~\ref{fig:setup:boxed}).
% \begingroup
% \begin{Quote}%
+%\begin{preamble}%
% |\floatsetup[figure]{framestyle=fbox,|\nopagebreak
% | framearound=object,frameset={\fboxrule1pt\fboxsep10pt},|
% | framefit=yes}%|$\approx|style=Boxed|$
+%\end{preamble}%
% |\begin{figure}|
% |\|\FRkey[FB]{ffigbox}|[4cm]|
% | {...}{\caption{...}}|\nopagebreak
@@ -2932,7 +3070,9 @@
% box (here: caption)}\label{fig:setup:Boxed}}
% \end{figure}%
% \begin{Quote}%
+%\begin{preamble}%
% |\floatsetup[figure]{...,framefit=no}%|$\approx|style=boxed|$
+%\end{preamble}%
% |\begin{figure}|%
% |\|\FRkey[FB]{ffigbox}|[4cm]|
% | {...}{\caption{...}}|\nopagebreak
@@ -2946,11 +3086,14 @@
% left sides}\label{fig:setup:boxed}}
% \end{figure}%
%
-% Next follows an example with |framefit=yes| key in the case of |[\FBwidth]| option of |\ffigbox|
+% Next follows an example with |framefit=yes| key in the case of |[\|\FRkey{FBwidth}|]|
+% option of |\ffigbox|
% command. In this case the width of float box (here: the width of caption) expanded to the
% width of framed object.
% \begin{Quote}%
+%\begin{preamble}%
% |\floatsetup[figure]{...,framefit=yes}%|$\approx|style=Boxed|$
+%\end{preamble}%
% |\begin{figure}|
% |\|\FRkey[FB]{ffigbox}|[\|\FRkey[FB]{FBwidth}|]|
% | {...}{\caption{...}}|
@@ -2967,11 +3110,133 @@
% \end{figure}%
% \endgroup
%
+% \addvspace\medskipamount\noindent
+% \DescribeMacro{rowfill}\label{setup:rowfill}%^^A
+% Boolean key which in the case of |true| the material above and below float
+% row (the |rowprecode=| and |rowpostcode=| keys) or row frames (|framestyle=row| option)
+% will be expanded to full predefined width, otherwise the rule or frame material will
+% have natural width of beside float boxes. (Unfilled row aligned using the
+% |objectset=| settings.) Default value is |false|.
+%
+%\begin{Quote}
+%\begin{preamble}
+%|\|\FRkey{DeclareColorBox}|{yellowplate}{\colorbox{yellow}}|
+%|\floatsetup{style=plain,|\FRkey{framestyle}|=colorbox,|
+%| |\FRkey{framearound}|=row,|\FRkey{colorframeset}|=yellowplate,|\FRkey{frameset}|={\fboxrule0pt},|
+%| |\FRkey{framestyle}|=colorbox,|\FRkey{framefit}|=yes,|\FRkey{heightadjust}|=object,|\FRkey{valign}|=c}|
+%|\usepackage{calc}|\nopagebreak
+%\end{preamble}
+% |\begin{figure}|
+% |\begin{|\FRkey[sec]{floatrow}|}|
+% | \|\FRkey[FB]{ffigbox}|[\|\FRkey[FB]{FBwidth}|+2cm]|
+% | {...}|
+% |\end{floatrow}|\nopagebreak
+% |\end{figure}|\vspace*{-.75\intextsep}
+%\end{Quote}%
+%\begingroup\floatsetup{style=plain,framearound=row,colorframeset=yellowplate,frameset={\fboxrule0pt},
+% framestyle=colorbox,framefit=yes,heightadjust=object,valign=c}
+% \begin{figure}[H]
+% \begin{floatrow}
+% \ffigbox[\FBwidth+2cm]
+% {\unitlength.9\unitlength\input{BlackCat.picture}}
+% {\caption{The left beside figure uses settings for vertical top alignment}%
+% \label{leftfig:BOXED:valigned:rowbox}}%
+% \ffigbox[\FBwidth+2.4cm]
+% {\caption{The beside figure at the right side in float row uses settings for vertical top alignment too}%^^A
+% \label{rightfig:BOXED:valigned:rowbox}}
+% {\unitlength1.25\unitlength\input{Cat.picture}}
+% \end{floatrow}
+% \end{figure}%^^A
+%\endgroup
+% The result you see in the row of
+% figures~\ref{leftfig:BOXED:valigned:rowbox}, \ref{rightfig:BOXED:valigned:rowbox}.
+%
+%\begin{Quote}
+%\begin{preamble}
+%|\floatsetup{...rowfill=yes}|
+%|...|\nopagebreak
+%\end{preamble}
+% |...|\vspace*{-.75\intextsep}
+%\end{Quote}%
+%\begingroup\floatsetup{style=plain,framearound=row,colorframeset=yellowplate,rowfill=yes,
+% framestyle=colorbox,framefit=yes,heightadjust=object,valign=c,frameset={\fboxrule0pt}}
+% \begin{figure}[H]
+% \begin{floatrow}
+% \ffigbox[\FBwidth+2cm]
+% {\unitlength.9\unitlength\input{BlackCat.picture}}
+% {\caption{The left beside figure uses settings for vertical top alignment}%
+% \label{leftfig:BOXED:valigned:fillrowbox}}%
+% \ffigbox[\FBwidth+2.4cm]
+% {\caption{The beside figure at the right side in float row uses settings for vertical top alignment too}%^^A
+% \label{rightfig:BOXED:valigned:fillrowbox}}
+% {\unitlength1.25\unitlength\input{Cat.picture}}
+% ^^A\ffigbox[\Xhsize]{}{\strut}
+% \end{floatrow}
+% \end{figure}%^^A
+%\endgroup
+% The result you see in the row of
+% figures~\ref{leftfig:BOXED:valigned:fillrowbox}, \ref{rightfig:BOXED:valigned:fillrowbox}.
+%
+%\begin{Quote}
+%\begin{preamble}
+%|\floatsetup[widefloat]{margins=hanfleft}|
+%|\floatsetup{...}|
+%|...|\nopagebreak
+%\end{preamble}
+% |...|\vspace*{-.75\intextsep}
+%\end{Quote}%
+%\begingroup\floatsetup{margins=hangleft,style=plain,framearound=row,colorframeset=yellowplate,
+% framestyle=colorbox,framefit=yes,heightadjust=object,valign=c}
+% \begin{figure*}[H]
+% \begin{floatrow}
+% \ffigbox[\FBwidth+2cm]
+% {\unitlength.9\unitlength\input{BlackCat.picture}}
+% {\caption{The left beside figure uses settings for vertical top alignment}%
+% \label{leftfig:BOXED:valigned:widerowbox}}%
+% \ffigbox[\FBwidth+2.4cm]
+% {\caption{The beside figure at the right side in float row uses settings for vertical top alignment too}%^^A
+% \label{rightfig:BOXED:valigned:widerowbox}}
+% {\unitlength1.25\unitlength\input{Cat.picture}}
+% \end{floatrow}
+% \end{figure*}%^^A
+%\endgroup
+% The result you see in the row of
+% figures~\ref{leftfig:BOXED:valigned:widerowbox}, \ref{rightfig:BOXED:valigned:widerowbox}.
+%
+%\begin{Quote}
+%\begin{preamble}
+%|...|\\
+%|\floatsetup{...rowfill=yes}|
+%|...|\nopagebreak
+%\end{preamble}
+% |...|\vspace*{-.75\intextsep}
+%\end{Quote}%
+%\begingroup\floatsetup{margins=hangleft,style=plain,framearound=row,colorframeset=yellowplate,rowfill=yes,
+% framestyle=colorbox,framefit=yes,heightadjust=object,valign=c}
+% \begin{figure*}[H]
+% \begin{floatrow}
+% \ffigbox[\FBwidth+2cm]
+% {\unitlength.9\unitlength\input{BlackCat.picture}}
+% {\caption{The left beside figure uses settings for vertical top alignment}%
+% \label{leftfig:BOXED:valigned:widefillrowbox}}%
+% \ffigbox[\FBwidth+2.4cm]
+% {\caption{The beside figure at the right side in float row uses settings for vertical top alignment too}%^^A
+% \label{rightfig:BOXED:valigned:widefillrowbox}}
+% {\unitlength1.25\unitlength\input{Cat.picture}}
+% ^^A\ffigbox[\Xhsize]{}{\strut}
+% \end{floatrow}
+% \end{figure*}%^^A
+%\endgroup
+% The result you see in the row of
+% figures~\ref{leftfig:BOXED:valigned:widefillrowbox}, \ref{rightfig:BOXED:valigned:widefillrowbox}.
+%
+%
% \subsubsection{Settings for Colored Frames}
% \DescribeMacro{colorframeset}\label{setup:colorframeset}%^^A
% \DescribeMacro{\DeclareColorBox}\label{setup:DeclareColorBox}%^^A
% This key (needs \package{color} package) defines
-% a~color box (default is standard |\fbox|). There are not any predefined options for this key so you
+% a~color box in the case of the |framestyle=colorbox| or |framestyle=FRcolorbox| settings are loaded
+% (default is standard |\fbox|). There are not any predefined options for this key so you
% must define your color box option, using the |\DeclareColorBox| command like following:
% \begin{Quote}
% |\DeclareColorBox{mycolorbox}{\fcolorbox{red}{yellow}}|
@@ -2985,6 +3250,14 @@
% |\floatsetup{colorframeset=mycolorbox}|\quad.
% \end{Quote}
%
+% \DescribeMacro{colorframecorners}\label{setup:colorframecorners}%^^A
+% \DescribeMacro{\DeclareCBoxCorners}\label{setup:DeclareCBoxCorners:pre}%^^A
+% This key defines material attached to the corners of the frame defined
+% by the |framestyle=FRcolorbox| option.
+% This key, as the previous one, has not predefined options; the needed material is
+% set by the |\|\FRkey{DeclareCBoxCorners} command
+% (page~\pageref{setup:DeclareCBoxCorners}).
+%
% \subsubsection{Defining Float Skips}
% \DescribeMacro{captionskip}\label{setup:captionskip}%^^A
% Defines vertical space between caption and float object
@@ -3015,7 +3288,7 @@
% \begingroup
% \begin{Options}{\OptionLabel}
% \item[normal]
-% standard \LaTeX{} definition, used in |minipage| environments, the
+% standard \LaTeX{} definition, the
% width of it equals to 0.4 of current width of text (|\columnwidth|);
% \item[limited]
% like previous one but max width of footnote rule equals to the value
@@ -3067,14 +3340,6 @@
% only mandatory argument (the \cmd{\thisfloatsetup} is defined
% as abbreviation of the \cmd{\floatsetup[tmpset]} command).
%
-%^^A Please note that |\thisfloatsetup| doesn't overwrite
-%^^A co-named key declarations from settings like
-%^^A |\floatsetup[|\meta{options}|]|---this command created e.g
-%^^A for temporary change of float or caption widths: keys
-%^^A |capbesidewidth=| |floatwidth=| do not used usually
-%^^A in |\floatsetup| stuff.
-%
-%
% \subsection{Clearing of Settings for Current Float Type}
% \DescribeMacro{\clearfloatsetup}\label{setup:clearfloatsetup}%^^A
% If you want to get rid of parameters marked
@@ -3112,7 +3377,7 @@
% |\end{figure}|\quad.\vspace*{-\intextsep}
% \end{Quote}
% \newcommand\myfcapside{\killfloatstyle
-% \floatsetup[figure]{style=Boxed,capbesideframe=yes}\fcapside}
+% \floatsetup[figure]{style=Boxed,capbesideframe=yes,capbesideposition=left}\fcapside}
% \begin{figure}[H]
% \myfcapside[\FBwidth]
% {\input{Horse.picture}}%
@@ -3125,13 +3390,14 @@
% The option |[figure]| is necessary if you have defined settings for this option
% in the preamble.
%
-% \emph{Notes}.\nopagebreak \par
-% 1)\enskip Please remember that such command with redefined settings can be placed
+% \emph{Notes}.\startNotes\nopagebreak \par
+% \Note Please remember that such command with redefined settings can be placed
% only \emph{inside an environment} or \emph{group}.
%
-% 2)\enskip Before creation of such risky command, please revise your layout settings:
+% \Note Before creation of such risky command, please revise your layout settings:
% maybe the |[widefigure]| option never used in your documentation settings, so you can define
-% necessary settings in |\floatsetup[widefigure]|\allowbreak|{style=Boxed,capposition=beside...}|
+% necessary settings in |\floatsetup[widefigure]|\allowbreak|{style=Boxed,|\allowbreak
+% |capposition=|\allowbreak|beside...}|
% and then use ``starred'' floats in following way:
%\begingroup
% \begin{Quote}
@@ -3144,7 +3410,7 @@
% |...|
% |\end{figure*}|\quad.\vspace*{-\intextsep}
% \end{Quote}
-% \floatsetup[widefigure]{margins=centering,style=Boxed,capposition=beside,capbesideframe=yes}
+% \floatsetup[widefigure]{margins=centering,style=Boxed,capposition=beside,capbesideframe=yes,capbesideposition=left}
% \begin{figure*}[H]
% \fcapside[\FBwidth]{\input{Horse.picture}}%
% {\caption[Figure with beside caption in \texttt{Boxed} style in ``starred'' environment.]{%^^A
@@ -3158,7 +3424,7 @@
% package loaded. They equal to |default| style:
% \begin{Options}{\OptionLabel}\par
% \item[font=normalsize]\allowitembreaks[-4]
-% \item[footfont=footnotesize]\allowitembreaks
+% \item[footfont=footnotesize]\allowitembreaks[1]
% \item[capposition=bottom]
% \item[capbesideposition=left]
% \item[capbesideframe=no]
@@ -3170,14 +3436,16 @@
% \item[floatrowsep=columnsep]
% \item[capbesidesep=columnsep]
% \item[precode=none]
-% \item[rawprecode=none]
+% \item[rowprecode=none]
% \item[postcode=none]
-% \item[rawpostcode=none]
+% \item[rowpostcode=none]
+% \item[framearound=none]
+% \item[rowfill=no]
% \item[midcode=captionskip]\allowitembreaks[-4]
% \item[captionskip=10pt]
% \end{Options}
%
-% \subsection{Defining New Options (Do It Yourself!)}
+% \subsection{Defining New Options}
% In the next few sections a list of commands is presented, which help to define
% additional key options for the |\floatsetup| command.
%
@@ -3196,7 +3464,7 @@
%
% \floatsetup[figure]{style=MyBoxed}
% \begin{figure}[H]
-% {\input{Horse.picture}}%
+% {\unitlength1.28\unitlength\input{Horse.picture}}%
% \caption{%^^A
% Plain figure in \texttt{MyBoxed} style}%
% \label{fig:plain:MyBoxed}%
@@ -3227,6 +3495,12 @@
% \begin{Quote}%
% |\floatsetup[figure]{font={small,red}}|\quad.
% \end{Quote}%
+% The version \textbf{3.1} of the \package{caption} package offers special option inside
+% |font=| key. Since the \package{floatrow} package uses the same mechanism for its |font=|
+% key, the example above you can write as following:
+% \begin{Quote}%
+% |\floatsetup[figure]{font={small,color={red}}}|\quad.
+% \end{Quote}%
%
% \subsubsection{Option for Float Rules/Skips (\texttt{precode=} etc.)}\label{ssec:decl:rule}
% \DescribeMacro{\DeclareFloatVCode}\label{setup:DeclareFloatVCode}%^^A
@@ -3236,8 +3510,8 @@
% |precode|, |midcode|, |postcode|, and
% |rowpostcode| keys (page~\pageref{setup:precode}).
%
-% Compare two examples:
-% \begin{Quote}\openup.5pt
+% Compare two examples:\enlargethispage\baselineskip
+% \begin{Quote}
% \begin{preamble}
% |\DeclareFloatVCode{grayruleabove}%|
% | {{\color{gray}\par\rule\hsize{2.8pt}\vskip4pt\par}}|
@@ -3260,9 +3534,9 @@
% | ...|
% | \caption{Alone figure ...}\label{...}%|\nopagebreak
% |\end{figure}|
-% \end{Quote}
+% \end{Quote}\pagebreak[2]
+%
%\begingroup
-% \advance\intextsep-.5\intextsep
% \begin{figure}[H]\floatsetup{heightadjust=all,valign=c,rowprecode=grayruleabove,
% rowpostcode=grayrulebelow}\killfloatstyle
% \begin{floatrow}
@@ -3293,7 +3567,7 @@
% \end{preamble}\nopagebreak
% |...|
% \end{Quote}%^^A
-% \advance\intextsep-.5\intextsep
+%
% \begin{figure}[H]\floatsetup{heightadjust=all,valign=c,
% precode=grayruleabove,postcode=grayrulebelow}\killfloatstyle
% \begin{floatrow}
@@ -3308,7 +3582,7 @@
% \label{intro:rightfig:box}}
% {\unitlength.85\unitlength\input{Cat.picture}}
% \end{floatrow}%
-% \end{figure}\kern-\lastskip%^^A
+% \end{figure}%^^A
% \begin{figure}[H]\floatsetup{heightadjust=all,valign=c,
% precode=grayruleabove,postcode=grayrulebelow}\killfloatstyle
% \ffigbox
@@ -3321,6 +3595,59 @@
% and \ref{intro:rightfig:box}, which could be placed in one row, you need to
% set |heightadjust=all| key.
%
+%\begingroup\enlargethispage{2\baselineskip}%
+% The examples with unfill rows.\RemoveSpaces\vspace*{\topsep}
+% \begin{Quote}\openup.5pt
+% \begin{preamble}
+% |\floatsetup{...,|\FRkey{heightadjust}|=all,|%^^A
+% \FRkey{valign}|=c,|
+% | |\FRkey{rowprecode}|=grayruleabove,|%^^A
+% \FRkey{rowpostcode}|=grayrulebelow}|
+% \end{preamble}
+% |\begin{figure}|\nopagebreak
+% |\begin{floatrow}|\nopagebreak
+% | \ffigbox[\FBwidth]...|\nopagebreak
+% | \ffigbox[\FBwidth]...|\nopagebreak
+% | \end{floatrow}|\nopagebreak
+% |\end{figure}|
+% \end{Quote}%^^A
+% \begin{figure}[H]\floatsetup{heightadjust=all,valign=c,rowprecode=grayruleabove,
+% rowpostcode=grayrulebelow}\killfloatstyle
+% \begin{floatrow}
+% \ffigbox[\FBwidth+2cm]
+% {\unitlength.65\unitlength\input{BlackCat.picture}}
+% {\caption{The left beside figure inside unfill float row with defined row rules above and below}%
+% \label{intro:leftfig:rownofill}}%
+%
+% \ffigbox[\FBwidth+2cm]
+% {\caption{The beside figure at the right inside unfill float row with defined row rules above and below}%^^A
+% \label{intro:rightfig:rownofill}}
+% {\unitlength.85\unitlength\input{Cat.picture}}
+% \end{floatrow}
+% \end{figure}%^^A
+% The same, but with \FRkey{rowfill} option.
+% \begin{Quote}\openup.5pt
+% \begin{preamble}
+% |\floatsetup{...,|\FRkey{rowfill}|=yes}|
+% \end{preamble}
+% |...|
+% \end{Quote}%^^A
+% \begin{figure}[H]\floatsetup{heightadjust=all,valign=c,rowprecode=grayruleabove,
+% rowpostcode=grayrulebelow,rowfill=yes}\killfloatstyle
+% \begin{floatrow}
+% \ffigbox[\FBwidth+2cm]
+% {\unitlength.65\unitlength\input{BlackCat.picture}}
+% {\caption{The left beside figure inside unfill float row with defined row full size rules above and below}%
+% \label{intro:leftfig:rowfill}}%
+%
+% \ffigbox[\FBwidth+2cm]
+% {\caption{The beside figure at the right inside unfill float row with defined row full size rules above and below}%^^A
+% \label{intro:rightfig:rowfill}}
+% {\unitlength.85\unitlength\input{Cat.picture}}
+% \end{floatrow}
+% \end{figure}%^^A
+%\endgroup
+%
% \subsubsection{Settings for Colored Frame (\texttt{colorframeset=})}\label{ssec:color:frame}
% \DescribeMacro{\DeclareColorBox}%^^A
% Let's repeat the command for definition of colored box used by |colorframeset=| key
@@ -3329,6 +3656,92 @@
% \begin{Quote}
% |\DeclareColorBox{framedfigure}{\fcolorbox{gray}{white}}|\quad.
% \end{Quote}
+% The yellow plate for figure rows on the page~\pageref{setup:rowfill}:
+% \begin{Quote}
+% |\DeclareColorBox{yellowplate}{\colorbox{yellow}}|\quad.
+% \end{Quote}
+% Please note, that for correct positioning of the color plate during usage of the |\colorbox|
+% command you need set to zero value for the |\fboxrule| command in the \FRkey{frameset} option:
+% \begin{Quote}
+% |frameset={\fboxrule0pt}|\quad.
+% \end{Quote}
+%
+% \DescribeMacro{\DeclareCBoxCorners}\label{setup:DeclareCBoxCorners}%^^A
+% If you use the \FRkey{FRcolorbox} option for the \FRkey{framestyle} key
+% (page~\pageref{setup:framestyle}), you may set additional material (rules or something),
+% attached to four corners.
+%\begin{Quote}%
+%|\DeclareCBoxCorners|\marg{option}\marg{llcorner}\marg{lrcorner}\marg{urcorner}\marg{ulcorner}
+%\end{Quote}%
+% The \marg{option} argument defines name of option of the \FRkey{colorframecorners} key.
+% The four others define material attached to four corners.
+%
+% The order of corner material analogous to the order in the METAPOST's |bbox| box
+% for the |label| command: first goes lower left corner (\marg{llcorner})
+% then, counterclockwise, lower right corner (\marg{lrcorner}), upper right corner
+% (\marg{urcorner}) and last goes upper left corner (\marg{ulcorner}).
+% There are used modified commands of |picture| environment inside these arguments:
+% all lengths and coordinates must have units like points, millimeters etc., but
+% here you may use usual length parameters like |\textwidth|. When the color box is created
+% the |\FRcolorboxht|, |\FRcolorboxwd| and~|\FRcolorboxdp| parameters define
+% height, width and depth of the box, you may use them inside settings
+% of the |\DeclareCBoxCorners| xommand. You may use the
+% |\|\FRkey{floatfacing} command to create facing layout.
+%
+% The example with material in all corners, which shows overlapping.
+%\begin{Quote}%
+%|\DeclareCBoxCorners{angles}|
+%| {{\color{green}%green llcorner|
+%| \linethickness{10pt}\put(-5pt,-5pt)|
+%| {{\put(0pt,0pt){\line(0,1){\FRcolorboxht}}}%|
+%| {\put(-5pt,0pt){\line(1,0){\FRcolorboxwd}}}}%|
+%| }}{{\color{red}%red lrcorner|
+%| \linethickness{10pt}\put(0pt,0pt)|
+%| {{\put(0pt,0pt){\line(0,1){\FRcolorboxht}}}%|
+%| {\put(5pt,0pt){\line(-1,0){\FRcolorboxwd}}}}%|
+%| }}{{\color{blue}%blue urcorner|
+%| \linethickness{10pt}\put(5pt,-5pt)|
+%| {{\put(0pt,0pt){\line(0,-1){\FRcolorboxht}}}%|
+%| {\put(5pt,0pt){\line(-1,0){\FRcolorboxwd}}}}%|
+%| }}{{\color{magenta}%magenta ulcorner|
+%| \linethickness{10pt}\put(0pt,0pt)|
+%| {{\put(0pt,0pt){\line(0,-1){\FRcolorboxht}}}%|
+%| {\put(-5pt,0pt){\line(1,0){\FRcolorboxwd}}}}%|
+%| }}|
+%\end{Quote}%
+% Please note, that this material has not any width and its values do not used during calculation
+% of frame position and width. Please note also that material in the left lower and upper corners
+% will be covered by frame, but right lower and upper corner material cover the frame
+% (inside these ``layers'' the material from upper corners covers lower ones)
+% the object contents appear in the upper layer.
+%\begingroup
+%\begin{Quote}%
+%|\floatsetup{style=Boxed,|\FRkey{framestyle}|=FRcolorbox,|
+%| |\FRkey{colorframeset}|=yellowplate,|\FRkey{colorframecorners}|=angles,|
+%| |\FRkey{frameset}|={\fboxrule=0pt\fboxsep=2pt},|\FRkey{framefit}|=yes,|\FRkey{captionskip}|=15pt}|\vspace*{\baselineskip}
+%\end{Quote}%
+%\floatsetup{style=Boxed,framestyle=FRcolorbox,colorframeset=yellowplate,colorframecorners=angles,
+% framefit=yes,frameset={\fboxrule=0pt\fboxsep=2pt},captionskip=15pt}
+% \ffigbox[\FBwidth+2.4cm]
+% {\caption{The picture on the color plate with multicolored corners}%^^A
+% \label{BOXED:yellowplate:Redangles}}
+% {\unitlength1.25\unitlength\input{BlackDog.picture}}
+%\endgroup
+%
+%\begingroup
+% The same but without color plate.
+%\begin{Quote}%
+%|\floatsetup{style=Boxed,|\FRkey{framestyle}|=corners,|%^^A
+% \FRkey{colorframecorners}|=angles,|
+%| |\FRkey{frameset}|={\fboxrule=0pt\fboxsep=2pt},|\FRkey{framefit}|=yes,|\FRkey{captionskip}|=15pt}|\vspace*{\baselineskip}
+%\end{Quote}%
+%\floatsetup{style=Boxed,framestyle=corners,colorframecorners=angles,
+% framefit=yes,frameset={\fboxrule=0pt\fboxsep=2pt},captionskip=15pt}
+% \ffigbox[\FBwidth+2.4cm]
+% {\caption{The picture on the ``transparent'' box with multicolored corners}%^^A
+% \label{BOXED:transparent:Redangles}}
+% {\unitlength1.25\unitlength\input{BlackDog.picture}}
+%\endgroup
%
% \subsubsection{Object Justification Option (\texttt{objectset=})}\label{ssec:decl:oset}
% \DescribeMacro{\DeclareObjectSet}\label{setup:DeclareObjectSet}%^^A
@@ -3351,7 +3764,7 @@
% |\DeclareMarginSet{center}{%|\nopagebreak
% | \setfloatmargins{\hfil}{\hfil}}|
% \end{Quote}
-% or like (see also sample files)
+% or like (see also sample files):
% \begin{Quote}
% |\DeclareMarginSet{outside}{\setfloatmargins*{\hfil}{}}|\nopagebreak
% \end{Quote}
@@ -3367,8 +3780,7 @@
%
% Here goes rather complex example which was created as alternative float layout for one-column
% document. The starred, |figure*|, environment places caption on the left margin, beside
-% object. Frame around object has default width of main text (but if you will change, reduce,
-% width of object, it will be shoved to the left margin).
+% object. Frame around object has default width of main text.
% \begin{Quote}[0pt]
% \begin{preamble}
% |\makeatletter\@mparswitchfalse\makeatother|\vspace{1ex}
@@ -3409,7 +3821,7 @@
% \endgroup
%
% \emph{Note}. The row of figures~\ref{fig:row:Dog}--\ref{fig:row:cheese} on the page
-% \pageref{fig:row:Dog} uses the same |margin=| settings of option |hangleft|.
+% \pageref{fig:row:Dog} uses the same |margin=| settings of option |margins=|.
%
% Starred form, |\setfloatmargins*|, defines facing layout: inside and
% outside margin.
@@ -3438,7 +3850,7 @@
% \DescribeMacro{\floatboxmargins}\label{setup:floatboxmargins}%^^A
% \DescribeMacro{\floatrowmargins}\label{setup:floatrowmargins}%^^A
% \DescribeMacro{\floatcapbesidemargins}\label{setup:floatcapbesidemargins}%^^A
-% The |\setfloatmargins| could be ``divided'' into the three macros which set margins
+% The |\setfloatmargins| could be ``separated'' into the three macros which set margins
% for three main variants of float positions:
% \begin{Options}{\OptionLabel}
% \item[\cmd{\floatboxmargins}]sets left/right margins around alone
@@ -3480,9 +3892,6 @@
% \begin{Quote}[0pt]
% \begin{preamble}
% |\|\FRkey{DeclareObjectSet}|{colorred}{\parskip2pt\parindent15pt\color{red}}|
-% |\|\FRkey{DeclareMarginSet}|{hangleft}%|
-% | {\setfloatmargins|
-% | {\hskip-\marginparwidth\hskip-\marginparsep}{\hfil}}|
% |\DeclareFloatSeparators{colorsep}%|
% | {\begingroup\color{blue}%|
% | \hskip8pt\vrule width4.8pt\hskip8pt\endgroup}|
@@ -3507,9 +3916,9 @@
% figure with beside caption. And A bit more text, and some more text}\label{color:fig}}
% \end{figure*}%
% \emph{Note}. The settings of color of caption font like
-% |labelfont={color={magenta},bf,}|\allowbreak
+% |labelfont=|\allowbreak|{color={magenta},bf,}|\allowbreak
% |textfont={color={green}}|
-% were documented first time in the \package{caption} documentation version~3.1.
+% were documented first time in the \package{caption} documentation version~\textbf{3.1}.
% \endgroup
%
% \subsubsection{Option for Footnote Rule's Style (\texttt{footnoterule=})}\label{ssec:fnoterule}
@@ -3562,9 +3971,6 @@
% \DescribeMacro{fileext}\label{setup:fileext}%^^A
% Defines extension of the file in which
% gathered list of floats.
-%^^A% (As default, new captions
-%^^A% are gathered in |loe|-file). This option is required in the case of
-%^^A% creation of a~separate float lists.
%
% \emph{Note.} In the version v0.2b, in the case of this key not defined,
% the captions of one type are gathered in the file with extension,
@@ -3581,9 +3987,9 @@
% \DescribeMacro{relatedcapstyle}\label{setup:relatedcapstyle}%^^A
% In the \package{float} package the non-starred
% \cmd{\newfloat}/\cmd{\restylefloat} macros attach the related
-% caption style for float styles (see {\sectionname} \ref{sec:floatst}).
+% caption style for float styles (see {\sectionname}~\ref{sec:floatst}).
% If you use |\DeclareNewFloatType| mechanism and exists (you created
-% it by |\captionsetup|) co-named, i.e. related, caption style
+% it by |\captionsetup[...]|) co-named, i.e. related, caption style
% you may attach this style with key |relatedcapstyle=yes|.\medskip
%
% Below is an example of the |\DeclareNewFloatType| command,
@@ -3595,7 +4001,8 @@
% | {placement=t,within=section,fileext=loe}|
% \end{Quote}
%
-% \subsection{How to replace \texorpdfstring{\cs{newfloat}}{newfloat} with \texorpdfstring{\cs{DeclareNewFloatType}}{DeclareNewFloatType}}\label{sec:oldtonew}
+% \subsection{How to replace \texorpdfstring{\cs{newfloat}}{newfloat}
+% with \texorpdfstring{\cs{DeclareNewFloatType}}{DeclareNewFloatType}}\label{sec:oldtonew}
% The |\newfloat| command takes three required and
% one optional argument:
% \begin{Quote}
@@ -3640,7 +4047,7 @@
% |\newfloat| and |\floatstyle| are obsolete but
% supported\footnote{The better
% way is to use \cmd{\floatsetup} macros. The \package{floatrow} package
-% supports obsolete macros but there is no guarantee that they will work as axpected.} (see section below).
+% supports obsolete macros but there is no guarantee that they will work as expected.} (see section below).
%
% The sections below explain how \package{float} commands and options work in \package{floatrow}.
% Sections, signed with ``[\package{float}]'' and typed with slanted font, were borrowed from
@@ -3776,8 +4183,8 @@
% the text, typed without blank line after float, always gets |\parindent|.
%
% To follow the idea of |\allowdisplaybreaks| command from
-% \package{amsmath} package there is created a \emph{beta-temp}\footnote{I
-% hope that such support sooner or later could appear in
+% \package{amsmath} package there is created a \emph{beta-temp}\footnote{I~hope
+% that such support sooner or later could appear in
% \package{paralist} package and think it is better to follow
% grammar of master-package for similar situations.} version
% of \package{listpen} package (it can be used separately). It offers commands,
@@ -3800,11 +4207,9 @@
% etc. (|[-1]| option equal to |\@lowpenalty| value).
%
% \DescribeMacro{floatHaslist}\label{setup:floatHaslist}%^^A
-% This is the late attempts of backwards compatibility, added in version 0.1k. The key, if true,
+% The key, if true,
% uses list penalties, otherwise anchored float works without any penalty, i.e. like
-% defined in \package{float} package and in \package{floatrow}'s version 0.1j
-% and earlier. (I hope there could not much difference,
-% unless you have redefined penalties of lists in your documentation.)
+% defined in \package{float}.
%
% Also (added in version 0.1k with current key):
% Since list environments do \emph{not make indentation} in the
@@ -3867,7 +4272,7 @@
%
%\clearpage
% \section{The \package{floatrow} Package and The \package{caption} Package}\label{ssec:caption}
-% Tested (and compatible) with version from v3.0q to~v3.1f.
+% Tested (and compatible) with \package{caption} version from v3.0q to~v3.1j.
%
% The \package{caption} package has strong mechanism for creation of
% caption layout, so \package{floatrow} addresses the creation of new
@@ -3957,7 +4362,7 @@
% \end{tabular}}{}
%
% \ttabbox
-% {\caption{Second subtable inside of \cs{ttabbox} and |floatrow| environment}%^^A
+% {\caption{Second subtable inside of \cs{ttabbox} and \texttt{floatrow} environment}%^^A
% \Flabel{subcaptab:tabIIIb}%^^A
% \begin{tabular}{|l|c|c|}
% \hline
@@ -4010,7 +4415,7 @@
% \emph{Note}: With the \package{floatrow} package you may use also |\captionsetup[subfloat]|
% settings, the \package{caption} package offers
% the |\captionsetup[subtype]{...}| settings which will be stronger than previous, to say nothing
-% about |\captionsetup[subfigure]{...}| for parts of figure. (Please note
+% about |\captionsetup[subfigure]{...}| for parts of figure, which are strongest. (Please note
% that in \package{caption} terms word ``subtype'' means part of float.)
%
% Next follows an example with beside main caption (figure~\ref{fig:subcap:catsI}).%^^A
@@ -4034,7 +4439,7 @@
% \verb| \end{subfloatrow}}|
% \verb| {\caption{... \Fref{...} and \Fref{...}}\label{...}}|\nopagebreak
% \verb|\end{figure}|
-% \end{Quote}\par\kern-\textfloatsep\kern-\baselineskip
+% \end{Quote}\par
%\begingroup
% \captionsetup[subfigure]{labelformat=brace,justification=centerlast,strut=no}
% \floatsetup[figure]{style=Shadowbox,capbesidesep=columnsep,
@@ -4049,10 +4454,10 @@
% \unitlength1.32\unitlength\input{TheCat.picture}}{}%
% \end{subfloatrow}}
% {\caption[Subfloat row]{Beside figure
-% caption vertically top aligned; fancy
+% caption vertically bottom aligned; fancy
% \texttt{Shadowbox} layout. There are two parts:
% \Fref{subcapfig:w} and \Fref{subcapfig:b}}\label{fig:subcap:catsI}}
-% \end{figure}\kern-\lastskip
+% \end{figure}
%\endgroup
%
% In the next example the main caption will be placed below, but labels of figure parts were
@@ -4187,7 +4592,7 @@
% The last example demonstrates new command \verb|\subcaptionlabel| for caption
% labels, which can be used inside,
% e.g., |picture| environment or as replacing text in \verb|psfrag| command of \package{psfrag}
-% package. Unlike the \verb|\caption| and \verb|\subcaption| commands, the \verb|\subcaptionlabel| does
+% package. Unlike the \verb|\caption| and \verb|\subcaption| commands, the \verb|\subcaptionlabel|
% will not be saved in special box register when the float box is building, and
% will be typed like caption label, which follows settings of caption layout.
% This command is based on \verb|\subcaption| command but with changed internal command of \package{caption}
@@ -4198,12 +4603,12 @@
%\verb|...|
%\verb|\floatsetup[figure]{|\FRkey{style}\verb|=plain}|
%\end{preamble}
-% |{\begin{picture}(82,40)(0,0)|
-% |\put(0,0){\framebox(40,40)[bl]{}}|
+% |{\begin{picture}(82,28)(0,0)|
+% |\put(0,0){\framebox(40,28)[bl]{}}|
% |\put(2,2){\makebox(0,0)[bl]{\relax\hbox{\subcaptionlabel{}\Flabel{scap:I}}}}|
% |...|
% |\put(42,0){|
-% |\put(0,0){\framebox(40,40)[bl]{}}|
+% |\put(0,0){\framebox(40,28)[bl]{}}|
% |\put(2,2){\makebox(0,0)[bl]{\hbox{\subcaptionlabel{}\Flabel{scap:II}}}}|
% |...}|
% |\end{picture}}|
@@ -4266,7 +4671,9 @@
% \verb|\makeatother|
%\end{preamble}
% \end{Quote}
-% Next command, \verb|\Fref|, redefines this separator and prints reference with
+% Next command, \verb|\Fref|, redefines this separator, and defines, if necessary,
+% the font emphasize (or other command which uses one argument)
+% of following part of label, and prints reference with
% standard \verb|\ref| command. It was defined in this documentation like following:
% \begin{Quote}%
%\begin{preamble}
@@ -4675,7 +5082,7 @@
%
% \subsubsection{Additions in The \package{floatrow} Package}\label{ssec:LTcapwidth}
% A patch was added to the \package{longtable}
-% package\footnote{Thanks to A. Sommerfeldt for help to make this
+% package\footnote{Thanks to A.~Sommerfeldt for help to make this
% code compact.}: this patch adds the same font settings
% as for |table| environments, and adds code which helps
% to get the width of |longtable| caption equal to the
@@ -4696,8 +5103,8 @@
% The |\floatsetup[longtable]| will be ``strongest'' in this pair.\medskip
%
% \emph{The addition with version 0.1k}.
-% A~\textrm{beta-temp}\footnote{Again, like with \package{listpen} package, I
-% hope that such support sooner or later could appear in
+% A~\textrm{beta-temp}\footnote{Again, like with \package{listpen} package,
+% I~hope that such support sooner or later could appear in
% \package{longtable} and think it is better to follow
% grammar of master-package for similar situations. Also it is necessary to say
% that command names from \package{fr-longtable} package ``intrude'' in the
@@ -4709,8 +5116,6 @@
%^^A% \DescribeMacro{\LTlastpage}
% \DescribeMacro{\endlasthead}
% \DescribeMacro{\endprelastfoot}
-%^^A% The command |\LTlastpage|, defined by hand, tells to \package{longtable}'s
-%^^A% redefined macro the number of pages in longtable environment.
% The |\endlasthead| command defined for last head of longtable; second command,
% |\endprelastfoot|, defined for foot on the page before last.
% Since these names of commands ``intrude'' in the \package{longtable} naming
@@ -4722,7 +5127,7 @@
%
%^^A% \DescribeMacro{\floatfoot}
% \emph{Note}. Please remember that the footnote stuff inside |longtable| works like in main
-% text and put the text of footnotes
+% text and puts the text of footnotes
% at the bottom of page\footnote{See also |longtable| documentation.}.
%
% The \package{floatrow} package's command for legends or explications, |\floatfoot|,
@@ -4849,18 +5254,18 @@
% \input{Cat.picture}}}
% \end{wrapfigure}
%
-% \emph{Notes.}
-% 1)\enskip For figure, contents in e.g. in |wrapfigure| environment you set width
+% \emph{Notes.}\startNotes
+% \Note For figure, contents in e.g. in |wrapfigure| environment you set width
% in mandatory argument. If you'll write \texttt{0mm} as \marg{width
% of figure} argument, the \hbox{\package{wrapfig}} package will calculate a~natural width
% of float contents. If you use the |\floatbox| command, put |\FBwidth| option to use natural object width.
%
-% 2)\enskip Sometimes above (below) float box in \env{wrap...} environment
+% \Note Sometimes above (below) float box in |wrap...| environment
% appears unwanted space. To correct vertical position, use |\FBaskip|
% (|\FBbskip|) commands (see {\sectionname}~\ref{sec:FBabskips}) and optional argument
-% \meta{number} of \env{wrap...} environments.
+% \meta{number} of |wrap...| environments.
%
-% 3)\enskip Please note that the label of wrapped floats changed to `Fig.~\meta{number}'.
+% \Note Please note that the label of wrapped floats changed to `Fig.~\meta{number}'.
% This happened because of the following settings:
% \begin{Quote}
% \begin{preamble}%
@@ -4874,7 +5279,7 @@
%
% \emph{Special settings}.
%
-% You may create settings for \env{wrap...} environment, there are
+% You may create settings for |wrap...| environment, there are
% following priorities.
% (Please note that you can also create special caption settings with
% |\captionsetup| stuff.):
@@ -4898,19 +5303,24 @@
% \end{itemize}
%
%
-% \emph{Founded limitations}.\nopagebreak
+% \emph{Founded limitations}.\startNotes\nopagebreak
%
-% 1)\enskip The usage of plain floating environment in version 3.3 will
+% \Note The usage of plain floating environment in version 3.3 will
% not succeed with \package{floatrow}---use |\floatbox|
-% stuff. The version 3.6 allows usage of plain \env{wrap...}
+% stuff. The version 3.6 allows usage of plain |wrap...|
% environment with \FRkey{plain} (or \FRkey{ruled}) styles, but
% the framed styles, like |Boxed| (which use key |framefit=yes|, where text inside frames
% changes its |\hsize| to fit frames, fitted to defined |\hsize|)
% could work only with |\floatbox| macro, otherwise you'll get
% incorrect widths and layout.
%
-% 2)\enskip The \env{wrap...} environments could fail inside list ones, be also
-% carefull with grouping around text with these environments.
+% \Note The |wrap...| environments could fail inside list ones.
+% You ought be careful with grouping around wrapping environment (float can sail away or disappear).
+% Tests show that you may set |wrap...| environment at the very beginning of list, in the case of
+% you created faked or empty paragraph just before list (i.e. between |wrap...| and list)
+% with compensate negative spacing, like following:
+% |\noindent|\allowbreak|\strut|\allowbreak|\par|\allowbreak
+% |\nobreak|\allowbreak|\vskip-\baselineskip|.
% \endgroup
%
% \begingroup\sloppy
@@ -4922,15 +5332,15 @@
% {\setlength\unitlength{\hsize/72}%%^^A
% \input{BlackDog.picture}}
% {\caption{\hyphenpenalty-100\pretolerance-1%
-% Wrapped figure inside \env{floating\-figure} environment
+% Wrapped figure inside floating\-figure environment
% (\package{floatflt})}\label{fig:floatflt:WcatI}}
% \end{floatingfigure}%\FBbuildtrue
%
% \noindent Tested with version v1.3 dated
% 1996/02/27\kern-1pt.
%
-% \emph{Founded limitations}. 1)\enskip There is not support for
-% creation of new \env{floating...} environment. Since |floatflt|
+% \emph{Founded limitations}. \startNotes\Note There is not support for
+% creation of new |floating...| environment. Since |floatflt|
% environments need usage of |\floatbox| in any case, you can use
% either |floatingfigure| or |floatingtable| and put
% necessary float type in |\floatbox| argument (or use necessary
@@ -4939,17 +5349,16 @@
% and main settings for float types like
% |\floatsetup[figure]{...}| settings.
%
-%
% The next limitations could not tied with \package{floatrow} package.
%
-% 2)\enskip If you put a~|floatingfigure| environment just after
+% \Note If you put a~|floatingfigure| environment just after
% |\...section| command you need (if you do not indentation after
% heads) to put |\noindent| for the first paragraph.
%
-% 3)\enskip The |floatflt| environments could fail with list
+% \Note The |floatflt| environments could fail with list
% environments.
%
-% 4)\enskip The special caption settings were created for figure label.
+% \Note The special caption settings were created for figure label.
% \begin{Quote}
% |\captionsetup[floatingfigure]{name=Fig.,labelformat=thinspace}|
% \end{Quote}
@@ -4978,16 +5387,15 @@
% settings and main settings of for float types like |\floatsetup[figure]{...}|
% settings are used (but, unfortunately, they are the only here).
%
-% \emph{Founded limitations}.\nopagebreak
+% \emph{Founded limitations}.\startNotes\nopagebreak
%
-% 1)\enskip In |\parpic| argument you ought to put |\hsize0pt| before
-% the |\floatbox| command,
-% to get correct layout. (Compare with usage of |0mm| value inside the \marg{width
+% \Note In |\parpic| argument you ought to to define the width of contents. If you put |\hsize0pt| before
+% the |\floatbox| command, you will get box width equals to
+% |\parpic| contents. (Compare with usage of |0mm| value inside the \marg{width
% of figure} option in the |wrapfigure| environment.)
%
% \floatsetup[figure]{style=DOUBLEBOX}
%
-%
% The next limitations could not tied with \package{floatrow} package.
%
% \parpic[r]{\hsize36mm\def\FBaskip{6pt}
@@ -4996,20 +5404,25 @@
% \input{TheDog.picture}}
% {\caption{Wrapped figure (\cmd{\parpic})}\label{fig:parpic:BcatII}}}
%
-% 2)\enskip If you put \cmd{\parpic} just after |\...section| command
+% \Note If you put \cmd{\parpic} just after |\...section| command
% you need (if you do not indentation after heads) to put |\noindent|
% for the first paragraph.
%
-% 3)\enskip It seems that the |\parpic| command cancels non-breaking mechanism
+% \Note It seems that the |\parpic| command cancels non-breaking mechanism
% between section command and text in the case of appearance
% at the very beginning of the first paragraph (this situation appeared
% during testing of current documentation).
%
-% 4)\enskip This package has not options \meta{outside} or
+% \Note You may try to use \cmd{\parpic} inside list environment, but sometimes usage of
+% this command in this environment could create wrong layout. (Tests show that paragraph(s)
+% where the \cmd{\parpic} is used must be placed in group---compare it with the
+% \package{wrapfig} package, which does not like grouping.)
+%
+% \Note This package has not options \meta{outside} or
% \meta{inside}, like previous two packages (the option |[o]| means
% oval box around picture), so you ought to set horizontal position
% manually. Or you may create command:
-%\begin{Quote}
+%\begin{Quote}\openup-.5pt
%\begin{preamble}
%|\usepackage{ifthen}|
%|\newcommand\oparpic{\ifthenelse{\isodd{\value{page}}}%|
@@ -5017,7 +5430,7 @@
%\end{preamble}
%\end{Quote}
%
-% 5)\enskip The special caption settings were created for figure label
+% \Note The special caption settings were created for figure label
% \begin{Quote}
% |\captionsetup[parpic]{name=Fig.,labelformat=thinspace}|
% \end{Quote}
@@ -5025,12 +5438,12 @@
% In the first picture in this section the |\piccaption| co-operates
% with the |\ffigbox| command:
% \begin{Quote}
-% |\piccaption{...\label{...}}%|
-% |\parpic[l]{\hsize0pt\ffigbox[\FBwidth]{}{...}}|
+% |\piccaption{...\label{...}}%|\nopagebreak
+% |\parpic[l]{\hsize0pt\ffigbox[\FBwidth]{}{...}}|\pagebreak[3]
% \end{Quote}
% Second picture uses the |\caption| command inside |\ffigbox|, so
% the |\captionsetup|\allowbreak|[parpic]{...}| settings do not work:
-% \begin{Quote}
+% \begin{Quote}\openup-.5pt
% |\parpic[r]{\hsize36mm\def\FBaskip{6pt}|
% | \ffigbox[\hsize]{}{...\caption{...}\label{fig:parpic:BcatII}}|
% \end{Quote}
@@ -5039,7 +5452,7 @@
%
% \endgroup
%
-% \subsection{The \package{rotating} Package and \env{sideways\ldots}
+% \subsection{The \package{rotating} Package and \texttt{sideways\ldots}
% Environment}\label{ssec:rotating}
% Tested with version v2.13 dated Sep. 1992.
%
@@ -5065,31 +5478,10 @@
% \label{fig:rot:ii}}
% \end{sidewaysfigure}%
%
-% \subsubsection{Special Page Style for Float Page}
-% In example with figure~\ref{fig:rot:ii} you may see the command |\emptyfloatpage|.%^^A
-% \FRmpar{Empty page style for rotated floats}{FAD:emptyfloatpage}\label{setup:emptyfloatpage}
-% It is offered by \package{floatpagestyle} package, (installed with
-% \package{floatrow} package, can be used separately). The macro |\emptyfloatpage| is an abbreviation of
-% |\floatpagestyle{empty}|. The last macro redefines the page style for
-% the page where \emph{current} floating environment appears in the way, analogous to |\thispagestyle|
-% command.
-%
-% \RestoreSpaces
-% The version 0.1h patches the core \LaTeX{} macro
-% |\@outputpage|\footnote{At the start of document
-% \package{floatpagestyle} package puts additional code at the very beginning
-% of this output routine.}
-% and I hope that it could work.\footnote{If you know more honest
-% way to get the same result---the redefinition of \emph{alone}
-% \emph{float} page style (in the case when this page can \emph{float}
-% inside document)---please let me know.} Since this package uses
-% |\label|---|\ref| mechanism, the |\floatpagestyle| command works
-% after \emph{second} \LaTeX{} run.
-%
% \emph{Special settings}.\nopagebreak
%
% You may create special settings for all rotated floats, which use
-% \env{sideways...} environment (see page \pageref{stsetorder}).
+% |sideways...| environment (see page \pageref{stsetorder}).
%
% For one-column rotated float
% \RestoreSpaces
@@ -5097,13 +5489,13 @@
% \item %
% if exists |\floatsetup[rot|\meta{captype}|]{...}|
% package uses these settings---the ``strongest'' settings; if they are
-% absent---uses settings from next item;
+% absent---uses settings from next item, the same for each item of the list;
% \item
-% if exists |\floatsetup[rotfloat]{...}|
-% package uses these settings---these settings are ``stronger'' than next
-% ones; if they are absent---settings for current float
-% (|\floatsetup[|\meta{captype}|]{...}|);
-% if they are absent---the settings
+% |\floatsetup[rotfloat]{...}|;
+% \item
+% |\floatsetup[|\meta{captype}|]{...}|;
+% \item
+% if all settings absent---the settings
% inside |\floatsetup{...}| and |\usepackage| commands, and, at last, package default settings are used.
% \end{itemize}
%
@@ -5112,27 +5504,43 @@
% \item %
% if exists |\floatsetup[widerot|\meta{captype}|]{...}|
% package uses these settings---the ``strongest'' settings;
-% if they are absent---uses settings of next item;
+% if they are absent---uses settings of next item, the same for each item of the list;
+% \item %
+% |\floatsetup[widerotfloat]{...}|;
+% \item %
+% |\floatsetup[rot|\meta{captype}|]{...}|;
% \item %
-% if exists |\floatsetup[widerotfloat]{...}| package
-% uses these settings---these settings are ``stronger'' than settings
-% in next item; if they are absent---uses settings of next item;
+% |\floatsetup[rotfloat]{...}|;
% \item %
-% if exists |\floatsetup[rot|\meta{captype}|]{...}| package
-% uses these settings---these settings are ``stronger'' than settings
-% in next item; if they are absent---uses settings of next item;
+% |\floatsetup|\marg{captype}|{...}|;
% \item %
-% if exists |\floatsetup[rotfloat]{...}|
-% package uses these settings---these settings are ``stronger'' than next
-% ones;
-% if they are absent---uses settings for current float
-% (|\floatsetup|\oarg{captype}|{...}|);
-% if they are absent---the settings inside
+% if all settings absent---the settings inside
% |\floatsetup{...}| and |\usepackage| commands, and, at last, the package default settings are used.
% \end{itemize}
%
+% \subsubsection{Special Page Style for Float Page}
+% In example with figure~\ref{fig:rot:ii} you may see the command |\emptyfloatpage|.%^^A
+% \FRmpar{Empty page style for rotated floats}{FAD:emptyfloatpage}\label{setup:emptyfloatpage}
+% It is offered by \package{floatpagestyle} package, (installed with
+% \package{floatrow} package, can be used separately). The macro |\emptyfloatpage| is an abbreviation of
+% |\floatpagestyle{empty}|. The last macro redefines the page style for
+% the page where \emph{current} floating environment appears in the way, analogous to |\thispagestyle|
+% command.
+%
+% \RestoreSpaces
+% The version 0.1h patches the core \LaTeX{} macro
+% |\@outputpage|\footnote{At the start of document
+% \package{floatpagestyle} package puts additional code at the very beginning
+% of this output routine.}
+% and I hope that it could work.\footnote{If you know more honest
+% way to get the same result---the redefinition of \emph{alone}
+% \emph{float} page style (in the case when this page can \emph{float}
+% inside document)---please let me know.} Since this package uses
+% |\label|---|\ref| mechanism, the |\floatpagestyle| command works
+% after \emph{second} \LaTeX{} run.
+%
% \subsubsection{Rotated Floats on the Facing Pages}
-% 1)\enskip If you place two continued rotated floats%^^A
+% \startNotes\Note If you place two continued rotated floats%^^A
% \FRmpar{Continued rotated floats}{FAD:ContRotated} on facing pages,
% the better way is to gather them to binder margin, using |\buildFBBOX| command
% (see page~\pageref{FB:buildFBBOX}). For this reason you
@@ -5152,27 +5560,27 @@
% |\end{sidewaysfigure}|
% \end{Quote}
%
-% \emph{Notes}.
-% 1)\enskip In the example above (and also in the example with figure~\ref{fig:rot:ii})
+% \Note In the example above (and also in the example with figure~\ref{fig:rot:ii})
% the \package{rotating} package has
-% |[figuresright]| option; in this case all \env{sideways...} floats on even and odd pages
+% |[figuresright]| option; in this case all |sideways...| floats on even and odd pages
% will be rotated by 90$^\circ$ counterclockwise.
%
%
+% \subsubsection{Commands instead of lengths}
%\begingroup
% \sloppy
-% 2)\enskip The |\rottextwidth| command in the example above stores value of the |\textwidth| of the
+% The |\rottextwidth| command in the example above stores value of the |\textwidth| of the
% document; the |\columnwidth| and |\textwidth| inside
% \texttt{sideways...} environment are redefined and equal to
% |\textheight|.
-% If~\nobreak\quad a)\nobreak\enskip
+% If\startNotes\def\theNote{\alph{Note}}\Note
% you are limited in creation of the new length or dimension command
% (for example you use the \package{pictex}
% package\footnote{The \texttt{e-TeX} engine could solve this problem.}),
-% or~\nobreak\quad b)\nobreak\enskip the width/height or the space values, defined with
+% or \Note the width/height or the space values, defined with
% the |\newcommand|
% (like the |\headrulewidth| command from \package{fancyhdr} package) need complex calculation
-% with usage of the \package{calc} package---the \package{floatrow}
+% with usage of the \package{calc} package, or get the width of some text---the \package{floatrow}
% package provides commands
% \DescribeMacro{\newlengthtocommand}\label{setup:newlengthtocommand}%^^A
% \DescribeMacro{\renewlengthtocommand}\label{setup:renewlengthtocommand}%^^A
@@ -5186,6 +5594,9 @@
% \cmd{\settowidth} and save the \emph{absolute}
% value from their arguments; here the usual code like
%\begin{Quote}%
+%\begin{preamble}
+%|\usepackage{calc}|
+%\end{preamble}
%|\newlength\fulltextwidth|
%|\setlength\rottextwidth{\textwidth+\marginparsep+\marginparwidth}|
%\end{Quote}%
@@ -5254,7 +5665,11 @@
% For the cases of appearance of listings inside of other float
% environments, which get settings from \package{floatrow} package,
% there is a limitation: you can't put |lstlisting| inside
-% |\floatbox| contents.
+% |\floatbox| contents. The plain float environment is still allowed.
+% Also you are still free with settings for float type, used |lstlisting| inside: you may still use the
+% |BOXED|, |Boxed| and other unusual styles: the float width will be recalculated for mentioned two styles
+% and similar ones and then will be used necessary setting.
+% If you need to change box width---use |\thisfloatsetup| settings.
%
% \subsection{The \package{hyperref} and \package{hypcap} Packages}
% There were tested versions v6.77i (\package{hyperref})
@@ -5264,6 +5679,20 @@
% I hope that environments supported by \package{floatrow} won't
% make harm to \package{caption}---\package{hyperref}/\package{hypcap} tandem.
%
+% \subsection{The \package{setspace} Package}
+% There was bug during usage of \package{setspace} package---this package redefines
+% font size to |\normalsize|. The version 0.2d of \package{floatrow} tries to fix it.
+% The default stretch is equal to~1. The version 3.1 of \package{caption} package offers
+% special font settings (see \package{caption} documentation) for captions. You may try the
+% same for the float font:
+%\begin{Quote}%
+%|\floatsetup{font=onehalfspacing}|
+%\end{Quote}%
+% or
+%\begin{Quote}%
+%|\floatsetup{font={stretch=|\meta{amount}|}}|\quad.
+%\end{Quote}%
+%
% \section{The Incompatibilities}
% At first the incompatibilities or rules of co-operation with other
% packages could follow the \package{caption}~3.x package.
@@ -5271,13 +5700,13 @@
% package documentation to know the newest rules}.
%
% The known incompatibilities of \package{floatrow} package itself:
-% \quad 1)\nobreak\enskip \package{sidecap} package\footnote{Despite that
+% \startNotes\nobreak\quad \Note \package{sidecap} package\footnote{Despite that
% I'm trying to follow all offered layouts of this package. Great thanks
% for Rolf Niepraschk and Hubert G\"{a}\ss{}lein for package with
% rich implementation of such float
% layouts.}: the \package{floatrow} package doesn't expands its
% layouts to |SCfigure| and |SCtable| environments;~\nobreak\quad
-% 2)\nobreak\enskip \package{ctable} package; if you used to use
+% \Note \package{ctable} package; if you used to use
% \package{ctable}'s tools, e.g. for tables, please set |\RawFloats[table]|
% in the preamble, and remember that commands like |\ttabbox| won't
% loose its strength (see also {\sectionname}~\ref{sec:rawfloats}).
@@ -5297,7 +5726,22 @@
% %^^A found, you may use a few |minipage|s in object without harm.
% \item %
% You cannot use |\floatbox| stuff for floats with |verbatim|
-% environment and/or |\verb|.
+% environment and/or \verb|\verb|. But you still can use plain float environments.
+% If you need to change width of float box, you may change it with
+% |\thisfloatsetup| settings. The usage of |verbatim| and~|\verb|
+% do not create limitations for layout: you may still use the |BOXED|, |Boxed|
+% and other unusual styles: the float width will be recalculated for mentioned two styles
+% and similar ones and then will be used necessary setting.
+% \item %
+% The |tabbing| environment in current version creates incorrect layout for float box
+% which must occupy whole text width: it recalculates the width of object box to the natural width
+% of its contents. The problem will be solved with the |minipage| environment
+% and width option |\hsize|: you'll get necessary layout with full width and
+% for the styles like |BOXED| and~|Boxed| the width of contents will be recalculated.
+% \item %
+% Be careful with minipages inside |floatrow| environment---there could be wrong alignment.
+% Use |heightadjust=| key for this case. (Fortunately I~cannot imagine
+% good readability of two beside |tabbing|s.)
% \item %
% This limitation was mentioned above: some tools of the package use
% |\label|---|\ref| mechanism, thus, if you use float layout which
@@ -5511,7 +5955,7 @@
% \floatbox[\capbeside\useFCwidth]{figure}[\FBwidth]
% {\caption[One-line beside
% caption, width equals to caption's text]{}\label{fig:Idog:w}}
-% {{\setlength\unitlength{{4cm}/60}%^^A
+% {{\setlength\unitlength{{3.6cm}/60}%^^A
% \input{BlackDog.picture}}}
% \end{figure}%
%
@@ -5577,7 +6021,8 @@
% | \end{floatrow}|\nopagebreak
% |\end{figure}|
%\end{Quote}
-% (here is clear that before second you can also set |\setlength\hsize{.8\hsize}|).
+% (please remember that option of |\fcapside| command defines the width of object contents but
+% not the full box object---caption).
%
%^^A% Since the \verb|\fcapside| commands were used at the beginning of the
%^^A% |floatrow| environment the \verb|\FCwidth| command was defined
@@ -5593,7 +6038,7 @@
% \begin{figure}[H]\useFCwidth
%^^A \captionsetup[capbesidefigure]{format=default,labelsep=none}
% \begin{floatrow}
-% \setlength\hsize{1.2\hsize}%
+% \setlength\hsize{1.16\hsize}%
% \fcapside
% {\setlength\unitlength{\hsize/100}%^^A
% \input{Bear.picture}}
@@ -5809,6 +6254,311 @@
% photo-album-like layout is rather rare in technical literature (It
% isn't?).\RestoreSpaces
%
+% \subsubsection{Photo-Album-Like Layouts: Common Height for Beside Photos in Filled Row}
+% \captionsetup[subfigure]{labelformat=brace,font=footnotesize}
+% This section shows example which allows to set common height for rectangular graphics,
+% i.e. photos and fill full width of this row. To emulate the rectangular photos here,
+% each graphic was loaded inside |\fbox| with zeroed |\fboxsep|. (See also file \texttt{frsample06.tex}.)
+%
+% The code of example uses the |\includegraphics| command (\package{graphicx}
+% package).
+% You load the |\CommonHeightRow| command:
+%\begin{Quote}%
+%|\CommonHeightRow|\oarg{supposed height}\marg{floatrow environment}
+%\end{Quote}%
+% with supposed value of height in the optional argument,
+% which could be near the necessary common height.
+% The default value is controlled by the |\DefaultCommonHeight| command.
+% It was defined
+%\begin{Quote}%
+%|\newcommand\DefaultCommonHeight{25pt}|
+%\end{Quote}%
+% It seems that |\DefaultCommonHeight| could differ from one documentation to another,
+% but inside one documentation the value in this command which once succeed in the row will gives
+% the same correct result in other rows also.
+%
+% The second argument---the contents of the |floatrow| environment.
+% \emph{All} float boxes in this row must use the |[\FBwidth]| option.
+%\begin{Quote}%
+%\begin{preamble}%
+%|\usepackage{graphicx}|
+%|\floatsetup[figure]{style=plain}\floatsetup[widefloat]{margins=hangleft}|
+%\end{preamble}%
+% |\begin{figure*}\fboxsep-.4pt|\nopagebreak
+% |\CommonHeightRow{\begin{floatrow}[4]|\nopagebreak
+% |\ffigbox[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{...}}|
+% |\ffigbox[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{...}}|
+% |\ffigbox[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{...}}|
+% |\ffigbox[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{...}}|\nopagebreak
+% |\end{floatrow}}|\nopagebreak
+% |\end{figure*}%|
+%\end{Quote}%
+%
+% Here you may see the result.
+%\begingroup
+% \floatsetup[figure]{style=plain}\floatsetup[widefloat]{margins=hangleft}
+% \begin{figure*}[H]\fboxsep-.4pt%^^A
+% \CommonHeightRow{\begin{floatrow}[4]%^^A
+% \ffigbox[\FBwidth]%^^A
+% {\caption{Figure~I in the row with common heights}%^^A%
+% \label{fig:CH:Dog}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{BlackDog.picture}}}}%^^A
+%%^^A
+% \ffigbox[\FBwidth]%^^A
+% {\caption{Figure~II in the row with common heights}%^^A%
+% \label{fig:CH:WcatI}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{TheCat.picture}}}}%^^A
+%%^^A
+% \ffigbox[\FBwidth]%^^A
+% {\caption{Figure~III in the row with common heights}%^^A%
+% \label{fig:CH:mouse}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{Mouse.picture}}}}%^^A
+%%^^A
+% \ffigbox[\FBwidth]%^^A
+% {\caption{Figure~IV in the row with common heights}%^^A%
+% \label{fig:CH:cheese}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{Cheese.picture}}}}%^^A
+% \end{floatrow}}%^^A
+% \end{figure*}%
+%\endgroup
+%
+% The next example is a~variation of previous one. The command |\CommonHeightRow| here
+% was used for the |subfloatrow| environment.
+%\begin{Quote}%
+%\begin{preamble}%
+%|\usepackage{graphicx}|
+%|\floatsetup[figure]{style=plain}\floatsetup[widefloat]{margins=hangleft}|
+%\end{preamble}%
+% |\begin{figure*}\fboxsep-.4pt|\nopagebreak
+% |\ffigbox{}{\CommonHeightRow{\begin{subfloatrow}[4]|\nopagebreak
+% |\ffigbox[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{...}}|
+% |\ffigbox[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{...}}|
+% |\ffigbox[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{...}}|
+% |\ffigbox[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{...}}|\nopagebreak
+% |\end{subfloatrow}}\caption{Figure with a row of parts with common height}}|
+% |\end{figure*}%|
+%\end{Quote}%
+%
+% Here you may see the result.
+%\begingroup
+% \floatsetup[figure]{style=plain}\floatsetup[widefloat]{margins=hangleft}
+% \begin{figure*}[H]\fboxsep-.4pt%^^A
+% \ffigbox{}{\CommonHeightRow{\begin{subfloatrow}[4]%^^A
+% \ffigbox[\FBwidth]%^^A
+% {\caption{Part~I in the row with common heights}%^^A%
+% \label{fig:CHI:Dog}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{BlackDog.picture}}}}%^^A
+%%^^A
+% \ffigbox[\FBwidth]%^^A
+% {\caption{Part~II in the row with common heights}%^^A%
+% \label{fig:CHI:WcatI}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{TheCat.picture}}}}%^^A
+%%^^A
+% \ffigbox[\FBwidth]%^^A
+% {\caption{Part~III in the row with common heights}%^^A%
+% \label{fig:CHI:mouse}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{Mouse.picture}}}}%^^A
+%%^^A
+% \ffigbox[\FBwidth]%^^A
+% {\caption{Part~IV in the row with common heights}%^^A%
+% \label{fig:CHI:cheese}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{Cheese.picture}}}}%^^A%
+% \end{subfloatrow}}\caption{Figure with a row of parts with common height}}%^^A
+% \end{figure*}%
+%\endgroup
+%
+% The last example load labels of parts of figures beside graphics.
+%\begin{Quote}%
+%\begin{preamble}%
+%|\usepackage{graphicx}|
+%|\floatsetup[figure]{style=plain}\floatsetup[widefloat]{margins=hangleft}|
+%|\floatsetup[subfigure]{capbesideposition=left}|
+%\end{preamble}%
+% |\begin{figure*}\fboxsep-.4pt|\nopagebreak
+% |\ffigbox{}{\CommonHeightRow{\begin{subfloatrow}[4]\useFCwidth|\nopagebreak
+% |\fcapside[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{}}|
+% |\fcapside[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{}}|
+% |\fcapside[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{}}|
+% |\fcapside[\FBwidth]|\nopagebreak
+% |{\includegraphics[height=\CommonHeight]{...}}{\caption{}}|\nopagebreak
+% |\end{subfloatrow}}\caption{Figure with a row of parts with common height}}|
+% |\end{figure*}%|
+%\end{Quote}%
+%
+% Here you may see the result.
+%\begingroup
+% \floatsetup[figure]{style=plain}\floatsetup[widefloat]{margins=hangleft}
+% \floatsetup[subfigure]{capbesideposition=left}
+% \begin{figure*}[H]\fboxsep-.4pt%^^A
+% \ffigbox{}{\CommonHeightRow{\begin{subfloatrow}[4]\useFCwidth
+% \fcapside[\FBwidth]%^^A
+% {\caption{}%^^A%
+% \label{fig:CHII:Dog}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{BlackDog.picture}}}}%^^A
+%%^^A
+% \fcapside[\FBwidth]%^^A
+% {\caption{}%^^A%
+% \label{fig:CHII:WcatI}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{TheCat.picture}}}}%^^A
+%%^^A
+% \fcapside[\FBwidth]%^^A
+% {\caption{}%^^A%
+% \label{fig:CHII:mouse}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{Mouse.picture}}}}%^^A
+%%^^A
+% \fcapside[\FBwidth]%^^A
+% {\caption{}%^^A%
+% \label{fig:CHII:cheese}}%^^A
+% {\resizebox!{\CommonHeight}{\fbox{\input{Cheese.picture}}}}%^^A%
+% \end{subfloatrow}}\caption{Figure with a row of parts with common height (labels beside)}}%^^A
+% \end{figure*}%
+%\endgroup
+%
+% The examples with beside figures which also include labeled parts.
+%
+% The row with labels beside.
+%\begin{Quote}%
+% |\floatsetup[subfigure]{capbesideposition=left}|
+% |\begin{figure*}[H]|
+% |\CommonHeightRow*%|
+% |{\begin{floatrow}|
+% |\ffigbox[\FBwidth]{}%|
+% |{\begin{subfloatrow}\useFCwidth|
+% |\fcapside[\FBwidth]{}{\caption{}\label{...}...}|
+% |\fcapside[\FBwidth]{}{\caption{}\label{...}...}|
+% |\end{subfloatrow}\caption{Common caption~I}}|
+% |\ffigbox[\FBwidth]{}%|
+% |{\begin{subfloatrow}\useFCwidth|
+% |\fcapside[\FBwidth]{}{\caption{}\label{...}...}|
+% |\fcapside[\FBwidth]{}{\caption{}\label{...}...}|
+% |\end{subfloatrow}\caption{Common caption~II...}}|
+% |\end{floatrow}}%|
+% |\end{figure*}|%
+%\end{Quote}%
+%^^A% Here you may see the result.
+% Íèæå ïîêàçàí ðåçóëüòàò.
+%\begingroup\makeatletter
+% \floatsetup[figure]{style=plain}\floatsetup[widefloat]{margins=hangleft}
+% \floatsetup[subfigure]{capbesideposition=left}
+% \begin{figure*}[H]\fboxsep-.4pt
+% \CommonHeightRow*%^^A\def\CommonHeight{2.5cm}
+% {\begin{floatrow}%^^A%
+% \ffigbox[\FBwidth]{}%^^A%
+% {\begin{subfloatrow}\useFCwidth
+% \fcapside[\FBwidth]{}{\caption{}%^^A%
+% \label{fig:CHs:Dog}\resizebox!{\CommonHeight}{\fbox{\input{BlackDog.picture}}}}%^^A
+%%^^A
+% \fcapside[\FBwidth]{}{\caption{}%^^A%
+% \label{fig:CHs:WcatI}\resizebox!{\CommonHeight}{\fbox{\input{TheCat.picture}}}}%^^A
+% \end{subfloatrow}\caption{Common caption~I in a~multilevel row with common height of graphics}}%^^A
+%%^^A
+% \ffigbox[\FBwidth]{}%^^A%
+% {\begin{subfloatrow}\useFCwidth
+% \fcapside[\FBwidth]{}{\caption{}%^^A%
+% \label{fig:CHs:mouse}\resizebox!{\CommonHeight}{\fbox{\input{Mouse.picture}}}}%^^A
+%%^^A
+% \fcapside[\FBwidth]{}{\caption{}%^^A%
+% \label{fig:CHs:cheese}\resizebox!{\CommonHeight}{\fbox{\input{Cheese.picture}}}}%^^A
+% \end{subfloatrow}\caption{Common caption~II in a~multilevel row with common height of graphics}}%^^A
+% \end{floatrow}}%^^A%
+% \end{figure*}%
+%\endgroup
+%
+% The row with labels below.
+%\begin{Quote}%
+% |\floatsetup[subfigure]{capbesideposition=left}|
+% |\begin{figure*}[H]|
+% |\CommonHeightRow*%|
+% |{\begin{floatrow}|
+% |\ffigbox[\FBwidth]{}%|
+% |{\begin{subfloatrow}|
+% |\ffigbox[\FBwidth]{}{\caption{}\label{...}...}|
+% |\ffigbox[\FBwidth]{}{\caption{}\label{...}...}|
+% |\end{subfloatrow}\caption{Common caption~I}}|
+% |\ffigbox[\FBwidth]{}%|
+% |{\begin{subfloatrow}|
+% |\ffigbox[\FBwidth]{}{\caption{}\label{...}...}|
+% |\ffigbox[\FBwidth]{}{\caption{}\label{...}...}|
+% |\end{subfloatrow}\caption{Common caption~II...}}|
+% |\end{floatrow}}%|
+% |\end{figure*}|%
+%\end{Quote}%
+% Here you may see the result.
+%\begingroup\makeatletter
+% \floatsetup[figure]{style=plain}\floatsetup[widefloat]{margins=hangleft}
+% \begin{figure*}[H]\fboxsep-.4pt%^^A
+% \CommonHeightRow*%
+% {\begin{floatrow}%^^A%
+% \ffigbox[\FBwidth]{}%^^A%
+% {\begin{subfloatrow}%^^A%
+% \ffigbox[\FBwidth]{}{\caption{Part~I in the row with common heights}%^^A%
+% \label{fig:CHsI:Dog}\resizebox!{\CommonHeight}{\fbox{\input{BlackDog.picture}}}}%^^A
+%%^^A
+% \ffigbox[\FBwidth]{}{\caption{Part~II in the row with common heights}%^^A%
+% \label{fig:CHsI:WcatI}\resizebox!{\CommonHeight}{\fbox{\input{TheCat.picture}}}}%^^A
+% \end{subfloatrow}\caption{Common caption~I in a~row with common height of graphics}}%^^A
+%%^^A
+% \ffigbox[\FBwidth]{}%^^A%
+% {\begin{subfloatrow}%^^A%
+% \ffigbox[\FBwidth]{}{\caption{Part~III in the row with common heights}%^^A%
+% \label{fig:CHsI:mouse}\resizebox!{\CommonHeight}{\fbox{\input{Mouse.picture}}}}%^^A
+%%^^A
+% \ffigbox[\FBwidth]{}{\caption{Part~IV in the row with common heights}%^^A%
+% \label{fig:CHsI:cheese}\resizebox!{\CommonHeight}{\fbox{\input{Cheese.picture}}}}%^^A
+% \end{subfloatrow}\caption{Common caption~II in a~row with common height of graphics}}%^^A
+% \end{floatrow}}%^^A%
+% \end{figure*}%
+%\endgroup
+%
+% The row with labels beside.
+%\begin{Quote}%
+% |\floatsetup[subfigure]{capbesideposition=left}|
+% |\begin{figure*}[H]|
+% |\CommonHeightRow*%|
+% |{\begin{floatrow}|%
+% |\ffigbox[\FBwidth]{}|
+% |{\begin{subfloatrow}[3]\useFCwidth|
+% |\fcapside[\FBwidth]{}{\caption{}\label{...}...}|
+% |\fcapside[\FBwidth]{}{\caption{}\label{...}...}|
+% |\fcapside[\FBwidth]{}{\caption{}\label{...}...}|
+% |\end{subfloatrow}\caption{Common caption~I}}|
+% |\ffigbox[\FBwidth]{}{\caption{Caption~II...}\label{...}...}|
+% |\end{floatrow}}%|
+% |\end{figure*}|%
+%\end{Quote}%
+% Here you may see the result.
+%\begingroup\makeatletter
+% \floatsetup[figure]{style=plain}\floatsetup[widefloat]{margins=hangleft}
+% \floatsetup[subfigure]{capbesideposition=left}
+% \begin{figure*}[H]\fboxsep-.4pt%^^A
+% \CommonHeightRow*%^^A%
+% {\begin{floatrow}[2]%^^A%
+% \ffigbox[\FBwidth]{}%^^A%
+% {\begin{subfloatrow}[3]\useFCwidth
+% \fcapside[\FBwidth]{}{\caption{}%^^A%
+% \resizebox!{\CommonHeight}{\fbox{\input{BlackDog.picture}}}}%^^A%
+% \fcapside[\FBwidth]{}{\caption{}%^^A%
+% \resizebox!{\CommonHeight}{\fbox{\input{TheCat.picture}}}}%^^A%
+% \fcapside[\FBwidth]{}{\caption{}%^^A%
+% \resizebox!{\CommonHeight}{\fbox{\input{Mouse.picture}}}}%^^A%
+% \end{subfloatrow}\caption{Common caption~I}}%^^A%
+% \ffigbox[\FBwidth]{}{\caption{}%^^A%
+% \resizebox!{\CommonHeight}{\fbox{\input{Cheese.picture}}}}%^^A%
+% \end{floatrow}}%^^A%
+% \end{figure*}%
+%\endgroup
+%
% \clearpage
% \subsection{Sample Files}\label{sec:samples}
% The |floatrow| package distribution offers a few files with
@@ -5843,8 +6593,8 @@
% in the mixed-level rows were added.
% \end{Options}
%
-% The next bundle of samples is a few file-headers with different
-% preamble which run the same file with various float
+% The next bundle of samples is a few file-headers with various
+% preambles which run the same file with various float
% layouts. For these examples a new float type of
% float |textbox| was created. It includes text in its object contents.
% \begin{Options}{\OptionLabel}
@@ -6409,10 +7159,10 @@
\newcommand\floatname[2]{\@namedef{#1name}{#2}}
\newcommand\floatplacement[2]{\@namedef{fps@#1}{#2}}
% \end{macrocode}
-% {\em [floatrow] 1)\enskip The definition of command name for float,
+% {\em [floatrow] \startNotes\Note The definition of command name for float,
% in the |\floatname| macro, from version \texttt{0.1p}
% is build like |\|\meta{floatname}|name|.} \quad
-% {\em2)\nobreak\enskip Here was stuff of undocumented command
+% {\em\Note Here was stuff of undocumented command
% \cmd{\floatevery} which, I suppose, allowed to set special settings for
% current type of float. In \package{floatrow} package it was deleted.
% Use \cmd{\floatsetup} stuff instead.}
@@ -6545,7 +7295,7 @@
\@namedef{#1}{\killfloatstyle\def\@captype{#1}\FR@redefs
\flrow@setlist{{#1}}%
\textwidth\columnwidth\edef\FBB@wd{\the\columnwidth}%
- \FRifFBOX\@@setframe\fi\@@FStrue\@float{#1}}%
+ \FRifFBOX\@@setframe\relax\@@FStrue\@float{#1}}%
% \end{macrocode}
% Two-column (wide) floating environment.
% \begin{macrocode}
@@ -6555,7 +7305,7 @@
% correct and non-doubled |\captionsetup| contents.
% \begin{macrocode}
\flrow@setlist{{#1}{widefloat}{wide#1}}%
- \FRifFBOX\@@setframe\fi\@@FStrue\edef\FBB@wd{\the\textwidth}%
+ \FRifFBOX\@@setframe\relax\@@FStrue\edef\FBB@wd{\the\textwidth}%
% \end{macrocode}
% {\sl[float] The standard |\@xdblfloat| macro changes |\hsize| to |\textwidth|.
% This way is not correct so use |\@xfloat| instead.}
@@ -6578,7 +7328,7 @@
\@namedef{sideways#1}{\killfloatstyle\def\@captype{#1}\FR@redefs
\flrow@setlist{{#1}{rotfloat}{rot#1}}%
\columnwidth\textheight\edef\FBB@wd{\the\textheight}%
- \FRifFBOX\@@setframe\fi\@@FStrue
+ \FRifFBOX\@@setframe\relax\@@FStrue
\let\rotfloat@@makebox\float@makebox
\let\float@makebox\rotfloat@makebox
\@float{#1}}%
@@ -6598,7 +7348,7 @@
\@namedef{sideways#1*}{\killfloatstyle\def\@captype{#1}\FR@redefs
\flrow@setlist{{#1}{rotfloat}{rot#1}{widerotfloat}{widerot#1}}%
\columnwidth\textheight\edef\FBB@wd{\the\textheight}%
- \FRifFBOX\@@setframe\fi\@@FStrue
+ \FRifFBOX\@@setframe\relax\@@FStrue
% \end{macrocode}
% {\sl[float] The standard |\@xdblfloat| macro changes |\hsize| to |\textwidth|.
% This way is not correct so use |\@xfloat| instead.}
@@ -6617,7 +7367,7 @@
% \begin{macrocode}
\@ifundefined{wrapfloat}{}{%
\@ifundefined{flrow@WF@rapt}{\let\flrow@WF@rapt\WF@rapt
- \def\WF@rapt[##1]##2{\FRifFBOX\@@setframe\fi\@@FStrue
+ \def\WF@rapt[##1]##2{\FRifFBOX\@@setframe\relax\@@FStrue
\dimen@##2\relax
\ifdim\dimen@>\z@
\edef\FBB@wd{\the\dimen@}\FB@fs@wd\dimen@\FBo@wd
@@ -6847,6 +7597,21 @@
% the stuff of flag \cmd{\@flstyle} (which sets whether use or not any
% predefined float style) moved out.}
%
+% {\em[floatrow] In the case of loaded \package{setspace} package, the |\@xfloat|
+% definition ought to be fixed.}
+% \begin{macrocode}
+\AtBeginDocument
+{\@ifundefined{latex@xfloat}{}{\let\@xfloat\setspace@xfloat
+}\let\setspace@xfloat\relax}
+\@ifdefinable\setspace@xfloat{}
+\def\setspace@xfloat #1[#2]{%
+ \latex@xfloat #1[#2]%
+ \def\baselinestretch{\setspace@singlespace}%
+ \normalsize
+ \floatfont
+}
+% \end{macrocode}
+%
% Later on we'll need a box to save a |[H]| float.
% \begin{macrocode}
\newsavebox\float@box
@@ -6925,7 +7690,7 @@
\if@tempswa\FB@readaux{\relax}\fi
\global\let\FBcheight\relax\global\let\FBoheight\relax
\global\let\FBfheight\relax
- \FBifcapbeside\FC@fs@wd\else\FB@fs@wd\fi
+ \FBifcapbeside\FC@fs@wd\FB@fs@wd
\the\FR@everyfloat}
% \end{macrocode}
% The definition of three height commands as |\relax|.
@@ -6954,10 +7719,9 @@
\adj@dim\@tempdima-\FBo@wadj={\global\FBo@wd}%
\hsize\FBo@wd\linewidth\hsize
\FBifcaptop
- \ifnum\FPOScnt=\z@\columnwidth\hsize\else\columnwidth\FBc@wd\fi
- \else
- \columnwidth\FBc@wd
- \fi}
+ {\ifnum\FPOScnt=\z@\columnwidth\hsize\else\columnwidth\FBc@wd\fi}%
+ {\columnwidth\FBc@wd}%
+ }
% \end{macrocode}
% \end{macro}
%
@@ -6973,7 +7737,8 @@
% \end{macrocode}
% This flag controls predefined width of caption.
% \begin{macrocode}
- \FC@ifc@wd
+ \FC@ifc@wd\@tempswatrue\@tempswafalse
+ \if@tempswa
\ifx\FCwidth\relax
\flrow@error{You didn't define width of caption\MessageBreak
for plain floating environment.}%
@@ -6983,18 +7748,18 @@
% This flag controls whether to fill rest space of float box with object
% contents when caption width was predefined.
% \begin{macrocode}
- \FC@ifo@fil\advance\@tempdima-\FBc@wd\fi
+ \FC@ifo@fil{\advance\@tempdima-\FBc@wd}\relax
\fi
\else
\global\FBc@wd\@tempdima
\fi
- \FC@ifo@fil\else\@tempdima.5\@tempdima
+ \FC@ifo@fil\relax{\@tempdima.5\@tempdima
% \end{macrocode}
% The |\flrow@setwd| could define the width for followed float.
% \begin{macrocode}
- \flrow@setwd\FB@wd\@tempdima\fi
+ \flrow@setwd\FB@wd\@tempdima}%
\adj@dim\@tempdima-\FBo@wadj={\global\FBo@wd}%
- \FC@ifc@wd\else\global\advance\FBc@wd-\FB@wd\fi
+ \FC@ifc@wd\relax{\global\advance\FBc@wd-\FB@wd}%
\hsize\FBo@wd\linewidth\hsize\columnwidth\FBc@wd\linewidth\hsize
\FCset@vpos}
% \end{macrocode}
@@ -7027,7 +7792,7 @@
%
% \begin{macrocode}
\newcommand\float@makebox[1]{%
- \FBifcapbeside\flrow@FC{#1}\else\flrow@FB{#1}\fi}
+ \FBifcapbeside{\flrow@FC{#1}}{\flrow@FB{#1}}}
% \end{macrocode}
% The definitions of vertical fine tuning corrections.
% \begin{macrocode}
@@ -7045,6 +7810,14 @@
\hbox to\@tempdima{\def\FB@zskip{\vskip\z@}%
\FBleftmargin\flrow@FB@\FBrightmargin}%
\FR@iffacing{\FB@writeaux{\string\global\string\c@FBcnt\thepage}}\relax
+% \@tempswafalse\FR@iffacing\@tempswatrue\relax
+% \ifCADJ\@tempswatrue\fi\ifOADJ\@tempswatrue\fi
+% \if@tempswa
+% \FB@writeaux{\string\c@FBcnt\thepage
+% \string\def\string\FB@@boxmax{%
+% \ifOADJ\string\FBo@ht\the\FBo@ht
+% \string\FBf@ht\the\FBf@ht\fi
+% \ifCADJ\string\FBc@ht\the\FBc@ht\fi}}\fi
\gdef\begin@FBBOX{\vbox\bgroup}\gdef\end@FBBOX{\egroup}%
\vskip\FBbskip\gdef\FBaskip{\z@}\gdef\FBbskip{\z@}}}
% \end{macrocode}
@@ -7059,6 +7832,13 @@
\leftmargin\z@\rightmargin\z@\flrow@FClist\vskip\FBaskip
\hbox to\@tempdima{\FCleftmargin\flrow@FC@\FCrightmargin}%
\FR@iffacing{\FB@writeaux{\string\global\string\c@FBcnt\thepage}}\relax
+% \@tempswafalse\FR@iffacing\@tempswatrue\relax
+% \if@tempswa
+% \FB@writeaux{\string\c@FBcnt\thepage
+% \string\def\string\FB@@boxmax{%
+% \ifOADJ\string\FBo@ht\the\FBo@ht
+% \string\FBf@ht\the\FBf@max\fi
+% \ifCADJ\string\FBc@ht\the\FBc@ht\fi}}\fi
\nocapbeside\global\let\FCwidth\relax
\vskip\FBbskip\gdef\FBaskip{\z@}\gdef\FBbskip{\z@}}}
% \end{macrocode}
@@ -7106,14 +7886,15 @@
% \begin{macrocode}
\@parboxrestore\leftmargin\z@\rightmargin\z@
\@@FBabove
- \FBifcaptop
+ \FBifcaptop\@tempswatrue\@tempswafalse
+ \if@tempswa
% \end{macrocode}
% If needed and exists---caption box above float object.
% If key |footposition=caption| under caption loaded
% foot material.
% \begin{macrocode}
\ifvoid\@floatcapt\else
- \FB@vbox\FBc@wd\FBcheight{\FBifCAPTOP\else\vfill\fi
+ \FB@vbox\FBc@wd\FBcheight{\FBifCAPTOP\relax\vfill
\unvbox\@floatcapt
\ifnum\FPOScnt=\@ne\vbox{\FB@foot}\fi\vfil}%
\@@FBskip\hrule\@height\z@\@depth\z@
@@ -7131,7 +7912,7 @@
\vskip\z@
\ifnum\FPOScnt=\z@
\FB@vtop\FBo@wd\FBfheight{\FB@foot\vfil}\fi}}\par
- \par\vskip\z@
+ \vskip\z@
\ifnum\FPOScnt=\tw@\vskip\z@
\FB@vtop\FBc@wd\FBfheight{\FB@foot\vfil}\fi}%
% \end{macrocode}
@@ -7193,7 +7974,7 @@
% \end{macrocode}
% Macro for foots and command for skip outside float row.
% \begin{macrocode}
-\newcommand\FB@foot{\let\FR@ifFOOT\iftrue\FB@putfoots\@@par\FB@putfnotes}
+\newcommand\FB@foot{\let\FR@ifFOOT\@firstoftwo\FB@putfoots\@@par\FB@putfnotes}
\newcommand\FB@zskip{}
% \end{macrocode}
% \end{macro}
@@ -7429,7 +8210,8 @@
%
% \begin{macro}{\FR@everyfloat}
% These token macros add redefinition of float stuff to arrange usage
-% of footnotes inside plain float contents.
+% of footnotes inside plain float contents. The footnote stuff works like
+% in minipage,
% \begin{macrocode}
\@ifdefinable\FR@everyfloat{\newtoks\FR@everyfloat}
\FR@everyfloat={\let\@footnotetext\@mpfootnotetext
@@ -7441,7 +8223,7 @@
% \begin{macro}{\FR@ifFOOT}
% Flag for placing foot material.
% \begin{macrocode}
-\let\FR@ifFOOT\iffalse
+\@ifdefinable\FR@ifFOOT{\let\FR@ifFOOT\@secondoftwo}
% \end{macrocode}
% \end{macro}
%
@@ -7454,9 +8236,9 @@
% A special skip (|\skip\@mpfootins|) dimension for footnotes in
% float box changed to |\floatfootskip|.
% \begin{macrocode}
- \vskip\floatfootskip\normalcolor\FBfootnoterule
- \unvbox\@mpfootins\@@par
- \fi\fi}
+ {\vskip\floatfootskip\normalcolor\FBfootnoterule
+ \unvbox\@mpfootins\@@par}\relax
+ \fi}
% \end{macrocode}
% \end{macro}
%
@@ -7470,9 +8252,9 @@
% \end{macrocode}
% The |\footnoterule| is not used for float foot.
% \begin{macrocode}
- \vskip\floatfootskip\normalcolor
- \unvbox\flrow@foot\@@par
- \fi\fi}
+ {\vskip\floatfootskip\normalcolor
+ \unvbox\flrow@foot\@@par}\relax
+ \fi}
% \end{macrocode}
% \end{macro}
%
@@ -7517,7 +8299,7 @@
\newcommand\floatfoot@box[1]{%
\@ifundefined{@captype}{\def\@captype{floatfoot}}{}%
% \end{macrocode}
-% The |\if@@FS| flag stored for \env{wrap...} environments.
+% The |\if@@FS| flag stored for |wrap...| environments.
% \begin{macrocode}
\if@@FS\hsize\columnwidth\linewidth\columnwidth\fi
\@parboxrestore\reset@font\color@begingroup
@@ -7643,7 +8425,7 @@
%
% \subsubsection{Commands for Counting Width and Height}
%
-% \begin{macro}{\FR@loc@addcnt}
+% \begin{macro}{\FR@loc@fcaddcnt}
% \begin{macro}{\FR@loc@}
% \begin{macro}{\FBtmp@cap}
% Redefinition of \cmd{\addtocounter} macro---localization of counter change.
@@ -7661,10 +8443,14 @@
% \end{macrocode}
% Gobbling of caption label and localization of counter change.
% \begin{macrocode}
-\newcommand\FR@loc@{\let\label\@gobble
+\newcommand\FR@loc@{%
+% \flrow@gobble
+ \let\FR@ifunloc\@gobble
+ \let\label\@gobble
\let\refstepcounter\FR@loc@refcnt
\let\stepcounter\FR@loc@refcnt
\let\refsteponlycounter\FR@loc@refcnt
+ \let\FR@ifcountH\@secondoftwo
% \end{macrocode}
% The |\cl@@ckpt| is macro which ``globalizes'' all counters. It is used by
% |tabularx| environment. Here it is emptied during local creation of
@@ -7724,7 +8510,7 @@
% |\hsize=0pt| the |\FBB@wd| still defined as |\relax|. It will be
% defined later.
%
-% The |\hsize=0pt| can be defined in mandatory argument of \env{wrap...}
+% The |\hsize=0pt| can be defined in mandatory argument of |wrap...|
% environment in the case of creation space equal to float contents.
% If |\floatbox| macro has not any \oarg{width} argument, the |\hsize|
% of wrapped figure equals to beside text (i.e. current text is `divided'
@@ -7735,7 +8521,7 @@
\ifdim\hsize=\z@
% \end{macrocode}
% The |\floatbox| stuff doesn't use special |\caption| definition inside
-% \env{wrap...} environment---|\caption| restores its behavior.
+% |wrap...| environment---|\caption| restores its behavior.
% \begin{macrocode}
\@ifundefined{wf@@caption}{}{\let\caption\wf@@caption}%
\hsize.5\columnwidth\advance\hsize-.5\columnsep
@@ -7747,14 +8533,12 @@
\fi}%
\adj@dim\hsize-\FB@wadj=\@tempdima
\FBifcapbeside
- \FCget@@wd{#1}{#3}%
- \else
- \nofilFCOhsize
+ {\FCget@@wd{#1}{#3}}%
+ {\nofilFCOhsize
\FBiffloatrow\relax
{\settowidth\@tempdimb{{\FBleftmargin}{\FBrightmargin}}%
- \advance\@tempdima-\@tempdimb}%
- \fi
- \FC@ifo@fil\@tempdima\FB@wd\else\FB@wd\@tempdima\fi
+ \advance\@tempdima-\@tempdimb}}%
+ \FC@ifo@fil{\@tempdima\FB@wd}{\FB@wd\@tempdima}%
\adj@dim\@tempdima-\FBo@wadj=\FBo@wd
% \end{macrocode}
% This line is doubled below but it is necessary here in case
@@ -7764,7 +8548,7 @@
% \end{macrocode}
% |\FB@wd| changed only for beside captions.
% \begin{macrocode}
- \FBifcapbeside\hsize\FB@wd\fi
+ \FBifcapbeside{\hsize\FB@wd}\relax
\linewidth\hsize
% \end{macrocode}
% If there are defined the width and/or height arguments in |\floatbox|
@@ -7774,19 +8558,15 @@
\else\FBget@@wd{#1}{#3}\fi
\hsize\FBo@wd\linewidth\hsize
\FBifcapbeside
- \FC@ifc@wd\else\advance\FBc@wd-\FB@wd\fi
- \else
- \FBc@wd\FB@wd
- \fi
+ {\FC@ifc@wd\relax{\advance\FBc@wd-\FB@wd}}%
+ {\FBc@wd\FB@wd}%
% \end{macrocode}
% From this point macro calculates heights of caption and object if necessary.
% \begin{macrocode}
- \setbox\z@\vbox{\FR@loc@\hsize\FBo@wd\linewidth\hsize
+ \setbox\z@\vbox{\let\FR@ifROWFILL\@secondoftwo\FR@loc@\hsize\FBo@wd\linewidth\hsize
\FBifcaptop
- \ifnum\FPOScnt=\z@\columnwidth\hsize\else\columnwidth\FBc@wd\fi
- \else
- \columnwidth\FBc@wd
- \fi
+ {\ifnum\FPOScnt=\z@\columnwidth\hsize\else\columnwidth\FBc@wd\fi}%
+ {\columnwidth\FBc@wd}%
#3}%
\FBc@ht\ht\@floatcapt\advance\FBc@ht\dp\@floatcapt
\FBo@ht\ht\z@\advance\FBo@ht\dp\z@\let\FBheight\FBo@ht
@@ -7796,9 +8576,8 @@
{\ifdim\FBf@ht>\FBf@max\global\FBf@max\FBf@ht\fi
\ifCADJ
\FBifcaptop
- \ifnum\FPOScnt=\@ne\global\advance\FBc@ht\FBf@ht\fi
- \else
- \ifnum\FPOScnt=\tw@
+ {\ifnum\FPOScnt=\@ne\global\advance\FBc@ht\FBf@ht\fi}%
+ {\ifnum\FPOScnt=\tw@
\ifdim\FBf@ht>\FBf@max
\global\advance\FBc@ht\FBf@ht
\else
@@ -7806,8 +8585,7 @@
\fi
\else
\global\advance\FBc@ht\FBf@ht
- \fi
- \fi
+ \fi}%
\ifdim\FBc@ht>\FBc@max\global\FBc@max\FBc@ht\fi
\gdef\FBcheight{\FBc@ht}\gdef\FBfheight{\FBf@ht}%
\fi}\relax
@@ -7815,10 +8593,9 @@
\FBiffloatrow{\ifOADJ
\ifdim\FBo@ht>\FBo@max\global\FBo@max\FBo@ht\fi
\FBifcaptop
- \ifnum\FPOScnt=\z@
+ {\ifnum\FPOScnt=\z@
\ifdim\FBf@ht>\FBf@max\global\FBf@max\FBf@ht\fi
- \fi
- \fi
+ \fi}\relax
\gdef\FBoheight{\FBo@ht}\gdef\FBfheight{\FBf@ht}%
\fi}\relax
\else
@@ -7838,8 +8615,9 @@
{\settowidth\@tempdimb{{\FCleftmargin}{\FCrightmargin}}%
\advance\@tempdima-\@tempdimb\advance\hsize-\@tempdimb}%
\settowidth\@tempdimb{\floatcapbesidesep}\advance\@tempdima-\@tempdimb
- \FC@ifo@fil\FB@wd\@tempdima\fi
- \FC@ifc@wd
+ \FC@ifo@fil{\FB@wd\@tempdima}\relax
+ \FC@ifc@wd\@tempswatrue\@tempswafalse
+ \if@tempswa
% \end{macrocode}
% If |\FCwidth| was not defined (|\relax|), macro calculates
% natural caption width (in this case |\caption| restores plain \LaTeX's
@@ -7856,7 +8634,7 @@
% \end{macrocode}
% The |\FCwidth| is local dimension.
% \begin{macrocode}
- \fi\FC@ifo@fil\advance\FB@wd-\FBc@wd\fi
+ \fi\FC@ifo@fil{\advance\FB@wd-\FBc@wd}\relax
\else
\FBc@wd\@tempdima
\fi
@@ -7864,6 +8642,21 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\flrow@gobble@}
+% \begin{macro}{\flrow@gobble}
+% \begin{macrocode}
+\newcommand\flrow@gobble@[2][]{\unskip\ignorespaces}
+\newcommand\flrow@gobble{%
+ \let\caption\flrow@gobble@
+ \let\floatfoot\flrow@gobble@
+ \let\footnote\flrow@gobble@
+ \let\footnotetext\flrow@gobble@
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
% \begin{macro}{\FBget@@wd}
% Counts the width of object if the width optional argument not empty.
%
@@ -7879,7 +8672,8 @@
\setlength\dimen@{#1}\ifdim\dimen@<\z@\global\@tempswatrue\fi
\endgroup
\if@tempswa
- \setbox\z@\hbox{\FR@loc@#2}\FBo@wd\wd\z@\let\FBwidth\FBo@wd
+ \setbox\z@\hbox{\let\FR@ifROWFILL\@secondoftwo\FR@loc@#2}%
+ \FBo@wd\wd\z@\let\FBwidth\FBo@wd
\setlength\FBo@wd{#1}%
\advance\FBo@wd\leftskip\advance\FBo@wd\rightskip
% \end{macrocode}
@@ -7915,24 +8709,25 @@
\global\@tempswatrue\fi
\endgroup
\if@tempswa
- \setbox\z@\hbox{\FR@loc@#2}\FBo@ht\ht\z@\advance\FBo@ht\dp\z@
+ \setbox\z@\hbox{\let\FR@ifROWFILL\@secondoftwo\FR@loc@#2}%
+ \FBo@ht\ht\z@\advance\FBo@ht\dp\z@
\let\FBheight\FBo@ht\setlength\FBo@ht{#1}%
\adj@dim\FBo@ht+\FBo@hadj=\FBo@ht
- \FBifcaptop\ifnum\FPOScnt=\z@\advance\FBo@ht\FBf@ht\fi\fi
+ \FBifcaptop{\ifnum\FPOScnt=\z@\advance\FBo@ht\FBf@ht\fi}\relax
\else
\setlength\FBo@ht{#1}%
\adj@dim\FBo@ht-\FBo@hadj=\FBo@ht
\adj@dim\FBo@ht-\FB@hadj=\FBo@ht
\setbox\z@\vbox{\offinterlineskip\vbox{\@@FBabove}%
- \FBifcapbeside\else\@@FBskip\hrule\@height\z@\@depth\z@\fi
+ \FBifcapbeside\relax{\@@FBskip\hrule\@height\z@\@depth\z@}%
\vtop{\@@FBbelow}}%
\global\advance\FBo@ht-\ht\z@\global\advance\FBo@ht-\dp\z@
- \FBifcapbeside\else\FBget@@@ht\fi
+ \FBifcapbeside\relax\FBget@@@ht
\fi
\FBiffloatrow{\ifOADJ
\ifdim\FBo@ht>\FBo@max\global\FBo@max\FBo@ht\fi
% \ifdim\FBf@ht>\FBf@max\global\FBf@max\FBf@ht\fi
-% \FBifcaptop\ifnum\FPOScnt=\z@\advance\FBo@ht\FBf@ht\fi\fi
+% \FBifcaptop{\ifnum\FPOScnt=\z@\advance\FBo@ht\FBf@ht\fi}\relax
\fi}\relax
\def\FBoheight{\FBo@ht}}
% \end{macrocode}
@@ -7954,13 +8749,13 @@
\else
\global\advance\FBo@ht-\FBc@max
\fi
- \FBifcaptop\ifnum\FPOScnt=\@ne\else
+ \FBifcaptop{\ifnum\FPOScnt=\@ne\else
\ifdim\FBf@ht>\FBf@max
\global\advance\FBo@ht-\FBf@ht
\else
\global\advance\FBo@ht-\FBf@max
\fi
- \fi\fi
+ \fi}\relax
}
% \end{macrocode}
% \end{macro}
@@ -8006,7 +8801,7 @@
% The |\FR@ifFCBOX| flag if true aligns top or bottom of object's
% frame with top or bottom of beside caption if fancy layout used.
% \begin{macrocode}
-\let\FR@ifFCBOX\@secondoftwo
+\@ifdefinable\FR@ifFCBOX{\let\FR@ifFCBOX\@secondoftwo}
\newcommand\FBs@raise{\raisebox{-\totalheight}}
\newcommand\FBf@raise{}
% \end{macrocode}
@@ -8091,7 +8886,7 @@
% \begin{macrocode}
\flrow@settype{subfloat}\flrow@settype{subtype}\flrow@settype{sub\@captype}%
\fi
- \FRifFBOX\@@setframe\fi\@@FStrue
+ \FRifFBOX\@@setframe\relax\@@FStrue
\fi
% \end{macrocode}
% Put temporary command with option settings
@@ -8102,7 +8897,7 @@
% Then load settings for beside captions, in the case we use this
% layout---the beside caption could use a bit different layout.
% \begin{macrocode}
- \FBifcapbeside\flrow@FClist\fi
+ \FBifcapbeside\flrow@FClist\relax
% \end{macrocode}
% Restoring standard justified paragraph settings${{}+{}}$|\parindent\z@|.
% \begin{macrocode}
@@ -8118,11 +8913,11 @@
% \changes{v0.1f}{2005/06/14}{The \cmd{\capstart} added as
% a)~\cmd{\FR@floatbox} argument (outside float row).}
% \begin{macrocode}
- \FBifcapbeside\FCset@vpos\fi
+ \FBifcapbeside\FCset@vpos\relax
\FBiffloatrow{\FR@floatbox{\@ifundefined{capstart}{}{\capstart}#4#5}}%
% \end{macrocode}
% The restoring of full |\hsize| of current float box.
-% For the case of counting of float width inside \env{wrap...} environment
+% For the case of counting of float width inside |wrap...| environment
% here defined the |\FBB@wd| macro. Inside the |\FBsetbox@obj| macro it |\relax|ed
% again to get brand-new settings for possible inner |\floatbox|es.
% \changes{v0.1f}{2005/06/14}{The \cmd{\capstart} added as
@@ -8132,8 +8927,9 @@
\ifx\FBB@wd\relax\edef\FBB@wd{\the\hsize}\fi
\FBsetbox@obj{\@ifundefined{capstart}{}{\capstart}\let\FBB@wd\relax
#4#5}\FBbuildtrue
- \FBifcapbeside\flrow@FC\FBB@wd\else\flrow@FB\FBB@wd\fi
+ \FBifcapbeside{\flrow@FC\FBB@wd}{\flrow@FB\FBB@wd}%
\global\FBbuildfalse
+ \FR@iffacing{\FB@writeaux{\string\global\string\c@FBcnt\thepage}}\relax
% \global\FB@wd\hsize
}\advance\floatbox@depth\m@ne
% \end{macrocode}
@@ -8158,7 +8954,7 @@
% Here we create boxes of float contents.
% \begin{macrocode}
\FBsetbox@obj{#1}\begin@FBBOX
- \FBifcapbeside\flrow@FC@\else\flrow@FB@\fi
+ \FBifcapbeside\flrow@FC@\flrow@FB@
\end@FBBOX
% \end{macrocode}
% The each float box in float row reduces special counter |FRobj|
@@ -8171,6 +8967,12 @@
% At end of row it equals zero.
% \begin{macrocode}
\advance\Xhsize-\FB@wd
+ \FBifcapbeside
+ {\advance\Xhsize-\FBc@wd
+ \FR@ifcountH{\global\advance\Zhsize-\FBc@wd}\relax
+ \settowidth\@tempdimb{\floatcapbesidesep}%
+ \advance\Xhsize-\@tempdimb
+ \FR@ifcountH{\global\advance\Zhsize-\@tempdimb}\relax}\relax
\ifnum\c@FRobj=\z@
% \end{macrocode}
% Here goes macro which prints in \file{.aux}-file the final
@@ -8178,9 +8980,6 @@
% At last goes flag for float box layout building.
% \begin{macrocode}
\if@tempswa
- \FBifcapbeside
- \advance\Zhsize-\FBc@wd
- \fi
\FB@writeaux{\string\c@FBcnt\thepage
\string\def\string\FB@@boxmax{%
\ifOADJ\string\FBo@ht\the\FBo@max
@@ -8191,12 +8990,12 @@
% \end{macrocode}
% Between floats in float row macro puts separation material.
% \begin{macrocode}
- \FBifcapbeside
- \advance\Xhsize-\FBc@wd
- \advance\Zhsize-\FBc@wd
- \settowidth\@tempdimb{\floatcapbesidesep}%
- \advance\Xhsize-\@tempdimb
- \advance\Zhsize-\@tempdimb\fi
+% \FBifcapbeside
+% {\advance\Xhsize-\FBc@wd
+% \FR@ifcountH{\global\advance\Zhsize-\FBc@wd}\relax
+% \settowidth\@tempdimb{\floatcapbesidesep}%
+% \advance\Xhsize-\@tempdimb
+% \FR@ifcountH{\global\advance\Zhsize-\@tempdimb}\relax}\relax
\floatrowsep
\adj@dim\Xhsize-\FB@wadj={\global\Xhsize}%
\adj@dim\Zhsize-\FB@wadj={\global\Zhsize}%
@@ -8209,12 +9008,10 @@
\newcommand\FBsetbox@obj[1]{%
\setbox\float@box\color@vbox\normalcolor
\FBifcaptop
- \FB@vtop\FBo@wd\FBoheight\bgroup\FBafil\floatobjectset\floatfont
- \ifnum\FPOScnt=\z@\columnwidth\FBo@wd\else\columnwidth\FBc@wd\fi
- \else
- \FB@vbox\FBo@wd\FBoheight\bgroup\FBafil\floatobjectset\floatfont
- \columnwidth\FBc@wd
- \fi
+ {\FB@vtop\FBo@wd\FBoheight\bgroup\FBafil\floatobjectset\floatfont
+ \ifnum\FPOScnt=\z@\columnwidth\FBo@wd\else\columnwidth\FBc@wd\fi}%
+ {\FB@vbox\FBo@wd\FBoheight\bgroup\FBafil\floatobjectset\floatfont
+ \columnwidth\FBc@wd}%
#1\FBbfil\egroup\color@endbox
\let\@currbox\float@box}
% \end{macrocode}
@@ -8229,7 +9026,7 @@
% Switch used in |\floatbox| to define whether it placed inside of
% environment of beside floats (float row) or not.
% \begin{macrocode}
-\let\FBiffloatrow\@secondoftwo
+\@ifdefinable\FBiffloatrow{\let\FBiffloatrow\@secondoftwo}
% \end{macrocode}
% \end{macro}
%
@@ -8258,6 +9055,8 @@
\newlength\sZhsize
% \end{macrocode}
% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \subsubsection{Float Row Environment}
%
@@ -8269,30 +9068,77 @@
% material}
% \begin{macrocode}
\newcommand\flrow@to{to\hsize}
+\newcommand\flrow@boxset[1]{#1}
+\newcommand\flrow@setrowhbox{%
+\FR@ifROWFILL{\def\flrow@left{\hskip\leftskip}\def\flrow@right{\hskip\rightskip}%
+ }{\let\flrow@to\empty\def\flrow@left{}\def\flrow@right{}}%
+}
+\newcommand\flrow@left{}\newcommand\flrow@right{}
+\newcommand\flrow@hbox@bgroup{\hbox\flrow@to
+ \bgroup\flrow@left}
+\newcommand\flrow@hbox@egroup{\flrow@right
+ \egroup}
+\newbox\flrow@rowbox
\newcommand\floatrow[1][2]{\c@FRobj=#1\relax
- \ifnum\floatbox@depth>\z@
+% \end{macrocode}
+% If depth of row more than 0 the subfloatrow settings are switched.
+% \begin{macrocode}
+ \ifcase\floatbox@depth
+ \flrow@setlist{{floatrow}{\@captype row}}%
+ \or
+% \end{macrocode}
+% The |\caption| stuff catches |sub\@captype| settings by itself. The other reason to skip
+% caption settings here is possible usage of upper level |\caption| inside of |\RawCaption|
+% command which need ``parent'' settings. In this case
+% in the second label were loaded only float layout settings.
+% \begin{macrocode}
\flrow@settype{subfloat}\flrow@settype{subtype}\flrow@settype{sub\@captype}%
+ \flrow@settype{subfloatrow}\flrow@settype{sub\@captype row}%
+ \ifx\flrow@to\empty\def\flrow@boxset##1{}\fi
\fi
+% \end{macrocode}
+% Settings for facing/non-facing layout, common/non-common heights of captions and objects.
+% \begin{macrocode}
\FB@facing\@tempswafalse\FR@iffacing\@tempswatrue\relax
\ifCADJ\@tempswatrue\fi\ifOADJ\@tempswatrue\fi
\if@tempswa\FB@readaux{\relax}\fi
- \ifx\flrow@to\empty\else\ifx\FBB@wd\relax\edef\FBB@wd{\the\hsize}\fi\fi
- \vbox\bgroup\vskip\FBaskip\ifx\flrow@to\empty\else\hsize\FBB@wd\fi
- \ifx\flrow@to\empty\else
- \hb@xt@\hsize{\vbox{\settowidth\@tempdima
- {{\FRleftmargin}{\FRrightmargin}}{\advance\hsize-\@tempdima
- \settowidth\leftskip\FRleftmargin\@@FRabove}}\hss}\unskip
- \fi
- \hbox\flrow@to\bgroup\let\FBiffloatrow\@firstoftwo\FRleftmargin\begingroup
+ \flrow@boxset{\ifx\FBB@wd\relax\edef\FBB@wd{\the\hsize}\else\hsize\FBB@wd\fi}%
+% \end{macrocode}
+% Settings analyzed.
+% The building of box of row of floats started.
+% \begin{macrocode}
+ \ifnum\floatbox@depth=\z@\vspace\FBaskip\else\leavevmode\fi
+ \hbox\flrow@to\bgroup%outer h box
+ \FRleftmargin
+ \flrow@boxset{\hsize\FBB@wd
+ \settowidth\@tempdima{{\FRleftmargin}{\FRrightmargin}}\advance\hsize-\@tempdima}%
+ \bgroup\ifx\FR@frame\empty\else\def\FB@frame{}\def\FB@wadj{}\def\FB@hadj{}\fi%frame set
+ \flrow@boxset{\adj@dim\hsize-\FR@wadj=\hsize}%
+ \setbox\flrow@rowbox\vbox\bgroup%v box
+% \end{macrocode}
+% Material above.
+% \begin{macrocode}
+ \@@FRabove
+% \end{macrocode}
+% Row |\hbox|.
+% \begin{macrocode}
+ \flrow@setrowhbox
+ \flrow@hbox@bgroup\let\FBiffloatrow\@firstoftwo
% \end{macrocode}
% Here starts trick with redefinition of |\hsize| inside float row.
% The |\hsize| will be equal to one ``column'' (the number of
% ``columns''-floats gives optional argument---the default is \texttt{2}).
% \begin{macrocode}
\Xhsize\hsize\count@#1\advance\count@\m@ne
- \settowidth\@tempdima{{\FRleftmargin}{\FRrightmargin}}\advance\Xhsize-\@tempdima
+% \settowidth\@tempdima{{\FRleftmargin}{\FRrightmargin}}\advance\Xhsize-\@tempdima
\settowidth\@tempdima{\floatrowsep}\advance\Xhsize-\count@\@tempdima
- \@tempdimb\Xhsize\Zhsize\Xhsize\divide\@tempdimb#1\relax\FB@wd\@tempdimb
+ \@tempdimb\Xhsize
+ \FR@iftwolevel
+ {\ifnum\floatbox@depth=\z@\Zhsize\Xhsize\else
+ \ifdim\Zhsize=\z@\Zhsize\Xhsize\sZhsize\Xhsize\fi
+ \FR@ifcountH{\global\advance\Zhsize-\count@\@tempdima}\relax
+ \fi}{\@tempdimb\Xhsize\Zhsize\Xhsize}%
+ \divide\@tempdimb#1\relax\FB@wd\@tempdimb
% \end{macrocode}
% Here goes recalculated |\hsize|.
% \begin{macrocode}
@@ -8301,14 +9147,21 @@
% Macro for float row end.
% \begin{macrocode}
\def\endfloatrow{\ifdim\lastskip>\z@\unskip\fi
- \endgroup\FRrightmargin\egroup%h box
- \ifx\flrow@to\empty\else
- \let\FBiffloatrow\@secondoftwo\relax
- \hb@xt@\hsize{\vbox{\settowidth\@tempdima
- {{\FRleftmargin}{\FRrightmargin}}{\advance\hsize-\@tempdima
- \settowidth\leftskip\FRleftmargin\@@FRbelow}}\hss}%
- \fi
- \vskip\FBbskip\gdef\FBaskip{\z@}\gdef\FBbskip{\z@}\egroup%v box
+ \flrow@hbox@egroup%h box
+% \end{macrocode}
+% Material below.
+% \begin{macrocode}
+ \@@FRbelow
+ \egroup%v box
+ \FR@frame{\box\flrow@rowbox}%
+ \egroup%frame set
+ \FRrightmargin\egroup%outer h box
+ \ifnum\floatbox@depth=\z@\vspace\FBbskip\fi
+% \end{macrocode}
+% The building of box of row of floats finished.
+% Values of common heights and skips zeroed, default box settings restored.
+% \begin{macrocode}
+ \gdef\FBaskip{\z@}\gdef\FBbskip{\z@}%
\global\FBf@max\z@\global\FBo@max\z@\global\FBc@max\z@
\gdef\begin@FBBOX{\vbox\bgroup}\gdef\end@FBBOX{\egroup}}
% \end{macrocode}
@@ -8321,9 +9174,12 @@
% \changes{v0.2a}{2007/08/24}{The \cmd{\subfloatrow} moved from \package{fr-subfig}
% in main package body}
% \begin{macrocode}
-\newenvironment{subfloatrow}{\captionsetup{subtype}\@nameuse{subfloatrow*}}{\@nameuse{endsubfloatrow*}}
+\newenvironment{subfloatrow}{\capsubrowsettings
+ \captionsetup{subtype}\@nameuse{subfloatrow*}}{\@nameuse{endsubfloatrow*}}
+\newcommand\capsubrowsettings{\caption@setoptions{subfloatrow}\caption@setoptions{sub\@captype row}}
\newenvironment{subfloatrow*}[1][2]{\let\flrow@to\empty
- \let\Xhsize\sXhsize\let\Zhsize\sZhsize\let\c@FRobj\c@FRsobj
+ \let\Xhsize\sXhsize%\let\Zhsize\sZhsize
+ \FR@ifunloc{\let\FR@ifcountH\@firstoftwo}\let\c@FRobj\c@FRsobj
\def\FRleftmargin{}\def\FRrightmargin{}\let\floatrowsep\subfloatrowsep
\floatrow[#1]\killfloatstyle}{\ifdim\lastskip>\z@\unskip\fi
\@ifundefined{adjustsubfloats}\relax\adjustsubfloats\endfloatrow}
@@ -8336,20 +9192,32 @@
% \end{macrocode}
%
% \begin{macrocode}
-\@ifdefinable\FR@ifuseCommonHeight{\let\FR@ifuseCommonHeight\@secondoftwo}
-\newcommand\CommonHeightRow[2]{\def\CommonHeight{#1}\setbox\z@\hbox{\FR@loc@#2}%
+\@ifdefinable\FR@ifcountH{\let\FR@ifcountH\@firstoftwo}
+\@ifdefinable\FR@ifunloc{\let\FR@ifunloc\@firstofone}
+\@ifdefinable\FR@iftwolevel{\let\FR@iftwolevel\@secondoftwo}
+\newcommand\CommonHeightRow{\@ifstar
+ {\let\FR@iftwolevel\@firstoftwo\CommonHeightRow@
+ }{\let\FR@iftwolevel\@secondoftwo\CommonHeightRow@}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand\DefaultCommonHeight{25pt}
+\newcommand\CommonHeight{\DefaultCommonHeight}
+\newcommand\CommonHeightRow@[2][\DefaultCommonHeight]{\def\CommonHeight{#1}\setbox\z@
+ \hbox{\FR@loc@\let\FR@ifunloc\@firstofone#2}%
\ifcase\floatbox@depth\def\@tempa{\Xhsize}\def\@tempb{\Zhsize}\or
- \def\@tempa{\sXhsize}\def\@tempb{\sZhsize}\fi
+ \def\@tempa{\sXhsize}\def\@tempb{\Zhsize}\fi
\FR@calc@CommonHeight#2}
-%\newcommand\UseCommonHeight[1]{\let\FR@ifuseCommonHeight\@firstoftwo\def\CommonHeight{#1}}
-\newdimen\FR@Zunitlength
+\@ifdefinable\FR@Zunitlength{\newdimen\FR@Zunitlength}
% \end{macrocode}
-% The width of row, occupied by graphics divided in |.5pt| segments (|131072|).
-% (To get |1pt| segment the |\count@| value must be divided by |65536|.)
+% The width of row, occupied by graphics divided in |1pt| segments. (To get |2pt|
+% segment the |\count@| value must be divided by |131072|;
+% to get |1pt| segment the |\count@| value must be divided by |65536|;
+% to get |.5pt| segment the |\count@| value must be divided by |32768|.)
% \begin{macrocode}
\newcommand\FR@calc@CommonHeight{%
\@tempdima\@tempb\advance\@tempdima-\@tempa
- \count@\@tempdima\relax\divide\count@131072\relax
+ \count@\@tempdima\relax\divide\count@16384\relax
% \end{macrocode}
% The same number of segments will be for the necessary width of graphics.
% The value of segment loaded in |\FR@Zunitlength| dimension.
@@ -8357,9 +9225,9 @@
\divide\@tempb\count@\relax\FR@Zunitlength\@tempb\relax
\@tempdima\CommonHeight\relax
% \end{macrocode}
-% Now divide |\CommonHeight| in |.5pt| segments.
+% Now divide |\CommonHeight| in |1pt| segments.
% \begin{macrocode}
- \count@\@tempdima\relax\divide\count@131072\relax
+ \count@\@tempdima\relax\divide\count@16384\relax
\@tempdima\count@\FR@Zunitlength\relax
% \end{macrocode}
% And then these segments get value of |\FR@Zunitlength|.
@@ -8506,7 +9374,7 @@
% \begin{macrocode}
\newcommand\flrow@setlist[1]{\@flrow@setlist#1{tmpset};%
\FR@ifCST{\flrow@capsetup}\relax\@cap@setlist#1;%
- \caption@setposition{\FBifcaptop t\else b\fi}}
+ \caption@setposition{\FBifcaptop tb}}
\newcommand\@flrow@setlist[1]{\flrow@settype{#1}\@ifnextchar;\@gobble
\@flrow@setlist}
% \end{macrocode}
@@ -8559,7 +9427,7 @@
% The default behavior of floats is like in \package{float}-like mode after
% |\restylefloat|.
% \begin{macrocode}
-\let\FR@ifrawfloats\@secondoftwo
+\@ifdefinable\FR@ifrawfloats{\let\FR@ifrawfloats\@secondoftwo}
% \end{macrocode}
% The boolean key which defines, whether floats run in plain \LaTeX{} mode.
% \begin{macrocode}
@@ -8570,7 +9438,7 @@
% \begin{macro}{doublefloataswide}
% Starred environments work like non-starred with special |\floatsetup| settings.
% \begin{macrocode}
-\let\FR@ifdoubleaswide\@secondoftwo
+\@ifdefinable\FR@ifdoubleaswide{\let\FR@ifdoubleaswide\@secondoftwo}
% \end{macrocode}
% The boolean key which defines, whether starred non-rotated float in onecolumn
% layout work like non-starred one but with special |\floatsetup| settings
@@ -8584,7 +9452,7 @@
% The anchored float has list penalties around. If there are not blank line or
% |\par| command, next paragraph starts without indentation.
% \begin{macrocode}
-\let\FR@iffloatHaslist\@secondoftwo
+\@ifdefinable\FR@iffloatHaslist{\let\FR@iffloatHaslist\@secondoftwo}
% \end{macrocode}
% The boolean key which defines, whether anchored float
% uses the same penalties before and after environment as list environments.
@@ -8657,7 +9525,7 @@
% style. The \package{caption} 3.0 package defines only one related caption
% style to \package{float} package's style---|ruled|.
% \begin{macrocode}
-\let\FR@ifCST\@firstoftwo
+\@ifdefinable\FR@ifCST{\let\FR@ifCST\@firstoftwo}
% \end{macrocode}
% \end{macro}
%
@@ -8687,8 +9555,9 @@
% \begin{macro}{\floatfont}
% This command sets the font for float objects (|\floatfont|)
% it could be smaller than caption text.
+% \changes{v0.2d}{2009/05/24}{Defined using let to use that as flag}
% \begin{macrocode}
-\newcommand*\floatfont{}
+\@ifdefinable\floatfont{\let\floatfont\empty}
% \end{macrocode}
% \end{macro}
%
@@ -8758,9 +9627,9 @@
% traditional place of captions at the bottom of
% object---caption box.
% \begin{macrocode}
-\let\FBifcaptop\iffalse
-\newcommand\captop{\let\FBifcaptop\iftrue}
-\newcommand\capbot{\let\FBifcaptop\iffalse}
+\@ifdefinable\FBifcaptop{\let\FBifcaptop\@secondoftwo}
+\newcommand\captop{\let\FBifcaptop\@firstoftwo}
+\newcommand\capbot{\let\FBifcaptop\@secondoftwo}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -8774,8 +9643,8 @@
% alignment is the bottom line of upper box and the top line of
% lower box).
% \begin{macrocode}
-\let\FBifCAPTOP\iffalse
-\newcommand\CAPTOP{\captop\let\FBifCAPTOP\iftrue\CADJtrue}
+\@ifdefinable\FBifCAPTOP{\let\FBifCAPTOP\@secondoftwo}
+\newcommand\CAPTOP{\captop\let\FBifCAPTOP\@firstoftwo\CADJtrue}
% \end{macrocode}
% In this case if you change contents of caption which could enlarge
% or reduce the number of lines, you ought to run \LaTeX{} twice.
@@ -8787,9 +9656,9 @@
% \begin{macro}{\nocapbeside}
% There is flag and commands for printing caption and object beside.
% \begin{macrocode}
-\let\FBifcapbeside\iffalse
-\newcommand\capbeside{\let\FBifcapbeside\iftrue}
-\newcommand\nocapbeside{\let\FBifcapbeside\iffalse}
+\@ifdefinable\FBifcapbeside{}\let\FBifcapbeside\@secondoftwo
+\newcommand\capbeside{\let\FBifcapbeside\@firstoftwo}
+\newcommand\nocapbeside{\let\FBifcapbeside\@secondoftwo}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -8809,11 +9678,11 @@
% This key defines width of beside caption.
% \begin{macrocode}
\DeclareFROpt{capbesidewidth}[1]{\flrow@FCc@wd{#1}}
-\let\FC@ifc@wd\iffalse
-\newcommand\useFCwidth{\let\FC@ifc@wd\iftrue\let\FCwidth\relax}
+\@ifdefinable\FC@ifc@wd{\let\FC@ifc@wd\@secondoftwo}
+\newcommand\useFCwidth{\let\FC@ifc@wd\@firstoftwo\let\FCwidth\relax}
\@ifdefinable\FCwidth{\let\FCwidth\relax}
\newcommand\flrow@FCc@wd[1]{%
- \caption@ifinlist{#1}{none,sidefil}{\let\FC@ifc@wd\iffalse
+ \caption@ifinlist{#1}{none,sidefil}{\let\FC@ifc@wd\@secondoftwo
}{\useFCwidth\def\FCwidth{#1}}}
% \end{macrocode}
% \end{macro}
@@ -8975,7 +9844,7 @@
% \begin{macro}{facing}
% Defines, if necessary, flag for facing pages.
% \begin{macrocode}
-\let\FR@iffacing\@secondoftwo
+\@ifdefinable\FR@iffacing{\let\FR@iffacing\@secondoftwo}
\DeclareFROpt{facing}[1]{\flrow@setbool{facing}{#1}}
% \end{macrocode}
% \end{macro}
@@ -9028,6 +9897,31 @@
\LTleft=\z@ \LTright=\fill}
\DeclareMarginSet{raggedleft}{\setfloatmargins{\hfil}{}%
\LTleft=\fill \LTright=\z@}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newskip\LTleft\newskip\LTright
+\DeclareMarginSet{hangleft}{\setfloatmargins
+ {\hskip-\marginparwidth\hskip-\marginparsep\hskip\leftskip}{\hskip\rightskip}%
+ \LTleft-\marginparwidth\advance\LTleft-\marginparsep
+ \LTright=\fill}
+\DeclareMarginSet{hangright}{\setfloatmargins
+ {\hskip\leftskip}{\hskip-\marginparwidth\hskip-\marginparsep\hskip\rightskip}%
+ \LTleft=\fill
+ \LTright-\marginparwidth\advance\LTright-\marginparsep}
+\DeclareMarginSet{hanginside}{\setfloatmargins
+ *{\hskip-\marginparwidth\hskip-\marginparsep\hskip\leftskip}{\hskip\rightskip}%
+% \end{macrocode}
+% With the \texttt{hangoutside} and \texttt{hanginside} settings the usage of
+% |longtable| environment looks absurdly.
+% \begin{macrocode}
+ }
+\DeclareMarginSet{hangoutside}{\setfloatmargins
+ *{\hskip\leftskip}{\hskip-\marginparwidth\hskip-\marginparsep\hskip\rightskip}%
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\newcommand\flrow@mj@default{\flrow@mj@centering}
% \end{macrocode}
%
@@ -9075,7 +9969,7 @@
% \begin{macro}{\setfloatmargins}
% Alignment settings for object---caption boxes and float rows.
% \begin{macrocode}
-\newcommand\setfloatmargins{\@ifstar{\FB@allset@}{\FB@@allset}}
+\newcommand\setfloatmargins{\@ifstar\FB@allset@\FB@@allset}
\newcommand\FB@allset@[2]{%
\def\FR@tmp{FR}\FB@mset@{#1}{#2}%
\def\FR@tmp{FB}\FB@mset@{#1}{#2}%
@@ -9087,7 +9981,7 @@
% \end{macrocode}
% Default setting: centering of floats.
% \begin{macrocode}
-\setfloatmargins{\hfill}{\hfill}
+\setfloatmargins\hfill\hfill
% \end{macrocode}
% \end{macro}
%
@@ -9140,15 +10034,15 @@
% The float width settings mainly for plain floating environments.
% \begin{macrocode}
\DeclareFROpt{floatwidth}{\flrow@FBo@wd{#1}}
-\let\FC@ifo@fil\iffalse
+\@ifdefinable\FC@ifo@fil{\let\FC@ifo@fil\@secondoftwo}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\filFCOhsize}
% \begin{macro}{\nofilFCOhsize}
% Flags and commands for |floatwidth=|.
% \begin{macrocode}
-\newcommand\filFCOhsize{\let\FC@ifo@fil\iftrue}
-\newcommand\nofilFCOhsize{\let\FC@ifo@fil\iffalse}
+\newcommand\filFCOhsize{\let\FC@ifo@fil\@firstoftwo}
+\newcommand\nofilFCOhsize{\let\FC@ifo@fil\@secondoftwo}
\newcommand\flrow@setwd{\relax}
% \end{macrocode}
% \end{macro}
@@ -9311,18 +10205,26 @@
% Reset of all used layout settings. All settings localized---that allows
% usage |\floatbox| inside |\floatbox|.
% \begin{macrocode}
-\newcommand\FBstyle@reset{\let\FRifFBOX\iffalse\OADJfalse\CADJfalse\capbot
+\newcommand\FBstyle@reset{\let\FRifFBOX\@secondoftwo\OADJfalse\CADJfalse\capbot
\def\@@FBskip{\vskip\captionskip}\def\@@FRabove{}\def\@@FRbelow{}%
\def\@@FBabove{}\def\@@FBbelow{}%
- \def\FB@Bset{}\def\FB@frame{}\def\FBo@frame{}%
- \def\FBo@wadj{}\def\FBo@hadj{}\def\FB@wadj{}\def\FB@hadj{}}
+ \def\FB@Bset{}\def\FB@frame{}\def\FBo@frame{}\def\FR@frame{}%
+ \def\FBo@wadj{}\def\FBo@hadj{}\def\FB@wadj{}\def\FB@hadj{}\def\FR@wadj{}\def\FR@hadj{}}
\newcommand\@@FBskip{\vskip\captionskip}
-\@ifdefinable\@@FRabove{}\@ifdefinable\@@FRbelow{}
-\@ifdefinable\@@FBabove{}\@ifdefinable\@@FBbelow{}
-\@ifdefinable\FB@frame{}\@ifdefinable\FBo@frame{}
-\@ifdefinable\FBo@wadj{}\@ifdefinable\FBo@hadj{}
-\@ifdefinable\FB@wadj {}\@ifdefinable\FB@hadj{}
-\@ifdefinable\FB@Bset {}
+\@ifdefinable\@@FRabove{\def\@@FRabove{}}
+\@ifdefinable\@@FRbelow{\def\@@FRbelow{}}
+\@ifdefinable\@@FBabove{\def\@@FBabove{}}
+\@ifdefinable\@@FBbelow{\def\@@FBbelow{}}
+\@ifdefinable\FB@frame {\def\FB@frame {}}
+\@ifdefinable\FBo@frame{\def\FBo@frame{}}
+\@ifdefinable\FR@frame {\def\FR@frame {}}
+\@ifdefinable\FBo@wadj {\def\FBo@wadj {}}
+\@ifdefinable\FBo@hadj {\def\FBo@hadj {}}
+\@ifdefinable\FB@wadj {\def\FB@wadj {}}
+\@ifdefinable\FB@hadj {\def\FB@hadj {}}
+\@ifdefinable\FR@wadj {\def\FR@wadj {}}
+\@ifdefinable\FR@hadj {\def\FR@hadj {}}
+\@ifdefinable\FB@Bset {\def\FB@Bset {}}
% \end{macrocode}
% \end{macro}
%
@@ -9334,7 +10236,7 @@
% This key defines style of frame.
% \begin{macrocode}
\DeclareFROpt{framestyle}{\@ifundefined{FB@#1@frame}%
- {\let\FRifFBOX\iffalse}{\let\FRifFBOX\iftrue\def\FB@B@{#1}}}
+ {\let\FRifFBOX\@secondoftwo}{\let\FRifFBOX\@firstoftwo\def\FB@B@{#1}}}
% \end{macrocode}
% \end{macro}
%
@@ -9349,22 +10251,31 @@
% Command for |framearound|.
% \begin{macrocode}
\newcommand*\flrow@fr@round[1]{%
- \caption@ifinlist{#1}{object,contents}{\let\FRifFBOX\iftrue
+ \caption@ifinlist{#1}{object,contents}{\let\FRifFBOX\@firstoftwo
\def\FB@BO@{FBo}%
- }{\caption@ifinlist{#1}{floatbox,all}{\let\FRifFBOX\iftrue
+ }{\caption@ifinlist{#1}{floatbox,all}{\let\FRifFBOX\@firstoftwo
\def\FB@BO@{FB}%
- }{\caption@ifinlist{#1}{none}{\let\FRifFBOX\iffalse
+ }{\caption@ifinlist{#1}{row}{\let\FRifFBOX\@firstoftwo
+ \def\FB@BO@{FR}%
+ }{\caption@ifinlist{#1}{none}{\let\FRifFBOX\@secondoftwo
}{\flrow@error{Undefined framed object `#1'}%
- }}}}
+ }}}}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{framefit}
+% \begin{macro}{rowfill}
% \begin{macro}{frameset}
% This boolean key defines whether frame size fits to current |\hsize|.
% \begin{macrocode}
-\let\FR@ifFIT\@secondoftwo
+\@ifdefinable\FR@ifFIT{\let\FR@ifFIT\@secondoftwo}
+\@ifdefinable\FR@ifROWFILL{\let\FR@ifROWFILL\@secondoftwo}
\DeclareFROpt{framefit}[0]{\flrow@setbool{FIT}{#1}}
+\@ifdefinable\flrow@@setROWFILL{}
+\@ifdefinable\flrow@leftfill{}\@ifdefinable\flrow@rightfill{}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareFROpt{rowfill}[0]{\flrow@setbool{ROWFILL}{#1}}
% \end{macrocode}
% This key defines parameters for chosen frame.
% \begin{macrocode}
@@ -9383,11 +10294,20 @@
\@namedef{\FB@BO@ @wadj}{\FR@ifFIT{\@nameuse{FB@\FB@B@ @reset}\FB@Bset
\@nameuse{FB@\FB@B@ @adj}}\relax}%
\@namedef{\FB@BO@ @frame}{\@nameuse{FB@\FB@B@ @reset}\FB@Bset
- \@nameuse{FB@\FB@B@ @frame}}}
+ \@nameuse{FB@\FB@B@ @frame}}%
+ \ifx\FR@frame\empty\else%\ifx\FB@frame\empty
+ \def\FB@hadj{\@nameuse{FB@\FB@B@ @reset}\FB@Bset
+ \@nameuse{FB@\FB@B@ @adj}}%
+ \def\FB@wadj{\FR@ifFIT{\@nameuse{FB@\FB@B@ @reset}\FB@Bset
+ \@nameuse{FB@\FB@B@ @adj}}\relax}%
+ \def\FB@frame{\@nameuse{FB@\FB@B@ @reset}\FB@Bset
+ \@nameuse{FB@\FB@B@ @frame}}%
+ \fi%\fi
+ }
% \end{macrocode}
% If box layout used.
% \begin{macrocode}
-\let\FRifFBOX\iffalse
+\@ifdefinable\FRifFBOX{\let\FRifFBOX\@secondoftwo}
% \end{macrocode}
% \end{macro}
%
@@ -9430,18 +10350,136 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\FB@FRcolorbox@frame}
+% \begin{macro}{\FB@FRcolorbox@adj}
+% \begin{macro}{\FB@FRcolorbox@reset}
+% First macro is the definition of frame style (here is |\colorbox|);
+% second defines compensating material to get frame fitted to current
+% |\hsize|; third defines default values of compensating material.
+% \changes{v0.2b}{2007/11/09}{The \cmd{\setcolorframe} deleted.}
+% \begin{macrocode}
+\newcommand\FB@fcolorcorners{}
+\@ifdefinable\FR@phantom{}\@ifdefinable\FRset@color{}
+\newcommand\FB@FRcolorbox@frame[1]{\hbox{\let\color@block\FRcolor@block
+ \let\FR@phantom\@firstofone\let\FRset@color\set@color\FB@fcolorcorners
+ \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}\FB@fcolorbox{#1}%
+ \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}}\ignorespaces}
+\@ifdefinable\FB@FRcolorbox@adj{\let\FB@FRcolorbox@adj\FB@fbox@adj}
+\newcommand\FB@FRcolorbox@reset{\fboxsep3\p@\fboxrule.4\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FB@corners@frame}
+% \begin{macro}{\FB@corners@adj}
+% \begin{macro}{\FB@corners@reset}
+% First macro is the definition of frame style (here is |\colorbox|);
+% second defines compensating material to get frame fitted to current
+% |\hsize|; third defines default values of compensating material.
+% \changes{v0.2b}{2007/11/09}{The \cmd{\setcolorframe} deleted.}
+% \begin{macrocode}
+\newcommand\FB@corners@frame[1]{\hbox{\let\color@block\FRcolor@block
+ \let\FR@phantom\phantom\let\FRset@color\relax\FB@fcolorcorners
+ \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}\colorbox{white}{#1}%
+ \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}}\ignorespaces}
+\@ifdefinable\FB@corners@adj{\let\FB@corners@adj\FB@fbox@adj}
+\newcommand\FB@corners@reset{\fboxsep3\p@\fboxrule\z@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\flrow@l@color@side}
+% \begin{macro}{\flrow@r@color@side}
+% \begin{macrocode}
+\newcommand\flrow@l@color@side[2]{{\let\unitlength\relax
+ \picture(\z@,\z@)(\z@,\z@)
+ \put(\z@,#1){{\flrow@ll@col@put}}
+ \put(\z@,#2){{\flrow@ul@col@put}}
+ \endpicture}}
+\newcommand\flrow@r@color@side[2]{{\let\unitlength\relax
+ \picture(\z@,\z@)(\z@,\z@)
+ \put(\z@,#1){{\flrow@lr@col@put}}
+ \put(\z@,#2){{\flrow@ur@col@put}}
+ \endpicture}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\flrow@ll@col@put}
+% \begin{macro}{\flrow@ul@col@put}
+% \begin{macro}{\flrow@lr@col@put}
+% \begin{macro}{\flrow@ur@col@put}
+% \begin{macrocode}
+\newcommand\flrow@ll@col@put{}
+\newcommand\flrow@ul@col@put{}
+\newcommand\flrow@lr@col@put{}
+\newcommand\flrow@ur@col@put{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\flrow@cboxcorners}
+% User command. The (rule) material placed on the corners of the frame. The order of corners
+% is similar to corners of the label box (|bbox|) in METAPOST picture.
+% \begin{macrocode}
+\newcommand\flrow@cboxcorners[4]{%
+ \def\flrow@ll@col@put{#1}%
+ \def\flrow@lr@col@put{#2}%
+ \def\flrow@ur@col@put{#3}%
+ \def\flrow@ul@col@put{#4}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flrow@ur@col@put}
+% \begin{macrocode}
+\newcommand\FRcolorboxwd{\z@}
+\newcommand\FRcolorboxht{\z@}
+\newcommand\FRcolorboxdp{\z@}
+\def\FRcolor@block#1#2#3{%
+ {\FRset@color
+ \rlap{\@tempdima#1\edef\FRcolorboxwd{\the\@tempdima}\@tempdima#2\advance\@tempdima#3%
+ \edef\FRcolorboxht{\the\@tempdima}\@tempdima#3\edef\FRcolorboxdp{\the\@tempdima}%
+ \ifcolors@\else\let\FR@phantom\phantom\fi
+ \flrow@l@color@side{-\FRcolorboxdp}{\FRcolorboxht}%
+ \FR@phantom{\vrule\@width#1\@height#2\@depth#3}%
+ \flrow@r@color@side{-\FRcolorboxdp}{\FRcolorboxht}%
+ }}}
+% \end{macrocode}
+% \end{macro}
+%
% This key defines parameters (definition) for color frame.
% \begin{macrocode}
\DeclareFROpt{colorframeset}{\flrow@fcolorbox{#1}}
+\DeclareFROpt{colorframecorners}{\flrow@fcolorcorners{#1}}
\newcommand*\flrow@fcolorbox[1]{%
\@ifundefined{flrow@fcolorbox@#1}%
{\flrow@error{Undefined color box `#1'}}%
{\expandafter\let\expandafter\FB@fcolorbox
\csname flrow@fcolorbox@#1\endcsname}}
+\newcommand*\flrow@fcolorcorners[1]{%
+ \@ifundefined{flrow@fcolorcorners@#1}%
+ {\flrow@error{Undefined color box corners `#1'}}%
+ {\expandafter\let\expandafter\FB@fcolorcorners
+ \csname flrow@fcolorcorners@#1\endcsname}}
\newcommand*\DeclareColorBox[2]{%
- \@ifundefined{color}{\flrow@error
- {For usage of colored frames\MessageBreak load color package}}%
- {\long\@namedef{flrow@fcolorbox@#1}{#2}}}
+% \@ifundefined{color}{\flrow@error
+% {For usage of colored frames\MessageBreak load color package}}%
+% {\long\@namedef{flrow@fcolorbox@#1}{#2}}}
+ \@ifundefined{color}{}{\let\flrow@load@colorpackage\relax
+ \long\@namedef{flrow@fcolorbox@#1}{#2}}}
+\newcommand*\DeclareCBoxCorners[5]{%
+ \@ifundefined{color}{}{\let\flrow@load@colorpackage\relax
+ \long\@namedef{flrow@fcolorcorners@#1}{\flrow@cboxcorners{#2}{#3}{#4}{#5}}}}
+\@onlypreamble\DeclareColorBox
+\@onlypreamble\DeclareCBoxCorners
+\newcommand\flrow@load@colorpackage{\IfFileExists{color.sty}%
+ {\def\next{\RequirePackage{color}}}{\let\next\relax}\next}
+\AtBeginDocument{\flrow@load@colorpackage\let\flrow@load@colorpackage\relax}
% \end{macrocode}
%
% \subsubsection{Defining Float Skips}
@@ -9531,7 +10569,7 @@
%
% Options for loading of fancy float styles. Commented.
% \begin{macrocode}
-\let\FR@iffancy\@secondoftwo
+\@ifdefinable\FR@iffancy{\let\FR@iffancy\@secondoftwo}
\DeclareFROpt{fancyboxes}{\flrow@setbool{fancy}{#1}}
% \end{macrocode}
%
@@ -10367,7 +11405,7 @@
% At first we save macro |\LT@array| under name |\flrow@LT@array|.
% Then start redefinition.
% \begin{macrocode}
-\let\flrow@oriLT@array\LT@array
+\@ifdefinable\flrow@oriLT@array{\let\flrow@oriLT@array\LT@array}
\renewcommand\LT@array{%
% \end{macrocode}
% Here are added settings for table font (similar to other table
@@ -10404,14 +11442,14 @@
% \begin{macrocode}
\flrow@oriLT@array}
% \end{macrocode}
-% The repeated defintions in the case of separate usage of \package{fr-longtable} package.
+% The repeated definitions in the case of separate usage of \package{fr-longtable} package.
% \begin{macrocode}
\providecommand\floatfont{}
\providecommand\floatfootskip{\skip\@mpfootins}
\providecommand\captionskip{10\p@}
\providecommand\floatfoot@box[1]{%
% \end{macrocode}
-% The |\if@@FS| flag stored for \env{wrap...} environments.
+% The |\if@@FS| flag stored for |wrap...| environments.
% \begin{macrocode}
% \hsize\columnwidth\linewidth\columnwidth
\@parboxrestore\reset@font\color@begingroup