summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/floatrow/floatrow.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/floatrow/floatrow.dtx
Initial commit
Diffstat (limited to 'macros/latex/contrib/floatrow/floatrow.dtx')
-rw-r--r--macros/latex/contrib/floatrow/floatrow.dtx11617
1 files changed, 11617 insertions, 0 deletions
diff --git a/macros/latex/contrib/floatrow/floatrow.dtx b/macros/latex/contrib/floatrow/floatrow.dtx
new file mode 100644
index 0000000000..904d61654c
--- /dev/null
+++ b/macros/latex/contrib/floatrow/floatrow.dtx
@@ -0,0 +1,11617 @@
+% \iffalse
+% floatrow.dtx - The floatrow package (extension of float package)
+% (c) 2004-2007 Olga Lapko (Lapko.O@g23.relcom.ru http://www.ru.net/~Lapko.O/)
+%
+% This package borrowed code (core parts) from:
+% float package 2001/11/08 v1.3d,
+% Copyright (c) 1991-2000 Anselm Lingnau
+% rotfloat package, 2002/02/02 v1.1,
+% Copyright (c) 1995-2002 Axel Sommerfeldt
+%
+% During creation of floatsetup stuff there was borrowed code structure
+% from caption package v3.x ((c) 1994-2007 Axel Sommerfeldt)
+%
+% This program is provided under the terms of the
+% LaTeX Project Public License distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+%
+%<*dtx>
+ \ProvidesFile{floatrow.dtx}
+%</dtx>
+%<floatrow,frfancy,floatpagestyle,listpen,frforsubfig,forlongtable>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<floatrow>\ProvidesPackage{floatrow}
+%<frfancy>\ProvidesPackage{fr-fancy}
+%<floatpagestyle>\ProvidesPackage{floatpagestyle}
+%<listpen>\ProvidesPackage{listpen}
+%<frforsubfig>\ProvidesPackage{fr-subfig}
+%<forlongtable>\ProvidesPackage{fr-longtable}
+%
+% \ProvidesFile{floatrow.dtx}
+%<floatrow> [2008/08/02 v0.3b 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]
+%<frforsubfig> [2007/12/24 v0.1g (beta) floatrow: additions for subfig]
+%<forlongtable> [2007/11/28 v0.1b (beta) floatrow: additions for longtable]
+%
+%<*driver>
+\input pictures
+\documentclass[twoside]{ltxdoc}
+
+\makeatletter%^^A -----------------------
+
+\usepackage{calc}
+\usepackage{tabularx,array}
+
+\ifx\pdfoutput\undefined \else
+ \ifcase\pdfoutput \else
+ \usepackage{mathptm}\def\ttdefault{pxtt}
+ \usepackage[scaled=0.90]{helvet}
+ \fi
+\fi
+\settowidth\marginparwidth{\texttt{0DeclareFloatFootnoterule}}
+\advance\oddsidemargin.25\marginparwidth
+\evensidemargin\oddsidemargin
+
+\IfFileExists{titlesec.sty}{\usepackage[raggedright]{titlesec}}{}
+\let\FRorisection\section
+\let\FRorisubsection\subsection
+\let\FRorisubsubsection\subsubsection
+\def\section{\RestoreSpaces\FRorisection}
+\def\subsection{\RestoreSpaces\FRorisubsection}
+\def\subsubsection{\RestoreSpaces\FRorisubsubsection}
+
+\IfFileExists{footmisc.sty}{\usepackage[perpage]{footmisc}}{}
+
+\IfFileExists{fancyhdr.sty}{\usepackage{fancyhdr}
+\pagestyle{fancy}
+\fancyhead{}\fancyfoot{}
+\fancyhead[LE]{\setlength{\dimen@}{\marginparwidth+\marginparsep}%^^A
+ \leavevmode\hbox to\dimen@{\normalsize\bfseries\thepage\hfil}
+ \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}
+\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]
+
+\IfFileExists{rotating.sty}{\usepackage[figuresright]{rotating}}{}
+
+\usepackage{longtable}
+\usepackage{wrapfig}
+%\usepackage{psfrag}
+\usepackage[vflt]{floatflt}
+\usepackage{picins}
+%^^A\RequirePackage[writefile]{listings}[2004/09/07]
+
+\usepackage[font=small,captionskip=5pt,
+ footskip=.5\skip\footins,footnoterule=fullsize,
+ floatrowsep=qquad,capbesidesep=quad,capbesideposition=inside,
+ facing=yes,floatHaslist=yes,doublefloataswide=yes]{floatrow}
+
+\usepackage{floatpagestyle,listpen}
+\allowprelistbreaks[-4]
+\newseparatedlabel\Flabel{\@captype}{sub\@captype}
+\newseparatedref\Fref{,\,\textit}
+
+\usepackage{fr-fancy}
+
+\usepackage{color}
+\definecolor{gray}{gray}{.5}
+%\definecolor{emphblue}{rgb}{0,0,0.5}
+\definecolor{emphblue}{rgb}{0,0,1}
+\def\emphcolor{\color{emphblue}}
+
+\usepackage[
+ linktocpage,
+ hyperindex,%
+ plainpages=false,%
+ bookmarksopenlevel=1,%
+ bookmarksnumbered=false,%
+ pdfview=FitH,
+ pdfstartview=FitH,
+ ]{hyperref}
+\usepackage{hypcap}
+
+\def\@linkbordercolor{1 .5 .5}
+
+\ifx\pdftexversion\undefined
+ \IfFileExists{pstricks.sty}{\usepackage{pstricks,pst-eps}}{}
+\else\ifcase\pdfoutput
+ \IfFileExists{pstricks.sty}{\usepackage{pstricks}}{}
+\or
+%^^A \IfFileExists{pdftricks.sty}{
+%^^A \usepackage{pdftricks}
+%^^A }{}
+\fi\fi
+\ifx\pdfdisplay\undefined\else
+ \begin{psinputs}
+ \usepackage{pstricks}
+ \end{psinputs}
+\fi
+
+\IfFileExists{makecell.sty}{\usepackage{makecell}}{}
+
+\@ifundefined{thead}{\newcommand\thead[1]{\footnotesize\raisebox
+ {0pt}[\height+\jot][\depth+\jot]{\begin{tabular}{@{}c@{}} #1\end{tabular}}}
+%^^A For this documentation only
+ \def\multirowthead#1[#2]#3{\raisebox{-1.5ex}{\thead{#3}}}}{}
+
+\IfFileExists{multirow.sty}{\usepackage{multirow}}{}
+\IfFileExists{lscape.sty}{\usepackage{lscape}}{}
+\floatsetup[table]{style=Plaintop,footnoterule=none}
+
+%^^A -----------------------
+\floatstyle{ruled}
+\newfloat{Program}{tbp}{lop}[section]
+
+\DeclareNewFloatType{Example}{placement=tb,
+ within=section,fileext=loe}
+
+\newfloatcommand{fcapsideleft}{figure}[{\capbeside
+ \captionsetup[capbesidefigure]{labelsep=newline,
+ justification=raggedleft}%
+ \thisfloatsetup{capbesideposition=left}}][\FBwidth]
+\newfloatcommand{fcapsideright}{figure}[{\capbeside
+ \captionsetup[capbesidefigure]{labelsep=newline,
+ justification=raggedright}%
+ \thisfloatsetup{capbesideposition=right}}][\FBwidth]
+
+\DeclareFloatStyle{MyBoxed}{style=Boxed,
+ captionskip=5pt,frameset={\fboxrule1pt\fboxsep12pt}}
+
+\DeclareFloatVCode{lowthickrule}{\par\vskip2pt\rule{\hsize}{.8pt}\par}
+\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{hangtoheads}{\setfloatmargins
+ {\hfil}{\hskip-.7\headheight\hskip-\headsep}}
+
+\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}
+\DeclareFloatSeparators{marginparsep}{\hskip\marginparsep}
+\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}
+
+\def\rightlast{\leftskip0ptplus1fil
+ \rightskip0ptplus-1fil\parfillskip0ptplus1fil}
+\def\leftlast{\leftskip0pt\rightskip0pt\parfillskip0ptplus1fil}
+
+%^^A for all versions of caption 3.x?
+\DeclareCaptionLabelFormat{rightline}{\rightline{\bothIfFirst{#1}{ }#2}}
+\DeclareCaptionLabelFormat{continued}{\rightline{\bothIfFirst{#1}{ }#2 \textup{(\emph{Continued})}}}
+\DeclareCaptionLabelFormat{finished}{\rightline{\bothIfFirst{#1}{ }#2 \textup{(\emph{Finished})}}}
+
+\DeclareCaptionLabelFormat{thinspace}{\bothIfFirst{#1}{\,}#2}
+
+\DeclareCaptionJustification{togglelast}{\floatfacing*\rightlast\leftlast}
+\DeclareCaptionJustification{rightlast}{\rightlast}
+
+\captionsetup[table]{labelformat=rightline,textfont=bf,labelfont={md,sl},labelsep=newline}
+\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
+\evensidemargin\oddsidemargin
+\@mparswitchfalse
+\widowpenalty10000
+\clubpenalty10000
+\@beginparpenalty10000
+\@itempenalty1000
+\@endparpenalty0
+\tolerance2000
+\hbadness8000
+\vbadness5000
+\hfuzz7pt
+\def\l@subsection{\@dottedtocline {2}{1.5em}{2.7em}}
+\def\l@subsubsection{\@dottedtocline {3}{4.2em}{3.9em}}
+
+\newcommand\Resizebox[5]{\setbox0\hbox{\setlength\unitlength{#1/#3}%^^A
+ \ifx\pspicture\undefined\else\psset{unit=\unitlength}\fi{#5}}%^^A
+ \@tempdima\ht0\advance\@tempdima\dp0%^^A
+ \ifdim\@tempdima>#2
+ \setlength\unitlength{#2/#4}\ifx\pspicture\undefined
+ \else\psset{unit=\unitlength}\fi
+ {#5}\else\box0\fi}
+
+\providecommand*{\file}[1]{\texttt{#1}}
+\providecommand*{\package}[1]{\textsf{#1}}
+\providecommand*{\cls}[1]{\textsf{#1}}
+\providecommand*{\env}[1]{\texttt{#1}}
+\providecommand*{\meta}[1]{$\langle$\textit{#1}$\rangle$}
+
+\newenvironment{Options}[1]%
+ {\RemoveSpaces
+ \allowprelistbreaks[-4]\vspace*{\topsep}\list{}{\renewcommand{\makelabel}[1]{\texttt{##1}\hfil}%
+ \settowidth{\labelwidth}{\texttt{#1\space}}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\parsep}{0pt}}}%
+ {\endlist}
+
+\newenvironment{Quote}[1][\parindent]{\par\hfuzz30pt\setlength{\leftmargini}{#1}\RestoreSpaces
+ \small\begin{quote}\obeylines\parskip0pt}{\end{quote}\par\@endpetrue}
+\def\OptionLabel{RaggedRight}
+
+\newenvironment{preamble}{{\emphcolor\meta{preamble}}\nopagebreak
+ \par\begingroup\advance\leftskip1em}{\par\endgroup{\emphcolor\nobreak\meta{preamble}}\par\vskip2ex}
+
+\newcommand\FRkey[2][setup]{\hyperref[#1:#2]{\texttt{#2}}}
+
+\DeclareRobustCommand\La{L\kern-.36em{\sbox\z@ T\vbox to\ht\z@{\hbox{\check@mathfonts
+ \fontsize\sf@size\z@\math@fontsfalse\selectfont A}\vss}}}
+
+%maybe there is better solution?
+\def\DescribeMacro{\let\outer@nobreak\@nobreaktrue
+ \leavevmode\everypar{\@nobreakfalse}\@bsphack
+ \begingroup\MakePrivateLetters\Describe@Macro}
+\def\DescribeEnv{\let\outer@nobreak\@nobreaktrue
+ \leavevmode\everypar{\@nobreakfalse}\@bsphack
+ \begingroup\MakePrivateLetters\Describe@Env}
+
+\newcommand\FRmpar{\@ifstar{\@nobreaktrue\xFRmpar}{\xFRmpar}}
+
+\newcommand\xFRmpar[2]{\label{#2}\marginpar{\footnotesize
+ \raggedleft\advance\leftskip.3\hsize#1}}
+
+\providecommand\sectionname{section}
+\newcommand\seeIntro{\hyperref[sec:intro]{Intro}}
+
+\makeatother%^^A---------------------------------
+
+\OnlyDescription
+\let\PrintChanges\relax
+\let\PrintIndex\relax
+\def\SpecialUsageIndex#1{}
+\def\SpecialEnvIndex#1{}
+\EnableCrossrefs
+\RecordChanges
+%\makeindex
+\begin{document}
+ \DocInput{floatrow.dtx}
+\PrintChanges
+%\PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{5863}
+%
+% \changes{v0.1e}{2005/03/22}{The user documentation loaded inside
+% \file{floatrow.dtx}.}
+%
+% \ifx\pspicture\undefined\else\psset{unit=1pt}\fi
+%
+% \def\fileversion{v0.3b}
+% \def\filedate{2009/08/02}
+% \title{The \package{floatrow} package\thanks{This
+% file has version number \fileversion, last revised
+% \filedate.}}
+%
+% \author{%
+% Olga Lapko\\
+% {\tt Lapko.O@g23.relcom.ru} }
+% \date{\filedate}
+% \maketitle
+%
+% \begin{abstract}\openup.5pt
+% This package was created as extension of the \package{float}
+% package. The \package{floatrow} package borrows core code from
+% 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.
+%
+% The \package{float} package has a~good mechanism for the creation (and easy
+% modification) of common layout for all floats of one type without
+% adding any repeated code in the document; besides, this package allows to
+% create new float types; it deals only
+% with alone (plain) combinations ``object (float contents)---caption''.
+%
+% The \package{rotfloat}
+% package changes environments of rotated floats (the |sideways...|
+% environment of \package{rotating} package)
+% to adapt them to \package{float}'s settings.
+%
+% 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
+% creation of new float types;
+% \item
+% to change width of float box, either to a fixed value or to the width of object;
+% \item
+% to put caption beside object;
+% \item
+% to put a few floats side by side on the row;
+% \item
+% to put footnotes inside float box (using |minipage|-like mode);
+% and also to put legend-like text;
+% \item
+% to create and/or modify special layout for each type of float and
+% for different positioning of float and its components, e.g.
+% two-column or rotated float.
+% \end{itemize}
+%
+% The \package{floatrow} package is cooperated with \package{caption} package
+% (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
+%
+% \begingroup
+% \slshape
+% I do my best to follow this idea and I hope that someone
+% likes it: helps to maintain this idea in any way, or finds bugs
+% and absurdities in this package or documentation.
+% \endgroup
+% \medskip
+%
+% \centerline{\textbf{Document Terminology}\nopagebreak\vspace{1ex}}
+% \begin{description}\itemsep0pt\parskip0pt
+% \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 |\|\FRkey{floatbox}
+% command and its modifications (\emph{float box});
+%
+% \item[float type]
+% means standard environment |figure| or |table|,
+% also their \emph{layout subtypes}, like e.g.~|wrapfigure| (\package{wrapfig} package),
+% |sidewaysfigure| (\package{rotating} and \package{rotfloat} packages),
+% |longtable| (\package{longtable} package) etc.;
+%
+% \item[object]means |tabular| or graphics, as contents of table
+% (|table|) or figure (|figure|) or other type of float;
+%
+% \item[caption]means text in |\caption|;
+%
+% \item[foot material]could include explications, legends and/or footnotes inside
+% \emph{float box} (|\footnote|/\allowbreak|\mpfootnotemark|/\allowbreak|\footnotetext|,
+% 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}
+% \begin{multicols}{2}\raggedright\advance\rightskip1em
+% \makeatletter\let\item\@idxitem\ignorespaces\makeatother
+% \def\sectionname{sec.}
+%^^A% \item{``Anchored'' float (option~|H|)}
+%^^A% \strut\pfill
+%^^A% \textsl{\sectionname}~\ref{sec:floatborrowII}
+%
+% \item{Caption}
+% \subitem{above float (|table|'s object, |\ttabbox|)\kern-1em\allowbreak}
+% \strut\pfill
+% \textsl{{\seeIntro}},~%^^A
+% \textsl{\sectionname}~\ref{sec:floatbox}
+%
+% \subitem{beside float (|figure|'s object, |\fcapside|)}
+% \strut\pfill
+% \textsl{{\seeIntro}},~%^^A
+% \textsl{\sectionname}~\ref{sec:floatbox}
+%
+% \subitem{width equals to |longtable|'s (|LTcapwidth=| key)}
+% \strut\pfill
+% page~\pageref{FAD:LTcapwidth}
+%
+% \subitem{width equals to object's}
+% \emph{see}~{float box width equals to object's}{}
+%
+% \subitem{like in plain \LaTeX\ (|\RawCaption|)}
+% \strut\pfill
+% page~\pageref{setup:RawCaption},
+% \pageref{subcap:RawCaption}
+%
+% \item{Creation of new float type (|\DeclareNewFloatType|)}
+% \strut\pfill
+% \textsl{\sectionname}~\ref{sec:newfloat}
+%
+% \item{Layout of Float types (|\floatsetup|)}
+% \strut\pfill
+% \textsl{\sectionname}~\ref{sec:floatsetup}
+%
+% \item{Float}\nopagebreak
+% \subitem{box (|\floatbox|)}
+% \strut\pfill
+% \textsl{\sectionname}~\ref{sec:floatbox};
+% \subsubitem{figure box (|\ffigbox|)}
+% \strut\pfill
+% \textsl{{\seeIntro}},~%^^A
+% \textsl{\sectionname}~\ref{sec:floatbox}
+%
+% \subsubitem{table box (|\ttabbox|)}
+% \strut\pfill
+% \textsl{{\seeIntro}},~%^^A
+% \textsl{\sectionname}~\ref{sec:floatbox}
+%
+% \subitem{box width}
+%
+% \subsubitem{option in |\floatbox| commands}
+% \strut\pfill
+% \textsl{\sectionname}~\ref{sec:floatbox}
+%
+% \subsubitem{equals to object's (option |\FBwidth| (|\floatbox|))}
+% \strut\pfill
+% \textsl{{\seeIntro}},~%^^A
+% \textsl{\sectionname}~\ref{sec:floatbox}
+%
+% \subsubitem{the rest space in the row
+% (option |\Xhsize| (|\floatbox|))}
+% \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{placing on the facing pages}
+% \strut\pfill
+% page~\pageref{FAD:ContRotated}
+%
+% \subitem{\textbf{here!} (option |[H]|)}
+% \strut\pfill
+% \textsl{\sectionname}~\ref{sec:floatborrowII}
+%
+% \subitem{row (|floatrow| env.)}
+% \strut\pfill
+% \textsl{{\seeIntro}},~%^^A
+% \textsl{\sectionname}~\ref{sec:floatrow}
+%
+% \subsubitem{float(box) in the row occupies the rest space}
+% \emph{see}~{float box width, the rest space of the row}
+%
+% \subsubitem{floats of different types side by side}
+% \strut\pfill
+% page~\pageref{FAD:MixedRowII},
+% \pageref{FAD:MixedRow}
+%
+% \subitem{like in plain \LaTeX\ (|\RawFloats|)}
+% \strut\pfill
+% \textsl{\sectionname}~\ref{sec:rawfloats}
+%
+% \subitem{wrapped}
+% \strut\pfill
+% \textsl{\sectionname}~\ref{ssec:wrapfig}--\ref{ssec:picins}
+%
+% \item{Footnote inside float}
+% \strut\pfill
+% \textsl{\sectionname}~\ref{sec:floatfootnote}
+%
+% \subitem{footnote mark
+% (|\mpfootnotemark|)\kern-1em\allowbreak}
+% \strut\pfill
+% page~\pageref{FAD:FnoteInsideFloat}
+%
+% \item{Legend-like macro (|\floatfoot|)}
+% \strut\pfill
+% \textsl{\sectionname}~\ref{subsec:floatfoot}
+%
+% \item{Subfloat}
+% \strut\pfill
+% \subitem{subcaption above}
+% \strut\pfill
+% page~\pageref{FAD:subcapabove}
+% \subitem{subfloat label beside}
+% \strut\pfill
+% page~\pageref{FAD:sublabelbeside}
+% \end{multicols}%
+% \endgroup
+%
+% \clearpage
+% \begingroup\addtocounter{lofdepth}1\addtocounter{lotdepth}1
+% \small\openup-.65pt
+% \pdfbookmark[1]{Contents}{TOC}\nopagebreak\tableofcontents
+% \pdfbookmark[1]{List of Figures}{LOF}
+% \nopagebreak\listoffigures
+% \pdfbookmark[1]{List of Tables}{LOT}
+% \nopagebreak\listoftables
+% \pdfbookmark[1]{List of Examples}{LOE}
+% \nopagebreak\listof{Example}{List of Examples}
+% \pdfbookmark[1]{List of Programs}{LOP}
+% \nopagebreak\listof{Program}{List of Programs}
+% \endgroup
+%
+% \clearpage
+% \suppressfloats[t]
+%
+% \section{Introduction}\label{sec:intro}
+%
+% 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
+% looks like:
+%\begin{Quote}
+%|\begin{|\meta{float type}|}|
+%\meta{float contents (object)}
+%|\caption{|\meta{caption contents}|}|
+%|\end{|\meta{float type}|}|
+%\end{Quote}
+% or (if you want to put caption above):
+%\begin{Quote}
+%|\begin{|\meta{float type}|}|
+%|\caption{|\meta{caption contents}|}|
+%\meta{float contents (object)}
+%|\end{|\meta{float type}|}|
+%\end{Quote}
+%
+% \subsection{Loading The Package}\label{sec:load}\label{sec:start}
+%
+% Just now you have loaded the \package{floatrow} package:
+%\begin{Quote}
+%\begin{preamble}
+%|\usepackage{floatrow}|\quad.
+%\end{preamble}
+%\end{Quote}
+% In the time, when this package was loaded,
+% all float contents in the document will be centered (unless another alignment command
+% appears inside the float contents). All captions appear
+% below float contents, regardless of how they were typed in source file.
+% But, I'm almost sure, that you want to put table captions above table material.
+% If you put in the next line the |\floatsetup| command:
+%\begin{Quote}
+%\begin{preamble}
+%|\usepackage{floatrow}|
+%|\|\FRkey[sec]{floatsetup}|[table]{|\FRkey{style}|=plaintop}|\quad,
+%\end{preamble}
+%\end{Quote}
+% after that, again, you will get all table captions above table material, regardless of how
+% 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 |\|\FRkey[sec]{floatsetup} command.)
+%
+% 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
+% and a special environment to put these float boxes beside each other.
+%
+% \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 (|\|\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}
+% |\usepackage{caption}[2007/04/11]|
+% |\usepackage{floatrow}[2007/08/24]|
+%\end{preamble}
+%|\begin{table}|\nopagebreak
+%|\|\FRkey[FB]{ttabbox}
+%| {\caption{A small table ...}\label{...}}|
+%| {\begin{tabular}...\end{tabular}}|\nopagebreak
+%|\end{table}|\vspace*{-\intextsep}
+%\end{Quote}
+%\begingroup
+%\clearcaptionsetup{table}\clearfloatsetup{table}
+%\floatsetup{style=default}\captionsetup{style=default}\def\thead#1{#1}\extrarowheight1pt
+% \begin{table}[H]\tabcolsep1.5\tabcolsep
+% \ttabbox
+% {\caption{A small table with caption text above (\cmd{\ttabbox}) with plain \LaTeX{}
+% layout}\label{intro:table}}
+% {\jot2pt\begin{tabular}{|c|c|c|}
+% \hline
+% \thead{First column} & \thead{Second column} & \thead{Third column} \\
+% \hline
+% A & B & C \\
+% D & E & F \\
+% \hline
+% \end{tabular}}
+% \end{table}%^^A
+%\endgroup
+%
+% 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 most popular
+% layout settings for captions were added.)
+%\begin{Quote}
+%\begin{preamble}
+% |\usepackage|{\emphcolor|[font=small,labelfont=bf,labelsep=period,|
+% | justification=centerlast]|}|{caption}|\vspace{1ex}
+% |\usepackage{floatrow}|
+%\end{preamble}
+%|\begin{figure}|
+%|\|\FRkey[FB]{ffigbox}
+%| {\caption{A simple figure ...}\label{...}}|
+%| {...}|
+%|\end{figure}|\vspace*{-\intextsep}
+%\end{Quote}
+%\begingroup\floatsetup{style=default}
+% \begin{figure}[H]
+% \ffigbox
+% {\caption[A simple figure box (\cmd{\ffigbox})] {A plain figure box
+% with long long long long long long long long
+% long long long long long long long long long long multilined caption}\label{intro:figure}}
+% {\unitlength1\unitlength\input{Doll.picture}}
+% \end{figure}%^^A
+%\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 |[\|\FRkey{FBwidth}|]| like below:
+% \FRmpar{Caption's width equals to object}{FAD:FBwidthI}
+%\begin{Quote}
+%|...|
+%|\begin{figure}|\nopagebreak
+%|\ffigbox[\|\FRkey[FB]{FBwidth}|]|
+%| {\caption{A figure}\label{...}}|
+%| {...}|
+%|\end{figure}|\vspace*{-2\intextsep}
+%\end{Quote}
+%\begingroup\floatsetup{style=default}
+% \begin{figure}[H]
+% \ffigbox[\FBwidth]
+% {\caption[A figure box (\cmd{\ffigbox}) with the width equal to graphics]{A figure with
+% the width equal to graphics with long
+% long long long long multilined
+% caption}\label{intro:figure:FBwidth}}
+% {\unitlength1.44\unitlength\input{Horse.picture}}
+% \end{figure}%^^A
+%\endgroup
+% you'll get a~caption width equal to the width of picture
+% (figure~\ref{intro:figure:FBwidth}).
+%
+% 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 to |\quad|.)
+%\begin{Quote}[0pt]
+%\begin{preamble}
+%|...|
+% |\usepackage|{\emphcolor|[|%^^A
+% \FRkey{capbesideposition}|=inside,|
+% | |\FRkey{facing}|=yes,|\FRkey{capbesidesep}|=quad]|}|{floatrow}|
+%\end{preamble}
+%|\begin{figure}|
+%|\|\FRkey[FB]{fcapside}
+%| {\caption{...}\label{...}}|
+%| {...}|
+%|\end{figure}|\enlargethispage\baselineskip\vspace*{-\intextsep}
+%\end{Quote}
+%\begingroup\floatsetup{style=default,capbesideposition=inside,facing=yes,capbesidesep=quad}%
+%\clearcaptionsetup{capbesidefigure}
+% \begin{figure}[H]
+% \fcapside
+% {\caption[Beside caption (`one-column' width)]{Beside caption
+% (width of caption equals to the width of object) and more text
+% and some more text and a bit more text and
+% a little more text and a little piece of text to fill
+% space}\label{intro:beside}}
+% {{\setlength\unitlength{3.5cm/100}%^^A
+% \input{Bear.picture}}}
+% \end{figure}
+%\endgroup
+% The width of text,
+% 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{The width of object box equals to object}{FAD:FBwidthII}
+%\begin{Quote}
+%|...|\nopagebreak
+%|\fcapside[\FBwidth]|\nopagebreak
+%|...|
+%\end{Quote}\vspace*{-.5\intextsep}
+%\begingroup\floatsetup{style=default,capbesideposition=inside,facing=yes,capbesidesep=quad}%
+%\clearcaptionsetup{capbesidefigure}
+% \begin{figure}[H]
+% \fcapside[\FBwidth]
+% {\caption[Beside caption (occupies rest space beside float object)]{Beside caption
+% (the caption text occupies the rest space beside float object) and more text
+% and some more text and a bit more text and
+% a little more text and a little piece of text to fill
+% space}\label{intro:beside:FBwidth}}
+% {{\setlength\unitlength{3.5cm/100}%^^A
+% \input{Bear.picture}}}
+% \end{figure}
+%\endgroup
+% 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
+% {\sectionname}~\ref{sec:floatbox} about usage of these commands in different ways
+% and how to create new commands for float creation.
+%
+% \subsubsection{Float Boxes In The Row}\label{sec:intro:flrow}
+% If you need to put two or more floats of one type side by side,%^^A
+% \FRmpar{Floats of one type\\ side by side}{FAD:floatrow}
+% you may use the |floatrow| environment.
+%
+%\begin{Quote}
+%\begin{preamble}
+% {\emphcolor %^^A
+% |\DeclareCaptionLabelFormat{rightline}{\rightline|\nopagebreak
+% | {\bothIfFirst{#1}{ }#2}}|
+% |\captionsetup[table]{labelformat=rightline,labelsep=newline,|\nopagebreak
+% | labelfont={md,sl},textfont=bf}|}\vspace{1ex}
+% |\usepackage[|{\emphcolor\FRkey{font}|=small,|%^^A
+% \FRkey{floatrowsep}|=qquad,|\FRkey{captionskip}|=5pt|}|]{floatrow}|\nopagebreak
+% |\|\FRkey[sec]{floatsetup}|[table]{|%^^A
+% {\emphcolor\FRkey{style}|=Plaintop|}|}|\nopagebreak
+%\end{preamble}
+%|\begin{table}|
+%| \begin{|\FRkey[sec]{floatrow}|}|
+%| \|\FRkey[FB]{ttabbox}
+%| {\caption{...}\label{...}}|
+%| {...}|
+%| |
+%| \ttabbox|
+%| {\caption{...}\label{...}}|
+%| {...}|
+%| \end{floatrow}|\nopagebreak
+%|\end{table}|\vspace*{-\intextsep}
+%\end{Quote}
+% \DeleteShortVerb{\|}%
+%\floatsetup{style=default,font=small,floatrowsep=qquad,captionskip=5pt}
+% \begin{table}[H]
+% \begin{floatrow}
+% \extrarowheight1pt\tabcolsep1.05\tabcolsep
+% \ttabbox
+% {\caption[Beside table~I long header]%^^A
+% {Beside table~I with long long long long long long and top aligned caption}%^^A
+% \label{tab:row:tabIII}}%^^A
+% {\begin{tabular}{|l|>{\phantom0}c|>{\phantom0}c|}
+% \hline
+% \multirowthead{2}[-1ex]{Left Column Head}
+% & \multicolumn{2}{c|}{\thead{Data}} \\
+% \cline{2-3}
+% & \multicolumn{1}{c|}{\thead{I}}
+% & \multicolumn{1}{c|}{\thead{II}}
+% \\\hline
+% First row & 1 & 2 \\
+% Second row & 3 & 4 \\
+% Third row & 6 & 8 \\
+% Fourth row & \llap{1}0 & \llap{1}6 \\
+% \hline
+% \end{tabular}}
+%
+% \ttabbox
+% {\caption{Beside table~II with top aligned
+% caption}\label{tab:row:tabIV}}%^^A
+% {\begin{tabular}{|l|c|c|c|}
+% \hline
+% \multirowthead{2}[-1ex]{Column Head}
+% & \multicolumn{3}{c|}{\thead{Data}} \\
+% \cline{2-4}
+% & \thead{I} & \thead{II} & \thead{III} \\
+% \hline
+% First row & 1 & 2 & \phantom01 \\
+% Second row & 3 & 4 & \phantom06 \\
+% Third row & 6 & 8 & 28 \\
+% \hline
+% \end{tabular}}
+% \end{floatrow}
+% \end{table}
+% \MakeShortVerb{\|}%
+% As you see in the example with tables \ref{tab:row:tabIII} and~\ref{tab:row:tabIV},
+% you \emph{need} to use commands |\ttabbox|, which build box for each table.
+%
+% 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 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).
+%
+% \subsection{Do Not Write That With \package{floatrow} Package}\label{floatrow:wrong}
+%\begingroup
+% The \package{floatrow} package offers many features, and it causing some limitations
+% for writing code of float contents in source file, too. If you'll write something like
+%\begin{Quote}
+%\begin{preamble}
+%|\usepackage{floatrow}|
+%\end{preamble}
+%|\begin{table}\captionsetup{position=top}|
+%| \caption{A table caption must be placed above, ...}|
+%| \centering \begin{tabular}{cc} A & B \\ C & D \end{tabular}|
+%|\end{table}|
+%\end{Quote}
+% please do not expect that the caption appears at the top of table:
+%
+% \begingroup\clearfloatsetup{table}
+% \begin{table}[H]
+% \captionsetup{position=top}
+% \caption{A table caption must be placed above, wrong expect}\label{Wrong:expect}
+% \centering \begin{tabular}{cc} A & B \\ C & D \end{tabular}
+% \end{table}
+% \endgroup
+%
+% 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
+% \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 ...|
+%| \caption{The figure caption, disappeared, ...}|
+%|\end{minipage}\hfill|
+%|\begin{minipage}{0.45\textwidth}|
+%| \captionof{table}{The table caption ...}}|
+%| \centering ...|
+%|\end{minipage}|\nopagebreak
+%|\end{figure}|
+%\end{Quote}}\noindent
+% you'll get error message about lost caption.
+% Here you may:~\nobreak\quad1)\nobreak\enskip
+% to put table contents inside |\|\FRkey[FB]{ttabbox} resp.\ the figure contents inside
+% |\|\FRkey[FB]{ffigbox}; then both floats put inside \FRkey[sec]{floatrow} environment, and, since
+% there is mixed row (it includes floats of different types, and also with different caption position),
+% put the |\|\FRkey{killfloatstyle} command before ``foreign'' float |\ttabbox|, and
+% |\|\FRkey[FB]{CenterFloatBoxes} command before |floatrow| environment
+% (see~{\sectionname}~\ref{sec:mixrow} about mixed rows); or~\nobreak\quad2)\nobreak\enskip
+% to restore the standard \LaTeX{} behavior, using command |\|\FRkey{RawFloats}
+% or package option \FRkey{rawfloats} ({\sectionname}~\ref{sec:rawfloats}).
+%
+%\endgroup
+%\clearpage
+% \section{Macros for Building Floats}
+% \FRorisubsection{The \texorpdfstring{\cs{floatbox}}{floatbox} Macro}\label{sec:floatbox}
+%
+% \DescribeMacro{\floatbox}
+% 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 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}
+% |\floatbox|\oarg{preamble}\marg{captype}\oarg{width}\oarg{height}\oarg{vert pos}
+% | |\marg{caption}\marg{object}
+% \end{Quote}%^^A
+% The |\floatbox|'s arguments\label{floatboxsets}:
+% \begin{description}\itemsep0pt
+% \item[\meta{preamble}]there could be |\capbeside|\label{FB:capbeside} command which
+% places caption beside float contents;
+% |\nocapbeside|\label{FB:nocapbeside}
+% (to put caption above/below, accordingly
+% to float type's style);
+% |\captop|\label{FB:captop}
+% (to put caption above);
+% or another systematic command
+% (even with usage of |\captionsetup|
+% and |\|\FRkey{thisfloatsetup},
+% see examples in documentation and appendix).
+% \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 \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).
+% The empty width option, |[]|, and option |[\hsize]| mean the same;
+% \item[\meta{height}]the height of object---caption box
+% (in case of caption above or below object),
+% or height of object box (if caption stays beside object). 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 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 (max) height for float objects inside |floatrow| environment.
+% Arguments are analogous to |minipage|'s ones:
+% \begin{Options}{cc}
+% \item[t]
+% aligns objects by top line;
+% \item[c]
+% aligns objects by center line;
+% \item[b]
+% aligns objects by bottom line;
+% \item[s]
+% stretches objects by full height (if it is possible).
+% \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;
+% \item[\meta{object}]contents of float; you may also use the
+% |\footnote|/\allowbreak|\mpfootnotemark|/\allowbreak|\footnotetext| stuff and/or
+% |\floatfoot| command.
+% \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
+% historically needs two mandatory arguments, but they could
+% be filled freely, i.e. you may fill only one mandatory argument with object contents, caption etc.
+% and left another one empty.
+%
+% \subsubsection{Float Box Width Equals to The Width of Object Contents}
+% \DescribeMacro{\FBwidth}\label{FB:FBwidth}%^^A
+% 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:\startNotes\Note
+% for full float box in the case of caption
+% above/\allowbreak below; \Note in~the case of caption beside float object,
+% the natural width of float object expands to the
+% object box only.
+%
+% \RestoreSpaces
+% \emph{Note}. If you use the \verb|\FBwidth| command in the
+% optional argument \meta{width}, please get sure that object contents can be placed
+% in |\hbox| command. (You only allowed to use |\vspace| (not |\vskip|!)
+% command at the very
+% beginning and very end of object contents for fine tuning
+% of vertical spaces and position of contents.)\medskip
+%
+% \DescribeMacro{\FBheight}\label{FB:FBheight}%^^A
+% The similar command, |[\FBheight]|, was
+% created for the \meta{height} argument. The usage of this command makes sense, e.g.,
+% 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.
+% 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 width of caption box equals to 4cm, and all lines in
+% caption justified, but the last one flushed to the right.
+%
+%\begin{Quote}
+%|\begin{figure}|
+%\begin{preamble}
+%|\newcommand\rightlast{\leftskip0ptplus1fil|
+%| \rightskip0ptplus-1fil\parfillskip0ptplus1fil}|
+%|\DeclareCaptionJustification{rightlast}{\rightlast}|
+%\end{preamble}
+%|\begin{figure}|
+%|\floatbox[{\capbeside|
+%| \captionsetup[capbesidefigure]{labelsep=newline,|
+%| justification=rightlast}%|
+%| \|\FRkey{thisfloatsetup}%^^A
+% |{|\FRkey{capbesideposition}|={left,center},|
+%| |\FRkey{capbesidewidth}|=4cm}}]{figure}[\FBwidth]|
+%| {\caption{...}\label{...}}|
+%| {...}|
+%|\end{figure}|
+%\end{Quote}\vspace*{-2\intextsep}\enlargethispage\baselineskip
+%\begingroup
+% \begin{figure}[H]
+% \floatbox[{\capbeside
+% \captionsetup[capbesidefigure]{labelsep=newline,
+% justification=rightlast}%
+% \thisfloatsetup{capbesideposition={left,center},capbesidewidth=4cm}}]{figure}[\FBwidth]
+% {\caption[Beside caption (example width complex preamble in \cmd{\floatbox})]{Beside caption
+% and some more text and a bit more text and
+% a little more text to fill
+% space}\label{fig:beside:mouse}}
+% {{\setlength\unitlength{4cm/58}%^^A
+% \input{Mouse.picture}}}
+% \end{figure}
+%\endgroup
+% Please note that complex preamble options, which contain more than one command, must be placed
+% inside curly braces. (See {\sectionname}~\ref{sec:floatsetup} about settings for floats
+% with |\floatsetup|.)
+%
+% \subsection{Creation of Personal Commands for Float Boxes}\label{ssec:ffigbox:etc}
+% The usage of |\floatbox| command with options (which could be cumbersome)
+% is sometimes rather complex.
+% The Introduction demonstrates the three already defined commands-abbreviations of this command.
+% You may define commands-abbreviations (or redefine existing) for your own purposes and
+% include some additional style definitions and settings there.
+%
+% \DescribeMacro{\newfloatcommand}\label{FB:newfloatcommand}%^^A
+% \DescribeMacro{\renewfloatcommand}\label{FB:renewfloatcommand}%^^A
+% The definition of new float abbreviation looks like:
+% \begin{Quote}
+% |\newfloatcommand|\marg{command}%^^A
+% \marg{captype}\oarg{preamble}\oarg{default width}
+% \end{Quote}
+% where:
+% \begin{description}\itemsep0pt\parskip1ptplus1pt
+% \item[\meta{command}]the user's command name (without backslash);
+% \item[\meta{captype}]the name of floating environment
+% this command is created for;
+% \item[\meta{preamble}]
+% you may use commands, mentioned in page~\pageref{floatboxsets}
+% and other layout commands, like was shown in examples;
+% you may try to add any other regular command (e.g. |\captionsetup|
+% or |\thisfloatsetup| stuff);
+% \item[\meta{default width}]the main purpose of this optional argument is
+% setting it to |\FBwidth|, which is already included in definition of |\ttabbox|---the command for
+% building tables. You may also use any dimensions like |6cm| or |\textwidth| here.
+% \end{description}
+%
+% For example you may define command for figure~\ref{fig:beside:mouse}
+% like following:
+%\begin{Quote}%
+%|\newfloatcommand{fcapbesideleft}[{\capbeside|
+%| \captionsetup[capbesidefigure]{labelsep=newline,|
+%| justification=rightlast}%|
+%| \thisfloatsetup|%^^A
+% |{capbesideposition={left,center},|
+%| capbesidewidth=4cm}}][\FBwidth]|
+%\end{Quote}
+%
+% \subsubsection{Usage of Personal Float Box Commands}
+% Your defined commands can be used in the following way (example for |\ffigbox|):
+% \begin{Quote}
+% |\ffigbox|\oarg{width}\oarg{height}\oarg{vert pos}\marg{caption}\marg{object}
+% \end{Quote}
+% where the options are:
+% \begin{description}\itemsep0pt\parskip1ptplus1pt
+% \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).
+% The empty width option, |[]|, and option |[\hsize]| mean the same. The |[\FBwidth]|
+% option sets natural object width;
+% \item[\meta{height}]
+% 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 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 (max)
+% heights of float elements (object or/and caption) inside |floatrow| environment.
+% Arguments are analogous to |minipage|'s:
+% |t|, |c|, |b|, |s| (see above).
+% \end{description}
+% See examples with usage of all options on the page~\pageref{fig:rotrow:FcatI} and in Appendix.
+%
+% \subsubsection{Predefined Float Box Commands}
+% Let's repeat three already defined commands-abbreviations, defined in package:\label{abbrcom}%^^A
+% \begin{Quote}
+% |\newfloatcommand{ffigbox}{figure}[\nocapbeside]|\label{FB:ffigbox}\nopagebreak
+% |\newfloatcommand{fcapside}{figure}[\capbeside]|\label{FB:fcapside}\nopagebreak
+% |\newfloatcommand{ttabbox}{table}[\captop][\FBwidth]|\label{FB:ttabbox}
+% \end{Quote}
+% You may see that these commands-abbreviations are equivalent to the following code:
+% \begin{Options}{fcapside}
+% \item[\cmd\ttabbox]---|\floatbox[\captop]{table}[\FBwidth]|;
+% \item[\cmd\ffigbox]---|\floatbox{figure}| (simplest definition); and
+% \item[\cmd\fcapside]---|\floatbox|\allowbreak|[\capbeside]{figure}|.
+% \end{Options}%
+% The first two are defined for figures, and the third one for tables. You may
+% redefine existing macros using |\renewfloatcommand| command (it uses
+% the same arguments as |\newfloatcommand| one).
+%
+% \emph{Note}. In the documentation text below the name of the |\floatbox| command means
+% both itself and all commands-abbreviations, defined with |\(re)newfloatcommand|.
+%
+%\begin{small}
+%
+% \medskip\emph{Some explanation}. The strange ``stammering'' names of float boxes,
+% 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}).
+% Also there were founded |\figbox| in \package{formlett}
+% and |\tabbox| in \package{automata} package among styles in \LaTeX{} folder.
+%
+%\end{small}
+%
+% \subsection{Building Float Row}\label{sec:floatrow}
+% The |floatrow| environment allows to put two or more floats beside. The usage of it looks like:
+% \begin{Quote}
+% |\begin{floatrow}[|\meta{number of beside floats}|]|\nopagebreak
+% |\floatbox...|\nopagebreak
+% |\floatbox...|\nopagebreak
+% |...|\nopagebreak
+% |\end{floatrow}|
+% \end{Quote}
+%
+% Please note that \emph{for each float box} inside |floatrow| you must use |\floatbox|, |\ffigbox|,
+% |\ttabbox| or your own command, created with |\newfloatcommand| macro.
+%
+% The |floatrow| environment creates necessary number of ``columns'',
+% the default number is two, where floats are placed (during the calculation of width of column
+% 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
+% (remember, the |[\FBwidth]| is default option of |\ttabbox|).
+%
+% During building each float box inside float row, the |floatrow| environment calculates
+% the rest space in the row and writes this value at the special parameter |\Xhsize|, which you
+% may use inside \meta{width} option of |\floatbox| command.
+% The next example with figures uses |[\FBwidth]| command in option for the left float,
+% and |[\Xhsize]| command---for the right.
+%\begin{Quote}
+%|...|\nopagebreak
+%|\begin{figure}|\nopagebreak
+%| \begin{floatrow}|\nopagebreak
+%| \ffigbox[\FBwidth]|
+%| {...}{\caption{...}\label{...}}|
+%
+%| \ffigbox[\Xhsize]|%^^A
+% \FRmpar{Float occupies the rest space in the row}{FAD:floatfillspace}
+%| {...}{\caption{...}\label{...}}|
+%| \end{floatrow}|\nopagebreak
+%|\end{figure}|
+%\end{Quote}
+% \begin{figure}[H]
+% \begin{floatrow}
+% \ffigbox[\FBwidth]
+% {\caption[Left beside figure (\texttt{floatrow}), the float box has width of graphic]{Left beside figure,
+% the width of graphic}%
+% \label{intro:leftfig:FBwidth}}%
+% {\unitlength1.12\unitlength\input{Bear.picture}}
+%
+% \ffigbox[\Xhsize]
+% {\caption[Right beside figure (\texttt{floatrow}), occupies the rest space of row]{Beside figure at the right side of simple figure row,
+% the box width occupies the rest space of row}%^^A
+% \label{intro:rightfig:Xhsize}}
+% {\unitlength1.44\unitlength\input{Doll.picture}}
+% \end{floatrow}
+% \end{figure}%^^A
+%
+% Usually the command |\Xhsize|\label{FB:Xhsize} is used for the last float
+% box to occupy the rest space of the row.
+% But if you use \package{calc} package you may try to use |\Xhsize|
+% earlier, if the \emph{absolute} value of the width of float boxes to
+% the right in float row is known. Another variant: you may set something in \meta{width}
+% argument something like |\Xhsize/2| and then |\Xhsize| for two last
+% float boxes---the next example just uses it: the first float has default
+% width equal to ``column'' width, the next uses width of included
+% graphic (uses command |\FBwidth| in optional argument \meta{width}),
+% the last two floats divide the rest horizontal space of page into two equal pieces which were
+% calculated by command |\Xhsize| and \package{calc} package.\pagebreak[1]
+%\begin{Quote}
+%\begin{preamble}
+% |\usepackage{calc}|\vspace{1ex}
+% |\makeatletter\@mparswitchfalse\makeatother|\vspace{1ex}
+% |\|\FRkey{DeclareMarginSet}|{hangleft}{\|\FRkey{setfloatmargins}
+% | {\hskip-\marginparwidth\hskip-\marginparsep}{\hfil}}|\vspace{1ex}
+% |\|\FRkey[sec]{floatsetup}|[widefigure]{|%^^A
+% \FRkey{margins}|=hangleft}|
+%\end{preamble}
+%|\begin{figure*}|
+%|\begin{floatrow}|{\emphcolor|[4]|}
+%| \ffigbox|\nopagebreak
+%| {\caption{Beside figure~I...}...}{...}|\nopagebreak
+%
+%| \ffigbox[\FBwidth]|\nopagebreak
+%| {\caption{Beside figure~II...}...}{...}|\nopagebreak
+%
+%| \ffigbox[\Xhsize/2]|\nopagebreak
+%| {\caption{Beside figure~III...}...}{...}|\nopagebreak
+%
+%| \ffigbox[\Xhsize]|\nopagebreak
+%| {\caption{Beside figure~IV...}...}{...}|\nopagebreak
+%|\end{floatrow}|
+%|\end{figure*}|
+%\end{Quote}
+%\begingroup\makeatletter
+% \floatsetup[widefloat]{margins=hangleft}
+% \begin{figure*}%
+% \begin{floatrow}[4]
+% \ffigbox
+% {\caption{Figure~I in the row (\texttt{floatrow}), ``column'' width}%
+% \label{fig:row:Dog}}
+% {\input{TheDog.picture}}
+%
+% \ffigbox[\FBwidth]
+% {\caption{Figure~II in the row (\texttt{floatrow}), graphics width}%
+% \label{fig:row:WcatI}}
+% {\unitlength1.08\unitlength\input{TheCat.picture}}
+%
+% \ffigbox[\Xhsize/2]
+% {\caption{Figure~III in the row, float's width box has the
+% half of the rest space of row}%
+% \label{fig:row:mouse}}
+% {{\setlength\unitlength{\hsize/58}%^^A
+% {\input{Mouse.picture}}}}
+%
+% \ffigbox[\Xhsize]
+% {\caption{Figure~IV in the row,
+% occupies the rest space of row}%
+% \label{fig:row:cheese}}
+% {\input{Cheese.picture}}
+% \end{floatrow}
+% \end{figure*}%
+%\endgroup
+% The result you see in the row of
+% figures~\ref{fig:row:Dog}--\ref{fig:row:cheese}. Please note that in the examples with rows,
+% the vertical alignment of floats lays on the bottom of upper part (here: objects)
+% of float and the top of lower part (captions).
+%
+% The current example uses the starred |figure*| environment, which demonstrates here the possibility
+% of creation and usage of the alternative layout for the float type (here for the figure).
+% It sets the special margin settings,
+% which allow to expand to the left margin (see page~\pageref{setup:margins} about margins settings
+% in |\floatsetup| command). The first command in this example, between |\makeatletter| and
+% |\makeatother| commands, switch of facing margins in twoside document: margins on all pages
+% appear on the left side (like in current document).
+%
+% \subsubsection{Mixed Row}\label{sec:mixrow}
+% \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).
+%
+% \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}.\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}
+% {\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}
+%|\TopFloatBoxes|\label{FB:TopFloatBoxes}
+%|\BottomFloatBoxes|\label{FB:BottomFloatBoxes}
+%\end{Quote}
+% which align \emph{full} float boxes by center, top or bottom lines.
+% There is also |\PlainFloatBoxes|\label{FB:PlainFloatBoxes} which restores standard behavior of
+% |\floatbox|'es.\par}
+%
+% \DescribeMacro{\buildFBBOX}
+% These macros were created by |\buildFBBOX|\label{FB:buildFBBOX} macro, which can be written like
+%\begin{Quote}
+%|\buildFBBOX|\marg{starting code of the box}\marg{finishing code of the box}
+%\end{Quote}
+% just before any |\floatbox| command (or |floatrow| environment).
+% For example, definition of |\CenterFloatBoxes|
+% looks almost like following:
+%\begin{Quote}
+%^^A%|\newcommand\CenterFloatBoxes{\CADJfalse\OADJfalse|
+%|\newcommand\CenterFloatBoxes{%|
+%| \buildFBBOX{\hbox\bgroup$\vcenter\bgroup\vskip0pt}%|
+%| {\vskip0pt\egroup$\egroup}}|
+%\end{Quote}
+% The other two commands use |\vtop| and |\vbox| boxes consequently.
+% (see also example with usage of |\buildFBBOX| command on the page~\pageref{buildFBBOX:def}).
+%
+% In the next example we use |\CenterFloatBoxes| command before |floatrow|
+% and |\killfloatstyle| just before |\ttabbox| macro
+% (mixed float row with figure~\ref{fig:rowmixspec:WcatI} in |Boxed| style, and
+% table~\ref{tab:rowmixspec:tabI}\label{mixrow}):
+%\begin{Quote}
+%\begin{preamble}
+%|\|\FRkey[sec]{floatsetup}|[figure]{|\FRkey{style}|=Boxed}|
+%\end{preamble}
+%|\begin{figure}\CenterFloatBoxes|\nopagebreak
+%|\begin{floatrow}|
+%| \|\FRkey[FB]{ffigbox}|[\|\FRkey[FB]{FBwidth}|]|
+%| ...|
+%| \|\FRkey{killfloatstyle}|\|\FRkey[FB]{ttabbox}
+%| ...|
+%\end{Quote}
+% \DeleteShortVerb{\|}%
+% \begingroup\floatsetup[figure]{style=Boxed}
+% \begin{figure}[H]\CenterFloatBoxes
+% \begin{floatrow}
+% \ffigbox[\FBwidth]
+% {\unitlength1.75\unitlength\input{Horse.picture}}
+% {\caption{A \texttt{Boxed} figure in the mixed row}\label{fig:rowmixspec:WcatI}}%
+% \extrarowheight1pt
+% \killfloatstyle
+% \ttabbox
+% {\caption{A table in the mixed row}\label{tab:rowmixspec:tabI}}
+% {\tabcolsep5\tabcolsep\begin{tabular}{|c|c|}\hline A & B \\ C & D \\ \hline\end{tabular}}
+% \end{floatrow}
+% \end{figure}
+% \endgroup
+% \MakeShortVerb{\|}%
+% \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
+% |[\FBwidth]|, but |\ttabbox| does not have any option---it uses
+% |[\FBwidth]| option as default (see definitions on page~\pageref{abbrcom}).\label{FAD:MixedRowII}
+%
+% \subsection{Running Floats in the Raw \LaTeX\ Mode}\label{sec:rawfloats}
+% The\label{FAD:PlainFloat}
+% \package{floatrow} package redefines floating environments for the case
+% 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.\startNotes
+%
+% \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}\vskip-\lastskip
+%|\begin{figure}\RawFloats|\nopagebreak
+%|\captionsetup[table]{position=top}|
+%|\begin{minipage}{0.45\textwidth}|
+%| \centering ...|
+%| \caption{...}\label{...}|
+%|\end{minipage}|
+%|\begin{minipage}{0.45\textwidth}|
+%| \captionof{table}{...}\label{...}|
+%| \centering ...|
+%|\end{minipage}|\nopagebreak
+%|\end{figure}|
+%\end{Quote}
+% And you'll get figure~\ref{Right:expect:fig}
+% and table~\ref{Right:expect:tab}.
+%\begingroup\floatsetup[figure]{style=Boxed}\relax
+% \begin{figure}[H]\RawFloats
+% \captionsetup[table]{position=top}
+% \begin{minipage}{0.45\textwidth}
+% \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 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}
+% \end{figure}
+%\endgroup
+% Compare this example with example in the {\sectionname}~\ref{sec:mixrow} and the following
+% figure~\ref{leftfig:raw} and table~\ref{righttab:raw}.
+%\begin{Quote}
+%\begin{preamble}
+%|\|\FRkey[sec]{floatsetup}|[figure]{|\FRkey{style}|=Boxed}|
+%\end{preamble}
+%|\begin{figure}\RawFloats\|\FRkey[FB]{CenterFloatBoxes}\nopagebreak
+%|\begin{|\FRkey[sec]{floatrow}|}|
+%| \|\FRkey[FB]{ffigbox}|[\|\FRkey[FB]{FBwidth}|]|\nopagebreak
+%| {...}|\nopagebreak
+%| {\caption{...}\label{...}}|
+%| |
+%| \|\FRkey[FB]{ttabbox}\nopagebreak
+%| {...}|\nopagebreak
+%| {\caption{...}\label{...}}|
+%|\end{floatrow}|\nopagebreak
+%|\end{figure}|
+%\end{Quote}
+%\begingroup\floatsetup[figure]{style=Boxed}
+% \begin{figure}[ht]\RawFloats\CenterFloatBoxes
+% \begin{floatrow}
+% \ffigbox[\FBwidth]
+% {\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
+% {\caption{A table in \cmd{\ttabbox} and inside \texttt{floatrow} in raw
+% \LaTeX's mode}\label{righttab:raw}}
+% {\tabcolsep5\tabcolsep
+% \begin{tabular}{|c|c|}\hline A & B \\ C & D \\ \hline
+% \end{tabular}}
+% \end{floatrow}
+% \end{figure}%^^A
+%\endgroup
+%
+% \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:
+% \begin{Quote}
+% |\RawFloats|\oarg{type,type,\ldots}\quad or\nopagebreak
+% |\RawFloats|\oarg{type}\oarg{subtype,subtype,\ldots}
+% \end{Quote}
+% So if you set |\RawFloats[figure]|, that will return the plain \LaTeX{} mode to all
+% figures in all subtype environments (|figure|, |figure*|,
+% |sidewaysfigure|, |wrapfigure|, etc., see page~\pageref{sec:floatsetup}).
+% If there is also a table,
+% |\RawFloats[figure,table]|, you also will set the same for all table
+% subtypes.
+%
+% The second way, with second optional argument, cancels \package{floatrow}'s
+% behavior for mentioned float ``subtype(s)'' of \emph{one} float type
+% in second optional argument you may use |float|, |widefloat|,
+% |rotfloat|, |widerotfloat|---the meaning of this options
+% analogous to options of |\floatsetup| macro (see
+% {\sectionname}~\ref{sec:floatsetup}, but you may use here only options
+% which include ``float'' word).\label{FAD:PlainFloatII}%^^A
+%
+% \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}.\startNotes\nopagebreak
+%
+% \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}) for plain floats.
+%
+%\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}.
+% 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 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}
+% In this case the settings of float layout of current type will be stored, but
+% you may put caption in non-standard way. For example in the free corner of the
+% graphics (figure~\ref{rawcaption:plain}):
+%\begingroup
+% \begin{Quote}
+%\begin{preamble}
+%|\|\FRkey[sec]{floatsetup}|[figure]{|\FRkey{style}|=plain}|
+%\end{preamble}\vskip-\lastskip
+%|\begin{figure}|\lineskip0pt
+%|\framebox(70,60){...}\hspace{2\unitlength}%|
+%|\framebox(70,60){...}\vspace{2\unitlength}\par|
+%|\framebox(70,60){...}\hspace{2\unitlength}%|
+%|\parbox[b][60\unitlength]{70\unitlength}%|
+%| {\RawCaption{\caption{...}\label{...}}}|
+%|\end{figure}|
+% \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]{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
+% \verb|BOXED| style).
+%\endgroup
+%
+% \subsection{Usage of Footnotes Inside Float Environment}\label{sec:floatfootnote}
+% Sometimes table or figure contents have material, which authors mark
+% and then write some explanation like footnotes. This package has
+% a~mechanism which allows to put footnotes inside floating environments, in
+% the same way as is in \LaTeX's |minipage| environment.
+%
+% In the case of few elements have the same footnote, we cannot
+% use standard |\footnotemark|---|\footnotetext| combination, because
+% |\footnotemark| in standard \LaTeX\ always creates the sign of main text footnote.
+% For these cases current package offers |\mpfootnotemark|%^^A
+% \FRmpar{Footnotemark \\inside float}{FAD:FnoteInsideFloat}\label{FB:mpfootnotemark}
+% macro instead of |\footnotemark|.
+% (The same macro also is defined in \package{footmisc} package.
+% The \package{floatrow} package doubles this definition.)
+% \begin{Quote}
+% \begin{preamble}
+% |\|\FRkey[sec]{floatsetup}|[table]{...,|\FRkey{footnoterule}|=none,|%^^A
+% \FRkey{footskip}|=.35\skip\footins,...}|
+% \end{preamble}\vskip-\lastskip
+% |\begin{table}|
+% |\|\FRkey[FB]{ttabbox}
+% | {\caption{...}\label{...}}%|
+%\verb+ {\begin{tabular}{...}+
+% |... & 2\mpfootnotemark[1] \\|
+% |...|
+% | \end{tabular}%|
+% | \footnotetext[1]{Even numbers.}}|\nopagebreak
+% |\end{table}|\vspace*{-\intextsep}
+% \end{Quote}%
+% \DeleteShortVerb{\|}%
+%\begingroup\floatsetup[table]{footnoterule=none,footskip=.35\skip\footins}
+% \begin{table}[H]
+% \ttabbox
+% {\caption{Table with footnote}%^^A
+% \label{tab:floatfnote}}%^^A
+% {\extrarowheight1pt
+% \begin{tabular}{|l|c|c|}
+% \hline
+% \thead{Column head} & \thead{Data I} & \thead{Data II} \\
+% \hline
+% First row & \phantom01 & 2\mpfootnotemark[1] \\
+% Second row & \phantom06\mpfootnotemark[1] & 4\mpfootnotemark[1] \\
+% Third row & 28\mpfootnotemark[1] & 8\mpfootnotemark[1] \\
+% \hline
+% \end{tabular}%^^A
+% \footnotetext[1]{Even numbers.}}
+% \end{table}%
+%\endgroup
+% \MakeShortVerb{\|}%
+%
+% {\sloppy The |\|\FRkey[sec]{floatbox} macro uses special definition of footnote rule
+% (the \FRkey{footnoterule}|=| key, see also
+% page~\pageref{sec:footnotestyle} for variants of footnote rule) and skip before footnotes and
+% explications or legends (the \FRkey{footskip}|=| key).\par}
+%
+% \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 the |\floatfoot|\label{FAD:Legend}
+% command. The |\floatfoot| is
+% build by usage of |\caption| stuff and uses by default caption's text justification:
+%\begin{Quote}
+%|\begin{table}|\nopagebreak
+%|\|\FRkey[FB]{ttabbox}
+%| {\caption{...}\label{...}}|
+% \verb+ {\begin{tabular}{...}+
+%| ...\end{tabular}%|
+%| \floatfoot{`Data I' column ...}}|\nopagebreak
+%|\end{table}|\vspace*{-\intextsep}
+%\end{Quote}
+% \DeleteShortVerb{\|}%
+%\begingroup\floatsetup[table]{footnoterule=none,footskip=.35\skip\footins}
+% \begin{table}[H]
+% \ttabbox
+% {\caption{Table with foot material (e.g. legend)}%^^A
+% \label{tab:floatfoot}}%^^A
+% {\extrarowheight1pt%^^A\tabcolsep2\tabcolsep
+% \begin{tabular}{|l|c|c|}
+% \hline
+% \thead{Column head} & \thead{Data I} & \thead{Data II} \\
+% \hline
+% First row & \phantom01 & 2 \\
+% Second row & \phantom06 & 4 \\
+% Third row & 28 & 8 \\
+% \hline
+% \end{tabular}%^^A
+% \floatfoot{`Data I' column---numbers which equal to sum of all
+% their divisors; `Data II' column---$2^n$ values}}
+% \end{table}%
+%\endgroup
+% \MakeShortVerb{\|}%
+%
+% The star form (|\floatfoot*|) prints its contents as plain unindented
+% paragraph (see table~\ref{tab:floatfoot}).
+%\begin{Quote}
+%| ...\end{tabular}%|
+%| \floatfoot*{`Data I' column ...}}|\nopagebreak
+%|\end{table}|\vspace*{-\intextsep}
+%\end{Quote}
+% \DeleteShortVerb{\|}%
+%\begingroup\floatsetup[table]{footnoterule=none,footskip=.35\skip\footins}
+% \begin{table}[H]
+% \ttabbox
+% {\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|}
+% \hline
+% \thead{Column head} & \thead{Data I} & \thead{Data II} \\
+% \hline
+% First row & \phantom01 & 2 \\
+% Second row & \phantom06 & 4 \\
+% Third row & 28 & 8 \\
+% \hline
+% \end{tabular}%^^A
+% \floatfoot*{`Data I' column---numbers which equal to sum of all
+% their divisors; `Data II' column---$2^n$ values}}
+% \end{table}%
+%\endgroup
+% \MakeShortVerb{\|}%
+%
+% For defining of explication font use \FRkey{footfont}|=| option
+% in |\floatsetup| (page~\pageref{setup:footfont}). You may try to
+% define special settings for float foot using
+% \cmd{\captionsetup[floatfoot]} (see~{\sectionname}~\ref{sec:floatsetup}).
+%
+% \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
+% \package{caption} (3.0 and later), and also \package{float\-row} package,
+% doesn't support this possibility. You may use |\floatfoot| and
+% |\footnote|/\allowbreak|\mpfootnotemark|/\allowbreak|\footnotetext| stuff instead.
+%
+% \Note If you use both commands |\floatfoot| and |\footnote|
+% inside one float box, the |\floatfoot| appears above |\footnote|
+% contents.
+%
+% \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}
+% and sample file \file{frsample01.tex}). In case of caption beside
+% float object, footnotes and foot text are always placed below caption.
+%
+% \subsection{Fine Tuning of Vertical Spaces of Float}\label{sec:FBabskips}
+% At the final variant of document you may need to correct vertical
+% spaces between float and main text, between float object and
+% caption.
+%
+% To change space between float box and main text, you may use
+% two simple commands |\FBaskip| and |\FBbskip|. For example define
+% \begin{Quote}
+% |\renewcommand\FBaskip{-4pt}|
+% |\begin{figure}|
+% | ...|
+% |\end{figure}|
+% \end{Quote}
+% to move up float box up (or reduce space above) by 4pt. Or write
+% \begin{Quote}
+% |\renewcommand\FBbskip{-5pt}|
+% |\begin{figure}[t]|
+% | ...|
+% |\end{figure}|
+% \end{Quote}
+% to reduce space below (here: distance between figure and main text) by 5pt.
+% In current document the |\FBaskip| command was necessary for moving up
+% some of wrapped figures.\nopagebreak
+%
+% Use |\vspace| command for vertical space correction around float
+% object\footnote{The plain floating environment allows usage of
+% \cmd{\vskip} command. But \cmd{\floatbox} stuff
+% (\cmd{\floatbox} itself, \cmd{\ffigbox} etc.) in case
+% of usage of the \cmd{\FBwidth} option, gets error message
+% when \cmd{\vskip} appears.}.
+%
+% \emph{Note}. If you'll write something like:
+% \begin{Quote}
+%\begin{preamble}
+% |\usepackage{floatrow}|
+%\end{preamble}
+% |\begin{figure}|\nopagebreak
+% | ...|
+% |\caption{...}|
+% |\vspace{-6pt}|\nopagebreak
+% |\end{figure}|
+% \end{Quote}
+% in \emph{plain} floats like in example above, you will change space between caption
+% and object (in the case of caption below object).
+% Again, for layout with caption above:
+% \begin{Quote}
+%\begin{preamble}
+% |\usepackage[|\FRkey{capposition}|=top]{floatrow}|
+%\end{preamble}
+% |\begin{figure}|\nopagebreak
+% |\vspace{-6pt}|\nopagebreak
+% |\caption{...}|
+% | ...|
+% |\end{figure}|
+% \end{Quote}
+% you will get the reduced space between caption above and object contents.
+%
+% \clearpage
+% \section{Float Layout Settings}\label{sec:floatsetup}
+%
+% The idea of \package{floatrow} package is to avoid a lot of repeated code
+% for creation of desired layout for floats inside the document text.
+% If you ought to change the layout of one float type or even of all float types,
+% the package allows also to make these modifications
+% of layout much easier. In this case you only have to care
+% about the \emph{markup} of floats and their contents.
+%
+% The easy modification of common layout of all float types or only for one
+% float type is possible because of the borrowed code from the \package{float}
+% package, which allows to modify layout of floats of one type as a whole.
+%
+% The common layouts and modification for captions for all float types as a whole,
+% for each float type separately, and other special settings
+% are supported by \package{caption} package, version~3.\emph{x}.
+%
+% The layout settings of \package{floatrow} package are built similarly
+% to the settings from the \package{caption}~3.\emph{x} package. So the layout settings of the
+% |\floatsetup|\footnote{Some key and option names were changed from version 0.1d,
+% the reason was to arrange and make names more memorable, and, sometimes, reduction
+% of their names (see {\sectionname}~\ref{sec:changed}).} command are built in
+% similar way as layout settings
+% of the |\captionsetup| command\footnote{Look also at the \package{caption}
+% documentation (version 3.0 and later)}.
+%
+% You may use the layout settings as \package{floatrow} option in
+% the |\usepackage| line in the preamble of codument.
+% \begin{Quote}
+%\begin{preamble}
+% |\usepackage[|\meta{options}|]{floatrow}|\quad.
+%\end{preamble}
+% \end{Quote}
+% You may write
+% \begin{Quote}
+%\begin{preamble}
+% |\usepackage[style=boxed,font=small]{floatrow}|\quad.
+%\end{preamble}
+% \end{Quote}
+%
+% \DescribeMacro{\floatsetup}
+% The same result you get with the |\floatsetup| command:
+% \begin{Quote}
+%\begin{preamble}
+% |\usepackage{floatrow}|
+% |\floatsetup{style=boxed,font=small}|\quad.
+%\end{preamble}
+% \end{Quote}
+% The lines above declare the |boxed| float style (this style creates
+% the frame around float object which is built by \LaTeX's |\fbox| command) and the
+% |\small| font for contents of float objects. These settings are loaded for \emph{all} float types.
+%
+% The usage of the |\floatsetup| command has following form:
+% \begin{Quote}
+% |\floatsetup|\oarg{float type}\marg{options}\quad,
+% \end{Quote}
+% where option \meta{float type} is the name of float type. You can use this optional
+% argument for creating of special settings of chosen float type. The following command
+% \begin{Quote}
+% |\floatsetup[table]{style=Plaintop}|
+% \end{Quote}
+% sets a special float style for floating tables: captions are placed above
+% float objects; in the case of floats are placed in one row, inside the |floatrow|
+% environment, text of captions is aligned by the top lines.
+%
+% The |[table]| or the |[figure]| options are not the only options you are allowed to use.
+% The |\floatsetup| command allows usage of a number of special options for settings
+% for floats in different positioning: plain floats, two-column floats (in one-column layout
+% of the document, the starred environment like
+% |figure*| can be used for alternative float layout, e.g. for
+% wide floats, which expand to the margins) rotated floats, wrapped floats. There is also
+% minor support for floats with captions placed beside float objects.\medskip
+%
+% Below are lists of all possible options of the |\floatsetup| command.
+% They are based, as example, on the |figure| environment.
+% The ``strength'' of options in the lists below decreases
+% from the previous item to the next one.
+% \begin{itemize}\label{stsetorder}
+% \item
+% Wide or two-column floats (|figure*|):
+% \begin{itemize}
+% \item
+% |\floatsetup[widefigure]|\label{setup:widefigure}---the ``strongest'' settings;
+% if they are absent, the settings from the next item will be used;
+% \item
+% |\floatsetup[widefloat]|\label{setup:widefloat}---these settings ``stronger''
+% than settings from next item (|\floatsetup[figure]|);
+% if they are absent, the settings from the next item will be used;
+% \item
+% |\floatsetup[figure]|;
+% if they are absent, package uses settings from
+% optional argument in |\usepackage| line or |\floatsetup{...}|
+% command; if they are absent---the default package settings will be used
+% (see page~\pageref{sec:default});
+% \end{itemize}
+% \item
+% Wrapped floats (|wrapfigure|, used with \package{wrapfig} package):
+% \begin{itemize}
+% \item |\floatsetup[wrapfigure]|\label{setup:wrapfigure};
+% \item |\floatsetup[wrapfloat]|\label{setup:wrapfloat};
+% \item |\floatsetup[figure]|;
+% \end{itemize}
+% \item
+% Rotated floats (|sidewaysfigure|,
+% used with \package{rotating} package):
+% \begin{itemize}
+% \item |\floatsetup[rotfigure]|\label{setup:rotfigure};
+% \item |\floatsetup[rotfloat]|\label{setup:rotfloat};
+% \item |\floatsetup[figure]|;
+% \end{itemize}
+% \item
+% Wide or two-column rotated floats
+% (|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,
+% see next section):
+% \begin{itemize}
+% \item |\floatsetup[capbesidefigure]|\label{setup:capbesidefigure};
+% \item |\floatsetup[capbesidefloat]|\label{setup:capbesidefloat};
+% \item
+% 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}.\startNotes\nopagebreak
+%
+% \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]{...}|.
+%
+% \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.
+%
+%\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: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
+% The \emph{float style} could include settings of the justification (in particular) of float contents;
+% margins (in particular the alignment of float boxes); separation material between objects and captions
+% and between float boxes in a~row (mainly spaces); frames or lines and other options.
+%
+% The \emph{float style} is specified by following way:
+% \begin{Options}{style=float style name }
+% \item[style=\rmfamily\mdseries\meta{float style name} ,]
+% the name of the \meta{float style name} option you may take from
+% table~\ref{tab:floatlayouts}.
+% \item[...]
+% You may create your own options with the \\|\DeclareFloatStyle| command,
+% see page~\pageref{ssec:declstyle}.
+% \end{Options}
+%
+% As you may see in the table~\ref{tab:floatlayouts}, the \package{floatrow} package
+% includes all float styles
+% which emulate co-named ones from the \package{float} package.
+%
+% Please note, that usage of |style=| key for floats with beside captions,
+% i.e.~using |\floatsetup| settings with options like, e.g.,
+% |[capbesidefigure]| or |[capbesidefloat]| can destroy layout for this float subtype.
+% For example that key cancels settings for beside position of caption.
+% If you really need to create the alternative
+% layout for floats with beside captions, for example to print float objects in frames,
+% using the |Boxed| style:~\nobreak\quad1)\nobreak\enskip if you are creating
+% one-column document, revise your settings
+% which were used for float creation, maybe you didn't use the settings for
+% starred floating environments, like |figure*|, so you can load necessary settings for
+% floats with beside caption inside |\floatsetup[widefigure]{...}|, and then
+% use |figure*| environment for floats with beside captions;~\nobreak\quad2)\nobreak\enskip
+% if you can't follow advice of the previous item, you may use a bit risky
+% variant with usage of |\killfloatstyle| command,
+% see {\sectionname}~\ref{page:killfloatstyle}.\bigskip
+%
+% The \package{caption} package uses its own settings and names for caption layout styles.
+% The caption's |ruled| style is the only one from \package{float}
+% package, which was predefined in \package{caption} package. (The |ruled| style
+% is used by the \package{floatrow} package as well as other \package{float} package's
+% styles.) To use caption settings of the |ruled| style, you may write
+% \begin{Quote}
+% |\captionsetup[figure]{style=ruled}|\quad .
+% \end{Quote}
+%
+% \begingroup\vfill
+% \jot4pt\tabcolsep1.5\tabcolsep
+% \newlengthtocommand\settowidth\Icolumn{\small\texttt{wshadowboxx}}
+% \newlengthtocommand\settowidth\IIcolumn{\small\texttt{framestyle=wshadowbox}}
+% \newlengthtocommand\setlength\IIIcolumn{\textwidth-\Icolumn-\IIcolumn
+% -6\tabcolsep-1.6pt}
+% \newcommand\leftcell[2][16.5mm]{%^^A%
+% \hspace*{-\tabcolsep}\begin{tabular}[t]{>{%
+% \noindent
+% \vphantom{\small()\mpfootnotemark[1]}}
+% p{\hsize}}
+% #2\unskip\botstrut\end{tabular}\hspace*{-\tabcolsep}%
+% }
+% \def\LongtableHead{
+% \hfil\thead{Style} &
+% \hfil\thead{\cmd{\floatsetup} keys} &
+% \hfil\thead{Description}
+% }
+% \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
+% \LongtableHead \\ \hline\noalign{\vskip-.4pt}
+% \endfirsthead
+% \captionsetup{labelformat=continued}\caption[]{}\\
+% \hline
+% \LongtableHead \\ \hline\noalign{\vskip-.4pt}
+% \endhead
+% \captionsetup{labelformat=finished}\caption[]{}\\
+% \hline
+% \LongtableHead \\ \hline\noalign{\vskip-.4pt}
+% \endlasthead
+% \noalign{\vskip-.4pt}\hline
+% \multicolumn{3}{r@{}}{\topstrut\emph{Continued on next page}}
+% \endfoot
+% \noalign{\vskip-.4pt}\hline
+% \multicolumn{3}{r@{}}{\topstrut\emph{Finished on next page}}
+% \endprelastfoot
+% \endlastfoot
+% \multicolumn{3}{|c|}{Offered by \package{floatrow} package\botstrut\topstrut}\\
+% \hline \leftcell{plain\label{setup:plain}{\mpfootnotemark[1]\mpfootnotemark[2]\mpfootnotemark[3]}}
+% & \leftcell{\meta{none}}
+% &The style |plain| is standard \LaTeX's layout. Puts captions always below float object's contents.
+% \\\hline
+% \leftcell{\topstrut plaintop{\mpfootnotemark[1]}\botstrut}
+% & \leftcell[50mm]{\topstrut capposition=top\botstrut}
+% &The style |plaintop| is the same as |plain| style, but puts captions above
+% float object's contents---this style is analog to
+% the co-named style from the \package{float} package.\\ \cline{1-2}
+% \leftcell{\topstrut Plaintop\botstrut}
+% %^^A
+% & \leftcell[50mm]{\topstrut capposition=TOP\botstrut}
+% & Capitalized form, |Plaintop|,
+% aligns captions of the floats, which were placed in one row
+% (in the |floatrow| environment),
+% by top line (see example on the page~\pageref{tab:row:tabIII}).
+% \\\hline
+% \leftcell{\topstrut ruled\label{setup:ruled}\mpfootnotemark[1]\mpfootnotemark[3]\botstrut}
+% & \leftcell[50mm]{\topstrut capposition=top,\\ precode=thickrule,\\
+% midcode=rule,\\ postcode=lowrule,\\
+% heightadjust=all\botstrut}
+% & The first style, |ruled|, emulates co-named style from the \package{float} package.
+% It places thick rule
+% above float box, and thin rules between caption and object and below float. Rules are separated
+% from contents by small 2pt skip (see example on the page~\pageref{leftfig:ruled}).\\ \cline{1-2}
+% %^^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 beside
+% in one row (in the |floatrow| environment),
+% by top line (see example on the page~\pageref{leftfig:Ruled}).
+% \\\hline
+% \leftcell{\topstrut boxed\mpfootnotemark[1]\mpfootnotemark[2]\mpfootnotemark[3]\mpfootnotemark[4]\botstrut}
+% & \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 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
+% are \texttt{3pt} and \texttt{.4pt} consequently.)\\ \cline{1-2}
+% %^^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 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 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}\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
+% style=Boxed,\\framestyle=shadowbox\botstrut\\ \hline\topstrut
+% style=BOXED,\\framestyle=shadowbox}
+% &The same as |boxed|, |Boxed| and |BOXED|
+% consequently. The |\fbox| frame changed to |\shadowbox|
+% from \package{fancybox} package (see example on the page~\pageref{fig:subfig:catsI}).
+% Besides |\fboxsep| and |\fboxrule|, there is added parameter
+% |\shadowsize|---the width of shadow,
+% default is |4pt|.
+% \\ \hline
+% \leftcell{|doublebox|\smash{\mpfootnotemark[4]}
+% \\ \botstrut\\ \hline\topstrut|Doublebox|\\
+% \botstrut\\ \hline\topstrut|DOUBLEBOX|}
+% & \leftcell[50mm]{style=boxed,\\ framestyle=doublebox\botstrut\\ \hline\topstrut
+% style=Boxed,\\ framestyle=doublebox\botstrut\\ \hline\topstrut
+% style=BOXED,\\ framestyle=doublebox}
+% &The same as |boxed|, |Boxed| and |BOXED|
+% consequently. The |\fbox| frame changed to |\doublebox|
+% from \package{fancybox} package (see example on the page~\pageref{fig:parpic:BcatII}).
+% 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\hrule\nobreak}
+% \leftcell{|wshadowbox|\smash{\mpfootnotemark[4]}
+% \\ \botstrut\\ \hline\topstrut|Wshadowbox|
+% \\ \botstrut\\ \hline\topstrut|WSHADOWBOX|}
+% & \leftcell[50mm]{style=boxed,\\framestyle=wshadowbox\botstrut\\ \hline\topstrut
+% style=Boxed,\\framestyle=wshadowbox\botstrut\\ \hline\topstrut
+% style=BOXED,\\framestyle=wshadowbox}
+% &The same as |boxed|, |Boxed| and |BOXED|
+% consequently. The |\fbox| frame changed to |\wshadowbox|,
+% based on |\shadowbox| (but drops white shade from frame, or
+% draws edges of ``second copy'') from \package{fancybox} package
+% (see example on the page~\pageref{fig:floatflt:WcatI}), you may use the same frame parameters like
+% in |shadowbox| style.
+% \\\hline
+% %^^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|), and
+% \cmd{\floatbox} macro uses \cmd{\FBwidth} command as \meta{width}
+% 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
+%^^A \footnoterule
+%
+% \mpfootnotemark[1]{The styles co-named and analogous to \package{float} package styles.}
+%
+% \mpfootnotemark[2]{This style is used in the sample file \file{frsmaple01.tex}}
+%
+% \mpfootnotemark[3]{This style is used in the sample file \file{frsmaple02.tex}}
+%
+% \mpfootnotemark[4]{During usage of these styles in
+% |floatrow| environment you ought to enlarge
+% space between floats, using key \texttt{floatrowsep}.}
+% }}
+% \end{longtable}
+%
+% \endgroup
+%
+% \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.\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[1]
+% \item[small] {\small Small size}
+% \item[normalsize] {\normalsize Normal size}
+% \item[large] {\large Large size}
+% \item[Large] {\Large Even larger size}
+%
+% \item[up] {\upshape Upright shape}
+% \item[it] {\itshape Italic shape}
+% \item[sl] {\slshape Slanted shape}
+% \item[sc] {\scshape Small Caps shape}\pagebreak[2]
+%
+% \item[md] {\mdseries Medium series}\pagebreak[2]
+% \item[bf] {\bfseries Bold series}\pagebreak[2]
+%
+% \item[rm] {\rmfamily Roman family}
+% \item[sf] {\sffamily Sans Serif family}
+% \item[tt] {\ttfamily Typewriter family}
+% \item[...]
+% You may create your own options with the |\DeclareFloatFont| command,
+% see page~\pageref{ssec:declfont}.
+% \end{Options}
+%
+% You may set font for float object like
+% \begin{Quote}
+% |font=small|
+% \end{Quote}
+% (which is used in current documentation), or
+% \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 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.}
+% 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}...|
+% \end{Quote}
+% or
+% \begin{Quote}
+% |\floatsetup[longtable]{font={sf,scriptsize,it}...|
+% \end{Quote}
+% 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}
+% or
+% \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:\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; \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}):
+% \begin{Options}{\OptionLabel}
+% \item[top] caption above object;
+% \item[TOP] caption above object and also aligned by top line in float
+% row.
+% For example the |Plaintop| style is the variant of
+% |plaintop| where used |capposition=TOP| settings,
+% see tables~\ref{tab:row:tabIII:CAPTOP}--\ref{tab:row:tabIV:CAPTOP};
+% \item[bottom] caption below object;
+% \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}
+% |\floatsetup[table]{|\FRkey{style}%^^A
+% |=plain,capposition=top}%|${}\equiv{}$|style=plaintop|
+% \end{Quote}
+% \DeleteShortVerb{\|}%
+% \begingroup
+% \floatsetup[table]{style=plain,capposition=top}
+% \begin{table}[H]
+% \begin{floatrow}\tabcolsep2\tabcolsep
+% \extrarowheight1pt
+% \ttabbox
+% {\caption[Long caption of table~I with key \texttt{capposition=top}]%^^A
+% {The table~I in the row with long, long, long, long, long, long caption}\label{tab:row:tabIII:captop}}%^^A
+% {\begin{tabular}{|l|>{\phantom0}c|>{\phantom0}c|}
+% \hline
+% \multirowthead{2}[-1ex]{Left Column Head}
+% & \multicolumn{2}{c|}{\thead{Data}} \\
+% \cline{2-3}
+% & \multicolumn{1}{c|}{\thead{I}}
+% & \multicolumn{1}{c|}{\thead{II}}
+% \\\hline
+% First row & 1 & 2 \\
+% Second row & 3 & 4 \\
+% Third row & 6 & 8 \\
+% Fourth row & \llap{1}0 & \llap{1}6 \\
+% \hline
+% \end{tabular}}
+%
+% \ttabbox
+% {\caption[Table~II in the row with caption with key \texttt{capposition=top}]%^^A
+% {Table~II in the row with caption}\label{tab:row:tabIV:captop}}%^^A
+% {\begin{tabular}{|l|c|c|c|}
+% \hline
+% \multirowthead{2}[-1ex]{Column Head}
+% & \multicolumn{3}{c|}{Data} \\
+% \cline{2-4}
+% & \thead{I} & \thead{II} & \thead{III} \\
+% \hline
+% First row & 1 & 2 & \phantom01 \\
+% Second row & 3 & 4 & \phantom06 \\
+% Third row & 6 & 8 & 28 \\
+% \hline
+% \end{tabular}}
+% \end{floatrow}
+% \end{table}
+% \endgroup
+% \MakeShortVerb{\|}%
+%
+% \begin{Quote}
+% |\|\FRkey{floatsetup}|[table]{|\FRkey{style}%^^A
+% |=plain,capposition=TOP}%|${}\equiv{}$|style=Plaintop|
+% \end{Quote}
+% \DeleteShortVerb{\|}%
+% \begingroup
+% \floatsetup[table]{style=plain,capposition=TOP}
+% \begin{table}[H]
+% \begin{floatrow}\tabcolsep2\tabcolsep
+% \extrarowheight1pt
+% \ttabbox
+% {\caption[Long top-aligned caption of table~I key \texttt{capposition=TOP}]%^^A
+% {The table~I in the row with long, long, long, long, long, long caption,
+% aligned by the top line}\label{tab:row:tabIII:CAPTOP}}%^^A
+% {\begin{tabular}{|l|>{\phantom0}c|>{\phantom0}c|}
+% \hline
+% \multirowthead{2}[-1ex]{Left Column Head}
+% & \multicolumn{2}{c|}{\thead{Data}} \\
+% \cline{2-3}
+% & \multicolumn{1}{c|}{\thead{I}}
+% & \multicolumn{1}{c|}{\thead{II}}
+% \\\hline
+% First row & 1 & 2 \\
+% Second row & 3 & 4 \\
+% Third row & 6 & 8 \\
+% Fourth row & \llap{1}0 & \llap{1}6 \\
+% \hline
+% \end{tabular}}
+%
+% \ttabbox
+% {\caption[Table~II in the row with caption, aligned
+% at the top line with key \texttt{capposition=TOP}]{Table~II in the row with caption, aligned
+% at the top line}\label{tab:row:tabIV:CAPTOP}}%^^A
+% {\begin{tabular}{|l|c|c|c|}
+% \hline
+% \multirowthead{2}[-1ex]{Column Head}
+% & \multicolumn{3}{c|}{Data} \\
+% \cline{2-4}
+% & \thead{I} & \thead{II} & \thead{III} \\
+% \hline
+% First row & 1 & 2 & \phantom01 \\
+% Second row & 3 & 4 & \phantom06 \\
+% Third row & 6 & 8 & 28 \\
+% \hline
+% \end{tabular}}
+% \end{floatrow}
+% \end{table}
+% \endgroup
+% \MakeShortVerb{\|}%
+%
+% \emph{Note}. The option |TOP| uses |\label|---|\ref|
+% mechanism, so, to get necessary result with it, you need to run \LaTeX{}
+% twice (when you make changes in contents which could change number
+% of lines, you get correct result also on the second run).
+%
+% \subsubsection{Position of Beside Caption}
+% \DescribeMacro{capbesideposition}\label{setup:capbesideposition}%^^A
+% Defines position of beside captions: vertical and horizontal.
+% For horizontal position there are defined four options:
+% \begin{Options}{\OptionLabel}
+% \item[left]
+% caption is printed to the left side of object (the default option, see example above);
+% \item[right]
+% caption is printed to the right side of object;
+% \item[inside]
+% caption is printed in binding side of page if |twoside| option
+% switched on in document class and key \FRkey{facing}|=yes| is used;
+% in |oneside| option of document (or key |facing=no| is used),
+% caption is printed at the left side;
+% \item[outside]
+% least popular option: caption printed in
+% 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; this option makes sense for the document with usage of
+% outer margins.
+% \end{Options}
+%
+% For vertical position there are defined three options
+% \begin{Options}{\OptionLabel}\samepage
+% \item[top]
+% caption aligned to the top of object;
+% \item[bottom]
+% caption aligned to the bottom of object;
+% \item[center]
+% caption aligned to the center of object.
+% \end{Options}
+% You may define position of beside caption by following:
+% \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.
+%
+% \subsubsection{Defining The Width of Beside Caption}
+% \DescribeMacro{capbesidewidth}\label{setup:capbesidewidth}%^^A
+% Defines width of beside caption. This option could be more preferable
+% in settings for one environment, see about |\thisfloatsetup| on the
+% page~\pageref{thisfloatsetup}. You may set:
+% \begin{Quote}
+% |capbesidewidth=4cm|\quad.
+% \end{Quote}
+% (see figure~\ref{capbesideframeI}). If you'll write |capbesidewidth=none| or
+% |capbesidewidth=sidefil| (this is default key setting), the
+% width of caption will be calculated by usual way, accordingly
+% to float width (i.e. occupies the rest width of float box, see
+% figure~\ref{intro:beside:FBwidth} on the page~\pageref{intro:beside:FBwidth}).
+%
+% \subsubsection{Defining Width of Object}\label{sec:wd:object}
+% \noindent
+% \DescribeMacro{floatwidth}\label{setup:floatwidth}%^^A
+% It is used for redefinition of width of objects.
+% This key, similar to |\capbesidewidth=|:
+% \begin{Quote}
+% |floatwidth=.35\hsize|
+% \end{Quote}
+% or
+% \begin{Quote}
+% |floatwidth=7cm|
+% \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|). 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}
+% \begin{preamble}
+% |\floatsetup[figure]{|\FRkey{margins}|=raggedright}|\nopagebreak
+% \end{preamble}
+% |\|\FRkey{thisfloatsetup}%^^A
+% |[figure]{floatwidth=.35\hsize}|\nopagebreak
+% |\begin{figure}|
+% | \includegraphics[width=\hsize]{Bear}|
+% | \caption{...}\label{...}|
+% |\end{figure}|
+% \end{Quote}%
+%
+% \floatsetup[figure]{margins=raggedright}
+% \thisfloatsetup{floatwidth=.35\hsize}
+% \begin{figure}[H]
+% \setlength\unitlength{\hsize/100}\input{Bear.picture}%^^A
+% \caption{Graphics with settings \texttt{floatwidth=0.35}\cmd{\hsize} moved to the left margin}%
+% \label{fig:floatwidth}
+% \end{figure}%
+% \endgroup
+%
+% \begingroup
+% \begin{Quote}%
+% |\|\FRkey{thisfloatsetup}%^^A
+% |{floatwidth=.35\hsize,|\FRkey{capbesidewidth}|=sidefil,|\nopagebreak
+% | |\FRkey{capposition}|=beside,|\FRkey{capbesideposition}|=right}|
+% |...|
+% \end{Quote}%
+%
+% \thisfloatsetup{floatwidth=.35\hsize,capbesidewidth=sidefil,
+% capposition=beside,capbesideposition=right}
+% \begin{figure}[H]
+% \setlength\unitlength{\hsize/100}\input{Bear.picture}%^^A
+% \caption{Caption beside graphics with the width settings \texttt{floatwidth=0.35}\cmd{\hsize}}%^^A
+% \label{fig:beside:floatwidth}
+% \end{figure}%
+% \endgroup
+% (These examples you can write also using box commands with the width option: |\ffigbox[.35\hsize]|
+% and |\fcapside[.35\hsize]| consequently.)
+%
+% If you use option |floatwidth=sidefil| for objects with beside
+% captions (in the case of key |capbesidewidth=|, uses absolute
+% value, like |capbesidewidth=4cm|) the box with object contents (instead of caption's)
+% occupies the rest space of float box (see
+% figure~\ref{capbesideframeI} on the page~\pageref{capbesideframeI} and appendix,
+% figure~\ref{fig:capbeside:trick} on the
+% page~\pageref{fig:capbeside:trick}).
+%
+% \subsubsection{Other Settings for Beside Captions}
+% \medskip\noindent
+% \DescribeMacro{capbesideframe}\label{setup:capbesideframe}%^^A
+% This boolean key declares whether the beside caption stays near the framed object
+% (|capbesideframe=yes|) in this case caption lines will be aligned by top
+% or bottom of frame; otherwise caption lines will be aligned with top or
+% bottom of framed object's \emph{contents} (|capbesideframe=no|).
+% \newcommand\TEXTBOX[1][]{\par
+% Here goes first line of text \Text\par
+% There goes second line of text#1\par
+% Hence goes third line of text\par
+% Thence goes fourth line of text}
+% \def\Text{{\mdseries and more text and some more text and a bit more text and
+% a little more text and a little piece of text to fill space}}
+%\begingroup
+% \begin{Quote}
+% \begin{preamble}
+% |\floatsetup[figure]{|\FRkey{style}|=Boxed,|%^^A
+% \FRkey{frameset}|={\fboxsep8pt},|\nopagebreak
+% | |\FRkey{objectset}|=justified,|%^^A
+% |capbesideposition={right,top},capbesideframe=yes}|
+% |\captionsetup[figure]{...,strut=no}|
+% \end{preamble}
+% |\|\FRkey{thisfloatsetup}%^^A
+% |{|\FRkey{capposition}|=beside,|
+% | |\FRkey{floatwidth}|=sidefil,|%^^A
+% \FRkey{capbesidewidth}|=4cm}|
+% |\begin{figure}|
+% | ...|
+% | \caption{...}\label{...}|\nopagebreak
+% |\end{figure}|
+% | |
+% \end{Quote}%
+% \floatsetup[figure]{style=Boxed,frameset={\fboxsep8pt},capbesideframe=yes,objectset=justified,
+% capbesideposition={right,top},footnoterule=limited}
+% \captionsetup[figure]{strut=no}
+% \thisfloatsetup{capposition=beside,floatwidth=sidefil,capbesidewidth=4cm}
+% \begin{figure}[H]
+% {\TEXTBOX}
+% {\caption{Caption beside framed object, (caption has width 4\,cm), aligned by top of frame}%^^A%
+% \label{capbesideframeI}}%
+% \end{figure}
+% \begin{Quote}
+% \begin{preamble}
+% |\floatsetup[figure]{...,capbesideframe=no}|
+% |...|
+% \end{preamble}
+% |\|\FRkey{thisfloatsetup}%^^A
+% |{|\FRkey{capposition}|=beside,|
+% | |\FRkey{floatwidth}|=9cm,|%^^A
+% \FRkey{capbesidewidth}|=sidefil}|
+% \end{Quote}%
+% \floatsetup[figure]{capbesideframe=no}
+% \thisfloatsetup{capposition=beside,floatwidth=9cm,capbesidewidth=sidefil}
+% \captionsetup{strut=no}
+% \begin{figure}[H]
+% {\TEXTBOX}
+% {\caption{Caption beside framed object, (object has width 9cm), aligned by top of object contents}%
+% \label{row:text:I}}%
+% \end{figure}
+%\endgroup
+%
+% \emph{Floatrow note.} For examples above the |\captionsetup{strut=no}| sentence also was used,
+% which cancels struts at the beginning and end of caption (|\strut|: the rules with height
+% and depth, which are set accordingly to current |\baselineskip|).
+%
+% \penalty-9000
+% \subsubsection{Defining Float Foot Position (Legends and Footnotes)}\label{sec:footposition}
+% \DescribeMacro{footposition}\label{setup:footposition}%^^A
+% Defines position of |\footnote|'s and |\floatfoot|'s in float box
+% with above/below captions.
+% (See examples in file \file{frsample01.tex}.)
+% \begin{Options}{\OptionLabel}
+% \item[default]
+% if caption above float object foot material is placed below float
+% object, otherwise below caption;
+% \item[caption]
+% always placed below caption;
+% \item[bottom]
+% always placed at the bottom of float box.
+% \end{Options}
+% In the case of caption
+% beside float object, footnotes and foot text are always placed below
+% caption.
+%
+% The next example shows the usage of the |caption| option of this key:
+%\begin{Quote}
+%\begin{preamble}
+%|\floatsetup{|\FRkey{style}|=ruled,footposition=caption}|
+%\end{preamble}
+% |\begin{figure}|
+% | ...|
+% | \caption{...}\label{...}%|
+% | \floatfoot{...}|
+% |\end{figure}|
+%\end{Quote}%
+%\begingroup\floatsetup[figure]{style=ruled,footposition=caption}
+% \begin{figure}[H]
+% \unitlength1.2\unitlength\input{TheCat.picture}
+% \caption{The \texttt{ruled} figure with explications which are placed under caption contents}%
+% \label{ruled:footposition}%
+% \floatfoot{The graphics demonstrate very pleasant muzzle of the very funny ginger cat with very
+% fluffy fur. The cat has yellow eyes, big ears, a small pink wet nose, and thick white whiskers}
+% \end{figure}%^^A
+%\endgroup
+%
+% \subsubsection{Vertical Alignment of Float Elements}\label{sec:heightadjust}
+% \DescribeMacro{heightadjust}\label{setup:heightadjust}%^^A
+% Defines whether the common maximum height of objects
+% or/and captions in the |floatrow| environment will be used for building of float row.
+% It has following options\par
+% \begin{Options}{\OptionLabel}\samepage
+% \item[all]
+% adjust both caption and object heights (e.g. for styles
+% |ruled|, |Ruled| and |BOXED|);
+% \item[caption]
+% adjust caption heights (e.g. for |Plaintop| style);
+% \item[object]
+% adjust object heights (e.g. for |Boxed| style);
+% \item[none]
+% nothing to be adjusted (the |plain| style);
+% \item[nocaption]
+% no adjusting for captions;
+% \item[noobject]
+% no adjusting for objects;
+% \end{Options}
+% You may define height adjustment even as followed:
+% \begin{Quote}
+% |heightadjust={caption,noobject}|\quad.
+% \end{Quote}
+%
+% The following two examples show |ruled| and |Ruled| style.
+% Both styles use |heightadjust=all| key option, but first style
+% uses |capposition=top|, and second one---|capposition=TOP|.
+%\begin{Quote}
+%\begin{preamble}
+%|\floatsetup{|\FRkey{style}|=ruled}|
+%\end{preamble}
+% |\begin{figure}|
+% |\begin{|\FRkey[sec]{floatrow}|}|
+% | \|\FRkey[FB]{ffigbox}
+% | {...}{\caption{The left ...}\label{...}}%|
+%
+% | \ffigbox|
+% | {\caption{The beside ...}\label{...}}{...}|
+% |\end{floatrow}|\nopagebreak
+% |\end{figure}|\vspace*{-.75\intextsep}
+%\end{Quote}%
+% \begin{figure}[H]\floatsetup{style=ruled}\killfloatstyle
+% \begin{floatrow}
+% \ffigbox
+% {\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.15\unitlength\input{Cat.picture}}
+% \end{floatrow}
+% \end{figure}%^^A
+%\begin{Quote}
+%\begin{preamble}
+%|\floatsetup{style=Ruled}|
+%\end{preamble}\nopagebreak
+% |...|\vspace*{-.75\intextsep}
+%\end{Quote}%
+% \begin{figure}[H]\floatsetup{style=Ruled}\killfloatstyle
+% \begin{floatrow}
+% \ffigbox
+% {\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.15\unitlength\input{Cat.picture}}
+% \end{floatrow}
+% \end{figure}\pagebreak[1]
+%
+% \addvspace\medskipamount\noindent
+% \DescribeMacro{valign}\label{setup:valign}%^^A
+% Defines vertical alignment of
+% float objects in |floatrow| if |heightadjust=all| or
+% |heightadjust=object| keys were used, or |\floatbox| stuff uses \meta{height}
+% argument with value, which differs from the height of object.
+% The options of this key are analogous to vertical
+% alignment option in |minipage| environment and |\parbox|
+% command. Default option is |c| (centered vertical alignment).
+% \begin{Options}{cc}\samepage
+% \item[t]
+% 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);
+% \item[b]
+% aligns objects by bottom line;
+% \item[s]
+% stretches objects by full height (if it is possible).
+% \end{Options}\pagebreak[1]
+%
+% 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}\openup-.5pt
+%\begin{preamble}
+%|\floatsetup{style=BOXED}|
+%|\usepackage{calc}|\nopagebreak
+%\end{preamble}\vskip-.5\lastskip
+% |\begin{figure}|\nopagebreak
+% | \|\FRkey[FB]{ffigbox}|[][\FBheight+2cm]|\nopagebreak
+% |...|
+% |\end{figure}|\vspace*{-.75\intextsep}
+%\end{Quote}\pagebreak[1]
+% \begin{figure}[H]\floatsetup{style=BOXED}\killfloatstyle
+% \ffigbox[][\FBheight+2cm]
+% {\unitlength.95\unitlength\input{TheCat.picture}}
+% {\caption{The figure inside \cmd{\ffigbox} has \meta{height} option, vertically centered}%
+% \label{BOXED:heightmod}}%
+% \end{figure}%^^A
+%
+% The example with figures \ref{leftfig:BOXED:valigned}
+% and \ref{rightfig:BOXED:valigned} shows |BOXED| style, which
+% uses |heightadjust=all| settings already, and
+% also the |valign=t| option was added.
+%^^A% (see also example with various alignment on the page
+%^^A% \pageref{example:ruledcapposTOP}).
+%\begin{Quote}\openup-.5pt
+%\begin{preamble}
+%|\floatsetup{style=BOXED,valign=t}|
+%|\usepackage{calc}|\nopagebreak
+%\end{preamble}
+% |\begin{figure}|
+% |\begin{|\FRkey[sec]{floatrow}|}|
+% | \|\FRkey[FB]{ffigbox}|[\|\FRkey[FB]{FBwidth}|+2cm]|
+% | {...}|
+% | {\caption{Left ...}\label{...}}%|
+%
+% | \ffigbox[\FBwidth+2cm][2\|\FRkey[FB]{FBheight}|]|\nopagebreak
+% | {\caption{The beside ...}\label{...}}|
+% | {...}|
+% |\end{floatrow}|\nopagebreak
+% |\end{figure}|\vspace*{-.75\intextsep}
+%\end{Quote}%
+% \begin{figure}[H]\floatsetup{style=BOXED,valign=t}\killfloatstyle
+% \begin{floatrow}
+% \ffigbox[\FBwidth+2cm]
+% {\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\unitlength\input{Cat.picture}}
+% \end{floatrow}
+% \end{figure}%^^A
+% Please look at the \meta{height} and \meta{width} options of |\ffigbox|
+% commands of the figure~\ref{BOXED:heightmod}
+% and beside figures~\ref{leftfig:BOXED:valigned}, \ref{rightfig:BOXED:valigned} consequently:
+% 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 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.
+%
+% The most popular usage of |facing| key is printing of
+% beside captions to the inner sides of pages with option
+% |capbesideposition=inside| (the opposite option is |capbesideposition=outside|)
+% works together with switched |facing=yes| key.
+%
+% The figures~\ref{intro:beside} and~\ref{intro:beside:FBwidth} with beside captions
+% in the Introduction illustrate these options---%^^A
+% |facing=yes,|\allowbreak|capbesideposition=inside|.
+%
+% \subsubsection{Object Settings}\label{sec:set:object}
+% \noindent
+% \DescribeMacro{objectset}\DescribeMacro{justification}\label{setup:objectset}%^^A
+% Defines justification of float object
+% (float contents). Predefined options are similar to
+% |justification=| key in |\captionsetup|.
+% \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).
+%
+% \item[centering]
+% 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.
+%
+% \item[RaggedRight]
+% As in previous item, each line of the text shoved to the
+% left margin, too.
+% But this time the command |\RaggedRight| of the \package{ragged2e} package
+% will be used to achieve this. This difference is that this time
+% the word breaking algorithm of \TeX\ will work inside the text.
+%
+% \item[raggedleft]
+% Blocks moved to the right,
+% each line of the text shoved to the right margin.
+%
+%^^A% \item[RaggedLeft]
+%^^A% Analogous to |RaggedRight|.
+%
+% \item[...]
+% You may also create your own settings with the |\DeclareObjectSet| command (see
+% page~\pageref{ssec:decl:oset})
+% \end{Options}
+%
+% \subsubsection{Defining Float Margins}\label{sec:set:box}
+% \DescribeMacro{margins}\label{setup:margins}%^^A
+% Defines margins (skips, rules or other margin material) of alone float boxes with
+% captions above/below, of float boxes with beside captions, and of
+% |floatrow| environments. It has following three predefined
+% options:
+% \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;
+% \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}.
+% \end{Options}
+%
+% \subsubsection{Defining Float Separators}\label{sec:set:sep}
+% \noindent
+% \DescribeMacro{floatrowsep}\label{setup:floatrowsep}%^^A
+% Sets separation material between beside float boxes in one row
+% inside |floatrow| environment (see page~\pageref{sec:floatrow}).
+%
+% \addvspace\smallskipamount\noindent
+% \DescribeMacro{capbesidesep}\label{setup:capbesidesep}%^^A
+% Sets separation material between object and beside caption (see page~\pageref{intro:beside}).
+%
+% \RestoreSpaces
+% Both key settings work similarly to |labelsep=| key
+% from |\captionsetup|.
+%^^A
+% They use following predefined options:
+% \begin{Options}{\OptionLabel}
+% \item[columnsep]
+% horizontal skip${}={}$|\columnsep| (default for both keys);
+% \item[quad]
+% horizontal skip${}={}1$\,em;
+% \item[qquad]
+% horizontal skip${}={}2$\,em;
+% \item[hfil]
+% horizontal skip${}={}1$\,fil (like |\hfil|);
+% \item[hfill]
+% horizontal skip${}={}1$\,fill (like |\hfill|);
+% \item[none]
+% empty separator.
+% \item[...]
+% You may also create your own settings with the\\ |\DeclareFloatSeparators| command (see
+% page~\pageref{setup:DeclareFloatSeparators})
+% \end{Options}
+% This documentation uses settings |floatrowsep=qquad| for separation of
+% beside floats and\allowbreak\ |capbesidesep=quad|
+% for floats with beside captions.
+%
+% The figure \ref{fig:plain:trick} uses tricky float style, which shows you layout, where
+% the |capbesidewidth=| key with absolute value appears very useful.
+%\begin{Quote}
+%\begin{preamble}
+%|\|\FRkey{DeclareFloatSeparators}|{mcapwidth}{\hskip-\FCwidth}|
+%|\floatsetup[figure]|
+%| {|\FRkey{style}|=plain,|\FRkey{objectset}|=centering,|\FRkey{margins}|=centering,|
+%| |\FRkey{capbesidewidth}|=6cc,|%^^A
+% \FRkey{capbesideposition}|=left,|\FRkey{capbesidesep}|=mcapwidth,|
+%| |\FRkey{floatwidth}|=sidefil}|\smallskip
+%|\captionsetup[capbesidefigure]{labelsep=newline,|
+%| justification=raggedright}|\nopagebreak
+%\end{preamble}
+% |\begin{figure}|\nopagebreak
+% |\|\FRkey[FB]{fcapside}\nopagebreak
+% |\end{figure}|
+%\end{Quote}
+% In this style all figures with beside captions centered accordingly to
+% full text \verb|\hsize|, because of the separator between float object and
+% caption has negative value of caption width.
+% 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 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
+% \clearfloatsetup{figure}\floatsetup[figure]
+% {style=plain,objectset=centering,
+% floatwidth=\columnwidth,capbesidewidth=6cc,
+% capbesideposition=left,capbesidesep=mcapwidth,
+% margins=centering,floatwidth=sidefil}
+% \captionsetup[capbesidefigure]{labelsep=newline,
+% justification=raggedright}
+% \begin{figure}[H]
+% \fcapside{}{\unitlength1.1\unitlength
+% \input{Doll.picture}
+% \caption[Beside caption with ``hidden'' width (\texttt{=6cc}),
+% object is centered at the full text width]{%^^A
+% Plain figure}\label{fig:plain:trick}}
+% \end{figure}%
+% \endgroup
+%
+% \subsubsection{Defining Float Rules/Skips}\label{sec:set:rule}
+% \DescribeMacro{precode}\label{setup:precode}%^^A
+% Defines skip, rule or other analogous code above float box (see page~\pageref{intro:leftfig:box}).
+%
+% \addvspace\smallskipamount\noindent
+% \DescribeMacro{rowprecode}\label{setup:rowprecode}%^^A
+% Defines skip, rule or other analogous code above alone float box,
+% or, in the case of beside floats inside |floatrow| environment,
+% above float row (see page~\pageref{intro:leftfig:row} and~\pageref{fig:rotrow:WcatI}).
+%
+% \addvspace\smallskipamount\noindent
+% \DescribeMacro{midcode}\label{setup:midcode}%^^A
+% Defines skip, rule or other analogous code between
+% caption above/below and float object.
+%
+% \addvspace\smallskipamount\noindent
+% \DescribeMacro{postcode}\label{setup:postcode}%^^A
+% Defines skip, rule or other analogous code below float box (see page~\pageref{intro:leftfig:box}).
+%
+% \addvspace\smallskipamount\noindent
+% \DescribeMacro{rowpostcode}\label{setup:rowpostcode}%^^A
+% Defines skip, rule or other analogous code below alone float box, or,
+% in the case of beside floats inside |floatrow| environment,
+% below float row (see page~\pageref{intro:leftfig:row} and~\pageref{fig:rotrow:WcatI}).
+%
+% For all these keys there are predefined following options (settings
+% were taken from styles created in \package{float} package):
+% \begin{Options}{\OptionLabel}\allowitembreaks[-1]
+% \item[none]
+% absent code (the default option for |precode=|, |rowprecode=|, |postcode=| and |rowpostcode=|
+% keys); in |plain|, |plaintop|, |boxed|, and similar styles;
+% \item[thickrule]
+% thick rule (.8pt) with 2pt vertical skip below---rule above float box
+% in |ruled| and |Ruled| styles which is used there by
+% |precode=| key (see figures~\ref{leftfig:ruled}--\ref{rightfig:Ruled});
+% \item[rule]
+% rule of default thickness (.4pt), with 2pt vertical skips above and below---middle rule
+% in |ruled| and |Ruled| styles is printed between object and caption, and
+% used there by |midcode=| key;
+% \item[lowrule]
+% rule of default thickness (.4pt), with 2pt vertical skip above---rule below float box
+% in |ruled| and |Ruled| styles, used there by
+% |postcode=| key;
+% \item[captionskip]
+% vertical skip which uses the value, defined in |captionskip=| key; the default option for
+% |midcode=| key: this option is used
+% in |plain|, |plaintop|, |boxed|, and similar styles.
+% \item[...]
+% 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
+% Defines type of frame; the
+% \package{floatrow} package offers only two types of frames:
+% \begin{Options}{\OptionLabel}
+% \item[fbox]
+% standard frame;
+% \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|:
+% \begin{Options}{\OptionLabel}
+% \item[doublebox]
+% double frame, needs also \package{fancybox} package;
+% \item[shadowbox]
+% frame with shadow, needs also \package{fancybox} package;
+% \item[wshadowbox]
+% modified |shadowbox| frame (frame with ``white shadow''),
+% needs also \package{fancybox} package.
+% \end{Options}
+%
+% \enlargethispage{\baselineskip}
+% \addvspace\medskipamount\noindent
+% \DescribeMacro{frameset}\label{setup:frameset}%^^A
+% The parameters for chosen frame; there are no predefined options
+% for this key, just write something like:
+% \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;
+% \item[row]
+% float row of beside floats, or alone float;
+% \item[none]
+% nothing.
+% \end{Options}
+%
+% \addvspace\medskipamount\noindent
+% \DescribeMacro{framefit}\label{setup:framefit}%^^A
+% Boolean which sets whether the \textit{frame width} will
+% be equal to current |\hsize|, predefined width or value of \meta{width} option of
+% float box (|framefit=yes|), in this case object size reduced (see
+% figures~\ref{fig:setup:Boxed} and~\ref{fig:setup:FBwidth:Boxed});
+% or the frame climbs out in the left and
+% right sides, and \textit{width of object} has current
+% |\hsize|, predefined width or value of \meta{width} option of
+% 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
+% |\end{figure}|
+% \end{Quote}\pagebreak[1]
+% \floatsetup[figure]{framestyle=fbox,heightadjust=object,
+% framearound=object,frameset={\fboxrule1pt\fboxsep10pt},framefit=yes}%^^A$\equiv|style=Boxed|$
+% \begin{figure}[H]%
+% \ffigbox[4cm]
+% {\input{Cat.picture}}{\caption{The frame around graphics fits to the width of float
+% 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
+% |\end{figure}|\vspace*{-\intextsep}
+% \end{Quote}%
+% \floatsetup[figure]{framestyle=fbox,heightadjust=object,
+% framearound=object,frameset={\fboxrule1pt\fboxsep10pt},framefit=no}%^^A$\equiv|style=boxed|$
+% \begin{figure}[H]%
+% \ffigbox[4cm]
+% {\input{Cat.picture}}{\caption{The frame around graphics climbs out to the right and
+% left sides}\label{fig:setup:boxed}}
+% \end{figure}%
+%
+% 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{...}}|
+% |\end{figure}|\vspace*{-\intextsep}
+% \end{Quote}\pagebreak[1]
+% \floatsetup[figure]{framestyle=fbox,heightadjust=object,
+% framearound=object,frameset={\fboxrule1pt\fboxsep10pt},framefit=yes}%^^A$\equiv|style=Boxed|$
+% \begin{figure}[H]%
+% \ffigbox[\FBwidth]
+% {\input{Cat.picture}}{\caption[The framed object contents have natural width; the
+% the width of float box (here: caption) was expanded to fit the width of
+% framed object]{Framed object has natural width;
+% the caption width expanded}\label{fig:setup:FBwidth:Boxed}}
+% \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 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}}|
+% \end{Quote}
+% then use this option in |colorframeset=| key:
+% \begin{Quote}
+% |colorframeset=|\meta{option}\quad,
+% \end{Quote}
+% for example:
+% \begin{Quote}
+% |\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
+% in case of \FRkey{midcode} key defined as |midcode=captionskip|;
+% or in case of usage of float styles (|style=|
+% key) |plain|, |boxed| and similar to them:
+% \begin{Quote}
+% |captionskip=10pt|\quad.
+% \end{Quote}
+% The settings above are default and equal to \LaTeX's settings (|\abovecaptionskip=10pt|).
+% The settings of current documentation: |captionskip=5pt|.
+%
+% \addvspace\medskipamount\noindent
+% \DescribeMacro{footskip}\label{setup:footskip}%^^A
+% Defines vertical space before foot material and footnotes. It can be defined like:
+% \begin{Quote}
+% |footskip=4pt|\quad,
+% \end{Quote}
+% or
+% \begin{Quote}
+% |footskip=\skip\footins|\quad.
+% \end{Quote}
+% the last line shows default settings.
+%
+% \subsubsection{Defining Float Footnote Rule's Style}\label{sec:footnotestyle}
+% \DescribeMacro{footnoterule}\label{setup:footnoterule}%^^A
+% Defines type of footnote rule for footnotes inside floating environment.
+% \begingroup
+% \begin{Options}{\OptionLabel}
+% \item[normal]
+% 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
+% defined by |\frulemax|\label{setup:frulemax} command, like:
+% \begin{Quote}
+% |\newcommand\frulemax{1in}|
+% \end{Quote}
+% \item[fullsize]
+% rule to full current text width.
+% \item[none]
+% Absent rule.
+% \item[...]
+% You may create your own options with the \\ |\DeclareFloatFootnoterule| command,
+% see page~\pageref{ssec:fnoterule}.
+% \end{Options}
+% \endgroup
+%
+% \label{setup:end}
+%
+%^^A% %^^A ???needed?
+%^^A% \subsubsection{Loading Style for Fancy Boxes}
+%^^A%
+%^^A% \DescribeMacro{fancyboxes}\label{setup:fancyboxes}%^^A
+%^^A% This boolean key loads \package{fr-fancy} package. This key you may use
+%^^A% only in optional argument in |\usepackage| line. The styles, supported by this package
+%^^A% are described in the table~\ref{tab:floatlayouts}.
+%
+% \subsubsection{Managing Floats with \texttt{[H]} Placement Option}
+% \DescribeMacro{doublefloataswide}\label{setup:doublefloataswide}%^^A
+% This boolean key redefines starred floating environment \emph{in onecolumn layout}
+% like non-starred ones, but in this case they are still store layout
+% settings, declared by |[wide...]| options of |\floatsetup| (page~\pageref{sec:floatsetup}).
+% This key is necessary
+% for usage of the \texttt{[H]} option
+% in starred environments in the same way as in non-starred.
+%
+% \medskip\noindent
+% \DescribeMacro{floatHaslist}%^^A
+% This boolean key adds values of penalties before and after
+% this ``anchored'' float like in the list environment and cancels
+% paragraph indentation, if there is no blank line appears after environment
+% (see also page~\pageref{sec:listpen}).
+%
+% \subsection{Settings for Current Float Environment}
+% \DescribeMacro{\thisfloatsetup}\label{thisfloatsetup}\label{setup:thisfloatsetup}%^^A
+% You may define some settings only for one float just
+% before necessary environment. Command |\thisfloatsetup| could
+% contain the same keys and options as in |\floatsetup|. It has
+% only mandatory argument (the \cmd{\thisfloatsetup} is defined
+% as abbreviation of the \cmd{\floatsetup[tmpset]} command).
+%
+% \subsection{Clearing of Settings for Current Float Type}
+% \DescribeMacro{\clearfloatsetup}\label{setup:clearfloatsetup}%^^A
+% If you want to get rid of parameters marked
+% for an automatic use within a particular environment
+% you can use the command\footnote{Created as additional macro for
+% \cs{clearcaptionsetup} macro, see also documentation
+% of \package{caption} package about \cmd{\clearcaptionsetup} command}:\allowpostlistbreaks[-4]
+% \begin{Quote}
+% |\clearfloatsetup|\marg{float type}\quad,
+% \end{Quote}\allowpostlistbreaks
+% where \marg{float type}---types as |figure|, |widefloat| etc.
+%
+% \subsection{Temporary Clearing of All Float Settings}\label{page:killfloatstyle}
+% \DescribeMacro{\killfloatstyle}\label{setup:killfloatstyle}%^^A
+% The first case when this command is needed: mixed rows of floats where figure stays beside table
+% and you need to cancel layout of ``foreign'' float (see page~\pageref{mixrow}).
+% The |\killfloatstyle| command is used before any
+% command of |\floatbox| stuff (see {\sectionname}~\ref{sec:floatbox}).
+%
+% Another case---layout of floats with beside captions is quite different from
+% other subtypes: |[figure]| option of
+% floatsetup defined with |style=plain| and
+% |[cabesidefigure]| must be defined with |style=boxed|.
+% In this case you may define your command, based on predefined
+% |\fcapside|:
+%\begingroup
+% \begin{Quote}
+% \begin{preamble}
+% |\newcommand\myfcapside{\killfloatstyle|\nopagebreak
+% | \floatsetup[figure]{style=Boxed,capbesideframe=yes}\fcapside}|\quad.
+% \end{preamble}
+% |\begin{figure}|
+% |\myfcapside[\FBwidth]|
+% |...|
+% |\end{figure}|\quad.\vspace*{-\intextsep}
+% \end{Quote}
+% \newcommand\myfcapside{\killfloatstyle
+% \floatsetup[figure]{style=Boxed,capbesideframe=yes,capbesideposition=left}\fcapside}
+% \begin{figure}[H]
+% \myfcapside[\FBwidth]
+% {\input{Horse.picture}}%
+% {\caption[Figure with beside caption in \texttt{Boxed} style.]{%^^A
+% Figure with beside caption in \texttt{Boxed} style. The special command \cmd{\myfcapside}
+% created to change layout for figures from plain in the case of captions below float
+% to boxed in the case of caption beside}\label{fig:beside:Boxed}}%
+% \end{figure}
+%\endgroup
+% The option |[figure]| is necessary if you have defined settings for this option
+% in the preamble.
+%
+% \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}.
+%
+% \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,|\allowbreak
+% |capposition=|\allowbreak|beside...}|
+% and then use ``starred'' floats in following way:
+%\begingroup
+% \begin{Quote}
+% \begin{preamble}
+% |\floatsetup[widefigure]{|\FRkey{style}|=Boxed,|\FRkey{capposition}|=beside,|
+% | |\FRkey{capbesideframe}|=yes}|
+% \end{preamble}
+% |\begin{figure*}|
+% |\fcapside[\FBwidth]|
+% |...|
+% |\end{figure*}|\quad.\vspace*{-\intextsep}
+% \end{Quote}
+% \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
+% Figure with beside caption in \texttt{Boxed} style. The special settings for framed graphics
+% were created in ``starred'' environment}\label{figs:beside:Boxed}}%
+% \end{figure*}
+%\endgroup
+%
+% \subsection{The Default Float Type Settings}\label{sec:default}
+% The following keys and options are switched on when the \package{floatrow}
+% package loaded. They equal to |default| style:
+% \begin{Options}{\OptionLabel}\par
+% \item[font=normalsize]\allowitembreaks[-4]
+% \item[footfont=footnotesize]\allowitembreaks[1]
+% \item[capposition=bottom]
+% \item[capbesideposition=left]
+% \item[capbesideframe=no]
+% \item[footposition=default]
+% \item[heightadjust=none]
+% \item[facing=no]
+% \item[margins=centering]
+% \item[objectset=centering] ($\equiv$|justification=centering|, \package{caption})
+% \item[floatrowsep=columnsep]
+% \item[capbesidesep=columnsep]
+% \item[precode=none]
+% \item[rowprecode=none]
+% \item[postcode=none]
+% \item[rowpostcode=none]
+% \item[framearound=none]
+% \item[rowfill=no]
+% \item[midcode=captionskip]\allowitembreaks[-4]
+% \item[captionskip=10pt]
+% \end{Options}
+%
+% \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.
+%
+% \subsubsection{Float Style Option (\texttt{style=})}\label{ssec:declstyle}
+% \DescribeMacro{\DeclareFloatStyle}\label{setup:DeclareFloatStyle}%^^A
+% Defines new float style. Example shows definition of new float
+% style |MyBoxed|. The figures~\ref{fig:plain:MyBoxed}, and
+% some others in current documentation show result.
+%\begin{Quote}
+%|\DeclareFloatStyle{MyBoxed}{|\FRkey{style}|=Boxed,|\FRkey{captionskip}|=5pt,|\nopagebreak
+%| |\FRkey{frameset}|={\fboxrule1pt\fboxsep12pt}}|\nopagebreak
+%|\floatsetup[figure]{style=MyBoxed}|
+%\end{Quote}\pagebreak[1]
+%
+% \begingroup
+%
+% \floatsetup[figure]{style=MyBoxed}
+% \begin{figure}[H]
+% {\unitlength1.28\unitlength\input{Horse.picture}}%
+% \caption{%^^A
+% Plain figure in \texttt{MyBoxed} style}%
+% \label{fig:plain:MyBoxed}%
+% \floatfoot{Much more, more and more and more and more and more and
+% more and more and more text inside macro \cmd{\floatfoot}}%
+% \end{figure}
+%
+% The same result you get with:
+%\begin{Quote}
+%|\floatsetup[figure]{style=Boxed,captionskip=5pt,|
+%| frameset={\fboxsep12pt\fboxrule1pt}}|
+%\end{Quote}
+% \endgroup
+%
+% \subsubsection{Float Font Option (\texttt{font=})}\label{ssec:declfont}
+% \DescribeMacro{\DeclareFloatFont}\label{setup:DeclareFloatFont}%^^A
+% With this macro you may define new option
+% for font (|font=| key) of float contents. This macro works
+% like |\DeclareCaptionFont| in \package{caption} package: you may also
+% use key options declared by |\DeclareCaptionFont| command.
+%
+% To get red color for text in the example with figure~\ref{color:fig} on the page~\pageref{color:fig},
+% you may define the red color by following way:
+% \begin{Quote}%
+% |\DeclareFloatFont{red}{\color{red}}|
+% \end{Quote}%
+% and then write, for example
+% \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
+% This command defines the skip, rule or other analogous code above
+% and below full float box and between caption above/below and
+% object. The defined option might be used in |rowprecode|,
+% |precode|, |midcode|, |postcode|, and
+% |rowpostcode| keys (page~\pageref{setup:precode}).
+%
+% Compare two examples:\enlargethispage\baselineskip
+% \begin{Quote}
+% \begin{preamble}
+% |\DeclareFloatVCode{grayruleabove}%|
+% | {{\color{gray}\par\rule\hsize{2.8pt}\vskip4pt\par}}|
+% |\DeclareFloatVCode{grayrulebelow}%|
+% | {{\color{gray}\par\vskip4pt\rule\hsize{2.8pt}}}|
+% |\floatsetup{...,|\FRkey{heightadjust}|=all,|%^^A
+% \FRkey{valign}|=c,|
+% | |\FRkey{rowprecode}|=grayruleabove,|%^^A
+% \FRkey{rowpostcode}|=grayrulebelow}|\nopagebreak
+% \end{preamble}
+% |\begin{figure}|\nopagebreak
+% |\begin{floatrow}|\nopagebreak
+% | \ffigbox|\nopagebreak
+% | {...}{\caption{The left ...}\label{...}}%|
+% | \ffigbox|\nopagebreak
+% | {...}{\caption{The beside ...}\label{...}}|
+% | \end{floatrow}|\nopagebreak
+% |\end{figure}|
+% |\begin{figure}|\nopagebreak
+% | ...|
+% | \caption{Alone figure ...}\label{...}%|\nopagebreak
+% |\end{figure}|
+% \end{Quote}\pagebreak[2]
+%
+%\begingroup
+% \begin{figure}[H]\floatsetup{heightadjust=all,valign=c,rowprecode=grayruleabove,
+% rowpostcode=grayrulebelow}\killfloatstyle
+% \begin{floatrow}
+% \ffigbox
+% {\unitlength.65\unitlength\input{BlackCat.picture}}
+% {\caption{The left beside figure inside float row with defined row rules above and below}%
+% \label{intro:leftfig:row}}%
+%
+% \ffigbox
+% {\caption{The beside figure at the right inside float row with defined row rules above and below}%^^A
+% \label{intro:rightfig:row}}
+% {\unitlength.85\unitlength\input{Cat.picture}}
+% \end{floatrow}
+% \end{figure}%^^A
+% \begin{figure}[H]\floatsetup{heightadjust=all,valign=c,rowprecode=grayruleabove,
+% rowpostcode=grayrulebelow}\killfloatstyle
+% \ffigbox
+% {\caption{Alone figure with defined row rules above and below}%^^A
+% \label{intro:alone:row}}
+% {\unitlength.85\unitlength\input{TheCat.picture}}
+% \end{figure}%^^A
+% \begin{Quote}\openup-.65pt
+% \begin{preamble}
+% |...|\nopagebreak
+% |\floatsetup{...,|\FRkey{heightadjust}|=all,|\nopagebreak
+% | |\FRkey{precode}|=grayruleabove,|%^^A
+% \FRkey{postcode}|=grayrulebelow}|\nopagebreak
+% \end{preamble}\nopagebreak
+% |...|
+% \end{Quote}%^^A
+%
+% \begin{figure}[H]\floatsetup{heightadjust=all,valign=c,
+% precode=grayruleabove,postcode=grayrulebelow}\killfloatstyle
+% \begin{floatrow}
+% \ffigbox
+% {\unitlength.65\unitlength\input{BlackCat.picture}}
+% {\caption{The left beside figure inside float row with defined rules for float box}%
+% \label{intro:leftfig:box}}%
+%
+% \ffigbox
+% {\caption{The beside figure at the right inside float row with defined rules for float box
+% above and below}%^^A
+% \label{intro:rightfig:box}}
+% {\unitlength.85\unitlength\input{Cat.picture}}
+% \end{floatrow}%
+% \end{figure}%^^A
+% \begin{figure}[H]\floatsetup{heightadjust=all,valign=c,
+% precode=grayruleabove,postcode=grayrulebelow}\killfloatstyle
+% \ffigbox
+% {\caption{Alone figure with defined rules above and below for float box}%^^A
+% \label{intro:alone:box}}
+% {\unitlength.85\unitlength\input{TheCat.picture}}
+% \end{figure}%^^A
+%\endgroup
+% Please note that for ruled styles defined for boxes, like for figures \ref{intro:leftfig:box}
+% and \ref{intro:rightfig:box}, which could be placed in one row, you need to
+% set |heightadjust=all| key.
+%
+%\begingroup
+% 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
+% (see also page~\pageref{setup:DeclareColorBox}).
+% Here is defined frame for figure~\ref{color:frame} below:
+% \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
+% You may define justification for |objectset=| key (page~\pageref{setup:objectset})
+% like\nopagebreak:
+% \begin{Quote}
+% |\DeclareObjectSet{centering}{\centering}|
+% \end{Quote}
+% In option's definition you may try to include any regular commands
+% (it could be the repeated head text also)
+% which you need to put before each object contents in float
+% environment. You may also use key options declared by
+% \cmd{\DeclareCaptionJustification} command of \package{caption} package
+% as options for |objectset=| key.
+%
+% \subsubsection{Option for Float Box Alignment/Settings (\texttt{margins=})}\label{ssec:decl:marg}
+% \DescribeMacro{\DeclareMarginSet}\label{setup:DeclareMarginSet}%^^A
+% You may define box alignment for float box (|margins=| key) like:
+% \begin{Quote}
+% |\DeclareMarginSet{center}{%|\nopagebreak
+% | \setfloatmargins{\hfil}{\hfil}}|
+% \end{Quote}
+% or like (see also sample files):
+% \begin{Quote}
+% |\DeclareMarginSet{outside}{\setfloatmargins*{\hfil}{}}|\nopagebreak
+% \end{Quote}
+% The |\DeclareMarginSet| command uses the |\setfloatmargins| command, which defines
+% fill code for each margin.
+%
+% \DescribeMacro{\setfloatmargins}\label{setup:setfloatmargins}%^^A
+% Non-starred form of |\setfloatmargins| defines left and right
+% margin.
+% \begin{Quote}
+% |\setfloatmargins{|\meta{left margin}|}{|\meta{right margin}|}|
+% \end{Quote}
+%
+% 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.
+% \begin{Quote}[0pt]
+% \begin{preamble}
+% |\makeatletter\@mparswitchfalse\makeatother|\vspace{1ex}
+% |\DeclareMarginSet{hangleft}%|
+% | {\setfloatmargins|
+% | {\hskip-\marginparwidth\hskip-\marginparsep}{\hfil}}|\vspace{1ex}
+% |\|\FRkey{DeclareColorBox}|{framedfigure}{\fcolorbox{gray}{white}}|\vspace{1ex}
+% |\|\FRkey{DeclareFloatSeparators}|{marginparsep}{\hskip\marginparsep}|
+% |\|\FRkey[sec]{floatsetup}|[widefigure]{|%^^A
+% \FRkey{margins}|=hangleft,|%^^A
+% \FRkey{floatwidth}|=\textwidth,|
+% | |\FRkey{capposition}|=beside,|%^^A
+% \FRkey{capbesideposition}|=left,|%^^A
+% \FRkey{capbesideframe}|=yes,|
+% | |\FRkey{capbesidewidth}|=\marginparwidth,|%^^A
+% \FRkey{capbesidesep}|=marginparsep,|
+% | |\FRkey{framestyle}|=colorbox,|\FRkey{framefit}|=yes,|\nopagebreak
+% | |\FRkey{colorframeset}|=framedfigure,|%^^A
+% \FRkey{frameset}|={\fboxrule3pt\fboxsep8pt}}|\vspace{1ex}
+% |\captionsetup[capbesidefigure]{justification=RaggedRight,|\nopagebreak
+% | font=small,labelfont={normalsize,sf,bf},labelsep=newline,strut=no}|\nopagebreak
+% \end{preamble}
+% |\begin{figure*}|\nopagebreak
+% |...|\nopagebreak
+% |\end{figure*}|
+% \end{Quote}
+% \begingroup
+% \floatsetup[widefigure]{margins=hangleft,floatwidth=\textwidth,
+% capposition=beside,capbesideposition=left,capbesideframe=yes,
+% capbesidewidth=\marginparwidth,capbesidesep=marginparsep,framestyle=colorbox,framefit=yes,
+% frameset={\fboxrule3pt\fboxsep8pt},colorframeset=framedfigure}
+% \captionsetup[capbesidefigure]{justification=RaggedRight,
+% font=small,labelfont={normalsize,sf,bf},labelsep=newline,strut=no}
+% \begin{figure*}[H]%
+% {\input{Mouse.picture}}{\caption{Figure with alternative layout (``starred'' environment) caption
+% placed on the left margin}\label{color:frame}}
+% \end{figure*}%
+% \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 |margins=|.
+%
+% Starred form, |\setfloatmargins*|, defines facing layout: inside and
+% outside margin.
+% \begin{Quote}
+% |\setfloatmargins*{|\meta{inside margin}|}{|\meta{outside margin}|}|
+% \end{Quote}
+%
+% You may even set much more complex definition:
+% \begin{Quote}\leftmargin0pt
+% |\DeclareMarginSet{facingrule}{%|\nopagebreak
+% |\setfloatmargins*{%|\nopagebreak
+% | \floatfacing{\hskip-12pt\vrule width4pt\hskip8pt\hfill}%|\nopagebreak
+% | {\hfill\hskip8pt\vrule width4pt\hskip-12pt}}{}}|
+% \end{Quote}
+% \DescribeMacro{\floatfacing}\label{setup:floatfacing}%^^A
+% the |\floatfacing| defines following
+% \begin{Quote}
+% |\floatfacing{|\meta{odd page definition}|}{|\meta{even page definition}|}|
+% \end{Quote}
+% This macro has also starred form |\floatfacing*|,
+% which you can use in key options for |\captionsetup| stuff and for floats with beside captions.
+%
+% \emph{Note}. Please remember that all options, which set different layout for facing pages
+% need |facing=yes| key option.
+%
+% \DescribeMacro{\floatboxmargins}\label{setup:floatboxmargins}%^^A
+% \DescribeMacro{\floatrowmargins}\label{setup:floatrowmargins}%^^A
+% \DescribeMacro{\floatcapbesidemargins}\label{setup:floatcapbesidemargins}%^^A
+% 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
+% float box;
+% \item[\cmd{\floatrowmargins}]sets left/right margins around
+% |floatrow| environment;
+% \item[\cmd{\floatcapbesidemargins}]sets left/right margins around
+% alone float box with beside caption.
+% \end{Options}
+% The grammar for using three mentioned commands is similar to
+% |\setfloatmargins|. Again, the settings which use |\floatfacing| command
+% work only in the case when key |facing=yes| is used.
+%
+%\RestoreSpaces
+% \paragraph{Alignment Settings for longtable.}
+% \label{ssec:decl:ltable:marg}
+% The \package{floatrow} expands some settings of table layout
+% to the |longtable| environment, so you may set |\LTleft| and
+% |\LTright| parameters inside |\DeclareMarginSet| settings. For example,
+% |centering| option was defined like:
+% \begin{Quote}
+% |\DeclareMarginSet{centering}{\setfloatmargins{\hfill}{\hfill}%|
+% | \LTleft=\fill \LTright=\fill}|
+% \end{Quote}
+%
+% \subsubsection{Float Separators Options (\texttt{floatrowsep=}, \texttt{capbesidesep=})}
+% \DescribeMacro{\DeclareFloatSeparators}\label{setup:DeclareFloatSeparators}%^^A
+% You may define separator
+% between float boxes, or between float object and beside caption:
+% \begin{Quote}
+% |\DeclareFloatSeparators{columnsep}{\hskip\columnsep}|\quad.
+% \end{Quote}
+% Please remember, that you may use options defined with |\DeclareFloatSeparators|
+% by both |floatrowsep=| and |capbesidesep=| keys.
+% You may also use key options declared
+% by \cmd{\DeclareCaptionLabelSeparator} command.\par%
+%
+% The next example uses more complex separator, which uses, the \package{color} package.
+% \begin{Quote}[0pt]
+% \begin{preamble}
+% |\|\FRkey{DeclareObjectSet}|{colorred}{\parskip2pt\parindent15pt\color{red}}|
+% |\DeclareFloatSeparators{colorsep}%|
+% | {\begingroup\color{blue}%|
+% | \hskip8pt\vrule width4.8pt\hskip8pt\endgroup}|
+% |\|\FRkey[sec]{floatsetup}|[widefigure]{|%^^A
+% \FRkey{margins}|=hangleft,|\FRkey{capbesidesep}|=colorsep,|
+% | |\FRkey{objectset}|=colorred,|\FRkey{floatwidth}|=\textwidth}|
+% |\captionsetup[figure]{justification=justified,|
+% | labelfont={color={magenta},bf},textfont={color={green}},|
+% | labelsep=newline}|
+% \end{preamble}
+% |\begin{figure*}|\nopagebreak
+% |...|\nopagebreak
+% |\end{figure*}|
+% \end{Quote}
+% \begingroup
+% \floatsetup[widefigure]{margins=hangleft,capbesidesep=colorsep,objectset=colorred,
+% floatwidth=\textwidth,capposition=beside,capbesideposition=left}
+% \captionsetup[figure]{justification=justified,
+% labelfont={color={magenta},bf},textfont={color={green}},labelsep=newline}
+% \begin{figure*}[H]%
+% {\TEXTBOX}{\caption[Multi-colored figure and beside caption]{Multi-colored
+% 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=|\allowbreak|{color={magenta},bf,}|\allowbreak
+% |textfont={color={green}}|
+% 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}
+% \DescribeMacro{\DeclareFloatFootnoterule}\label{setup:DeclareFloatFootnoterule}%^^A
+% You may define new footnoterule (|footnoterule=| key) like:
+% \begin{Quote}
+% \begin{preamble}
+% |...|
+% |\usepackage{ifthen}|
+% |\renewcommand\frulemax{72pt}|
+% |\newcommand \Limitedrule{.33\columnwidth}|
+% |\DeclareFloatFootnoterule{Limited}{\kern-3pt|
+% | \def\Limitedrule{.33\columnwidth}%|
+% | \ifthenelse{\lengthtest{\frulemax<\Limitedrule}}%|
+% | {\def\Limitedrule{\frulemax}}{}%|
+% | \hrule width\Limitedrule\kern2.6pt}|
+% \end{preamble}
+% \end{Quote}
+% Remember, that the summary vertical height for footnote rule must be
+% equal to~0pt.
+%
+%\clearpage
+% \section{Creation of New Float Types}\label{sec:newfloat}
+% \DescribeMacro{\DeclareNewFloatType}\label{setup:DeclareNewFloatType}%^^A
+% For creation of new float type the |\DeclareNewFloatType|\label{FAD:newfloattype}
+% command was created
+% which also uses
+% \meta{key}${}=\nobreak {}$\meta{value} mechanism:
+% \begin{Quote}
+% |\DeclareNewFloatType|\marg{type}\marg{options}
+% \end{Quote}
+% The \meta{type} argument includes the new floating environment name.\\
+% The \meta{options} could include the following keys:
+%
+% \noindent
+% \DescribeMacro{placement}\label{setup:placement}%^^A
+% The value of this key could contain any combination of the letters
+% |t|, |b|, |h|, and |p|, which
+% define the placement of current float type on the page in
+% the case floating environment has no option argument.
+% (As default is declared |placement=tbp|.)
+%
+% \noindent
+% \DescribeMacro{name}\label{setup:name}%^^A
+% Defines the name of environment in the caption
+% label. (As default for caption label is declared the
+% name of environment.)
+%
+% \noindent
+% \DescribeMacro{fileext}\label{setup:fileext}%^^A
+% Defines extension of the file in which
+% gathered list of floats.
+%
+% \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,
+% co-named to current floating environment with perfix ``lo''. This new feature allows
+% to create separate float lists by default.%^^A\footnote{In some systems these extensions could fail?}
+%
+% \noindent
+% \DescribeMacro{within}\label{setup:within}%^^A
+% Declares the section head of document, by which
+% current float resets its numbering to zero. If this key is absent,
+% the float numbering increases during whole documentation.
+%
+% \noindent
+% \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}).
+% If you use |\DeclareNewFloatType| mechanism and exists (you created
+% 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,
+% which was used for definition of the |Example|
+% environment demonstrated on page \pageref{exa1.1}.
+% It consists of following code:
+% \begin{Quote}
+% |\DeclareNewFloatType{Example}%|
+% | {placement=t,within=section,fileext=loe}|
+% \end{Quote}
+%
+% \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}
+% |\newfloat|\marg{type}^^A
+% \marg{placement}\marg{ext}\oarg{within}
+% \end{Quote}
+% which could be replaced with
+% \begin{Quote}
+% |\DeclareNewFloatType|\marg{type}|%|
+% | {placement=|\meta{placement}|,fileext=|\meta{ext}|,widthin=|\meta{within}|}|
+% \end{Quote}
+%
+% The \package{float} package offers also other commands of float type declaring:
+% the |\floatname| command can be replaced by the |name=| key of |\DeclareNewFloatType|
+% command; the |\floatplacement|---by the |placement=| key.
+%
+% \clearpage
+% \section{Borrowed Code}\label{sec:borrow}
+% \FRorisubsection{The \package{float} Package: Compatibility}\label{sec:floatst}
+% The \package{floatrow} package includes some macros of \package{float}
+% (version v1.3d, dated 2001/11/08)
+% with necessary modifications. In the case of loaded \package{float}
+% package \emph{before} \package{floatrow} you'll get error message.
+%
+% \emph{Note}.
+% In the case of some packages
+% could call \package{float} package\footnote{I'm aware about \package{algorithm}
+% package.} the \package{floatrow} package loads code which emulates
+% already loaded \package{float} package v1.3, so future requests for
+% this package will be ignored. This will help to avoid strange error messages
+% in the case of these packages loaded after \package{floatrow}.
+% Please note that packages, which load \package{float} must be loaded
+% \emph{after} \package{floatrow}.
+%
+% I hope that old documents, which use the \package{float} package,
+% could work with \package{floatrow}. The first
+% limitation or feature is---if you didn't use any |\restylefloat|
+% command---all figures and tables appear in |plain| float style
+% with bottomed captions. Another limitation---you ought to put all
+% |\newfloat| and |\floatstyle| and |\restylefloat| commands in
+% preamble, before |\begin{document}|. The commands |\restylefloat|,
+% |\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 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
+% \package{float}'s documentation. The section which
+% describes commands of layout settings of \package{float} package was moved
+% in the section~\ref{sec:changed}
+% (subsection~\ref{sec:floatborrowI}, ``The User Interface---New
+% Floats [\package{float}]''), this section describes obsolete stuff.
+%
+% \subsubsection{How Settings From The \package{float} Package
+% Work in \package{floatrow}}\label{float-obs}
+% The combination of command |\floatstyle|\marg{style} and one of commands
+% \begin{Quote}
+% |\floatstyle|\marg{style}
+% \cmd{\newfloat}\marg{float}
+% \end{Quote}
+% or
+% \begin{Quote}
+% |\floatstyle|\marg{style}
+% \cmd{\restylefloat}\marg{float}
+% \end{Quote}
+% in \package{floatrow} package set float layout in the following way:
+% \begin{Quote}
+% |\floatsetup|\oarg{float}|{style=|\meta{style}|}|
+% \end{Quote}
+% Please note that there is used |\floatsetup|\oarg{float}|{...}|
+% settings for current type of float, but not |\floatsetup{...}|.
+%
+% \pagebreak\subsubsection{Printing of Float List [\package{float}]}
+% \label{sec:floatborrowIa}
+% \begin{slshape}
+% \nobreak\DescribeMacro{\listof}
+% \nopagebreak
+% The |\listof| command produces a list of all the floats
+% of a given class. Its syntax~is
+% \begin{Quote}
+% \hspace*{\MacroIndent}|\listof{|\meta{type}|}{|\meta{title}|}|^^A
+% \end{Quote}
+% \meta{type} is the float type given in the |\newfloat| command.
+% \meta{title} is used for the title of the list as well as the
+% headings if the current page style includes them. Otherwise, the
+% |\listof| command is analogous to the built-in \LaTeX\ commands
+% |\listoffigures| and |\listoftables|.
+%
+%^^A%\begin{em}%
+%^^A% \noindent\textit{Floatrow note}.
+%^^A% Please remember that for each float type list
+%^^A% you must set file extension where the entries of each float type gathered.
+%^^A% Use key \texttt{fileext=...} in |\DeclareNewFloatType|.
+%^^A% If two or more float types will have the same file
+%^^A% for list of floats, you will get all floats in the
+%^^A% first appeared |\listof|, and all next will be empty.
+%^^A%\end{em}%
+%
+% \subsubsection{The User Interface---\texttt{[H]}
+% Placement Specifier [\package{float}]}\label{sec:floatborrowII}
+% Many%^^A
+% \FRmpar{Anchored float}{FAD:AnchoredFloat}
+% people find \LaTeX's float placement specifiers too
+% restrictive. A Commonly Uttered Complaint (CUC) calls for a way to
+% place a float exactly at the spot where it occurs in the input file,
+% i.e., to \emph{not} have it float at all. It seems that the
+% \texttt{[h]} specifier should do that, but in fact it only suggests
+% to \LaTeX\ something along the lines of ``put the float here if it's
+% OK with you''. As it turns out, \LaTeX\ hardly ever feels inclined
+% to actually do that. This situation can be improved by judicious
+% manipulation of float style parameters.
+%
+% \RestoreSpaces
+% The same effect can be achieved by changing the actual method of
+% placing floats. David Carlisle's \package{here} option introduces a new
+% float placement specifier, namely \texttt{[H]}, which, when added to
+% a float, tells \LaTeX\ to ``put it HERE, period''. If there isn't
+% enough space left on the page, the float is carried over to the next
+% page together with whatever follows, even though there might still
+% be room left for some of that. This style option provides the
+% \texttt{[H]} specifier for newly defined classes of floats as well
+% as the predefined |figure|s and |table|s, thereby
+% superseding \package{here}. David suggests that the \package{here} option be
+% withdrawn from the archives in due course.
+%
+% The {\tt[H]} specifier may simply be added to the float as an
+% optional argument, like all the other specifiers. It may \emph{not}
+% be used in conjunction with any other placement specifiers, so
+% {\tt[Hhtbp]} is illegal. Neither may it be used as the default
+% placement specifier for a whole class of floats. The following table
+% is defined like this:
+% \begin{Quote}
+% |\begin{table}|\nopagebreak
+% |\begin{tabular}{cl}|
+% |\tt t & Top of the page\\|
+% \dots\ more stuff \dots\\
+% |\end{tabular}|
+% \end{Quote}
+% (It seems that I have to add some extraneous chatter here just so
+% that the float actually comes out right in the middle of a printed
+% page. When I \LaTeX ed the documentation\footnote{For \package{float}
+% package.} just now it turned out that there was a page break that
+% fell exactly between the ``So now'' line and the float. This
+% wouldn't Prove Anything. Bother.) So now we have the following float
+% placement specifiers:\nopagebreak
+% \RestoreSpaces
+% \begin{table}[H]
+% \begin{tabular}{cl}
+% \tt t & Top of the page\\
+% \tt b & Bottom of the page\\
+% \tt p & Page of floats\\
+% \tt h & Here, if possible\\
+% \tt H & Here, definitely
+% \end{tabular}
+% ^^A\caption{Could it be that this just needs a caption?}
+% \end{table}
+%
+% \smallskip\em \textit{Floatrow note}. Please don't mix meaning of
+% \texttt{[H]} and \texttt{[h]} options.
+% Float with \texttt{[h]} and \texttt{[!h]} option, if succeed, appears
+% \emph{after completing line} of text,
+% where it was appeared in the source file. That could be visible if you
+% put floating environment within a~paragraph (and at the middle of line also).
+%
+% The \texttt{[H]} option places the float just \emph{at the point} where it appeared
+% in the source file, it is used (\emph{but that strongly
+% not recommended when typesetting books}!) for floats after text like ``\dots{}shown in this
+% \textbf{figure:}'', i.e. the \texttt{[H]} float, almost like math formulas, continues the current
+% paragraph.
+%
+%\end{slshape}
+%
+% \subsubsection{The {[H]}
+% Placement Specifier---Managing of Page Breaks}\label{sec:listpen}
+% The strange phrase at the end of previous paragraph, ``almost like math formulas''
+% means, that ``anchored'' floats have no management of page breaking, and also
+% 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{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,
+% which manage the penalty values in the list environments:
+% \begin{Options}{\OptionLabel}
+% \item[\cmd{\allowprelistbreaks}]sets penalty before lists
+% (and also ``anchored'' floats);
+% \item[\cmd{\allowpostlistbreaks}]sets penalty after lists;
+% \item[\cmd{\allowitembreaks}]sets penalty between list items
+% (surely, this command not for floats!).
+% \end{Options}
+% All of them can be set globally, inside groups, and inside
+% environments. These penalties are set accordingly to digits
+% from |[-4]| (never break) to |[4]| (always break). The positive
+% values of optional argument in these commands analogous to values
+% of optional arguments in |\pagebreak| command. The negative
+% ones---to optional arguments |[1]|--|[4]| in |\nopagebreak| command.
+% The default value of all three commands is |[-1]| which equal
+% to settings of standard \LaTeX{} classes: \cls{book}, \cls{article}
+% etc. (|[-1]| option equal to |\@lowpenalty| value).
+%
+% \DescribeMacro{floatHaslist}\label{setup:floatHaslist}%^^A
+% The key, if true,
+% uses list penalties, otherwise anchored float works without any penalty, i.e. like
+% defined in \package{float}.
+%
+% Also (added in version 0.1k with current key):
+% Since list environments do \emph{not make indentation} in the
+% paragraphs next to them, in the case of \emph{no blank} line after environment,
+% the ``anchored'' floating environment does
+% the same, if this option is true. Default value of |floatHaslist|
+% is |false|
+% (for backward compatibility with previous version 0.1j).
+%
+% \DescribeMacro{\floatHpenalties}\label{setup:floatHpenalties}%^^A
+% This macro, defined with |\renewcommand| can include settings for
+% list penalties around anchored floats. If you define
+% \begin{Quote}
+%\begin{preamble}
+% |\makeatletter|
+% |\renewcommand\floatHpenalties{\@beginparpenalty\@M}|
+% |\makeatother|
+%\end{preamble}
+% \end{Quote}
+% or, with \package{listpen} package
+% \begin{Quote}
+%\begin{preamble}
+% |\renewcommand\floatHpenalties{\allowprelistbreaks[-4]}|\quad,
+%\end{preamble}
+% \end{Quote}
+% you'll never get page breaks before anchored floats.
+%
+% \medskip\noindent
+% \DescribeMacro{\RestoreSpaces}
+% \DescribeMacro{\RemoveSpaces}
+% The commands-aliases
+% of the |\if@nobreak| flag were added. The first is equal to |\@nobreakfalse|.
+% The main (and most visible) usage of this flag is for managing
+% vertical spaces: The |true| value in the case of two sectioning commands
+% cancels usage of the space before next
+% |\..section| command of the pair; in the case of
+% spaces around list environments it cancels usage of the space
+% before list just after sectioning command.
+% Usually the |\@nobreakfalse| flag toggles at the next paragraph (or |\par| command),
+% but in some cases this ``toggling'' cannot be happen in necessary point.
+% The |\RestoreSpaces| command would help. Opposite command |\RemoveSpaces| equals to |\@nobreaktrue|.
+%
+% \subsection{The \package{rotfloat} Package}
+% Code of \package{rotfloat} package was also borrowed by \package{floatrow}
+% package.
+% This package originally allows to expand settings of \package{float} package to
+% rotated environments like |sidewaysfigure| and |sidewaystable|. This mechanism
+% was borrowed to expand the \package{floatrow}'s settings in the similar way.
+%
+% In the case of loaded \package{rotfloat} package \emph{before}
+% \package{floatrow} you will get error message.
+%
+% The \package{floatrow} package loads code which pretends that
+% \package{rotfloat} is already loaded, so next loads are ignored.
+% The \package{rotfloat} allowed in the |\usepackage|
+% line with \package{rotating} package, which could have options. It is
+% necessary to delete \package{rotfloat} package from |\usepackage| line
+% where also \package{rotating} package loaded with options: otherwise
+% you may get an `option clash' error message.
+%
+%\clearpage
+% \section{The \package{floatrow} Package and The \package{caption} Package}\label{ssec:caption}
+% 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
+% caption styles to this package (see documentation for \package{caption}
+% package%^^A
+% \footnote{The English documentation is
+% \href{ftp://ctan.tug.org/tex-archive/macros/latex/contrib/caption/caption-eng.pdf}%^^A
+% {\meta{texmf folder}\texttt{/doc/latex/caption/caption-eng.pdf}}.}).
+%
+% The \package{floatrow} package adds a~possibility to create variations of caption layouts
+% for floats in different positions or float layouts (e.g. like wide or
+% two-column floats, rotated floats, wrapped floats) in the same time when |\floatsetup|
+% settings were loaded, using the same optional argument in
+% |\captionsetup| settings.
+%
+% For example you want to create a~special caption layout for wide or
+% two-column floats. In this case you may use
+% \begin{Quote}
+% |\captionsetup[widefloat]|\marg{options}
+% \end{Quote}
+% or for wide or two-column figures:
+% \begin{Quote}
+% |\captionsetup[widefigure]|\marg{options}
+% \end{Quote}
+% The priority of |\captionsetup| optional arguments is similar to
+% |\floatsetup| ones: in current examples |\captionsetup[widefigure]|
+% will be stronger than |\captionsetup[widefloat]|---the priority
+% and usage of ``\meta{float subtypes}'' in optional arguments
+% see on page~\pageref{stsetorder}\label{cap:beside:order}.
+%
+%\begingroup
+%\providecommand*\subcaption{\captionsetup{subtype*}\caption}
+%
+% \captionsetup[subtable]{labelformat=brace,textfont=md,labelfont=up}
+%
+% \subsection{Managing of Float Parts With the \texttt{subfloatrow} Environment}\label{ssec:subcaption}
+% \DescribeMacro{\subcaption}
+% The version~3.1 of caption package offers possibility for creation of
+% subcaptions, using the |subtype| settings (and |\DeclareCaptionSubType| command, see \package{caption}
+% documentation), which allow to create captions for parts of floats.
+%
+% In this section you may see some examples with building of rows of beside parts of floats.
+%
+% The example with subtables \Fref{subcaptab:tabIIIa} and \Fref{subcaptab:tabIIIb}
+% (table~\ref{captab:tabIII}).%^^A
+% \FRmpar{Subcaption above subtable}{FAD:subcapabove:subcaption}
+% \begin{Quote}
+%\begin{preamble}
+%\verb|...|
+%\verb|\DeclareCaptionSubType[alph]{table}|
+%\verb|\captionsetup[subtable]{labelformat=brace,textfont=md,labelfont=up}|\vspace{1ex}
+%\verb|\floatsetup[subtable]{style=Plaintop}%|
+%\end{preamble}
+% \verb|\begin{table}|
+% \verb|\ttabbox[\FBwidth]|
+% \verb|{\begin{subfloatrow}|
+% \verb| \ttabbox|
+% \verb| {\caption{First subtable}\Flabel{...}%|
+% \verb| \begin{tabular}{..}...|
+%
+% \verb| \ttabbox...|
+% \verb|\end{subfloatrow}}|
+% \verb|{\caption{Two ...}\Flabel{...}}|\nopagebreak
+% \verb|\end{table}|
+% \end{Quote}%
+% \DeleteShortVerb{\|}%
+%\begingroup
+% \floatsetup[subtable]{style=Plaintop}
+% \begin{table}[H]\extrarowheight1pt\tabcolsep1.5\tabcolsep
+% \ttabbox[\FBwidth]
+% {\begin{subfloatrow}
+% \ttabbox
+% {\caption{First subtable}\Flabel{subcaptab:tabIIIa}%^^A
+% \begin{tabular}{|l|>{\phantom0}c|>{\phantom0}c|}
+% \hline
+% \multirowthead{2}[-1ex]{Column Head}
+% & \multicolumn{2}{c|}{\thead{Data}} \\
+% \cline{2-3}
+% & \multicolumn{1}{c|}{\thead{I}}
+% & \multicolumn{1}{c|}{\thead{II}}
+% \\\hline
+% First row & 1 & 2 \\
+% Second row & 3 & 4 \\
+% Third row & 6 & 8 \\
+% Fourth row & \llap{1}0 & \llap{1}6 \\
+% \hline
+% \end{tabular}}{}
+%
+% \ttabbox
+% {\caption{Second subtable inside of \cs{ttabbox} and \texttt{floatrow} environment}%^^A
+% \Flabel{subcaptab:tabIIIb}%^^A
+% \begin{tabular}{|l|c|c|}
+% \hline
+% \multirowthead{2}[-1ex]{Column Head}
+% & \multicolumn{2}{c|}{\thead{Data}} \\
+% \cline{2-3}
+% & \multicolumn{1}{c|}{\thead{I}}
+% & \multicolumn{1}{c|}{\thead{II}}
+% \\\hline
+% First row & \phantom01 & \phantom02 \\
+% Second row & \phantom03 & \phantom04 \\
+% Third row & \phantom06 & \phantom08 \\
+% \hline
+% \end{tabular}}{}%
+% \end{subfloatrow}}
+% {\caption{Two {subtable}s
+% (captions for parts of float created with \cs{caption} command)}\label{captab:tabIII}}
+% \end{table}%
+%\endgroup
+% \MakeShortVerb{\|}%
+% Please note that for the labels of table parts the special option
+% \verb|brace| of the \verb|labelformat| key was used.
+%
+% \DescribeMacro{subfloatrow}
+% The |subfloatrow| is analogous to the |floatrow| environment\footnote{
+% It skips some features of ``parent'' environment, (e.g. margins or margin material
+% this environment build box and follows |objectset=| option).}.
+% The usage is similar to |floatrow|, you may write for example:
+% \begin{Quote}
+% \verb|\begin{subfloatrow}[|\meta{number of beside parts of floats}\verb|]|\nopagebreak
+% \verb|\floatbox...|\nopagebreak
+% \verb|\floatbox...|\nopagebreak
+% \verb|...|\nopagebreak
+% \verb|\end{subfloatrow}|
+% \end{Quote}
+% i.e.\ by default there are allowed two parts of floats. For other number of parts
+% you ought to put number in the optional argument. This environment
+% puts horizontal separator, defined by |subfloatrowsep=|
+% key. This key uses the same options
+% as |floatrowsep=| and |capbesidesep=| keys (options of
+% these keys defined by the \verb|\|\FRkey{DeclareFloatSeparators} command).
+%
+% Inside the |subfloatrow| environment you may use the |\caption| command, which
+% this time creates the label for parts of float. This is because of setting
+% \begin{Quote}
+% |\captionsetup{subtype}|
+% \end{Quote}%
+% at the very beginning of this environment.
+%
+% \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, 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
+% \begin{Quote}[0pt]
+% \begin{preamble}\nopagebreak
+% \verb|...|
+% \verb|\DeclareCaptionSubType[alph]{figure}|
+% \verb|\captionsetup[subfigure]{labelformat=brace,justification=centerlast}|\vspace{1ex}
+% \verb|\floatsetup[figure]{|\FRkey{style}\verb|=Shadowbox,|%^^A%
+% \FRkey{capbesidesep}\verb|=columnsep,%|
+% \verb| |\FRkey{capbesideframe}\verb|=yes,|%^^A
+% \FRkey{capbesideposition}\verb|={left,bottom}}|\nopagebreak
+% \verb|\floatsetup[subfigure]{|\FRkey{style}\verb|=plain,|\FRkey{heightadjust}\verb|=object}|
+% \end{preamble}
+% \verb|\begin{figure}|
+% \verb|\fcapside[\FBwidth]|
+% \verb| {\begin{subfloatrow}|
+% \verb| \ffigbox[\FBwidth]{\caption{One funny cat}\Flabel{...}...}{}|
+% \verb| |
+% \verb| \ffigbox[\FBwidth]{\caption{Another pleasant cat}\Flabel{...}...}{}%|
+% \verb| \end{subfloatrow}}|
+% \verb| {\caption{... \Fref{...} and \Fref{...}}\label{...}}|\nopagebreak
+% \verb|\end{figure}|
+% \end{Quote}\par\kern-\textfloatsep\kern-\baselineskip
+%\begingroup
+% \captionsetup[subfigure]{labelformat=brace,justification=centerlast,strut=no}
+% \floatsetup[figure]{style=Shadowbox,capbesidesep=columnsep,
+% capbesideframe=yes,capbesideposition={left,bottom}}
+% \floatsetup[subfigure]{style=plain,heightadjust=object}
+% \begin{figure}[H]
+% \fcapside[\FBwidth]
+% {\begin{subfloatrow}
+% \ffigbox[\FBwidth]{\caption{One funny cat}\Flabel{subcapfig:w}%
+% \unitlength1.2\unitlength\input{Cat.picture}}{}
+% \ffigbox[\FBwidth]{\caption{Another pleasant cat}\Flabel{subcapfig:b}%^^A
+% \unitlength1.32\unitlength\input{TheCat.picture}}{}%
+% \end{subfloatrow}}
+% {\caption[Subfloat row]{Beside figure
+% 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
+%\endgroup
+%
+% In the next example the main caption will be placed below, but labels of figure parts were
+% printed beside (see figure~\ref{fig:subcap:catsII}). For this reason the
+% \cs{useFCwidth} command was used, which creates the width of caption box equal to natural caption width.
+% \begin{Quote}\vskip-\lastskip%
+%\begin{preamble}\nopagebreak
+%\verb|...|
+%\verb|\captionsetup[subfigure]{labelformat=brace,list=off}|\vspace{1ex}
+%\verb|\floatsetup[subfigure]{|\FRkey{style}\verb|=plain,|%^^A
+% \FRkey{capbesideposition}\verb|=left,|
+%\verb| |\FRkey{capbesidesep}\verb|=space,|%^^A
+% \FRkey{heightadjust}\verb|=object}|\nopagebreak
+%\end{preamble}
+% \verb|\begin{figure}[H]|
+% \verb| \ffigbox[\FBwidth]|
+% \verb| {\begin{subfloatrow}\useFCwidth|
+% \verb| \fcapside[\FBwidth]{\caption{}\Flabel{...}...}{}|
+%
+% \verb| \fcapside[\FBwidth]{\caption{}\Flabel{...}...}{}|
+% \verb| \end{subfloatrow}}|
+% \verb| {\caption[...]{...}\label{...}}|\nopagebreak
+% \verb|\end{figure}|\pagebreak[1]
+% \end{Quote}
+%\begingroup
+% \captionsetup[subfigure]{labelformat=brace,justification=raggedleft,list=off}
+% \floatsetup[subfigure]{style=plain,capbesideposition=left,
+% capbesidesep=space,floatrowsep=qquad}
+% \begin{figure}[H]
+% \ffigbox[\FBwidth]
+% {\begin{subfloatrow}\useFCwidth
+%
+% \fcapside[\FBwidth]
+% {\caption{}\Flabel{subcap:wI}\hbox{\unitlength1.02\unitlength\input{Cat.picture}}}{}
+%
+% \fcapside[\FBwidth]
+% {\caption{}\Flabel{subcap:bI}\hbox{\unitlength.85\unitlength\input{TheCat.picture}}}{}%
+% \end{subfloatrow}}
+% {\caption[Two parts of figure with
+% labels beside]{Two parts of figure in a row with
+% labels beside. Main caption below. There are two subfigures:
+% \Fref{subcap:wI} and \Fref{subcap:bI}}\label{fig:subcap:catsII}}
+% \end{figure}
+%\endgroup
+%
+% In the next example the difference from previous layout settings is in usage
+% of the top vertical alignment. The height of the right graphics was enlarged by 1cm just
+% to show how the alignment for parts (here is default centering alignment)
+% and the top alignment for their captions (they are aligned by top) works.
+% \begin{Quote}%
+%\begin{preamble}\nopagebreak
+%\verb|...|
+%\verb|\floatsetup[subfigure]{|\FRkey{style}\verb|=plain,|%^^A
+% \FRkey{heightadjust}|=object,|
+%\verb| |\FRkey{capbesideposition}\verb|={left,top},|\FRkey{capbesidesep}\verb|=space}|
+%\end{preamble}
+% \verb|\begin{figure}[H]|
+% \verb| \ffigbox[\FBwidth]|
+% \verb| {\begin{subfloatrow}\useFCwidth|
+% \verb| \fcapside[\FBwidth]{\caption{}\Flabel{...}...}{}|
+%
+% \verb| \fcapside[\FBwidth][\FBheight+1cm]{\caption{}\Flabel{...}...}{}|
+% \verb| \end{subfloatrow}}|
+% \verb|{\caption[...]{...}\label{...}}|
+% \verb|\end{figure}|
+% \end{Quote}
+%\begingroup
+% \captionsetup[subfigure]{labelformat=brace,justification=raggedleft,list=off}
+% \floatsetup[figure]{heightadjust=object}
+% \floatsetup[subfigure]{style=plain,capbesideposition={left,top},heightadjust=object,
+% capbesidesep=enskip,floatrowsep=qquad}
+% \begin{figure}[H]
+% \ffigbox[\FBwidth]
+% {\begin{subfloatrow}\useFCwidth
+%
+% \fcapside[\FBwidth]
+% {\caption{}\Flabel{subcap:wIi}\hbox{\unitlength1.02\unitlength\input{Cat.picture}}}{}
+%
+% \fcapside[\FBwidth][\FBheight+1cm]
+% {\caption{}\Flabel{subcap:bIi}\hbox{\unitlength.85\unitlength\input{TheCat.picture}}}{}%
+% \end{subfloatrow}}
+% {\caption[Two labeled parts of figure (centered vertically);
+% beside labels aligned by top]{Two parts
+% of figure centered vertically; beside labels aligned by top. Main caption below.
+% There are two subfigures:
+% \Fref{subcap:wIi} and \Fref{subcap:bIi}}\label{fig:subcap:catsIiI}}
+% \end{figure}
+%\endgroup
+%
+% Another example (\ref{fig:subcap:IcatsI}) demonstrates, that you
+% may not only use the option |style=plain| for parts of float,
+% and there can not only be labels for beside subcaptions.
+% \begin{Quote}[0pt]
+% \begin{preamble}\nopagebreak
+% \verb|\captionsetup[subfigure]{labelformat=brace,justification=rightlast,|
+% \verb| format=hang}|\vspace{1ex}
+% \verb|\floatsetup[figure]{|\FRkey{style}\verb|=plain}|
+% \verb|\floatsetup[subfigure]{|\FRkey{style}\verb|=BOXED,|\FRkey{capbesideposition}\verb|={left,top}}|
+% \end{preamble}
+% \verb|\begin{figure}|
+% \verb|\ffigbox|
+% \verb| {\begin{subfloatrow}|
+% \verb| \fcapside[1.1\FBwidth]{\caption{One ...}\Flabel{...}...}{}|
+% \verb| |
+% \verb| \fcapside[1.1\FBwidth]{\caption{Another ...}\Flabel{...}...}{}%|
+% \verb| \end{subfloatrow}}|
+% \verb| {\caption{... \Fref{...} and \Fref{...}}\label{...}}|\nopagebreak
+% \verb|\end{figure}|
+% \end{Quote}
+%\begingroup
+% \captionsetup[subfigure]{labelformat=brace,justification=rightlast,format=hang}
+% \floatsetup[figure]{style=plain}
+% \floatsetup[subfigure]{style=BOXED,capbesideposition={left,top}}
+% \begin{figure}[H]
+% \ffigbox
+% {\begin{subfloatrow}
+% \fcapside[1.1\FBwidth]{\caption{One very funny cat with half-circle eyes, triangle ears,
+% and small black nose}\Flabel{subcapfig:ww}%
+% \input{Cat.picture}}{}
+% \fcapside[1.1\FBwidth]{\caption{Another very pleasant cat with big whiskers, oval eyes, and pink
+% wet nose}\Flabel{subcapfig:bb}%^^A
+% \input{TheCat.picture}}{}%
+% \end{subfloatrow}}
+% {\caption[Two parts of figure in a row with captions beside]{Beside
+% subcaptions vertically top aligned. There are two subfigures:
+% \Fref{subcapfig:ww} and \Fref{subcapfig:bb}}\label{fig:subcap:IcatsI}}
+% \end{figure}\vskip-\lastskip\kern-\baselineskip
+%\endgroup
+%
+% \DescribeMacro{\captionlabel}%
+% \DescribeMacro{\subcaptionlabel}%
+% 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|
+% 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}
+% package. There is also the \verb|\captionlabel| command.
+% \captionsetup[subfigure]{labelformat=brace,justification=raggedleft}
+% \begin{Quote}%
+%\begin{preamble}\nopagebreak
+%\verb|...|
+%\verb|\floatsetup[figure]{|\FRkey{style}\verb|=plain}|
+%\end{preamble}
+% |{\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,28)[bl]{}}|
+% |\put(2,2){\makebox(0,0)[bl]{\hbox{\subcaptionlabel{}\Flabel{scap:II}}}}|
+% |...}|
+% |\end{picture}}|
+% |{\caption{Here are two simple subfigures.|
+% |\textit{Left} shows cat's eyes (\Fref{scap:I});|
+% |\textit{right}---cat's ears (\relax\Fref{scap:II})%|
+% |}\label{figcap:label}}|
+% |\end{figure}|
+% \end{Quote}
+%\begingroup\par\kern-\textfloatsep
+% \floatsetup[figure]{style=plain}
+% \begin{figure}[H]
+% \fcapside[\FBwidth]
+% {\unitlength2\unitlength\fboxsep-.4pt
+% \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(20,2){{
+% \put(-12,5){\put(4.5,4.5){\oval(9,9)[t]}
+% \put(4.5,4.5){\line(0,1){4.5}}
+% \put(0,4.5){\line(1,0){9}}}
+% \put(3,5){\put(4.5,4.5){\oval(9,9)[t]}
+% \put(4.5,4.5){\line(0,1){4.5}}
+% \put(0,4.5){\line(1,0){9}}}}}
+% \put(42,0){
+% \put(0,0){\framebox(40,28)[bl]{}}
+% \put(2,2){\makebox(0,0)[bl]{\hbox{\subcaptionlabel{}\Flabel{scap:II}}}}%^^A\label{}
+% \put(20,2){{
+% \put(-14,12){\put(0,0){\line(2,3){5}}
+% \put(10,0){\line(-2,3){5}}}
+% \put(4,12){\put(0,0){\line(2,3){5}}
+% \put(10,0){\line(-2,3){5}}}}}}
+% \end{picture}}
+% {\caption[The graphic with subfloat labels]{%^^A
+% Here are two simple subfigures.
+% \textit{Left} shows cat's eyes (\Fref{scap:I});
+% \textit{right}---cat's ears (\relax\Fref{scap:II})
+% \unskip}\label{figcap:label}}
+% \end{figure}
+%\endgroup
+%
+% \subsection{Support of The Label--Sublabel References}\label{ssec:Flabel}
+% In the examples above of the current section the \verb|\Flabel| and
+% \verb|\Fref| commands were used for cross referencing (you may see
+% these commands in the code examples).
+% The \verb|\Flabel| gets a~modified format of current label of subfloat number:
+% In these definitions the float and subfloat
+% separators are divided by a~special separator command, which by default has no effect.
+% The label command \verb|\Flabel| can be defined like following:
+% \begin{Quote}%
+%\begin{preamble}
+% \verb|\newseparatedlabel\Flabel{figure}{subfigure}|
+%\end{preamble}
+% \end{Quote}
+% or, for all floats:
+% \begin{Quote}%
+%\begin{preamble}
+% \verb|\makeatletter|\nopagebreak
+% \verb|\newseparatedlabel\Flabel{\@captype}{sub\@captype}|\nopagebreak
+% \verb|\makeatother|
+%\end{preamble}
+% \end{Quote}
+% 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}
+% \verb|\newseparatedref\Fref{,\,\textit}|\quad.
+%\end{preamble}
+% \end{Quote}
+% Thus, labels, which use \verb|\Flabel| command can be referenced by usual way with \verb|\ref|
+% command and with \verb|\Fref| command. The labels in current section and in the section, which describes
+% the \package{subfig} package, use the \verb|\Flabel|. You may see the result of this command
+% in all \verb|\Fref|erences to these parts of figures.
+%
+% The last command, \verb|\makelabelseparator|, defines label separator globally:
+% \begin{Quote}%
+%\begin{preamble}
+% \verb|\makelabelseparator{,\,\textit}|\quad.
+%\end{preamble}
+% \end{Quote}
+% In this case both \verb|\Fref| and \verb|\ref| commands give the same result with |\Flabel|ed
+% elements.
+%
+% \subsubsection{The \texorpdfstring{\cs{RawCaption}}{RawCaption} with Parts of Figure}
+%\begingroup
+% \DescribeMacro{\RawCaption}\label{subcap:RawCaption}%^^A
+% The example with usage of |\subcaption| and |\RawCaption| command.
+% The layout of figure float is modified \verb|BOXED| style. The idea behind this example is
+% to place caption in the free right lower corner of graphics. The \verb|\RawCaption|
+% allows to put the caption in necessary place without disturbing the float layout.
+% \captionsetup[subfigure]{labelformat=brace,justification=rightlast,format=hang}
+%
+% \DescribeMacro{subfloatrow*}
+% The starred form loads settings for creation captions of float parts, but
+% in this environment the |\caption| command restores its meaning. Thus,
+% you need the |\subcaption| command for typesetting sub-captions.
+% You may define it by yourself:
+% \begin{Quote}
+% |\newcommand*\subcaption{\captionsetup{subtype*}\caption}|
+% \end{Quote}%
+% or use the additional package called \package{subcaption} which on top of everything
+% defines the |\subcaption| command.
+%
+% \begin{Quote}[0pt]%
+%\begin{preamble}\nopagebreak
+% |\|\FRkey{DeclareColorBox}|{framedfigure}{\fcolorbox{gray}{white}}|\vspace{1ex}
+% |\floatsetup[figure]{style=BOXED,heightadjust=object,|
+% | colorframeset=framedfigure,|
+% | framestyle=colorbox,frameset={\fboxrule3pt\fboxsep8pt}}|\vspace{1ex}
+% |\floatsetup[subfigure]{style=plain,capbesideposition={left,top},|
+% | heightadjust=object}|
+%\end{preamble}
+% |\begin{figure}[H]|
+% |\ffigbox{}{\begin{subfloatrow*}|
+% |\fcapside[1.1\FBwidth]{\subcaption{...}\Flabel{...}...}{}|
+% |\fcapside[1.1\FBwidth]{\subcaption{...}\Flabel{...}...}{}%|
+% |\end{subfloatrow*}%|
+% |\renewlengthtocommand\settowidth\Mylen{\subfloatrowsep}\vskip\Mylen|
+% |\BottomFloatBoxes\floatsetup[subfigure]{heightadjust=none}|
+% |\begin{subfloatrow*}|
+% |\fcapside[1.1\FBwidth]{\subcaption{...}\Flabel{...}...}{}|
+% |\ffigbox[][][b]{}{\RawCaption{\caption[...}\label{...}}}|
+% |\end{subfloatrow*}}|\nopagebreak
+% |\end{figure}|
+% \end{Quote}
+% \floatsetup[figure]{style=BOXED,heightadjust=object,colorframeset=framedfigure,
+% framestyle=colorbox,frameset={\fboxrule3pt\fboxsep8pt}}
+% \floatsetup[subfigure]{style=plain,capbesideposition={left,top},heightadjust=object}
+% \begin{figure}[H]
+% \ffigbox{}{\begin{subfloatrow*}
+% \fcapside[1.1\FBwidth]{\subcaption{One very funny cat with half-circle eyes, triangle ears,
+% and small black nose}\Flabel{subIcapfig:ww}%
+% \setlength\unitlength{61\unitlength/48}\input{Cat.picture}}{}
+% \fcapside[1.1\FBwidth]{\subcaption{Another very pleasant cat with big whiskers, oval eyes, and pink
+% wet nose}\Flabel{subIcapfig:bb}%^^A
+% \input{TheCat.picture}}{}%
+% \end{subfloatrow*}\renewlengthtocommand\settowidth\Mylen{\subfloatrowsep}\vskip\Mylen
+% \BottomFloatBoxes\floatsetup[subfigure]{heightadjust=none}
+% \begin{subfloatrow*}
+% \fcapside[1.1\FBwidth]{\subcaption{The very big cat, sitting on the window and
+% looking at the birds on the tree in the yard}\Flabel{subIcapfig:bc}%
+% \input{BlackCat.picture}}{}
+% \ffigbox[][][b]{}{\RawCaption{\caption[Three labeled parts of figure and raw caption]{Beside
+% subcaptions vertically top aligned. There are three subfigures:
+% \Fref{subIcapfig:ww}, \Fref{subIcapfig:bb} and \Fref{subIcapfig:bc}. Caption placed
+% at the free space of right lower corner}\label{fig:subIcap:IcatsI}}}
+% \end{subfloatrow*}}
+% \end{figure}
+%\endgroup
+%
+%\endgroup
+%
+%\clearpage
+% \section{Style Tandems}
+% The next few sections show examples and explain some noticed
+% features with usage of \package{floatrow} and other packages. There is no
+% full list of style compatibilities. You may succeed with other
+% versions of mentioned packages, and maybe with not mentioned
+% packages too.
+%
+%\begingroup
+% \subsection{The \package{subfig} Package}\label{ssec:subfig}
+% Tested (and compatible) with version 1.3,
+% dated 2005/06/28%^^A
+% \footnote{The English documentation is
+% \href{ftp://ctan.tug.org/tex-archive/macros/latex/contrib/subfig/subfig.pdf}%^^A
+% {\meta{texmf folder}\texttt{/doc/latex/subfig/subfig.pdf}}.}.
+% For the \package{subfig} package there are additional
+% macros in \package{floatrow} which
+% put subcaption label beside contents of subfloat and put alone
+% subcaption label.
+%
+% \subsubsection{Additions in \package{floatrow}}
+% The example with \cmd{\subfloat}'s (table~\ref{tab:tabIII}). The
+% setting command in preamble |\floatsetup[table]{style=Plaintop}|%^^A
+% \FRmpar{Subcaption above subtable}{FAD:subcapabove}
+% includes also settings for subcaption positions used with the
+% \package{subfig} package (like |\captionsetup[table]{position=top}| in
+% \package{caption} package):
+%\begin{Quote}\obeylines\parskip-.15pt
+%|\begin{table}\setlength\extrarowheight{1pt}|\nopagebreak
+%| \|\FRkey[sec]{floatbox}|{table}[\FBwidth]|
+%| {\caption{Two ...}\label{...}}|
+%| {\begin{subfloatrow}|
+%| \subfloat[First subtable]|
+%\verb+ {\begin{tabular}{|l|c|c|}+
+%| ...\end{tabular}}|
+%| \subfloat[Second subtable...]|
+%\verb+ {\begin{tabular}{|l|c|c|}+
+%| ...\end{tabular}}%|
+%| \end{subfloatrow}}|
+%|\end{table}|
+%\end{Quote}
+% \DeleteShortVerb{\|}%
+% \captionsetup[subtable]{textfont=md}
+% \begin{table}[h]\extrarowheight1pt\tabcolsep1.25\tabcolsep
+% \floatbox{table}[\FBwidth]
+% {\caption{Two \cmd{\subtable}'s
+% (created with \package{subfig} package)}\label{tab:tabIII}}
+% {\begin{subfloatrow}
+% \subfloat[First subtable]
+% {\begin{tabular}{|l|>{\phantom0}c|>{\phantom0}c|}
+% \hline
+% \multirowthead{2}[-1ex]{Column Head}
+% & \multicolumn{2}{c|}{\thead{Data}} \\
+% \cline{2-3}
+% & \multicolumn{1}{c|}{\thead{I}}
+% & \multicolumn{1}{c|}{\thead{II}}
+% \\\hline
+% First row & 1 & 2 \\
+% Second row & 3 & 4 \\
+% Third row & 6 & 8 \\
+% Fourth row & \llap{1}0 & \llap{1}6 \\
+% \hline
+% \end{tabular}}
+%
+% \subfloat[Second subtable with long long long subcaption]
+% {\begin{tabular}{|l|c|c|}
+% \hline
+% \multirowthead{2}[-1ex]{Column Head}
+% & \multicolumn{2}{c|}{\thead{Data}} \\
+% \cline{2-3}
+% & \multicolumn{1}{c|}{\thead{I}}
+% & \multicolumn{1}{c|}{\thead{II}}
+% \\\hline
+% First row & \phantom01 & \phantom02 \\
+% Second row & \phantom03 & \phantom04 \\
+% Third row & \phantom06 & \phantom08 \\
+% \hline
+% \end{tabular}}%
+% \end{subfloatrow}}
+% \end{table}%
+% \MakeShortVerb{\|}%
+%
+% The |subfloatrow| is analogous to the |floatrow| environment.
+% The usage is similar to |floatrow|:
+% \begin{Quote}
+% |\begin{subfloatrow}[|\meta{number of beside floats}|]|\nopagebreak
+% |\subfloat...|\nopagebreak
+% |\subfloat...|\nopagebreak
+% |...|\nopagebreak
+% |\end{subfloatrow}|
+% \end{Quote}
+% i.e. by default two subfloats are allowed. For other number of subfloats
+% you ought to put number in optional argument.
+% This environment
+% puts a~horizontal separator between subfloats, defined by |subfloatrowsep=|
+% key instead of |floatrowsep=|. This key uses the same options
+% as |floatrowsep=| and |capbesidesep=| keys (options of
+% these keys defined by |\DeclareFloatSeparators| command,
+% page~\pageref{setup:DeclareFloatSeparators}).
+%
+% Next follows an example with beside caption (see
+% figure~\ref{fig:subfig:catsI}).%^^A
+%\begingroup
+%\begin{Quote}
+%\begin{preamble}
+%|\|\FRkey[sec]{floatsetup}|[figure]{|\FRkey{style}|=Shadowbox,|%^^A
+% \FRkey{capbesidesep}|=columnsep,|
+%| |\FRkey{capbesideframe}|=yes,|%^^A
+% \FRkey{capbesideposition}|={left,top}}|
+%|\floatsetup[subfigure]{|\FRkey{style}|=plain}|
+%|\captionsetup[subfigure]{labelformat=brace,justification=centerlast,|
+%| strut=no}|\nopagebreak
+%\end{preamble}
+%|\|\FRkey[FB]{fcapside}|[\|\FRkey[FB]{FBwidth}|]|
+%| {\begin{subfloatrow}|
+%| \subfloat[...\label{...}]{...}|
+%| \subfloat[...\label{...}]{...}|
+%| \end{subfloatrow}}|
+%|{\caption{...}}|
+%\end{Quote}
+% \floatsetup[figure]{style=Shadowbox,capbesidesep=columnsep,
+% capbesideframe=yes,capbesideposition={left,top}}
+% \floatsetup[subfigure]{style=plain}
+% \captionsetup[subfigure]{labelformat=brace,justification=centerlast,strut=no}
+% \begin{figure}[h]
+% \fcapside[\FBwidth]
+% {\begin{subfloatrow}
+% \subfloat[One cat]{%
+% \input{Cat.picture}\Flabel{subfig:w}}
+% \subfloat[Another cat]{\input{TheCat.picture}\Flabel{subfig:b}}
+% \end{subfloatrow}}
+% {\caption[Subfloat row]{Beside
+% caption vertically top aligned; fancy
+% |Shadowbox| layout. There are two subfigures:
+% \Fref{subfig:w} and \Fref{subfig:b}}\label{fig:subfig:catsI}}
+% \end{figure}
+%\endgroup
+%
+% \DescribeMacro{\sidesubfloat}
+% Another addition in \package{floatrow} for subfloats is the command,%^^A
+% which puts subcaption label beside subfloat. The subcaption label always
+% appears on the left side. The key |subcapbesideposition=|
+% \DescribeMacro{subcapbesideposition}\label{setup:subcapbesideposition}%^^A
+% sets vertical alignment of beside subcaption and subfloat.
+% The options are analogous to the ones for |capbesideposition=| key:
+% \begin{Options}{\OptionLabel}\samepage
+% \item[top]
+% subcaption label aligned to the top of object;
+% \item[bottom]
+% subcaption label aligned to the bottom of object;
+% \item[center]
+% subcaption label aligned to the center of float contents.
+% \end{Options}
+%
+% The figure~\ref{fig:subfig:catsII} shows layout with subfloat labels beside.
+% \FRmpar{Subcaption beside subfloat}{FAD:sublabelbeside}
+% \begingroup
+% \begin{Quote}%
+%\begin{preamble}
+%|...|
+%|\floatsetup[figure]{|\FRkey{style}|=plain,|%^^A
+% \FRkey{subcapbesideposition}|=top}|
+%\end{preamble}
+% |\begin{figure}[H]|
+% | \ffigbox[\FBwidth]|
+% | {\begin{subfloatrow}|
+% | \sidesubfloat[]{...\label{...}}%|
+% | |
+% | \sidesubfloat[]{...\label{...}}%|
+% | \end{subfloatrow}}|
+% |{\caption[...]{...}\label{...}}|
+% |\end{figure}|
+% \end{Quote}
+% \floatsetup[figure]{style=plain,subcapbesideposition=top}
+% \begin{figure}[h]
+% \ffigbox[\FBwidth]
+% {\begin{subfloatrow}
+% \sidesubfloat[]{%
+% \input{Cat.picture}\Flabel{subfig:wI}}
+%
+% \sidesubfloat[]{\input{TheCat.picture}\Flabel{subfig:bI}}%
+% \end{subfloatrow}}
+% {\caption[Subfloat row (labels beside)]{Beside caption vertically centered.
+% There are two subfigures:
+% \Fref{subfig:wI} and \Fref{subfig:bI}}\label{fig:subfig:catsII}}
+% \end{figure}
+% \endgroup
+%
+% \DescribeMacro{\subfloatlabel}
+% There are cases when usage of something like |\subfloat[]{\label{..}}|
+% is needed. The first case shows the figure~\ref{fig:subfig:catsIII}---the
+% funny |picture| environment where subfloat labels were |\put|
+% as a part of subfigures.
+% Other---when you use mechanism of \package{psfrag} package and replace text entries
+% from PostScript file with \LaTeX{} ones. Unfortunately, the \package{subfig} package
+% creates unnecessary spaces around alone subfloat label in the
+% |\subfloat[]{\label{..}}| combination. The \package{fr-subfig} tries to fix this problem.
+%
+% This command is based on |\subfloat[]{\label{..}}| sentence and
+% puts alone subcaption label with necessary number. The full variant
+% of |\subfloatlabel|
+% \begin{Quote}
+% |\subfloatlabel|\oarg{subfloat number}\oarg{label entry}
+% \end{Quote}
+% is the abbreviation of the following:
+% \begin{Quote}
+% |\setcounter|\marg{sub{\upshape\texttt{\char`\\@captype}}}\marg{subfloat number-1}
+% |\subfloat[]{\label{|\meta{label entry}|}}|
+% \end{Quote}
+%
+% Another example:
+% \begingroup
+% \begin{Quote}%
+%\begin{preamble}
+%|...|
+%|\floatsetup[figure]{|\FRkey{style}|=plain}|
+%\end{preamble}
+% |\begin{figure}[h]|
+% |\fcapside[\FBwidth]|
+% | {\unitlength2\unitlength\fboxsep-.4pt|
+% | \begin{picture}(90,30)(0,0)|
+% | \put(0,0){\framebox(40,30)[bl]{}}|
+% | \put(2,2){\makebox(0,0)[bl]{\subfloat[]{\Flabel{subfig:wII}}}}|
+%|...|
+% | \put(50,0){\framebox(40,30)[bl]{}}|
+% | \put(52,2){\makebox(0,0)[bl]{\subfloatlabel[3][subfig:bII]{}}}%|^^A
+%|...|
+% | \end{picture}}|
+% |{\caption{...}\label{...}}|%^^A
+% |\end{figure}|
+% \end{Quote}
+% \floatsetup[figure]{style=plain}
+% \captionsetup[subfigure]{listofformat=comma-separated,labelformat=brace,justification=centerlast,strut=no}
+%\makeatletter
+% \begin{figure}[ht]
+% \fcapside[\FBwidth]
+% {\unitlength2\unitlength\fboxsep-.4pt
+% \begin{picture}(90,30)(0,0)
+% \put(0,0){\framebox(40,30)[bl]{}}
+% \put(2,2){\makebox(0,0)[bl]{\subfloat[]{\Flabel{subfig:wII}}}}
+% \put(0,0){
+% \put(8,10){\put(4.5,4.5){\oval(9,9)[t]}
+% \put(4.5,4.5){\line(0,1){4.5}}
+% \put(0,4.5){\line(1,0){9}}}
+% \put(23,10){\put(4.5,4.5){\oval(9,9)[t]}
+% \put(4.5,4.5){\line(0,1){4.5}}
+% \put(0,4.5){\line(1,0){9}}}}
+%
+% \put(50,0){\framebox(40,30)[bl]{}}
+% \put(52,2){\makebox(0,0)[bl]{\subfloatlabel[3][subfig:bII]{}}}%^^A
+% %^^A\label{}
+% \put(50,0){
+% \put(6,18){\put(0,0){\line(2,3){5}}
+% \put(10,0){\line(-2,3){5}}}
+% \put(24,18){\put(0,0){\line(2,3){5}}
+% \put(10,0){\line(-2,3){5}}}}
+% \end{picture}}
+% {\caption[The graphic with subfloat labels; these two labels of subfloats use changed settings
+% of the \texttt{listofformat=} key]{%^^A
+% Here are two simple subfigures.
+% Left one shows cat's eyes (\Fref{subfig:wII}), labeled with
+% \cs{subfloat}\texttt{[]\char`\{\char`\}} macro;
+% with \cs{subfloatlabel}\texttt{[3][subfig:bII]} sentence were labeled the cat's ears
+% (\Fref{subfig:bII})}%^^A
+% \label{fig:subfig:catsIII}}
+% \end{figure}
+% \endgroup
+% In the examples of current section the \verb|\Flabel| and \verb|\Fref|
+% commands for cross referencing of the subfloats were used
+% (you may see these commands in the code examples). As described in section~\ref{ssec:Flabel}
+% these commands allow to create combined references which consist of the parent and current
+% labels separated by predefined punctuation sign.
+%
+%\begin{small}
+%
+% \medskip
+% \emph{Some explanation}.
+% Previous versions of documentation used the |listofformat=| key; the necessary option
+% was defined by |\DeclareCaptionListOfFormat| command:
+% \begin{Quote}%
+% |\DeclareCaptionListOfFormat{comma-separated}{#1,\,#2}|
+% \end{Quote}%
+% This format is used, in particular, by |\subref| command. But usage of this key changes output
+% of subfloat numbers in the lists (list of tables and list of figures etc.),
+% which could be undesirable (see numbers of subfigures \subref{subfig:wII}
+% and \subref{subfig:bII} in the List of Figures).
+% \medskip
+%
+%\end{small}
+%
+% See examples with |subfloatrow| environments in sample files
+% \file{frsample03.tex}, \file{frsample05.tex}; and also
+% \file{frsample10.tex}--\file{frsample12.tex} where aligned contents
+% of beside subfloats are used in different layouts.
+%
+%\endgroup
+%
+% \clearpage
+% \subsection{The \package{longtable} Package}\label{ssec:longtable}
+% Tested with version v4.11, dated 2004/02/01.%^^A
+% \footnote{The English documentation is
+% \href{ftp://ctan.tug.org/tex-archive/macros/latex/required/tools/longtable.dvi}%^^A
+% {\meta{texmf folder}\texttt{/doc/latex/tools/longtable.dvi}}.}
+%
+% Please note that almost all settings in the |\floatsetup|'s
+% argument do not work inside |longtable| environments, except
+% settings for caption width (see below) and plain horizontal alignment in the |margins=| key.
+% So, during building of |\floatsetup| settings for the tables, be aware
+% that you may use only something like |style=plaintop| or |style=Plaintop|,
+% to place caption above, also you may use options of the
+% |margins=| key, which use only spacing commands, like defined ones
+% in this package (page~\pageref{setup:margins}), and do not forget settings for |\LTleft| and |\LTright|
+% margins, which set the alignment of |longtable| environment.
+%
+% Please see the \package{caption} documentation about how to build necessary caption layout
+% when |longtable| environment is used.
+%
+% \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
+% 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
+% width of table. For settings of the caption width the special key was created.
+%
+% \DescribeMacro{LTcapwidth}\label{setup:LTcapwidth}%^^A
+% \FRmpar{Caption width equals to longtable's}{FAD:LTcapwidth}
+% This key could have any value, like |5cm| or |\hsize|. The key value will be sent to
+% the |\LTcapwidth| command. If you'll write
+% |LTcapwidth=table| or |LTcapwidth=contents|, you will get
+% the caption width equal to the width of table. In this case settings for
+% width of caption use information from the |aux|-file, so you'll get
+% correct caption width at the time when the width of full table \emph{become
+% stable}.
+%
+% The |longtable| environment uses layout settings from
+% |\floatsetup[table]| and |\floatsetup[longtable]| contents.
+% 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
+% \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
+% \package{longtable}'s naming space.} package \package{fr-longtable}
+% with additions is added, which allows creation of special head for the last
+% page of longtable environment and special foot for pages before last
+% (the table~\ref{tab:floatlayouts} uses these commands for head and foot settings).
+%
+%^^A% \DescribeMacro{\LTlastpage}
+% \DescribeMacro{\endlasthead}
+% \DescribeMacro{\endprelastfoot}
+% 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
+% territory they get defined if they are still unknown, i.e.~the main,
+% \package{longtable}, package didn't defined them.
+% The syntax is also analogous as for commands |\endhead|, |\endfirsthead| etc.
+% (See examples and additional explanation in the sample file
+% \texttt{sample-longtable.tex} file.)\medskip
+%
+%^^A% \DescribeMacro{\floatfoot}
+% \emph{Note}. Please remember that the footnote stuff inside |longtable| works like in main
+% 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|,
+% in current version has emulation mode inside |longtable|, and needs stuff,
+% similar to |\noalign{\floatfoot{...}}|. Since the default font definition for explications (|\floatfoot|)
+% is also set to |\footnotesize|, like for footnotes, you may put footnotes-emulations at the end of table,
+% inside this explication block, using |\mpfootnotemark| commands inside table contents and at the
+% beginning of each text of footnote.
+%
+% The fragments from the longtable \ref{tab:floatlayouts} on the page
+% \pageref{tab:floatlayouts},
+% which describes float styles, will be the resum\'e for
+% this section.
+%\begin{Quote}
+%\begin{preamble}%
+%|\DeclareCaptionLabelFormat{continued}{\rightline|
+%| {\bothIfFirst{#1}{ }#2 (\emph{Continued})}}|
+%|\DeclareCaptionLabelFormat{finished}{\rightline|
+%| {\bothIfFirst{#1}{ }#2 (\emph{Finished})}}|
+%\end{preamble}%
+% |\def\LongtableHead{|
+% | \hfil\thead{Style} &|
+% | \hfil\thead{\cmd{\floatsetup} keys} &|
+% | \hfil\thead{Description}|
+% | }|
+% |\begin{longtable}{|\meta{tabular preamble}|}|
+% |\caption{Float layout styles}\label{tab:floatlayouts}\\|
+% |\hline|
+% |\LongtableHead|
+% |\\ \hline|
+% |\endfirsthead|\% \emph{end of standard box of \package{longtable} package}
+% |\captionsetup{labelformat=continued}|\% %^^A
+% \smash{\em\tabular[t]l caption settings for continued page\endtabular}
+% |\caption[]{}\\|
+% |\hline|
+% |\LongtableHead|
+% |\\ \hline|
+% |\endhead|\% \emph{end of standard box of \package{longtable} package}
+% |\captionsetup{labelformat=finished}|\% %^^A
+% \smash{\em\tabular[t]l caption settings for finished page\endtabular}
+% |\caption[]{}\\|
+% |\hline|
+% |\LongtableHead|
+% |\\ \hline|
+% |\endlasthead|\% \emph{end of box offered by \package{fr-longtable} package}
+% |\hline|
+% |\multicolumn{3}{r@{}}{\topstrut\emph{Continued on next page}}|
+% |\endfoot|\% \emph{end of standard box of \package{longtable} package}
+% |\hline|
+% |\multicolumn{3}{r@{}}{\topstrut\emph{Finished on next page}}|
+% |\endprelastfoot|\% \emph{end of box offered by \package{fr-longtable} package}
+% |\endlastfoot|\% \emph{end of standard box of \package{longtable} package}
+% \meta{Contents of long table}
+% \meta{Contents of long table}|\mpfootnotemark[1]|
+% \meta{Contents of long table}
+% |\\ \hline|
+% |\noalign{\floatfoot*{|\meta{Text of foot material}|.\vspace{-3pt}\par|\nopagebreak
+% |\rule{1in}{.4pt}\vspace{2pt}|\% \emph{Emulation of footnote rule}\nopagebreak
+% |\parindent15pt|\nopagebreak
+% \% \emph{emulations of footnote texts}\nopagebreak
+% |\mpfootnotemark[1]|\meta{Text of footnote}\nopagebreak
+% |...|\nopagebreak
+% |}}|\nopagebreak
+% |\end{longtable}|
+%\end{Quote}%
+% \emph{Note}. The usage of settings |\captionsetup{labelformat=continued}|
+% inside |longtable| environment was documented in the \package{caption} package 3.1.
+%
+% \clearpage
+% \subsection{The \package{wrapfig} Package}\label{ssec:wrapfig}
+% \captionsetup[wrapfigure]{name=Fig.,labelformat=thinspace}
+% \begingroup
+% \def\FBaskip{-12pt}
+% \floatsetup[figure]{style=ruled,relatedcapstyle=yes,
+% footposition=caption}
+% \begin{wrapfigure}[10]{O}{40mm}
+%^^A \ffigbox[40mm]
+% {\caption{Wrapped plain figure (\package{wrapfig} package)}%
+% \floatfoot{Plain figure fails with package version
+% 3.3}\label{fig:wrapfig:WcatI}}
+% {\unitlength1.095\unitlength
+% \input{TheCat.picture}}
+% \end{wrapfigure}
+%
+% Tested with version 3.3 dated 1999/10/12 (style from \package{ltxmisc}
+% bundle) and 3.6 dated 2003/01/31 (the separate \LaTeX\ package)%^^A
+% \footnote{The English documentation is
+% \href{ftp://ctan.tug.org/tex-archive/macros/latex/contrib/wrapfig/wrapfig.pdf}%^^A
+% {\meta{texmf folder}\texttt{/doc/latex/wrapfig/wrapfig.pdf}}.}.
+%
+% Options for environment (text borrowed from package comments):
+% \begin{Quote}
+% |\begin{wrapfigure}%|\nopagebreak
+% \strut\quad\oarg{number}\marg{placement}|%|\nopagebreak
+% \strut\quad\oarg{overhang}\marg{width of figure}
+% |...|\nopagebreak
+% |\end{wrapfigure}|
+% \end{Quote}
+%
+% {\slshape\meta{Placement} is one of |r|, |l|, |i|,
+% |o|, |R|, |L|, |I|, |O|, for
+% right, left, inside, outside. Lowercase letters set unfloated
+% positioning, uppercase---floated variant. The figure sticks into
+% the margin by \meta{overhang}, if given, or by the length
+% |\wrapoverhang|, which is normally zero. The \meta{number} of
+% wrapped text lines is normally calculated from the height of the
+% figure, but may be specified manually, e.g.}
+%
+% \begin{Quote}
+% |\begin{wrapfigure}[10]{r}[34pt]{5cm}|\nopagebreak
+% \meta{figure}\nopagebreak
+% |\end{wrapfigure}|
+% \end{Quote}
+% \endgroup
+%
+% \begingroup\sloppy
+% \def\FBaskip{-12pt}
+% \floatsetup[figure]{style=BOXED,frameset={\fboxsep12pt}}
+% \par\begin{wrapfigure}{o}{0mm}
+% \ffigbox[\FBwidth]
+% {\caption{Wrapped figure in \cs{ffigbox} (\package{wrapfig} package)}%
+% \label{fig:wrapfig:WcatII}}
+% {{\setlength\unitlength{36mm/48}%^^A
+% \input{Cat.picture}}}
+% \end{wrapfigure}
+%
+% \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.
+%
+% \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 |wrap...| environments.
+%
+% \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}%
+% |\DeclareCaptionLabelFormat{thinspace}{\bothIfFirst{#1}{\,}#2}|
+% \end{preamble}%
+% |\captionsetup[wrapfigure]{name=Fig.,labelformat=thinspace}|
+% \end{Quote}
+% In preamble was added special format |thinspace| with smallest space between
+% `Fig.' and number which we use in the |wrapfig| settings.
+% See also \package{caption} documentation.
+%
+% \emph{Special settings}.
+%
+% You may create settings for |wrap...| environment, there are
+% following priorities.
+% (Please note that you can also create special caption settings with
+% |\captionsetup| stuff.):
+% \begin{itemize}\itemsep0pt
+% \item %
+% if exists |\floatsetup[wrap|\meta{captype}|]{...}|
+% \package{floatrow} uses these settings---they are the ``strongest''
+% settings; if they are absent---uses settings of next item;
+%^^A \end{itemize}
+%
+%^^A \begin{itemize}
+% \item
+% if exists |\floatsetup[wrapfloat]{...}|
+% \package{floatrow} uses these settings---these settings are ``stronger''
+% than next ones; if they are absent---settings of current
+% float\\[\medskipamount]
+% |\floatsetup[|\meta{captype}|]{...}|\,;\\[\medskipamount]
+% if they are absent---uses
+% |\floatsetup{...}| settings, package settings inside |\usepackage| command or default settings of
+% package (page~\pageref{sec:default}).
+% \end{itemize}
+%
+%
+% \emph{Founded limitations}.\startNotes\nopagebreak
+%
+% \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 |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.
+%
+% \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
+% \floatsetup[figure]{style=WSHADOWBOX,captionskip=8pt}
+% \captionsetup[floatingfigure]{name=Fig.,labelformat=thinspace}
+% \subsection{The \package{floatflt} package}\label{ssec:floatflt}
+% \begin{floatingfigure}[v]{50mm}\def\FBaskip{-2.5pt}
+% \ffigbox[50mm]
+% {\setlength\unitlength{\hsize/72}%^^A%
+% \input{BlackDog.picture}}
+% {\caption{\hyphenpenalty-100\pretolerance-1%
+% 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}. \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
+% macro abbreviation, like |\ffigbox|). For these wrapped floats
+% the |\usepackage| option can be used or |\floatsetup{...}| settings
+% and main settings for float types like
+% |\floatsetup[figure]{...}| settings.
+%
+% The next limitations could not tied with \package{floatrow} package.
+%
+% \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.
+%
+% \Note The |floatflt| environments could fail with list
+% environments.
+%
+% \Note The special caption settings were created for figure label.
+% \begin{Quote}
+% |\captionsetup[floatingfigure]{name=Fig.,labelformat=thinspace}|
+% \end{Quote}
+%
+% %^^A\newpage
+%
+% \captionsetup[parpic]{name=Fig.,labelformat=thinspace}
+% \floatsetup[figure]{style=Doublebox,captionskip=10pt}\abovecaptionskip10pt
+% \subsection{The \package{picins} Package}\label{ssec:picins}
+% \noindent Tested with version v\,3.0 dated 1999/10/12.\nopagebreak
+%
+% This package produces pictures inside paragraphs. This package
+% supports usage of captions with command |\piccaption|. It also allows
+% the \package{caption} package settings.
+%
+% \piccaption[Wrapped figure in \cmd{\floatbox} and \cmd{\parpic}]{Wrap\-ped
+% figure (\cmd{\parpic})\label{fig:parpic:BcatI}}%^^A
+% \parpic[l]{\hsize0pt
+% \ffigbox[\FBwidth ]{}{%^^A
+% {\setlength\unitlength{24mm/72}%^^A
+% \input{TheDog.picture}}
+% }%^^A
+% }
+% The \cmd{\parpic} macro usually allows usage of |\floatbox| macro
+% inside of its mandatory argument. In this case the |\floatsetup{...}|
+% settings and main settings of for float types like |\floatsetup[figure]{...}|
+% settings are used (but, unfortunately, they are the only here).
+%
+% \emph{Founded limitations}.\startNotes\nopagebreak
+%
+% \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}
+% \ffigbox[\hsize]
+% {\setlength\unitlength{16mm/72}%^^A
+% \input{TheDog.picture}}
+% {\caption{Wrapped figure (\cmd{\parpic})}\label{fig:parpic:BcatII}}}
+%
+% \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.
+%
+% \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).
+%
+% \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}\openup-.5pt
+%\begin{preamble}
+%|\usepackage{ifthen}|
+%|\newcommand\oparpic{\ifthenelse{\isodd{\value{page}}}%|
+%| {\def\next{\parpic[r]}}{\def\next{\parpic[l]}}\next}|
+%\end{preamble}
+%\end{Quote}
+%
+% \Note The special caption settings were created for figure label
+% \begin{Quote}
+% |\captionsetup[parpic]{name=Fig.,labelformat=thinspace}|
+% \end{Quote}
+% If you use |\piccaption| command these settings are switched on.
+% In the first picture in this section the |\piccaption| co-operates
+% with the |\ffigbox| command:
+% \begin{Quote}
+% |\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}\openup-.5pt
+% |\parpic[r]{\hsize36mm\def\FBaskip{6pt}|
+% | \ffigbox[\hsize]{}{...\caption{...}\label{fig:parpic:BcatII}}|
+% \end{Quote}
+% \enlargethispage{\baselineskip}
+% You may see that label of the second figure was printed as `Figure'~number.
+%
+% \endgroup
+%
+% \subsection{The \package{rotating} Package and \texttt{sideways\ldots}
+% Environment}\label{ssec:rotating}
+% Tested with version v2.13 dated Sep. 1992.
+%
+% There is example (figure~\ref{fig:rot:ii}) with rotated float, using
+% |sidewaysfigure|.
+%\begin{Quote}
+%\begin{preamble}
+% |\usepackage[figuresright]{rotating}|
+%|\|\FRkey[sec]{floatsetup}|[rotfigure]{|%^^A
+% \FRkey{style}|=WSHADOWBOX}|
+%\end{preamble}
+%|\begin{sidewaysfigure}\emptyfloatpage|
+%|\|\FRkey[FB]{ffigbox}|[\|\FRkey[FB]{FBwidth}|]|
+%| {...}|
+%| {\caption{Figure ...}%|
+%| \label{...}}|
+%|\end{sidewaysfigure}%|
+%\end{Quote}
+% \floatsetup[rotfigure]{style=WSHADOWBOX}
+% \begin{sidewaysfigure}\emptyfloatpage
+% \ffigbox[\FBwidth] {\includegraphics[width=4in]{pslearn}}
+% {\caption{Figure inside \texttt{sidewaysfigure} environment}%
+% \label{fig:rot:ii}}
+% \end{sidewaysfigure}%
+%
+% \emph{Special settings}.\nopagebreak
+%
+% You may create special settings for all rotated floats, which use
+% |sideways...| environment (see page \pageref{stsetorder}).
+%
+% For one-column rotated float
+% \RestoreSpaces
+% \begin{itemize}
+% \item %
+% if exists |\floatsetup[rot|\meta{captype}|]{...}|
+% package uses these settings---the ``strongest'' settings; if they are
+% absent---uses settings from next item, the same for each item of the list;
+% \item
+% |\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}
+%
+% For two-column or wide rotated float (starred environment)
+% \begin{itemize}
+% \item %
+% if exists |\floatsetup[widerot|\meta{captype}|]{...}|
+% package uses these settings---the ``strongest'' settings;
+% 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 %
+% |\floatsetup[rotfloat]{...}|;
+% \item %
+% |\floatsetup|\marg{captype}|{...}|;
+% \item %
+% 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}
+% \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
+% may define\label{buildFBBOX:def}
+% \begin{Quote}
+% \begin{preamble}
+% |\usepackage[figuresright]{rotating}|
+% |\newlengthtocommand\setlength\rottextwidth{\textwidth}|
+% \end{preamble}
+% |\begin{sidewaysfigure}|\nopagebreak
+% |\|\FRkey[FB]{buildFBBOX}|{\vbox to\rottextwidth\bgroup\vss}{\egroup}|
+% |\|\FRkey[FB]{ffigbox}|{}{|\meta{contents of first figure}|}|\nopagebreak
+% |\end{sidewaysfigure}|
+% |\begin{sidewaysfigure}|
+% |\buildFBBOX{\vbox to\rottextwidth\bgroup}{\vss\egroup}|
+% |\ffigbox{}{|\meta{contents of second figure}|}|\nopagebreak
+% |\end{sidewaysfigure}|
+% \end{Quote}
+%
+% \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 |sideways...| floats on even and odd pages
+% will be rotated by 90$^\circ$ counterclockwise.
+%
+%
+% \subsubsection{Commands instead of lengths}
+%\begingroup
+% \sloppy
+% 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\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 \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, 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
+% \label{setup:newlengthtocommand}%^^A
+% \label{setup:renewlengthtocommand}%^^A
+%\begin{Quote}%
+% \cmd{\newlengthtocommand} \quad or
+% \cmd{\renewlengthtocommand}
+%\end{Quote}%
+% which are placed just before standard \LaTeX{} commands like \cmd{\setlength} or
+% \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}%
+% changed to
+%\begin{Quote}%
+%\begin{preamble}
+%|\usepackage{calc}|
+%\end{preamble}
+% |\newlengthtocommand\setlength|
+% |\fulltextwidth{\textwidth+\marginparsep+\marginparwidth}|\quad.
+%\end{Quote}%
+% Please note than the usage of calculation inside |\setlength| command (and its analogs)
+% can be used only with the \package{calc} package.
+%
+%\endgroup
+%
+% \subsection{The \package{lscape} Package and \texttt{landscape}
+% Environment}\label{ssec:lscape}
+% Tested with version v3.0a dated 1999/02/16.\nopagebreak
+%
+%\ifx\landscape\undefined\else
+% \ifx\landscape\relax\else
+% The example with usage of |landscape| environment from
+% \package{lscape} package on the page~\pageref{fig:rotrow:WcatI}, figures
+% \ref{fig:rotrow:WcatI}--\ref{fig:rotrow:FcatI}):
+% \RestoreSpaces
+%\begin{Quote}
+%\begin{preamble}
+%|\|\FRkey{DeclareFloatVCode}|{lowthickrule}{\kern2pt\rule{\hsize}{.8pt}}|
+%|\|\FRkey[sec]{floatsetup}|[figure]{|\FRkey{style}|=ruled,|\FRkey{rowprecode}|=thickrule,|
+%| |\FRkey{rowpostcode}|=lowthickrule,|\FRkey{capposition}|=TOP}|
+%\end{preamble}
+%|\begin{landscape}|
+%|\begin{figure}\|\FRkey{emptyfloatpage}
+%|...|
+%\end{Quote}
+% |\floatsetup| code sets |ruled| float style,
+% then settings for above and below material are redefined:
+% |rowprecode=| and |rowpostcode=| keys define thick
+% rules but for floatrow as a~whole (the `individual' |\hrule|'s
+% above/below float boxes are absent).
+%\fi\fi
+%
+% The |landscape| environment creates a new page. It would be
+% useful~\nobreak\qquad1)\nobreak\enskip for rotation of multipage rotated float (in this case
+% it is better to put this float in a separate file, and to start from necessary page,
+% in this case you need the
+% \package{afterpage} package and its |\afterpage| command)~\nobreak\qquad2)\nobreak\enskip and also
+% to start new section of document, e.g., appendix. (In current
+% document the |landscape| environment was placed just before appendix)
+%
+%^^A \emph{Founded limitations}.\nopagebreak
+%^^A The tested version works incorrect (does not rotates contents)
+%^^A with \package{hypcap} package.
+%
+% \subsection{The \package{listings} Package}\label{ssec:listings}
+% Tested with version v1.3 dated 2004/09/07.\nopagebreak
+%
+% This package has its own strong layout mechanism for creation of floating
+% algorithms itself. The usage of |\lstset| command (see package documentation) and \package{caption}
+% package settings gives you necessary result\footnote{Please note and read
+% \package{caption} documentation: the co-operation of \package{caption}3.x and
+% \package{listings} succeeds with version of last one not older than 1.2.}
+% for algorithm type of float.
+%
+% 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. 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})
+% and v1.7 (\package{hypcap}).
+%
+% The \package{floatrow} package tries not to expand its code to |\caption| stuff.
+% 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
+% \LaTeX's command |\@xfloat|, adding definition of font size to |\normalsize|
+% which appears after \package{floatrow} settings.
+% The version 0.2d of \package{floatrow} tried to fix it but this was incorrect
+% and destroyed interaction between \package{hyperref} and \package{caption} packages.
+% In the version 0.3b the code was changed to restore this interaction\footnote
+% {By suggestions of A.\,Sommerfeldt.} with hope that it will work.
+% The default baseline 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.
+% \textit{Please look first in the \package{caption}
+% package documentation to know the newest rules}.
+%
+% The known incompatibilities of \package{floatrow} package itself:
+% \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
+% \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}).
+%
+% \addtocontents{toc}{\string\pagebreak[3]}
+% \section{Limitations}
+%
+% There are known limitations, which were found during usage of
+% \package{floatrow}:
+% \begin{itemize}
+% %^^A \item %
+% %^^A Limitations for boxed and ruled styles in beside floats: be
+% %^^A careful with usage of \emph{alone} minipage environment in object
+% %^^A or caption in |\floatbox| macro. Since the object and caption are
+% %^^A created in minipage environment already, the added |minipage|
+% %^^A could get wrong layout (vertical alignment). But, as I
+% %^^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|\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
+% demands common height of objects and/or captions in float row,
+% you'll get correct result after second or more runs. If you change
+% contents of float which change its height you must run \LaTeX{}
+% twice or more times too.
+%
+% Beside captions and other facing layout will appears correctly only
+% after second \LaTeX's run (sometimes you need to run more times).
+% \item %
+% The \package{caption} and
+% \package{floatrow} packages do not support an~optional argument \emph{after}
+% caption ``title'' (the \package{float} package's stuff). You may use |\floatfoot|
+% macro after main caption argument.
+% \item %
+% Do not use the |\FBwidth| option for complex float contents (which you
+% could not put inside one |\hbox|). But you are allowed to use |\vspace|
+% macro at the very end/very beginning of object contents for fine
+% vertical tuning for them.
+% \item %
+% The |floatrow| environment allows spaces (and even empty
+% lines, which sometimes create better and correct result!) between
+% |\floatbox|'es, but if you add some code between them you
+% must put
+% |%| after this command.
+% \item %
+% This is a~common rule---be careful with spaces at the end of lines
+% inside float contents (see \texttt{CTAN:/info/epslatex.ps} for more
+% explanations).
+%
+% When you build plain floating environments the better way is to separate
+% |\caption| and object contents (and also
+% |\floatfoot|/|\footnotetext| contents) each by empty lines or (if
+% not empty lines) end each part (and arguments of mentioned commands)
+% by percent sign. In this case you'll avoid unwanted spaces/lines at
+% the end of contents of each part, or wrong justification of float
+% components.
+% %^^A \item %
+% %^^A Usage of fancy boxes |shadowbox| and |wshadowbox|
+% %^^A could get wrong layout with beside captions.
+% \item If you use |tabularx| or |tabular*| environments
+% inside |\floatbox| stuff (or any other) with
+% |\hsize| command inside \meta{width} argument, you must repeat the
+% |\hsize| argument in \meta{width} argument of |\floatbox| macro.
+%
+% If you want to set width of |tabularx| or |tabular*|
+% environments (or any other) like |.8\hsize| (or |1.2\hsize|) and
+% these environments placed inside any |\floatbox| macro, load
+% |.8\hsize| in \meta{width} argument of |\floatbox| macro, and in
+% \meta{width} argument of |tabularx| or |tabular*| load only
+% |\hsize| macro (see also sample file \file{frsample03.tex}).
+%
+% In other cases (especially in fancy layout or settings) be careful
+% with usage of |\hsize| as \meta{width} option of |\floatbox|.
+% \end{itemize}
+%
+% \addtocontents{toc}{\string\nopagebreak}
+%
+% \section{Acknowledgements}
+% Thanks for Steven Cochran and Axel Sommerfeldt for all their advices
+% and spirit. Special thanks for Axel for the patient answering, code, finding and showing
+% bugs, and help in \emph{all} my questions and problems in \package{floatrow} package.
+% All good text pieces in this documentation are filled with Axel's advices and great help.
+%
+% \medskip\noindent
+% Thanks for \emph{all} involuntary (\La)\TeX{} teachers, who teaches
+% me with their program code all these years.
+%
+% \medskip\noindent
+% Thanks for Keith Reckdahl, author of \file{epslatex}, which
+% documentation, at last, encouraged me to create the CTAN version of
+% this package.
+%
+% \medskip\noindent
+% \emph{Thanks for \emph{all} authors of second edition of \LaTeX{}
+% Companion for this book.}
+%
+%\ifx\landscape\undefined\else\begingroup
+% \ifx\landscape\relax\else
+% \clearfloatsetup{figure}
+% \floatsetup[figure]{style=ruled,rowprecode=thickrule,
+% rowpostcode=lowthickrule,capposition=TOP,margins=hangtoheads,
+% footposition=caption}
+% \renewlengthtocommand\setlength\Mylen{\textwidth}
+%
+% \begin{landscape}
+%
+% \begin{figure}\emptyfloatpage\label{example:ruledcapposTOP}
+%
+% \begin{floatrow}[4]%^^A
+% \ffigbox[][][t]
+% {{\input{TheCat.picture}}%^^A
+% \footnotetext[1]{This
+% picture was created with \cmd{\qbezier}
+% macros}}%
+% {\caption[Figure in the row~I, top of object box]%
+% {Figure in the row~I, top of object box\protect\mpfootnotemark}%
+% \label{fig:rotrow:WcatI}}%
+%
+% \floatbox{figure}[2\FBwidth][][b]
+% {\caption{Figure in the row~II, bottom of object box}%
+% \label{fig:rotrow:BcatI}%
+% \floatfoot{There are all \cmd{\qbezier} macros and only
+% two vertical lines}}%
+% {\input{BlackCat.picture}\footnote[2]%
+% {Look at funny footnotemark!}}%
+%
+% \ffigbox[\FBwidth]
+% {{\unitlength2.5\unitlength
+% \input{Cat.picture}}}
+% {\caption{Figure in the row~III, center of object box}%
+% \label{fig:rotrow:mouseI}\floatfoot{The image of cat}}%
+%
+% \floatbox{figure}[\Xhsize][\Mylen]
+% {\caption{Figure in the row~IV}\label{fig:rotrow:FcatI}}
+% {\Resizebox\hsize\vsize{35}{136}{\input{BlackCat2.picture}}}
+% \end{floatrow}
+%
+% \end{figure}
+%
+% \end{landscape}
+%\endgroup\fi\fi
+%
+% \clearpage
+% \suppressfloats[t]
+% \section{Appendix}
+% \FRorisubsection{Miscellaneous}
+% \FRorisubsubsection{Usage of Captionsetup and Thisfloatsetup
+% Inside Floatbox Stuff}\label{ssec:app:besidestart}
+% Example of figures in row (figures~\ref{FB:FR:lfig} and
+% \ref{FB:FR:fig}). There predefined float commands
+% |\fcapsideleft| and |\fcapsideright| with were used additional |\captionsetup| and
+% |\thisfloatsetup| settings:
+%\begin{Quote}\openup-.5pt
+%\begin{preamble}
+%|\|\FRkey[FB]{newfloatcommand}|{fcapsideleft}{figure}[{\|\FRkey[FB]{capbeside}
+%| \captionsetup[capbesidefigure]{labelsep=newline,|
+%| justification=raggedleft}%|
+%| \|\FRkey{thisfloatsetup}|{|\FRkey{capbesideposition}|=left}}][\|\FRkey[FB]{FBwidth}|]|
+%|\newfloatcommand{fcapsideright}{figure}[{\capbeside|
+%| \captionsetup[capbesidefigure]{labelsep=newline,|
+%| justification=raggedright}%|
+%| \thisfloatsetup{capbesideposition=right}}][\FBwidth]|
+%|\|\FRkey[sec]{floatsetup}|[figure]|
+%| {|\FRkey{style}|=Boxed,|%^^A
+% \FRkey{objectset}|=centering,|%^^A
+% \FRkey{margins}|=centering,|
+%| |\FRkey{capposition}|=beside,|%^^A
+% \FRkey{capbesidesep}|=cicero,|%^^A
+% \FRkey{capbesideframe}|=yes}|
+%\end{preamble}
+% |\begin{figure}|
+% |\begin{|\FRkey[sec]{floatrow}|}|
+% | \fcapsideleft{...}{...}|
+% | \fcapsideright[\hsize]{...}{...}|
+% |\end{floatrow}|
+% |\end{figure}|
+%\end{Quote}
+%
+% \clearfloatsetup{figure}
+% \floatsetup[figure]
+% {style=Boxed,capposition=beside,objectset=centering,
+% capbesidesep=cicero,margins=centering,
+% capbesideframe=yes}
+%
+% \begin{figure}[H]
+% \begin{floatrow}
+% \fcapsideleft
+% {\unitlength1.44\unitlength
+% \input{Cat.picture}}
+% {\caption[Float in the row with beside caption (graphic box has width of its contents)]{%^^A
+% Float box (\cmd{\fcapsideleft})
+% width of graphics}\label{FB:FR:lfig}}%
+% \fcapsideright[\hsize]
+% {\setlength\unitlength{\hsize/61}%^^A
+% \input{BlackCat.picture}}%
+% {\caption[Float in the row with beside caption (occupies rest space)]{%^^A
+% Float box (\cmd{\fcapsideright})
+% width of rest float row space}\label{FB:FR:fig}}%
+% \end{floatrow}%
+% \end{figure}%
+%
+% Since the key \FRkey{heightadjust}|=object| is used in
+% the |Boxed| float style, both objects have the same
+% height.\RestoreSpaces
+%
+% \subsubsection{Predefined Beside Caption Width}
+% This example includes the |\useFCwidth|\label{setup:useFCwidth} command which switches on usage
+% of previously defined caption width with |capbesidewidth=| key
+% (in command |\thisfloatsetup| before |\floatbox| macro) or, if you
+% didn't set caption width (like in current example), macro calculates natural
+% width of caption contents (see figure~\ref{fig:Idog:w}). In this case
+% the object---caption box is aligned
+% using alignment settings from |margins| key (its options are defined
+% by |\setfloatmargins| or |\floatcapbesidemargins| macro). In this
+% documentation they are centered (see page~\pageref{setup:DeclareMarginSet}).
+%\begin{Quote}
+%\begin{preamble}
+%|\floatsetup[figure]{|\FRkey{style}|=plain}|
+%\end{preamble}
+%|\begin{figure}|
+%|\floatbox[\capbeside\useFCwidth]{figure}[\|\FRkey[FB]{FBwidth}|]|
+%| ...|
+%|\end{figure}|
+%\end{Quote}
+% \clearfloatsetup{figure}
+% \floatsetup[figure]{style=plain}
+%
+% \begin{figure}[H]
+% \floatbox[\capbeside\useFCwidth]{figure}[\FBwidth]
+% {\caption[One-line beside
+% caption, width equals to caption's text]{}\label{fig:Idog:w}}
+% {{\setlength\unitlength{{3.6cm}/60}%^^A
+% \input{BlackDog.picture}}}
+% \end{figure}%
+%
+% Please note that inside
+% \cmd{\floatbox} you may not set predefined width of caption, but remember
+% that you \emph{must} define width of caption in case of usage of plain
+% floating environment.\RestoreSpaces
+%
+% \subsubsection{Predefined Beside Caption Width with
+% The Rest Space for Object}\label{FAD:RestSpaceforObject}
+% The figure \ref{fig:capbeside:trick} uses the following float style:%^^A
+%\begin{Quote}
+%\begin{preamble}
+%|\|\FRkey{renewlengthtocommand}|\settowidth\Mylen{\captionfont\captionlabelfont|
+%| \figurename\ \thefigure}|
+%\end{preamble}
+%|\floatsetup[figure]|
+%| {|\FRkey{style}|=Boxed,|\FRkey{capposition}|=beside,|\FRkey{objectset}|=centering,|
+%| |\FRkey{capbesidewidth}|=\Mylen,|%^^A
+% \FRkey{capbesideposition}|=left,|\FRkey{capbesidesep}|=cicero,|
+%| |\FRkey{margins}|=centering,|\FRkey{capbesideframe}|=yes,|
+%| |\FRkey{floatwidth}|=sidefil}|
+%\end{Quote}
+% The \verb|\Mylen| dimension was defined as width of caption label.
+%
+% \clearfloatsetup{figure}
+% \floatsetup[figure]
+% {style=Boxed,capposition=beside,objectset=centering,
+% capbesidewidth=\Mylen,capbesideposition=left,capbesidesep=cicero,
+% margins=centering,capbesideframe=yes,floatwidth=sidefil}
+% \renewlengthtocommand\settowidth\Mylen{\captionfont\captionlabelfont
+% \figurename\ \thefigure}
+%
+%\begingroup
+% \begin{figure}[H]
+%^^A \captionsetup[capbesidefigure]{format=default,labelsep=none}
+% \fcapside
+% {\unitlength1.44\unitlength
+% \input{Horse.picture}}
+% {\caption[The box of beside caption has width of caption contents (here: caption label)]{}\label{fig:capbeside:trick}}
+% \end{figure}%
+%\endgroup
+%
+% \subsubsection{Width Definition for Beside
+% Caption---Object Box in Float Row}
+% The float row with predefined width boxes ``beside object---caption''
+% (figures~\ref{floatrow:pre:figI} and
+% \ref{floatrow:pre:figII}): just define before \verb|\fcapside|
+% command something like:
+%\begin{Quote}
+%\begin{preamble}
+%|\floatsetup[figure]|
+%| {|\FRkey{style}|=plain,|\FRkey{objectset}|=centering,|\FRkey{margins}|=centering,|
+%| |\FRkey{capbesideposition}|=left,|\FRkey{capbesidesep}|=enskip,|
+%| |\FRkey{floatwidth}|=sidefil}|
+%\end{preamble}
+% |\begin{figure}\|\FRkey{useFCwidth}\nopagebreak
+% | \begin{floatrow}|
+% | \setlength\hsize{1.2\hsize}%|
+% | \|\FRkey[FB]{fcapside}|...|
+% | \setlength\hsize\|\FRkey[FB]{Xhsize}
+% | \fcapside...|
+% | \end{floatrow}|\nopagebreak
+% |\end{figure}|
+%\end{Quote}
+% (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
+%^^A% as \verb|\relax|---in this case the width of caption equals to the
+%^^A% width of their contents.
+%
+%\begingroup
+% \clearfloatsetup{figure}
+% \floatsetup[figure]
+% {style=plain,capposition=beside,objectset=centering,
+% capbesideposition=left,capbesidesep=enskip,
+% margins=centering,capbesideframe=yes,floatwidth=sidefil}
+% \begin{figure}[H]\useFCwidth
+%^^A \captionsetup[capbesidefigure]{format=default,labelsep=none}
+% \begin{floatrow}
+% \setlength\hsize{1.16\hsize}%
+% \fcapside
+% {\setlength\unitlength{\hsize/100}%^^A
+% \input{Bear.picture}}
+% {\caption[Left figure with beside caption in the row]{%^^A
+% }\label{floatrow:pre:figI}}
+% \setlength\hsize\Xhsize
+% \fcapside
+% {\setlength\unitlength{\hsize/44}%^^A
+% \input{Doll.picture}}
+% {\caption[Right figure with beside caption in the row]{%^^A
+% }\label{floatrow:pre:figII}}
+% \end{floatrow}%
+% \end{figure}%
+%\endgroup
+%
+% \subsubsection{Caption Above/Below and Caption Beside at
+% The Float Row}\label{FAD:CapBesideandBelow}
+% The float row with object and beside caption combined with object
+% and caption below (figures~\ref{flrow:mix:figI} and
+% \ref{flrow:mix:figII}). There we ought to use
+% \verb|\TopFloatBoxes|, \verb|\CenterFloatBoxes|, or
+% |\BottomFloatBoxes| commands to get correct layout---since the
+% \meta{height} argument in both float boxes has the same value,
+% you may use each of these three commands. Unfortunately you must set
+% the height of such beside floats by hand (the \FRkey{heightadjust}|=| key works here incorrectly).
+% The lines which create the described float row:
+% \RestoreSpaces
+%\begin{Quote}
+%\begin{preamble}
+%|\floatsetup[figure]|\nopagebreak
+%| {|\FRkey{style}|=Boxed,|\FRkey{frameset}|={\fboxsep4pt},|\FRkey{captionskip}|=5pt,|
+%| |\FRkey{capposition}|=bottom,|\FRkey{objectset}|=centering,|\FRkey{capbesidewidth}|=sidefil,|
+%| |\FRkey{capbesideposition}|=inside,|\FRkey{capbesidesep}|=enskip,|\FRkey{margins}|=centering,|
+%| |\FRkey{capbesideframe}|=yes}|
+%\end{preamble}
+%|\begin{figure}\|\FRkey[FB]{CenterFloatBoxes}
+%|\begin{floatrow}|
+%|\hsize1.098\hsize|
+%| \fcapside[\FBwidth][3.6cm]|
+%| ...|
+%| |
+%| \ffigbox[\|\FRkey[FB]{Xhsize}|][3.6cm]|
+%| ...|
+%|\end{floatrow}%|
+%|\end{figure}|
+%\end{Quote}
+%
+% \clearfloatsetup{figure}
+% \floatsetup[figure]
+% {style=Boxed,frameset={\fboxsep6pt},captionskip=5pt,capposition=bottom,
+% objectset=centering,capbesidewidth=sidefil,capbesideposition=inside,
+% capbesidesep=enskip,margins=centering,capbesideframe=yes}
+%
+% \begin{figure}[H]\CenterFloatBoxes
+% \begin{floatrow}
+% \hsize1.098\hsize \fcapside[\FBwidth][3.6cm]
+% {\unitlength1.44\unitlength
+% \input{Cat.picture}}
+% {\caption[Float box \cmd{\fcapside} in float row beside \cmd{\ffigbox}]{%^^A
+% Float box (\cmd{\fcapside}) with beside caption in float row
+% width float with caption below}\label{flrow:mix:figI}}%
+%
+% \ffigbox[\Xhsize][3.6cm]
+% {\unitlength1.44\unitlength
+% \input{BlackDog.picture}}
+% {\caption{%^^A
+% Float box (\cmd{\ffigbox}) width of rest float row
+% space} \label{flrow:mix:figII}}
+% \end{floatrow}%
+% \end{figure}
+%
+% The code for ``mirror'' layout (but not identical) looks like:
+% \allowprelistbreaks[-4]\RestoreSpaces
+%\begin{Quote}
+%|\begin{figure}\CenterFloatBoxes|\nopagebreak
+%|\begin{floatrow}|\nopagebreak
+%| \ffigbox[1.28\|\FRkey[FB]{FBwidth}|][3.6cm]|
+%| ...|
+%| |
+%| \hsize\Xhsize|
+%| \fcapside[\FBwidth][3.6cm]|
+%| ...|
+%|\end{floatrow}%|\nopagebreak
+%|\end{figure}|
+%\end{Quote}
+%
+% \begin{figure}[H]\CenterFloatBoxes
+% \begin{floatrow}
+% \ffigbox[1.28\FBwidth][3.6cm]
+% {\unitlength1.44\unitlength
+% \input{BlackDog.picture}}
+% {\caption{%^^A
+% Float box (\cmd{\ffigbox})
+% in mirror float row}\label{floatrow:mirrmix:figII}}%
+% \hsize\Xhsize
+%
+% \fcapside[\FBwidth][3.6cm]
+% {\unitlength1.44\unitlength
+% \input{Cat.picture}}
+% {\caption[Float box (\cmd{\fcapside}) in mirror float row]{%^^A
+% Float box with beside caption (\cmd{\fcapside}) in mirror float row
+% width float with caption below}\label{floatrow:mirrmix:figI}}
+% \end{floatrow}%
+% \end{figure}
+%
+% \subsubsection{Photo-Album-Like Layouts}
+% Another example of miscellaneous float row
+% (figures~\mbox{\ref{flrow:three:figIII}--\ref{floatrow:threemirr:figII}},
+% and, ``mirror layout''---^^A
+% \mbox{\ref{floatrow:threemirr:figI}--\ref{floatrow:threemirr:figIII}}) were
+% created by following lines:
+%\begin{Quote}
+%|\begin{figure}\|\FRkey[FB]{BottomFloatBoxes}
+%|\begin{floatrow}|
+%|\hsize1.2\hsize \|\FRkey[FB]{ffigbox}|[][6.7cm]|
+%| ...|
+%| |
+%|\vbox to6.7cm|
+%| {\|\FRkey[sec]{floatsetup}|[figure]{|\FRkey{floatrowsep}|=none}\|\FRkey{killfloatstyle}
+%| \ffigbox[.8\hsize]|
+%| ...|
+%| \vss|
+%| \ffigbox[.8\hsize]|
+%| ...%|
+%| }%|
+%|\end{floatrow}%|
+%|\end{figure}|
+%\end{Quote}
+%
+% \floatsetup[figure]{heightadjust=none}
+% \begin{figure}[H]\BottomFloatBoxes
+% \begin{floatrow}
+% \hsize1.2\hsize
+% \ffigbox[][6.7cm]
+% {\setlength\unitlength{\hsize/58}%^^A
+% \input{Mouse.picture}}%
+% {\caption[Photo-album-like layout: left float]{Float
+% box in photo-album-like layout:
+% alone in left column}\label{flrow:three:figIII}}%
+%
+% \vbox to6.7cm {\floatsetup[figure]{floatrowsep=none}\killfloatstyle
+% \ffigbox[.8\hsize]
+% {\input{TheCat.picture}}
+% {\caption[Photo-album-like layout: upper right float]{%^^A
+% Float box in photo-album-like layout: upper float in right
+% column}\label{floatrow:three:figI}} \vss \ffigbox[.8\hsize]
+% {\input{BlackDog.picture}}%
+% {\caption[Photo-album-like layout: lower right float]{%^^A
+% Lower float in right column}%
+% \label{floatrow:threemirr:figII}}}%
+% \end{floatrow}%
+% \end{figure}
+%
+% The ``mirror'' layout created by following commands:
+% \RestoreSpaces
+%\begin{Quote}
+%|\begin{figure}[t]\|\FRkey[FB]{TopFloatBoxes}
+%|\begin{floatrow}|
+%|\vtop to7cm|
+%| {\floatsetup[figure]{floatrowsep=none}\killfloatstyle|
+%| \ffigbox[.8\hsize]|
+%| ...|
+%| \vss|
+%| \ffigbox[.8\hsize]|
+%| ...%|
+%| \vskip0pt}\floatrowsep|
+%| |
+%|\ffigbox[\Xhsize][7cm-11pt]|
+%| ...|
+%|\end{floatrow}%|
+%|\end{figure}|
+%\end{Quote}
+% Note that in second example with ``mirror'' layout the
+% trick with \meta{height} definition was used---caption of float in the left
+% column is one line longer, so for the right column height of float
+% was reduced by 11pt---|\baselineskip| for |\small|
+% size
+% (here the \package{calc} package possibilities were used). The |\vtop| of
+% left column ends with |\vskip0pt|, otherwise you get fanny unwanted
+% layout.
+%
+% \begin{figure}\TopFloatBoxes
+% \begin{floatrow}
+% \vtop to7cm {\floatsetup[figure]{floatrowsep=none}\killfloatstyle
+% \ffigbox[.8\hsize]
+% {\input{TheCat.picture}}
+% {\caption[Photo-album-like layout, mirror: upper left float]{%^^A
+% Float box in photo-album-like layout: upper float in left
+% column}\label{floatrow:threemirr:figI}} \vss \ffigbox[.8\hsize]
+% {\input{BlackDog.picture}}%
+% {\caption[Photo-album-like layout, mirror: lower left float]{%^^A
+% Float box in photo-album-like layout: lower float in the left column}%
+% \label{floatrow:three:figII}}\vskip0pt}\floatrowsep
+%
+% \ffigbox[\Xhsize][7cm-11pt]
+% {\setlength\unitlength{\hsize/58}%^^A
+% \input{Mouse.picture}}%
+% {\caption[Photo-album-like layout, mirror: right float]{%^^A
+% Float box in photo-album-like layout: alone in right
+% column}\label{floatrow:threemirr:figIII}}
+% \end{floatrow}%
+% \end{figure}
+%
+% In both examples for two floats one above another was cancelled
+% |\floatrowsep| code inside |\vbox|/|\vtop|.
+%
+% Note that these examples are rather specific---you may try with
+% other combinations (e.g. more-``columned''), but maybe these layouts
+% need more care with usage of |\Xhsize| and/or |\floatrowsep|.
+%
+% I suppose that last two examples could conflict with ``motto'' of
+% this package---to reduce and remove layout code from document; but
+% photo-album-like layout is rather rare in technical literature (It
+% isn't?).\RestoreSpaces
+%
+% \subsubsection{Photo-Album-Like Layouts: Common Height for Beside Photos}
+% \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 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
+% examples, which show settings, not covered by current document (some
+% of them are bit exotic for technical literature). The samples have no aim to
+% create perfect layout, but to show easy modification for all float
+% types, and show goals and drawbacks in combinations of chosen layout
+% with different float types and their contents.
+%
+% \emph{Note}. All miscellaneous float styles (i.e.\ almost
+% all sample files) need at least two \LaTeX{} runs.
+%
+% The list of samples:
+%
+% \begin{Options}{\OptionLabel}
+% \item[frsample01.tex] all possible combinations of predefined
+% \package{floatrow} styles for captions above/below floats with foot
+% material; the plain floating environments and
+% |floatrow|s were created, also the boxes with
+% alone objects and alone captions;
+% \item[frsample02.tex] all possible combinations of predefined
+% \package{floatrow} styles for beside captions and all possible
+% caption positions;
+% \item[frsample03.tex] various tests with tables;
+% \item[frsample04.tex] sample with fancy layout with usage of
+% beside captions;
+% \item[frsample05.tex] one-column facing layout; miscellaneous
+% caption settings.
+% \item[frsample06.tex] examples of attempts to get common height for
+% rectangular graphics (photos) in the filled row of floats or parts
+% of floats. Also the examples of usage of the |\Xhsize| command
+% in the mixed-level rows were added.
+% \end{Options}
+%
+% 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}
+% \item[frsample10.tex] one column non-facing layout; figures
+% printed in |plain| style; text boxes use miscellaneous
+% ruled style;
+% \item[frsample11.tex] one-column non-facing layout with elements
+% hanged on left margin (e.g. wide floats, in starred environments,
+% like |figure*|);
+% \item[frsample12.tex] two-column layout with attempts of
+% colored float styles.
+% \end{Options}
+%
+% {\sloppy Also added sample file \file{sample-longtable.tex} was added
+% which uses \emph{beta-temp} package-patch \package{fr-longtable}
+% with defined commands |\endlasthead| and |\endprelastfoot| which
+% defines captions for continued and last pages of long table in three
+% possible ways.\par}
+%
+%\vfil
+%
+% \begin{small}
+% \subsection{Obsolete Commands}\label{sec:changed}
+% \FRorisubsubsection{The User Interface---New Floats [\package{float}]}
+% \label{sec:floatborrowI}
+%
+% \DescribeMacro{\newfloat}\slshape
+% The most important command in \package{float}
+% is the |\newfloat| command\footnote{It doubles the
+% \cmd{\DeclareNewFloatType} command.}. It is patterned on
+% |\newtheorem|. The |\newfloat| command takes three required and
+% one optional argument; it is of the form
+% \begin{Quote}
+% \hspace*{\MacroIndent}|\newfloat{|\meta{type}|}{|^^A
+% \meta{placement}|}{|\meta{ext}|}[|\meta{within}{\tt]}
+% \end{Quote}
+% \begin{itemize}\advance\itemsep2ptplus2pt
+% \item \marg{type} is the `type' of the new class of floats, like
+% |program| or |algorithm|. After the appropriate
+% |\newfloat|, commands like |\begin{program}| or |\end{algorithm*}|
+% will be available.
+% \item \marg{placement} gives the default placement
+% parameters for this class of floats. The placement parameters are
+% the same as in standard \LaTeX, i.e., |t|, |b|,
+% |p| and |h| for `top', `bottom', `page' and `here',
+% respectively.
+% \item \marg{ext} When \LaTeX\ writes the captions to an auxiliary file
+% for the list of figures (or whatever), it'll use the job name
+% followed by \marg{ext} as a file name.
+% \item \oarg{within} Finally, the optional
+% argument \meta{within} determines whether floats of this class will
+% be numbered within some sectional unit of the document. For example,
+% if \oarg{within}${}={}$|chapter|, the floats will be numbered
+% within chapters. (In standard \LaTeX, this happens with figures and
+% tables in the \cls{report} and \cls{book} document styles.) As an
+% example, Program~\ref{prog1.1} was created by a command sequence
+% similar to that shown in the following
+% Example\footnote{Settings for Example float
+% environment were created by \cs{}\FRkey{DeclareNewFloatType} macro stuff.}.
+% \end{itemize}
+%\begin{em}
+% \emph{Floatrow note.}
+% Also a |\newfloat*| pair was created which works similar to
+% |\restylefloat*| command (see below).\pagebreak[2]
+%\end{em}
+% \begin{Example}[H]
+% \begin{Quote}\openup-.5pt
+% |\floatstyle{ruled}|
+% |\newfloat{Program}{tbp}{lop}[section]|\pagebreak[3]
+% \dots\ loads o' stuff \dots
+% |\begin{Program}|
+% |\begin{verbatim}|
+% \dots\ program text \dots
+% |\end{verbatim}|
+% |\caption{|\dots\ caption \dots|}|
+% |\end{Program}|
+% \end{Quote}
+% \caption{This is another silly floating Example. Except
+% that this one doesn't actually float
+% because it uses the {\tt[H]} optional parameter
+% to appear \textbf{Here}. (Gotcha.)}\label{exa1.1}
+% \end{Example}\pagebreak[3]
+% \begin{Program}
+%\begin{verbatim}
+%#include <stdio.h>
+%
+%
+%int main(int argc, char **argv) {
+% int i;
+% for (i = 0; i < argc; ++i)
+% printf("argv[%d] = %s\n", i, argv[i]);
+% return 0;
+%}
+%\end{verbatim}
+% \caption{The first program. This hasn't got anything to do with the
+% package but is included as an example.
+% Note the \texttt{ruled} float style.%
+% \label{prog1.1}}
+% \end{Program}
+%
+% \DescribeMacro{\floatstyle}
+% The |\floatstyle| command sets a default
+% float style. This float style will be used for all the floats that
+% are subsequently defined using |\newfloat|, until another
+% |\floatstyle| command appears. The |\floatstyle| command takes one
+% argument, the name of a float style. For instance,
+% |\floatstyle{ruled}|. Specifying a string that does not name a valid
+% float style is an error.
+%
+% \DescribeMacro{\floatname}
+% The |\floatname| command lets you define
+% the \emph{float name} that \LaTeX\ uses in the caption of a float,
+% i.e., `Figure' for a figure and so on. For example,
+% |\floatname{program}{Program}|. The |\newfloat| command sets the
+% float name to its argument \meta{type} if no other name has been
+% specified before.
+%
+% \DescribeMacro{\floatplacement}
+% The |\floatplacement| command resets
+% the default placement specifier of a class of floats. E.g.,
+% |\floatplacement{figure}{tp}|.
+%
+% \DescribeMacro{\restylefloat}\nopagebreak
+% The |\restylefloat| command is necessary
+% to change styles for the standard float types
+% |figure| and |table|. Since these aren't usually
+% defined via |\newfloat|, they don't have a style associated with
+% them. Thus you have to say, for example,
+% \begin{Quote}
+% \hspace*{\MacroIndent}|\floatstyle{ruled}|
+% \hspace*{\MacroIndent}|\restylefloat{table}|
+% \end{Quote}
+% to have tables come out |ruled|. The command also lets you
+% change style for floats that you define via |\newfloat|, although
+% this is, typographically speaking, not a good idea. See
+% table~\ref{table1} for an example\footnote{The \package{float} package
+% created special caption style with bold label for |boxed|
+% style. Please note that |plain| and |boxed| float
+% styles have not any special settings in \package{caption} 3.x package.
+% To emulate |boxed| style from \package{float} documentation there
+% were: cleared all special caption settings for tables, and restored
+% default colon separator after label.}. There is a |\restylefloat*|
+% command which will restyle an existing float type but will keep the
+% new float style from taking over the |\caption| command. In this
+% case the user is responsible for handling their own captions.
+% \DeleteShortVerb{\|}
+% %^^AEmulation of float's documentation settings
+% %^^A\floatstyle{boxed}
+% %^^A\restylefloat{table}
+% \begingroup
+% \clearcaptionsetup{table}
+% \captionsetup{labelsep=default,labelfont=bf}
+% \floatsetup[table]{style=boxed}
+% \begin{table}[h] \def\B#1{$\displaystyle{n\choose#1}$}
+% \begin{center} \begin{tabular}{c|cccccccc}
+% $n$&\B0&\B1&\B2&\B3&\B4&\B5&\B6&\B7\\ \hline
+% 0 & 1\\
+% 1 & 1&1\\
+% 2 & 1&2&1\\
+% 3 & 1&3&3&1\\
+% 4 & 1&4&6&4&1\\
+% 5 & 1&5&10&10&5&1\\
+% 6 & 1&6&15&20&15&6&1\\
+% 7 & 1&7&21&35&35&21&7&1
+% \end{tabular} \end{center}
+% \caption{Pascal's triangle. This is a re-styled \LaTeX\
+% \texttt{table}.\label{table1}}
+% \end{table}
+% \endgroup
+% \MakeShortVerb{\|}
+%
+% \end{small}\pagebreak[2]
+%
+%\clearpage
+%\RestoreSpaces
+% \begingroup\extrarowheight1.75pt\small\openup-.5pt\tabcolsep.5\tabcolsep\LTpre=0ptplus3pt\LTpost\LTpre
+% \subsubsection{The \texorpdfstring{\cs{floatsetup}}{floatsetup} Keys, Renamed or Deleted After Version 0.1b}
+% \parindent0pt
+% \begin{longtable}{@{\extracolsep{-.3ptplus1fill}}|
+% >{\rightskip0ptplus1fil}p{.35\hsize}|
+% >{\rightskip0ptplus1fil}p{.6\hsize}|}
+% \multicolumn{2}{c}{Removed or changed commands}
+% \\\hline
+% \thead{Command}
+% &
+% \thead{Changed to}
+% \\\hline
+% \endhead
+% \extrarowheight0pt\begin{tabular}[t]{@{}l}
+% |\renewfloatstyle|,\\
+% |\newfloatstyle|,\\
+% |\definefloatstyle|
+% \end{tabular}&
+% |\DeclareFloatStyle|---this command uses |\floatsetup|
+% mechanism
+% \\\hline
+% |\restorerestylefloat| & removed
+% \\\hline
+% |\captionskip| & command, not a skip
+% \\\hline
+% |\floatfootskip| & command, not a skip
+% \\\hline
+% \end{longtable}
+%
+% \vskip1pt
+% \begin{longtable}{@{\extracolsep{-.3ptplus1fill}}|
+% >{\rightskip0ptplus1fil}p{.35\hsize}|
+% >{\rightskip0ptplus1fil}p{.6\hsize}|}
+% \multicolumn{2}{c}{Commands, replaced by keys}
+% \\\hline
+% \thead{Deleted Command}
+% &
+% \thead{Key Analog}
+% \\\hline
+% \endhead
+% |\floatobjectset| &
+% in current version \emph{do not use for definition of object
+% settings}, use key
+% |objectset=|
+% \\\hline
+% |\alignsidecaption|&
+% |capbesideframe=yes|
+% \\\hline
+% \extrarowheight0pt\begin{tabular}[t]{@{}l}
+% |\capbesidecenter|,\\ |\capbesidetop|,\\
+% |\capbesidebottom|,\\
+% |\capbesideinside|,\\
+% |\capbesideoutside|,\\
+% |\capbesideleft|,\\ |\capbesideright|
+% \end{tabular}&
+% \extrarowheight0pt\begin{tabular}[t]{@{}l}
+% |capbesideposition=center|\\
+% |capbesideposition=top|\\
+% |capbesideposition=bottom|\\
+% |capbesideposition=inside|\\
+% |capbesideposition=outside|\\
+% |capbesideposition=left|\\
+% |capbesideposition=right|
+% \end{tabular}
+% \\\hline
+% \extrarowheight0pt\begin{tabular}[t]{@{}l}
+% |\floatrowsep|,\\ |\floatcapbesidesep|
+% \end{tabular}&
+% in current version \emph{do not use for definition of separation
+% material}, use keys\par
+% \extrarowheight0pt\begin{tabular}[t]{@{}l}
+% |floatrowsep=|\\
+% |capbesidesep=|
+% \end{tabular}
+% \\\hline
+% \extrarowheight0pt\begin{tabular}[t]{@{}l}
+% |\FBcenter|\vphantom{g},\\ |\FBleft|\vphantom{g},\\
+% |\FBright|,\\ |\FBnormal|
+% \end{tabular}&
+% \extrarowheight0pt\begin{tabular}[t]{@{}l}
+% |margins=center|,\\
+% |margins=raggedright|,\\
+% |margins=raggedleft|, \\
+% |margins=center|,\\
+% \end{tabular}
+% \\\hline
+% |\setfloatstyle| & |style=|
+% \\\hline
+% \extrarowheight0pt\begin{tabular}[t]{@{}l}
+% |\Setframe|\\
+% |\setframe|
+% \end{tabular}
+% & use |framestyle=| and |frameset=| keys
+% \\\hline
+% \cmd{\setrules}
+% & use |precode=|, |postcode=|, |midcode=| (also
+% |rowpercode| and |rowpostcode|) keys
+% \\\hline
+% \end{longtable}
+%
+% \RestoreSpaces\vskip1pt\pagebreak[3]
+%
+% \begin{longtable}{@{\extracolsep{-.3ptplus1fill}}|
+% >{\rightskip0ptplus1fil}p{.35\hsize}|
+% >{\rightskip0ptplus1fil}p{.6\hsize}|}
+% \multicolumn{2}{c}{Renamed keys}
+% \\\hline
+% \thead{Key}
+% &
+% \thead{Changed to}
+% \\\hline
+% \endhead
+% |attachedcapstyle=| & |relatedcapstyle=|
+% \\\hline
+% |floatstyle=| & |style=|
+% \\\hline
+% |floatfont=| & |font=|
+% \\\hline
+% |putcaptionbeside=| & |capposition=beside|
+% \\\hline
+% |besidecapposition=| & |capbesideposition=|
+% \\\hline
+% |besidecapwidth=| & |capbesidewidth=|
+% \\\hline
+% |besidecapframe=| & |capbesideframe=|
+% \\\hline
+% |floatmarginsset=| & |margins=|
+% \\\hline
+% |besidecapsep=| & |capbesidesep=|
+% \\\hline
+% |Precode=| & |rowprecode=|
+% \\\hline
+% |Postcode=| & |rowpostcode=|
+% \\\hline
+% |framereduce=| & |framefit=|
+% \\\hline
+% \extrarowheight0pt\begin{tabular}[t]{@{}l@{}}
+% \vphantom{(}options of |objectset=|\\\quad
+% and |margins=|\\
+% |flushleft|,\\ |flushright|,\\|center|
+% \end{tabular} &
+% \extrarowheight0pt\begin{tabular}[t]{@{}l@{}}
+% \vphantom{(}options of |objectset=| and |margins=|
+% (for unification\\\quad with analogous key options in \package{caption}
+% package)\\
+% |raggedright|,\\ |raggedleft|,\\ |centering|
+% \end{tabular}
+% \\\hline
+% \end{longtable}
+% \endgroup
+% \MakeShortVerb{\|}%
+%
+% \StopEventually{}
+% \hfuzz70pt\clearpage
+%
+% \section{The Code}
+%
+% \changes{v0.2b}{2007/09/14}{The \cmd{\changes} of \texttt{v0.1}\meta{x} versions revised
+% and many of them transformed into document text.}
+%
+% \FRorisubsection{The Prelude}
+%
+% The first step is to check whether \package{float} and
+% \package{rotfloat} are loaded or not. If yes, there go error messages;
+% if you run through this error message \package{floatrow} loading will be skipped.
+% \begin{macrocode}
+%<*floatrow>
+\@ifundefined{float@caption}{%
+ \@ifundefined{rotfloat@float}{}%
+ {\PackageError{floatrow}{Do not use rotfloat package with floatrow.\MessageBreak
+ The latter will be skipped}{}%
+ \@namedef{opt@floatrow.sty}{}\endinput}}%
+ {\PackageError{floatrow}{Do not use float package with floatrow.\MessageBreak
+ The latter will be skipped}{}%
+ \@namedef{opt@floatrow.sty}{}\endinput}
+% \end{macrocode}
+%
+% The next lines emulate already loaded \package{float} and \package{rotfloat}
+% packages.
+%
+% If in preamble, after loading of \package{floatrow} package is used
+% |\usepackage| with \package{float} package (the \package{float} package
+% doesn't support any options), the defining of command |\ver@float.sty|,
+% which emulates loading of package will do not any harm.
+%
+% Unfortunately the \package{rotfloat} package allows to transfer options of
+% \package{rotating} package in the case of appearance
+% of both packages in one |\usepackage| line. Thus, if someone loads
+% options in \package{rotating}---\package{rotfloat} line, he will get
+% `option clash' error. A followed help gives a simple solution of such
+% problem---moving options in |\documentclass| line and make them global.
+% I hope, that moving option in this way will do not harm
+% to document, but now you aware of ``non-necessity'' of loading
+% of \package{rotfloat} package.
+% \begin{macrocode}
+\@namedef{ver@float.sty}{2001/11/08 v1.3d (excerpt)
+ Float enhancements (AL)}
+\@namedef{ver@rotfloat.sty}{2004/01/04 v1.2 (excerpt)
+ Combining float+rotating package (AS)}
+% \end{macrocode}
+%
+% The \package{floatrow} package uses \package{keyval}'s mechanism widely.
+% \begin{macrocode}
+\RequirePackage{keyval}
+% \end{macrocode}
+%
+% Here goes request for \file{caption3} file, core part of \package{caption}
+% package (the \package{floatrow} package uses macros, similar to \package{caption}'s
+% in ``append'' mode). There is not any compatibility for versions,
+% older than \texttt{3.0q}, so in the case of older version you'll get error message
+% and skip loading of \package{floatrow}.
+% \changes{v0.2a}{2007/08/24}{Added check and error message for version older 3.0q}
+% \begin{macrocode}
+\RequirePackage{caption3}
+\@ifpackagelater{caption3}{2007/04/11 v3.0q}{}{\PackageError
+ {floatrow}{For a successful cooperation we need at least\MessageBreak
+ version `2007/04/11 v3.0q' of package caption,\MessageBreak
+ but only version\MessageBreak
+ `\csname ver@caption.\@pkgextension\endcsname'\MessageBreak
+ is available}\@eha\endinput}
+% \end{macrocode}
+% This provide command loaded for compatibility with 3.0q.
+% \begin{macrocode}
+\providecommand*\caption@fnum[1]{%
+ \caption@lfmt{\@nameuse{#1name}}{\@nameuse{the#1}}}
+% \end{macrocode}
+%
+% Here is list of macronames of \package{caption} package which are used inside \package{floatrow}.
+%\begin{Options}{/caption@setfloattype}%
+%\item[\cmd{\l@addto@macro}]local version of |\g@addto@macro|;
+%\item[\cmd{|\@nameundef}]opposite to |\@namedef| used, for example, in |\clearfloatsetup|;%^^A
+%\\[1ex]%^^A
+%\item[\cmd{\caption@fnum}]defined with |\providecommand| few lines above (for compatibility with caption 3.0q);
+%\item[\cmd{\caption@ifinlist}]widely used in key--val options (|\floatsetup| stuff);
+%\item[\cmd{\caption@setkeys}]custom definition for |\setkeys| macro: to refer to current package
+% (error messages for |\floatsetup| stuff);
+%\item[\cmd{\caption@setoptions}]used in current package to switch on necessary float settings
+% (|\floatsetup| stuff);
+%^^A\item[\cmd{\caption@set@bool}]used for boolean key options (|\floatsetup| stuff);
+%\item[\cmd{\caption@@make}]used in |\floatfoot@box| macro for building of float foots
+% (|\floatfoot| command);
+%\item[\cmd{\caption@@@make}]used during calculation of caption height or width, also used for creation of
+% caption labels only (|\floatbox| stuff);
+%\item[\cmd{\caption@lfmt}]obsolete, used together inside |\caption@@@make| macro;
+%\item[\cmd{\caption@setposition}]follows caption position options of current package
+% (|capposition| key of |\floatsetup| stuff; |\captop|, |\CAPTOP|,
+% |\capbeside| and |\nocapbeside| commands);
+%\item[\cmd{\caption@settype}]obsolete variant of |\caption@setoptions|, used for cooperation with
+% caption 3.0q;
+%\item[\cmd{\caption@setfloattype}]used in current package to switch on necessary float settings
+% (together with |\caption@setoptions|);
+%\item[\cmd{\caption@setstyle*}]used in current package to switch on necessary float settings
+% (together with |\caption@setoptions|)
+%\item[\cmd{\caption@setfont}]used for font definition in font option of current package and for definition
+% of float foot font (|font| key of |\floatsetup| stuff);%^^A
+%\\[1ex]%^^A
+%\item[\cmd{\DeclareCaptionOption}]declares |\floatfoot| font option;
+%\item[\cmd{\DeclareCaptionFont}]$\to$|\DeclareFloatFont|;
+%\item[\cmd{\DeclareCaptionJustification}]$\to$|\DeclareObjectSet|;
+%\item[\cmd{\DeclareCaptionLabelSeparator}]$\to$|\DeclareFloatSeparators|;%^^A
+%\\[1ex]%^^A
+%\item[\cmd{\caption@sty@}\meta{float style}]used in current package to switch on necessary float settings
+% (together with |\caption@setoptions|);
+%\item[\cmd{\caption@fnt}\meta{font option}]used in |\flrow@setfont|
+% (|\caption@setfont| analog);
+%\item[\cmd{\caption@hj@}\meta{justification}]used in |\flrow@FBoAlign| \\
+% (|\caption@setjustification| analog);
+%\item[\cmd{\caption@lsep@}\meta{separator}]used in |\flrow@setFRsep| \\
+% (|\caption@setlabelseparator| analog);
+%\end{Options}%
+%
+% \subsection{Storing of \LaTeX's Internal Macros}
+%
+% \begin{macro}{\FR@flboxreset}
+% First goes storage of \LaTeX's macros |\@floatboxreset| and |\@makecaption|
+% from bundle of float definitions.
+% \begin{macrocode}
+\@ifdefinable\FR@flboxreset{\let\FR@flboxreset\@floatboxreset}
+% \end{macrocode}
+% Please note, since the \package{caption3} package already loaded in this point, here are stored the
+% \package{caption}'s definition.
+% \begin{macrocode}
+\@ifdefinable\FR@makecaption{\let\FR@makecaption\@makecaption}
+% \end{macrocode}
+% \end{macro}
+%
+% \emph{Floatrow note}. The next macro and few of others were renamed to change prefix ``|@FB|''
+% to ``|flrow@|'' to avoid possible conflict with French babel package.
+%
+% \begin{macro}{\flrow@caption}
+% Here is repeated standard \LaTeX's code of |\caption| command
+% (it is used below for caption width counting).
+% \begin{macrocode}
+\newcommand\flrow@caption{%
+ \ifx\@captype\@undefined
+ \@latex@error{\noexpand\caption outside float}\@ehd
+ \expandafter\@gobble
+ \else
+ \refstepcounter\@captype
+ \expandafter\@firstofone
+ \fi
+ {\@dblarg{\@caption\@captype}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\float@caption}
+% This emulation code which says to some other packages
+% that \package{float} package's mechanism is used for building of floats.
+% \begin{macrocode}
+\@ifdefinable\float@caption{\let\float@caption\@caption}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Borrowed Code (with original comment) from The \package{float}
+% Package}
+%
+% From this point starts \package{float} package's core code (version 1.3).
+% The necessary explanation of macro code also borrowed from \package{float}
+% package and typed with slanted font. Some macros
+% were skipped or edited (see \emph{floatrow notes}).
+%
+% \begin{sl}\medskip
+% In \LaTeX, floats are assigned `type numbers' that are powers of~$2$.
+% Since there are only two classes of floats, their type numbers are
+% hardwired into the document styles. We need to be somewhat more flexible,
+% and thus we initialize a counter to hold the next type number to be
+% assigned. This counter will be incremented appropriately later.
+% \begin{macrocode}
+\newcounter{float@type}
+\@ifundefined{c@figure}%
+ {\setcounter{float@type}{1}}%
+ {\setcounter{float@type}{4}}
+% \end{macrocode}
+%
+% \begin{macro}{\floatstyle}
+% The |\floatstyle| command puts its argument into the
+% |\float@style| macro as the name of the new float style.
+% But if the argument doesn't denote a float style, an error message
+% is output instead: Each float style \meta{style} has a corresponding
+% command |\fs@|\meta{style} that contains the appropriate declarations.
+% If the control sequence |\fs@|\meta{arg} (which goes with the
+% argument \meta{arg} to |\floatstyle|) is undefined, i.e.,
+% equals |\relax| under |\ifx|, then the float style \meta{arg}
+% is unknown, and we call |\float@error{|\meta{arg}|}| for the
+% error message.
+%
+% \begin{macro}{\flrow@package}
+% \begin{macro}{\flrow@error}
+% {\em [floatrow] The \package{float}'s error message
+% (the command \cmd{\float@error}\meta{arg}) changed to
+% \cmd{\flrow@error}\meta{arg}. It is similar to \package{caption}'s one.
+% (First goes the command of name of package.)}
+% \begin{macrocode}
+\newcommand\flrow@package{floatrow}
+\newcommand*\flrow@error[1]{\PackageError\flrow@package{#1}\flrow@eh}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\flrow@eh}
+% {\em[floatrow] This is the analog of \package{caption} package's help |\caption@eh|.}
+% \begin{macrocode}
+\newcommand*\flrow@eh{%
+ If you do not understand this error, please take look\MessageBreak
+ at `floatrow' and `caption' package documentations.\MessageBreak
+ \@ehc}
+% \end{macrocode}
+% \end{macro}
+% Here is the \package{floatrow} package version of \package{float}'s command.
+% \begin{macrocode}
+\newcommand\floatstyle[1]{\@ifundefined{flrow@sty@#1}%
+ {\flrow@error{Unknown float style `#1'}}{\edef\float@style{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\floatname}
+% \begin{macro}{\floatplacement}
+% The next two commands are even simpler. \LaTeX\ says that
+% |\fps@|\meta{float} contains the default placement specifier for
+% the class of floats \meta{float}. |\|\meta{float}|name| expands
+% to the name that appears in \meta{float} captions, e.g., `Figure'.
+% (This is our own definition.)
+% \changes{v0.1p}{2007/06/24}{The \cmd{\fname@}\meta{floatname} changed to
+% \cs{}\meta{floatname}|name| macros redefined locally (AS).}
+% \begin{macrocode}
+\newcommand\floatname[2]{\@namedef{#1name}{#2}}
+\newcommand\floatplacement[2]{\@namedef{fps@#1}{#2}}
+% \end{macrocode}
+% {\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
+% {\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.}
+% \end{macro}
+% \end{macro}
+%
+% \begin{em}
+% [floatrow]
+% The definitions of |\restylefloat| stuff were changed.
+%
+% \begin{macro}{\if@@FS}
+% The first goes flag command which, if |true|, stops repetition of float
+% layout settings.
+% \begin{macrocode}
+\newif\if@@FS
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FR@redefs}
+% This macro makes temporary redefinitions of |\@makecaption|
+% and |\@floatboxreset| macros.
+% \begin{macrocode}
+\newcommand\FR@redefs{%
+% \@ifundefined{sf@end@float}{}{\let\end@float\sf@end@float}%
+% \@ifundefined{sf@end@dblfloat}{}{\let\end@dblfloat\sf@end@dblfloat}%
+ \@ifundefined{HyOrg@float@makebox}{}%
+ {\let\float@makebox\HyOrg@float@makebox}%
+ \ifx\flrow@makecaption\@makecaption\relax
+ \else
+ \let\FR@makecaption\@makecaption
+ \let\@makecaption\flrow@makecaption
+ \fi
+ \let\@floatboxreset\flrow@flboxreset}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flrow@makecaption}
+% The definition of this caption borrowed mechanism of saving caption contents
+% into special box (like in \package{float} package).
+% The |\FBc@wd| parameter here is used as flag for wrapped floats (for the
+% case when natural width of float calculated).
+% Since |\caption| stuff uses
+% |\linewidth| parameter, here it is redefined to predefined |\hsize|.
+% \changes{v0.2b}{2007/10/28}{Added check and error message for second caption outside
+% \cmd{\floatbox} command.}
+% \begin{macrocode}
+\newcommand\flrow@makecaption[2]{\ifnum\floatbox@depth=\z@
+ \ifvoid\@floatcapt
+ \else\flrow@error{Caption(s) lost}\fi\fi
+ \global\setbox\@floatcapt
+ \vbox\bgroup\@parboxrestore
+ \reset@font
+ \if@@FS
+ \ifdim\FBc@wd>\z@
+ \hsize\FBc@wd
+ \else
+ \adj@dim\hsize+\FBo@wadj=\hsize
+ \fi
+ \fi
+ \linewidth\hsize
+% \end{macrocode}
+% The check of |\hsize| for |\sloppy| paragraph settings.
+% \changes{v0.2b}{2007/10/28}{The \cmd{\sloppy} settings added for short lines.}
+% \begin{macrocode}
+ \ifdim\hsize<70mm\sloppy\fi
+ \normalsize
+ \abovecaptionskip\z@\belowcaptionskip\z@
+ \FR@makecaption{#1}{#2}\egroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\killfloatstyle}
+% The third one allows to define again float layout style: it could be
+% necessary in mixed float rows. These redefinitions make local changes.
+% \begin{macrocode}
+\newcommand\killfloatstyle{\FBbuildtrue\if@@FS\hsize\FB@wd\fi\@@FSfalse}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flrow@capsetup}
+% This only additional definition which is used with \package{caption} package
+% version 3.0. With this macro you may (re)define some layout settings
+% for captions.
+% \begin{macrocode}
+\newcommand\flrow@capsetup{}
+% \end{macrocode}
+% \end{macro}
+%
+% Definitions of default float style.
+% \begin{macrocode}
+\edef\float@style{plain}
+% \end{macrocode}
+%
+% \begin{macro}{\FBB@wd}
+% This command stores absolute width for |\floatbox|'s |\hsize|.
+% The usage of |\FBB@wd| as command needs definitions like
+% |\edef\FBB@wd{\the\textwidth}| to get right layout in float rows
+% with |BOXED|-like layouts. The |\relax| meaning is used as flag.
+% \begin{macrocode}
+\@ifdefinable\FBB@wd{\let\FBB@wd\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\restylefloat}
+% The redefined \package{float} package macros to follow |\floatsetup| stuff.
+%
+% This macro starts to work at the beginning of document, so it has tests
+% for loaded packages.
+% \begin{macrocode}
+\newcommand\restylefloat{%
+ \@ifstar{\flrow@restylefloat{no}\flrow@restyle}%
+ {\flrow@restylefloat{yes}\flrow@restyle}}
+\newcommand\flrow@restylefloat[3]{%
+ \edef\FR@tmp{\noexpand
+ \floatsetup[#3]{style=\float@style,relatedcapstyle=#1}}\FR@tmp
+ #2{#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flrow@restyle}
+% The command which redefines macros for building of floats in the way similar to \package{float}
+% package after |\restylefloat| macro. That means that contents of floating environment analyzed,
+% caption and foot material are saved in special box registers, then full float box is built
+% accordingly to current settings.
+% \begin{macrocode}
+\newcommand\flrow@restyle[1]{%
+% \end{macrocode}
+% One-column floating environment.
+% \begin{macrocode}
+ \@namedef{#1}{\killfloatstyle\def\@captype{#1}\FR@redefs
+ \flrow@setlist{{#1}}%
+ \textwidth\columnwidth\edef\FBB@wd{\the\columnwidth}%
+ \FRifFBOX\@@setframe\relax\@@FStrue\@float{#1}}%
+% \end{macrocode}
+% Two-column (wide) floating environment.
+% \begin{macrocode}
+ \@namedef{#1*}{\killfloatstyle\def\@captype{#1}\FR@redefs
+% \end{macrocode}
+% The |\@captype| definition needed here and in next definitions to get
+% correct and non-doubled |\captionsetup| contents.
+% \begin{macrocode}
+ \flrow@setlist{{#1}{widefloat}{wide#1}}%
+ \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.}
+% Here added flag which, if true, allows redefinition of starred float
+% environment like non-starred but with special layout. This redefinition
+% allows usage of |[H]| option.
+% \begin{macrocode}
+ \let\@xdblfloat\@xfloat\relax
+ \FR@ifdoubleaswide
+ {\if@twocolumn\else\let\@dblfloat\@float\fi}\relax
+ \@dblfloat{#1}}%
+ \expandafter\let\csname end#1\endcsname\float@end
+ \expandafter\let\csname end#1*\endcsname\float@dblend
+% \end{macrocode}
+% One-column rotated floating environment.
+% The code contents of |\rotfloat@float| macro (\package{rotfloat} package)
+% moved here.
+% \begin{macrocode}
+ \@ifundefined{@rotfloat}{}{%
+ \@namedef{sideways#1}{\killfloatstyle\def\@captype{#1}\FR@redefs
+ \flrow@setlist{{#1}{rotfloat}{rot#1}}%
+ \columnwidth\textheight\edef\FBB@wd{\the\textheight}%
+ \FRifFBOX\@@setframe\relax\@@FStrue
+ \let\rotfloat@@makebox\float@makebox
+ \let\float@makebox\rotfloat@makebox
+ \@float{#1}}%
+ \@namedef{endsideways#1}{\FBbuildtrue\float@end}
+% \end{macrocode}
+% Two-column rotated floating environment without support.
+% \begin{macrocode}
+ \ifx\@rotdblfloat\undefined
+ \@namedef{sideways#1*}{%
+ \flrow@error{%
+ You need rotating version 2.10 or newer to do this}%
+ \@nameuse{sideways#1}}%
+ \else
+% \end{macrocode}
+% Two-column rotated floating environment with support.
+% \begin{macrocode}
+ \@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\relax\@@FStrue
+% \end{macrocode}
+% {\sl[float] The standard |\@xdblfloat| macro changes |\hsize| to |\textwidth|.
+% This way is not correct so use |\@xfloat| instead.}
+%
+% The code contents of |\rotfloat@dblfloat| macro (\package{rotfloat}
+% package) moved here.
+% \begin{macrocode}
+ \let\@xdblfloat\@xfloat
+ \let\rotfloat@@makebox\float@makebox
+ \let\float@makebox\rotdblfloat@makebox
+ \@dblfloat{#1}}%
+ \fi
+ \@namedef{endsideways#1*}{\FBbuildtrue\float@dblend}}
+% \end{macrocode}
+% Wrapped floating environment from \package{wrapfig} package.
+% \begin{macrocode}
+ \@ifundefined{wrapfloat}{}{%
+ \@ifundefined{flrow@WF@rapt}{\let\flrow@WF@rapt\WF@rapt
+ \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
+ \fi
+ \flrow@WF@rapt[##1]{\dimen@}%
+% \end{macrocode}
+% \changes{v0.1k}{2007/05/24}{Commented \cmd{\capstart} for a while}
+% \begin{macrocode}
+% \@ifundefined{capstart}{}{\capstart}%
+ \the\FR@everyfloat\ignorespaces}%
+ }{}%
+ \@namedef{wrap#1}{\killfloatstyle\def\@captype{#1}%
+% \end{macrocode}
+% ^^A The \cmd{\FloatHBarrier} for \package{flafplins}.
+% ^^A \changes{v0.1j}{2006/03/12}{Added \cmd{\FloatHBarrier} in wrapfloat}
+% \begin{macrocode}
+ \FR@redefs\FBc@wd\z@
+ \flrow@setlist{{#1}{wrapfloat}{wrap#1}}%
+% \end{macrocode}
+% Here is the repeated code from |\float@end| and |\float@dblend|: check whether
+% |\floatbox| stuff appeared or not.
+% \begin{macrocode}
+ \def\WF@floatstyhook{\let\@currbox\WF@box
+ \ifFBbuild
+% \end{macrocode}
+% (|^^A|---The attempts to arrange the widths of Boxed wrapped floats.)
+% \begin{macrocode}
+%^^A \adj@dim\hsize+\FB@wadj=\hsize
+%^^A \adj@dim\hsize+\FBo@wadj=\hsize
+ \global\setbox\WF@box\flrow@FB{\wd\WF@box}%
+ \else
+ \global\let\flrow@typ@tmpset\undefined
+ \global\let\WF@box\@currbox
+ \fi}%
+ \@ifnextchar[\WF@wr{\WF@wr[]}}%]
+% \expandafter\let\csname endwrap#1\endcsname\endwrapfloat}
+ \@namedef{endwrap#1}{\endwrapfloat
+ \@ifundefined{FloatHBarrier}{}\FloatHBarrier
+ }}
+%^^A \@namedef{endwrap#1}{\ifdim\hsize>\z@
+%^^A \adj@dim\hsize+\FBo@wadj=\hsize\fi\endwrapfloat}}
+% \end{macrocode}
+% At last the definitions for new subfloat numeration for \package{subfig} package.
+% The subfloats for figures and tables (|\c@subfigure| and |\c@subtable|)
+% already defined: so at first goes check, whether defined this command for
+% subfloat (suggestions of Steven Cochran).
+% \begin{macrocode}
+ \@ifundefined{sf@@@subfloat}{}{\@ifundefined{c@sub#1}{\newsubfloat{#1}}{}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\RawFloats}
+% This macro restores plain \LaTeX{} mode for floats. i.e. returns core
+% macros for commands of floating environment.
+% Non-optional variant can be used inside environments only.
+% Variant with option better to be used in preamble. (Option allow
+% to restore plain \LaTeX{} mode for necessary float type.)
+% \begin{macrocode}
+\newcommand\RawFloats{\@ifnextchar[%]
+ \flrow@rawfloatschk\flrow@rawfloats}
+% \end{macrocode}
+% The macro for usage inside one environment. It redefines only |\end|\meta{float type}
+% commands to \LaTeX's standard behavior.
+% \begin{macrocode}
+\newcommand\flrow@rawfloats{\killfloatstyle\@parboxrestore
+ \let\@makecaption\FR@makecaption
+ \expandafter\ifx\csname end\@captype\endcsname\float@endH
+ \global\FBbuildfalse
+ \else
+ \@namedef{end\@captype}{\end@float}%
+ \fi
+ \expandafter\ifx\csname end\@captype*\endcsname\float@endH
+ \global\FBbuildfalse
+ \else
+ \@namedef{end\@captype*}{\end@dblfloat}%
+ \fi
+ \@ifundefined{@rotfloat}{}{%
+ \@namedef{endsideways\@captype}{\end@rotfloat}%
+ \@namedef{endsideways\@captype*}{\end@rotdblfloat}%
+ }%
+ \@ifundefined{wrapfloat}{}{%
+ \@namedef{endwrap\@captype}{\endwrapfloat}%
+ }}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@ifdefinable\flrow@rawfloatschk{}
+\def\flrow@rawfloatschk[#1]{\@ifnextchar[%]
+ {\flrow@RawFloats[#1]}{\flrow@@RawFloats#1,;}}
+% \end{macrocode}
+%
+% The next two macros redefine the |\|\meta{float type} commands. The |\end|\meta{float type}
+% in this case won't touched at all. Since at the beginning of document all float commands
+% redefined accordingly to \package{floatrow} package's settings, the |\flrow@raw@set|
+% command is used: in the preamble area it works like |\AtBeginDocument| macro, in the
+% |document| area it simply runs its argument.
+% \changes{v0.2b}{1007/10/24}{Added \cmd{\flrow@raw@set} command to allow usage of \cmd{\RawFloats}
+% both in the preamble and in the document areas.}
+% \begin{macrocode}
+\@ifdefinable\flrow@RawFloats{}
+\newcommand\flrow@raw@set{\AtBeginDocument}
+\AtBeginDocument{\let\flrow@raw@set\@firstofone}
+\def\flrow@RawFloats[#1][#2]{\flrow@RawFloats@[#1]#2,;}
+\def\flrow@RawFloats@[#1]#2,{%
+ \caption@ifinlist{#2}{float}{\flrow@raw@set
+ {\@namedef{#1}{\@float{#1}}}%
+ }{\caption@ifinlist{#2}{widefloat}{\flrow@raw@set%
+ {\@namedef{#1*}{\let\@xdblfloat\@xfloat\@dblfloat{#1}}}%
+ }{\caption@ifinlist{#2}{rotfloat}{%
+ \@ifundefined{@rotfloat}{}{\flrow@raw@set
+ {\@namedef{sideways#1}{\@rotfloat{#1}}}}%
+ }{\caption@ifinlist{#2}{widerotfloat}{%
+ \@ifundefined{@rotfloat}{}{\flrow@raw@set
+ {\@namedef{sideways#1*}{\@rotdblfloat{#1}}}}%
+ }{\caption@ifinlist{#2}{wrapfloat}{%
+ \@ifundefined{wrapfloat}{}{\flrow@raw@set
+ {\@namedef{wrap#1}{\wrapfloat{#1}}}}}%
+ }{\caption@ifinlist{#2}{all,allfloats}{%
+ \flrow@@RawFloats{#1}%
+ }{\flrow@error{Undefined float subtype `#2'}%
+ }}}}}\@ifnextchar;\@gobble{\flrow@RawFloats@[#1]}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@ifdefinable\flrow@@RawFloats{}
+\def\flrow@@RawFloats#1,{%
+ \flrow@raw@set{\@namedef{#1}{\@float{#1}}%
+ \@namedef{#1*}{\let\@xdblfloat\@xfloat\@dblfloat{#1}}%
+ \@ifundefined{@rotfloat}{}{%
+ \@namedef{sideways#1}{\@rotfloat{#1}}%
+ \@namedef{sideways#1*}{\@rotdblfloat{#1}}%
+ }%
+ \@ifundefined{wrapfloat}{}{%
+ \@namedef{wrap#1}{\wrapfloat{#1}}}%
+ }\@ifnextchar;\@gobble\flrow@@RawFloats
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flrow@Raw@restyle}
+% This macro is used by |rawfloats=| key. If this key is true, it replaces
+% the |\flrow@restyle| command when definitions of float run.
+% \begin{macrocode}
+\newcommand\flrow@Raw@restyle[1]{%
+ \@namedef{#1}{\@float{#1}}%
+ \@namedef{#1*}{\@dblfloat{#1}}%
+ \@namedef{end#1}{\end@float}%
+ \@namedef{end#1*}{\end@dblfloat}%
+ \@ifundefined{@rotfloat}{}{%
+ \@namedef{sideways#1}{\@rotfloat{#1}}%
+ \@namedef{sideways#1*}{\@rotdblfloat{#1}}%
+ \@namedef{endsideways#1}{\end@rotfloat}%
+ \@namedef{endsideways#1*}{\end@rotdblfloat}%
+ }%
+ \@ifundefined{wrapfloat}{}{%
+ \@namedef{wrap#1}{\wrapfloat{#1}}%
+ \@namedef{endwrap#1}{\endwrapfloat}%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\RawCaption}
+% The command of caption which doesn't use box register.
+% \begin{macrocode}
+\newcommand\RawCaption[1]{{\let\@makecaption\FR@makecaption #1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \end{em}
+%
+% \begin{macro}{\newfloat}
+% Now we can explain how to define a new class of floats. Recall that
+% the three required arguments to |\newfloat| are \meta{type},
+% \meta{placement} and \meta{ext}, respectively. First we save the
+% latter two; we also maintain a list of active \meta{ext}s so we can
+% later iterate over all currently-open lists of floats.
+% \begin{macrocode}
+\@ifdefinable\float@exts{\newtoks\float@exts}
+% \end{macrocode}
+% {\em [floatrow]
+% The |\newfloat| changed and uses |\floatsetup| stuff (redefined by
+% suggestions of Axel Sommerfeldt).}
+% \begin{macrocode}
+\newcommand\newfloat{\@ifstar{\flrow@restylefloat{no}\newfloat@}%
+ {\flrow@restylefloat{yes}\newfloat@}}
+\newcommand\newfloat@[3]{\@ifnextchar[{\@@newfloat{#1}{#2}{#3}}%
+ {\@newfloat{#1}{#2}{#3}}}
+\newcommand\@newfloat[3]{%
+ \DeclareNewFloatType{#1}{placement=#2,fileext=#3}}
+\@ifdefinable\@@newfloat{}
+\def\@@newfloat#1#2#3[#4]{%
+ \DeclareNewFloatType{#1}{placement=#2,fileext=#3,within=#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\float@newx}
+% {\em [floatrow] Macro |\float@newx|, which defines a new float
+% counter, was removed. It was replaced by |\DeclareNewFloatType| stuff.}
+% \end{macro}
+%
+% \subsubsection{The \package{float} Package: Adapting \LaTeX\ Internals}
+%
+% We have to adapt some of \LaTeX's internal macros to our needs.
+% There are several things that have to be changed around
+% in order to provide the functionality of David Carlisle's \package{here}.
+% The following is thus lifted from \package{here}, with changes and with
+% David's permission:
+%
+% \begin{macro}{\@float@Hx}
+% We save the original version of |\@xfloat|. (This macro is called from
+% |\@float|, which we used above to define the environment commands for a
+% new class of floats.)
+% \begin{macrocode}
+\let\@float@Hx\@xfloat
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@xfloat}
+% The new version of |\@xfloat| looks for a |[H]| argument.
+% If it is present |\@float@HH| is called, otherwise the original macro
+% (renamed to |\@float@Hx|) is called.
+% \begin{macrocode}
+\def\@xfloat#1[{\@ifnextchar{H}{\@float@HH{#1}[}{\@float@Hx{#1}[}}
+% \end{macrocode}
+% \end{macro}
+% {\em[floatrow] Since \package{floatrow} always uses float style,
+% 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.}
+% \changes{v0.3b}{2009/08/02}{The fixation re-fixed by suggestions of A.Sommerfeldt}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@ifundefined{latex@xfloat}{}{%
+ \let\floatrow@ORI@xfloat\@xfloat
+ \def\@xfloat#1[#2]{%
+ \floatrow@ORI@xfloat{#1}[#2]%
+ \floatfont}}}%
+% \end{macrocode}
+%
+% Later on we'll need a box to save a |[H]| float.
+% \begin{macrocode}
+\newsavebox\float@box
+% \end{macrocode}
+%
+% \begin{macro}{\@float@HH}
+% First gobble the |[H]|. Note that |H| should not be used in
+% conjunction with the other placement options, nor as the value of the
+% default placement, as set in |\fps@|{\it type}.
+% \begin{macrocode}
+\def\@float@HH#1[H]{%
+% \end{macrocode}
+% ^^A {\em[floatrow] If we want to put barrier
+% ^^A (i.e. use beta-package \package{flafplins}).}
+% ^^A \changes{v0.1j}{2006/03/12}{Added \cmd{\FloatHBarrier}}
+% \begin{macrocode}
+ \@ifundefined{FloatHBarrier}{}\FloatHBarrier
+% \end{macrocode}
+% {\em[floatrow] Locally redefine the end of the environment. To allow usage of |[H]| option in wide floats
+% i.e. starred environments in one-column layout there is added the \cmd{\FR@ifdoubleaswide} flag.}
+% \begin{macrocode}
+ \expandafter\let\csname end#1\endcsname\float@endH
+ \FR@ifdoubleaswide
+ {\expandafter\let\csname end#1*\endcsname\float@endH}\relax
+% \end{macrocode}
+% We don't get a |\@currbox| if we don't actually use the float mechanism.
+% Therefore we fake one using the |\float@box| defined above.
+% {\em[floatrow] The special settings for H-floats |floatH| were added.}
+% \changes{v0.3b}{2009/08/02}{Fixed bug of \cs{thisfloatsetup} usage}
+% \begin{macrocode}
+ \let\@currbox\float@box
+ \flrow@setlist*{{floatH}{#1H}}%
+% \end{macrocode}
+% Now we save the current float class name for use in constructing the
+% |\caption|. The caption box (defined below) is initialized to an empty
+% box to avoid trouble with floats not having a caption. Then we start the
+% box that'll hold the float itself.
+% |\parindent| is set to zero for compatibility with the standard
+% \texttt{[h]} option.
+%
+% {\em [floatrow]
+% Here added zeroing of list margins in the case of appearance of |\floatbox|
+% inside list environment.
+% Also the settings for \verb|\linewidth| and were zeroed
+% margins were added for the case of appearance
+% of \verb|\floatbox| inside list environment.}
+% \begin{macrocode}
+ \def\@captype{#1}%\setbox\@floatcapt=\vbox{}%
+ \setbox\@currbox\color@vbox\normalcolor
+ \vbox\bgroup
+ \hsize\columnwidth
+ \linewidth\columnwidth
+ \@parboxrestore\leftmargin\z@\rightmargin\z@
+ \@floatboxreset \@setnobreak
+% \end{macrocode}
+% The final |\ignorespaces| is needed to gobble any spaces or new lines
+% after the {\tt[H]} tokens.
+% \begin{macrocode}
+ \ignorespaces}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{em}
+% \begin{macro}{\flrow@flboxreset}
+% [floatrow]
+% The stuff of |\@floatboxreset| changed.
+% At first goes original \LaTeX's macro |\@floatboxreset| saved as
+% |\FR@flboxreset| at the beginning of package.
+% Then goes flag for facing layout and command which inputs references from
+% |aux|-file and temporary settings. At last \package{floatrow} looks
+% whether caption stays above/below object, or beside and chooses necessary
+% macro of width counting.
+% \begin{macrocode}
+\newcommand\flrow@flboxreset{\FR@flboxreset
+ \@ifundefined{capstart}{}{\capstart}%
+ \FB@facing\@tempswafalse\FR@iffacing\@tempswatrue\relax
+ \if@tempswa\FB@readaux{\relax}\fi
+ \global\let\FBcheight\relax\global\let\FBoheight\relax
+ \global\let\FBfheight\relax
+ \FBifcapbeside\FC@fs@wd\FB@fs@wd
+ \the\FR@everyfloat}
+% \end{macrocode}
+% The definition of three height commands as |\relax|.
+% We define \emph{height} arguments of caption,
+% object, and foot boxes as |\relax| which (like in |minipage|
+% environment or in |\parbox|) mean usage of natural height of components.
+% \begin{macrocode}
+\@ifdefinable\FBcheight{\let\FBcheight\relax}
+\@ifdefinable\FBoheight{\let\FBoheight\relax}
+\@ifdefinable\FBfheight{\let\FBfheight\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FB@fs@wd}
+% The width settings for float box with caption above or below object.
+% \begin{macrocode}
+\newcommand\FB@fs@wd{\@tempdima\FBB@wd
+% \end{macrocode}
+% The |\flrow@setwd| could define the width for current float.
+% \begin{macrocode}
+ \flrow@setwd\textwidth\@tempdima
+ \adj@dim\@tempdima-\FB@wadj=\@tempdima
+ \settowidth\@tempdimb{{\FBleftmargin}{\FBrightmargin}}%
+ \advance\@tempdima-\@tempdimb
+ \global\FBc@wd\@tempdima\global\FB@wd\@tempdima
+ \adj@dim\@tempdima-\FBo@wadj={\global\FBo@wd}%
+ \hsize\FBo@wd\linewidth\hsize
+ \FBifcaptop
+ {\ifnum\FPOScnt=\z@\columnwidth\hsize\else\columnwidth\FBc@wd\fi}%
+ {\columnwidth\FBc@wd}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FC@fs@wd}
+% The width settings for float box with caption beside object.
+% \begin{macrocode}
+\newcommand\FC@fs@wd{\@tempdima\FBB@wd\flrow@FClist
+ \settowidth\@tempdimb{{\FCleftmargin}{\FCrightmargin}}%
+ \advance\@tempdima-\@tempdimb
+ \adj@dim\@tempdima-\FB@wadj=\@tempdima
+ \settowidth\@tempdimb{{\floatcapbesidesep}}%
+ \advance\@tempdima-\@tempdimb
+% \end{macrocode}
+% This flag controls predefined width of caption.
+% \begin{macrocode}
+ \FC@ifc@wd\@tempswatrue\@tempswafalse
+ \if@tempswa
+ \ifx\FCwidth\relax
+ \flrow@error{You didn't define width of caption\MessageBreak
+ for plain floating environment.}%
+ \else
+ \global\FBc@wd=\FCwidth
+% \end{macrocode}
+% 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}\relax
+ \fi
+ \else
+ \global\FBc@wd\@tempdima
+ \fi
+ \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}%
+ \adj@dim\@tempdima-\FBo@wadj={\global\FBo@wd}%
+ \FC@ifc@wd\relax{\global\advance\FBc@wd-\FB@wd}%
+ \hsize\FBo@wd\linewidth\hsize\columnwidth\FBc@wd\linewidth\hsize
+ \FCset@vpos}
+% \end{macrocode}
+% \end{macro}
+% \end{em}
+%
+% \begin{macro}{\float@makebox}
+% Basically, we must arrange for `style commands' to be executed
+% at certain points during the generation of the float.
+% \LaTeX\ puts a float into a vertical box |\@currbox| which it takes
+% off a list of empty boxes for insertions. When the |\float@makebox| macro
+% is called, |\@currbox| contains the complete float, minus the caption^^A
+% ---we'll see later that we use our own |\caption| command to
+% put the caption into a |\vbox| of its own. This is the only way
+% we can control the position of the caption by the float style,
+% regardless of where the caption appears in the float's input text itself.
+%
+% {\em [floatrow \ldots Skipped explanation of float package.]}
+%
+% \begin{em}
+% [floatrow]
+% Macro |\float@makebox| was redefined to fit more float object---caption
+% combinations. There was created the |\float@makebox| stuff.
+% First goes changed \package{float} |\float@makebox| which loads necessary
+% layout macro for above/below or beside captions.
+%
+% The |\float@makebox| stuff includes |\FB@foot| macro
+% to allow usage of |\floatfoot| (any foot non-caption material)
+% and |\footnotetext| stuff inside floating environment in minipage-like mode.
+%
+% \begin{macrocode}
+\newcommand\float@makebox[1]{%
+ \FBifcapbeside{\flrow@FC{#1}}{\flrow@FB{#1}}}
+% \end{macrocode}
+% The definitions of vertical fine tuning corrections.
+% \begin{macrocode}
+\newcommand\FBaskip{\z@}\newcommand\FBbskip{\z@}
+\newif\ifFBbuild\FBbuildtrue
+% \end{macrocode}
+% \begin{macro}{\flrow@FB}
+% The macro of |\float@makebox| stuff which builds float box with
+% above/below caption.
+% Here added zeroing of list margins in the case of appearance of |\floatbox|
+% inside list environment.
+% \begin{macrocode}
+\newcommand\flrow@FB[1]{\vbox{\@tempdima=#1\vskip\FBaskip
+ \@parboxrestore\leftmargin\z@\rightmargin\z@
+ \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}
+% \end{macro}
+%
+% \begin{macro}{\flrow@FC}
+% Definition of float with beside caption.
+% Here added zeroing of list margins in the case of appearance of |\floatbox|
+% inside list environment.
+% \begin{macrocode}
+\newcommand\flrow@FC[1]{\vbox{\@tempdima=#1\@parboxrestore
+ \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}
+% \end{macro}
+% These macros define box,
+% which is changed accordingly for creation of axis at the top, bottom,
+% or center of boxes.
+% \begin{macrocode}
+\newcommand\FCc@box[1]{\def\@parboxto{}\FC@bbox#1\FC@ebox}
+\newcommand\FC@bbox{\vbox\@parboxto\bgroup}
+\newcommand\FC@ebox{\vskip\z@\egroup}
+\newcommand\FCo@box[1]{\def\@parboxto{}\ifx\FBoheight\relax\FC@bbox\else
+ \def\@parboxto{to\FBoheight}\FC@bbox\vsize\FBoheight\fi#1\FC@ebox}
+% \end{macrocode}
+% Definitions for fill material for vertical alignment and command with
+% width settings of boxes.
+% \begin{macrocode}
+\newcommand\FBafil{\vfill}\newcommand\FBbfil{\vfill}
+\newcommand\FBw@box[1]{\hsize#1\columnwidth#1\linewidth#1%
+ \normalfont\normalcolor}
+\newcommand\FB@vbox[3]{\ifx#2\relax\vbox\bgroup\else
+ \vbox to#2\bgroup\vsize#2\fi\FBw@box#1#3\vskip\z@\egroup}
+\newcommand\FB@vtop[3]{\ifx#2\relax\vtop\bgroup\else
+ \vtop to#2\bgroup\vsize#2\fi\vskip\z@\FBw@box#1#3\egroup}
+% \end{macrocode}
+%
+% \begin{macro}{\flrow@FB@}
+% \begin{macro}{\flrow@FC@}
+% |\float@makebox|-like macros for usage inside float row
+% (they don't create any left/right fill material).
+%
+% First macro builds box with caption above/below.
+% At first we reset temporary definitions for current float.
+% \begin{macrocode}
+\newcommand\flrow@FB@{\global\let\flrow@typ@tmpset\undefined
+ \FB@frame{\begin@FBBOX
+ \adj@dim\FBo@wd+\FBo@wadj=\hsize
+ \@tempdima\ht\@currbox\advance\@tempdima\dp\@currbox
+ \ifdim\@tempdima=\z@
+ \def\@@FBskip{}\let\FBo@frame\@gobble
+ \fi
+% \end{macrocode}
+% Here added zeroing of list margins in the case of appearance of |\floatbox|
+% inside list environment.
+% \begin{macrocode}
+ \@parboxrestore\leftmargin\z@\rightmargin\z@
+ \@@FBabove
+ \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\relax\vfill
+ \unvbox\@floatcapt
+ \ifnum\FPOScnt=\@ne\vbox{\FB@foot}\fi\vfil}%
+ \@@FBskip\hrule\@height\z@\@depth\z@
+ \fi
+% \end{macrocode}
+% Box of float object. If key |footposition=default|
+% foot material loaded in the bottom of float object box. In the case of
+% |footposition=foot| foot material loads after float object box.
+% \begin{macrocode}
+ \vtop{\vskip\z@\FBo@frame{\FB@vtop\FBo@wd\FBoheight
+ {\FBafil\unvbox\@currbox\FBbfil
+% \end{macrocode}
+% The zero vertical skip must be here in any case.
+% \begin{macrocode}
+ \vskip\z@
+ \ifnum\FPOScnt=\z@
+ \FB@vtop\FBo@wd\FBfheight{\FB@foot\vfil}\fi}}\par
+ \vskip\z@
+ \ifnum\FPOScnt=\tw@\vskip\z@
+ \FB@vtop\FBc@wd\FBfheight{\FB@foot\vfil}\fi}%
+% \end{macrocode}
+% If needed and exists---caption box below float object.
+% If key |footposition=default| or |footposition=caption|
+% foot material loaded under caption contents.
+% \begin{macrocode}
+ \else\ifnum\FPOScnt=\z@\FPOScnt=\@ne\fi
+ \FBo@frame{\FB@vbox\FBo@wd\FBoheight{\FBafil
+ \unvbox\@currbox\FBbfil}}\par
+ \ifvoid\@floatcapt\else
+ \@@FBskip\hrule\@height\z@\@depth\z@
+ \FB@vtop\FBc@wd\FBcheight{\hsize\columnwidth\unvbox\@floatcapt
+ \ifnum\FPOScnt=\@ne\vtop{\FB@foot}%
+ \fi\par
+% \end{macrocode}
+% The |\vss| glue appears here because the included box with foot material
+% sometimes creates a small overfull in float rows and crashes alignment of
+% |postcode=| material.
+% \changes{v0.2b}{2007/10/28}{Caption box deleted if still exists.}
+% \begin{macrocode}
+ \vfill\vskip\z@\vss
+ \ifnum\FPOScnt=2\FB@vtop\FBc@wd\FBfheight{\FB@foot\vfil}\fi
+ }\fi
+ \fi\@@FBbelow\FB@zskip\end@FBBOX
+ \global\setbox\@floatcapt\box\voidb@x}}
+% \end{macrocode}
+%
+% Second internal macro for float row builds float box with beside caption.
+% At first we reset temporary definitions for current float.
+% \begin{macrocode}
+\newcommand\flrow@FC@{\global\let\flrow@typ@tmpset\undefined
+ \FB@frame{\begin@FBBOX
+ \adj@dim\FBo@wd+\FBo@wadj=\hsize
+ \settowidth\@tempdimb{\floatcapbesidesep}\advance\hsize\@tempdimb
+% \end{macrocode}
+% Here added zeroing of list margins in the case of appearance of |\floatbox|
+% inside list environment.
+% \begin{macrocode}
+ \advance\hsize\FBc@wd\@parboxrestore\leftmargin\z@\rightmargin\z@
+ \@@FBabove
+ \hbox{\floatfacing*%
+ {\ifvoid\@floatcapt\else
+ \FCc@box{\FBw@box\FBc@wd\unvbox\@floatcapt\FB@foot}%
+ \floatcapbesidesep\fi
+% \end{macrocode}
+% |\FBf@raise| uses |\raisebox| correction to align top (bottom) of caption
+% text with top (bottom) of object frame.
+% \changes{v0.2b}{2007/10/28}{Caption box deleted if still exists.}
+% \begin{macrocode}
+ \FBf@raise{\FBo@frame{\FCo@box{\FBw@box\FBc@wd\unvbox\@currbox}}}}%
+ {\FBf@raise{\FBo@frame{\FCo@box{\FBw@box\FBo@wd\unvbox\@currbox}}}%
+ \ifvoid\@floatcapt\else
+ \floatcapbesidesep\FCc@box{\FBw@box\FBc@wd
+ \unvbox\@floatcapt\FB@foot}\fi
+ }}\par\@@FBbelow\vskip\z@
+ \end@FBBOX
+ \global\setbox\@floatcapt\box\voidb@x}}
+% \end{macrocode}
+% Macro for foots and command for skip outside float row.
+% \begin{macrocode}
+\newcommand\FB@foot{\let\FR@ifFOOT\@firstoftwo\FB@putfoots\@@par\FB@putfnotes}
+\newcommand\FB@zskip{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{em}
+% \end{macro}
+%
+% \begin{macro}{\float@end}
+% [float] The internal macro |\end@float| appears here under the name of
+% |\float@end|. The main thing which is changed is that we call
+% |\float@makebox| to reconstruct the float according to the float style.
+% We want to do exactly what the \LaTeX\ kernel does without copying
+% actual kernel code if we can help it; therefore we finish off the
+% float using the kernel |\@endfloatbox|, then replace \LaTeX's
+% contents of the |\@currbox| with our own processed version, and then
+% hand the thing off to \LaTeX{} again. Of course we have already done
+% |\@endfloatbox|, which comes at the beginning of |\end@float|, ourselves;
+% therefore we neutralize it before calling |\end@float|. This doesn't
+% matter since we're in a group anyway (we wanted to keep the style
+% commands local), so everything is undone at the end of the environment.
+%
+% {\em [floatrow] Added flag |\ifFBbuild| for float box layout building.
+% This flag stops repeated usage of |\float@makebox| after |\floatbox|
+% in |\float@end|, |\float@endH| and
+% |\float@dblend| macros and, if \package{rotating} used,
+% in replaces usage of |\float@makebox| to \LaTeX's standard box |\@currbox|
+% |\rotfloat@makebox| and |\rotfloat@dblmakebox| commands.}
+% \begin{macrocode}
+\newcommand\float@end{\ifFBbuild\@endfloatbox
+ \global\setbox\@currbox\float@makebox\columnwidth
+ \let\@endfloatbox\relax\fi
+ \end@float}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\float@endH}
+% The |\float@endH| command is, again, derived from \package{here}. It'll
+% deal correctly with a non-floating float, inserting the proper amounts
+% of white space above and below.
+%
+% {\em [floatrow] Added flag |\ifFBbuild| for float box layout building.
+% This flag stops repeated usage of |\float@makebox| after |\floatbox|.}
+% There is also added flag for loading of list penalties around anchored float.
+% \begin{macrocode}
+\newcommand\floatHpenalties{}
+\newcommand\float@endH{\@endfloatbox\par
+ \FR@iffloatHaslist
+ {\floatHpenalties\relax
+ \addpenalty\@beginparpenalty}\relax
+ \vskip\intextsep
+ \ifFBbuild\setbox\@currbox\float@makebox\columnwidth\fi
+ \box\@currbox\par
+ \FR@iffloatHaslist
+ {\addpenalty\@endparpenalty\@endpetrue}\relax
+ \vskip\intextsep\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\float@dblend}
+% The |\float@dblend| command finishes up double-column floats. This
+% uses the same approach as |\float@end| above. It seems to work.
+%
+% {\em [floatrow]
+% Added flag |\ifFBbuild| for float box layout building.
+% This flag stops repeated usage of |\float@makebox| after |\floatbox|.}
+% \begin{macrocode}
+\newcommand\float@dblend{\ifFBbuild\@endfloatbox
+ \global\setbox\@currbox\float@makebox\textwidth
+ \let\@endfloatbox\relax\fi
+ \end@dblfloat}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The \package{float} Package: Captions and Lists of Floats}
+%
+% Now for the caption routines.
+% We use a box, |\@floatcapt|, to hold the caption while the float
+% is assembled.
+% \begin{macrocode}
+\newsavebox\@floatcapt
+% \end{macrocode}
+%
+% [floatrow \ldots Skipped explanation. Original definition of caption is stored in |\flrow@caption| above.
+% The storing mechanism of caption box was moved in |\@makecaption| stuff (|\flrow@makecaption| command).]
+%
+% \begin{macro}{\listof}
+% The |\listof| command reads the desired list of floats from the
+% appropriate auxiliary file. The file is then restarted.
+% First of all, we check whether the float style that's supposed to be
+% listed is actually defined. If not, we output a |\float@error|
+% {\em([floatrow] the |\float@error| changed to
+% |\flrow@error|)}.
+% \begin{macrocode}
+\newcommand*{\listof}[2]{%
+ \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{%
+% \end{macrocode}
+% All's well until now. We define the |\l@|\meta{float} command
+% that \LaTeX\ needs for formatting the list, and then typeset the
+% appropriate list header.
+% {\em [floatrow] The definition of list entry
+% layout moved in \cmd{\DeclareNewFloatType} command.}
+% \changes{v0.2b}{2007/12/09}{The main definition of list entry layout moved in
+% \cmd{\DeclareNewFloatType} command, here it is provided.}
+% \begin{macrocode}
+ \expandafter\providecommand\csname l@#1\endcsname
+ {\@dottedtocline{1}{1.5em}{2.3em}}%
+ \float@listhead{#2}%
+% \end{macrocode}
+% Next we call |\@starttoc| with the correct file extension
+% to do the actual work.
+% If |\parskip| is non-zero, vertical space would be added between
+% the individual list entries. To avoid this, we zero |\parskip|
+% locally. This should be done after the |\float@listhead| above since
+% |\parskip| also influences the spacing of headings, and the listings
+% would look different from other chapters otherwise. (Suggested by
+% Markus Kohm.)
+% \begin{macrocode}
+ \begingroup\setlength{\parskip}{\z@}%
+ \@starttoc{\@nameuse{ext@#1}}%
+ \endgroup}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\float@listhead}
+% This command generates the beginning of a list of floats.
+% Currently the list appears at the chapter or the section level, depending
+% on whether chapters are supported in the document class. According to
+% a suggestion from Markus Kohm, this is now in a separate command so it
+% can be overridden by other packages. We also use |\MakeUppercase| instead
+% of |\uppercase|; when this piece of code was first written |\MakeUppercase|
+% hadn't been invented yet, and for some reason this never got updated.
+% \begin{macrocode}
+\providecommand*{\float@listhead}[1]{%
+ \@ifundefined{chapter}{\def\@tempa{\section*}}%
+ {\def\@tempa{\chapter*}}%
+ \@tempa{#1\@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\float@addtolists}
+% This command allows \LaTeX\ programmers to add something to all
+% currently-defined lists of floats, such as some extra vertical
+% space at the beginning of a new chapter in the main text
+% (|\float@addtolists{\protect\addvspace{10pt}}|), without knowing
+% exactly which lists of floats are currently being constructed.
+% This command currently does \emph{not} operate on the |lot| and |lof|
+% lists.
+% \begin{macrocode}
+\newcommand\float@addtolists[1]{%
+ \def\float@do##1{\addtocontents{##1}{#1}} \the\float@exts}
+% \end{macrocode}
+% \end{macro}
+%
+% {\em [floatrow] Here goes \package{floatrow} message about
+% finishing of loading of \package{float} package's corrected code.}
+% \begin{macrocode}
+\PackageInfo{floatrow}{Modified float package code loaded}
+% \end{macrocode}
+%
+% ^^A -------------------------------------------------------------------------------------------------------
+%
+% \subsection{Borrowed Code (With Original Comment)
+% from The \package{rotfloat} Package}
+%
+% {\em [floatrow] If there is the \package{rotating} package in \LaTeX's
+% installation the \package{rotfloat} package's stuff will be loaded.}
+% \begin{macrocode}
+\IfFileExists{rotating.sty}{\@tempswatrue}{\@tempswafalse}
+\if@tempswa
+% \end{macrocode}
+%
+% {\em [floatrow]
+% The main redefinitions for \package{rotfloat} (|\flrow@restyle| stuff) purposes
+% were made above (in \package{float} part).\\{}[\dots]
+%
+% Code contents of |\rotfloat@float| and |\rotfloat@dblfloat| moved up
+% inside |\flrow@restyle| macro.}
+%
+% \begin{macro}{\@float@HH}
+% We have to extend |\@float@HH|\emph{[\dots]}.
+% {\em [floatrow] Since |\rotfloat@endH| was originally defined
+% as |\float@endH| in current macro used |\float@endH|}
+% \begin{macrocode}
+ \let\rotfloat@HH\@float@HH
+ \def\@float@HH#1{%
+ \expandafter\let\csname endsideways#1\endcsname\float@endH
+% \expandafter\let\csname endsideways#1*\endcsname\rotfloat@dblendH
+ \let\end@float\relax
+ \rotfloat@HH{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\rotfloat@endH}
+% This one hasn't to be changed. {\em [floatrow] Commented.}
+% \begin{macrocode}
+% \newcommand\rotfloat@endH{\float@endH}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\rotfloat@makebox}
+% \begin{macro}{\rotdblfloat@makebox}
+% |\float@makebox| has a parameter here which will be set to |\columnwidth|
+% or |\textwidth|. (In the \package{float} package $v1.2$ the |\columnwidth| was
+% hard wired into |\float@makebox|.) So we have to pass this parameter
+% through the original version of |\float@makebox| which we have saved to
+% |\rotfloat@@makebox| within |\rotfloat@float|.)
+% \begin{macrocode}
+ \newcommand*\rotfloat@makebox[1]{%
+ \vbox{\def\@float##1[##2]{}\let\end@float\relax
+ \@rotfloat{}[]%
+ \ifFBbuild\rotfloat@@makebox{#1}\else\box\@currbox\fi
+ \end@rotfloat}}
+ \newcommand*\rotdblfloat@makebox[1]{%
+ \vbox{\def\@float##1[##2]{}\let\end@dblfloat\relax
+ \@rotdblfloat{}[]%
+ \ifFBbuild\rotfloat@@makebox{#1}\else\box\@currbox\fi
+ \end@rotdblfloat}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% That's all folks\dots {\em [floatrow] of borrowed code of
+% \package{rotfloat} package, v1.2. And here goes message about loading of
+% \package{rotfloat} package's code.}
+% \begin{macrocode}
+\PackageInfo{floatrow}{Modified rotfloat package code loaded}
+\fi
+% \end{macrocode}
+%
+% \end{sl}
+%
+% \subsection{Stuff to Load Footnotes and Float Foot Material}
+%
+% \begin{macro}{\FR@everyfloat}
+% These token macros add redefinition of float stuff to arrange usage
+% 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
+ \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
+ \floatobjectset\floatfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FR@ifFOOT}
+% Flag for placing foot material.
+% \begin{macrocode}
+\@ifdefinable\FR@ifFOOT{\let\FR@ifFOOT\@secondoftwo}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FB@putfnotes}
+% The excerpt from minipage macro (\LaTeX's core stuff) to put footnotes.
+% \begin{macrocode}
+\newcommand\FB@putfnotes{%
+ \ifvoid\@mpfootins\else\FR@ifFOOT
+% \end{macrocode}
+% A special skip (|\skip\@mpfootins|) dimension for footnotes in
+% float box changed to |\floatfootskip|.
+% \begin{macrocode}
+ {\vskip\floatfootskip\normalcolor\FBfootnoterule
+ \unvbox\@mpfootins\@@par}\relax
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FB@putfoots}
+% Macro analogous to previous one, but for loading of |\floatfoot| stuff.
+% To load float foot material there is defined |\newinsert| for its stuff.
+% \begin{macrocode}
+\@ifdefinable\flrow@foot{\newinsert\flrow@foot}
+\newcommand\FB@putfoots{%
+ \ifvoid\flrow@foot\else\FR@ifFOOT
+% \end{macrocode}
+% The |\footnoterule| is not used for float foot.
+% \begin{macrocode}
+ {\vskip\floatfootskip\normalcolor
+ \unvbox\flrow@foot\@@par}\relax
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{New Definitions for Footnotes}
+%
+% \begin{macro}{\mpfootnotemark}
+% There is the definition of |\footnotemark| which creates the same mark as
+% |\footnote| inside |minipage| environment. That could be useful in
+% multiple footnote marks in tables. Since the same definition was loaded
+% in \package{footmisc} version 4.10, dated 2003/01/20 and later, these macros are defined at the
+% beginning of document in the case only if \package{footmisc} was not loaded.
+% \begin{macrocode}
+\AtBeginDocument{\providecommand\mpfootnotemark{\@ifnextchar[%]
+ \@xmpfootnotemark{\stepcounter\@mpfn
+ \protected@xdef\@thefnmark{\thempfn}\@footnotemark}}%
+ \@ifundefined{@xmpfootnotemark}
+ {\def\@xmpfootnotemark[#1]{\begingroup\c@mpfootnote#1\relax
+ \unrestored@protected@xdef\@thefnmark{\thempfn}\endgroup
+ \@footnotemark}}{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Macro for Legends, Explications, etc.}
+%
+% \begin{macro}{\floatfoot}
+% This command made for the same reasons as \package{ccaption}'s |\legend|
+% macro and follows its style. It uses |\caption| mechanism.
+% \begin{macrocode}
+\captionsetup[floatfoot]{labelformat=empty,labelsep=none}
+\newcommand\floatfoot{\@ifstar
+ {\def\FR@tmp{\@parboxrestore\captionfootfont}\floatfoot@}%
+ {\def\FR@tmp{\captionfootfont}\floatfoot@}}
+\newcommand\floatfoot@[1]{%
+ \global\setbox\flrow@foot\vbox{%
+ \floatfoot@box{#1}}}%
+% \end{macrocode}
+%
+% \begin{macro}{\floatfoot@box}
+% For the case of usage outside of |\floatbox| and floating environments. E.g.
+% inside |longtable| environment.
+% \begin{macrocode}
+\newcommand\floatfoot@box[1]{%
+ \@ifundefined{@captype}{\def\@captype{floatfoot}}{}%
+% \end{macrocode}
+% The |\if@@FS| flag stored for |wrap...| environments.
+% \begin{macrocode}
+ \if@@FS\hsize\columnwidth\linewidth\columnwidth\fi
+ \@parboxrestore\reset@font\color@begingroup
+% \end{macrocode}
+% Apply current float settings.
+% \begin{macrocode}
+ \caption@setoptions{\@captype}%
+% \end{macrocode}
+% Apply floatfoot settings.
+% \begin{macrocode}
+ \caption@setoptions{floatfoot}%
+% \end{macrocode}
+% No captionlabel.
+% \begin{macrocode}
+ \caption@@make{}{\FR@tmp#1\@finalstrut\strutbox}%
+ \color@endgroup}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Defining New Float Box Commands}
+%
+% \begin{macro}{\newfloatcommand}
+% \begin{macro}{\renewfloatcommand}
+% The following macros allow to define user commands-abbreviations of |\floatbox| command:
+% they have common unchanged preamble and setting for default width of
+% float box.
+% The definition of command for new float command.
+% \begin{macrocode}%
+\newcommand\newfloatcommand[2]{%
+ \@ifundefined{#1}{}%
+ {\flrow@error{\string#1 already defined}}%
+ \@ifnextchar[{\FB@nc{#1}{#2}}{\FB@nc{#1}{#2}[]}}
+\newcommand\renewfloatcommand[2]{%
+ \@ifundefined{#1}{}%
+ {\PackageInfo{floatrow}{Redefining \string#1}}%
+ \@ifnextchar[{\FB@nc{#1}{#2}}{\FB@nc{#1}{#2}[]}}
+\@ifdefinable\FB@nc{}\@ifdefinable\FB@@nc{}
+\def\FB@nc#1#2[#3]{%
+ \@ifnextchar[{\FB@@nc{#1}{#2}[#3]}{\FB@@nc{#1}{#2}[#3][]}}
+% \end{macrocode}
+% This group ends at the end of |\@@@floatbox| macro.
+% \begin{macrocode}%
+\def\FB@@nc#1#2[#3][#4]{%
+ \@namedef{#1}{\begingroup
+% \end{macrocode}
+% The option with temporary settings for float
+% box saved to temporary command.
+% \begin{macrocode}%
+ \def\FB@tmpset{#3}\def\@captype{#2}%
+ \@ifnextchar[{\@floatbox}{\@floatbox[#4]}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Predefined Abbreviations for Figures and Tables}
+%
+% \begin{macro}{\ffigbox}
+% \begin{macro}{\ttabbox}
+% \begin{macro}{\fcapside}
+% The abbreviations for object---caption combination in float
+% figures and tables and also for figures with beside captions
+% (there is not given \emph{abbreviation} command for beside
+% caption in tables---I can't imagine such book design).
+% \begin{macrocode}
+\newfloatcommand{ffigbox}{figure}[\nocapbeside][]
+\newfloatcommand{ttabbox}{table}[\captop][\FBwidth]
+\newfloatcommand{fcapside}{figure}[\capbeside][]
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Building Float Box}
+%
+% \FRorisubsubsection{Dimensions Used in Float Box Building}
+%
+% \begin{macro}{\FB@wd}
+% \begin{macro}{\FBo@wd}
+% \begin{macro}{\FBc@wd}
+% These internal dimensions used for defining widths for
+% float boxes entirely and for object and caption separately
+% (they could differ in special style layouts). The |\newdimen| register is
+% necessary because of these parameters can catch values from skip parameters
+% during calculations,
+% also the skip values of widths could ``conflict'' with skips-separators between floats.
+% \begin{macrocode}
+\@ifdefinable\FB@wd {\newdimen\FB@wd}
+\@ifdefinable\FBo@wd{\newdimen\FBo@wd}
+\@ifdefinable\FBc@wd{\newdimen\FBc@wd}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FBo@ht}
+% \begin{macro}{\FBc@ht}
+% \begin{macro}{\FBf@ht}
+% The internal dimensions for heights of object and caption.
+% Third dimension defines height of footnote and float foot stuff.
+% \begin{macrocode}
+\newlength\FBo@ht
+\newlength\FBc@ht
+\newlength\FBf@ht
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FBo@max}
+% \begin{macro}{\FBc@max}
+% \begin{macro}{\FBf@max}
+% These three internal dimensions determine maximum object, caption and
+% foot boxes in float row environments for special styles.
+% \begin{macrocode}
+\newlength\FBo@max
+\newlength\FBc@max
+\newlength\FBf@max
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Commands for Counting Width and Height}
+%
+% \begin{macro}{\FR@loc@fcaddcnt}
+% \begin{macro}{\FR@loc@}
+% \begin{macro}{\FBtmp@cap}
+% Redefinition of \cmd{\addtocounter} macro---localization of counter change.
+% \begin{macrocode}
+\newcommand\FR@loc@addcnt[2]{%
+ \@ifundefined{c@#1}{\@nocounterr{#1}}%
+ {\advance\csname c@#1\endcsname #2\relax}}
+% \end{macrocode}
+% The command for localization of |\refstepcounter|, |\stepcounter| and
+% |\refsteponlycounter|.
+% \begin{macrocode}
+\newcommand\FR@loc@refcnt[1]{%
+ \@ifundefined{c@#1}{\@nocounterr{#1}}%
+ {\advance\csname c@#1\endcsname1\relax}}
+% \end{macrocode}
+% Gobbling of caption label and localization of counter change.
+% \begin{macrocode}
+\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
+% caption box. Also here is gobbled macro from \package{subfig} package.
+% \changes{v0.2b}{2008/01/06}{Added redefinitions of \texttt{..addcontentsline}
+% commands for (subcaption) compatibility with caption 3.1. (AS)}
+% \begin{macrocode}
+ \let\cl@@ckpt\empty\let\addtocounter\FR@loc@addcnt
+ \let\caption@kernel@addcontentsline\@gobbletwo
+ \let\caption@addcontentsline\@gobbletwo
+ \def\sf@updatecaptionlist##1##2##3##4{}}
+% \end{macrocode}
+% The macro for temporary redefinition for counting of caption width.
+% \changes{v0.1p}{2007/06/24}{Added \cmd{\relax} for compatibility with
+% caption 3.1.}
+% \changes{v0.2b}{2007/12/10}{Contents of \cmd{\FBtmp@cap} became \cmd{\captionlabel} for (sub)caption labels.}
+% \begin{macrocode}
+\def\FBtmp@cap#1[#2]#3{\sbox\@tempboxa{\captionlabel{#3}}%
+ \global\@tempdimb\wd\@tempboxa}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\captionlabel}
+% \begin{macro}{\subcaptionlabel}
+% Here goes support for caption and subcaption labels. (The |\captionlabel| command is
+% used as internal macro for calculating width of caption.)
+% This macro uses internal \package{caption} commands |\caption@@@make| and |\caption@lfmt|.
+% The temporary macro |\FR@tmp| defined as |\@captype| or |sub\@captype|, depending to
+% ``depth'' of float box.
+% \changes{v0.2b}{2007/12/10}{The \cmd{\captionlabel} created for (sub)caption label,
+% with suggestions A.Sommerfeldt.}
+% \begin{macrocode}
+\newcommand\captionlabel[1]{{\def\FR@tmp{\@captype}\ifnum\floatbox@depth>\@ne
+ \def\FR@tmp{sub\@captype}\caption@setsubtype*{\FR@tmp}\stepcounter{\FR@tmp}\fi
+ \caption@@@make{\caption@fnum\FR@tmp}{#1}}}
+% \end{macrocode}
+% The |\subcaptionlabel| command
+% \begin{macrocode}
+\newcommand\subcaptionlabel[1]{{\floatbox@depth\tw@\captionlabel{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FBget@box}
+% This macro calculates widths and heights of caption and
+% object boxes accordingly to \meta{width} and \meta{height}
+% arguments of |\floatbox| macro.
+% \label{code:FBwidth}
+% \begin{macrocode}
+\newcommand\FBget@box[3]{%
+% \end{macrocode}
+% At first macro defines |\hsize| (which could be used in width definition),
+% i.e. change it for fit contents in boxes.
+% The |\FBget@box| macro uses the |\FBB@wd| command. In the case of
+% |\hsize=0pt| the |\FBB@wd| still defined as |\relax|. It will be
+% defined later.
+%
+% 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'
+% into two columns).
+% \begin{macrocode}
+ \FBiffloatrow\relax
+ {\ifx\FBB@wd\relax
+ \ifdim\hsize=\z@
+% \end{macrocode}
+% The |\floatbox| stuff doesn't use special |\caption| definition inside
+% |wrap...| environment---|\caption| restores its behavior.
+% \begin{macrocode}
+ \@ifundefined{wf@@caption}{}{\let\caption\wf@@caption}%
+ \hsize.5\columnwidth\advance\hsize-.5\columnsep
+ \else
+ \edef\FBB@wd{\the\hsize}%
+ \fi
+ \else
+ \hsize\FBB@wd
+ \fi}%
+ \adj@dim\hsize-\FB@wadj=\@tempdima
+ \FBifcapbeside
+ {\FCget@@wd{#1}{#3}}%
+ {\nofilFCOhsize
+ \FBiffloatrow\relax
+ {\settowidth\@tempdimb{{\FBleftmargin}{\FBrightmargin}}%
+ \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
+% you use |\hsize| in any width argument in current float contents.
+% \begin{macrocode}
+ \FBiffloatrow\relax{\hsize\FBo@wd}%
+% \end{macrocode}
+% |\FB@wd| changed only for beside captions.
+% \begin{macrocode}
+ \FBifcapbeside{\hsize\FB@wd}\relax
+ \linewidth\hsize
+% \end{macrocode}
+% If there are defined the width and/or height arguments in |\floatbox|
+% macro (re)calculates width of object and caption.
+% \begin{macrocode}
+ \def\reserved@a{#1}\ifx\reserved@a\empty
+ \else\FBget@@wd{#1}{#3}\fi
+ \hsize\FBo@wd\linewidth\hsize
+ \FBifcapbeside
+ {\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{\let\FR@ifROWFILL\@secondoftwo\FR@loc@\hsize\FBo@wd\linewidth\hsize
+ \FBifcaptop
+ {\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
+ \setbox\tw@\vbox{\null\par\FB@foot\par}%
+ \FBf@ht\ht\tw@\advance\FBf@ht\dp\tw@
+ \FBiffloatrow
+ {\ifdim\FBf@ht>\FBf@max\global\FBf@max\FBf@ht\fi
+ \ifCADJ
+ \FBifcaptop
+ {\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
+ \global\advance\FBc@ht\FBf@max
+ \fi
+ \else
+ \global\advance\FBc@ht\FBf@ht
+ \fi}%
+ \ifdim\FBc@ht>\FBc@max\global\FBc@max\FBc@ht\fi
+ \gdef\FBcheight{\FBc@ht}\gdef\FBfheight{\FBf@ht}%
+ \fi}\relax
+ \def\reserved@a{#2}\ifx\reserved@a\empty
+ \FBiffloatrow{\ifOADJ
+ \ifdim\FBo@ht>\FBo@max\global\FBo@max\FBo@ht\fi
+ \FBifcaptop
+ {\ifnum\FPOScnt=\z@
+ \ifdim\FBf@ht>\FBf@max\global\FBf@max\FBf@ht\fi
+ \fi}\relax
+ \gdef\FBoheight{\FBo@ht}\gdef\FBfheight{\FBf@ht}%
+ \fi}\relax
+ \else
+% \end{macrocode}
+% \changes{v0.2b}{2007/12/09}{The argument with floatbox contents added.}
+% \begin{macrocode}
+ \FBget@@ht{#2}{#3}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FCget@@wd}
+% Counts the width of caption if caption was placed beside float object.
+% \begin{macrocode}
+\newcommand\FCget@@wd[2]{\flrow@FClist
+ \FBiffloatrow\relax
+ {\settowidth\@tempdimb{{\FCleftmargin}{\FCrightmargin}}%
+ \advance\@tempdima-\@tempdimb\advance\hsize-\@tempdimb}%
+ \settowidth\@tempdimb{\floatcapbesidesep}\advance\@tempdima-\@tempdimb
+ \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
+% behavior). The contents of float thrown out in |\box\@ne|.
+% \begin{macrocode}
+ \ifx\FCwidth\relax
+ \setbox\@ne\vbox{\FR@loc@
+ \let\caption\flrow@caption
+ \let\@caption\FBtmp@cap
+ #2}%
+ \FBc@wd=\@tempdimb
+ \else
+ \FBc@wd=\FCwidth
+% \end{macrocode}
+% The |\FCwidth| is local dimension.
+% \begin{macrocode}
+ \fi\FC@ifo@fil{\advance\FB@wd-\FBc@wd}\relax
+ \else
+ \FBc@wd\@tempdima
+ \fi
+ \@tempdima.5\@tempdima}
+% \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.
+%
+% There is na\u\i{}ve check of existence of |\FBwidth| and/or
+% |\FBheight| commands in optional arguments. I hope it could work
+% unless you are manipulating with metre dimensions (I hope you're not
+% preparing a metre book!) or set more than
+% |5\FBwidth| (|5\FBheight|) in \meta{width} (\meta{height}) option.
+% \begin{macrocode}
+\newcommand\FBget@@wd[2]{\@tempswafalse
+ \begingroup
+ \@tempdima-3000pt\let\FBwidth\@tempdima
+ \setlength\dimen@{#1}\ifdim\dimen@<\z@\global\@tempswatrue\fi
+ \endgroup
+ \if@tempswa
+ \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}
+% The width |\FB@wd| localized.
+% \begin{macrocode}
+ \adj@dim\FBo@wd+\FBo@wadj=\FB@wd
+% \end{macrocode}
+% Throw out floatfoot and float footnote contents (if exist).
+% \begin{macrocode}
+ \setbox\flrow@foot\box\voidb@x
+ \setbox\@mpfootins\box\voidb@x
+ \else
+ \setlength\FB@wd{#1}%
+% \end{macrocode}
+% The width |\FB@wd| localized.
+% \begin{macrocode}
+ \adj@dim\FB@wd-\FB@wadj=\FB@wd
+ \adj@dim\FB@wd-\FBo@wadj=\FBo@wd
+ \let\FBwidth\FBo@wd
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FBget@@ht}
+% Counts the height of object if the height optional argument not empty.
+% \changes{v0.2b}{2007/12/09}{The argument with floatbox contents added. Corrected bug
+% with height calculating.}
+% \begin{macrocode}
+\newcommand\FBget@@ht[2]{\@tempswafalse
+ \begingroup
+ \@tempdimb-3000pt\let\FBheight\@tempdimb
+ \setlength\dimen@{#1}\ifdim\dimen@<\z@
+ \global\@tempswatrue\fi
+ \endgroup
+ \if@tempswa
+ \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}\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\relax{\@@FBskip\hrule\@height\z@\@depth\z@}%
+ \vtop{\@@FBbelow}}%
+ \global\advance\FBo@ht-\ht\z@\global\advance\FBo@ht-\dp\z@
+ \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}\relax
+ \fi}\relax
+ \def\FBoheight{\FBo@ht}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FBget@@@ht}
+% If there was set the height of float box this macro
+% calculates height of additional vertical material (except of space
+% created by frames) in object---caption box plus height of
+% caption box. The result is used to get correct height of object box.
+% \begin{macrocode}
+\newcommand\FBget@@@ht{%
+% \end{macrocode}
+% The |\box\z@| settings moved up in |\FBget@@ht| macro.
+% \begin{macrocode}
+% \global\advance\FBo@ht-\ht\z@\global\advance\FBo@ht-\dp\z@
+ \ifdim\FBc@ht>\FBc@max
+ \global\advance\FBo@ht-\FBc@ht
+ \else
+ \global\advance\FBo@ht-\FBc@max
+ \fi
+ \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}\relax
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Storing Heights for Current Float Box}
+%
+% \begin{macro}{\FB@writeaux}
+% \begin{macro}{\FB@readaux}
+% Excerpt from \LaTeX's |\protected@write|. This command is used for
+% printing in \texttt{.aux}-file the necessary settings which will work
+% in next \LaTeX{} run.
+% \begin{macrocode}
+\newcommand\FB@writeaux[1]{%
+ \begingroup
+ \let\thepage\relax\let\protect\@unexpandable@protect
+ \edef\reserved@a{\write\@auxout{\string\gdef
+ \expandafter\string\csname @@FBset@\romannumeral
+ \the\c@FBl@b\endcsname{#1}}}\reserved@a
+ \endgroup
+ \addtocounter{FBl@b}{1}}
+\newcommand\FB@readaux[1]{%
+ \@ifundefined{@@FBset@\romannumeral\the\c@FBl@b}%
+ {#1}{\@nameuse{@@FBset@\romannumeral\the\c@FBl@b}}}
+% \end{macrocode}
+%
+% \begin{macro}{\c@FBl@b}
+% This counter helps to define unique
+% command for each float row environment or object---caption
+% beside box if necessary.
+% \begin{macrocode}
+\newcounter{FBl@b}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Building Caption and Object Boxes}\label{putFB}
+%
+% \begin{macro}{\FR@ifFCBOX}
+% \begin{macro}{\FBs@raise}
+% \begin{macro}{\FBf@raise}
+% \begin{macro}{\FCset@vpos}
+% 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}
+\@ifdefinable\FR@ifFCBOX{\let\FR@ifFCBOX\@secondoftwo}
+\newcommand\FBs@raise{\raisebox{-\totalheight}}
+\newcommand\FBf@raise{}
+% \end{macrocode}
+% Setting of vertical position for beside caption and object.
+% Here is used \LaTeX's |\@parboxto| command, because of here is used
+% analogous mechanism of box building as in |\parbox| command and
+% |minipage| environment.
+% \begin{macrocode}
+\newcommand\FCset@vpos{\@FC@vpos
+ \ifcase\count@
+ \gdef\FC@bbox{$\vcenter\@parboxto\bgroup\vskip\z@}%
+ \gdef\FC@ebox{\vskip\z@\egroup$}%
+ \gdef\FBf@raise{}%
+ \gdef\FBs@raise{\raisebox{-.5\totalheight}}%
+ \or\gdef\FC@bbox{\vtop\@parboxto\bgroup\vskip\z@}%
+ \gdef\FC@ebox{\vskip\z@\egroup}%
+ \FR@ifFCBOX{\gdef\FBf@raise{\raisebox{-\height}}}%
+ {\gdef\FBf@raise{}}%
+ \gdef\FBs@raise{\raisebox{-\totalheight}}%
+ \or\gdef\FC@bbox{\vbox\@parboxto\bgroup}\gdef\FC@ebox{\vskip\z@\egroup}%
+ \FR@ifFCBOX{\gdef\FBf@raise{\raisebox{\depth}}}%
+ {\gdef\FBf@raise{}}%
+ \gdef\FBs@raise{}\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\adj@dim}
+% Dimension defines locally box widths and heights in special styles.
+% The argument |#4| can be set in form like |{\global\hsize}| to
+% globalize result.
+% \begin{macrocode}
+\@ifdefinable\adj@dim{}
+\def\adj@dim#1#2#3=#4{\dimen@\z@#3\ifdim\dimen@=\z@#4#1\else
+ \adj@@dim#1#2#3{#4}\fi}
+\newcommand\adj@@dim[4]{\@tempdima#1\advance\@tempdima#2\dimen@
+ #4=\@tempdima}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Caption---Object Box Building Macro}
+%
+% \begin{macro}{\floatbox}
+% The start of main macro of object---caption box building.
+%
+% The preparation of optional arguments. The option with settings for float
+% box saved to temporary command. For possible including |\floatbox| in |\floatbox|
+% the |\floatbox@depth| counter was added. We need to do all settings and calculations
+% in group.
+% \begin{macrocode}
+\newcommand\floatbox[2][]{\begingroup
+ \def\FB@tmpset{#1}\def\@captype{#2}%
+ \@ifnextchar[{\@floatbox}{\@floatbox[]}}
+\@ifdefinable\@floatbox{}\@ifdefinable\@@floatbox{}
+\def\@floatbox[#1]{%
+ \@ifnextchar[{\@@floatbox[#1]}{\@@floatbox[#1][]}}
+\@ifdefinable\floatbox@depth{\newcount\floatbox@depth}
+\def\@@floatbox[#1][#2]{%
+ \@ifnextchar[{\@@@floatbox[#1][#2]}{\@@@floatbox[#1][#2][]}}%]
+% \end{macrocode}
+%
+% \begin{macro}{\@@@floatbox}
+% Building object---caption box.
+% \begin{macrocode}
+\@ifdefinable\@@@floatbox{}
+\long\def\@@@floatbox[#1][#2][#3]#4#5{\advance\floatbox@depth\@ne
+ \@FB@vpos{#3}%
+% \end{macrocode}
+% If object---caption stays alone here go
+% special style settings for current float type.
+% Then go the settings for caption layout.
+% \begin{macrocode}
+ \if@@FS\else\FR@redefs
+ \ifcase\floatbox@depth\or
+ \flrow@setlist{{\@captype}}\or
+% \end{macrocode}
+% The |\caption| stuff catches |sub\@captype| settings by itself. In this case
+% in the second label were loaded only float layout settings.
+% \changes{v0.2b}{2007/12/10}{The redundant(?) caption settings for subtypes removed.}
+% \begin{macrocode}
+ \flrow@settype{subfloat}\flrow@settype{subtype}\flrow@settype{sub\@captype}%
+ \fi
+ \FRifFBOX\@@setframe\relax\@@FStrue
+ \fi
+% \end{macrocode}
+% Put temporary command with option settings
+% for float box.
+% \begin{macrocode}
+ \FB@tmpset
+% \end{macrocode}
+% 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\relax
+% \end{macrocode}
+% Restoring standard justified paragraph settings${{}+{}}$|\parindent\z@|.
+% \begin{macrocode}
+ \@parboxrestore\leftmargin\z@\rightmargin\z@
+ \floatobjectset\floatfont
+% \end{macrocode}
+% Here is called macro which calculates widths and heights of caption
+% and object.
+% \begin{macrocode}
+ \FBget@box{#1}{#2}{#4#5}%
+% \end{macrocode}
+% In this point defined macros for building of beside object---caption box.
+% \changes{v0.1f}{2005/06/14}{The \cmd{\capstart} added as
+% a)~\cmd{\FR@floatbox} argument (outside float row).}
+% \begin{macrocode}
+ \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 |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
+% b)~\cmd{\FBsetbox@obj} argument (in float row).}
+% \begin{macrocode}
+ {\adj@dim\FB@wd+\FB@wadj=\hsize\linewidth\hsize
+ \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}{\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}
+% End of the group.
+% \begin{macrocode}
+ \endgroup\ignorespaces}
+% \end{macrocode}
+%
+% Code for recounting parameters and building boxes inside |floatrow|
+% environment.
+% \begin{macrocode}
+\newcommand\FR@floatbox[1]{\@tempswafalse
+% \end{macrocode}
+% For beside floats in special layouts of float (e.g. |boxed|
+% or |ruled|) there is necessary the definition of maximum heights
+% of captions and objects to align boxes or rules. Here goes command
+% which loads the result of max dimensions from previous run.
+% \begin{macrocode}
+ \ifOADJ\@tempswatrue\fi\ifCADJ\@tempswatrue\fi
+ \if@tempswa\@ifundefined{FB@@boxmax}{}{\FB@@boxmax}\fi
+% \end{macrocode}
+% Here we create boxes of float contents.
+% \begin{macrocode}
+ \FBsetbox@obj{#1}\begin@FBBOX
+ \FBifcapbeside\flrow@FC@\flrow@FB@
+ \end@FBBOX
+% \end{macrocode}
+% The each float box in float row reduces special counter |FRobj|
+% by~1.
+% \begin{macrocode}
+ \addtocounter{FRobj}\m@ne
+ \@tempswafalse\FR@iffacing\@tempswatrue\relax
+ \ifCADJ\@tempswatrue\fi\ifOADJ\@tempswatrue\fi
+% \end{macrocode}
+% 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
+% countdown of maximum caption and object heights if necessary.
+% At last goes flag for float box layout building.
+% \begin{macrocode}
+ \if@tempswa
+ \FB@writeaux{\string\c@FBcnt\thepage
+ \string\def\string\FB@@boxmax{%
+ \ifOADJ\string\FBo@ht\the\FBo@max
+ \string\FBf@ht\the\FBf@max\fi
+ \ifCADJ\string\FBc@ht\the\FBc@max\fi}}\fi
+ \global\FBbuildfalse
+ \else
+% \end{macrocode}
+% Between floats in float row macro puts separation material.
+% \begin{macrocode}
+% \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}%
+ \fi}
+% \end{macrocode}
+% The macro for storing float object in box in the same way as
+% in plain environment. There is added code for possible usage of
+% \package{color} package and color boxes.
+% \begin{macrocode}
+\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}%
+ {\FB@vbox\FBo@wd\FBoheight\bgroup\FBafil\floatobjectset\floatfont
+ \columnwidth\FBc@wd}%
+ #1\FBbfil\egroup\color@endbox
+ \let\@currbox\float@box}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Building Float Row}
+%
+% \FRorisubsubsection{The Flag, Counter and Dimension for Float Row Environment}
+%
+% \begin{macro}{\FBiffloatrow}
+% Switch used in |\floatbox| to define whether it placed inside of
+% environment of beside floats (float row) or not.
+% \begin{macrocode}
+\@ifdefinable\FBiffloatrow{\let\FBiffloatrow\@secondoftwo}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@FRobj}
+% Counter of objects in a row, which helps to put correct spaces between
+% float boxes and also to define the rest width (|\Xhsize|) for boxes.
+% \begin{macrocode}
+\newcounter{FRobj}
+\newcounter{FRsobj}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Xhsize}
+% \begin{macro}{\Yhsize}
+% \begin{macro}{\Zhsize}
+% This dimension is used for defining of the rest width which float box
+% can occupy in current float row environment.
+% \begin{macrocode}
+\newlength\Xhsize
+% \end{macrocode}
+% Next dimensions are used for calculation of the common height of photos
+% in a row.
+% \begin{macrocode}
+\newlength\sXhsize
+\newlength\Zhsize
+\newlength\sZhsize
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Float Row Environment}
+%
+% \begin{environment}{floatrow}
+% \label{floatrow}
+% Environment for placing beside floats (of one type).
+% First goes counter of floats in row, then the settings for float layout.
+% \changes{v0.2a}{2007/08/24}{Redefined boxes for building of above and below
+% 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
+% \end{macrocode}
+% If depth of row more than~0 the subfloatrow settings are switched.
+% \changes{v0.3b}{2009/08/02}{Fixed bug of \cs{thisfloatsetup} usage}
+% \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
+ \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{\floatrowsep}\advance\Xhsize-\count@\@tempdima
+ \@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}
+ \hsize\@tempdimb\ignorespaces}
+% \end{macrocode}
+% Macro for float row end.
+% \begin{macrocode}
+\def\endfloatrow{\ifdim\lastskip>\z@\unskip\fi
+ \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}
+% \end{environment}
+%
+% \begin{environment}{subfloatrow}\label{subfloatrow}
+% Environment for placing beside subfloats. It is simpler than
+% |floatrow|. First go counter of floats (here it is local)
+% in row, then the settings for float layout.
+% \changes{v0.2a}{2007/08/24}{The \cmd{\subfloatrow} moved from \package{fr-subfig}
+% in main package body}
+% \begin{macrocode}
+\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
+ \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}
+% \end{macrocode}
+% \end{environment}
+%
+% The definition of subfloat separator.
+% \begin{macrocode}
+\newcommand\subfloatrowsep{\hskip\columnsep}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@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{\Zhsize}\fi
+ \FR@calc@CommonHeight#2}
+\@ifdefinable\FR@Zunitlength{\newdimen\FR@Zunitlength}
+% \end{macrocode}
+% 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@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.
+% \begin{macrocode}
+ \divide\@tempb\count@\relax\FR@Zunitlength\@tempb\relax
+ \@tempdima\CommonHeight\relax
+% \end{macrocode}
+% Now divide |\CommonHeight| in |1pt| segments.
+% \begin{macrocode}
+ \count@\@tempdima\relax\divide\count@16384\relax
+ \@tempdima\count@\FR@Zunitlength\relax
+% \end{macrocode}
+% And then these segments get value of |\FR@Zunitlength|.
+% \begin{macrocode}
+ \edef\CommonHeight{\the\@tempdima}}
+% \end{macrocode}
+%
+% \subsection{Aligning Float Boxes}
+%
+% \begin{macro}{\CenterFloatBoxes}
+% \begin{macro}{\TopFloatBoxes}
+% \begin{macro}{\BottomFloatBoxes}
+% \begin{macro}{\PlainFloatBoxes}
+% Aligning float boxes.
+% Firstly defined plain macros for float boxes.
+% \begin{macrocode}
+\newcommand\begin@FBBOX{\vbox\bgroup}
+\def\end@FBBOX{\egroup}
+% \end{macrocode}
+% Here these boxes are redefined to align floats in desired way.
+% First definition for centered.
+% \begin{macrocode}
+\newcommand\CenterFloatBoxes{\CADJfalse\OADJfalse
+ \buildFBBOX{\hbox\bgroup$\vcenter\bgroup\vskip\z@}%
+ {\vskip\z@\egroup$\egroup}}
+% \end{macrocode}
+% Definition for topped.
+% \begin{macrocode}
+\newcommand\TopFloatBoxes{\CADJfalse\OADJfalse
+ \buildFBBOX{\vtop\bgroup\vskip\z@}{\egroup}}
+% \end{macrocode}
+% Definition for aligned bottom.
+% \begin{macrocode}
+\newcommand\BottomFloatBoxes{\CADJfalse\OADJfalse
+ \buildFBBOX{\vbox\bgroup}{\vskip\z@\egroup}}
+% \end{macrocode}
+% Restoring of plain behavior of boxes in |floatrow|.
+% \begin{macrocode}
+\newcommand\PlainFloatBoxes{%
+ \gdef\begin@FBBOX{\vbox\bgroup}\gdef\end@FBBOX{\egroup}}
+% \end{macrocode}
+% Macro which defines |\begin@FBBOX| and |\end@FBBOX|.
+% \begin{macrocode}
+\newcommand\buildFBBOX[2]{\gdef\begin@FBBOX{#1}\gdef\end@FBBOX{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\newdimentocommand}
+% \begin{macro}{\renewdimentocommand}
+% \begin{macro}{\newskiptocommand}
+% \begin{macro}{\renewskiptocommand}
+% \begin{macro}{\newlengthtocommand}
+% \begin{macro}{\renewlengthtocommand}
+% These macros substitute usage of \LaTeX's macro |\newlength| and \TeX's
+% macros |\newdimen| and |\newskip|. These commands are are placed as prefix
+% before \LaTeX's commands |\settowidth|/\allowbreak|\settoheght|/\allowbreak
+% |\settodepth|, |\setlength| and |\addtolength|.
+% \begin{macrocode}
+\def\newdimentocommand #1#2#3{%
+ #1\@tempdima{#3}\@ifdefinable#2{\xdef#2{\the\@tempdima}}}
+\def\renewdimentocommand#1#2#3{%
+ #1\@tempdima{#3}\xdef#2{\the\@tempdima}}
+\def\newskiptocommand #1#2#3{%
+ #1\@tempskipa{#3}\@ifdefinable#2{\xdef#2{\the\@tempskipa}}}
+\def\renewskiptocommand #1#2#3{%
+ #1\@tempskipa{#3}\xdef#2{\the\@tempskipa}}
+% \end{macrocode}
+% The company to standard |\newlength| command.
+% \begin{macrocode}
+\def\newlengthtocommand{\newskiptocommand}
+\def\renewlengthtocommand{\renewskiptocommand}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+%</floatrow>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*floatsetup>
+% \end{macrocode}
+%
+% \subsection{Float Settings Stuff}
+%
+% \FRorisubsubsection{Definitions Analogous to The \package{caption}'s Ones}
+%
+%
+% \begin{macro}{\flrow@setbool}
+% The next definition follows \package{caption} package macro
+% to organize analogous mechanism of booleans.
+% It uses |\caption@set@bool| macro.
+% \changes{v0.2b}{2007/09/14}{The \cmd{\flrow@setbool}}
+% \begin{macrocode}
+\newcommand*\flrow@setbool[1]{%
+ \expandafter\caption@set@bool\csname FR@if#1\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Defining Stuff for Float Layout Settings}
+%
+% \begin{macro}{\floatsetup}
+% This macro analogous to |\captionsetup|.
+% \begin{macrocode}
+\def\floatsetup{\@ifnextchar[\flrow@setuptype\flrow@setup}
+\def\flrow@setuptype[#1]#2{%
+ \@ifundefined{flrow@typ@#1}{\@namedef{flrow@typ@#1}{#2}}%
+ {\expandafter\l@addto@macro\csname flrow@typ@#1\endcsname{,#2}}}
+% \end{macrocode}
+% Setup for only following float.
+% \begin{macrocode}
+\newcommand\thisfloatsetup{\floatsetup[tmpset]}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flrow@setup}
+% \begin{macro}{\flrow@esetup}
+% \begin{macro}{\flrow@settype}
+% Macros analogous to |\caption@setup|, |\caption@esetup| and
+% |\caption@setoptions|. Here is used the |\caption@setkeys| instead of |setkeys|
+% to get correct error messages about misspelled keys.
+% \begin{macrocode}
+\def\flrow@setup{\caption@setkeys[floatrow]{floatrow}}
+\def\flrow@esetup#1{%
+ \edef\FR@tmp{\noexpand\flrow@setup{#1}}\FR@tmp}
+\def\flrow@settype#1{\@ifundefined{flrow@typ@#1}{}%
+ {\flrow@esetup{\csname flrow@typ@#1\endcsname}}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\flrow@setlist}
+% \begin{macro}{\flrow@FClist}
+% This macro declares list of float and caption settings (like |widefloat|,
+% {rotfloat} etc.); the temporary settings created by |\thisfloatsetup|
+% command are added at very end of the float
+% settings list. The contents of temporary settings are emptied immediately after
+% their first usage, so the second usage of emptied settings discard
+% previously defined temporary definitions.
+% But there are two points where the additional list of special settings is loaded:
+% the floats with the option |[H]| and at the start of |floatrow|
+% environment. In this cases is used starred form of |\flrow@setlist|
+% without temporary settings (since they always will be loaded
+% when floating environment is loaded or, in the case of usage
+% outside floating environment, the |\floatbox| command is loaded).
+% \changes{v0.3b}{2009/08/02}{Fixed bug of \cs{thisfloatsetup} usage}
+% \begin{macrocode}
+\newcommand\flrow@setlist{\@ifstar\flrow@setlist@@\flrow@setlist@}
+\newcommand\flrow@setlist@[1]{\@flrow@setlist#1{tmpset};%
+ \FR@ifCST{\flrow@capsetup}\relax\@cap@setlist#1;%
+ \caption@setposition{\FBifcaptop tb}}
+\newcommand\flrow@setlist@@[1]{\@flrow@setlist#1;%
+ \FR@ifCST{\flrow@capsetup}\relax\@cap@setlist#1;%
+ \caption@setposition{\FBifcaptop tb}}
+\newcommand\@flrow@setlist[1]{\flrow@settype{#1}\@ifnextchar;\@gobble
+ \@flrow@setlist}
+% \end{macrocode}
+% The compatibility with both version of \package{caption} \texttt{3.0q}
+% and new version \texttt{3.1} (code suggestions of Axel Sommerfeldt).
+% \begin{macrocode}
+\@ifundefined{caption@setoptions}{\let\caption@setoptions\caption@settype}{}
+% \end{macrocode}
+% The code of |\@cap@setlist| co-operated with \package{caption} package
+% (code suggestions of Axel Sommerfeldt).
+% \begin{macrocode}
+\newcommand\@cap@setlist[1]{\caption@setoptions{#1}%
+ \@ifnextchar;{\let\caption@setfloattype\@gobble\@gobble}\@cap@setlist}
+% \end{macrocode}
+% This macro adds list of possible settings for beside captions.
+% \begin{macrocode}
+\newcommand\flrow@FClist{\flrow@setlist
+ {{floatbeside}{capbesidefloat}{\@captype beside}{capbeside\@captype}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\clearfloatsetup}
+% Removes all settings for chosen type of float. The |\@nameundef| macro is
+% defined in \package{caption}.
+% \begin{macrocode}
+\newcommand*\clearfloatsetup[1]{\@nameundef{flrow@typ@#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DeclareFROpt}
+% The |\DeclareCaptionOption|-analog.\\
+% Since this command has internal usage (before end of package) it has
+% abbreviation-like name.
+% \begin{macrocode}
+\newcommand\DeclareFROpt{%
+ \@ifstar{\flrow@declopt\AtEndOfPackage}
+ {\flrow@declopt\@gobble}}
+\newcommand*\flrow@declopt[2]{%
+ #1{\undefine@key{floatrow}{#2}}\define@key{floatrow}{#2}}
+% \end{macrocode}
+% These macros allowed only in preamble.
+% \begin{macrocode}
+\@onlypreamble\DeclareFROpt
+\@onlypreamble\flrow@declopt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{rawfloats}
+% The default behavior of floats is like in \package{float}-like mode after
+% |\restylefloat|.
+% \begin{macrocode}
+\@ifdefinable\FR@ifrawfloats{\let\FR@ifrawfloats\@secondoftwo}
+% \end{macrocode}
+% The boolean key which defines, whether floats run in plain \LaTeX{} mode.
+% \begin{macrocode}
+\DeclareFROpt*{rawfloats}[0]{\flrow@setbool{rawfloats}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{doublefloataswide}
+% Starred environments work like non-starred with special |\floatsetup| settings.
+% \begin{macrocode}
+\@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
+% for wide floats.
+% \begin{macrocode}
+\DeclareFROpt{doublefloataswide}[0]{\flrow@setbool{doubleaswide}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{floatHaslist}
+% The anchored float has list penalties around. If there are not blank line or
+% |\par| command, next paragraph starts without indentation.
+% \begin{macrocode}
+\@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.
+% \begin{macrocode}
+\DeclareFROpt{floatHaslist}[0]{\flrow@setbool{floatHaslist}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Declaring of Float Styles}
+%
+% \begin{macro}{\DeclareFloatStyle}
+% Declares float style using |\floatsetup| mechanism.
+% \begin{macrocode}
+\newcommand*\DeclareFloatStyle[2]{%
+ \global\@namedef{flrow@sty@#1}{#2}}
+% \end{macrocode}
+% This macro is allowed only in preamble.
+% \begin{macrocode}
+\@onlypreamble\DeclareFloatStyle
+% \end{macrocode}
+% The definition of command which defines settings for new float style.
+% There are also loaded the co-named caption settings, if exist.
+% \changes{v0.2a}{2007/08/24}{Added star to \cmd{\caption@setstyle}
+% (AS).}
+% \begin{macrocode}
+\newcommand*\flrow@setstyle[1]{%
+ \@ifundefined{flrow@sty@#1}%
+ {\flrow@error{Undefined float style `#1'}}%
+ {\FBstyle@reset
+ \def\flrow@capsetup{%
+ \@ifundefined{caption@sty@#1}{}{\caption@setstyle*{#1}}%
+ \caption@setoptions {#1}}%
+ \flrow@esetup{\csname flrow@sty@#1\endcsname}}}
+% \end{macrocode}
+% Declarations of \package{float} package's emulating styles and new
+% \package{floatrow} styles. The |plain| style is consists of default settings.
+% \begin{macrocode}
+\DeclareFloatStyle{plain}{}
+\DeclareFloatStyle{plaintop}{capposition=top}
+\DeclareFloatStyle{boxed}{captionskip=2pt,
+ framestyle=fbox,heightadjust=object,framearound=object}
+\DeclareFloatStyle{ruled}{precode=thickrule,midcode=rule,postcode=lowrule,
+ capposition=top,heightadjust=all}
+\DeclareFloatStyle{Ruled}{style=ruled,capposition=TOP}
+\DeclareFloatStyle{Plaintop}{capposition=TOP}
+\DeclareFloatStyle{Boxed}{style=boxed,framefit=yes}
+\DeclareFloatStyle{BOXED}{framestyle=fbox,
+ framefit=yes,heightadjust=all,framearound=all}
+% \end{macrocode}
+%
+% The default style settings.
+% \changes{v0.2b}{2007/11/09}{The style with default settings added.}
+% \begin{macrocode}
+\DeclareFloatStyle{default}{%
+ style=plain,captionskip=10pt,
+ margins=centering,objectset=centering,
+ capbesideposition=left,facing=no,
+ floatrowsep=columnsep,capbesidesep=columnsep,
+ font=default,footfont=footnotesize}
+% \end{macrocode}
+%
+% \begin{macro}{style}
+% Declaring of key for float styles.
+% \begin{macrocode}
+\DeclareFROpt{style}{\flrow@setstyle{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% The flag, which loads related caption style (if exists), to chosen float
+% style. The \package{caption} 3.0 package defines only one related caption
+% style to \package{float} package's style---|ruled|.
+% \begin{macrocode}
+\@ifdefinable\FR@ifCST{\let\FR@ifCST\@firstoftwo}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{relatedcapstyle}
+% The boolean key which defines, whether to use caption style, related
+% to chosen float style.
+% \begin{macrocode}
+\DeclareFROpt{relatedcapstyle}[0]{\flrow@setbool{CST}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Defining Font}
+%
+% \begin{macro}{font}
+% \begin{macro}{footfont}
+% Fonts for object and |\floatfoot| contents. The settings of font for
+% |\floatfoot| use |\captionsetup| mechanism, so its name follows
+% \package{caption} package's rules (|\captionfootfont|).
+% \begin{macrocode}
+\DeclareFROpt{font}{\flrow@setfont{font}{#1}}
+\DeclareFROpt{footfont}{\captionsetup[floatfoot]{font={#1}}}
+\DeclareCaptionOption{footfont}{\caption@setfont{footfont}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \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}
+\@ifdefinable\floatfont{\let\floatfont\empty}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\captionfootfont}
+% Font for |\legend|-like command |\floatfoot|. This font is used inside
+% macro which uses \package{caption} package mechanism, so the name of this
+% font follows rules of font naming in \package{caption} package.
+% \begin{macrocode}
+\newcommand*\captionfootfont{\normalfont\footnotesize}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DeclareFloatFont}
+% The |\DeclareCaptionFont|-twin (uses
+% caption's key-val settings).\\
+% It's usage:\\
+% |\DeclareFloatFont{|\meta{name}|}{|\meta{code}|}|.
+% This macro is allowed only in preamble.
+% \begin{macrocode}
+\let\DeclareFloatFont\DeclareCaptionFont
+\@onlypreamble\DeclareFloatFont
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flrow@setfont}
+% The |\caption@setfont|-analog.\\
+% It's usage:\\
+% |\flrow@setfont{|\meta{command}|}{|\meta{keyval-list of names}|}|.
+% \changes{v0.1p}{2007/06/24}{Changed definition of \cmd{\flrow@setfont}
+% for compatibility with caption 3.1 (AS).}
+% \begin{macrocode}
+\newcommand*\flrow@setfont[2]{%
+ \caption@setfont{@tempa}{#2}%
+ \expandafter\let\csname float#1\endcsname\caption@tempa}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Declaring of Caption Position}
+%
+% \begin{macro}{capposition}
+% Keys for defining caption position in float box.
+% \begin{macrocode}
+\DeclareFROpt{capposition}{\flrow@cappos{#1}}
+\DeclareFROpt{position}{\flrow@cappos{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flrow@cappos}
+% Macro analogous to |\caption@setposition|. Instead of |auto| here is
+% used |beside| set. Here are also settings for key |position=| from
+% |\captionsetup|.
+% \begin{macrocode}
+\newcommand*\flrow@cappos[1]{%
+ \caption@ifinlist{#1}{t,top,above}{\captop\nocapbeside
+ }{\caption@ifinlist{#1}{T,TOP,ABOVE}{\CAPTOP\nocapbeside
+ }{\caption@ifinlist{#1}{b,bottom,below,default}{\capbot\nocapbeside
+ }{\caption@ifinlist{#1}{beside,side}{\caption@setposition{a}\capbeside
+ }{\flrow@error{Undefined caption position `#1'}%
+ }}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FBifcaptop}
+% \begin{macro}{\captop}
+% \begin{macro}{\capbot}
+% The positions for captions in float box. There are defined
+% traditional place of captions at the bottom of
+% object---caption box.
+% \begin{macrocode}
+\@ifdefinable\FBifcaptop{\let\FBifcaptop\@secondoftwo}
+\newcommand\captop{\let\FBifcaptop\@firstoftwo}
+\newcommand\capbot{\let\FBifcaptop\@secondoftwo}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FBifCAPTOP}
+% \begin{macro}{\CAPTOP}
+% Someone, using beside float boxes (see~\ref{floatrow}),
+% would prefer the captions, which placed at the top
+% of these boxes to align them by top line (the default
+% alignment is the bottom line of upper box and the top line of
+% lower box).
+% \begin{macrocode}
+\@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.
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FBifcapbeside}
+% \begin{macro}{\capbeside}
+% \begin{macro}{\nocapbeside}
+% There is flag and commands for printing caption and object beside.
+% \begin{macrocode}
+\@ifdefinable\FBifcapbeside{}\let\FBifcapbeside\@secondoftwo
+\newcommand\capbeside{\let\FBifcapbeside\@firstoftwo}
+\newcommand\nocapbeside{\let\FBifcapbeside\@secondoftwo}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Defining for Beside Captions}
+%
+% \begin{macro}{capbesideframe}
+% This boolean key declares whether near beside caption stays framed
+% object.
+% \begin{macrocode}
+\DeclareFROpt{capbesideframe}[0]{\flrow@setbool{FCBOX}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{capbesidewidth}
+% This key defines width of beside caption.
+% \begin{macrocode}
+\DeclareFROpt{capbesidewidth}[1]{\flrow@FCc@wd{#1}}
+\@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\@secondoftwo
+ }{\useFCwidth\def\FCwidth{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{capbesideposition}
+% Declares position of beside caption in document.
+% \begin{macrocode}
+\DeclareFROpt{capbesideposition}{\flrow@scpos{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DeclareSCPos}
+% \begin{macro}{\flrow@scpos}
+% The key which defines position of beside captions: vertical and
+% horizontal. This macro is allowed only in preamble. This key is
+% internal (usage till end of package) so it has abbreviation-like name.
+% \begin{macrocode}
+\newcommand\DeclareSCPos[2]{%
+ \define@key{flrow@scpos}{#1}[]{\g@addto@macro\FR@tmp{#2}}}
+\newcommand*\flrow@scpos[1]{%
+ \let\FR@tmp\@empty
+ \begingroup\caption@setkeys[floatrow]{flrow@scpos}{#1}\endgroup
+ \FR@tmp}
+\@onlypreamble\DeclareSCPos
+% \end{macrocode}
+% Declaring options.
+% \begin{macrocode}
+\DeclareSCPos{left}{\def\@FC@hpos{\let\FR@iffacing\@secondoftwo\count@\@ne}}
+\DeclareSCPos{right}{\def\@FC@hpos{\let\FR@iffacing\@secondoftwo\count@\z@}}
+\DeclareSCPos{inside}{\def\@FC@hpos{\let\FR@iffacing\@firstoftwo
+ \count@\c@FBcnt\ifnum\count@=\z@\count@\@ne\fi
+ }}
+\DeclareSCPos{outside}{\def\@FC@hpos{\let\FR@iffacing\@firstoftwo
+ \count@\c@FBcnt\ifnum\count@=\z@\else\advance\count@\@ne\fi
+ }}
+\DeclareSCPos{center}{\def\@FC@vpos{\count@\z@}}
+\DeclareSCPos{top}{\def\@FC@vpos{\count@\@ne}}
+\DeclareSCPos{bottom}{\def\@FC@vpos{\count@\tw@}}
+% \end{macrocode}
+% Command for default key: |capbesideposition=bottom|
+% \begin{macrocode}
+\newcommand*\@FC@vpos{\count@\tw@}
+% \end{macrocode}
+% Command for default key: |capbesideposition=left|.
+% In version 0.2b of package it was |capbesideposition=inside|, since
+% default key is |facing=no|, the
+% |capbesideposition=inside| will be equal to |capbesideposition=left|.
+% \begin{macrocode}
+\newcommand*\@FC@hpos{\let\FR@iffacing\@secondoftwo\count@\@ne}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\c@FBcnt}
+% Count used as flag for facing layouts.
+% \begin{macrocode}
+\newcounter{FBcnt}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{footposition}
+% Keys for defining foot text position.
+% \begin{macrocode}
+\DeclareFROpt{footposition}{\flrow@ftpos{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DeclareFtPos}
+% \begin{macro}{\flrow@ftpos}
+% Settings for positions of float foot material (footnotes and foot text).
+% This macro is allowed only in preamble.
+% \begin{macrocode}
+\newcommand\DeclareFtPos[2]{%
+ \define@key{flrow@ftpos}{#1}[]{\g@addto@macro\FR@tmp{#2}}}
+\newcommand*\flrow@ftpos[1]{%
+ \let\FR@tmp\@empty
+ \begingroup\caption@setkeys[floatrow]{flrow@ftpos}{#1}\endgroup
+ \FR@tmp}
+\@onlypreamble\DeclareFtPos
+% \end{macrocode}
+% Declaring options.
+% \begin{macrocode}
+\@ifdefinable\FPOScnt{\newcount\FPOScnt}
+\DeclareFtPos{caption}{\FPOScnt1\relax}
+\DeclareFtPos{bottom}{\FPOScnt2\relax}
+\DeclareFtPos{default}{\FPOScnt0\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{heightadjust}
+% Keys for vertical adjustment and alignment.
+% \begin{macrocode}
+\DeclareFROpt{heightadjust}{\flrow@htadj{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DeclareHtAdj}
+% \begin{macro}{\flrow@htadj}
+% This key defines adjustment of heights of objects or/and captions
+% in float row.
+% This macro is allowed only in preamble.
+% \begin{macrocode}
+\newcommand\DeclareHtAdj[2]{%
+ \define@key{flrow@htadj}{#1}[]{\g@addto@macro\FR@tmp{#2}}}
+\newcommand*\flrow@htadj[1]{\let\FR@tmp\@empty
+ \begingroup\caption@setkeys[floatrow]{flrow@htadj}{#1}\endgroup
+ \FR@tmp}
+\@onlypreamble\DeclareHtAdj
+% \end{macrocode}
+% Declaring options.
+% \begin{macrocode}
+\DeclareHtAdj{all}{\CADJtrue\OADJtrue}
+\DeclareHtAdj{caption}{\CADJtrue}
+\DeclareHtAdj{object}{\OADJtrue}
+\DeclareHtAdj{none}{\CADJfalse\OADJfalse}
+\DeclareHtAdj{nocaption}{\CADJfalse}
+\DeclareHtAdj{noobject}{\OADJfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifCADJ}
+% \begin{macro}{\ifOADJ}
+% These flags define whether common height is used of captions
+% or/and objects in float row.
+% \begin{macrocode}
+\newif\ifCADJ
+\newif\ifOADJ
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{valign}
+% Keys for vertical alignment.
+% \begin{macrocode}
+\DeclareFROpt{valign}{\@FB@vpos{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@FB@vpos}
+% The vertical alignment of float objects in float row. The fill skips for
+% |c|enter and |s|tretch alignment were set in |\vss|-like mode.
+% \begin{macrocode}
+\newcommand\@FB@vpos[1]{%
+ \if#1t\def\FBafil{}\def\FBbfil{\vss}\else
+ \if#1b\def\FBafil{\vss}\def\FBbfil{}\else
+ \if#1c\def\FBafil{\vskip0ptplus1fillminus1000pt}%
+ \def\FBbfil{\vskip0ptplus1fillminus1000pt}\else
+ \if#1s\def\FBafil{\vskip0ptminus1000pt}%
+ \def\FBbfil{\vskip0ptminus1000pt}%
+ \fi\fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Facing Pages}
+%
+% \begin{macro}{\FR@iffacing}
+% \begin{macro}{facing}
+% Defines, if necessary, flag for facing pages.
+% \begin{macrocode}
+\@ifdefinable\FR@iffacing{\let\FR@iffacing\@secondoftwo}
+\DeclareFROpt{facing}[1]{\flrow@setbool{facing}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FB@facing}
+% Flag and command for |facing=|.
+% \begin{macrocode}
+\newcommand\FB@facing{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Float Box and Float Object Settings}
+%
+% \begin{macro}{margins}
+% \begin{macro}{\flrow@FBAlign}
+% Declaring of option for |\floatbox| alignment and margins material.
+% \begin{macrocode}
+\DeclareFROpt{margins}{\flrow@FBAlign{#1}}
+% \end{macrocode}
+% Macros analogous to |\caption@setjustification|.
+% \begin{macrocode}
+\newcommand*\flrow@FBAlign[1]{%
+ \@ifundefined{flrow@mj@#1}%
+ {\flrow@error{Undefined float alignment `#1'}}%
+ {\@nameuse{flrow@mj@#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\DeclareMarginSet}
+% This macro defines margin filling material.
+% This macro is allowed only in preamble.
+% \begin{macrocode}
+\newcommand*\DeclareMarginSet[2]{%
+ \global\@namedef{flrow@mj@#1}{#2}}
+\@onlypreamble\DeclareMarginSet
+% \end{macrocode}
+% \end{macro}
+%
+% Declaring of float box alignment. We don't know whether \package{longtable}
+% is loaded. Since in original package (till version v4.11) these skips
+% were defined through |\newskip| command it is not harm to repeat this code
+% for a while.
+% \begin{macrocode}
+\newskip\LTleft\newskip\LTright
+\DeclareMarginSet{centering}{\setfloatmargins{\hfill}{\hfill}%
+ \LTleft=\fill \LTright=\fill}
+\DeclareMarginSet{raggedright}{\setfloatmargins{}{\hfil}%
+ \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}
+%
+% \begin{macro}{\floatfacing}
+% Defines settings accordingly to left (even) or right (odd) pages.
+% Starred from used for facing settings of float with beside captions.
+% \begin{macrocode}
+\newcommand\floatfacing{\@ifstar
+ {\@FC@hpos\floatfacing@}{\FB@facing\floatfacing@}}
+\newcommand\floatfacing@[2]{\ifodd\count@#1\else#2\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\floatboxmargins}
+% \begin{macro}{\floatrowmargins}
+% \begin{macro}{\floatcapbesidemargins}
+% First goes definition for margins around alone float box.
+% Second defines margins in float row.
+% Third---margins around float box with beside caption.
+%
+% You may define different settings for each of these layouts, or set
+% common margins, using macro |\setfloatmargins|.
+% \begin{macrocode}
+\newcommand\floatboxmargins{\def\FR@tmp{FB}\FB@mset}
+\newcommand\floatrowmargins{\def\FR@tmp{FR}\FB@mset}
+\newcommand\floatcapbesidemargins{\def\FR@tmp{FC}\FB@mset}
+% \end{macrocode}
+% To create facing and non-facing layout in macros |\FB@mset@| and
+% |\FB@@mset| loaded definition of |\FB@facing| command. The temporary
+% |\count@| get value of |\c@FBcnt|,
+% which is usually equals to number of page where float appears.
+% \begin{macrocode}
+\newcommand\FB@mset{\@ifstar{\FB@mset@}{\FB@@mset}}
+\newcommand\FB@mset@[2]{%
+ \def\FB@facing{\let\FR@iffacing\@firstoftwo\count@\c@FBcnt}%
+ \@namedef{\FR@tmp leftmargin}{\floatfacing{#1}{#2}}%
+ \@namedef{\FR@tmp rightmargin}{\floatfacing{#2}{#1}}}
+\newcommand\FB@@mset[2]{\def\FB@facing{}%
+ \@namedef{\FR@tmp leftmargin}{#1}\@namedef{\FR@tmp rightmargin}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\setfloatmargins}
+% Alignment settings for object---caption boxes and float rows.
+% \begin{macrocode}
+\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}%
+ \def\FR@tmp{FC}\FB@mset@{#1}{#2}}
+\newcommand\FB@@allset[2]{%
+ \def\FR@tmp{FR}\FB@@mset{#1}{#2}%
+ \def\FR@tmp{FB}\FB@@mset{#1}{#2}%
+ \def\FR@tmp{FC}\FB@@mset{#1}{#2}}
+% \end{macrocode}
+% Default setting: centering of floats.
+% \begin{macrocode}
+\setfloatmargins\hfill\hfill
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{objectset}
+% \begin{macro}{justification}
+% Declaring of option for float object contents' alignment.
+% \begin{macrocode}
+\DeclareFROpt{objectset}{\flrow@FBoAlign{#1}}
+\DeclareFROpt{justification}{\flrow@FBoAlign{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\DeclareObjectSet}
+% The |\DeclareCaptionJustification|-twin (uses
+% caption's key-val settings).\\
+% Macros for float object's contents justification and |\floatbox|
+% alignment. This macro is allowed only in preamble.
+% \begin{macrocode}
+\let\DeclareObjectSet\DeclareCaptionJustification
+\@onlypreamble\DeclareObjectSet
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flrow@FBoAlign}
+% |\caption@setjustification|-analog (uses
+% caption's key-val settings).\\
+% Command for |objectset=|
+% \begin{macrocode}
+\newcommand*\flrow@FBoAlign[1]{%
+ \@ifundefined{caption@hj@#1}%
+ {\flrow@error{Undefined object setting `#1'}}%
+ {\expandafter\let\expandafter\floatobjectset
+ \csname caption@hj@#1\endcsname}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\floatobjectset}
+% Definition of command for object alignment
+% \begin{macrocode}
+\newcommand*\floatobjectset{\centering}
+% \end{macrocode}
+% \end{macro}
+% \changes{v0.1f}{2005/06/14}{The \cmd{\centerlast} \cmd{\rightlast}
+% commands deleted.}
+%
+% \subsubsection{Defining Float Width}
+%
+% \begin{macro}{floatwidth}
+% The float width settings mainly for plain floating environments.
+% \begin{macrocode}
+\DeclareFROpt{floatwidth}{\flrow@FBo@wd{#1}}
+\@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\@firstoftwo}
+\newcommand\nofilFCOhsize{\let\FC@ifo@fil\@secondoftwo}
+\newcommand\flrow@setwd{\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\flrow@FBo@wd}
+% Settings for the width of object.
+% \begin{macrocode}
+\newcommand\flrow@FBo@wd[1]{%
+ \caption@ifinlist{#1}{none,sidefil}{\filFCOhsize
+ }{\nofilFCOhsize\def\flrow@setwd{\@tempdima=#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Defining Float Separators}
+%
+% \begin{macro}{floatrowsep}
+% \begin{macro}{capbesidesep}
+% Option |floatrowsep| sets separations for beside float boxes
+% in float row.
+% \begin{macrocode}
+\DeclareFROpt{floatrowsep}{\flrow@setFRsep\floatrowsep{#1}}
+% \end{macrocode}
+% Option |subfloatrowsep| sets separations for beside captions and objects.
+% \begin{macrocode}
+\DeclareFROpt{subfloatrowsep}{\flrow@setFRsep\subfloatrowsep{#1}}
+% \end{macrocode}
+% Option |capbesidesep| sets separations for beside captions.
+% \begin{macrocode}
+\DeclareFROpt{capbesidesep}{\flrow@setFRsep\floatcapbesidesep{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\DeclareFloatSeparators}
+% \begin{macro}{\flrow@setFRsep}
+% \begin{macro}{\flrow@setFCsep}
+% Next macros declare material, defined for usage as separator of
+% both float boxes in |floatrow| environment and for beside
+% object and caption.
+%
+% The |\DeclareCaptionLabelSeparator|-twin (uses
+% caption's key-val settings).\\
+% This macro is allowed only in preamble.
+% \begin{macrocode}
+\let\DeclareFloatSeparators\DeclareCaptionLabelSeparator
+\@onlypreamble\DeclareFloatSeparators
+% \end{macrocode}
+%
+% The |\caption@setlabelseparator|-analog (uses
+% caption's key-val settings).\\
+% Command which defines settings for separators in float row, and
+% between beside caption and float object.
+% \begin{macrocode}
+\newcommand*\flrow@setFRsep[2]{%
+ \@ifundefined{caption@lsep@#2}%
+ {\flrow@error{Undefined float separator `#2'}}%
+ {\expandafter\let\expandafter#1\csname caption@lsep@#2\endcsname}}
+% \end{macrocode}
+% A few options define possible separators. In float settings can be used the caption separators
+% |quad| and |none|.
+% \begin{macrocode}
+\DeclareFloatSeparators{columnsep}{\hskip\columnsep}
+%\DeclareFloatSeparators{quad}{\quad}
+\DeclareFloatSeparators{qquad}{\qquad}
+\DeclareFloatSeparators{fil}{\hskip\columnsep plus1fil}
+\DeclareFloatSeparators{fill}{\hskip\columnsep plus1fill}
+%\DeclareFloatSeparators{none}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\floatrowsep}
+% \begin{macro}{\floatcapbesidesep}
+% Separators between beside floats, and between object and
+% beside caption.
+% \begin{macrocode}
+\newcommand\floatrowsep{\hskip\columnsep}
+\newcommand\floatcapbesidesep{\hskip\columnsep}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Defining Float Rules/Skips}
+%
+% \begin{macro}{precode}
+% \begin{macro}{rowprecode}
+% \begin{macro}{midcode}
+% \begin{macro}{postcode}
+% \begin{macro}{rowpostcode}
+% Keys for building of float style (rules).
+% \begin{macrocode}
+\DeclareFROpt{precode}{\flrow@FBrule\@@FRabove\@@FBabove{#1}}
+\DeclareFROpt{rowprecode}{\flrow@FRrule\@@FRabove\@@FBabove{#1}}
+\DeclareFROpt{midcode}{\flrow@FBskip{#1}}
+\DeclareFROpt{postcode}{\flrow@FBrule\@@FRbelow\@@FBbelow{#1}}
+\DeclareFROpt{rowpostcode}{\flrow@FRrule\@@FRbelow\@@FBbelow{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\DeclareFloatVCode}
+% Declaring options for keys of vertical material for building of
+% float style. They could be used above and below of float box,
+% and between object and caption in the case when caption
+% above/below object. This macro is allowed only in preamble.
+% \begin{macrocode}
+\newcommand\DeclareFloatVCode[2]{\@namedef{flrow@FBr@#1}{#2}}
+\@onlypreamble\DeclareFloatVCode
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flrow@FBrule}
+% \begin{macro}{\flrow@FRrule}
+% \begin{macro}{\flrow@FBskip}
+% Vertical code above/below float box.
+% \begin{macrocode}
+\newcommand*\flrow@FBrule[3]{%
+ \@ifundefined{flrow@FBr@#3}%
+ {\flrow@error{Undefined rule `#3'}}%
+ {\let#1\empty
+ \expandafter\let\expandafter#2\csname flrow@FBr@#3\endcsname}}
+% \end{macrocode}
+% Vertical code above/below float row.
+% \begin{macrocode}
+\newcommand*\flrow@FRrule[3]{%
+ \@ifundefined{flrow@FBr@#3}%
+ {\flrow@error{Undefined rule `#3'}}%
+ {\def#2{\FBiffloatrow\relax{\@nameuse{flrow@FBr@#3}}}%
+ \expandafter\let\expandafter#1\csname flrow@FBr@#3\endcsname}}
+% \end{macrocode}
+% Vertical code between caption and object.
+% \begin{macrocode}
+\newcommand*\flrow@FBskip[1]{%
+ \@ifundefined{flrow@FBr@#1}%
+ {\flrow@error{Undefined rule `#1'}}%
+ {\expandafter\let\expandafter\@@FBskip\csname flrow@FBr@#1\endcsname}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Declared options for keys for building of float style (rules).
+% \begin{macrocode}
+\DeclareFloatVCode{none}{}
+\DeclareFloatVCode{thickrule}{\par\rule{\hsize}{.8pt}\vskip2pt\par}
+\DeclareFloatVCode{rule}{\vskip2pt\hrule\vskip2pt}
+\DeclareFloatVCode{lowrule}{\par\vskip2pt\rule\hsize\@wholewidth\par}
+\DeclareFloatVCode{captionskip}{\vskip\captionskip}
+% \end{macrocode}
+%
+% The command for definition of material which you
+% could put at the top and bottom of object---caption box
+% and between caption and float.
+%
+% \begin{macro}{\FBstyle@reset}
+% Reset of all used layout settings. All settings localized---that allows
+% usage |\floatbox| inside |\floatbox|.
+% \begin{macrocode}
+\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\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{\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}
+%
+% \subsubsection{Defining Float Frames}
+%
+% Keys for building of float style (boxes).
+%
+% \begin{macro}{framestyle}
+% This key defines style of frame.
+% \begin{macrocode}
+\DeclareFROpt{framestyle}{\@ifundefined{FB@#1@frame}%
+ {\let\FRifFBOX\@secondoftwo}{\let\FRifFBOX\@firstoftwo\def\FB@B@{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{framearound}
+% This key defines object to be framed.
+% \begin{macrocode}
+\DeclareFROpt{framearound}{\flrow@fr@round{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flrow@fr@round}
+% Command for |framearound|.
+% \begin{macrocode}
+\newcommand*\flrow@fr@round[1]{%
+ \caption@ifinlist{#1}{object,contents}{\let\FRifFBOX\@firstoftwo
+ \def\FB@BO@{FBo}%
+ }{\caption@ifinlist{#1}{floatbox,all}{\let\FRifFBOX\@firstoftwo
+ \def\FB@BO@{FB}%
+ }{\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}
+\@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}
+\DeclareFROpt{frameset}{\def\FB@Bset{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@@setframe}
+% Macro which prepares box settings accordingly to predefined float layout.
+% \begin{macrocode}
+\newcommand\FB@BO@{FBo}\newcommand\FB@B@{}
+\newcommand\@@setframe{%
+ \@namedef{\FB@BO@ @hadj}{\@nameuse{FB@\FB@B@ @reset}\FB@Bset
+ \@nameuse{FB@\FB@B@ @adj}}%
+ \@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}}%
+ \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}
+\@ifdefinable\FRifFBOX{\let\FRifFBOX\@secondoftwo}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FB@fbox@frame}
+% \begin{macro}{\FB@fbox@adj}
+% \begin{macro}{\FB@fbox@reset}
+% First macro is the definition of frame style (here is |\fbox|);
+% second defines compensating material to get frame fitted to current
+% |\hsize|; third defines default values of compensating material.
+% \begin{macrocode}
+\newcommand\FB@fbox@frame[1]{\hbox{%
+ \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}\fbox{#1}%
+ \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}}\ignorespaces}
+\newcommand\FB@fbox@adj{\dimen@=2\fboxsep\advance\dimen@2\fboxrule}
+\newcommand\FB@fbox@reset{\fboxsep3\p@\fboxrule.4\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Macros for Color Frame}
+%
+% \begin{macro}{\FB@colorbox@frame}
+% \begin{macro}{\FB@colorbox@adj}
+% \begin{macro}{\FB@colorbox@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@colorbox@frame[1]{\hbox{%
+ \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}\FB@fcolorbox{#1}%
+ \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}}\ignorespaces}
+\@ifdefinable\FB@colorbox@adj{\let\FB@colorbox@adj\FB@fbox@adj}
+\newcommand\FB@colorbox@reset{\fboxsep3\p@\fboxrule.4\p@}
+\newcommand\FB@fcolorbox{\fbox}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \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}{}{\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}
+%
+% \begin{macro}{captionskip}
+% \begin{macro}{footskip}
+% The following options define skips: first---between float object and
+% caption (if it used in float style); second---before foot material
+% (footnote or other foot text). The |\abovecaptionskip| used for compatibility with caption.
+% \begin{macrocode}
+\DeclareFROpt{captionskip}{\def\captionskip{#1}%
+ \setlength\abovecaptionskip{#1}}
+\DeclareFROpt{footskip}{\def\floatfootskip{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\captionskip}
+% \begin{macro}{\floatfootskip}
+% The skip between caption and object. Here goes standard value.
+% \begin{macrocode}
+\newcommand\captionskip{10\p@}
+% \end{macrocode}
+%
+% The skip before float footnotes. Here it is equal to
+% used skip in mini pages.
+% \begin{macrocode}
+\newcommand\floatfootskip{\skip\@mpfootins}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Defining Float Footnote Rule}
+%
+% \begin{macro}{footnoterule}
+% \begin{macro}{\flrow@footrule}
+% The definitions of |\footnoterule| inside floating environment.
+% This macro is allowed only in preamble.
+% \begin{macrocode}
+\DeclareFROpt{footnoterule}{\flrow@footrule{#1}}
+\newcommand\DeclareFloatFootnoterule[2]{%
+ \long\@namedef{flrow@fnrule@#1}{#2}}
+\newcommand*\flrow@footrule[1]{%
+ \@ifundefined{flrow@fnrule@#1}%
+ {\flrow@error{Undefined footnoterule `#1'}}%
+ {\let\@@FRabove\empty
+ \expandafter\let\expandafter\FBfootnoterule\csname
+ flrow@fnrule@#1\endcsname}}
+\@onlypreamble\DeclareFloatFootnoterule
+% \end{macrocode}
+% Here goes standard \LaTeX{} definition used in minipages.
+% \begin{macrocode}
+\DeclareFloatFootnoterule{normal}{\kern-3\p@
+ \@tempdima.4\columnwidth
+ \hrule\@width\@tempdima\kern2.6\p@}
+% \end{macrocode}
+% Here goes standard \LaTeX{} definition used in minipages with
+% limited maximal width.
+% \begin{macrocode}
+\DeclareFloatFootnoterule{limited}{\kern-3\p@
+ \@tempdima.4\columnwidth
+ \ifdim\@tempdima>\frulemax\@tempdima=\frulemax\fi
+ \hrule\@width\@tempdima\kern2.6\p@}
+\newcommand\frulemax{1in}
+% \end{macrocode}
+% The width of |\footnoterule| equals to full |\hsize|.
+% \begin{macrocode}
+\DeclareFloatFootnoterule{fullsize}{\kern-3\p@
+ \hrule\@width\hsize\kern2.6\p@}
+% \end{macrocode}
+% Absent footnoterule.
+% \begin{macrocode}
+\DeclareFloatFootnoterule{none}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FBfootnoterule}
+% The definition of special footnote rule.
+% By default it defined as standard \LaTeX{} |\footnoterule|
+% \begin{macrocode}
+\@ifdefinable\FBfootnoterule{\let\FBfootnoterule\footnoterule}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Loading Fancy Float Styles}
+%
+% Options for loading of fancy float styles. Commented.
+% \begin{macrocode}
+\@ifdefinable\FR@iffancy{\let\FR@iffancy\@secondoftwo}
+\DeclareFROpt{fancyboxes}{\flrow@setbool{fancy}{#1}}
+% \end{macrocode}
+%
+% \subsubsection{New Float Type Setup}
+%
+% \begin{macro}{\DeclareFNOpt}
+% Declaring new float type like |\newfloat| does.
+% These macros allowed only in preamble.
+% \begin{macrocode}
+\newcommand\DeclareFNOpt{%
+ \@ifstar{\flrow@declfnopt\AtBeginDocument}
+ {\flrow@declfnopt\@gobble}}
+\newcommand*\flrow@declfnopt[2]{%
+ #1{\undefine@key{newfloat}{#2}}\define@key{newfloat}{#2}}
+\@onlypreamble\DeclareFNOpt
+% \end{macrocode}
+% \changes{v0.2b}{2007/09/24}{\cmd{\flnew@setdefault} removed.}
+%
+% The |\newtoks| for defining of floating environments (using
+% |\flrow@restyle| command) at the end of preamble. (Took a leaf with
+% settings for lists of floats from \package{float} package's book.)
+% \changes{v0.1p}{2007/06/24}{Double code with \texttt{ftype@}\meta{captype}
+% deleted.}
+% \changes{v0.1p}{2007/06/24}{The \cmd{\fname@}\meta{floatname} changed to
+% \cs{}\meta{floatname}\texttt{name} macros redefined locally.}
+% \changes{v0.2a}{2007/08/24}{Corrected bug with \texttt{ftype@} definition (AS).}
+% \changes{v0.2b}{2007/09/24}{Defined default extension of list file in the same way as caption's
+% \cmd{\DeclareFloatingEnvironment}.}
+% \changes{v0.2b}{2007/09/24}{The definition of list entry layout moved here.}
+% \changes{v0.2b}{2007/09/24}{Corrected bugs with listof file and \cmd{\fps@}\meta{float type} commands.}
+% \begin{macrocode}
+\@ifdefinable\flrow@types{\newtoks\flrow@types}
+\newcommand\DeclareNewFloatType[2]{\def\FB@captype{#1}%
+ \expandafter\edef\csname ftype@#1\endcsname{\the\c@float@type}%
+ \addtocounter{float@type}{\value{float@type}}%
+ \@namedef{#1name}{#1}\newcounter{#1}%
+ \expandafter\edef\csname fnum@#1\endcsname
+ {\expandafter\noexpand\csname #1name\endcsname\nobreakspace
+ \expandafter\noexpand\csname the#1\endcsname}%
+ \@namedef{the#1}{\arabic{#1}}\flnew@ext{lo#1}\@namedef{fps@#1}{tbp}%
+ \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
+ \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax
+ \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}%
+ \@tempa}
+\@onlypreamble\DeclareNewFloatType
+% \end{macrocode}
+% Key for placement defining.
+% This macro is allowed only in preamble.
+% \begin{macrocode}
+\DeclareFNOpt*{placement}{\flnew@fps{#1}}
+\newcommand\flnew@fps[1]{\@namedef{fps@\FB@captype}{#1}}
+\@onlypreamble\flnew@fps
+% \end{macrocode}
+% Key for float label name defining.
+% This macro is allowed only in preamble.
+% \changes{v0.1p}{2007/06/24}{The \cmd{\fname@}\meta{floatname} changed to
+% \cs{}\meta{floatname}\texttt{name} macros redefined locally.}
+% \begin{macrocode}
+\DeclareFNOpt*{name}{\flnew@fname{#1}}
+\newcommand\flnew@fname[1]{\@namedef{\FB@captype name}{#1}}
+\@onlypreamble\flnew@fname
+% \end{macrocode}
+% Key for extension of ``toc''-file.
+% This macro is allowed only in preamble.
+% \begin{macrocode}
+\DeclareFNOpt*{fileext}{\flnew@ext{#1}}
+\newcommand\flnew@ext[1]{\@namedef{ext@\FB@captype}{#1}%
+ \let\float@do=\relax
+ \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#1}}}%
+ \@tempa}
+\@onlypreamble\flnew@ext
+% \end{macrocode}
+% The section of document which resets numbering of float.
+% This macro is allowed only in preamble.
+% \begin{macrocode}
+\DeclareFNOpt*{within}{\flnew@within{#1}}
+\newcommand\flnew@within[1]{\@addtoreset{\FB@captype}{#1}%
+ \expandafter\edef\csname the\FB@captype\endcsname{%
+ \expandafter\noexpand\csname
+ the#1\endcsname.\noexpand\arabic{\FB@captype}}}
+\@onlypreamble\flnew@within
+% \end{macrocode}
+% \end{macro}
+%
+%\changes{v0.2b}{2007/10/24}{The double definition of `relatedcapstyle' option deleted}
+%
+% \subsubsection{Processing of Floatsetup Options}
+%
+% \begin{macro}{\ProcessOptionsWithKV}
+% As in caption style options are processed with usage of the
+% \package{keyval} package.
+% \changes{v0.1j}{2006/02/24}{Edited by suggestions of A.Sommerfeldt}
+% \begin{macrocode}
+\def\ProcessOptionsWithKV#1{%
+ \let\@tempc\relax
+ \let\FR@tmp\@empty
+ \@for\CurrentOption:=\@classoptionslist\do{%
+ \@ifundefined{KV@#1@\CurrentOption}%
+ {}%
+ {%
+% \end{macrocode}
+% In the case of co-named global option, appeared in
+% |\documentclass| line.
+% ^^A added line (|\@ifundefined| stuff)
+% ^^A first part of command
+% \begin{macrocode}
+ \@ifundefined{KV@#1@\CurrentOption @default}{%
+ \PackageInfo{#1}{Global option `\CurrentOption' ignored}%
+% \end{macrocode}
+% ^^A doubling of first line from second part of |\@ifundefined|
+% ^^A but first line edited (moved |\CurrentOption,|)
+% ^^A \begin{macrocode}
+% ^^A \edef\FR@tmp{\FR@tmp,}%
+% ^^A \end{macrocode}
+% ^^A end doubling
+% ^^A added line
+% \begin{macrocode}
+ }{%
+% \end{macrocode}
+% ^^A second part of |\@ifundefined|
+% \begin{macrocode}
+ \PackageInfo{#1}{Global option `\CurrentOption' processed}%
+ \edef\FR@tmp{\FR@tmp,\CurrentOption,}%
+ \@expandtwoargs\@removeelement\CurrentOption
+ \@unusedoptionlist\@unusedoptionlist
+% \end{macrocode}
+% ^^A end of doubled code
+% ^^A added line
+% \begin{macrocode}
+ }%
+ }%
+ }%
+ \edef\FR@tmp{%
+ \noexpand\caption@setkeys[floatrow]{#1}{%
+ \FR@tmp\@ptionlist{\@currname.\@currext}%
+ }%
+ }%
+ \FR@tmp
+ \let\CurrentOption\@empty
+ \AtEndOfPackage{\let\@unprocessedoptions\relax}}
+\ProcessOptionsWithKV{floatrow}
+\FR@iffancy{\RequirePackage{fr-fancy}}\relax
+\let\ProcessOptionsWithKV\undefined
+% \end{macrocode}
+% \end{macro}
+%
+% At beginning of document there are loaded macros |\flrow@restyle|
+% for table and figure floats. (Any new float type gets this command
+% when |\newfloat| macro of |\DeclareNewFloatType| are used.)
+% \changes{v0.1k}{2007/05/24}{The support for raw float mode added.}
+% \begin{macrocode}
+\AtBeginDocument{
+ \FR@ifrawfloats
+ {\let\FR@tmp\flrow@Raw@restyle
+ }{\flrow@restyle{table}\flrow@restyle{figure}%
+ \let\FR@tmp\flrow@restyle
+ }\the\flrow@types
+ \@onlypreamble\flrow@restyle\@onlypreamble\flrow@Raw@restyle
+ \flrow@types={}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</floatsetup>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*frfancy>
+\RequirePackage{fancybox}
+% \end{macrocode}
+%
+% \subsection{Additional Definitions for Fancy Frames}
+%
+% \FRorisubsubsection{Macros for Fancy Frames}
+%
+% \begin{macro}{\FB@wshadowbox}
+% The variant of shadowbox with white contoured shadow.
+% \begin{macrocode}
+\newcommand\wshadowbox{\VerbBox\@wshadowbox}
+\newcommand\@wshadowbox[1]{%
+ \setbox\@fancybox\hbox{\fbox{#1}}%
+ \leavevmode\vbox{\offinterlineskip
+ \hbox{\copy\@fancybox\kern-\fboxrule\lower\shadowsize\hbox{%
+ \dimen@\ht\@fancybox\advance\dimen@-\fboxrule
+ \vrule\@height\ht\@fancybox\@depth-\dimen@\@width\shadowsize
+ \vrule\@height\ht\@fancybox\@depth\dp\@fancybox\@width\fboxrule}}%
+ \vskip-\fboxrule\vskip-\shadowsize
+ \moveright\shadowsize\vbox{%
+ \hrule\@width\fboxrule\@height\shadowsize
+ \hrule\@width\wd\@fancybox\@height\fboxrule}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FB@shadowbox@frame}
+% \begin{macro}{\FB@shadowbox@adj}
+% \begin{macro}{\FB@shadowbox@reset}
+% First macro is the definition of frame style (here is |\shadowbox|);
+% second defines compensating material to get frame fitted to current
+% |\hsize|; third defines default values of compensating material.
+% \begin{macrocode}
+\newcommand\FB@shadowbox@frame[1]{\hbox{%
+ \FR@ifFIT\relax{\hskip-\fboxrule\hskip-\fboxsep}\FBs@raise{\shadowbox{#1}}%
+ \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep\kern-\shadowsize}}}
+\newcommand\FB@shadowbox@adj{\dimen@=2\fboxsep
+ \advance\dimen@2\fboxrule\advance\dimen@\shadowsize}
+\newcommand\FB@shadowbox@reset{\fboxsep3\p@\fboxrule.4\p@\shadowsize4\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FB@wshadowbox@frame}
+% \begin{macro}{\FB@wshadowbox@adj}
+% \begin{macro}{\FB@wshadowbox@reset}
+% The definition for frame |wshadowbox|---similar to
+% |shadowbox| from \package{fancybox}.
+% First macro is the definition of frame style (here is |\wshadowbox|);
+% second defines compensating material to get frame fitted to current
+% |\hsize|; third defines default values of compensating material.
+% \begin{macrocode}
+\newcommand\FB@wshadowbox@frame[1]{\hbox{%
+ \FR@ifFIT\relax{\hskip-\fboxrule\hskip-\fboxsep}\FBs@raise{\wshadowbox{#1}}%
+ \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep\kern-\shadowsize}}}
+\@ifdefinable\FB@wshadowbox@adj{\let\FB@wshadowbox@adj\FB@shadowbox@adj}
+\newcommand\FB@wshadowbox@reset{\fboxsep3\p@\fboxrule.4\p@\shadowsize4\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FB@doublebox@frame}
+% \begin{macro}{\FB@doublebox@adj}
+% \begin{macro}{\FB@doublebox@reset}
+% First macro is the definition of frame style (here is |\doublerbox|);
+% second defines compensating material to get frame fitted to current
+% |\hsize|; third defines default values of compensating material.
+% \begin{macrocode}
+\newcommand\FB@doublebox@frame[1]{\hbox{%
+ \FR@ifFIT\relax{\kern-4.75\fboxrule\kern-.5pt\kern-\fboxsep}\doublebox{#1}%
+ \FR@ifFIT\relax{\kern-4.75\fboxrule\kern-.5pt\kern-\fboxsep}}}
+\newcommand\FB@doublebox@adj{\dimen@=2\fboxsep
+ \advance\dimen@7.5\fboxrule\advance\dimen@\p@}
+\newcommand\FB@doublebox@reset{\fboxsep3\p@\fboxrule.4\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\fs@shadowbox}
+% \begin{macro}{\fs@Shadowbox}
+% \begin{macro}{\fs@SHADOWBOX}
+% There are going three float styles with usage of |\shadowbox|.
+% \begin{macrocode}
+\DeclareFloatStyle{shadowbox}{style=boxed,framestyle=shadowbox}
+\DeclareFloatStyle{Shadowbox}{style=Boxed,framestyle=shadowbox}
+\DeclareFloatStyle{SHADOWBOX}{style=BOXED,framestyle=shadowbox}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\fs@wshadowbox}
+% \begin{macro}{\fs@Wshadowbox}
+% \begin{macro}{\fs@WSHADOWBOX}
+% There are going three float styles with usage of |\wshadowbox|.
+% \begin{macrocode}
+\DeclareFloatStyle{wshadowbox}{style=boxed,framestyle=wshadowbox}
+\DeclareFloatStyle{Wshadowbox}{style=Boxed,framestyle=wshadowbox}
+\DeclareFloatStyle{WSHADOWBOX}{style=BOXED,framestyle=wshadowbox}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\fs@doublebox}
+% \begin{macro}{\fs@Doublebox}
+% \begin{macro}{\fs@DOUBLEBOX}
+% There are going three float styles with usage of |\doublebox|.
+% \begin{macrocode}
+\DeclareFloatStyle{doublebox}{style=boxed,framestyle=doublebox}
+\DeclareFloatStyle{Doublebox}{style=Boxed,framestyle=doublebox}
+\DeclareFloatStyle{DOUBLEBOX}{style=BOXED,framestyle=doublebox}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+%</frfancy>
+% \end{macrocode}
+%
+%
+%
+%
+% \begin{macrocode}
+%<*floatpagestyle>
+% \end{macrocode}
+%
+% \subsection{Empty Floating Page}
+%
+% Here goes small sneaky-tricky style to put desired page style
+% for one floating page.
+%
+% \begin{macro}{\floatpagestyle}
+% First goes macro which defines desired page style for page with
+% current float.
+% \begin{macrocode}
+\newcommand\floatpagestyle[1]{\@ifundefined{ps@#1}\undefinedpagestyle
+ {\begingroup
+ \let\thepage\relax\let\protect\@unexpandable@protect
+ \edef\reserved@a{\write\@auxout{\expandafter\string
+ \csname @setfloatpage\endcsname{\thepage}{#1}}}\reserved@a
+ \endgroup}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\emptyfloatpage}
+% The abbreviation for empty float page style.
+% \begin{macrocode}
+\newcommand\emptyfloatpage{\floatpagestyle{empty}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@setfloatpage}
+% The macro which writes necessary code for changed float page style.
+% \begin{macrocode}
+\newcommand\@setfloatpage[2]{%
+ \edef\reserved@a{floatpage@\romannumeral#1}%
+ \global\expandafter\def\csname\reserved@a\endcsname{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chkfloatpage}
+% The macro which checks whether exists necessary code for changing
+% of current float page style.
+% \begin{macrocode}
+\newcommand\@chkfloatpage{%
+ \edef\reserved@a{floatpage@\romannumeral\the\c@page}%
+ \@ifundefined{\reserved@a}{\relax}{\global\@specialpagetrue
+ \gdef\@specialstyle{\csname\reserved@a\endcsname}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@outputpage}
+% The |\@chkfloatpage| added at as a patch at the very beginning of
+% current definition of |\@outputpage| command.
+% \begin{macrocode}
+\AtBeginDocument
+ {\@ifdefinable\FBori@outputpage{\let\FBori@outputpage\@outputpage}
+ \let\@outputpage\FB@outputpage}
+\newcommand\FB@outputpage{\@chkfloatpage\FBori@outputpage}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</floatpagestyle>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*listpen>
+% \end{macrocode}
+%
+% \subsection{List Penalties Managing}
+%
+% The package \package{listpen} is a beta-temp package, which
+% offers commands |\allowprelistbreaks|,
+% |\allowpostlistbreaks| and |\allowitembreaks| which help
+% to manage page breaking at the beginning and the end of
+% lists, and between list items consequently.
+%
+% This package follows idea of |\allowdisplaybreaks|
+% (\textsf{amsmath} package) and |\pagebreak|/|\nopagebreak| stuff.
+%
+% \DescribeMacro{\allowprelistbreaks}
+% \DescribeMacro{\allowpostlistbreaks}
+% \DescribeMacro{\allowitembreaks}
+% These commands set penalties before lists, after lists and between items.
+% They set globally or inside group or (also list!)
+% environment\footnote{Look also at \cmd{\allowdisplaybreaks}
+% macro from \package{amsmath} package.} penalties accordingly to digits
+% from |[-4]| (never break) to |[4]| (always break). The values of optional
+% argument in these commands analogous to values of optional arguments
+% in, e.g., |\pagebreak| command. The default value of all three commands
+% is |[-1]| which equal to \cls{book.cls} etc. class settings (which equal to
+% |-\@lowpenalty| value).
+%
+% \begin{macro}{\allowprelistbreaks}
+% Sets penalty before lists.
+% \begin{macrocode}
+\newcommand\allowprelistbreaks{\let\LP@penalty\@beginparpenalty
+ \@testopt{\LP@setlistbreaks}{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\allowpostlistbreaks}
+% Sets penalty after lists.
+% \begin{macrocode}
+\newcommand\allowpostlistbreaks{\let\LP@penalty\@endparpenalty
+ \@testopt{\LP@setlistbreaks}{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\allowitembreaks}
+% Sets penalty between items.
+% \begin{macrocode}
+\newcommand\allowitembreaks{\let\LP@penalty\@itempenalty
+ \@testopt{\LP@setlistbreaks}{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LP@setlistbreaks}
+% This macro reverses the $+/-$ signs before digits.
+% \begin{macrocode}
+\@ifdefinable\LP@setlistbreaks{}
+\def\LP@setlistbreaks[#1#2]{\def\tempa{-}\def\tempb{#1}\ifx\tempa\tempb
+ \LP@nolbk[#2]\else\LP@nolbk-[#1]\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LP@nolbk}
+% Macro for setting necessary penalties.
+% \begin{macrocode}
+\@ifdefinable\LP@nolbk{}\@ifdefinable\LP@penalty{}
+\def\LP@nolbk#1[#2]{%
+ \ifcase#2\LP@penalty\z@
+ \or\LP@penalty#1\@lowpenalty
+ \or\LP@penalty#1\@medpenalty
+ \or\LP@penalty#1\@highpenalty
+ \or\LP@penalty#1\@M
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\RestoreSpaces}
+% \begin{macro}{\RemoveSpaces}
+% A simple command to turn off |\if@nobreak| flag.
+% \begin{macrocode}
+\newcommand\RestoreSpaces{\@nobreakfalse}
+% \end{macrocode}
+% Opposite command. Turns on |\if@nobreak| flag.
+% \begin{macrocode}
+\newcommand\RemoveSpaces {\@nobreaktrue}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\newseparatedlabel}
+% \begin{macro}{\newseparatedref}
+% \begin{macro}{\makelabelseparator}
+% A simple command to create combined label in `label\meta{sep}sublabel' variant.
+% \begin{macrocode}
+\newcommand\newseparatedlabel[3]{%
+ \@ifdefinable#1{%
+ \def#1##1{\protected@edef\@currentlabel{\string
+ \LP@label@sep {\csname the#3\endcsname}}\label{sub##1}%
+ \protected@edef\@currentlabel{\csname the#2\endcsname
+ \string\LP@label@sep {\csname the#3\endcsname}}\label{##1}}}}
+% \end{macrocode}
+% Command which switch on the necessary \meta{sep}.
+% \begin{macrocode}
+\newcommand\newseparatedref[2]{\@ifdefinable#1{\def#1##1{{\def\LP@label@sep{#2}\ref{##1}}}}}
+% \end{macrocode}
+% The definition-check of existence of command name, which will be used for separator.
+% The second command defines this label separator globally.
+% \begin{macrocode}
+\@ifdefinable\LP@label@sep{}
+\newcommand\makelabelseparator[1]{\def\LP@label@sep{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+%</listpen>
+% \end{macrocode}
+%
+%
+%
+%
+% \begin{macrocode}
+%<*floatrow>
+\AtBeginDocument{%
+\@ifundefined{sf@@@subfloat}{\@tempswafalse}{\@tempswatrue}
+\if@tempswa\RequirePackage{fr-subfig}\fi}
+%</floatrow>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*frforsubfig>
+% \end{macrocode}
+%
+% \subsection{Support for The \package{subfig} Package}
+%
+% \changes{v0.2a}{2007/08/24}{Added compatibility check.}
+% \begin{macrocode}
+\def\@tempb{2005/06/28 ver: 1.3 subfig package}
+\expandafter\let\csname @tempa\expandafter\endcsname
+ \csname ver@subfig.\@pkgextension\endcsname
+\ifx\@tempa\@tempb\else
+ \PackageWarning{fr-subfig}{The additions cooperated with \MessageBreak
+ version `2005/06/28 ver: 1.3' of package subfig,\MessageBreak
+ but only version\MessageBreak
+ \csname ver@subfig.\@pkgextension\endcsname'\MessageBreak
+ is available}\relax
+ \fi
+% \end{macrocode}
+%
+% \subsubsection{Building Subfloatrow}
+%
+% At first defined dimension for maximal height of subcaption. Then macro
+% for defining height of subcaption box.
+% \begin{macrocode}
+\newlength\FBsc@max
+\newlength\FBso@max
+\@ifdefinable\FBsubcheight{\let\FBsubcheight\relax}
+\@ifdefinable\FBsuboheight{\let\FBsuboheight\relax}
+% \end{macrocode}
+%
+% \begin{macro}{\adjustsubfloats}
+% The user command which loaded at the end of row of subcaptions.
+% \begin{macrocode}
+\newcommand\adjustsubfloats{\@tempswafalse
+ \ifCADJ\@tempswatrue\fi\ifOADJ\@tempswatrue\fi
+ \if@tempswa\FB@writeaux{%
+ \string\global\string\c@FBcnt\thepage
+ \ifCADJ\string\edef\string\FBsubcheight{\the\FBsc@max}\fi
+ \ifOADJ\string\edef\string\FBsuboheight{\the\FBso@max}\fi
+ }\fi
+ \global\let\FBsubcheight\relax\global\let\FBsuboheight\relax
+ \global\FBso@max\z@\global\FBsc@max\z@}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Small Correction of The \package{subfig} Macro}
+%
+% There is a \package{subfig}'s macro with corrections wich allow to put
+% alone subfloat label.
+% \begin{macrocode}
+\long\def\sf@@@subfloat#1[#2][#3]#4{%
+ \@ifundefined{FBsc@max}{}%
+ {\FB@readaux{\let\FBsuboheight\relax}}%
+ \@tempcnta=\@ne
+ \if@minipage
+ \@tempcnta=\z@
+ \else\ifdim \lastskip=\z@ \else
+ \@tempcnta=\tw@
+ \fi\fi
+ \ifmaincaptiontop
+ \sf@top=\sf@nearskip
+ \sf@bottom=\sf@farskip
+ \else
+ \sf@top=\sf@farskip
+ \sf@bottom=\sf@nearskip
+ \fi
+ \leavevmode
+ \setbox\@tempboxa \hbox{#4}%
+% \end{macrocode}
+% In the case of empty contents of subfloat all vertical spaces zeroed.
+% subcaption label created like oneline |\vtop|.
+% \begin{macrocode}
+ \ifdim\wd\@tempboxa=\z@\ht\@tempboxa\z@\dp\@tempboxa\z@
+ \setbox\z@\hbox{{\caption@@@make
+ {\caption@lfmt{\@nameuse{sub\@captype name}}%
+ {\@nameuse{thesub\@captype}}\relax}{}}}\@tempdima=\wd\z@
+ \sf@top=\z@
+ \sf@bottom=\z@
+ \sf@capskip\z@
+ \sf@captopadj\z@
+ \let\sf@ifpositiontop\@firstoftwo
+ \else
+ \@tempdima=\wd\@tempboxa
+ \@ifundefined{FBsc@max}{}%
+ {\global\advance\Xhsize-\wd\@tempboxa
+ \dimen@=\ht\@tempboxa
+ \advance\dimen@\dp\@tempboxa
+ \ifdim\dimen@>\FBso@max
+ \global\FBso@max\dimen@
+ \fi}%
+ \fi
+ \vtop\bgroup
+ \vbox\bgroup
+ \ifcase\@tempcnta
+ \@minipagefalse
+ \or
+ \vskip\sf@top
+ \or
+ \ifdim \lastskip=\z@ \else
+ \@tempskipb\sf@top\relax\@xaddvskip
+ \fi
+ \fi
+% \end{macrocode}
+% In the case of empty contents there is used only first variant.
+% \begin{macrocode}
+ \sf@ifpositiontop{%
+ \ifx \@empty#3\relax \else
+ \sf@subcaption{#1}{#2}{#3}%
+ \vskip\sf@capskip
+ \vskip\sf@captopadj
+ \fi\egroup
+% \end{macrocode}
+% In the case of empty contents the |\@tempboxa| box skipped .
+% \begin{macrocode}
+ \hrule width0pt height0pt depth0pt
+ \box\@tempboxa
+ }{%
+ \@ifundefined{FBsc@max}%
+ {\box\@tempboxa}%
+ {\ifx\FBsuboheight\relax
+ \box\@tempboxa
+ \else
+ \vbox to \FBsuboheight{\FBafil\box\@tempboxa\FBbfil}%
+ \fi}%
+ \egroup
+ \ifx \@empty#3\relax \else
+ \vskip\sf@capskip
+ \hrule width0pt height0pt depth0pt
+ \sf@subcaption{#1}{#2}{#3}%
+ \fi
+ }%
+ \vskip\sf@bottom
+ \egroup
+ \@ifundefined{FBsc@max}{}%
+ {\addtocounter{FRobj}{-1}%
+% \end{macrocode}
+% Here is the small correction:
+% |\ifnum\c@FRobj>0| instead of |\ifnum\c@FRobj=0\else|.
+% \begin{macrocode}
+ \ifnum\c@FRobj>0% bugfix
+ \subfloatrowsep
+ \fi}%
+ \ifmaincaptiontop\else
+ \global\advance\@nameuse{c@\@captype}\m@ne
+ \fi
+ \endgroup\ignorespaces}
+% \end{macrocode}
+%
+% \subsubsection{Beside Labels for Subfloats}
+%
+% New key for beside caption of subfloat label. Beside label of subfloat
+% always on the left side.
+% \begin{macrocode}
+\DeclareFROpt{subcapbesideposition}{\flrow@SFbesidealign{#1}}
+\newcommand*\flrow@SFbesidealign[1]{%
+ \caption@ifinlist{#1}{t,top}{%
+ \let\flrow@SFBalign\TopFloatBoxes
+ }{\caption@ifinlist{#1}{b,bottom,default}{%
+ \let\flrow@SFBalign\BottomFloatBoxes
+ }{\caption@ifinlist{#1}{c,center}{%
+ \let\flrow@SFBalign\CenterFloatBoxes
+ }{\PackageError{floatrow}%
+ {Undefined sublabel position `#1'}{\flrow@eh}%
+ }}}}
+\newcommand\flrow@SFBalign{\BottomFloatBoxes}
+% \end{macrocode}
+%
+% Macro for beside float label. Labels always placed on the left side.
+% \begin{macrocode}
+\newcommand\sidesubfloat{%
+ \ifx\@captype\@undefined
+ \@latex@error{\noexpand\subfloat outside float}\@ehd
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {\flrow@sidesubfloat}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\flrow@sidesubfloat{\flrow@SFBalign
+ \begingroup
+ \@ifundefined{caption@setfloattype}%
+ \caption@settype
+ \caption@setfloattype
+ \@captype
+% \caption@setoptions\@captype
+ \sf@ifpositiontop{%
+ \maincaptiontoptrue
+ }{%
+ \maincaptiontopfalse
+ }%
+ \caption@setoptions{subfloat}%
+ \caption@setoptions{sub\@captype}%
+ \let\sf@oldlabel=\label
+ \let\label=\subfloat@label
+% \end{macrocode}
+%
+% Next, a decision (based on the \texttt{\char`\\ ifmaincaptiontop}
+% flag) is made of how to advance the float counter; then the
+% sub-float counter is advanced and saved and a check is made if an
+% optional argument is present (if not, one is supplied).
+%
+% \begin{macrocode}
+ \ifmaincaptiontop\else
+ \advance\@nameuse{c@\@captype}\@ne
+ \fi
+ \refstepcounter{sub\@captype}%
+ \setcounter{sub\@captype @save}{\value{sub\@captype}}%
+ \@ifnextchar [% %] match left bracket
+ {\flrow@@sidesubfloat}%
+ {\flrow@@sidesubfloat[\@empty]}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\long\def\flrow@@sidesubfloat[#1]{%
+ \@ifnextchar [% %] match left bracket
+ {\flrow@@@sidesubfloat{sub\@captype}[{#1}]}%
+ {\flrow@@@sidesubfloat{sub\@captype}[\@empty{#1}][{#1}]}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\long\def\flrow@@@sidesubfloat#1[#2][#3]#4{%
+ \@ifundefined{FBsc@max}{}%
+ {\FB@readaux{\let\FBsuboheight\relax}}%
+ \@tempcnta=\@ne
+ \if@minipage
+ \@tempcnta=\z@
+ \else\ifdim \lastskip=\z@ \else
+ \@tempcnta=\tw@
+ \fi\fi
+ \sf@bottom=\z@
+ \sf@top=\z@
+ \leavevmode
+ \setbox\@tempboxa \hbox{#2}%
+ \@tempdima\wd\@tempboxa
+ \setbox\@tempboxa \hbox{#4}%
+ \advance\@tempdima\wd\@tempboxa
+ \advance\@tempdima\labelsep
+ \@ifundefined{FBsc@max}{}%
+ {\global\advance\Xhsize-\wd\@tempboxa
+ \dimen@=\ht\@tempboxa
+ \advance\dimen@\dp\@tempboxa
+ \ifdim\dimen@>\FBso@max
+ \global\FBso@max\dimen@
+ \fi}%
+ \begin@FBBOX
+ \ifcase\@tempcnta
+ \@minipagefalse
+ \or
+ \vskip\sf@top
+ \or
+ \ifdim \lastskip=\z@ \else
+ \@tempskipb\sf@top\relax\@xaddvskip
+ \fi
+ \fi
+ \hbox{%
+ \begin@FBBOX
+ \ifx \@empty#3\relax \else
+ \hbox{\caption@@@make
+ {\caption@lfmt{\@nameuse{sub\@captype name}}%
+ {\@nameuse{thesub\@captype}}\relax}{}}%
+ \fi
+ \end@FBBOX\hskip\labelsep\ignorespaces
+ \begin@FBBOX
+ \box\@tempboxa
+ \end@FBBOX
+ }%
+ \vskip\sf@bottom
+ \end@FBBOX
+ \@ifundefined{FBsc@max}{}%
+ {\addtocounter{FRobj}{-1}%
+ \ifnum\c@FRobj>0
+ \subfloatrowsep
+ \fi}%
+ \ifmaincaptiontop\else
+ \global\advance\@nameuse{c@\@captype}\m@ne
+ \fi
+ \endgroup\ignorespaces}
+% \end{macrocode}
+%
+% \subsubsection{Alone Labels for Subfloats}
+%
+% Macro for creation of subfloat label only. That could be useful
+% for usage with \package{psfrag} package, placing labels inside
+% |picture| environment, using in tabulars etc.
+% \begin{macrocode}
+\newcommand\subfloatlabel{\@ifnextchar[%]
+ {\flrow@subfloatlabel}{\subfloat[]{}}}
+\@ifdefinable\flrow@subfloatlabel{}
+\def\flrow@subfloatlabel[#1]{%
+ \ifx\@captype\@undefined
+ \@latex@error{\noexpand\subfloat outside float}\@ehd
+ \fi
+ \begingroup
+ \count@#1\advance\count@\m@ne
+ \csname c@sub\@captype\endcsname\count@\relax
+ \@ifnextchar[%]
+ {\flrow@@subfloatlabel[#1]}%
+ {\subfloat[]{}\endgroup}}
+\@ifdefinable\flrow@@subfloatlabel{}
+\@ifundefined{newseparatedlabel}\@tempswatrue\@tempswafalse
+\if@tempswa
+ \def\FRsf@Flabel{\label}
+\else
+ \newseparatedlabel\FRsf@Flabel{\@captype}{sub\@captype}
+\fi
+\def\flrow@@subfloatlabel[#1][#2]{%
+ \subfloat[]{\FRsf@Flabel{#2}}\endgroup}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</frforsubfig>
+% \end{macrocode}
+%
+%
+%
+%
+% \begin{macrocode}
+%<*floatrow>
+\AtBeginDocument{%
+\@ifundefined{LT@array}{\@tempswafalse}{\@tempswatrue}
+\if@tempswa\RequirePackage{fr-longtable}\fi}
+%</floatrow>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*forlongtable>
+% \end{macrocode}
+%
+% \subsection{Support for The \package{longtable} Package}
+%
+% First goes requirement of necessary packages.
+% \begin{macrocode}
+\RequirePackage{longtable}[2004/02/01]
+%\RequirePackage{floatrow}[2007/05/24]
+% \end{macrocode}
+%
+% \subsubsection{Caption Width Settings}
+%
+% To follow layout for tables which need size of caption equal to width
+% of table, here added a code which catches width of table from
+% \file{aux}-file and sets to |\LTcapwidth| parameter (great thanks
+% A.~Sommerfeldt for compact code created as patch of |\LT@array| command).
+%
+% At first we save macro |\LT@array| under name |\flrow@LT@array|.
+% Then start redefinition.
+% \begin{macrocode}
+\@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
+% environments) skip after caption (\cmd{\belowcaptionskip} is set
+% equal to \cmd{\captionskip}).
+% \begin{macrocode}
+ \flrow@setlist{{table}{longtable}}\flrow@useLTcapwidth\normalfont\floatfont
+ \belowcaptionskip\captionskip
+% \end{macrocode}
+% Here goes safe and redefinition of |\LT@make@row| macro in the way
+% of managing of counting of table width.
+% \begin{macrocode}
+ \FBifLTcapwidth
+ {\let\flrow@LT@make@row\LT@make@row
+ \def\LT@make@row{%
+ \let\LT@make@row\flrow@LT@make@row
+ \LT@make@row
+% \end{macrocode}
+% The |\LT@entry| here used for width calculation.
+% \begin{macrocode}
+ \ifx\LT@save@row\relax\else\begingroup
+ \LTcapwidth\z@
+ \def\LT@entry####1####2{\advance\LTcapwidth####2}\LT@save@row\relax
+ \ifdim\LTcapwidth=\z@\else\global\LTcapwidth\LTcapwidth\fi
+ \endgroup\fi}}%
+% \end{macrocode}
+% Definition for table foot
+% material (\cmd{\floatfoot}).
+% \begin{macrocode}
+ \def\floatfoot@{\vskip\floatfootskip
+ \def\@captype{table}\floatfoot@box}%
+% \end{macrocode}
+% At last goes \package{longtable}'s macro itself.
+% \begin{macrocode}
+ \flrow@oriLT@array}
+% \end{macrocode}
+% 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 |wrap...| environments.
+% \begin{macrocode}
+% \hsize\columnwidth\linewidth\columnwidth
+ \@parboxrestore\reset@font\color@begingroup
+% \end{macrocode}
+% Apply current float settings.
+% \begin{macrocode}
+ \caption@setoptions{\@captype}%
+% \end{macrocode}
+% Apply floatfoot settings.
+% \begin{macrocode}
+ \caption@setoptions{floatfoot}%
+% \end{macrocode}
+% No captionlabel.
+% \begin{macrocode}
+ \captionsetup{labelformat=empty,labelsep=none}%
+ \caption@@make{}{\FR@tmp#1\@finalstrut\strutbox}%
+ \color@endgroup}
+% \end{macrocode}
+%
+% The definition of caption width for |longtable| environment.
+% \begin{macrocode}
+\let\FBifLTcapwidth\@gobble
+\providecommand\caption@ifinlist[2]{%
+ \let\next\@secondoftwo
+ \edef\caption@tempa{#1}%
+ \@for\caption@tempb:={#2}\do{%
+ \ifx\caption@tempa\caption@tempb
+ \let\next\@firstoftwo
+ \fi}%
+ \next}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*\flrow@useLTcapwidth{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*\setLTcapwidth[1]{%
+ \caption@ifinlist{#1}{table,contents,LTcapwidthtotable}{\def\flrow@useLTcapwidth
+ {\let\FBifLTcapwidth\@firstofone}}{\def\flrow@useLTcapwidth
+ {\let\FBifLTcapwidth\@gobble\setlength\LTcapwidth{#1}}}}
+\@ifpackageloaded{floatrow}
+ {\DeclareFROpt{LTcapwidth}{\setLTcapwidth{#1}}
+ \DeclareOption{table}{\setLTcapwidth{table}}
+ \ProcessOptions
+ }
+ {\DeclareOption{LTcapwidthtotable}{\setLTcapwidth{table}}
+ \DeclareOption{table}{\setLTcapwidth{table}}
+ \ProcessOptions
+ \let\flrow@setlist\@gobble}
+% \end{macrocode}
+%
+% \subsubsection{Additional Settings for Last Head and Pre-Last Foot}
+%
+% The box for last head. Defined in the same way as analog macros in
+% \package{longtable} package.
+% \begin{macrocode}
+\newbox\flrow@LT@lasthead
+\newbox\flrow@LT@prelastfoot
+% \end{macrocode}
+% This counter register is used for checking of last longtable page.
+% \begin{macrocode}
+\newcounter{FBLTpage}
+% \end{macrocode}
+%
+% Storing of original definition of |\longtable| macro.
+% In the new definition was added counting of |longtable|'s pages
+% with |FBLTpage| counter defined before.
+% \begin{macrocode}
+\@ifdefinable\FB@ori@longtable{\let\FB@ori@longtable\longtable}
+\def\longtable{%
+ \setcounter{FBLTpage}\@ne
+ \FB@ori@longtable}
+% \end{macrocode}
+%
+% Storing original definition of |\LT@ouput| macro.
+% Here, in new definition, added increasing of |FBLTpage|.
+% In the case of defined |\lasthead| contents and last page was
+% checked, the contents of last head loaded.
+% \begin{macrocode}
+\@ifdefinable\FB@ori@LT@output{\let\FB@ori@LT@output\LT@output}
+\def\LT@output{%
+ \@ifundefined{FBLTpage@\romannumeral\c@LT@tables}%
+ {\gdef\flrow@LTlastpage{2}}{\@nameuse{FBLTpage@\romannumeral\c@LT@tables}}%
+ \addtocounter{FBLTpage}\@ne
+ \ifvoid\flrow@LT@lasthead\else
+ \ifnum\value{FBLTpage}=\flrow@LTlastpage
+ \let\LT@head\flrow@LT@lasthead
+ \fi
+ \fi
+% \end{macrocode}
+% Switching on of the |\LT@prelastfoot| also needs the real value of
+% |\flrow@LTlastpage| (why???).
+% \begin{macrocode}
+ \ifvoid\flrow@LT@prelastfoot\else
+ \count@\flrow@LTlastpage\relax
+ \ifnum\value{FBLTpage}=\count@
+ \let\LT@foot\flrow@LT@prelastfoot
+ \fi
+ \fi
+ \FB@ori@LT@output}
+% \end{macrocode}
+%
+% The definition of last head box and foot of the page before last.
+% They are defined in the same way as other commands in \package{longtable}
+% package, like |\endlastfoot|.
+% Here was used |\def| as for all |\end..| commands. I hope if \package{longtable}
+% will use these synonyms it will use also synonyms for
+% || and || box register commands at the very beginning of package.
+% Use command names with the analogous names
+% in the hope that their synonyms will appear in the ``host''-package
+% and in this case current package stops interfere.
+% \begin{macrocode}
+\@tempswafalse
+\ifx\endlasthead\undefined\@tempswatrue\else
+ \ifx\endlasthead\relax\@tempswatrue
+\fi\fi
+\if@tempswa
+ \def\endlasthead{\LT@end@hd@ft\flrow@LT@lasthead}
+\else
+\PackageError{fr-longtable}{The command \string\endlasthead\MessageBreak
+ already defined by longtable package}
+\fi
+\@tempswafalse
+\ifx\endprelastfoot\undefined\@tempswatrue\else
+ \ifx\endprelastfoot\relax\@tempswatrue
+\fi\fi
+\if@tempswa
+ \def\endprelastfoot{\LT@end@hd@ft\flrow@LT@prelastfoot}
+\else
+\PackageError{fr-longtable}{The command \string\endprelastfoot\MessageBreak
+ already defined by longtable package}
+\fi
+% \end{macrocode}
+%
+% Redefined |\endlongtable| command---added code which writes
+% the number of pages of long table.
+% \begin{macrocode}
+\@ifdefinable\FB@ori@endlongtable{\let\FB@ori@endlongtable\endlongtable}
+\def\endlongtable{%
+ \FB@ori@endlongtable
+% \end{macrocode}
+% Here is additional code.
+% Why it is necessary to reduce counter of pages by~1?
+% \begin{macrocode}
+ \if@filesw
+ {\advance\c@FBLTpage\m@ne
+ \immediate\write\@auxout{%
+ \gdef\expandafter\noexpand
+ \csname FBLTpage@\romannumeral\c@LT@tables\endcsname
+ {\string\gdef\string\flrow@LTlastpage{\the\c@FBLTpage}}%
+ }}%
+ \fi
+ }
+% \end{macrocode}
+% \begin{macrocode}
+%</forlongtable>
+% \end{macrocode}
+%
+%
+% \Finale
+\endinput