From 396c32d3bf0da9bc7b24122e15b65454634fe851 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 1 Apr 2008 00:27:52 +0000 Subject: floatrow 0.2c git-svn-id: svn://tug.org/texlive/trunk@7271 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/floatrow/floatrow.dtx | 7431 +++++++++++--------- 1 file changed, 4192 insertions(+), 3239 deletions(-) (limited to 'Master/texmf-dist/source/latex') diff --git a/Master/texmf-dist/source/latex/floatrow/floatrow.dtx b/Master/texmf-dist/source/latex/floatrow/floatrow.dtx index 7f4c2684946..12b27e04b44 100644 --- a/Master/texmf-dist/source/latex/floatrow/floatrow.dtx +++ b/Master/texmf-dist/source/latex/floatrow/floatrow.dtx @@ -27,12 +27,12 @@ %\ProvidesPackage{fr-longtable} % % \ProvidesFile{floatrow.dtx} -% [2007/08/24 v0.2a floatrow: float package extension] -% [2005/05/24 v0.1h floatrow: fancy boxes] +% [2008/03/28 v0.2c floatrow: float package extension] +% [2007/11/28 v0.1i floatrow: fancy boxes] % [2005/10/02 v0.1h floating page style] -% [2007/05/24 v0.1b list penalty managing] -% [2007/08/24 v0.1f (beta) floatrow: additions for subfig] -% [2007/05/24 v0.1a (beta) floatrow: additions for longtable] +% [2007/10/28 v0.1d list penalty managing] +% [2007/12/24 v0.1g (beta) floatrow: additions for subfig] +% [2007/11/28 v0.1b (beta) floatrow: additions for longtable] % %<*driver> \input pictures @@ -50,8 +50,16 @@ \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}}{} @@ -84,17 +92,24 @@ \usepackage{picins} %^^A\RequirePackage[writefile]{listings}[2004/09/07] -\usepackage[font=small,captionskip=5pt,objectset=centering,margins=centering, +\usepackage[font=small,captionskip=5pt, footskip=.5\skip\footins,footnoterule=fullsize, - floatrowsep=qquad,capbesidesep=quad, - facing=yes,capbesideposition=inside,floatHaslist=yes,doublefloataswide=yes]{floatrow} + 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} -\IfFileExists{hyperref.sty}{\usepackage[ +\usepackage{color} +\definecolor{gray}{gray}{.5} +\definecolor{emphblue}{rgb}{0,0,0.5} +\def\emphcolor{\color{emphblue}} + +\usepackage[ linktocpage, hyperindex,% plainpages=false,% @@ -103,8 +118,9 @@ pdfview=FitH, pdfstartview=FitH, ]{hyperref} - \IfFileExists{hypcap.sty}{\usepackage{hypcap}}{} -}{} +\usepackage{hypcap} + +\def\@linkbordercolor{1 .5 .5} \ifx\pdftexversion\undefined \IfFileExists{pstricks.sty}{\usepackage{pstricks,pst-eps}}{} @@ -123,31 +139,28 @@ \IfFileExists{makecell.sty}{\usepackage{makecell}}{} -\@ifundefined{thead}% - {\newcommand\thead[1]{\footnotesize\raisebox +\@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}}{} -\IfFileExists{color.sty}{\usepackage{color}\definecolor{gray}{gray}{.5}}{\let\color\@gobble} - \floatsetup[table]{style=Plaintop,footnoterule=none} %^^A ----------------------- \floatstyle{ruled} \newfloat{Program}{tbp}{lop}[section] -\DeclareNewFloatType{Example}% - {placement=tb,within=section,fileext=lox} +\DeclareNewFloatType{Example}{placement=tb, + within=section,fileext=loe} \newfloatcommand{fcapsideleft}{figure}[{\capbeside - \captionsetup[capbesidefigure]{format=break,labelsep=none, + \captionsetup[capbesidefigure]{labelsep=newline, justification=raggedleft}% \thisfloatsetup{capbesideposition=left}}][\FBwidth] \newfloatcommand{fcapsideright}{figure}[{\capbeside - \captionsetup[capbesidefigure]{format=break,labelsep=none, + \captionsetup[capbesidefigure]{labelsep=newline, justification=raggedright}% \thisfloatsetup{capbesideposition=right}}][\FBwidth] @@ -160,46 +173,42 @@ \DeclareObjectSet{colorred}{\parskip2pt\parindent15pt\color{red}} -\DeclareMarginSet{hangleft}% - {\setfloatmargins +\DeclareMarginSet{hangleft}{\setfloatmargins {\hskip-\marginparwidth\hskip-\marginparsep}{\hfil}} -\DeclareMarginSet{hangtoheads}% - {\setfloatmargins +\DeclareMarginSet{hangtoheads}{\setfloatmargins {\hfil}{\hskip-.7\headheight\hskip-\headsep}} -\DeclareFloatSeparators{colorsep}% - {\begingroup\color{blue}% - \floatfacing{\hskip6pt\vrule width4.8pt\hskip6pt}% - {\hskip6pt\vrule width4.8pt\hskip6pt}% - \endgroup} +\DeclareFloatSeparators{colorsep}{\begingroup\color{blue} + \hskip8pt\vrule width4.8pt\hskip8pt\endgroup} \DeclareFloatSeparators{none}{} \DeclareFloatSeparators{cicero}{\hskip1cc} \DeclareFloatSeparators{enskip}{\hskip.5em} +\DeclareFloatSeparators{marginparsep}{\hskip\marginparsep} \DeclareFloatSeparators{mcapwidth}{\hskip-\FCwidth} +\DeclareColorBox{framedfigure}{\fcolorbox{gray}{white}} + %^^A ----------------------- -%^^A\DeclareCaptionFormat{labelonly}{#1} -\DeclareCaptionLabelFormat{numonly}{#2)} -\DeclareCaptionLabelFormat{list}{\bothIfFirst{#1}{ }#2)} \DeclareCaptionListOfFormat{comma-separated}{#1,\,#2} -\DeclareCaptionFont{green}{\color{green}} -\DeclareCaptionFont{magenta}{\color{magenta}} - \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} - %^^A ----------------------- \advance\oddsidemargin.25\marginparwidth @@ -213,8 +222,9 @@ \tolerance2000 \hbadness8000 \vbadness5000 +\hfuzz7pt \def\l@subsection{\@dottedtocline {2}{1.5em}{2.7em}} -\def\l@subsubsection{\@dottedtocline {3}{4.2em}{3.6em}} +\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 @@ -231,27 +241,25 @@ \providecommand*{\meta}[1]{$\langle$\textit{#1}$\rangle$} \newenvironment{Options}[1]% - {\list{}{\renewcommand{\makelabel}[1]{\texttt{##1}\hfil}% + {\RestoreSpaces\list{}{\renewcommand{\makelabel}[1]{\texttt{##1}\hfil}% \settowidth{\labelwidth}{\texttt{#1\space}}% \setlength{\leftmargin}{\labelwidth}% \addtolength{\leftmargin}{\labelsep}% \setlength{\itemsep}{0pt}% - \setlength{\parsep}{0pt}% - }}% + \setlength{\parsep}{0pt}}}% {\endlist} -\newenvironment{Quote}{\par\RestoreSpaces\small\begin{quote}\obeylines\parskip0pt}{\end{quote}\par\@endpetrue} +\newenvironment{Quote}[1][\parindent]{\par\hfuzz30pt\setlength{\leftmargini}{#1}\RestoreSpaces + \small\begin{quote}\obeylines\parskip0pt}{\end{quote}\par\@endpetrue} \def\OptionLabel{RaggedRight} -\DeclareRobustCommand\La{L\kern-.36em% - {\sbox\z@ T% - \vbox to\ht\z@{\hbox{\check@mathfonts - \fontsize\sf@size\z@ - \math@fontsfalse\selectfont - A}% - \vss}% - }% - } +\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 @@ -260,7 +268,6 @@ \def\DescribeEnv{\let\outer@nobreak\@nobreaktrue \leavevmode\everypar{\@nobreakfalse}\@bsphack \begingroup\MakePrivateLetters\Describe@Env} -\def\RestoreSpaces{\@nobreakfalse} \newcommand\FRmpar{\@ifstar{\@nobreaktrue\xFRmpar}{\xFRmpar}} @@ -268,8 +275,6 @@ \raggedleft\advance\leftskip.3\hsize#1}} \providecommand\sectionname{section} -\def\SpecialUsageIndex#1{} -\def\SpecialEnvIndex#1{} \newcommand\seeIntro{\hyperref[sec:intro]{Intro}} \makeatother%^^A--------------------------------- @@ -277,16 +282,20 @@ \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} % % \fi % -% \CheckSum{5209} +% \CheckSum{5094} % % % \changes{v0.1e}{2005/03/22}{The user documentation loaded inside @@ -296,8 +305,8 @@ % % \ifx\pspicture\undefined\else\psset{unit=1pt}\fi % -% \def\fileversion{v0.2a} -% \def\filedate{2007/08/24} +% \def\fileversion{v0.2c} +% \def\filedate{2008/03/28} % \title{The \package{floatrow} package\thanks{This % file has version number \fileversion, last revised % \filedate.}} @@ -312,35 +321,36 @@ % 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 +% 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 without +% 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 type; it deals only +% create new float types; it deals only % with alone (plain) combinations ``object (float contents)---caption''. +% % The \package{rotfloat} -% package changes environments of rotated floats (\package{rotating} package) +% package changes environments of rotated floats (the \env{sideways...} +% environment of \package{rotating} package) % to adapt them to \package{float}'s settings. % -% Current package extends these possibilities and, at last, it allows: +% This package 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 type; +% creation of new float types; % \item -% to change width of float box, also -% to set width for float box, which equals to the width of object; +% 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 \env{minipage}-like mode); -% and also put legend-like text; +% 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. @@ -348,7 +358,7 @@ % \end{itemize} % % The \package{floatrow} package is cooperated with \package{caption} package -% (\textit{needs version} 3.0\textbf{q} \textit{and later}). +% (\textit{needs version} 3.0\textbf{q} \textit{or later}). % Also the \package{floatrow} package (like % \package{caption} one) uses \package{keyval} package mechanism for layout % settings. @@ -356,33 +366,33 @@ % % \begingroup % \slshape -% I think I did my best to follow these ideas and I hope that someone -% likes this idea: helps to maintain this idea anyway, or finds bugs +% 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] +% \item[float (float box)] % could include \emph{object}, \emph{caption}, and -% \emph{foot material}; \emph{float} is created by \env{figure} or -% \env{table} environments (\emph{plain float}), or by |\floatbox| -% command and its modifications; +% \emph{foot material}; \emph{float} is created by |figure| or +% |table| environments (\emph{plain float}), or by |\floatbox| +% command and its modifications (\emph{float box}); % % \item[float type] -% means standard environments \env{figure} and \env{table}, -% also their subtypes, like e.g.~\env{wrapfigure} (\package{wrapfig} package), -% \env{sidewaysfigure} (\package{rotating} and \package{rotfloat} packages), -% \env{longtable} (\package{longtable} package) etc.; +% 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]\env{tabular} or graphics, as contents of table -% (\env{table}) or figure (\env{figure}) or other type of float; +% \item[object]means |tabular| or graphics, as contents of table +% (|table|) or figure (|figure|) or other type of float; % -% \item[caption]text in |\caption|; +% \item[caption]means text in |\caption|; % -% \item[foot material]explications, legends and/or footnotes inside -% \emph{float} box (|\footnote|/\allowbreak|\mpfootnotemark|/\allowbreak|\footnotetext|, +% \item[foot material]could include explications, legends and/or footnotes inside +% \emph{float box} (|\footnote|/\allowbreak|\mpfootnotemark|/\allowbreak|\footnotetext|, % and |\floatfoot| macros). % \end{description} % \end{abstract} @@ -392,43 +402,40 @@ % \begin{multicols}{2}\raggedright\advance\rightskip1em % \makeatletter\let\item\@idxitem\ignorespaces\makeatother % \def\sectionname{sec.} -%^^A% \item{``Anchored'' float (option~\texttt{H})} +%^^A% \item{``Anchored'' float (option~|H|)} %^^A% \strut\pfill %^^A% \textsl{\sectionname}~\ref{sec:floatborrowII} % % \item{Caption} -% \subitem{above float (\env{table}'s object, |\ttabbox|)\kern-1em\allowbreak} +% \subitem{above float (|table|'s object, |\ttabbox|)\kern-1em\allowbreak} % \strut\pfill % \textsl{{\seeIntro}},~%^^A -% \textsl{\sectionname}~\ref{sec:floatbox}%^^A; -% %^^A\pageref{FAD:CaptionAbove}, -% %^^A\pageref{FAD:CaptionAboveTable}, -% %^^A\pageref{FAD:CaptionAboveTableII}, -% %^^A\pageref{FAD:CaptionAboveIII} +% \textsl{\sectionname}~\ref{sec:floatbox} % -% \subitem{beside float (\env{figure}'s object, |\fcapside|)} +% \subitem{beside float (|figure|'s object, |\fcapside|)} % \strut\pfill % \textsl{{\seeIntro}},~%^^A -% \textsl{\sectionname}~\ref{sec:floatbox}%^^A;~ -% %^^A\pageref{FAD:BesideCaptionII}, -% %^^A\pageref{ssec:ffigbox:etc}, -% %^^A\pageref{fig:subfig:catsI}, +% \textsl{\sectionname}~\ref{sec:floatbox} % -% \subitem{width equals to \env{longtable}'s (|LTcapwidth=| key)} +% \subitem{width equals to |longtable|'s (|LTcapwidth=| key)} % \strut\pfill -% \pageref{FAD:LTcapwidth} +% 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}%;~^^A -% %^^A\pageref{FAD:newfloattype} +% \textsl{\sectionname}~\ref{sec:newfloat} % % \item{Layout of Float types (|\floatsetup|)} % \strut\pfill -% \textsl{\sectionname}~\ref{sec:floatsetup}\nopagebreak +% \textsl{\sectionname}~\ref{sec:floatsetup} % % \item{Float}\nopagebreak % \subitem{box (|\floatbox|)} @@ -437,77 +444,60 @@ % \subsubitem{figure box (|\ffigbox|)} % \strut\pfill % \textsl{{\seeIntro}},~%^^A -% \textsl{\sectionname}~\ref{sec:floatbox}; +% \textsl{\sectionname}~\ref{sec:floatbox} % % \subsubitem{table box (|\ttabbox|)} % \strut\pfill % \textsl{{\seeIntro}},~%^^A -% \textsl{\sectionname}~\ref{sec:floatbox}; +% \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{rotated (|sideways..|~env.)}\nopagebreak % \strut\pfill -% \textsl{\sectionname}~\ref{ssec:rotating}%^^A--\ref{ssec:lscape} +% \textsl{\sectionname}~\ref{ssec:rotating} % \subsubitem{empty (special) page style (|\emptyfloatpage|)} % \strut\pfill -% \pageref{FAD:emptyfloatpage} +% page~\pageref{FAD:emptyfloatpage} % % \subsubitem{placing on the facing pages} % \strut\pfill -% \pageref{FAD:ContRotated} +% page~\pageref{FAD:ContRotated} % -% \subitem{\textbf{here!} (option \texttt{H})} +% \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}%^^A; -% %^^A\pageref{FAD:BesideFloat}, -% %^^A\pageref{ssec:app:besidestart}--\pageref{ssec:app:besidefinish} +% \textsl{\sectionname}~\ref{sec:floatrow} % % \subsubitem{float(box) in the row occupies the rest space} -% \emph{see}~{float width, the rest space of the row} +% \emph{see}~{float box width, the rest space of the row} % % \subsubitem{floats of different types side by side} % \strut\pfill -% \pageref{FAD:MixedRow}, -% \pageref{FAD:MixedRowII}%^^A%, -% %^^A\pageref{FAD:Mixrow} -% -%^^A%^^A% \subsubitem{floats of one type side by side} -%^^A%^^A% \strut\pfill -%^^A%^^A% \pageref{FAD:floatrow} +% page~\pageref{FAD:MixedRowII}, +% \pageref{FAD:MixedRow} % % \subitem{like in plain \LaTeX\ (|\RawFloats|)} % \strut\pfill -% \textsl{\sectionname}~\ref{sec:rawfloats}%^^A; -% %^^A\pageref{FAD:PlainFloat}, -% %^^A\pageref{FAD:PlainFloatII} -% -% \subitem{width} -%^^A% \subsubitem{|floatwidth=| key etc.} -%^^A% \strut\pfill -%^^A% \textsl{\sectionname}~\ref{sec:wd:object} -% -% \subsubitem{option in |\floatbox| commands} -% \strut\pfill -% \textsl{\sectionname}~\ref{sec:floatbox}%^^A; -% %^^A\pageref{FAD:FBwidthI}, -% %^^A\pageref{FAD:FBwidthII} -% -% \subsubitem{equals to object's (option |\FBwidth| (|\floatbox|))} -% \strut\pfill -% \textsl{{\seeIntro}},~%^^A -% \textsl{\sectionname}~\ref{sec:floatbox}%^^A; -% %^^A\pageref{FAD:FBwidthI}, -% %^^A\pageref{FAD:FBwidth}, -% %^^A\pageref{FAD:FBwidthII} -% -% \subsubitem{the rest space in the row -% (option |\Xhsize| (|\floatbox|))} -% \strut\pfill -% \pageref{FAD:floatfillspace} +% \textsl{\sectionname}~\ref{sec:rawfloats} % % \subitem{wrapped} % \strut\pfill @@ -515,18 +505,12 @@ % % \item{Footnote inside float} % \strut\pfill -% \textsl{\sectionname}~\ref{sec:floatfootnote}%^^A; -% %^^A\pageref{FAD:FnoteInsideFloat} -% -%^^A%^^A% \subitem{footnote text (|\footnotetext|)} -%^^A%^^A% \strut\pfill -%^^A%^^A% \textsl{\sectionname}~\ref{sec:floatfootnote}; -%^^A%^^A% \pageref{FAD:FnoteInsideFloat} +% \textsl{\sectionname}~\ref{sec:floatfootnote} % % \subitem{footnote mark % (|\mpfootnotemark|)\kern-1em\allowbreak} % \strut\pfill -% \pageref{FAD:FnoteInsideFloat} +% page~\pageref{FAD:FnoteInsideFloat} % % \item{Legend-like macro (|\floatfoot|)} % \strut\pfill @@ -536,131 +520,189 @@ % \strut\pfill % \subitem{subcaption above} % \strut\pfill -% \pageref{FAD:subcapabove} +% page~\pageref{FAD:subcapabove} % \subitem{subfloat label beside} % \strut\pfill -% \pageref{FAD:sublabelbeside} +% page~\pageref{FAD:sublabelbeside} % \end{multicols}% % \endgroup % % \clearpage -% \begingroup -% \small\openup-.75pt +% \begingroup\addtocounter{lofdepth}1\addtocounter{lotdepth}1 +% \small % \pdfbookmark[1]{Contents}{TOC}\nopagebreak\tableofcontents -% \pdfbookmark[1]{List of Figures}{LOF}%^^A\setcounter{lofdepth}2 +% \pdfbookmark[1]{List of Figures}{LOF} % \nopagebreak\listoffigures -% \pdfbookmark[1]{List of Tables}{LOT}%^^A\setcounter{lotdepth}2 +% \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{Macros for Building Floats} +% \section{Introduction}\label{sec:intro} +% +% \FRorisubsection{Start With \package{floatrow} Package}\label{sec:start} +% +% During creation of document, you usually type figures and tables as \emph{floating objects} +% (\emph{floats}), i.e. put their contents +% inside |figure| and~|table| environments consequently. The simplest floating environment +% 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{Introduction}\label{sec:intro} +% \subsubsection{Loading The Package}\label{sec:load} % -% One of the first macros of package, created for float contents, +% 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 |\floatsetup| command.) +% +% But maybe 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. The width of caption equals to the width of contents, e.g. -% of tabular (see table~\ref{intro:table}).%^^A +% of tabular (see table~\ref{intro:table}). Let's look at the first example with plain \LaTeX{} +% layout:%^^A % \FRmpar{Caption above table object}{FAD:CaptionAbove}%^^A -%^^A% \footnote{The table caption in current documentation use a~special layout, -%^^A% popular in Russian typographic publications, look for -%^^A% \texttt{flushrightlabel} key of \cs{captionsetup} in the preamble of -%^^A% source file of this documentation and in sample files -%^^A% ({\sectionname}~\ref{sec:samples}).} -%\begin{Quote}\openup-.65pt -%\meta{preamble} -% |\usepackage[|\hyperref[setup:font]{\texttt{font}}|=small,|%^^A -% \hyperref[setup:captionskip]{\texttt{captionskip}}|=5pt,|%^^A -% \hyperref[setup:objectset]{\texttt{objectset}}|=centering,| -% | |\hyperref[setup:margins]{\texttt{margins}}|=centering,...]{floatrow}[2007/08/24]| -% |\|\hyperref[sec:floatsetup]{\texttt{floatsetup}}|[table]{|%^^A -% \hyperref[setup:style]{\texttt{style}}|=Plaintop}| -% |\usepackage[font=small,labelfont=bf,labelsep=period,| -% | justification=centerlast]{caption}[2007/04/11]| -% |\DeclareCaptionLabelFormat{rightline}{\rightline{\bothIfFirst{#1}{ }#2}}| -% |\captionsetup[table]{labelformat=rightline,textfont=bf,| -% | labelfont={md,sl},labelsep=newline}| -%\meta{preamble} -%|\begin{table}| -%|\|\hyperref[floatbox:ttabbox]{\texttt{ttabbox}} +%\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}}| -%|\end{table}| +%| {\begin{tabular}...\end{tabular}}|\nopagebreak +%|\end{table}|\vspace*{-\intextsep} %\end{Quote} -% \begin{table}[H] +%\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})}\label{intro:table}} +% {\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 data} & \thead{Second data} & \thead{Third data} \\ +% \thead{First column} & \thead{Second column} & \thead{Third column} \\ % \hline % A & B & C \\ % D & E & F \\ % \hline % \end{tabular}} % \end{table}%^^A +%\endgroup % -% The pair of this command, which creates figures---|\ffigbox|---puts -% caption below contents and default width of caption equals -% to the width of main text or predefined |\hsize|. -%\begin{Quote}\openup-.65pt -%|...| +% Another command which creates figures---|\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 +% 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}| -%|\|\hyperref[floatbox:ffigbox]{\texttt{ffigbox}} -%| {\caption{A figure...}\label{...}}| +%|\|\FRkey[FB]{ffigbox} +%| {\caption{A simple figure ...}\label{...}}| %| {...}| -%|\end{figure}| +%|\end{figure}|\vspace*{-\intextsep} %\end{Quote} -%\begingroup +%\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}} -% {\unitlength.88\unitlength\input{Doll.picture}} +% {\unitlength1\unitlength\input{Doll.picture}} % \end{figure}%^^A %\endgroup -% The default -% layout of |\ffigbox| (figure~\ref{intro:figure}) is similar to the plain -% \env{figure} environment. But if you set option |[\FBwidth]| like below: +% The example above shows that a float box, created by +% the |\ffigbox| command looks similar to the plain |figure| environment. +% But if you set, for example, the option |[\FBwidth]| like below: % \FRmpar{Caption's width equals to object}{FAD:FBwidthI} %\begin{Quote} %|...| %|\begin{figure}|\nopagebreak -%|\ffigbox[\|\hyperref[floatbox:FBwidth]{\texttt{FBwidth}}|]| +%|\ffigbox[\|\FRkey[FB]{FBwidth}|]| %| {\caption{A figure}\label{...}}| %| {...}| -%|\end{figure}| +%|\end{figure}|\vspace*{-\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.78\unitlength\input{Horse.picture}} +% {\unitlength1.44\unitlength\input{Horse.picture}} % \end{figure}%^^A -% You get caption width equal to the width of picture +%\endgroup +% you'll get a~caption width equal to the width of picture % (figure~\ref{intro:figure:FBwidth}). % % The third macro---|\fcapside| (figure~\ref{intro:beside})---puts -% caption beside: -%\begin{Quote} -%\meta{preamble} -% |\usepackage[...|\hyperref[setup:capbesidesep]{\texttt{capbesidesep}}|=quad,|%^^A -% \hyperref[setup:facing]{\texttt{facing}}|=yes,| -% | |\hyperref[setup:capbesideposition]{\texttt{capbesideposition}}|=inside,...]{floatrow}[2007/06/24]| +% 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.) +%\begin{Quote}[0pt] +%\begin{preamble} %|...| -%\meta{preamble} +% |\usepackage|{\emphcolor|[|%^^A +% \FRkey{capbesideposition}|=inside,|%^^A +% \FRkey{facing}|=yes,|\FRkey{capbesidesep}|=quad]|}|{floatrow}| +%\end{preamble} %|\begin{figure}| -%|\|\hyperref[floatbox:fcapside]{\texttt{fcapside}} +%|\|\FRkey[FB]{fcapside} %| {\caption{...}\label{...}}| %| {...}| -%|\end{figure}| +%|\end{figure}|\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 @@ -668,262 +710,418 @@ % 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.68cm/100}%^^A +% {{\setlength\unitlength{3.5cm/100}%^^A % \input{Bear.picture}}} % \end{figure} -% The width of main text or predefined value of |\hsize| before |\fcapside| command, -% by default, divided into two columns, their width equals to the half of current |\hsize| +%\endgroup +% The width of text, +% by default, divided into two columns, their width equals to the half text % (figure~\ref{intro:beside}) excluding float margins and -% separation material between float and caption. -% One column is occupied by object, another---by caption and foot material (explications +% horizontal space (or width of the separation material) between float and caption. +% The one column is occupied by the object, the other by the caption and foot material (explications % or legends and footnotes). % -% % If you set the |[\FBwidth]| option: % \FRmpar{Caption's width equals to object}{FAD:FBwidthII} %\begin{Quote} -%|...| -%|\fcapside[\FBwidth]| +%|...|\nopagebreak +%|\fcapside[\FBwidth]|\nopagebreak %|...| %\end{Quote} +%\begingroup\floatsetup{style=default,capbesideposition=inside,facing=yes,capbesidesep=quad}% +%\clearcaptionsetup{capbesidefigure} % \begin{figure}[H] % \fcapside[\FBwidth] -% {\caption[Beside caption (occupies rest space of defined width beside float object)]{Beside caption -% (the caption text occupies the rest space of \cs{hsize}) and more text +% {\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.68cm/100}%^^A +% {{\setlength\unitlength{3.5cm/100}%^^A % \input{Bear.picture}}} % \end{figure} -% The graphic column width will be equal to the graphics and caption occupies the rest space -% (see figure~\ref{intro:beside:FBwidth}).\medskip +%\endgroup +% The graphic column 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{floatrow}| +%| \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, +% the vertical skip between captions and float objects was also changed. 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~\nobreak\quad +% 1)\nobreak\enskip change code, using command |\ttabbox|, +% like in table~\ref{intro:table};~\nobreak\quad2)\nobreak\enskip +% write |\|\FRkey[sec]{floatsetup}|[table]|\allowbreak|{|\FRkey{style}|=plaintop}| in the preamble +% ({\sectionname}~\ref{sec:floatsetup}); or~\nobreak +% \quad3)\nobreak\enskip restore the standard \LaTeX{} behavior with the |\RawFloats| command +% 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} +%|\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}). % -% \subsection{The \cs{floatbox} Macro}\label{sec:floatbox} +%\endgroup +%\clearpage +% \section{Macros for Building Floats} +% \FRorisubsection{The \texorpdfstring{\cs{floatbox}}{floatbox} Macro}\label{sec:floatbox} % % \DescribeMacro{\floatbox} -% This package offers macro, which creates necessary layout of float -% object contents and caption (see also the Introduction). -% The main macro looks like: +% The examples in Introduction ({\sectionname}~\ref{sec:intro:flbox}) +% use three commands |\ttabbox|, |\ffigbox| and |\fcapside|. All these commands +% were built using the |\floatbox| macro. +% This macro creates the float box with necessary positioning of its elements (object, +% caption, foot material) and applies the layout of current float type. +% The usage of the |\floatbox| macro looks like: % \begin{Quote} -% |\floatbox[|\meta{preamble}|]{|\meta{captype}|}[|^^A -% \meta{width}|][|\meta{height}|][|\meta{vert pos}|]| -% | {|\meta{caption}|}{|\meta{object}|}|\footnotemark +% |\floatbox|\oarg{preamble}\marg{captype}\oarg{width}\oarg{height}\oarg{vert pos} +% | |\marg{caption}\marg{object} % \end{Quote}%^^A -% \footnotetext{The -% order of mandatory arguments and their contents makes not -% difference during building of float box. This macro -% historically needs two mandatory arguments, but they could -% be filled freely.} -% where\label{floatboxsets}: +% The |\floatbox|'s arguments\label{floatboxsets}: % \begin{description}\itemsep0pt -% \item[\meta{preamble}]there could be |\capbeside|\label{floatbox:capbeside} command which +% \item[\meta{preamble}]there could be |\capbeside|\label{FB:capbeside} command which % places caption beside float contents; -% |\nocapbeside|\label{floatbox:nocapbeside} +% |\nocapbeside|\label{FB:nocapbeside} % (to put caption above/below, accordingly % to float type's style); -% |\captop|\label{floatbox:captop} +% |\captop|\label{FB:captop} % (to put caption above); % or another systematic command % (even with usage of |\captionsetup| -% and |\|\hyperref[setup:thisfloatsetup]{\texttt{thisfloatsetup}} +% and |\|\FRkey{thisfloatsetup}, % see examples in documentation and appendix). -% \item[\meta{captype}]the type of float this command created for; +% \item[\meta{captype}]the type of float this command is created for. Since this command +% is supposed to appear outside floating environments or in ``foreign'' environments +% (see {\sectionname}~\ref{sec:mixrow} below), +% we write here, usually, the actual name of float type; % \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). -% Empty width option, |[]|, and option |[\hsize]| mean the same.\par -% The option |[\FBwidth]|\label{floatbox:FBwidth}%^^A -% \FRmpar{Caption's width\\ equals to object}{FAD:FBwidthIII} -% in~the \meta{width} argument -% allows usage of natural width of float contents: \qquad for full float box in the case of caption -% above/\allowbreak below; \qquad in~the case of beside caption natural width of float object expands to -% object box only.\par -% \emph{Note}. If you use the \verb|\FBwidth| command in the \meta{width} -% optional argument, please be 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); +% 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); +% 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 \meta{height} argument has larger value than -% height of object contents, float placed inside \env{floatrow}. -% \item[\meta{caption}]text of caption and legends (you may use -% |\floatfoot| command (see page~\pageref{subsec:floatfoot}); you -% may also use |\footnote|/|\mpfootnotemark|/|\footnotetext| stuff -% for footnotes inside float, or |\floatfoot| command; -% \item[\meta{object}]Contents of float; you may use -% |\footnote|/|\mpfootnotemark|/|\footnotetext| stuff or +% object's box in case of the \meta{height} argument differs from the natural value of +% object height, or in the float layout there are used settings +% for common heights of float objects inside |floatrow| environment. +% 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} +% \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:~\nobreak\qquad1)\nobreak\enskip +% for full float box in the case of caption +% above/\allowbreak below;~\nobreak\qquad2)\nobreak\enskip in~the case of caption beside float object, +% the natural width of float object expands to the +% object box only. % -% The commands |\ttabbox|, |\ffigbox|, and |\fcapside|, used in Introduction, abbreviate |\floatbox| command, which creates -% float boxes: -% \begin{itemize}\itemsep0pt\parskip0pt -% \item[--] the |\ttabbox| command we can replace with the code\\ -% | \floatbox[\captop]{table}[\FBwidth]|; -% \item[--] the |\ffigbox| one---with |\floatbox{figure}| (simplest definition); and -% \item[--] the |\fcapside| one---with |\floatbox[\capbeside]{figure}|. -% \end{itemize}% -% -% You see in example with figure~\ref{intro:figure:FBwidth} that you can change width -% for |\ffigbox| command to get caption (and also full float box) width equal to the width -% of object. Also you may create your own command based on |\floatbox| command -% and set float box's width equal to object's, -% see {\sectionname}~\ref{ssec:ffigbox:etc} about this. +% \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 with of caption box equals to 4cm, and all lines in +% caption justified, but the last one flushed to the right. % -% \begingroup -% The three examples of float placing. First simplest example: %\begin{Quote} %|\begin{figure}| -%|\floatbox{figure}[4cm]| -%| {\caption{The simple example ...}%| -%| \label{fig:WcatI}}| -%| {...}| -%|\end{figure}| -%\end{Quote} -% created the picture in the figure~\ref{fig:WcatI}. The width of box equals to 4cm. -% \begin{figure}[H] -% \floatbox{figure}[4cm] -% {\caption{The simple example of \cmd{\floatbox}}% -% \label{fig:WcatI}} -% {\unitlength1.24\unitlength\input{TheCat.picture}} -% \end{figure}% -% \endgroup -% -% The more preferable way for usage of |\floatbox| is to put table -% caption \emph{above} table contents and set caption width equal -% to table width. -%\begin{Quote} -%|\begin{table}|\nopagebreak -%|\floatbox[\captpop]{table}[\FBwidth]| -%| {\caption{Simple tabular ...}\label{...}}| -%| {\begin{tabular}{|l|c|c|}| -%| ...}| -%|\end{table}| -%\end{Quote} -% \DeleteShortVerb{\|}% -% \begingroup -% \floatsetup[table]{style=plain} -% \begin{table}[H] -% \floatbox[\captop]{table}[\FBwidth] -% {\caption{Simple tabular with caption -% above (\cmd{\floatbox} with \cmd{\captop} in preamble argument)}\label{tab:tabII}} -% {\begin{tabular}{|l|c|c|} -% \hline -% \thead{Column head} & \thead{Data I} & \thead{Data 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}} -% \end{table}% -% \endgroup -% \MakeShortVerb{\|}% -% as shown in table~\ref{tab:tabII}. To fit size of caption (i.e full -% float box) to size of \env{tabular} environment there was used -% |\FBwidth| command in \meta{width} argument. -% -% The next example shows \env{figure} environment with beside caption. -% In this example \meta{preamble} argument consists of rather complex definition, -% and |\FBwidth| in \meta{width} argument. The caption -% occupies the rest space of float box's width, |\hsize| (in current -% example the width float box equals to main text width---|\textwidth|). -% -%\begin{Quote} +%\begin{preamble} +%|\newcommand\rightlast{\leftskip0ptplus1fil| +%| \rightskip0ptplus-1fil\parfillskip0ptplus1fil}| +%|\DeclareCaptionJustification{rightlast}{\rightlast}| +%\end{preamble} %|\begin{figure}| %|\floatbox[{\capbeside| -%| \captionsetup[capbesidefigure]{format=break,labelsep=none,| -%| justification=raggedleft}%| -%| \|\hyperref[setup:thisfloatsetup]{\texttt{thisfloatsetup}}%^^A -% |{|\hyperref[setup:capbesideposition]{\texttt{capbesideposition}}|=left}}]{figure}[\FBwidth]| +%| \captionsetup[capbesidefigure]{labelsep=newline,| +%| justification=rightlast}%| +%| \|\FRkey{thisfloatsetup}%^^A +% |{|\FRkey{capbesideposition}|={left,center},| +%| |\FRkey{capbesidewidth}|=4cm}}]{figure}[\FBwidth]| %| {\caption{...}\label{...}}| %| {...}| %|\end{figure}| %\end{Quote} +%\begingroup % \begin{figure}[H] % \floatbox[{\capbeside -% \captionsetup[capbesidefigure]{format=break,labelsep=none, -% justification=raggedleft}% -% \thisfloatsetup{capbesideposition=left}}]{figure}[\FBwidth] -% {\caption[Beside caption (example width complex preamble in \cmd{\floatbox})]{Beside caption and more text +% \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 and a little peace of text to fill +% a little more text to fill % space}\label{fig:beside:mouse}} % {{\setlength\unitlength{4cm/58}%^^A % \input{Mouse.picture}}} % \end{figure} -% Please note that complex preamble, with more than one command option must be placed in group. -% (See {\sectionname}~\ref{sec:floatsetup} about settings for floats.) -% -% \RestoreSpaces -% \subsubsection{Creation of Personal Commands for Float Boxes}\label{ssec:ffigbox:etc} -% -% The usage of |\floatbox| command with options (which could be cumbersome) sometimes is rather complex. -% The Introduction demonstrates commands-abbreviations of this commands. +%\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 there some additional style definitions and settings. +% 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\\\strut\qquad +% |\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 float environment +% \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 first reason of usage of this option is -% to put |\FBwidth| command: \qquad in case of -% caption above or below object (there could be defined -% |\nocapbeside| in \meta{preamble} option) this command defines width of -% full float (object---caption) box (see figure~\ref{intro:figure:FBwidth}); \qquad in the case of caption -% beside object (there must be defined |\capbeside| in \meta{preamble} -% option) this command defines -% width of object (caption occupies the rest space, see figure~\ref{intro:beside:FBwidth}).\par -% You may put also any dimension like |6cm| -% or |.75\textwidth| but usage of option by -% this way is much less reasonable. +% \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} % -% Let's repeat three already defined commands-abbreviations:\label{abbrcom}%^^A +% 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} -% |\newfloatcommand{ffigbox}{figure}[\nocapbeside]|\label{floatbox:ffigbox}\nopagebreak -% |\newfloatcommand{fcapside}{figure}[\capbeside]|\label{floatbox:fcapside}\nopagebreak -% |\newfloatcommand{ttabbox}{table}[\captop][\FBwidth]|\label{floatbox:ttabbox} +% |\ffigbox|\oarg{width}\oarg{height}\oarg{vert pos}\marg{caption}\marg{object} % \end{Quote} -% First two defined for figures and last one---for table. You may -% redefine existing macros using |\renewfloatcommand| command (it uses -% the same arguments as |\newfloatcommand| one).\medskip +% 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 width 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 +% 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. % -% Your defined commands you may use in following way (example for |\ffigbox|): +% \subsubsection{Predefined Float Box Commands} +% Let's repeat three already defined commands-abbreviations, defined in package:\label{abbrcom}%^^A % \begin{Quote} -% |\ffigbox|\oarg{width}\oarg{height}\oarg{vert pos} +% |\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} -% first option, \oarg{width}, cancels the default width settings, which were -% used during (re)definition of current command. The other two options -% are analogous to the |\floatbox|'s ones (see page~\pageref{sec:floatbox}). +% 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). % -% \par\RestoreSpaces -% \subsection{Building Float Row}\label{sec:floatrow} +% \emph{Note}. In the documentation text below the name of the |\floatbox| command means +% both itself and all commands-abbreviations, defined with |\(re)newfloatcommand|. % -% 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 \env{floatrow} environment. +%\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} on the +% page~\pageref{ssec:floatflt}). Also there were founded |\figbox| in \package{formlett} +% package and |\tabbox| in \package{automata} package among styles in \LaTeX{} folder. % -% \par\RestoreSpaces -% This environment looks like: +%\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 @@ -932,219 +1130,204 @@ % |\end{floatrow}| % \end{Quote} % -% The \env{floatrow} environment allows to put floats side by side. -% This environment creates necessary number of ``columns'' -% (usually two), where floats are placed. You may redefine the width of each float box, -% e.g. the table boxes~\ref{tab:row:tabIII} and~\ref{tab:row:tabIV} have the width of their contents +% 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 +% there are excluded widths of the separations between beside floats and margins around the float row). +% 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|). % -% Please note that \emph{for each float box} inside \env{floatrow} you must use |\floatbox|, |\ffigbox|, -% |\ttabbox| or your own command, created with |\newfloatcommand| macro: +% 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} -%\meta{preamble} -%| \usepackage[...|\hyperref[setup:floatrowsep]{\texttt{floatrowsep}}|=qquad,...]{floatrow}| -%| \|\hyperref[sec:floatsetup]{\texttt{floatsetup}}|[table]{|%^^A -% \hyperref[setup:style]{\texttt{style}}|=Plaintop}| -%\meta{preamble} -%|\begin{figure}| -%| \begin{table}| -%| \ttabbox| -%| {\caption{...}\label{...}}| +%|...|\nopagebreak +%|\begin{figure}|\nopagebreak +%| \begin{floatrow}|\nopagebreak +%| \ffigbox[\FBwidth]| %| {...}| -%| | -%| \ttabbox| %| {\caption{...}\label{...}}| +%| | +%| \ffigbox[\Xhsize]|%^^A +% \FRmpar{Float occupies the rest space in the row}{FAD:floatfillspace} %| {...}| -%| \end{floatrow}| -%|\end{table}| -%\end{Quote} -% \DeleteShortVerb{\|}% -% \begin{table}[H] -% \begin{floatrow} -% \extrarowheight1pt -% \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{\|}% -% Since |\ttabbox| uses |\FBwidth| as default option, the caption width equals to tabular contents. -% -% The next example with figures uses |[\FBwidth]| for the left float and |[\Xhsize]| 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}| +%| {\caption{...}\label{...}}| +%| \end{floatrow}|\nopagebreak +%|\end{figure}| %\end{Quote} % \begin{figure}[H] % \begin{floatrow} % \ffigbox[\FBwidth] -% {\caption[Left beside figure (\env{floatrow}), the float box has width of graphic]{Left beside figure, +% {\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 (\env{floatrow}), occupies the rest space of row]{Beside figure at the right side of simple figure row, +% {\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 % -% \emph{Note}. Usually the command |\Xhsize| is used for the last float -% box. But if you use \package{calc} package you may try to use |\Xhsize| +% 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, or set something in \meta{width} -% argument like |\Xhsize/2| and then |\Xhsize| for two last -% |\floatbox|'es---the next example just uses it. -% -% And here is more complex example. The first float (used |\ffigbox|) has default +% 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 occupy the rest horizontal space of page which was -% counted with command |\Xhsize| and \package{calc} package.%^^A +% 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} -%\meta{preamble} -% |\DeclareMarginSet{hangleft}{\setfloatmargins| -% | {\hskip-\marginparwidth\hskip-\marginparsep}{\hfil}}| -% |\floatsetup[|\hyperref[setup:widefigure]{\texttt{widefigure}}|]{|%^^A -% \hyperref[setup:margins]{\texttt{margins}}|=hangleft}| -%\meta{preamble} +%\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}[4]| -%| \ffigbox| -%| {\caption{Beside figure~I...}...}| +%|\begin{floatrow}|{\emphcolor|[4]|} +%| \ffigbox|\nopagebreak +%| {\caption{Beside figure~I...}...}|\nopagebreak %| {...}| -%| | -%| \ffigbox[\FBwidth]| -%| {\caption{Beside figure~II...}...}| +% +%| \ffigbox[\FBwidth]|\nopagebreak +%| {\caption{Beside figure~II...}...}|\nopagebreak %| {...}| -%| | -%| \ffigbox[\Xhsize]| -%| {\caption{Beside figure~III...}...}| +% +%| \ffigbox[\Xhsize/2]|\nopagebreak +%| {\caption{Beside figure~III...}...}|\nopagebreak +%| {...}| +% +%| \ffigbox[\Xhsize]|\nopagebreak +%| {\caption{Beside figure~IV...}...}|\nopagebreak %| {...}| %|\end{floatrow}| %|\end{figure*}| %\end{Quote} +%\begingroup % \floatsetup[widefloat]{margins=hangleft} % \begin{figure*}% % \begin{floatrow}[4] % \ffigbox -% {\caption{Figure~I in the row (\env{floatrow}), ``column'' width}% +% {\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 (\env{floatrow}), graphics width}% +% {\caption{Figure~II in the row (\texttt{floatrow}), graphics width}% % \label{fig:row:WcatI}} -% {\input{TheCat.picture}} +% {\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:BcatI}} +% \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:mouseI}} +% \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:mouseI}. Please note that in all examples the vertical -% alignment of floats lays on the bottom of upper part (here: objects) +% 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). % -% \RestoreSpaces -% \subsubsection{Mixed Row}\label{sec:mixrow} +% 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). % -% The problem in mixed row is that you must put different types of float in -% one float environment, which sets its own layout for included float -% box(es). For creation of right layouts write -% |\|\hyperref[setup:killfloatstyle]{\texttt{killfloatstyle}} command at the beginning of \env{floatrow} -% environment or just before first ``foreign'' |\floatbox| macro (in -% current example---before |\ttabbox|; the |\ffigbox| macro is -% ``native'' for \env{figure} environment). +% \subsubsection{Mixed Row}\label{sec:mixrow} +% \textbf{Problems}. 1.\enskip Sometimes, for example, it is necessary to put beside figure and table. +% The problem of such mixed row is that you must put different types of float in +% one floating environment, which sets its own layout for included float box(es). % -% Another problem is that figures usually have captions below +% 2.\enskip 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 undesirable result. For such situations you may -% use one of the following commands: +% and table you'll get an undesirable result. +% +% \DescribeMacro{\killfloatstyle} +% \textbf{Solutions}. 1.\enskip For creation of right layouts for each float type in mixed row, you ought to write +% |\|\FRkey{killfloatstyle} command just before each ``foreign'' +% (for current floating environment) |\floatbox| macro. +% +% \DescribeMacro{\CenterFloatBoxes} +% \DescribeMacro{\TopFloatBoxes} +% \DescribeMacro{\BottomFloatBoxes} +% {\sloppy2.\enskip For correct vertical alignment of different float types, which put captions in different +% positions, you may use one of the following commands: %\begin{Quote} -%|\CenterFloatBoxes|\label{floatbox:CenterFloatBoxes} -%|\TopFloatBoxes|\label{floatbox:TopFloatBoxes} -%|\BottomFloatBoxes|\label{floatbox:BottomFloatBoxes} +%|\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. -% These macros were created by |\buildFBBOX|\label{floatbox:buildFBBOX} macro. -% There is also |\PlainFloatBoxes|\label{floatbox:PlainFloatBoxes} which restores standard behavior of -% |\floatbox|'es. +% There is also |\PlainFloatBoxes|\label{FB:PlainFloatBoxes} which restores standard behavior of +% |\floatbox|'es.\par} % -% The usage of |\CenterFloatBoxes| and |\killfloatstyle| you'll see in -% mixed float row with figure~\ref{fig:rowmixspec:WcatI} and -% table~\ref{tab:rowmixspec:tabI}\label{mixrow}: -%\begin{Quote}\openup-.5pt +% \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}| -%| \ffigbox[\FBwidth]| +%| \|\FRkey[FB]{ffigbox}|[\|\FRkey[FB]{FBwidth}|]| %| ...| -%| \killfloatstyle\ttabbox| +%| \|\FRkey{killfloatstyle}|\|\FRkey[FB]{ttabbox} %| ...| %\end{Quote} % \DeleteShortVerb{\|}% -% \begingroup +% \begingroup\floatsetup[figure]{style=Boxed} % \begin{figure}[H]\CenterFloatBoxes % \begin{floatrow} % \ffigbox[\FBwidth] % {\unitlength1.86\unitlength\input{Horse.picture}} -% {\caption{A figure in the mixed row}\label{fig:rowmixspec:WcatI}}% +% {\caption{A \texttt{Boxed} figure in the mixed row}\label{fig:rowmixspec:WcatI}}% % \extrarowheight1pt % \killfloatstyle % \ttabbox @@ -1154,26 +1337,28 @@ % \end{figure} % \endgroup % \MakeShortVerb{\|}% -% \par\RestoreSpaces +% \RestoreSpaces % % \emph{Note.} Both figure and table boxes have got width equal to -% contents of objects. The |\ffigbox| command has optional argument -% |[\FBwidth]|, but |\ttabbox| have not 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} +% 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 float environments for the case +% \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. If you still need a raw behavior of float environment, -% you may do that by one of three ways. +% 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. % -% 1.\enskip If you want \LaTeX\ behavior for \emph{just for one environment}, +% \DescribeMacro{\RawFloats}\label{setup:RawFloats}%^^A +% 1.\enskip If you want \LaTeX\ behavior \emph{just for one environment}, % input a |\RawFloats| command \emph{inside} environment: -%\begin{Quote}\openup-.5pt +%\begin{Quote} +%\begin{preamble} +%|\|\FRkey[sec]{floatsetup}|[figure]{|\FRkey{style}|=Boxed}|\%{ \em please note, it does nothing here} +%\end{preamble} %|\begin{figure}\RawFloats|\nopagebreak %|\captionsetup[table]{position=top}| %|\begin{minipage}{0.45\textwidth}| @@ -1187,8 +1372,8 @@ %|\end{figure}| %\end{Quote} % And you'll get figure~\ref{Right:expect:fig} -% and table~\ref{Right:expect:tab}\nopagebreak\footnote{That could work correct if -% you do not use any fancy float layout at least for one of floats.}. +% 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} @@ -1201,111 +1386,158 @@ % \begin{tabular}{|c|c|}\hline A & B \\ C & D \\ \hline\end{tabular} % \end{minipage} % \end{figure} -% Compare this example with example in the {\sectionname}~\ref{sec:mixrow} and the following example. -%\begin{Quote}\openup-.5pt -%|\begin{figure}\RawFloats\CenterFloatBoxes|\nopagebreak -%|\begin{floatrow}| -%| \ffigbox[\FBwidth]|\nopagebreak +%\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{...}}| %| | -%| \ttabbox|\nopagebreak +%| \|\FRkey[FB]{ttabbox}\nopagebreak %| {...}|\nopagebreak %| {\caption{...}\label{...}}| %|\end{floatrow}|\nopagebreak %|\end{figure}| %\end{Quote} -% \begin{figure}[H]\RawFloats\CenterFloatBoxes +%\begingroup\floatsetup[figure]{style=Boxed} +% \begin{figure}[ht]\RawFloats\CenterFloatBoxes % \begin{floatrow} % \ffigbox[\FBwidth] -% {\unitlength1.86\unitlength\input{Horse.picture}} -% {\caption{A figure in \cmd{\floatbox} and inside \env{floatrow} in raw \LaTeX's mode}% -% \label{intro:leftfig:raw}}% +% {\unitlength1.88\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{\floatbox} and inside \env{floatrow} in raw -% \LaTeX's mode}\label{intro:righttab:raw}} +% {\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 % -% 2.\enskip Canceling of \package{floatrow}'s behavior of \emph{all floats of one type} -% is set outside any float environment, these settings are better for -% preamble. In this case the |\RawFloats| command needs optional +% 2.\enskip 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 to all figures -% in all subtype environments (\texttt{figure}, \texttt{figure*}, -% \texttt{sidewaysfigure}, etc.) plain \LaTeX{} mode. If there is also a table, +% 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 \texttt{float}, \texttt{widefloat}, -% \texttt{rotfloat}, \texttt{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 -% %^^A(or short variants without ``float'', like -% %^^A\texttt{rot} or \texttt{widerot})%^^A -% .%^^A +% 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 % % \DescribeMacro{rawfloats}\label{setup:rawfloats}%^^A -% 3.\enskip This option stores the plain \LaTeX{} mode (i.e. stores usage of standard -% \LaTeX{} float macros) for all standard and new -% user defined float types. This option can be used only in -% |\usepackage| line. +% 3.\enskip 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. % -% The \env{floatrow} environment ({\sectionname}~\ref{sec:floatrow}) -% and commands of |\floatbox| stuff ({\sectionname}~\ref{sec:floatbox}) -% still work after |\RawFloats|' and |rawfloats=| settings -% (see example width figure~\ref{intro:leftfig:raw} -% and table~\ref{intro:righttab:raw})\label{FAD:MixedRow}%^^A +%\medskip +% \emph{Notes}.\nopagebreak % -% \RestoreSpaces -% \subsection{Usage of Footnotes Inside Float Environment} -% \label{sec:floatfootnote} +% 1)\enskip 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}). % -% Sometimes table -% or figure contents have material, which authors mark -% and then write some explanation like footnotes. Current package has -% mechanism which allows to put footnotes inside float environment, in -% the same way as is in \env{minipage} environment. +% {\sloppy2)\enskip The |floatrow| environment ({\sectionname}~\ref{sec:floatrow}) +% and commands of |\floatbox| stuff ({\sectionname}~\ref{sec:floatbox}) +% still work after |\RawFloats[...]| command and |rawfloats=| key +% (see example with figure~\ref{leftfig:raw} +% and table~\ref{righttab:raw})\label{FAD:MixedRow}. +% But inside |\floatbox| commands can work only layout settings +% of the package, written in |\usepackage| line and inside |\floatsetup{...}|, +% and settings for main types of floats like |\floatsetup[figure]{...}| +% or |\floatsetup[table]{...}|. The settings for all other layout subtypes +% (see {\sectionname}~\ref{sec:floatsetup}) will be canceled.\par} +% +% \subsubsection{Raw Caption---Printing in Unusual Way} +% \DescribeMacro{\RawCaption}\label{setup:RawCaption}%^^A +% This command allows to ``release'' caption contents from special +% box register. The caption is placed as argument of |\RawCaption|: +% \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} +%|\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} +%\floatsetup{style=plain} +%\begin{figure}[H]\unitlength1.28\unitlength\lineskip0pt +%\framebox(70,60){\input{TheCat.picture}}\hspace{2\unitlength}%%^^A +%\framebox(70,60){\unitlength.5\unitlength\input{TheCat.picture}}\vspace{2\unitlength}\par +%\framebox(70,60){\unitlength.25\unitlength\input{TheCat.picture}}\hspace{2\unitlength}%%^^A +%\parbox[b][60\unitlength]{70\unitlength}{\RawCaption{\caption +% [Caption in raw \LaTeX{} mode, placed in the free corner of figure]{The cat's portrait, +% printed with different scaling}\label{rawcaption:plain}}} +%\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 -% of |\footnotemark| in standard \LaTeX\ always creates the sign of main text footnote. +% |\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} -% macro instead of |\footnotemark|%^^A% -% \footnote{The same macro also is defined in \package{footmisc} package, -% version 4.10, dated 2003/01/20.}. -% \begin{Quote}\openup-.35pt% -% \meta{preamble} -% |\floatsetup{...,|\hyperref[setup:footnoterule]{\texttt{footnoterule}}|=limited,|%^^A -% \hyperref[setup:footskip]{\texttt{footskip}}|=\skip\footins,...}| -% \meta{preamble} -% |\begin{table}| -% |\ttabbox| -% | {\caption{...}\label{...}}%| -% \verb+ {\begin{tabular}{...}+ -% | \hline| -% | First row & \phantom01 & 2\mpfootnotemark[1] \\| -% | Second row & \phantom06\mpfootnotemark[1] & 4\mpfootnotemark[1] \\| -% | ...| -% | \hline| -% | \end{tabular}%| -% | \footnotetext[1]{Even numbers.}}| -% |\end{table}| +% \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} +% |\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{\|}% -% \begin{table}[H]\floatsetup{footnoterule=limited,footskip=\skip\footins} +%\begingroup\floatsetup[table]{footnoterule=none,footskip=.35\skip\footins} +% \begin{table}[H] % \ttabbox % {\caption{Table with footnote}%^^A % \label{tab:floatfnote}}%^^A @@ -1321,39 +1553,60 @@ % \end{tabular}%^^A % \footnotetext[1]{Even numbers.}} % \end{table}% +%\endgroup % \MakeShortVerb{\|}% % -% The |\floatbox| macro uses special own definition of footnote rule -% (the \hyperref[setup:footnoterule]{\texttt{footnoterule}}|=| key) and skip before footnotes and -% explications or legends (\hyperref[setup:footskip]{\texttt{footskip}}|=|). (See also -% page~\pageref{sec:footnotestyle} for variants of footnote rule.) -% -% \RestoreSpaces -% \subsubsection{The Legend-Like Macro}\label{subsec:floatfoot} +% {\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 |\floatfoot|\label{FAD:Legend} % command. The |\floatfoot| is -% build by usage of |\caption| stuff and uses caption's text justification, -% but star form (|\floatfoot*|) prints its contents as plain unindented -% paragraph (see table~\ref{tab:floatfoot}). -% -% For defining of explication font use \hyperref[setup:footfont]{\texttt{footfont=}} option -% (page~\pageref{setup:footfont}) in |\floatsetup|. You may try to -% define special settings for float foot using -% \cmd{\captionsetup[floatfoot]}. +% build by usage of |\caption| stuff and uses caption's text justification: %\begin{Quote} -%|\begin{table}| -%|\ttabbox| +%|\begin{table}|\nopagebreak +%|\|\FRkey[FB]{ttabbox} %| {\caption{...}\label{...}}| % \verb+ {\begin{tabular}{...}+ -%| ...| -%| \end{tabular}%| -%| \floatfoot*{`Data I' column ...}}| -%|\end{table}| +%| ...\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)]{Table with foot material}%^^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)]{Table with foot material}%^^A @@ -1371,15 +1624,21 @@ % \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.} 1)\enskip 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|\footnotemark|/\allowbreak|\footnotetext| stuffs instead. +% |\footnote|/\allowbreak|\mpfootnotemark|/\allowbreak|\footnotetext| stuff instead. % % 2)\enskip If you use both commands |\floatfoot| and |\footnote| % inside one float box, the |\floatfoot| appears above |\footnote| @@ -1387,208 +1646,186 @@ % % 3)\enskip 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 page \pageref{setup:footposition} -% and sample file \file{frsample01.tex}. In case of caption beside -% float object, footnotes and foot text always placed below caption. -% -% -% \RestoreSpaces -% \subsection{Fine Tuning of Vertical Spaces of Float} -% \label{sec:FBabskips} +% (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 there you may use +% To change space between float box and main text, you may use % two simple commands |\FBaskip| and |\FBbskip|. For example define -% \begin{verse} +% \begin{Quote} % |\renewcommand\FBaskip{-4pt}| -% \end{verse} -% to move up float box up (or reduce space above) by 4pt. In current -% document the |\FBaskip| command was necessary for moving up +% |\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 float environment allows usage of +% 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.}. % -% \RestoreSpaces -% \subsection{Do not write that with \package{floatrow} package} -% -% The \package{floatrow} package creates some features or limitations -% of float building. If you'll write something like -%\begin{Quote} -%\meta{preamble} -%|\usepackage{floatrow}| -%\meta{preamble} -%|\begin{figure}| -%| \caption{A table caption...}| -%| \centering \begin{tabular}{cc} A & B \\ C & D \end{tabular}| -%|\end{figure}| -%\end{Quote} -% please do not expect that caption appears at the top of table. -% -% \begingroup\clearfloatsetup{table} -% \begin{table}[H] -% \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 -% -% If -% you want, e.g. to put table captions above its contents, you must -% write |\floatsetup[figure]{style=plaintop}| in the preamble -% (see also {\sectionname}~\ref{sec:floatsetup} about |\floatsetup| mechanism). -% Another example. If you put beside floats by following way: -%\begin{Quote} -%\meta{preamble} -%|\usepackage{floatrow}| -%\meta{preamble} -%|\begin{figure}|\nopagebreak\parskip0pt -%|\begin{minipage}{0.5\textwidth}| -%| \centering ...| -%| \caption{A figure caption, disappeared, wrong expected row}| -%|\end{minipage}| -%|\begin{minipage}{0.5\textwidth}| -%| \captionof{table}{A table caption, wrong expected row}}| -%| \centering | -%| \begin{tabular}{cc}| -%| A & B \\ C & D | -%| \end{tabular}| -%|\end{minipage}|\nopagebreak -%|\end{figure}| -%\end{Quote} -% you also won't get expected result. -%\begin{figure}[H] -%\begin{minipage}{0.5\textwidth} -%\centering \input{Horse.picture} -%\caption{A figure caption, disappeared, wrong expected row} -%\end{minipage} -%\begin{minipage}{0.5\textwidth} -%\captionof{table}{A table caption, wrong expected row} -%\centering \begin{tabular}{cc} A & B \\ C & D \end{tabular} -%\end{minipage} -%\end{figure} -% Read back the {\sectionname}s~\ref{sec:mixrow} and~\ref{sec:rawfloats} and correct the error. +% \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 -% inside document for creation of desired layout for floats -% and make layout modification easier -% if you ought to change book layout. In this case you could think only -% about \emph{markup} of floats and their contents. +% 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 or for one type of -% float is possible because of the borrowed code from the \package{float} -% package, which allows to modify layout of float boxes as a whole. +% 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 layout and modification for captions and special -% settings for -% each type of float is supported by \package{caption} package, version~3.x. +% 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.x package and use |\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}).} mechanism which is -% analog to |\captionsetup| one\footnote{Look also at \package{caption} +% 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)}. % -% \DescribeMacro{\floatsetup} -% You may use layout settings stuff as \package{floatrow} option in -% the |\usepackage| line. +% 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 \texttt{boxed} style and the |\small| font for -% float contents. These settings were loaded for \emph{all} float types. +% 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 |\floatsetup| command has following form: +% The usage of the |\floatsetup| command has following form: % \begin{Quote} -% |\floatsetup|\oarg{float type}\marg{options}\quad. +% |\floatsetup|\oarg{float type}\marg{options}\quad, % \end{Quote} -% -% For defining of a special style for the floats of one type, you can use optional -% argument with name of necessary float type. The following command +% 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 \env{floatrow} -% environment, text of captions is aligned by the top lines.%^^A -% %^^A \footnote{The keys, -% %^^A used in special settings for float of one type, are always -% %^^A ``stronger'' than synonym keys in common setting. In other words, -% %^^A if you want after example above to redefine float style for all -% %^^A floats with \cmd{\floatsetup\{style={\normalfont \meta{option}}\}} -% %^^A you won't change tables---use -% %^^A \cmd{\floatsetup[table]}\allowbreak -% %^^A \texttt{\{style={\normalfont \meta{option}}\}} again.} -% -% There are also special options of |\floatsetup| for settings for floats -% in different positioning: two-column floats (starred environment, like -% \env{figure*}, you may also use, for example, for wide floats) rotated -% floats, wrapped floats. The ``strength'' of options in the lists below decreases -% from previous item to next one (examples based on \env{figure} -% environment)\footnote{In the case of the boolean key \texttt{rawfloats=} is switched to \texttt{true}, -% the options below for float layout are canceled.}: -% \begin{itemize}\label{stsetorder}\itemsep0pt\parskip0pt +% 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 (e.g. \env{figure*}: -% you may load special -% settings for starred environments even in one-column document; that could be different margins for -% floats, different alignment of captions): +% Wide or two-column floats (|figure*|): % \begin{itemize} % \item % |\floatsetup[widefigure]|\label{setup:widefigure}---the ``strongest'' settings; -% if they absent, package uses settings from next item; +% 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 absent, package uses settings from next item; +% if they are absent, the settings from the next item will be used; % \item % |\floatsetup[figure]|; -% if they absent, package uses settings from +% if they are absent, package uses settings from % optional argument in |\usepackage| line or |\floatsetup{...}| -% command; if they absent---default package settings +% command; if they are absent---the default package settings will be used % (see page~\pageref{sec:default}); % \end{itemize} % \item -% Wrapped floats (\env{wrapfigure}, used width \package{wrapfig} package): -% \begin{itemize}%\itemsep0pt\parskip.5\parskip +% 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 (in environments, like \env{sidewaysfigure}, -% used width \package{rotating} package): -% \begin{itemize}%\itemsep0pt\parskip.5\parskip +% 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 -% (\env{sidewaysfigure*})\footnote{The settings -% for wide float (\texttt{widefloat}, \texttt{widefigure}) -% removed---use settings for \texttt{widerotfloat} -% and---here---\texttt{widerotfigure}}: -% \begin{itemize}%\itemsep0pt\parskip.5\parskip +% (|sidewaysfigure*|)\footnote{The settings +% for wide float (|widefloat|, |widefigure|) +% are absent---use settings for |widerotfloat| +% and---here---|widerotfigure|}: +% \begin{itemize} % \item |\floatsetup[widerotfigure]|\label{setup:widerotfigure}; % \item |\floatsetup[widerotfloat]|\label{setup:widerotfloat}; % \item |\floatsetup[rotfigure]|; @@ -1596,59 +1833,90 @@ % \item |\floatsetup[figure]|; % \end{itemize} % \item -% Floats with beside captions (please note, that settings in these options are limited, see below): -% \begin{itemize}%\itemsep0pt +% 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 -% setting of outer environments from previous items: -% \env{sidewaysfigure*}, \env{sidewaysfigure}, \env{figure*} and \env{figure}. +% setting of outer environments from previous items, e.g., +% |sidewaysfigure*|, |sidewaysfigure|, |figure*| and |figure|. % \end{itemize} % \end{itemize} -% You can also create and change special settings for captions, using -% the same \meta{float~type} options in |\captionsetup| stuff.\nopagebreak % -% The next few sections describe keys of |\floatsetup| macro. +% \emph{Notes}.\nopagebreak % -% \subsection{Floatsetup Keys}\label{sec:floatkeys} +% 1)\enskip You can also create and change special settings for captions of +% necessary float types or subtypes, using +% co-named \meta{float~type} options inside the |\captionsetup| command, +% e.g., |\captionsetup[widefigure]{...}|. +% +% 2)\enskip Please note that with |\RawFloats[...]| command and |rawfloats=| key +% (\sectionname~\ref{sec:rawfloats}) you will cancel all layout +% settings created as options in the |\usepackage| line or inside +% the |\floatsetup| command for all chosen float types/subtypes. +% +% {\sloppy3)\enskip Since the |floatrow| environment ({\sectionname}~\ref{sec:floatrow}) +% and |\floatbox| commands (e.g. |\ffigbox|, |\ttabbox|, see {\sectionname}~\ref{sec:floatbox}) +% still work after both |\RawFloats| (|\RawFloats[...]|) command and |rawfloats=| key (see example width +% figure~\ref{leftfig:raw} and table~\ref{righttab:raw})\label{FAD:MixedRow}, these boxes +% still support layout settings. But please note, that inside |\floatbox| commands +% only~\nobreak\quad1)\nobreak\enskip layout settings of the package, +% written in |\usepackage| line and inside |\floatsetup{...}|, +% and~\nobreak\quad2)\nobreak\enskip settings for main types of floats like |\floatsetup[figure]{...}| +% or |\floatsetup[table]{...}| can work; +% settings for all subtypes will be canceled.\par}\medskip\nopagebreak % -% \subsubsection{Float Style} +% The next few sections describe keys of |\floatsetup| macro. % +% \subsection{Floatsetup Keys}\label{sec:floatkeys} +% \FRorisubsubsection{Float Style} % \DescribeMacro{style}\label{setup:style}%^^A -% The \emph{float style} could include alignment of float contents, margins, boxes or lines, -% if necessary, and other options. +% 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: -% \par\RestoreSpaces % \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 \\|\DeclareFloatStyle| command, +% 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}, there are included all float styles +% 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 \texttt{style=} key for floats with beside captions, +% 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]| -% cancels settings for beside position of caption. Usually the floats with beside captions -% can set different alignment of captions, so the radical changes for float layout -% with beside caption in current version could get wrong results (see -% {\sectionname}~\ref{page:killfloatstyle} how to solve this problem).\medskip +% |[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 \texttt{ruled} style is the only one from \package{float} -% package, which was predefined in \package{caption} package. To use it, -% write +% 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 -% \jot3pt\tabcolsep1.5\tabcolsep +% \jot4pt\tabcolsep1.5\tabcolsep % \newlengthtocommand\settowidth\Icolumn{\small\texttt{wshadowboxx}} % \newlengthtocommand\settowidth\IIcolumn{\small\texttt{framestyle=wshadowbox}} % \newlengthtocommand\setlength\IIIcolumn{\textwidth-\Icolumn-\IIcolumn @@ -1660,142 +1928,149 @@ % 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}p{\Icolumn} % |>{\extrarowheight0pt\def\arraystretch{.75}\ttfamily}p{\IIcolumn} -% |>{\parindent1em\topstrut}p{\IIIcolumn}<{\botstrut}|} +% |>{\parindent1em\sloppy\topstrut}p{\IIIcolumn}<{\botstrut}|} % \caption{Float layout styles}\label{tab:floatlayouts}\\ % \hline -% \hfil\thead{Style} & -% \hfil\thead{\cmd{\floatsetup} keys} & -% \hfil\thead{Description} \\ -% \hline +% \LongtableHead \\ \hline\noalign{\vskip-.4pt} % \endfirsthead -% \caption[]{Float layout styles \textmd{(\emph{Continued})}}\\ -% \hline -% \hfil\thead{Style} & -% \hfil\thead{\cmd{\floatsetup} keys} & -% \hfil\thead{Description} \\ +% \captionsetup{labelformat=continued}\caption[]{}\\ % \hline +% \LongtableHead \\ \hline\noalign{\vskip-.4pt} % \endhead -% \caption[]{Float layout styles \textmd{(\emph{Finished})}}\\ -% \hline -% \hfil\thead{Style} & -% \hfil\thead{\cmd{\floatsetup} keys} & -% \hfil\thead{Description} \\ +% \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{\texttt{plain}\label{setup:plain}{\mpfootnotemark[1]\mpfootnotemark[2]\mpfootnotemark[3]}} +% \hline \leftcell{plain\label{setup:plain}{\mpfootnotemark[1]\mpfootnotemark[2]\mpfootnotemark[3]}} % & \leftcell{\meta{none}} -% &The style \texttt{plain} is standard \LaTeX's layout. Put captions always below float object's contents. +% &The style |plain| is standard \LaTeX's layout. Puts captions always below float object's contents. % \\\hline -% \leftcell{\texttt{plaintop}{\mpfootnotemark[1]} -% \botstrut\\ \hline\topstrut\texttt{Plaintop}} -% & \leftcell[50mm]{capposition=top\botstrut\\ \hline\topstrut -% capposition=TOP} -% &The style \texttt{plaintop} is the same as \texttt{plain} style, but puts captions above float object's contents---%^^A -% this style is analog of -% the co-named style from the \package{float} package.\par Capitalized form, |Plaintop|, -% aligns captions of the floats, which were placed in the one row -% (in the \env{floatrow} environment), -% by top line (see example on the page~\pageref{tab:row:tabIII}) +% \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{\texttt{ruled}\label{setup:ruled}{\mpfootnotemark[1]\mpfootnotemark[3]} -% \\ \\ \\ \\ \botstrut\\ \hline\topstrut\texttt{Ruled}\smash{\mpfootnotemark[2]}} -% & \leftcell[50mm]{capposition=top,\\ precode=thickrule,\\ +% \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\\ \hline\topstrut -% style=ruled,\\ capposition=TOP} -% &The first style, \texttt{ruled}, emulates co-named style from the \package{float} package. +% 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.\par -% Capitalized form, |Ruled|, aligns captions of the floats, which were placed -% in the one row (in the \env{floatrow} environment), -% by top line (see example on the page~\pageref{example:ruledcapposTOP}) +% 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 +% in one row (in the |floatrow| environment), +% by top line (see example on the page~\pageref{leftfig:Ruled}). % \\\hline -% \leftcell{\texttt{boxed}\smash{\mpfootnotemark[1]\mpfootnotemark[2]\mpfootnotemark[3]\mpfootnotemark[4]} -% \\ \\ \\ \botstrut\\ \hline\topstrut\texttt{Boxed}\label{setup:Boxed}\smash{\mpfootnotemark[2]\mpfootnotemark[3]} -% \\ \botstrut\\ \hline\topstrut\texttt{BOXED}\smash{\mpfootnotemark[2]}\mpfootnotemark[3]} +% \leftcell{\topstrut boxed\mpfootnotemark[1]\mpfootnotemark[2]\mpfootnotemark[3]\mpfootnotemark[4]\botstrut} % & \leftcell[50mm]{captionskip=2pt,\\framestyle=fbox,\\ -% heightadjust=object,\\framearound=object\botstrut\\ \hline\topstrut -% style=boxed,\\ framefit=yes\botstrut\\ \hline\topstrut -% framestyle=fbox,\\ framefit=yes,\\ -% heightadjust=all,\\ framearound=all} -% &The first style, \texttt{boxed}, emulates (again) co-named style from the \package{float} package. -% The width of object equals to the |\textwidth|, predefined \cmd{\hsize}, or +% heightadjust=object,\\framearound=object\botstrut} +% &The first style, |boxed|, emulates co-named style from the \package{float} package. +% The \emph{width of object} equals to the |\textwidth|, predefined |\hsize|, or % the width in |\floatbox|'s option; % 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 \cmd{\fboxsep} and \cmd{\fboxrule} settings. (Default values -% are \texttt{3pt} and \texttt{.4pt} consequently.)\par -% In capitalized form, |Boxed|, the frame around object fits the -% \cmd{\textwidth}, predefined \cmd{\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:plain:MyBoxed}).\par -% Uppercase form, |BOXED|, -% draws frame which fits to current \cmd{\textwidth}, predefined \cmd{\hsize}, or the width in |\floatbox|'s option, +% 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 +% |\textwidth|, predefined |\hsize|, or the width in |\floatbox|'s option; the width of object +% is reduced to fit inside frame (see example on the page~\pageref{fig:setup:Boxed}).\\ \cline{1-2} +% %^^A +% \leftcell{\topstrut|BOXED|\smash{\mpfootnotemark[2]}\mpfootnotemark[3]\botstrut} +% & \leftcell[50mm]{\topstrut framestyle=fbox,\\ framefit=yes,\\ +% heightadjust=all,\\ framearound=all\botstrut} +% & Uppercase form, |BOXED|, +% draws frame which fits to current |\textwidth|, predefined |\hsize|, +% or the width in |\floatbox|'s option, % but around all float elements: caption, object and foot material -% (see example on the page~\pageref{fig:wrapfig:WcatII}) +% (see example on the page~\pageref{BOXED:heightmod}). % \\ \hline % \multicolumn{3}{|c|}{Offered by \package{fr-fancy} package. % They also need \package{fancybox} package.\botstrut\topstrut}\\* -% \hline \leftcell{\texttt{shadowbox}\smash{\mpfootnotemark[4]} -% \\ \botstrut\\ \hline\topstrut\texttt{Shadowbox} -% \\ \botstrut\\ \hline\topstrut\texttt{SHADOWBOX}} +% \hline \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 \texttt{boxed}, \texttt{Boxed} and \texttt{BOXED} -% consequently. The \cmd{\fbox} frame changed to \cmd{\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 \cmd{\fboxsep} and \cmd{\fboxrule}, there is added parameter -% \cmd{\shadowsize}---the width of shadow, -% default is \texttt{4pt} +% Besides |\fboxsep| and |\fboxrule|, there is added parameter +% |\shadowsize|---the width of shadow, +% default is |4pt|. % \\ \hline -% \leftcell{\texttt{doublebox}\smash{\mpfootnotemark[4]} -% \\ \botstrut\\ \hline\topstrut\texttt{Doublebox}\\ -% \botstrut\\ \hline\topstrut\texttt{DOUBLEBOX}} +% \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 \texttt{boxed}, \texttt{Boxed} and \texttt{BOXED} -% consequently. The \cmd{\fbox} frame changed to \cmd{\doublebox} -% from \package{fancybox} package. The frame shape control \cmd{\fboxrule} and \cmd{\fboxsep} parameters -% \\ \hline\noalign{\penalty-500} +% &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}\\* \hline -% \leftcell{\texttt{wshadowbox}\smash{\mpfootnotemark[4]} -% \\ \botstrut\\ \hline\topstrut\texttt{Wshadowbox} -% \\ \botstrut\\ \hline\topstrut\texttt{WSHADOWBOX}} +% \package{fancybox} package.\botstrut\topstrut}\cr\noalign{\nobreak} \hline +% \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 \texttt{boxed}, \texttt{Boxed} and \texttt{BOXED} -% consequently. The \cmd{\fbox} frame changed to \cmd{\wshadowbox}, -% based on \cmd{\shadowbox} (but drops white shade from frame, or +% &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 -% \texttt{shadowbox} style. +% in |shadowbox| style. % \\\hline % %^^A \multicolumn3{@{}p{\hsize}@{}} % \noalign -% {\floatfoot*{When there is set float style with frame around object is -% fitted to the box width (like \texttt{Boxed}, etc.), and +% {\floatfoot*{When a~float style is set with frame around object which is +% fitted to the box width (like |Boxed|, etc.), and % \cmd{\floatbox} macro uses \cmd{\FBwidth} command as \meta{width} -% option, which sets box width equal to float object's width (see -% page~\pageref{sec:floatbox}), the width of all float other elements -% in this case enlarged to get width of framed object.\vspace{-3pt}\par +% option, which sets box width equal to float object's width, 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 style.} +% \mpfootnotemark[1]{The styles co-named and analogous to \package{float} package styles.} % -% \mpfootnotemark[2]{This style used in the sample file \file{frsmaple01.tex}} +% \mpfootnotemark[2]{This style is used in the sample file \file{frsmaple01.tex}} % -% \mpfootnotemark[3]{This style used in the sample file \file{frsmaple02.tex}} +% \mpfootnotemark[3]{This style is used in the sample file \file{frsmaple02.tex}} % % \mpfootnotemark[4]{During usage of these styles in % \env{floatrow} environment you ought to enlarge @@ -1803,17 +2078,9 @@ % }} % \end{longtable} % -% % \endgroup % -% -% -% \RestoreSpaces -% -%^^A\pagebreak[4] -% -% \subsubsection{Font settings}\label{setup:start} -% +% \subsubsection{Font Settings}\label{setup:start} % \DescribeMacro{font}\label{setup:font}%^^A % Defines font for float object contents. Option % analogous to |font=| key in |\captionsetup| stuff.\nopagebreak @@ -1840,7 +2107,7 @@ % \item[sf] {\sffamily Sans Serif family} % \item[tt] {\ttfamily Typewriter family} % \item[...] -% You may create your own options with |\DeclareFloatFont| command, +% You may create your own options with the |\DeclareFloatFont| command, % see page~\pageref{ssec:declfont}. % \end{Options} % @@ -1848,7 +2115,7 @@ % \begin{Quote} % |font=small| % \end{Quote} -% this option is used in current documentation, or +% (which is used in current documentation), or % \begin{Quote} % |font={small,sf}|\quad . % \end{Quote} @@ -1858,30 +2125,49 @@ % Defines font for legends or explications (defined by |\floatfoot| command, % see~\textsl{\sectionname}~\ref{subsec:floatfoot}). This macro % uses |\captionsetup| mechanism (because |\floatfoot| macro -% uses \package{caption} mechanism). By default the font size +% uses \package{caption} package's mechanism and utilities). By default the font size % of float foot text equals to footnote text: |footfont=footnotesize|. % -% \RestoreSpaces -% \subsubsection{Position of Caption and of Other Elements} +% \paragraph{Font Settings for longtable.} +% The font settings loaded in |\floatsetup| +% in |longtable| environment could expand to captions\footnote +% {The version 3.1 of \package{caption} package corrects that.}. +% 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), 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} % +% \subsubsection{Position of Caption} % \DescribeMacro{capposition}\label{setup:capposition}%^^A -% Defines position of captions. It is similar to \texttt{position=} +% Defines position of captions. It is similar to |position=| % key in \package{caption} package, but it has two additional % options\footnote{The option \texttt{auto} isn't used by -% \texttt{capposition=}.}: \texttt{TOP}%^^A +% \texttt{capposition=}.}:~\nobreak\qquad1)\nobreak\enskip|TOP|%^^A % \FRmpar{Caption above\\ table object}{FAD:CaptionAboveTableII}, if you prefer to align captions -% above objects, in the case of beside floats (in \env{floatrow} -% environment), by the top line; and \texttt{beside} to put caption -% beside object (this option could be more preferable in settings +% above objects, in the case of beside floats (in |floatrow| +% environment), by the top line;~\nobreak\qquad2)\nobreak\enskip|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}): -% \par\RestoreSpaces % \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 \texttt{Plaintop} style is the variant of -% \texttt{plaintop} where used |capposition=TOP| settings, +% 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 @@ -1890,8 +2176,8 @@ % % Compare two examples: % \begin{Quote} -% |\floatsetup[table]{|\hyperref[setup:style]{\texttt{style}}%^^A -% |=plain,capposition=top}%|${}\equiv\texttt{style=plaintop}$ +% |\floatsetup[table]{|\FRkey{style}%^^A +% |=plain,capposition=top}%|${}\equiv{}$|style=plaintop| % \end{Quote} % \DeleteShortVerb{\|}% % \begingroup @@ -1938,8 +2224,8 @@ % \MakeShortVerb{\|}% % % \begin{Quote} -% |\floatsetup[table]{|\hyperref[setup:style]{\texttt{style}}%^^A -% |=plain,capposition=TOP}%|${}\equiv\texttt{style=Plaintop}$ +% |\|\FRkey{floatsetup}|[table]{|\FRkey{style}%^^A +% |=plain,capposition=TOP}%|${}\equiv{}$|style=Plaintop| % \end{Quote} % \DeleteShortVerb{\|}% % \begingroup @@ -1987,28 +2273,31 @@ % \endgroup % \MakeShortVerb{\|}% % -% \emph{Note}. The option \texttt{TOP} uses |\label|---|\ref| +% \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).\pagebreak[3] +% of lines, you get correct result also on the second run). % -% \medskip\noindent +% \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: -% \par\RestoreSpaces % \begin{Options}{\OptionLabel} % \item[left] -% caption is printed to the left side of object; +% 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; +% 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. +% 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. % \end{Options} % % For vertical position there are defined three options @@ -2018,7 +2307,7 @@ % \item[bottom] % caption aligned to the bottom of object; % \item[center] -% caption aligned to the center of float contents. +% caption aligned to the center of object. % \end{Options} % You may define position of beside caption by following: % \begin{Quote} @@ -2027,7 +2316,7 @@ % See examples in file \file{frsample02.tex} with all variants of % position of captions beside float objects. % -% \medskip\noindent +% \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 @@ -2035,116 +2324,199 @@ % \begin{Quote} % |capbesidewidth=4cm|\quad. % \end{Quote} -% If you'll write \texttt{capbesidewidth=none} or -% \texttt{capbesidewidth=sidefil} (this is default key setting), the -% width of caption will be counted by usual way, accordingly +% (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|).\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 -% (\texttt{capbesideframe=yes}) in this case caption lines aligned by top +% (|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} (\texttt{capbesideframe=no}). -% This key was switched on in the example on the page~\pageref{fig:subfig:catsI}. +% bottom of framed object's \emph{contents} (|capbesideframe=no|). % \newcommand\TEXTBOX[1][]{\par -% Here goes first line of text \text\par +% Here goes first line of text \Text\par % There goes second line of text#1\par -% Thence goes third line of text \text\par -% Hence goes fourth line of text} -% \def\text{{\mdseries And more text and some more text and a bit more text and +% 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} -% \meta{preamble} -% |\floatsetup[figure]{|\hyperref[setup:style]{\texttt{style}}|=Boxed,|%^^A -% \hyperref[setup:frameset]{\texttt{frameset}}|={\fboxsep8pt},| -% | |\hyperref[setup:objectset]{\texttt{objectset}}|=justified,|%^^A -% |capbesideframe=no,capbesideposition={right,top}}| +% \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}| -% \meta{preamble} -% |\|\hyperref[setup:thisfloatsetup]{\texttt{thisfloatsetup}}%^^A -% |{|\hyperref[setup:capposition]{\texttt{capposition}}|=beside,| -% | |\hyperref[setup:floatwidth]{\texttt{floatwidth}}|=sidefil,|%^^A -% \hyperref[setup:capbesidewidth]{\texttt{capbesidewidth}}|=4cm}| +% \end{preamble} +% |\|\FRkey{thisfloatsetup}%^^A +% |{|\FRkey{capposition}|=beside,| +% | |\FRkey{floatwidth}|=sidefil,|%^^A +% \FRkey{capbesidewidth}|=4cm}| % |\begin{figure}| % | ...| -% | \caption{...}\label{...}| +% | \caption{...}\label{...}|\nopagebreak % |\end{figure}| +% | | % \end{Quote}% -% \floatsetup[figure]{style=Boxed,frameset={\fboxsep8pt},capbesideframe=no,objectset=justified, +% \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 object contents}%%^^A +% {\caption{Caption beside framed object, (caption has width 4\,cm), aligned by top of frame}%%^^A % \label{capbesideframeI}}% % \end{figure} % \begin{Quote} -% \meta{preamble} -% |\floatsetup[figure]{...,capbesideframe=yes,...}| +% \begin{preamble} +% |\floatsetup[figure]{...,capbesideframe=no}| % |...| -% \meta{preamble} -% |\|\hyperref[setup:thisfloatsetup]{\texttt{thisfloatsetup}}%^^A -% |{|\hyperref[setup:capposition]{\texttt{capposition}}|=beside,| -% | |\hyperref[setup:floatwidth]{\texttt{floatwidth}}|=9cm,|%^^A -% \hyperref[setup:capbesidewidth]{\texttt{capbesidewidth}}|=sidefil}| +% \end{preamble} +% |\|\FRkey{thisfloatsetup}%^^A +% |{|\FRkey{capposition}|=beside,| +% | |\FRkey{floatwidth}|=9cm,|%^^A +% \FRkey{capbesidewidth}|=sidefil}| +%| | % \end{Quote}% -% \floatsetup[figure]{capbesideframe=yes} +% \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 frame}% +% {\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 was also used |\captionsetup{strut=no}| sentence, +% \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-5000 -% \RestoreSpaces -% \subsubsection{Defining Float Foot Position (Legends and Footnotes)}% -% \label{sec:footposition} -% +% \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. -% \par\RestoreSpaces +% (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; +% object, otherwise below caption; % \item[caption] % always placed below caption; % \item[bottom] % always placed at the bottom of float box. % \end{Options} -% See examples in file \file{frsample01.tex}. In the case of caption -% beside float object, footnotes and foot text always placed below +% In the case of caption +% beside float object, footnotes and foot text are always placed below % caption. % -% \subsubsection{Defining Vertical Alignment}\label{sec:heightadjust} +% 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 \env{floatrow} environment will be used. It has -% following options -% \par\RestoreSpaces +% 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 -% \texttt{Ruled} and \texttt{BOXED}); +% |ruled|, |Ruled| and |BOXED|); % \item[caption] -% adjust caption heights (e.g. for \texttt{Plaintop} style); +% adjust caption heights (e.g. for |Plaintop| style); % \item[object] -% adjust object heights (e.g. for \texttt{Boxed} style); +% adjust object heights (e.g. for |Boxed| style); % \item[none] -% nothing to be adjusted; +% nothing to be adjusted (the |plain| style); % \item[nocaption] % no adjusting for captions; % \item[noobject] @@ -2155,105 +2527,163 @@ % |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.8\unitlength\input{BlackCat.picture}} +% {\caption{Left \texttt{ruled} figure}% +% \label{leftfig:ruled}}% +% +% \ffigbox +% {\caption{The beside figure at the right side uses settings of \texttt{ruled} layout}%^^A +% \label{rightfig:ruled}} +% {\unitlength1.25\unitlength\input{Cat.picture}} +% \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.8\unitlength\input{BlackCat.picture}} +% {\caption{Left \texttt{Ruled} figure}% +% \label{leftfig:Ruled}}% +% +% \ffigbox +% {\caption{The beside figure at the right side uses settings of \texttt{Ruled} layout}%^^A +% \label{rightfig:Ruled}} +% {\unitlength1.25\unitlength\input{Cat.picture}} +% \end{floatrow} +% \end{figure}\pagebreak[1] +% % \addvspace\medskipamount\noindent % \DescribeMacro{valign}\label{setup:valign}%^^A % Defines vertical alignment of -% float objects in \env{floatrow} if |heightadjust=all| or -% |heightadjust=object|, or |\floatbox| stuff uses \meta{height} +% 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 analogous to vertical -% alignment option in \env{minipage} environment and |\parbox| +% The options of this key are analogous to vertical +% alignment option in |minipage| environment and |\parbox| % command. Default option is |c| (centered vertical alignment). -% \par\RestoreSpaces % \begin{Options}{cc}\samepage % \item[t] % aligns objects by top line; % \item[c] -% aligns objects by center line; +% 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} +% \end{Options}\pagebreak[1] % -% The settings |heightadjust=object,valign=c| were used -% in the example with figures \ref{intro:leftfig:valigned} -% and \ref{intro:rightfig:valigned}. (Please look at the width options of |\ffigbox| commands: -% you may set the widths in this way with \package{calc} package.) -%\begin{Quote}% -%\meta{preamble}\nopagebreak -%|\floatsetup{...,heightadjust=object,valign=c,...}|\nopagebreak -%\meta{preamble} +% Next example (figure~\ref{BOXED:heightmod}) shows default vertical centered alignment +% for figure with changed height (remember that empty \meta{width} option means |\hsize|). +%\begin{Quote} +%\begin{preamble} +%|\floatsetup{style=BOXED}| +%|\usepackage{calc}|\nopagebreak +%\end{preamble} +% |\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} +%\begin{preamble} +%|\floatsetup{style=BOXED,valign=t}| +%|\usepackage{calc}|\nopagebreak +%\end{preamble} % |\begin{figure}| -% |\begin{floatrow}| -% | \ffigbox[\FBwidth+2cm]| +% |\begin{|\FRkey[sec]{floatrow}|}| +% | \|\FRkey[FB]{ffigbox}|[\|\FRkey[FB]{FBwidth}|+2cm]| % | {...}| -% | {\caption{The left ...}\label{...}}%| -%| | -% | \ffigbox[\FBwidth+2cm]| +% | {\caption{Left ...}\label{...}}%| +% +% | \ffigbox[\FBwidth+2cm][2\|\FRkey[FB]{FBheight}|]|\nopagebreak % | {\caption{The beside ...}\label{...}}| % | {...}| -% |\end{floatrow}| -% |\end{figure}| +% |\end{floatrow}|\nopagebreak +% |\end{figure}|\vspace*{-.75\intextsep} %\end{Quote}% -% \begin{figure}[h!]\floatsetup{heightadjust=object,valign=c}\killfloatstyle +% \begin{figure}[H]\floatsetup{style=BOXED,valign=t}\killfloatstyle % \begin{floatrow} % \ffigbox[\FBwidth+2cm] -% {\input{BlackCat.picture}} -% {\caption{The left beside figure uses settings for vertical centering}% -% \label{intro:leftfig:valigned}}% +% {\unitlength.9\unitlength\input{BlackCat.picture}} +% {\caption{The left beside figure uses settings for vertical top alignment}% +% \label{leftfig:BOXED:valigned}}% % -% \ffigbox[\FBwidth+2cm] -% {\caption{The beside figure at the right side uses settings for vertical centering}%^^A -% \label{intro:rightfig:valigned}} +% \ffigbox[\FBwidth+2cm][2\FBheight] +% {\caption{The beside figure at the right side in float row uses settings for vertical top alignment too}%^^A +% \label{rightfig:BOXED:valigned}} % {\unitlength1.25\unitlength\input{Cat.picture}} % \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. This key works if |twoside| option switched on in -% document class. The combination of settings |facing=yes,|\allowbreak -% |capbesideposition=inside| (see above) is used in current documentation. +% for floats, if it 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 in the case, when beside captions are placed to the inner sides -% of pages. The figures~\ref{intro:beside} and~\ref{intro:beside:FBwidth} at beginning of the document -% illustrate these options---%^^A -% \texttt{facing=yes,\allowbreak capbesideposition=inside}. +% 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. % -% \RestoreSpaces -% \subsubsection{Defining Float Margins and Object Settings} -% \label{sec:set:box} -% -% \DescribeMacro{margins}\label{setup:margins}%^^A -% Defines margins of alone float boxes with -% captions above/below, of float boxes with beside captions, and of -% \env{floatrow} environments. It has following three predefined -% options: -% \par\RestoreSpaces -% \begin{Options}{\OptionLabel} -% \item[centering] -% float box centered; -% \item[raggedright] -% float box flushed to the left; -% \item[raggedleft] -% float box flushed to the right. -% \item[...] -% You may create your own alignment settings with \\|\DeclareMarginSet| command, see -% page~\pageref{ssec:decl:marg}. -% \end{Options} +% 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 -% \texttt{justification=} key in |\captionsetup|. -% \par\RestoreSpaces +% |justification=| key in |\captionsetup|. % \begin{Options}{RaggedRigh} % \item[justified] -% Blocks (in the case of a~picture or text box) +% Blocks (in the case of a~picture or text in parbox) % moved to the left, the text aligned as a normal paragraph (without indentation). (This is the default.) % % \item[centering] @@ -2273,90 +2703,41 @@ % Blocks moved to the right, % each line of the text shoved to the right margin. % -% \item[RaggedLeft] -% Analogous to |RaggedRight|. +%^^A% \item[RaggedLeft] +%^^A% Analogous to |RaggedRight|. % % \item[...] -% You may also create your own settings with |\DeclareObjectSet| command (see +% You may also create your own settings with the |\DeclareObjectSet| command (see % page~\pageref{ssec:decl:oset}) % \end{Options} % -% \RestoreSpaces -% \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 |captionwidth=|, page~\pageref{setup:capbesidewidth}, -% could be used at first -% for settings of one float environment: -% \begin{Quote} -% |floatwidth=.3\hsize| -% \end{Quote} -% or -% \begin{Quote} -% |floatwidth=7cm| -% \end{Quote} -% (see page~\pageref{thisfloatsetup} about settings for current float environment and |\thisfloatsetup|).\pagebreak[1] -% -% \begingroup -% \begin{Quote}\openup-.65pt -% \meta{preamble}\nopagebreak -% |\floatsetup[figure]{|\hyperref[setup:capposition]{\texttt{capposition}}|=bottom}|\nopagebreak -% \meta{preamble} -% |\|\hyperref[setup:thisfloatsetup]{\texttt{thisfloatsetup}}%^^A -% |[figure]{floatwidth=.3\hsize,capposition=bottom}|\nopagebreak -% |\begin{figure}| -% | \includegraphics[width=\hsize]{Bear}| -% | \caption{...}\label{...}| -% |\end{figure}| -% \end{Quote}% -% -% \floatsetup[figure]{capposition=bottom} -% \thisfloatsetup{floatwidth=.3\hsize} -% \begin{figure}[H] -% \setlength\unitlength{\hsize/100}\input{Bear.picture}%^^A -% \caption{Graphics with \texttt{floatwidth=0.3}\cmd{\hsize}}% -% \label{fig:rot} -% \end{figure}% -% \endgroup -% -% \begingroup -% \begin{Quote}% -% |\|\hyperref[setup:thisfloatsetup]{\texttt{thisfloatsetup}}%^^A -% |{floatwidth=.3\hsize,|\hyperref[setup:capbesidewidth]{\texttt{capbesidewidth}}|=sidefil,| -% | capposition=beside}| -% \end{Quote}% -% -% \thisfloatsetup{floatwidth=.3\hsize,capbesidewidth=sidefil, -% capposition=beside} -% \begin{figure}[H] -% \setlength\unitlength{\hsize/100}\input{Bear.picture}%^^A -% \caption{Caption beside graphics with \texttt{floatwidth=0.3}\cmd{\hsize}}%^^A -% \label{fig:bear} -% \end{figure}% -% \endgroup -% -% If you use option \texttt{floatwidth=sidefil} for objects with beside -% captions (in the case of key \texttt{capbesidewidth=}, -% \DescribeMacro{capbesidewidth}%^^A -% uses absolute -% value, like \texttt{capbesidewidth=4cm}) the object contents (instead of caption) -% occupy 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{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}{RaggedRigh} +% \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[...] +% You may create your own alignment settings with \\|\DeclareMarginSet| command, see +% page~\pageref{ssec:decl:marg}. +% \end{Options} % -% \RestoreSpaces % \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 \env{floatrow} environment (see page~\pageref{sec:floatrow}). +% 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. +% Sets separation material between object and beside caption (see page~\pageref{intro:beside}). % % \RestoreSpaces % Both key settings work similarly to |labelsep=| key @@ -2365,7 +2746,7 @@ % They use following predefined options: % \begin{Options}{\OptionLabel} % \item[columnsep] -% horizontal skip${}={}$|\columnsep| (default); +% horizontal skip${}={}$|\columnsep| (default for both keys); % \item[quad] % horizontal skip${}={}1$\,em; % \item[qquad] @@ -2377,23 +2758,67 @@ % \item[none] % empty separator. % \item[...] -% You may also create your own settings with\\ |\DeclareFloatSeparators| command (see +% 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. % -% \subsubsection{Defining Float Rules/Skips}\label{sec:set:rule} +% 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 the changed |capbesideposition=| +% key inside |\thisfloatsetup| settings), and, in spite of the value of 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. +% 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 \env{floatrow} environment, -% above float row (see page~\pageref{fig:rotrow:WcatI}). +% 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 @@ -2402,64 +2827,68 @@ % % \addvspace\smallskipamount\noindent % \DescribeMacro{postcode}\label{setup:postcode}%^^A -% Defines skip, rule or other analogous code below float box. +% 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 \env{floatrow} environment, -% below float row (see page~\pageref{fig:rotrow:WcatI}). +% 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 +% For all these keys there are predefined following options (settings % were taken from styles created in \package{float} package): -% \begin{Options}{\OptionLabel}\makeatletter\@itempenalty10000\makeatother +% \begin{Options}{\OptionLabel}\allowitembreaks[-1] % \item[none] -% absent code; +% 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 \texttt{ruled} style; +% 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 \texttt{ruled} style; +% 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 \texttt{ruled} style; +% 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 equal to value, defined in |captionskip=| key (default). +% 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 |\DeclareFloatVCode| command, +% You may create your own options with the |\DeclareFloatVCode| command, % see page~\pageref{ssec:decl:rule}. % \end{Options} % % \subsubsection{Defining Float Frames} -% % \DescribeMacro{framestyle}\label{setup:framestyle}%^^A % Defines type of frame; the -% \package{floatrow} package offers only one type of frame: -% \par\RestoreSpaces +% \package{floatrow} package offers only two types of frames: % \begin{Options}{\OptionLabel} % \item[fbox] -% Standard frame. +% standard frame; +% \item[colorbox] +% colored frame, needs also \package{color} package; +% if not defined, the |\fbox| command is used instead. % \end{Options} % There are options for additional frames, offered by \package{fr-fancy} -% package, installed with \env{floatrow}: +% package, installed with |floatrow|: % \begin{Options}{\OptionLabel} -% \item[colorbox] -% colored frame, needs also \package{color} package; -% if not defined, there is used |\fbox|; % \item[doublebox] % double frame, needs also \package{fancybox} package; % \item[shadowbox] % frame with shadow, needs also \package{fancybox} package; % \item[wshadowbox] -% modified \texttt{shadowbox} frame (frame with ``white shadow''), -% needs also \package{fancybox} package; +% 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 options +% The parameters for chosen frame; there are no predefined options % for this key, just write something like: % \begin{Quote} % |frameset={\fboxrule1pt\fboxsep12pt}|\quad. @@ -2468,7 +2897,6 @@ % \noindent % \DescribeMacro{framearound}\label{setup:framearound}%^^A % Declares element of float box to be framed: -% \par\RestoreSpaces % \begin{Options}{\OptionLabel} % \item[object] % float object contents; @@ -2479,73 +2907,99 @@ % \addvspace\medskipamount\noindent % \DescribeMacro{framefit}\label{setup:framefit}%^^A % Boolean which sets whether the \textit{frame width} will -% be equal to current |\hsize| or predefined width of -% float box (\texttt{framefit=yes}), in this case object size reduced -% (see~page~\pageref{fig:plain:MyBoxed} and all boxed figures in current -% documentation); +% 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| or predefined width of float box (\texttt{framefit=no}). +% |\hsize|, predefined width or value of \meta{width} option of +% float box (|framefit=no|, see figure~\ref{fig:setup:boxed}). % \begingroup % \begin{Quote}% -% |\floatsetup[figure]{framestyle=fbox,|\hyperref[setup:heightadjust]{\texttt{heightadjust}}|=object,|\nopagebreak +% |\floatsetup[figure]{framestyle=fbox,|\nopagebreak % | framearound=object,frameset={\fboxrule1pt\fboxsep10pt},| -% | framefit=no}%|$\approx\texttt{style=boxed}$ +% | framefit=yes}%|$\approx|style=Boxed|$ % |\begin{figure}| -% |\ffigbox[4cm]| -% | {...}{\caption{...}}| +% |\|\FRkey[FB]{ffigbox}|[4cm]| +% | {...}{\caption{...}}|\nopagebreak % |\end{figure}| -% \end{Quote}% +% \end{Quote}\pagebreak[1] % \floatsetup[figure]{framestyle=fbox,heightadjust=object, -% framearound=object,frameset={\fboxrule1pt\fboxsep10pt},framefit=no}%^^A$\equiv\texttt{style=boxed}$ +% framearound=object,frameset={\fboxrule1pt\fboxsep10pt},framefit=yes}%^^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}} +% {\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}% -% |\floatsetup[figure]{...,framefit=yes}%|$\approx\texttt{style=Boxed}$ +% |\floatsetup[figure]{...,framefit=no}%|$\approx|style=boxed|$ % |\begin{figure}|% -% |\ffigbox[4cm]| +% |\|\FRkey[FB]{ffigbox}|[4cm]| % | {...}{\caption{...}}|\nopagebreak -% |\end{figure}|% +% |\end{figure}|\vspace*{-\intextsep} % \end{Quote}% % \floatsetup[figure]{framestyle=fbox,heightadjust=object, -% framearound=object,frameset={\fboxrule1pt\fboxsep10pt},framefit=yes}%%^^A$\equiv\texttt{style=Boxed}$ +% framearound=object,frameset={\fboxrule1pt\fboxsep10pt},framefit=no}%^^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)}} +% {\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 |[\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}% +% |\floatsetup[figure]{...,framefit=yes}%|$\approx|style=Boxed|$ +% |\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 +% \subsubsection{Settings for Colored Frames} % \DescribeMacro{colorframeset}\label{setup:colorframeset}%^^A -% Offered by \package{fr-fancy} package\footnote{Use -% \texttt{fancyboxes=yes} option in \cmd{\usepackage} line, also you ought to load \package{color} package.} -% and also needs -% \package{color} package: defines -% concrete color box (default is standard |\fbox|). -% You may use |\fcolorbox| as color box. You -% may define your color box like +% \DescribeMacro{\DeclareColorBox}\label{setup:DeclareColorBox}%^^A +% This key (needs \package{color} package) defines +% a~color box (default is standard |\fbox|). There are not any predefined options for this key so you +% must define your color box option, using the |\DeclareColorBox| command like following: % \begin{Quote} -% |colorframeset={\fcolorbox{white}{yellow}}|\quad. +% |\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} % % \subsubsection{Defining Float Skips} -% % \DescribeMacro{captionskip}\label{setup:captionskip}%^^A % Defines vertical space between caption and float object -% in case of |midcode| key defined as |midcode=captionskip|; -% or in case of usage of float styles (\texttt{style=} -% key) \texttt{plain}, \texttt{plaintop} or \texttt{Plaintop}: +% 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. +% 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. +% Defines vertical space before foot material and footnotes. It can be defined like: % \begin{Quote} % |footskip=4pt|\quad, % \end{Quote} @@ -2553,21 +3007,19 @@ % \begin{Quote} % |footskip=\skip\footins|\quad. % \end{Quote} +% the last line shows default settings. % -% \subsubsection{Defining Float Footnote Rule's Style} -% \label{sec:footnotestyle} -% +% \subsubsection{Defining Float Footnote Rule's Style}\label{sec:footnotestyle} % \DescribeMacro{footnoterule}\label{setup:footnoterule}%^^A -% Defines type of footnote rule for footnotes inside float environment. -% \par\RestoreSpaces +% Defines type of footnote rule for footnotes inside floating environment. % \begingroup % \begin{Options}{\OptionLabel} % \item[normal] -% standard \LaTeX{} definition, used in \env{minipage} environments, the +% standard \LaTeX{} definition, used in |minipage| environments, 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| command, like: +% defined by |\frulemax|\label{setup:frulemax} command, like: % \begin{Quote} % |\newcommand\frulemax{1in}| % \end{Quote} @@ -2576,141 +3028,175 @@ % \item[none] % Absent rule. % \item[...] -% You may create your own options with |\DeclareFloatFootnoterule| command, +% You may create your own options with the \\ |\DeclareFloatFootnoterule| command, % see page~\pageref{ssec:fnoterule}. % \end{Options} % \endgroup % % \label{setup:end} % -% %^^A ???needed? -% \subsubsection{Loading Style for Fancy Boxes} -% -% \DescribeMacro{fancyboxes}\label{setup:fancyboxes}%^^A -% This boolean key loads \package{fr-fancy} package. This key you may use -% only in optional argument in |\usepackage| line. -% -% \RestoreSpaces -% \subsubsection{Managing Floats with \texttt{[H]} placement option} +%^^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 float in onecolumn layout -% like non-starred ones. (In this case the \texttt{[H]} option works -% in starred environments also; layout settings from |\floatsetup| -% as \texttt{widefloat} still work.) +% 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 no blank line appears after environment -% (see also section~\pageref{sec:listpen}). +% paragraph indentation, if there is no blank line appears after environment +% (see also page~\pageref{sec:listpen}). % -% \RestoreSpaces % \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\footnote{The \cmd{\thisfloatsetup} defined -% as abbreviation of \cmd{\floatsetup[tmpset]} command.}.\par\strut -% \par\kern-\baselineskip +% only mandatory argument (the \cmd{\thisfloatsetup} is defined +% as abbreviation of the \cmd{\floatsetup[tmpset]} command). % %^^A Please note that |\thisfloatsetup| doesn't overwrite %^^A co-named key declarations from settings like %^^A |\floatsetup[|\meta{options}|]|---this command created e.g %^^A for temporary change of float or caption widths: keys -%^^A \texttt{captionwidth=} \texttt{floatwidth=} do not used usually +%^^A |capbesidewidth=| |floatwidth=| do not used usually %^^A in |\floatsetup| stuff. % % -% \RestoreSpaces % \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}: +% of \package{caption} package about \cmd{\clearcaptionsetup} command}:\allowpostlistbreaks[-4] % \begin{Quote} -% |\clearfloatsetup|\marg{float type}\quad. -% \end{Quote} -% where \marg{float type}---types as \texttt{figure}, \texttt{widefloat} etc. +% |\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 -% In some cases like mixed rows of floats where figure stays beside table -% you need to cancel layout of ``foreign'' float (see page~\pageref{mixrow}). +% 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}). -% Other situation---layout with beside captions is quite different from other subtypes: -% |[figure]| option of -% floatsetup defined with \texttt{style=plain} and -% |[cabesidefigure]| defined with \texttt{style=boxed}. +% +% 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} -% |\newcommand\myfcapside{\killfloatstyle| -% | \floatsetup[figure]{style=Boxed}\fcapside}|\quad. +% \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} -% The option |[figure]| is necessary if you defined settings for this option -% globally in the preamble. +% \newcommand\myfcapside{\killfloatstyle +% \floatsetup[figure]{style=Boxed,capbesideframe=yes}\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. % -% %^^A !!!for footnotes! -% %^^A \newpage +% \emph{Notes}.\nopagebreak \par +% 1)\enskip Please remember that such command with redefined settings can be placed +% only \emph{inside an environment} or \emph{group}. % -% \subsection{The Default Float Type Settings}\label{sec:default} +% 2)\enskip Before creation of such risky command, please revise your layout settings: +% maybe the |[widefigure]| option never used in your documentation settings, so you can define +% necessary settings in |\floatsetup[widefigure]|\allowbreak|{style=Boxed,capposition=beside...}| +% 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} +% \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 % -% The following keys and options are switched on when \package{floatrow} -% package loaded. They equal to \texttt{plain} style: -% \begin{Options}{\OptionLabel}\par\small\openup-.5pt -% \item[font=normalsize] -% \item[footfont=footnotesize] +% \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 % \item[capposition=bottom] -% \item[capbesideposition=inside] +% \item[capbesideposition=left] % \item[capbesideframe=no] % \item[footposition=default] % \item[heightadjust=none] % \item[facing=no] % \item[margins=centering] -% \item[objectset=centering] %^^A($\equiv$\texttt{justification=centering}, \package{caption}) +% \item[objectset=centering] ($\equiv$|justification=centering|, \package{caption}) % \item[floatrowsep=columnsep] % \item[capbesidesep=columnsep] % \item[precode=none] % \item[rawprecode=none] % \item[postcode=none] % \item[rawpostcode=none] -% \item[midcode=captionskip] +% \item[midcode=captionskip]\allowitembreaks[-4] % \item[captionskip=10pt] % \end{Options} % +% \subsection{Defining New Options (Do It Yourself!)} +% In the next few sections a list of commands is presented, which help to define +% additional key options for the |\floatsetup| command. % -% \subsection{Defining new options (Do it yourself!)} -% -% In the next few sections goes a list of commands, which -% define key options for |\floatsetup|. -% -% \subsubsection{Float Style option (\texttt{style=})}\label{ssec:declstyle} -% +% \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 \texttt{MyBoxed}. The figures~\ref{fig:plain:MyBoxed}, and +% style |MyBoxed|. The figures~\ref{fig:plain:MyBoxed}, and % some others in current documentation show result. -% \par\RestoreSpaces %\begin{Quote} -%|\DeclareFloatStyle{MyBoxed}{|\hyperref[setup:style]{style}|=Boxed,|\hyperref[setup:captionskip]{captionskip}|=5pt,| -%| |\hyperref[setup:frameset]{frameset}|={\fboxrule1pt\fboxsep12pt}}| +%|\DeclareFloatStyle{MyBoxed}{|\FRkey{style}|=Boxed,|\FRkey{captionskip}|=5pt,|\nopagebreak +%| |\FRkey{frameset}|={\fboxrule1pt\fboxsep12pt}}|\nopagebreak %|\floatsetup[figure]{style=MyBoxed}| -%\end{Quote} +%\end{Quote}\pagebreak[1] % % \begingroup % % \floatsetup[figure]{style=MyBoxed} % \begin{figure}[H] -% {\unitlength1.44\unitlength\input{Horse.picture}}% +% {\input{Horse.picture}}% % \caption{%^^A % Plain figure in \texttt{MyBoxed} style}% % \label{fig:plain:MyBoxed}% @@ -2719,51 +3205,65 @@ % \end{figure} % % The same result you get with: -% \par\RestoreSpaces %\begin{Quote} %|\floatsetup[figure]{style=Boxed,captionskip=5pt,| %| frameset={\fboxsep12pt\fboxrule1pt}}| %\end{Quote} % \endgroup % -% \subsubsection{Option for Float Rules/Skips (\texttt{precode=} etc.)} -% \label{ssec:decl:rule} +% \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}% % +% \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 you may use in \texttt{rowprecode}, -% \texttt{precode}, \texttt{midcode}, \texttt{postcode}, and -% \texttt{rowpostcode} keys. +% object. The defined option might be used in |rowprecode|, +% |precode|, |midcode|, |postcode|, and +% |rowpostcode| keys (page~\pageref{setup:precode}). +% +% Compare two examples: % \begin{Quote}\openup.5pt -% \meta{preamble} +% \begin{preamble} % |\DeclareFloatVCode{grayruleabove}%| -% | {{\color{gray}\hrule height2.8ptdepth0pt\vskip4pt}}| +% | {{\color{gray}\par\rule\hsize{2.8pt}\vskip4pt\par}}| % |\DeclareFloatVCode{grayrulebelow}%| -% | {{\color{gray}\vskip4pt\hrule height2.8ptdepth0pt}}| -% |\floatsetup{...,| -% | |\hyperref[setup:rowprecode]{rowprecode}|=grayruleabove,|%^^A -% \hyperref[setup:rowpostcode]{rowpostcode}|=grayrulebelow}| -% \meta{preamble} -% |\begin{figure}| -% |\begin{floatrow}| -% | \ffigbox| +% | {{\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}| +% |\begin{figure}|\nopagebreak % | ...| -% | \caption{The figure ...}\label{...}%| +% | \caption{Alone figure ...}\label{...}%|\nopagebreak % |\end{figure}| % \end{Quote} %\begingroup % \advance\intextsep-.5\intextsep -% \begin{figure}[H]\floatsetup{heightadjust=object,valign=c,rowprecode=grayruleabove, +% \begin{figure}[H]\floatsetup{heightadjust=all,valign=c,rowprecode=grayruleabove, % rowpostcode=grayrulebelow}\killfloatstyle % \begin{floatrow} % \ffigbox @@ -2777,7 +3277,7 @@ % {\unitlength.85\unitlength\input{Cat.picture}} % \end{floatrow} % \end{figure}%^^A -% \begin{figure}[H]\floatsetup{heightadjust=object,valign=c,rowprecode=grayruleabove, +% \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 @@ -2785,15 +3285,16 @@ % {\unitlength.85\unitlength\input{TheCat.picture}} % \end{figure}%^^A % \begin{Quote}\openup-.65pt -% \meta{preamble}\nopagebreak +% \begin{preamble} % |...|\nopagebreak -% |\floatsetup{...,|\hyperref[setup:precode]{precode}|=grayruleabove,|%^^A -% \hyperref[setup:postcode]{postcode}|=grayrulebelow}| -% \meta{preamble} +% |\floatsetup{...,|\FRkey{heightadjust}|=all,|\nopagebreak +% | |\FRkey{precode}|=grayruleabove,|%^^A +% \FRkey{postcode}|=grayrulebelow}|\nopagebreak +% \end{preamble}\nopagebreak % |...| % \end{Quote}%^^A % \advance\intextsep-.5\intextsep -% \begin{figure}[H]\floatsetup{heightadjust=object,valign=c, +% \begin{figure}[H]\floatsetup{heightadjust=all,valign=c, % precode=grayruleabove,postcode=grayrulebelow}\killfloatstyle % \begin{floatrow} % \ffigbox @@ -2802,12 +3303,13 @@ % \label{intro:leftfig:box}}% % % \ffigbox -% {\caption{The beside figure at the right inside float row with defined rules for float box}%^^A +% {\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}\kern-\lastskip%^^A -% \begin{figure}[H]\floatsetup{heightadjust=object,valign=c, +% \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 @@ -2815,207 +3317,240 @@ % {\unitlength.85\unitlength\input{TheCat.picture}} % \end{figure}%^^A %\endgroup -% \RestoreSpaces -% \subsubsection{Object Justification Option (\texttt{objectset=})}\label{ssec:decl:oset} +% 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. +% +% \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} % +% \subsubsection{Object Justification Option (\texttt{objectset=})}\label{ssec:decl:oset} % \DescribeMacro{\DeclareObjectSet}\label{setup:DeclareObjectSet}%^^A -% You may define justification for \texttt{objectset=} key like\nopagebreak: +% 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\footnote{You may also use key options declared by +% environment. You may also use key options declared by % \cmd{\DeclareCaptionJustification} command of \package{caption} package -% as options for \texttt{objectset=} key.}.\par -% \strut\par\kern-\baselineskip -% -% \subsubsection{Option for Float Box Alignment/Settings (\texttt{margins=})} -% \label{ssec:decl:marg} +% 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 (\texttt{margins=} key) like: +% You may define box alignment for float box (|margins=| key) like: % \begin{Quote} -% |\DeclareMarginSet{center}{%| +% |\DeclareMarginSet{center}{%|\nopagebreak % | \setfloatmargins{\hfil}{\hfil}}| % \end{Quote} % or like (see also sample files) % \begin{Quote} -% |\DeclareMarginSet{outside}{%| -% | \setfloatmargins*{\hfil}{}}| +% |\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 (but if you will change, reduce, +% width of object, it will be shoved to the left margin). +% \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 |hangleft|. +% % Starred form, |\setfloatmargins*|, defines facing layout: inside and % outside margin. % \begin{Quote} % |\setfloatmargins*{|\meta{inside margin}|}{|\meta{outside margin}|}| % \end{Quote} % -% You may set even much more complex definition: +% You may even set much more complex definition: % \begin{Quote}\leftmargin0pt -% |\DeclareMarginSet{facingrule}{%| -% |\setfloatmargins*{%| -% | \floatfacing{\hskip-12pt\vrule width4pt\hskip8pt\hfill}%| +% |\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. +% which you can use in key options for |\captionsetup| stuff and for floats with beside captions. % -% The |\setfloatmargins| consists of three macros which set margins +% \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 ``divided'' 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 -% \env{floatrow} environment; +% |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|. The settings which use |\floatfacing| command -% work only in the case when key \texttt{facing=yes} used. +% |\setfloatmargins|. Again, the settings which use |\floatfacing| command +% work only in the case when key |facing=yes| is used. % -% \emph{Notes}. 1)\enskip The \package{floatrow} expands some settings of table layout -% to the \env{longtable} environment, so you may set |\LTleft| and +%\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, -% \texttt{centering} option was defined like: +% |centering| option was defined like: % \begin{Quote} % |\DeclareMarginSet{centering}{\setfloatmargins{\hfill}{\hfill}%| % | \LTleft=\fill \LTright=\fill}| % \end{Quote} % -% 2)\enskip The font settings loaded in |\floatsetup| -% in \env{longtable} environment 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), you ought to restore correct -% font size, family, shape (here) and series for caption contents and write\footnote -% {The version 3.1 of \package{caption} package will correct that.}: -% \begin{Quote} -% |\captionsetup{font={rm,small,up}...| -% \end{Quote} -% or -% \begin{Quote} -% |\captionsetup[longtable]{font={rm,small,up}...| -% \end{Quote} -% -% % \subsubsection{Float Separators Options (\texttt{floatrowsep=}, \texttt{capbesidesep=})} -% % \DescribeMacro{\DeclareFloatSeparators}\label{setup:DeclareFloatSeparators}%^^A -% You may to define separator -% between float boxes, or float object and beside caption: +% You may define separator +% between float boxes, or between float object and beside caption: % \begin{Quote} -% |\DeclareFloatSeparators{columnsep}{\hskip\columnsep}| +% |\DeclareFloatSeparators{columnsep}{\hskip\columnsep}|\quad. % \end{Quote} -% or more complex, using \package{color} package, and |\floatfacing| macro -% (do not forget the \texttt{facing=yes} key). -% You may use defined option by both \texttt{floatrowsep=} and -% \texttt{capbesidesep=} keys\footnote{You may use key options declared -% by \cmd{\DeclareCaptionLabelSeparator} command.}.\par -% \begin{Quote} -% \meta{preamble} -% |\DeclareObjectSet{colorred}{\parskip2pt\parindent15pt\color{red}}| -% |\DeclareMarginSet{hangleft}%| +% 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}}| +% |\|\FRkey{DeclareMarginSet}|{hangleft}%| % | {\setfloatmargins| % | {\hskip-\marginparwidth\hskip-\marginparsep}{\hfil}}| % |\DeclareFloatSeparators{colorsep}%| % | {\begingroup\color{blue}%| -% | \floatfacing{\hskip6pt\vrule width4.8pt\hskip6pt}%| -% | {\hskip6pt\vrule width4.8pt\hskip6pt}%| -% | \endgroup}| -% |\floatsetup[|\hyperref[setup:widefigure]{\texttt{widefigure}}|]{|%^^A -% \hyperref[setup:margins]{\texttt{margins}}|=hangleft,|%^^A -% \hyperref[setup:capbesidesep]{\texttt{capbesidesep}}|=colorsep,| -% \hyperref[setup:objectset]{\texttt{objextset}}|=colorred,| -% | |\hyperref[setup:floatwidth]{\texttt{floatwidth}}|=\textwidth,|%^^A -% \hyperref[setup:facing]{\texttt{facing}}|=yes}| +% | \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={magenta,bf},textfont=green,labelsep=newline}| -% \meta{preamble} +% | 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,facing=yes,capposition=beside,capbesideposition=left} -% \captionsetup[figure]{justification=justified, -% labelfont={magenta,bf},textfont=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}} -% \end{figure*}% -% \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 (\texttt{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 above, you may define the red color by following way: -% \begin{Quote}% -% |\DeclareFloatFont{red}{\color{red}}| -% \end{Quote}% -% and then -% \begin{Quote}% -% |\floatsetup[figure]{font={small,red},...}|\quad. -% \end{Quote}% -% -% -% \subsubsection{Option for Footnote Rule's Style (\texttt{footnoterule=})} -% \label{ssec:fnoterule} +% \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={color={magenta},bf,}|\allowbreak +% |textfont={color={green}}| +% were documented first time in the \package{caption} documentation version~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 (\texttt{footnoterule=} key) like: +% You may define new footnoterule (|footnoterule=| key) like: % \begin{Quote} -% |\DeclareFloatFootnoterule{limited}{\kern-3pt| -% | \@tempdima.4\columnwidth| -% | \ifdim\@tempdima>\frulemax\@tempdima=\frulemax\fi| -% | \hrule width\@tempdima\kern2.6pt}| +% \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 summary vertical height for footnote rule must be +% Remember, that the summary vertical height for footnote rule must be % equal to~0pt. % -%\newpage -% \section{Creation of New Float Type}\label{sec:newfloat} -% +%\clearpage +% \section{Creation of New Float Types}\label{sec:newfloat} % \DescribeMacro{\DeclareNewFloatType}\label{setup:DeclareNewFloatType}%^^A -% For creation of new float type there was created -% |\DeclareNewFloatType|\label{FAD:newfloattype} -% command which also uses +% 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 float environment name.\\ -% The \meta{options} could include following keys: +% 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 option of this key could have any combination of letters -% \texttt{t}, \texttt{b}, \texttt{h}, and \texttt{p}, which -% define placement of current float type on the page in -% the case float environment has no any option argument. -% (As default is declared \texttt{placement=tbp}.) +% 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 @@ -3025,40 +3560,42 @@ % % \noindent % \DescribeMacro{fileext}\label{setup:fileext}%^^A -% Defines the file extension from which -% gathered list of floats. (As default, new captions -% are gathered in \texttt{lox}-file). This option is required in the case of -% creation of a~separate float lists. +% Defines extension of the file in which +% gathered list of floats. +%^^A% (As default, new captions +%^^A% are gathered in |loe|-file). This option is required in the case of +%^^A% creation of a~separate float lists. +% +% \emph{Note.} In the version v0.2b, in the case of this key not defined, +% the captions of one type are gathered in the file with extension, +% 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 absent, -% float increases during whole documentation. +% 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 \package{float} package the non-starred -% \cmd{\newfloat}/\cmd{\restylefloat} macros attach related +% 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 \texttt{relatedcapstyle=yes}. -% %^^A \begin{Quote} -% %^^A |\captionsetup[figure]{style=ruled}| -% %^^A \end{Quote} -% -% The |\DeclareNewFloatType| was used for defining of \env{Example} -% environment (see page \pageref{exa1.1}). It consists of following -% code: +% 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=lox}| +% | {placement=t,within=section,fileext=loe}| % \end{Quote} % -% \subsection{How to replace \cmd{\newfloat} with -% \cmd{\DeclareNewFloatType}}\label{sec:oldtonew} -% +% \subsection{How to replace \texorpdfstring{\cs{newfloat}}{newfloat} with \texorpdfstring{\cs{DeclareNewFloatType}}{DeclareNewFloatType}}\label{sec:oldtonew} % The |\newfloat| command takes three required and % one optional argument: % \begin{Quote} @@ -3068,70 +3605,73 @@ % which could be replaced with % \begin{Quote} % |\DeclareNewFloatType|\marg{type}|%| -% | {placement=|\meta{placement}|,fileext=|\marg{ext}|,widthin=|\oarg{within}|}| +% | {placement=|\meta{placement}|,fileext=|\meta{ext}|,widthin=|\meta{within}|}| % \end{Quote} % -% \clearpage -% \section{Borrowed code}\label{sec:borrow} -% -% \subsection{\package{float} Package: Compatibility}\label{sec:floatst} +% 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 before \package{floatrow} you'll get error message. +% 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 next requests for -% \package{float} are ignored. This will help to avoid strange error messages -% in the case of these packages loaded \emph{after} \package{floatrow}. +% 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 could work with \package{floatrow}. The first +% 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 \texttt{plain} float style +% 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. See also -% section~\ref{float-obs} about translation of these commands -% into \cmd{\floatsetup} command.}. +% supports obsolete macros but there is no guarantee that they will work as axpected.} (see section below). % -% Sections, signed with ``[\package{float}]'' were borrowed from -% \package{float}'s documentation. The section about commands which -% describes setting commands of \package{float} package was moved +% 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}]''). -% -% -% \RestoreSpaces -% \subsubsection{How macros from \package{float} package -% work in \package{floatrow}}\label{float-obs} +% Floats [\package{float}]''), this section describes obsolete stuff. % -% The combination of commands |\floatstyle|\marg{style} and any of -% \cmd{\newfloat}\marg{float} or\allowbreak\ -% \cmd{\restylefloat}\marg{float} commands in \package{floatrow} package -% set float layout in the following way: +% \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{...}|. % -% The |\floatname| command replaces the |name=| key of |\DeclareNewFlotaType| -% command. The |\floatplacement|---|placement=| key. -% -% \subsubsection{Printing of Float List [\package{float}]} +% \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 @@ -3145,17 +3685,18 @@ % |\listof| command is analogous to the built-in \LaTeX\ commands % |\listoffigures| and |\listoftables|. % -% \noindent\emph{Floatrow note}. -% Please remember that for each float type list -% you must set file extension where the entries of each float type gathered. -% Use key \texttt{fileext=...} in |\DeclareNewFloatType|. -% If two or more float types will have the same file -% for list of floats, you will get all floats in the -% first appeared |\listof|, and all next will be empty. +%^^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 @@ -3177,7 +3718,7 @@ % 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 \texttt{figure}s and \texttt{table}s, thereby +% 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. % @@ -3201,7 +3742,7 @@ % 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 -% \par\RestoreSpaces +% \RestoreSpaces % \begin{table}[H] % \begin{tabular}{cl} % \tt t & Top of the page\\ @@ -3213,35 +3754,34 @@ % ^^A\caption{Could it be that this just needs a caption?} % \end{table} % -% \emph{Floatrow note}. Please don't mix meaning of +% \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 float environment at the middle of paragraph. +% put floating environment within a~paragraph (and at the middle of line also). % -% The [H] option places the float just \emph{at the point} where it appeared -% in the source file, it is used (\emph{but that in books strongly -% not recommended}!) for floats after text like ``\dots{}shown in this -% \textbf{figure:}'', i.e. the \texttt{[H]} float continues current +% 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. % -% \RestoreSpaces +%\end{slshape} +% % \subsubsection{The {[H]} % Placement Specifier---Managing of Page Breaks}\label{sec:listpen} -% -% During usage of |[H]| option I found that it is necessary -% to set common penalties before and after ``anchored'' floats. -% -% The rules for page breaking around such floats similar to -% page breaking of lists in the book. +% 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, which offers following commands: +% 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); @@ -3249,7 +3789,7 @@ % \item[\cmd{\allowitembreaks}]sets penalty between list items % (surely, this command not for floats!). % \end{Options} -% All they set globally, inside group or inside +% 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 @@ -3257,87 +3797,93 @@ % 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). +% etc. (|[-1]| option equal to |\@lowpenalty| value). % % \DescribeMacro{floatHaslist}\label{setup:floatHaslist}%^^A -% This is the late attempts of backwards compatibility. The key, if true, +% This is the late attempts of backwards compatibility, added in version 0.1k. The key, if true, % uses list penalties, otherwise anchored float works without any penalty, i.e. like -% defined in \package{float} package and in \package{floatrow}'s version 0.0g +% defined in \package{float} package and in \package{floatrow}'s version 0.1j % and earlier. (I hope there could not much difference, -% unless you redefined penalties of lists.) +% unless you have redefined penalties of lists in your documentation.) % % Also (added in version 0.1k with current key): -% since list environments do \emph{not make indentation} in following -% paragraph, in the case of \emph{no blank} line after environment, -% the ``anchored'' float environment does -% the same, if this option is true. Default value of \texttt{floatHaslist} -% is \texttt{false} +% 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 float. If you define +% 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 float. +% you'll never get page breaks before anchored floats. % % \medskip\noindent % \DescribeMacro{\RestoreSpaces} -% There was added one simple command, the external alias -% of internal command |\@nobreakfalse|. -% It switches off |\if@nobreak| flag. -% The main (and most visible) usage of this flag---managing of -% vertical spaces between two sectioning commands (it cancels the space before for next -% section command of the pair); spaces before list environments (cancels the space -% before list just after sectioning command) and other similar cases. -% -% Usually this flag turned off at the next paragraph (or |\par| command), -% but in some cases this ``turn off'' cannot be happen in necessary point. -% The |\RestoreSpaces| command would help. +% \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. In the case of loaded \package{rotfloat} package before +% 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} already loaded, so next loads are ignored. +% \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 `option clash' error message. +% you may get an `option clash' error message. % %\clearpage -% \section{Style Tandems} -% -% The next few sections show examples and explain some noticed -% features with usage of \package{floatrow} and another package. There is not -% the full list of style compatibilities. You may succeed with other -% versions of mentioned packages, and maybe with not mentioned -% packages too. -% -% \subsection{The \package{caption} Package}\label{ssec:caption} +% \section{The \package{floatrow} Package and The \package{caption} Package}\label{ssec:caption} +% Tested (and compatible) with version from v3.0q to~v3.1f. % -% Tested (and compatible) with version v3.0q. -% -% The \package{caption} package has strong mechanism of creating of +% 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). -% -% The \package{floatrow} adds possibility to create a variations of captions -% for floats in different positions or layouts (e.g. like wide or -% two-column floats or rotated floats) using optional argument of -% |\captionsetup|. -% -% For example you want to create special caption layout for wide or +% 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} @@ -3347,39 +3893,508 @@ % |\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 +% |\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 the page~\pageref{stsetorder}\label{cap:beside:order}). +% see on page~\pageref{stsetorder}\label{cap:beside:order}. % -% \subsection{The \package{subfig} Package}\label{ssec:subfig} +%\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 |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. (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 top 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| does +% 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,40)(0,0)| +% |\put(0,0){\framebox(40,40)[bl]{}}| +% |\put(2,2){\makebox(0,0)[bl]{\relax\hbox{\subcaptionlabel{}\Flabel{scap:I}}}}| +% |...| +% |\put(42,0){| +% |\put(0,0){\framebox(40,40)[bl]{}}| +% |\put(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 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. For the \package{subfig} package there are additional -% macros in \package{floatrow} which create of row of subfloats; -% put subcaption label beside contents of subfloat; put alone +% 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 -% \package{subfloat} package (like |\captionsetup[table]{position=top}| in +% 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}\extrarowheight1pt|\nopagebreak -%| \floatbox{table}[\FBwidth]| +%|\begin{table}\setlength\extrarowheight{1pt}|\nopagebreak +%| \|\FRkey[sec]{floatbox}|{table}[\FBwidth]| %| {\caption{Two ...}\label{...}}| %| {\begin{subfloatrow}| -%| \subfloat[First table]| +%| \subfloat[First subtable]| %\verb+ {\begin{tabular}{|l|c|c|}+ %| ...\end{tabular}}| -%| \subfloat[Second table...]| +%| \subfloat[Second subtable...]| %\verb+ {\begin{tabular}{|l|c|c|}+ -%| ...\end{tabular}%| -%| \end{subfloatrow}}}| +%| ...\end{tabular}}%| +%| \end{subfloatrow}}| %|\end{table}| %\end{Quote} % \DeleteShortVerb{\|}% @@ -3423,78 +4438,69 @@ % \end{table}% % \MakeShortVerb{\|}% % -% The \env{subfloatrow} is simplified \env{floatrow} environment, which -% expands vertical alignment of float contents to subfloats and -% puts horizontal separator, defined by \texttt{subfloatrowsep=} -% key. This key and uses the same options -% as \texttt{floatrowsep=} and \texttt{capbesidesep=} keys (options of +% 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}). % -%^^A To use \env{subfloatrow} environment load -%^^A \package{fr-subfig}\footnote{This package could have only beta-status, -%^^A because of it redefines two macros of \package{subfig} package for -%^^A creation of subcaption and subfloat boxes.} package installed -%^^A together with \package{floatrow}.\pagebreak[3] -% -% See examples with \env{subfloatrow} environment 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.) -% -% The next goes example with beside caption (see +% Next follows an example with beside caption (see % figure~\ref{fig:subfig:catsI}).%^^A -%^^A% \footnote{In version 1.2 the beside boxed and non-boxed subfloat -%^^A% contents (like in figure~\ref{fig:subfig:catsI}) could not get aligned -%^^A% bottom (top) subcaptions. In this example I ought to use following -%^^A% lines for subfigure~\ref{subfig:b}, when \package{pstricks} package is -%^^A% loaded:\\[2ex]\ttfamily -%^^A% \cmd{\raisebox}\{\cmd{\depth}\}\{\cmd{\input}\{\texttt -%^^A% {Cat.picture}\}\}} +%\begingroup %\begin{Quote} -%\meta{preamble}\nopagebreak -%|\floatsetup[figure]{|\hyperref[setup:style]{\texttt{style}}|=Shadowbox,|%^^A -% \hyperref[setup:capbesidesep]{\texttt{capbesidesep}}|=columnsep,| -%| |\hyperref[setup:capbesideframe]{\texttt{capbesideframe}}|=yes,|%^^A -% \hyperref[setup:capbesideposition]{\texttt{capbesideposition}}|={left,top}}| -%|\floatsetup[subfigure]{|\hyperref[setup:style]{\texttt{style}}|=plain}| -%|\DeclareCaptionLabelFormat{list}{\bothIfFirst{#1}{ }#2)}| -%|\captionsetup[subfigure]{labelformat=list,justification=centerlast,| +%\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 -%\meta{preamble} -%|\fcapside[\FBwidth]| +%\end{preamble} +%|\|\FRkey[FB]{fcapside}|[\|\FRkey[FB]{FBwidth}|]| %| {\begin{subfloatrow}| %| \subfloat[...\label{...}]{...}| -%| \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=list,justification=centerlast,strut=no} +% \captionsetup[subfigure]{labelformat=brace,justification=centerlast,strut=no} % \begin{figure}[h] % \fcapside[\FBwidth] % {\begin{subfloatrow} -% \subfloat[One cat\label{subfig:w}]{% -% {\input{Cat.picture}}} -% \subfloat[Another cat\label{subfig:b}]{\input{TheCat.picture}}% +% \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 -% \texttt{Shadowbox} layout. There are two subfigures: -% \protect\ref{subfig:w} and \protect\ref{subfig:b}}\label{fig:subfig:catsI}} +% |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 command,%^^A -% \FRmpar{Subcaption beside subfloat}{FAD:sublabelbeside} +% 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 analogous to options for |capbesideposition=| key: -% \par\RestoreSpaces +% The options are analogous to the ones for |capbesideposition=| key: % \begin{Options}{\OptionLabel}\samepage % \item[top] % subcaption label aligned to the top of object; @@ -3505,13 +4511,14 @@ % \end{Options} % % The figure~\ref{fig:subfig:catsII} shows layout with subfloat labels beside. +% \FRmpar{Subcaption beside subfloat}{FAD:sublabelbeside} % \begingroup % \begin{Quote}% -%\meta{preamble}\nopagebreak +%\begin{preamble} %|...| -%|\floatsetup[figure]{|\hyperref[setup:style]{\texttt{style}}|=plain,|%^^A -% \hyperref[setup:subcapbesideposition]{\texttt{subcapbesideposition}}|=top}| -%\meta{preamble} +%|\floatsetup[figure]{|\FRkey{style}|=plain,|%^^A +% \FRkey{subcapbesideposition}|=top}| +%\end{preamble} % |\begin{figure}[H]| % | \ffigbox[\FBwidth]| % | {\begin{subfloatrow}| @@ -3527,27 +4534,27 @@ % \ffigbox[\FBwidth] % {\begin{subfloatrow} % \sidesubfloat[]{% -% {\input{Cat.picture}\label{subfig:wI}}} +% \input{Cat.picture}\Flabel{subfig:wI}} % -% \sidesubfloat[]{\input{TheCat.picture}\label{subfig:bI}}% +% \sidesubfloat[]{\input{TheCat.picture}\Flabel{subfig:bI}}% % \end{subfloatrow}} % {\caption[Subfloat row (labels beside)]{Beside caption vertically centered. % There are two subfigures: -% \protect\ref{subfig:wI} and \protect\ref{subfig:bI}}\label{fig:subfig:catsII}} +% \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 \env{picture} environment where subfloat labels were |\put| +% 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 based on |\subfloat[]{\label{..}}| sentence and +% This command is based on |\subfloat[]{\label{..}}| sentence and % puts alone subcaption label with necessary number. The full variant % of |\subfloatlabel| % \begin{Quote} @@ -3559,30 +4566,36 @@ % |\subfloat[]{\label{|\meta{label entry}|}}| % \end{Quote} % -% +% Another example: % \begingroup % \begin{Quote}% -%\meta{preamble}\nopagebreak +%\begin{preamble} %|...| -%|\floatsetup[figure]{|\hyperref[setup:style]{\texttt{style}}|=plain}| -%|\DeclareCaptionListOfFormat{comma-separated}{#1,\,#2}| -%|\captionsetup[subfigure]{listofformat=comma-separated}| -%\meta{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} -% \begin{figure}[h] +% \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[]{\label{subfig:wII}}}} +% \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}} @@ -3592,64 +4605,106 @@ % \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(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]{%^^A +% {\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. -% First shows cat's eyes (\protect\ref{subfig:wII}), labeled with +% 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 -% (\protect\subref{subfig:bII})}%^^A +% (\Fref{subfig:bII})}%^^A % \label{fig:subfig:catsIII}} % \end{figure} -% Please look at the definition of reference to the subfigure, key |listofformat=|. -% This format is used, in particular, by |\subref| command: the |\subref{subfig:bII}| gives -% reference to the subfigure \subref{subfig:bII}. % \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. % -% \clearpage -% \par\RestoreSpaces -% \subsection{The \package{longtable} Package}\label{ssec:longtable} +%\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 % -% Tested with version v4.11, dated 2004/02/01. +%\end{small} % -% \subsubsection{Additions in \package{floatrow}} -% \label{ssec:LTcapwidth} +% 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 % -% There was added a patch to the |\LT@array| macro (\package{longtable} -% package)\footnote{Thanks to A. Sommerfeldt for help to make this +% \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 \env{table} environments, and adds code which helps -% to get width of \env{longtable} caption equal to the -% width of table. For settings of caption width there was created a key. +% 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|. In this cases this -% key does work of |\LTcapwidth| command. If you'll write -% \texttt{LTcapwidth=table} or \texttt{LTcapwidth=contents}, you will get -% caption width equal to the width of table. In this case settings for -% width of caption use information from \texttt{aux}-file, so you'll get -% correct caption width at the time when the width of full table become -% stable. -% -% The \env{longtable} environment uses layout settings from -% |\floatsetup[table]| and |\floatsetup[longtable]| macros. +% 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}. There is added a -% \textrm{beta-temp}\footnote{Again, like with \package{listpen} package, I +% \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.} package -% with simple additions, which allow creation of special head for last -% page of longtable environment and special foot for pages before last. +% 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} @@ -3659,25 +4714,86 @@ % 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 defined if they are still unknown, i.e. the main, +% territory they get defined if they are still unknown, i.e.~the main, % \package{longtable}, package didn't defined them. -% The syntax also analogous as for commands |\endhead|, |\endfirsthead| etc. +% 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.) +% \texttt{sample-longtable.tex} file.)\medskip % %^^A% \DescribeMacro{\floatfoot} -% The footnote stuff inside \env{longtable} works like in main -% text and put text of footnotes -% at the bottom of page\footnote{See also \env{longtable} documentation.}. -% The command for legends or explications, |\floatfoot|, in current version -% inside \env{longtable} has emulation mode, and needs stuff, -% similar to |\noalign{\floatfoot{...}}|. Since default font definition for explications (|\floatfoot|) also -% set to |\footnotesize|, like for footnotes, you may put footnotes-emulations at this -% explication block, using |\mpfootnotemark| commands. +% \emph{Note}. Please remember that the footnote stuff inside |longtable| works like in main +% text and put 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, @@ -3692,24 +4808,29 @@ % \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). +% 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} -% \meta{Placement} is one of \texttt{r}, \texttt{l}, \texttt{i}, -% \texttt{o}, \texttt{R}, \texttt{L}, \texttt{I}, \texttt{O}, for +% +% {\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. +% figure, but may be specified manually, e.g.} +% % \begin{Quote} % |\begin{wrapfigure}[10]{r}[34pt]{5cm}|\nopagebreak % \meta{figure}\nopagebreak @@ -3717,179 +4838,221 @@ % \end{Quote} % \endgroup % -% \begingroup +% \begingroup\sloppy % \def\FBaskip{-12pt} % \floatsetup[figure]{style=BOXED,frameset={\fboxsep12pt}} -% \par\begin{wrapfigure}[12]{o}{0mm} -% \ffigbox[44mm] -% {\par{\setlength\unitlength{.75\hsize/48}%^^A -% \input{Cat.picture}}} -% {\caption{Wrapped figure in \cmd{\ffigbox} (\package{wrapfig} package)}% +% \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{Floatrow note.} -% For figure, placed in \env{wrap...} environment you must set width +% \emph{Notes.} +% 1)\enskip 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, \package{wrapfig} package will count natural width -% of float contents. +% 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. % -% Sometimes above (below) float box in \env{wrap...} environment +% 2)\enskip Sometimes above (below) float box in \env{wrap...} environment % appears unwanted space. To correct vertical position, use |\FBaskip| -% (|\FBbskip|) commands (see {\sectionname}~\ref{sec:FBabskips}). +% (|\FBbskip|) commands (see {\sectionname}~\ref{sec:FBabskips}) and optional argument +% \meta{number} of \env{wrap...} environments. +% +% 3)\enskip 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 \env{wrap...} environment, there are -% following priorities -% (Please note that you can load also special caption settings with +% 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 absent---uses settings of next item; +% 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 ``stronger'' -% than next ones; if they absent---settings of current +% \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 absent---uses default settings -% (|\floatsetup{...}| or package settings inside |\usepackage| command). +% 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}.\nopagebreak % -% The usage of plain float environment in version 3.3 will -% not succeed with current version of \package{floatrow}---use |\floatbox| +% 1)\enskip The usage of plain floating environment in version 3.3 will +% not succeed with \package{floatrow}---use |\floatbox| % stuff. The version 3.6 allows usage of plain \env{wrap...} -% environment with \hyperref[setup:plain]{\texttt{plain}} (or \hyperref[setup:ruled]{\texttt{ruled}}) styles, but -% the framed styles, like \texttt{Boxed} (which use key |framefit=yes|, where text inside frames +% environment with \FRkey{plain} (or \FRkey{ruled}) styles, but +% the framed styles, like |Boxed| (which use key |framefit=yes|, where text inside frames % changes its |\hsize| to fit frames, fitted to defined |\hsize|) % could work only with |\floatbox| macro, otherwise you'll get % incorrect widths and layout. +% +% 2)\enskip The \env{wrap...} environments could fail inside list ones, be also +% carefull with grouping around text with these environments. % \endgroup % -% \begingroup +% \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]{44mm}\def\FBaskip{-2.5pt} -% \ffigbox[44mm] -% {\setlength\unitlength{\hsize/60}%%^^A +% \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 \env{floating\-figure} environment % (\package{floatflt})}\label{fig:floatflt:WcatI}} % \end{floatingfigure}%\FBbuildtrue % -% \noindent Tested with version v\kern-1pt.1.3 dated +% \noindent Tested with version v1.3 dated % 1996/02/27\kern-1pt. % -% \emph{Founded limitations} 1)\enskip There is not support for -% creation of new \env{floating...} environment. Since \env{floatflt} +% \emph{Founded limitations}. 1)\enskip There is not support for +% creation of new \env{floating...} environment. Since |floatflt| % environments need usage of |\floatbox| in any case, you can use -% either \env{floatingfigure} or \env{floatingtable} and put +% either |floatingfigure| or |floatingtable| and put % necessary float type in |\floatbox| argument (or use necessary -% macro abbreviation, like |\ffigbox|). +% 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. % -% 2)\enskip If you put \env{floatingfigure} environment just after +% 2)\enskip If you put a~|floatingfigure| environment just after % |\...section| command you need (if you do not indentation after % heads) to put |\noindent| for the first paragraph. % -% 3)\enskip The \env{floatflt} environments could fail with list +% 3)\enskip The |floatflt| environments could fail with list % environments. % -% 4)\enskip To get correct space before next |\...section| head you -% may need to put following commands -% |\makeatletter\@nobreakfalse\makeatother| (as was made in just -% before next section). -% -% \RestoreSpaces +% 4)\enskip 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 % -% \floatsetup[figure]{style=ruled} -% -% \parpic[l]{{%\def\floatrowsep{}\let\FBiffloatrow\iftrue -% \def\FBaskip{6pt}\def\FBbskip{14pt} -% \ffigbox[42mm] -% {{\setlength\unitlength{20mm/72}%^^A -% \input{TheDog.picture}}} -% {\caption{Wrap\-ped figure (\cmd{\parpic}); -% \cmd{\floatbox}}\label{fig:parpic:BcatI}}% -% }} -% -% \noindent Tested with version v\,3.0 dated 1999/10/12. -% -% This package produces pictures inside paragraph. This package +% 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. +% 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). % -%^^A \emph{Founded limitations}.\nopagebreak +% \emph{Founded limitations}.\nopagebreak % -%^^A 1)\enskip In |\parpic| argument you ought to put before |\floatbox| -%^^A following commands: -%^^A \begin{Quote}% -%^^A |\def\floatrowsep{}|\allowbreak -%^^A |\let\FBiffloatrow\iftrue| -%^^A \end{Quote}% -%^^A to get correct layout. +% 1)\enskip In |\parpic| argument you ought to put |\hsize0pt| before +% the |\floatbox| command, +% to get correct layout. (Compare with usage of |0mm| value inside the \marg{width +% of figure} option in the |wrapfigure| environment.) +% +% \floatsetup[figure]{style=DOUBLEBOX} % -% The next limitations could not tied with \package{floatrow} package. % -%^^A \floatsetup[figure]{style=DOUBLEBOX} +% The next limitations could not tied with \package{floatrow} package. % -%^^A \parpic[r]{{%\def\floatrowsep{}\let\FBiffloatrow\iftrue -%^^A \hsize36mm -%^^A \ffigbox[\hsize] -%^^A {{\setlength\unitlength{16mm/61}%^^A -%^^A \input{TheDog.picture}}} -%^^A {\caption{Wrapped figure (\cmd{\parpic})}\label{fig:parpic:BcatII}}% -%^^A }} +% \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}}} % -% 1)\enskip If you put \cmd{\parpic} just after |\...section| command +% 2)\enskip 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. % -% 2)\enskip You may try to use \cmd{\parpic} inside list environment, -% but in some cases usage of \cmd{\parpic} in -% the list gets bad or wrong layout. +% 3)\enskip 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). % -% 3)\enskip This package has not options \meta{outside} or +% 4)\enskip 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. +% manually. Or you may create command: +%\begin{Quote} +%\begin{preamble} +%|\usepackage{ifthen}| +%|\newcommand\oparpic{\ifthenelse{\isodd{\value{page}}}%| +%| {\def\next{\parpic[r]}}{\def\next{\parpic[l]}}\next}| +%\end{preamble} +%\end{Quote} +% +% 5)\enskip 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{...}}%| +% |\parpic[l]{\hsize0pt\ffigbox[\FBwidth]{}{...}}| +% \end{Quote} +% Second picture uses the |\caption| command inside |\ffigbox|, so +% the |\captionsetup|\allowbreak|[parpic]{...}| settings do not work: +% \begin{Quote} +% |\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 \env{sideways\ldots} % Environment}\label{ssec:rotating} -% % Tested with version v2.13 dated Sep. 1992. % -% There is example (figure~\ref{fig:rot}) with rotated float, using -% \env{sidewaysfigure}. +% There is example (figure~\ref{fig:rot:ii}) with rotated float, using +% |sidewaysfigure|. %\begin{Quote} -%\meta{preamble} -%|\floatsetup[|\hyperref[setup:rotfigure]{\texttt{rotfigure}}|]{|%^^A -% \hyperref[setup:style]{\texttt{style}}|=WSHADOWBOX}| -%\meta{preamble} +%\begin{preamble} +% |\usepackage[figuresright]{rotating}| +%|\|\FRkey[sec]{floatsetup}|[rotfigure]{|%^^A +% \FRkey{style}|=WSHADOWBOX}| +%\end{preamble} %|\begin{sidewaysfigure}\emptyfloatpage| -%|\ffigbox[\FBwidth]| +%|\|\FRkey[FB]{ffigbox}|[\|\FRkey[FB]{FBwidth}|]| %| {...}| %| {\caption{Figure ...}%| %| \label{...}}| @@ -3898,15 +5061,30 @@ % \floatsetup[rotfigure]{style=WSHADOWBOX} % \begin{sidewaysfigure}\emptyfloatpage % \ffigbox[\FBwidth] {\includegraphics[width=4in]{pslearn}} -% {\caption{Figure inside \env{sidewaysfigure} environment}% +% {\caption{Figure inside \texttt{sidewaysfigure} environment}% % \label{fig:rot:ii}} % \end{sidewaysfigure}% -% %^^A For rotating floats on right side (like in -% %^^A current documentation) put in preamble -% %^^A \begin{Quote} -% %^^A |\usepackage[figuresright]{rotating}| -% %^^A \end{Quote} % +% \subsubsection{Special Page Style for Float Page} +% In example with figure~\ref{fig:rot:ii} you may see the command |\emptyfloatpage|.%^^A +% \FRmpar{Empty page style for rotated floats}{FAD:emptyfloatpage}\label{setup:emptyfloatpage} +% It is offered by \package{floatpagestyle} package, (installed with +% \package{floatrow} package, can be used separately). The macro |\emptyfloatpage| is an abbreviation of +% |\floatpagestyle{empty}|. The last macro redefines the page style for +% the page where \emph{current} floating environment appears in the way, analogous to |\thispagestyle| +% command. +% +% \RestoreSpaces +% The version 0.1h patches the core \LaTeX{} macro +% |\@outputpage|\footnote{At the start of document +% \package{floatpagestyle} package puts additional code at the very beginning +% of this output routine.} +% and I hope that it could work.\footnote{If you know more honest +% way to get the same result---the redefinition of \emph{alone} +% \emph{float} page style (in the case when this page can \emph{float} +% inside document)---please let me know.} Since this package uses +% |\label|---|\ref| mechanism, the |\floatpagestyle| command works +% after \emph{second} \LaTeX{} run. % % \emph{Special settings}.\nopagebreak % @@ -3914,19 +5092,19 @@ % \env{sideways...} environment (see page \pageref{stsetorder}). % % For one-column rotated float -% \par\RestoreSpaces +% \RestoreSpaces % \begin{itemize} % \item % % if exists |\floatsetup[rot|\meta{captype}|]{...}| -% package uses these settings---the ``strongest'' settings; if they +% package uses these settings---the ``strongest'' settings; if they are % absent---uses settings from next item; % \item % if exists |\floatsetup[rotfloat]{...}| -% package uses these settings---these settings ``stronger'' than next -% ones; if they absent---settings for current float +% package uses these settings---these settings are ``stronger'' than next +% ones; if they are absent---settings for current float % (|\floatsetup[|\meta{captype}|]{...}|); -% if they absent---uses default settings -% (command |\floatsetup{...}| or package settings). +% if they are 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) @@ -3934,114 +5112,140 @@ % \item % % if exists |\floatsetup[widerot|\meta{captype}|]{...}| % package uses these settings---the ``strongest'' settings; -% if they absent---uses settings of next item; +% if they are absent---uses settings of next item; % \item % % if exists |\floatsetup[widerotfloat]{...}| package -% uses these settings---these settings ``stronger'' than settings -% in next item; if they absent---uses settings of next item; +% uses these settings---these settings are ``stronger'' than settings +% in next item; if they are absent---uses settings of next item; % \item % % if exists |\floatsetup[rot|\meta{captype}|]{...}| package -% uses these settings---these settings ``stronger'' than settings -% in next item; if they absent---uses settings of next item; +% uses these settings---these settings are ``stronger'' than settings +% in next item; if they are absent---uses settings of next item; % \item % % if exists |\floatsetup[rotfloat]{...}| -% package uses these settings---these settings ``stronger'' than next +% package uses these settings---these settings are ``stronger'' than next % ones; -% %^^A if they absent---settings of next item; -% %^^A \item % -% %^^A if exists |\floatsetup[wide|\meta{captype}|]{...}| package -% %^^A uses these settings; if they absent---settings of next item; -% %^^A \item % -% %^^A if exists |\floatsetup[widefloat]{...}| -% %^^A package uses these settings; -% if they absent---uses settings for current float -% (|\floatsetup|\marg{captype}|{...}|); -% if they absent---uses default settings -% (|\floatsetup{...}| or package settings). +% if they are absent---uses settings for current float +% (|\floatsetup|\oarg{captype}|{...}|); +% if they are absent---the settings inside +% |\floatsetup{...}| and |\usepackage| commands, and, at last, the package default settings are used. % \end{itemize} % -% \emph{Notes}.\nopagebreak -% +% \subsubsection{Rotated Floats on the Facing Pages} % 1)\enskip 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. For this reason you -% may define\footnote{In case of \package{rotating} package has |[figuresright]| -% option, see also files \file{frsample10.tex}--\file{frsample12.tex} -% and code in \file{fr-sample.tex}.} before first float -% \begin{Quote} -% |\buildFBBOX{\vbox to\rottextwidth\bgroup\vss}{\egroup}| -% \end{Quote} -% and before second one +% 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} -% \medskip -% The |\rottextwidth| dimension---here is saved parameter |\textwidth| of the -% document---the |\columnwidth| and |\textwidth| inside +% +% \emph{Notes}. +% 1)\enskip In the example above (and also in the example with figure~\ref{fig:rot:ii}) +% the \package{rotating} package has +% |[figuresright]| option; in this case all \env{sideways...} floats on even and odd pages +% will be rotated by 90$^\circ$ counterclockwise. +% +% +%\begingroup +% \sloppy +% 2)\enskip The |\rottextwidth| command in the example above stores value of the |\textwidth| of the +% document; the |\columnwidth| and |\textwidth| inside % \texttt{sideways...} environment are redefined and equal to % |\textheight|. +% If~\nobreak\quad a)\nobreak\enskip +% you are limited in creation of the new length or dimension command +% (for example you use the \package{pictex} +% package\footnote{The \texttt{e-TeX} engine could solve this problem.}), +% or~\nobreak\quad b)\nobreak\enskip the width/height or the space values, defined with +% the |\newcommand| +% (like the |\headrulewidth| command from \package{fancyhdr} package) need complex calculation +% with usage of the \package{calc} package---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}% +%|\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. % -% 2)\enskip In current example you may see command |\emptyfloatpage|.%^^A -% \FRmpar{Empty page style for rotated floats}{FAD:emptyfloatpage} -% It is offered by \package{floatpagestyle} package, (installed with -% \package{floatrow} package). Macro |\emptyfloatpage| is abbreviation of -% |\floatpagestyle{empty}|. The last macro redefines page style for -% the page where \emph{current} float environment appears. -% -% 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. +%\endgroup % -% \RestoreSpaces -% \subsection{The \package{lscape} Package and \env{landscape} +% \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 \env{landscape} environment from +% 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}): -% \par\RestoreSpaces +% \RestoreSpaces %\begin{Quote} -%\meta{preamble} -%|\DeclareFloatVCode{lowthickrule}{\kern2pt\rule{\hsize}{.8pt}}| -%|\floatsetup[figure]{style=ruled,rowprecode=thickrule,| -%| rowpostcode=lowthickrule,capposition=TOP}| -%\meta{preamble} +%\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}\emptyfloatpage| +%|\begin{figure}\|\FRkey{emptyfloatpage} %|...| %\end{Quote} -% |\floatsetup| code sets \texttt{ruled} float style, +% |\floatsetup| code sets |ruled| float style, % then settings for above and below material are redefined: -% \texttt{rowprecode=} and \texttt{rowpostcode=} keys define thick -% rules but for floatrow as whole (the `individual' |\hrule|'s -% above/below float boxes absent). +% |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 \env{landscape} environment creates a new page. It would be -% useful to rotate the whole new section of document, e.g., appendix. (In current -% document it was placed just before appendix) +% 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 strong layout mechanism for creation for floating -% algorithms itself. The usage of |\lstset| command and \package{caption} +% 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.} @@ -4049,26 +5253,22 @@ % % 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 \env{lstlisting} inside +% there is a limitation: you can't put |lstlisting| inside % |\floatbox| contents. % % \subsection{The \package{hyperref} and \package{hypcap} Packages} +% There were tested versions v6.77i (\package{hyperref}) +% and v1.7 (\package{hypcap}). % -% There were tested versions v6.74i (\package{hyperref}) -% and v1.3 (\package{hypcap}). -% -% The \package{floatrow} tries not to expand its code to |\caption| stuff. +% 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 Incompatibilities} -% -% The incompatibilities at first could follow the incompatibilities of -% \package{caption} 3.x package: -% \begin{Quote} -% \package{ccaption}, \package{hvfloat}, \package{nonfloat}, \package{captcont}, \package{ccaption}, -% \package{ftcapt}, (\package{hvfloat}), \package{multicap}, \package{topcapt}, \package{nonfloat} -% \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: % \quad 1)\nobreak\enskip \package{sidecap} package\footnote{Despite that @@ -4076,8 +5276,8 @@ % 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 \env{SCfigure} and \env{SCtable} environments. -% \quad 2)\nobreak\enskip \package{ctable} package; if you used to use +% layouts to |SCfigure| and |SCtable| environments;~\nobreak\quad +% 2)\nobreak\enskip \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}). @@ -4092,11 +5292,11 @@ % %^^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 \texttt{minipage} +% %^^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 \texttt{minipage}s in object without harm. +% %^^A found, you may use a few |minipage|s in object without harm. % \item % -% You cannot use |\floatbox| stuff for floats with \texttt{verbatim} +% You cannot use |\floatbox| stuff for floats with |verbatim| % environment and/or |\verb|. % \item % % This limitation was mentioned above: some tools of the package use @@ -4110,26 +5310,26 @@ % after second \LaTeX's run (sometimes you need to run more times). % \item % % The \package{caption} and -% \package{floatrow} package do not support optional argument \emph{after} -% caption ``title''. You may use |\floatfoot| +% \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 |\FBwidth| option for complex float contents (which you -% could not put inside |\hbox|). (But you allowed to use |\vspace| +% 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.) +% vertical tuning for them. % \item % -% The \texttt{floatrow} environment allows spaces (and even empty +% 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 common rule---be careful with spaces at the end of lines +% 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 float environment the better way is to separate +% 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) @@ -4137,18 +5337,18 @@ % the end of contents of each part, or wrong justification of float % components. % %^^A \item % -% %^^A Usage of fancy boxes \texttt{shadowbox} and \texttt{wshadowbox} +% %^^A Usage of fancy boxes |shadowbox| and |wshadowbox| % %^^A could get wrong layout with beside captions. -% \item If you use inside |\floatbox| stuff -% \env{tabularx} or \env{tabular*} environments (or any other) with +% \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 \env{tabularx} or \env{tabular*} +% 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 \env{tabularx} or \env{tabular*} load only +% \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 @@ -4158,10 +5358,10 @@ % \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, and -% help in \emph{all} my questions and problems in \package{floatrow} package. +% 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 @@ -4182,18 +5382,18 @@ % \floatsetup[figure]{style=ruled,rowprecode=thickrule, % rowpostcode=lowthickrule,capposition=TOP,margins=hangtoheads, % footposition=caption} -% \newlength\Mylen\Mylen\textwidth +% \renewlengthtocommand\setlength\Mylen{\textwidth} % % \begin{landscape} % -% \begin{figure}\emptyfloatpage +% \begin{figure}\emptyfloatpage\label{example:ruledcapposTOP} % -% \begin{floatrow}[4]\label{example:ruledcapposTOP}%^^A +% \begin{floatrow}[4]%^^A % \ffigbox[][][t] % {{\input{TheCat.picture}}%^^A -% \footnotetext[1]{The +% \footnotetext[1]{This % picture was created with \cmd{\qbezier} -% macro}}% +% 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}}% @@ -4203,14 +5403,14 @@ % \label{fig:rotrow:BcatI}% % \floatfoot{There are all \cmd{\qbezier} macros and only % two vertical lines}}% -% {\input{BlackCat.picture}}% +% {\input{BlackCat.picture}\footnote[2]% +% {Look at funny footnotemark!}}% % % \ffigbox[\FBwidth] % {{\unitlength2.5\unitlength -% \input{Cat.picture}}\footnote[2]% -% {Look at funny footnotemark!}} +% \input{Cat.picture}}} % {\caption{Figure in the row~III, center of object box}% -% \label{fig:rotrow:mouseI}\floatfoot{The Mouse-animal image}}% +% \label{fig:rotrow:mouseI}\floatfoot{The image of cat}}% % % \floatbox{figure}[\Xhsize][\Mylen] % {\caption{Figure in the row~IV}\label{fig:rotrow:FcatI}} @@ -4225,108 +5425,82 @@ % \clearpage % \suppressfloats[t] % \section{Appendix} -% -% \subsection{Miscellaneous} -% -% \subsubsection{Usage of Captionsetup +% \FRorisubsection{Miscellaneous} +% \FRorisubsubsection{Usage of Captionsetup and Thisfloatsetup % Inside Floatbox Stuff}\label{ssec:app:besidestart} -% -% Example of figures in row (figures~\ref{floatbox:FR:lfig} and -% \ref{floatbox:FR:fig}). There were used predefined float commands -% |\fcapsideleft| and |\fcapsideright| with added |\captionsetup| and -% |\thisfloatsetup|: -%\begin{Quote} -%|\newfloatcommand{fcapsideleft}{figure}[{\capbeside| -%| \captionsetup[capbesidefigure]{format=break,labelsep=none,| +% 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}%| -%| \thisfloatsetup{capbesideposition=left}}]%| -%| [\FBwidth]| +%| \|\FRkey{thisfloatsetup}|{|\FRkey{capbesideposition}|=left}}][\|\FRkey[FB]{FBwidth}|]| %|\newfloatcommand{fcapsideright}{figure}[{\capbeside| -%| \captionsetup[capbesidefigure]{format=break,labelsep=none,| +%| \captionsetup[capbesidefigure]{labelsep=newline,| %| justification=raggedright}%| -%| \thisfloatsetup{capbesideposition=right}}]%| -%| [\FBwidth]| +%| \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, -% floatwidth=\columnwidth,capbesidewidth=5.75cc, % capbesidesep=cicero,margins=centering, -% capbesideframe=yes,floatwidth=sidefil} +% capbesideframe=yes} % -% \begin{figure}[b!] +% \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{floatbox:FR:lfig}}% -% \hsize\Xhsize \fcapsideright[\hsize] +% 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{floatbox:FR:fig}}% +% width of rest float row space}\label{FB:FR:fig}}% % \end{floatrow}% % \end{figure}% -% The caption format \texttt{break} was defined by following way: -%\begin{Quote} -%|\DeclareCaptionFormat{break}{#1#2\par#3\par}| -%\end{Quote} -% -% For these figures created following \verb|\floatsetup| settings: -%\begin{Quote} -%|\floatsetup[figure]| -%| {style=Boxed,capposition=beside,| -%| objectset=centering,floatwidth=\columnwidth,| -%| capbesidewidth=5.75cc,capbesidesep=cicero,margins=centering,| -%| capbesideframe=yes,floatwidth=sidefil}| -%\end{Quote} -% The key \texttt{floatwidth=sidefil} means that in the case of -% caption has predefined width, object occupies the rest space of -% \verb|\hsize| (in the case of no \meta{width} option used, or used -% \verb|\hsize| option). -% -% Left figure uses width of graphics, left one occupies the rest of -% float row---for this reason just before \verb|\fcapsideright| -% command was written tricky setting: -%\begin{Quote} -%|\hsize\Xhsize| -%\end{Quote} -% which, in case of caption placed beside float object defines width -% of full float box. -% -% The default \meta{width} option of \verb|\fcapsideleft| and -% \verb|\fcapsideright| commands is \verb|\FBwidth|, so for -% figure~\ref{floatbox:FR:fig} on the right (created by -% \verb|\fcapsideright| command) in the \meta{width} option was set -% \verb|\hsize| command to fill the rest space of float row. % -% Since in float style the key \texttt{heightadjust=object} (included -% in definition of \texttt{Boxed} style), both objects have the same -% height. +% 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 |\useFCwidth| command, which switches on usage -% of previously defined caption width with \texttt{capbesidewidth=} key +% 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 counts natural -% width of caption contents (see figure~\ref{fig:Idog:w}\footnote{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 -% float environment.}). The object---caption box in this case aligned -% using alignment settings from |margins| key (its options defined +% 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} -%\meta{preamble} -%|\floatsetup[figure]{style=plain}| -%\meta{preamble} +%\begin{preamble} +%|\floatsetup[figure]{|\FRkey{style}|=plain}| +%\end{preamble} %|\begin{figure}| -%|\floatbox[\capbeside\useFCwidth]{figure}[\FBwidth]| +%|\floatbox[\capbeside\useFCwidth]{figure}[\|\FRkey[FB]{FBwidth}|]| %| ...| %|\end{figure}| %\end{Quote} @@ -4335,44 +5509,38 @@ % % \begin{figure}[H] % \floatbox[\capbeside\useFCwidth]{figure}[\FBwidth] -% {\caption[Beside -% caption, width equals to caption's text]{Beside -% caption}\label{fig:Idog:w}} +% {\caption[One-line beside +% caption, width equals to caption's text]{}\label{fig:Idog:w}} % {{\setlength\unitlength{{4cm}/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 following float style:%^^A -%^^A \footnote{There are also addition settings for captions: -%^^A \cmd{\captionsetup[capbesidefigure]}\allowbreak -%^^A \texttt{\{format=default,}\allowbreak\texttt{labelsep=none\}} -%^^A which is necessary for current documentation: the \package{hyperref} -%^^A creates unwanted result with empty argument of caption title. The -%^^A same settings used for figures~\ref{floatrow:pre:figI} and -%^^A \ref{floatrow:pre:figII}} +% The figure \ref{fig:capbeside:trick} uses the following float style:%^^A %\begin{Quote} -%\meta{preamble} -%|\renewlengthtocommand\settowidth\Mylen{\captionfont\captionlabelfont| +%\begin{preamble} +%|\|\FRkey{renewlengthtocommand}|\settowidth\Mylen{\captionfont\captionlabelfont| %| \figurename\ \thefigure}| -%\meta{preamble} +%\end{preamble} %|\floatsetup[figure]| -%| {style=Boxed,capposition=beside,objectset=centering,| -%| floatwidth=\columnwidth,capbesidewidth=\Mylen,| -%| capbesideposition=left,capbesidesep=cicero,| -%| margins=centering,capbesideframe=yes,| -%| floatwidth=sidefil}| +%| {|\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, -% floatwidth=\columnwidth,capbesidewidth=\Mylen, -% capbesideposition=left,capbesidesep=cicero, +% capbesidewidth=\Mylen,capbesideposition=left,capbesidesep=cicero, % margins=centering,capbesideframe=yes,floatwidth=sidefil} % \renewlengthtocommand\settowidth\Mylen{\captionfont\captionlabelfont % \figurename\ \thefigure} @@ -4387,71 +5555,34 @@ % \end{figure}% %\endgroup % -% -% \subsubsection{Caption Beside with Centered Object}\label{FAD:CapandCenterObj} -% -% The figure \ref{fig:plain:trick} uses tricky float style: -%\begin{Quote} -%\meta{preamble} -%|\DeclareFloatSeparators{mcapwidth}{\hskip-\FCwidth}| -%\meta{preamble} -%|\floatsetup[figure]| -%| {style=plain,capposition=beside,objectset=centering,| -%| floatwidth=\columnwidth,capbesidewidth=6cc,| -%| capbesideposition=left,capbesidesep=mcapwidth,| -%| margins=centering,capbesideframe=yes,| -%| floatwidth=sidefil}| -%\end{Quote} -% I this case all figures with beside captions centered accordingly to -% text \verb|\hsize|. Usage of such float layout supposes that all -% float objects are narrower than |\textwidth| by at least 2~caption -% widths. -% -% \clearfloatsetup{figure}\floatsetup[figure] -% {style=plain,capposition=beside,objectset=centering, -% floatwidth=\columnwidth,capbesidewidth=6cc, -% capbesideposition=left,capbesidesep=mcapwidth, -% margins=centering,capbesideframe=yes,floatwidth=sidefil} -% \begingroup -% \captionsetup[capbesidefigure]{format=break,labelsep=none, -% justification=raggedright} -% \begin{figure}[H] -% \unitlength1.1\unitlength -% \input{Doll.picture} -% \caption[Beside caption with ``hidden'' width (\texttt{=6cc}), object is centered at the full hsize]{%^^A -% Plain figure}\label{fig:plain:trick} -% \end{figure}% -% \endgroup -% -% There were also temporarily, in group, changed settings for caption -% in figure~\ref{fig:plain:trick}:\label{ssec:app:besidefinish} -% \par\RestoreSpaces -%\begin{Quote} -%|\captionsetup[capbesidefigure]{format=break,labelsep=none,| -%| justification=raggedright}| -%\end{Quote} -% % \subsubsection{Width Definition for Beside % Caption---Object Box in Float Row} -% -% The float row with predefined width of beside object---caption -% boxes (figures~\ref{floatrow:pre:figI} and +% 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 +% command something like: %\begin{Quote} -%|\setlength\hsize{1.2\hsize}%| -%\end{Quote} -% as was defined for first figure, or -%\begin{Quote} -%|\setlength\hsize\Xhsize| +%\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} -% before second (here is clear that you can set -% |\setlength\hsize{.8\hsize}|). +% (here is clear that before second you can also set |\setlength\hsize{.8\hsize}|). % -% Since there were used \verb|\fcapside| commands at the beginning of -% \env{floatrow} environment the \verb|\FCwidth| command was defined -% as \verb|\relax|---in this case the width of caption equals to the -% width of their contents. +%^^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} @@ -4477,34 +5608,34 @@ % \end{floatrow}% % \end{figure}% %\endgroup -% There was used following setup for figures: -%\begin{Quote} -%|\floatsetup[figure]| -%| {style=plain,capposition=beside,objectset=centering,| -%| capbesideposition=left,capbesidesep=enskip,| -%| margins=centering,capbesideframe=yes,floatwidth=sidefil}| -%\end{Quote} % % \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 defined as \texttt{4cm} +% \meta{height} argument in both float boxes has the same value, % you may use each of these three commands. Unfortunately you must set -% height of such beside floats by hand. The lines which create -% described float row: +% 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{figure}\CenterFloatBoxes| +%\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[\Xhsize][3.6cm]| +%| \ffigbox[\|\FRkey[FB]{Xhsize}|][3.6cm]| %| ...| %|\end{floatrow}%| %|\end{figure}| @@ -4513,7 +5644,7 @@ % \clearfloatsetup{figure} % \floatsetup[figure] % {style=Boxed,frameset={\fboxsep6pt},captionskip=5pt,capposition=bottom, -% objectset=centering,capbesidewidth=none,capbesideposition=inside, +% objectset=centering,capbesidewidth=sidefil,capbesideposition=inside, % capbesidesep=enskip,margins=centering,capbesideframe=yes} % % \begin{figure}[H]\CenterFloatBoxes @@ -4534,24 +5665,24 @@ % \end{floatrow}% % \end{figure} % -% The ``mirror layout'' (but not identical) looks like: -% \allowprelistbreaks[-4]\par\RestoreSpaces +% The code for ``mirror'' layout (but not identical) looks like: +% \allowprelistbreaks[-4]\RestoreSpaces %\begin{Quote} %|\begin{figure}\CenterFloatBoxes|\nopagebreak -%|\begin{floatrow}| -%| \ffigbox[1.2\FBwidth][3.6cm]| +%|\begin{floatrow}|\nopagebreak +%| \ffigbox[1.28\|\FRkey[FB]{FBwidth}|][3.6cm]| %| ...| %| | %| \hsize\Xhsize| %| \fcapside[\FBwidth][3.6cm]| %| ...| -%|\end{floatrow}%| +%|\end{floatrow}%|\nopagebreak %|\end{figure}| %\end{Quote} % % \begin{figure}[H]\CenterFloatBoxes % \begin{floatrow} -% \ffigbox[1.2\FBwidth][3.6cm] +% \ffigbox[1.28\FBwidth][3.6cm] % {\unitlength1.44\unitlength % \input{BlackDog.picture}} % {\caption{%^^A @@ -4568,32 +5699,20 @@ % \end{floatrow}% % \end{figure} % -% The figures~\ref{floatrow:mirrmix:figII}--\ref{floatrow:mirrmix:figI} -% use following float style settings: -% \par\RestoreSpaces -%\begin{Quote} -%|\floatsetup[figure]| -%| {style=Boxed,frameset={\fboxsep4pt},captionskip=5pt,| -%| capposition=bottom,objectset=centering,capbesidewidth=none,| -%| capbesideposition=inside,capbesidesep=enskip,margins=centering,| -%| capbesideframe=yes}| -%\end{Quote} -% -% \subsubsection{Photo-Album-like Layouts} -% +% \subsubsection{Photo-Album-Like Layouts} % Another example of miscellaneous float row -% (figures~\ref{flrow:three:figIII}--\ref{floatrow:threemirr:figII}, +% (figures~\mbox{\ref{flrow:three:figIII}--\ref{floatrow:threemirr:figII}}, % and, ``mirror layout''---^^A -% \ref{floatrow:threemirr:figI}--\ref{floatrow:threemirr:figIII}) were +% \mbox{\ref{floatrow:threemirr:figI}--\ref{floatrow:threemirr:figIII}}) were % created by following lines: %\begin{Quote} -%|\begin{figure}\BottomFloatBoxes| +%|\begin{figure}\|\FRkey[FB]{BottomFloatBoxes} %|\begin{floatrow}| -%|\hsize1.2\hsize \ffigbox[][6.7cm]| +%|\hsize1.2\hsize \|\FRkey[FB]{ffigbox}|[][6.7cm]| %| ...| %| | %|\vbox to6.7cm| -%| {\floatsetup[figure]{floatrowsep=none}\killfloatstyle| +%| {\|\FRkey[sec]{floatsetup}|[figure]{|\FRkey{floatrowsep}|=none}\|\FRkey{killfloatstyle} %| \ffigbox[.8\hsize]| %| ...| %| \vss| @@ -4629,9 +5748,9 @@ % \end{figure} % % The ``mirror'' layout created by following commands: -% \par\RestoreSpaces +% \RestoreSpaces %\begin{Quote} -%|\begin{figure}[t]\TopFloatBoxes| +%|\begin{figure}[t]\|\FRkey[FB]{TopFloatBoxes} %|\begin{floatrow}| %|\vtop to7cm| %| {\floatsetup[figure]{floatrowsep=none}\killfloatstyle| @@ -4647,17 +5766,15 @@ %|\end{floatrow}%| %|\end{figure}| %\end{Quote} -% Note that in second example with ``mirror'' layout there was used -% trick with \meta{height} definition---caption of float in the left +% 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\footnote{You get correct height with such calculations for -% beside floats with \package{caption}'s version not older than 3.0d.} -% (here were used \package{calc} package possibilities). The |\vtop| of +% 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 @@ -4690,20 +5807,18 @@ % 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?). +% isn't?).\RestoreSpaces % % \clearpage -% \par\RestoreSpaces -% \subsection{Sample files}\label{sec:samples} -% -% The \env{floatrow} package distribution offers a few files with +% \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 and unnatural). The samples have not aim to +% 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 +% \emph{Note}. All miscellaneous float styles (i.e.\ almost % all sample files) need at least two \LaTeX{} runs. % % The list of samples: @@ -4711,48 +5826,52 @@ % \begin{Options}{\OptionLabel} % \item[frsample01.tex] all possible combinations of predefined % \package{floatrow} styles for captions above/below floats with foot -% material; there were created plain float environments and -% \env{floatrow}s, also there were created boxes with +% 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] different tests with tables; +% \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 different % preamble which run the same file with various float -% layouts. For these examples there was created a new float type of -% float \texttt{textbox}---which includes text in its object contents. +% 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 \texttt{plain} style; text boxes use miscellaneous +% 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 \env{figure*}); +% like |figure*|); % \item[frsample12.tex] two-column layout with attempts of % colored float styles. % \end{Options} % -% There is also added sample file \file{sample-longtable.tex} which -% uses \emph{beta-temp} package-patch \package{fr-longtable} +% {\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. -%\vfil +% possible ways.\par} % -% \subsection{Obsolete Commands}\label{sec:changed} +%\vfil % % \begin{small} -% \subsubsection{The User Interface---New Floats [\package{float}]} +% \subsection{Obsolete Commands}\label{sec:changed} +% \FRorisubsubsection{The User Interface---New Floats [\package{float}]} % \label{sec:floatborrowI} % -% \DescribeMacro{\newfloat} +% \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 @@ -4764,13 +5883,13 @@ % \end{Quote} % \begin{itemize}\advance\itemsep2ptplus2pt % \item \marg{type} is the `type' of the new class of floats, like -% \texttt{program} or \texttt{algorithm}. After the appropriate +% |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., \texttt{t}, \texttt{b}, -% \texttt{p} and \texttt{h} for `top', `bottom', `page' and `here', +% 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 @@ -4778,17 +5897,19 @@ % \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}${}={}$\texttt{chapter}, the floats will be numbered +% 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 \cmd{\DeclareNewFloatType} macro stuff.}. +% environment were created by \cs{}\FRkey{DeclareNewFloatType} macro stuff.}. % \end{itemize} +%\begin{em} % \emph{Floatrow note.} -% There is also created a |\newfloat*| pair, which works similar to +% 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}| @@ -4849,21 +5970,21 @@ % \DescribeMacro{\restylefloat}\nopagebreak % The |\restylefloat| command is necessary % to change styles for the standard float types -% \texttt{figure} and \texttt{table}. Since these aren't usually +% |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 \texttt{ruled}. The command also lets you +% 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 \texttt{boxed} -% style. Please note that \texttt{plain} and \texttt{boxed} float +% 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 \texttt{boxed} style from \package{float} documentation there +% 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 @@ -4896,10 +6017,11 @@ % \MakeShortVerb{\|} % % \end{small}\pagebreak[2] +% +%\clearpage %\RestoreSpaces % \begingroup\extrarowheight1.75pt\small\openup-.5pt\tabcolsep.5\tabcolsep\LTpre=0ptplus3pt\LTpost\LTpre -% \subsubsection{The \cmd{\floatsetup} keys, renamed or deleted after version 0.1b} -% +% \subsubsection{The \texorpdfstring{\cs{floatsetup}}{floatsetup} Keys, Renamed or Deleted After Version 0.1b} % \parindent0pt % \begin{longtable}{@{\extracolsep{-.3ptplus1fill}}| % >{\rightskip0ptplus1fil}p{.35\hsize}| @@ -4912,18 +6034,18 @@ % \\\hline % \endhead % \extrarowheight0pt\begin{tabular}[t]{@{}l} -% \cmd{\renewfloatstyle},\\ -% \cmd{\newfloatstyle},\\ -% \cmd{\definefloatstyle} +% |\renewfloatstyle|,\\ +% |\newfloatstyle|,\\ +% |\definefloatstyle| % \end{tabular}& -% \cmd{\DeclareFloatStyle}---this command uses \cmd{\floatsetup} +% |\DeclareFloatStyle|---this command uses |\floatsetup| % mechanism % \\\hline -% \cmd{\restorerestylefloat} & removed +% |\restorerestylefloat| & removed % \\\hline -% \cmd{\captionskip} & command, not a skip +% |\captionskip| & command, not a skip % \\\hline -% \cmd{\floatfootskip} & command, not a skip +% |\floatfootskip| & command, not a skip % \\\hline % \end{longtable} % @@ -4938,63 +6060,63 @@ % \thead{Key Analog} % \\\hline % \endhead -% \cmd{\floatobjectset} & -% in current version \emph{do not used for definition of object +% |\floatobjectset| & +% in current version \emph{do not use for definition of object % settings}, use key -% \texttt{objectset=} +% |objectset=| % \\\hline -% \cmd{\alignsidecaption}& -% \texttt{capbesideframe=yes} +% |\alignsidecaption|& +% |capbesideframe=yes| % \\\hline % \extrarowheight0pt\begin{tabular}[t]{@{}l} -% \smash{\cmd{\capbesidecenter}},\\ \smash{\cmd{\capbesidetop}},\\ -% \smash{\cmd{\capbesidebottom}},\\ -% \smash{\cmd{\capbesideinside}},\\ -% \smash{\cmd{\capbesideoutside}},\\ -% \smash{\cmd{\capbesideleft}},\\ \smash{\cmd{\capbesideright}} +% |\capbesidecenter|,\\ |\capbesidetop|,\\ +% |\capbesidebottom|,\\ +% |\capbesideinside|,\\ +% |\capbesideoutside|,\\ +% |\capbesideleft|,\\ |\capbesideright| % \end{tabular}& % \extrarowheight0pt\begin{tabular}[t]{@{}l} -% \texttt{capbesideposition=center}\\ -% \texttt{capbesideposition=top}\\ -% \texttt{capbesideposition=bottom}\\ -% \texttt{capbesideposition=inside}\\ -% \texttt{capbesideposition=outside}\\ -% \texttt{capbesideposition=left}\\ -% \texttt{capbesideposition=right} +% |capbesideposition=center|\\ +% |capbesideposition=top|\\ +% |capbesideposition=bottom|\\ +% |capbesideposition=inside|\\ +% |capbesideposition=outside|\\ +% |capbesideposition=left|\\ +% |capbesideposition=right| % \end{tabular} % \\\hline % \extrarowheight0pt\begin{tabular}[t]{@{}l} -% \cmd{\floatrowsep},\\ \cmd{\floatcapbesidesep} +% |\floatrowsep|,\\ |\floatcapbesidesep| % \end{tabular}& -% in current version \emph{do not used for definition of separation -% material}, use keys\par \extrarowheight0pt +% in current version \emph{do not use for definition of separation +% material}, use keys\par % \extrarowheight0pt\begin{tabular}[t]{@{}l} -% \texttt{floatrowsep=}\\ -% \texttt{capbesidesep=} +% |floatrowsep=|\\ +% |capbesidesep=| % \end{tabular} % \\\hline % \extrarowheight0pt\begin{tabular}[t]{@{}l} -% \cmd{\FBcenter}\vphantom{g},\\ \cmd{\FBleft}\vphantom{g},\\ -% \cmd{\FBright},\\ \cmd{\FBnormal} +% |\FBcenter|\vphantom{g},\\ |\FBleft|\vphantom{g},\\ +% |\FBright|,\\ |\FBnormal| % \end{tabular}& % \extrarowheight0pt\begin{tabular}[t]{@{}l} -% \texttt{margins=center},\\ -% \texttt{margins=raggedright},\\ -% \texttt{margins=raggedleft}, \\ -% \texttt{margins=center},\\ +% |margins=center|,\\ +% |margins=raggedright|,\\ +% |margins=raggedleft|, \\ +% |margins=center|,\\ % \end{tabular} % \\\hline -% \cmd{\setfloatstyle} & \texttt{style=} +% |\setfloatstyle| & |style=| % \\\hline % \extrarowheight0pt\begin{tabular}[t]{@{}l} -% \cmd{\Setframe}\\ -% \cmd{\setframe} +% |\Setframe|\\ +% |\setframe| % \end{tabular} -% & use \texttt{framestyle=} and \texttt{frameset=} keys +% & use |framestyle=| and |frameset=| keys % \\\hline % \cmd{\setrules} -% & use \texttt{precode=}, \texttt{postcode=}, \texttt{midcode=} (also -% \texttt{rowpercode} and \texttt{rowpostcode}) keys +% & use |precode=|, |postcode=|, |midcode=| (also +% |rowpercode| and |rowpostcode|) keys % \\\hline % \end{longtable} % @@ -5010,40 +6132,40 @@ % \thead{Changed to} % \\\hline % \endhead -% \texttt{attachedcapstyle=} & \texttt{relatedcapstyle=} +% |attachedcapstyle=| & |relatedcapstyle=| % \\\hline -% \texttt{floatstyle=} & \texttt{style=} +% |floatstyle=| & |style=| % \\\hline -% \texttt{floatfont=} & \texttt{font=} +% |floatfont=| & |font=| % \\\hline -% \texttt{putcaptionbeside=} & {capposition=beside} +% |putcaptionbeside=| & |capposition=beside| % \\\hline -% \texttt{besidecapposition=} & \texttt{capbesideposition=} +% |besidecapposition=| & |capbesideposition=| % \\\hline -% \texttt{besidecapwidth=} & \texttt{capbesidewidth=} +% |besidecapwidth=| & |capbesidewidth=| % \\\hline -% \texttt{besidecapframe=} & \texttt{capbesideframe=} +% |besidecapframe=| & |capbesideframe=| % \\\hline -% \texttt{floatmarginsset=} & \texttt{margins=} +% |floatmarginsset=| & |margins=| % \\\hline -% \texttt{besidecapsep=} & \texttt{capbesidesep=} +% |besidecapsep=| & |capbesidesep=| % \\\hline -% \texttt{Precode=} & \texttt{rowprecode=} +% |Precode=| & |rowprecode=| % \\\hline -% \texttt{Postcode=} & \texttt{rowpostcode=} +% |Postcode=| & |rowpostcode=| % \\\hline -% \texttt{framereduce=} & \texttt{framefit=} +% |framereduce=| & |framefit=| % \\\hline % \extrarowheight0pt\begin{tabular}[t]{@{}l@{}} -% \vphantom{(}options of \texttt{objectset=}\\\quad -% and \texttt{margins=}\\ -% \texttt{flushleft},\\ \texttt{flushright},\\\texttt{center} +% \vphantom{(}options of |objectset=|\\\quad +% and |margins=|\\ +% |flushleft|,\\ |flushright|,\\|center| % \end{tabular} & % \extrarowheight0pt\begin{tabular}[t]{@{}l@{}} -% \vphantom{(}options of \texttt{objectset=} and \texttt{margins=} +% \vphantom{(}options of |objectset=| and |margins=| % (for unification\\\quad with analogous key options in \package{caption} % package)\\ -% \texttt{raggedright},\\ \texttt{raggedleft},\\ \texttt{centering} +% |raggedright|,\\ |raggedleft|,\\ |centering| % \end{tabular} % \\\hline % \end{longtable} @@ -5051,31 +6173,27 @@ % \MakeShortVerb{\|}% % % \StopEventually{} -% \hfuzz7pt +% \hfuzz70pt\clearpage % % \section{The Code} % -% \subsection{The Prelude} +% \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.} % -% \changes{v0.1a}{2004/09/28}{Since the changes of version 0.1a touched -% a lot of package all entries of changing messages deleted.} -% \changes{v0.1d}{2005/02/07}{Removed info, error, command macros---used -% standard instead} The first step is to check whether \package{float} and -% \package{rotfloat} are loaded or not. If yes, there go error messages. -% \changes{v0.1d}{2005/02/07}{Added test for \package{rotfloat} package} -% \changes{v0.1j}{2006/03/12}{Try to say `good bye' -% in the case of \package{float} or/and \package{rotfloat} loaded before} +% \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}{}% -% {\PackageError{floatrow}{Do not use float package with floatrow}{}} -%\@ifundefined{rotfloat@float}{}% -% {\PackageError{floatrow}{Do not use rotfloat package with floatrow}{}} \@ifundefined{float@caption}{% \@ifundefined{rotfloat@float}{}% - {\PackageError{floatrow}{Do not use rotfloat package with floatrow}{}% + {\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}{}% + {\PackageError{floatrow}{Do not use float package with floatrow.\MessageBreak + The latter will be skipped}{}% \@namedef{opt@floatrow.sty}{}\endinput} % \end{macrocode} % @@ -5096,35 +6214,24 @@ % 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. -% \changes{v0.1e}{2005/03/22}{Restoring code of emulation of loading -% for \package{float} and \package{rotfloat} packages.} -% \changes{v0.1f}{2005/06/14}{The version, date and description of -% \package{float} and \package{floatrow} borrowed from originals (AS).} -% \begin{macrocode} -%\expandafter\let\csname ver@float.sty\expandafter\endcsname -% \csname ver@floatrow.sty\endcsname -%\expandafter\let\csname ver@rotfloat.sty\expandafter\endcsname -% \csname ver@floatrow.sty\endcsname +% \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} % -% Here goes request for \package{keyval} package. -% \changes{v0.1c}{2004/10/22}{Bug fix: added request for \package{keyval} -% package.} +% 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. -% \changes{v0.1f}{2005/06/14}{Added request for \package{caption3} package.} -% \changes{v0.1j}{2006/06/18}{Added date request for \package{caption3} -% package.} +% 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} -% The |\caption@keydepth| is used as test for \package{caption}'s version 3.0q. % \begin{macrocode} \RequirePackage{caption3} \@ifpackagelater{caption3}{2007/04/11 v3.0q}{}{\PackageError @@ -5132,29 +6239,81 @@ version `2007/04/11 v3.0q' of package caption,\MessageBreak but only version\MessageBreak `\csname ver@caption.\@pkgextension\endcsname'\MessageBreak - is available}\@eha} + 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 macro |\@floatboxreset| from bundle of -% float definitions. +% 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} % -% \begin{macro}{\FB@caption} -% Here is stored standard \LaTeX's |\caption| command (it is used for -% caption width counting). -% \changes{v0.1f}{2005/06/14}{Restores \LaTeX's \cmd{\caption} macro -% (for width count)} +% \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\FB@caption{% +\newcommand\flrow@caption{% \ifx\@captype\@undefined \@latex@error{\noexpand\caption outside float}\@ehd \expandafter\@gobble @@ -5166,17 +6325,17 @@ } % \end{macrocode} % \end{macro} +% % \begin{macro}{\float@caption} -% The |\float@caption| used as flag for caption package. -% \changes{v0.1f}{2005/06/14}{Saves \cmd{\@caption}: used as flag -% for \package{caption}, \package{hyperref}, (\package{pdfpages}) packages.} +% 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 \package{float} -% package} +% \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} @@ -5209,29 +6368,20 @@ % error message. % % \begin{macro}{\flrow@package} -% {\em \textit{Floatrow note.} \package{float}'s error message -% (the command \cmd{\float@error}\meta{arg}) changed to -% \package{floatrow}'s one (\cmd{\flrow@error}\meta{arg}).} -% \changes{v0.1k}{2007/01/20}{Added -% macro analogous to \cmd{\caption@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} -% -% \begin{macro}{\flrow@error} -% \changes{v0.1k}{2007/01/20}{Created more -% universal macro for all \cmd{\PackageError}s.} -% \begin{macrocode} -\newcommand*\flrow@error[1]{% - \PackageError\flrow@package{#1}\flrow@eh} -% \end{macrocode} % \end{macro} % % \begin{macro}{\flrow@eh} -% The |\caption@eh|-analog. -% \changes{v0.1k}{2007/01/20}{Added -% special help for \cmd{\PackageError}s.} +% {\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 @@ -5239,7 +6389,7 @@ \@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}}} @@ -5253,40 +6403,39 @@ % 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.) -% and |\@floatboxreset| macros. % \changes{v0.1p}{2007/06/24}{The \cmd{\fname@}\meta{floatname} changed to -% \cs{}\meta{floatname}\texttt{name} macros redefined locally (AS).} +% \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} -% \emph{\textit{Floatrow note.} Here was stuff of undocumented command -% \cmd{\floatevery} which, I suppose, allows to set special settings for -% current type of float. In \package{floatrow} package it was deleted. -% Use \cmd{\floatsetup} stuff instead.} +% {\em [floatrow] 1)\enskip The definition of command name for float, +% in the |\floatname| macro, from version \texttt{0.1p} +% is build like |\|\meta{floatname}|name|.} \quad +% {\em2)\nobreak\enskip Here was stuff of undocumented command +% \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} -% \textit{Floatrow note.} -% The definitions of |\restylefloat| stuff were changed. +% [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. +% 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. -% \changes{v0.1f}{2005/06/14}{The \cmd{\@makecaption} and -% \cmd{\@floatboxreset} macros redefined locally.} +% This macro makes temporary redefinitions of |\@makecaption| +% and |\@floatboxreset| macros. % \begin{macrocode} \newcommand\FR@redefs{% -% \@namedef{fst@\@captype}{}% % \@ifundefined{sf@end@float}{}{\let\end@float\sf@end@float}% % \@ifundefined{sf@end@dblfloat}{}{\let\end@dblfloat\sf@end@dblfloat}% \@ifundefined{HyOrg@float@makebox}{}% @@ -5301,15 +6450,19 @@ % \end{macro} % % \begin{macro}{\flrow@makecaption} -% In this macro the |\FBc@wd| used as flag for wrapped floats (for the -% case when natural width of float counted). -% \changes{v0.1f}{2005/06/14}{The \cmd{\@caption} redefinitions -% transformed to \cmd{\@makecaption} ones.} -% \changes{v0.1f}{2005/06/14}{The \cmd{\FBc@wd}\cmd{\z@} works like -% flag (for \package{wrapfig}'s floats).} -% \changes{v0.1h}{2005/10/02}{Added setting for \cmd{\linewidth}} -% \begin{macrocode} -\newcommand\flrow@makecaption[2]{\global\setbox\@floatcapt +% 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 @@ -5320,6 +6473,11 @@ \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} @@ -5327,136 +6485,42 @@ % \end{macro} % % \begin{macro}{\killfloatstyle} -% The third one allows to define again float layout style: it could be -% necessary in mixed float rows. -% \changes{v0.1g}{2005/07/15}{The macro-flag \cmd{\FR@ifflenv} removed.} -% \changes{v0.1k}{2007/01/18}{Deleted \cmd{\global}---it could make macro universal for multilevel usage.} -% \begin{macrocode} -\newcommand\killfloatstyle{\FBbuildtrue - \if@@FS\hsize\FB@wd\fi\@@FSfalse} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\RawFloats} -% This macro restores plain \LaTeX{} mode for floats. i.e. returns core -% macros for commands of float 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.) -% \changes{v0.1f}{2005/06/14}{Added Macro which restores raw float -% behavior.} -% \changes{v0.1g}{2005/07/15}{Added \cmd{\@parboxrestore} macro.} -% \changes{v0.1k}{2007/01/18}{Added optional arguments which -% allow usage of macro outside any float.} -% \begin{macrocode} -\newcommand\RawFloats{\@ifnextchar[%] - \flrow@rawfloatschk\flrow@rawfloats} -\newcommand\flrow@rawfloats{\killfloatstyle\@parboxrestore - \let\@makecaption\FR@makecaption - \expandafter\ifx\csname end\@captype\endcsname\float@endH - \@namedef{end\@captype}{\FBbuildfalse\float@endH}% - \else - \@namedef{end\@captype}{\end@float}% - \fi - \@namedef{end\@captype*}{\end@dblfloat}% - \@ifundefined{@rotfloat}{}{% - \@namedef{endsideways\@captype}{\end@rotfloat}% - \@namedef{endsideways\@captype*}{\end@rotdblfloat}% - }% - \@ifundefined{wrapfloat}{}{% - \@namedef{endwrap\@captype}{\endwrapfloat}% - }} -\@ifdefinable\flrow@rawfloatschk{} -\def\flrow@rawfloatschk[#1]{\@ifnextchar[%] - {\flrow@RawFloats[#1]}{\flrow@@RawFloats#1,;}} -\@ifdefinable\flrow@RawFloats{} -\def\flrow@RawFloats[#1][#2]{\flrow@RawFloats@[#1]#2,;} -\def\flrow@RawFloats@[#1]#2,{% - \caption@ifinlist{#2}{float}{\@namedef{#1}{\@float{#1}}% - }{\caption@ifinlist{#2}{widefloat,wide}{\@namedef{#1*}{% - \let\@xdblfloat\@xfloat\@dblfloat{#1}}% - }{\caption@ifinlist{#2}{rotfloat,rot}{% - \@ifundefined{@rotfloat}{}{\@namedef{sideways#1}{\@rotfloat{#1}}}% - }{\caption@ifinlist{#2}{widerotfloat,widerot}{% - \@ifundefined{@rotfloat}{}{\@namedef{sideways#1*}{\@rotdblfloat{#1}}}% - }{\caption@ifinlist{#2}{wrapfloat,wrap}{% - \@ifundefined{wrapfloat}{}{\@namedef{wrap#1}{\wrapfloat{#1}}}}% - }{\caption@ifinlist{#2}{all,allfloats}{% - \flrow@@RawFloats{#1}% - }{\flrow@error{Undefined float subtype `#2'}% - }}}}}\@ifnextchar;\@gobble{\flrow@RawFloats@[#1]}} -\@ifdefinable\flrow@@RawFloats{} -\def\flrow@@RawFloats#1,{% - \@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} -% \changes{v0.1k}{2007/05/24}{The key-val support for raw float mode. -% Macro \cmd{\flrow@Raw@restyle} replaces \cmd{\flrow@restyle}}. -% This macro is used by |rawfloats=| key. +% 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\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}% - }% - } +\newcommand\killfloatstyle{\FBbuildtrue\if@@FS\hsize\FB@wd\fi\@@FSfalse} % \end{macrocode} % \end{macro} % -% \begin{macro}{\FB@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{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. -% \changes{v0.1d}{2005/02/07}{The \cmd{\floatstyle\{plain\}} command removed} +% 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. -% \changes{v0.1f}{2005/06/14}{The command is \cmd{\let} to \cmd{\relax}.} -% \changes{v0.1g}{2005/07/15}{The macro-flag \cmd{\FR@ifflenv} removed.} +% 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. +% 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. -% \changes{v0.1f}{2005/06/14}{Redefined (AS).} +% 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}% @@ -5469,57 +6533,46 @@ % \end{macro} % % \begin{macro}{\flrow@restyle} -% (Just trick for other packages? Commented.) -% \begin{macrocode} -%\newcommand\float@restyle{} -% \end{macrocode} -% To avoid redefinition of this macro by other packages (e.g. \package{wrapfig}, -% which uses |\float@restyle| as recognition of \package{float} v1.3 package) -% \package{floatrow} package uses other name. -% \changes{v0.1f}{2005/06/14}{Added \cmd{\FR@redefs} command for local -% redefinitions.} -% \changes{v0.1f}{2005/06/14}{The \cmd{\xdef}\cmd{\FBB@wd} changed to -% \cmd{\edef}\cmd{\FBB@wd}.} +% 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 float environment. -% \changes{v0.1f}{2005/06/14}{Added \cmd{\@captype}: necessary -% for \cmd{\FR@redefs}.} +% 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\fi\@@FStrue\@float{#1}}% % \end{macrocode} -% Two-column (wide) float environment. +% 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. +% 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\fi\@@FStrue\edef\FBB@wd{\the\textwidth}% % \end{macrocode} -% {\sl The standard |\@xdblfloat| macro changes |\hsize| to |\textwidth|. +% {\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. -% \changes{v0.1k}{2007/01/18}{Added \cmd{\FR@ifdoubleaswide} flag: -% starred floats could be used for wide alternative layout} +% 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\fi + {\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 float environment. -% The code contents of |\rotfloat@float| macro (\package{rotfloat} package) -% moved here. +% 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 @@ -5531,11 +6584,7 @@ \@float{#1}}% \@namedef{endsideways#1}{\FBbuildtrue\float@end} % \end{macrocode} -% Two-column rotated float environment without support. -% (The style ``support'' for non-rotated two column or wide float -% \texttt{widefloat} and \texttt{wide}\meta{captype} was removed.) -% \changes{v0.1d}{2005/02/07}{Restored \package{rotfloat}'s definition form -% for wide rotated float} +% Two-column rotated floating environment without support. % \begin{macrocode} \ifx\@rotdblfloat\undefined \@namedef{sideways#1*}{% @@ -5544,20 +6593,18 @@ \@nameuse{sideways#1}}% \else % \end{macrocode} -% Two-column rotated float environment with support. -% \changes{v0.1d}{2005/02/07}{The settings for non-rotated wide float -% removed} +% 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\fi\@@FStrue % \end{macrocode} -% {\sl The standard |\@xdblfloat| macro changes |\hsize| to |\textwidth|. +% {\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. +% The code contents of |\rotfloat@dblfloat| macro (\package{rotfloat} +% package) moved here. % \begin{macrocode} \let\@xdblfloat\@xfloat \let\rotfloat@@makebox\float@makebox @@ -5566,7 +6613,7 @@ \fi \@namedef{endsideways#1*}{\FBbuildtrue\float@dblend}} % \end{macrocode} -% Wrapped float environment from \package{wrapfig} package. +% Wrapped floating environment from \package{wrapfig} package. % \begin{macrocode} \@ifundefined{wrapfloat}{}{% \@ifundefined{flrow@WF@rapt}{\let\flrow@WF@rapt\WF@rapt @@ -5584,49 +6631,162 @@ }{}% \@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} +% ^^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 repeated code from |\float@end| and |\float@dblend|: check whether -% |\floatbox| stuff appeared or not. -% \changes{v0.1f}{2005/06/14}{The \cmd{\ifFBbuild} flag added: here is -% not used \cmd{\float@end} command and so on. } +% 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} - \def\WF@floatstyhook{\let\@currbox\WF@box - \ifFBbuild +\@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} -% (|^^A|---The attempts to arrange the widths of Boxed wrapped floats.) +% \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} -%^^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}} +\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} -% At last 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 ). -% \changes{v0.1f}{2005/06/14}{Added check/filter for already created -% subfigures and subtables (SC).} -% \changes{v0.1k}{2007/05/24}{The check macro for subfig package -% changed.} +% \end{macro} +% +% \begin{macro}{\RawCaption} +% The command of caption which doesn't use box register. % \begin{macrocode} - \@ifundefined{sf@@@subfloat}{}{\@ifundefined{c@sub#1}{\newsubfloat{#1}}{}}} +\newcommand\RawCaption[1]{{\let\@makecaption\FR@makecaption #1}} % \end{macrocode} % \end{macro} +% % \end{em} % % \begin{macro}{\newfloat} @@ -5638,10 +6798,9 @@ % \begin{macrocode} \@ifdefinable\float@exts{\newtoks\float@exts} % \end{macrocode} -% {\em \textit{Floatrow note.} -% The |\newfloat| changed and uses |\floatsetup| stuff (redefined by -% suggestions of Axel Sommerfeldt).} -% \changes{v0.1f}{2005/06/14}{Redefinition (AS).} +% {\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@}} @@ -5656,8 +6815,8 @@ % \end{macro} % % \begin{macro}{\float@newx} -% {\em \textit{Floatrow note.} Macro |\float@newx|, which defines a new float -% counter, was removed. It was replaced by |\DeclareNewFloatType| stuff.} +% {\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} @@ -5684,9 +6843,9 @@ \def\@xfloat#1[{\@ifnextchar{H}{\@float@HH{#1}[}{\@float@Hx{#1}[}} % \end{macrocode} % \end{macro} -% {\em\textit{Floatrow note}. 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] 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.} % % Later on we'll need a box to save a |[H]| float. % \begin{macrocode} @@ -5694,29 +6853,28 @@ % \end{macrocode} % % \begin{macro}{\@float@HH} -% First gobble the |[H]|. Note that \texttt{H} should not be used in +% 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\textit{Floatrow note}. If we want to put barrier -%^^A (i.e. use beta-package \package{flafplins}).} -% \changes{v0.1j}{2006/03/12}{Added \cmd{\FloatHBarrier}} +% ^^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} -% Locally redefine the end of the environment. -% \changes{v0.1k}{2007/05/24}{Added \cmd{\FR@ifdoubleaswide} to allow usage of [H] option in wide floats} +% {\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 - \fi + {\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. -% \changes{v0.1h}{2005/10/25}{Added special settings for H-floats} +% {\em[floatrow] The special settings for H-floats |floatH| were added.} % \begin{macrocode} \let\@currbox\float@box \flrow@setlist{{floatH}{#1H}}% @@ -5728,16 +6886,14 @@ % |\parindent| is set to zero for compatibility with the standard % \texttt{[h]} option. % -% \emph{Floatrow note. -% Since \package{floatrow} always uses preloaded style -% the stuff of flag \cmd{\@flstyle} moved out.} +% {\em [floatrow] % Here added zeroing of list margins in the case of appearance of |\floatbox| % inside list environment. -% \changes{v0.1h}{2005/10/02}{Added setting for \cmd{\linewidth}} -% \changes{v0.1k}{2007/05/24}{Margins zeroed for the case of appearance -% of \cmd{\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{}% + \def\@captype{#1}%\setbox\@floatcapt=\vbox{}% \setbox\@currbox\color@vbox\normalcolor \vbox\bgroup \hsize\columnwidth @@ -5754,32 +6910,28 @@ % % \begin{em} % \begin{macro}{\flrow@flboxreset} -% \textit{Floatrow note.} -% 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 -% \texttt{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. -% \changes{v0.1d}{2005/02/07}{Added flag for float box layout building} -% \changes{v0.1f}{2005/06/14}{This macro is redefined to -% \cmd{\@floatboxreset} inside floats.} -% \changes{v0.1f}{2005/06/14}{The \cmd{\capstart} stuff loaded here.} +% [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\FBiffacing\@tempswatrue\fi + \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\else\FB@fs@wd\fi \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 \env{minipage} -% environment or in |\parbox|) mean usage of natural height of components. +% 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} @@ -5788,12 +6940,11 @@ % \end{macro} % % \begin{macro}{\FB@fs@wd} -% The width settings for float box with caption above or below object. +% 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. -% \changes{v0.1h}{2005/10/02}{Added setting for \cmd{\linewidth}} +% The |\flrow@setwd| could define the width for current float. % \begin{macrocode} \flrow@setwd\textwidth\@tempdima \adj@dim\@tempdima-\FB@wadj=\@tempdima @@ -5803,7 +6954,7 @@ \adj@dim\@tempdima-\FBo@wadj={\global\FBo@wd}% \hsize\FBo@wd\linewidth\hsize \FBifcaptop - \ifnum\FPOScnt=0\columnwidth\hsize\else\columnwidth\FBc@wd\fi + \ifnum\FPOScnt=\z@\columnwidth\hsize\else\columnwidth\FBc@wd\fi \else \columnwidth\FBc@wd \fi} @@ -5811,8 +6962,7 @@ % \end{macro} % % \begin{macro}{\FC@fs@wd} -% The width settings for float box with caption beside object. -% \changes{v0.1d}{2005/02/07}{Settings for beside float moved outside group} +% 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}}% @@ -5821,17 +6971,17 @@ \settowidth\@tempdimb{{\floatcapbesidesep}}% \advance\@tempdima-\@tempdimb % \end{macrocode} -% This flag controls predefined width of caption. +% This flag controls predefined width of caption. % \begin{macrocode} \FC@ifc@wd \ifx\FCwidth\relax \flrow@error{You didn't define width of caption\MessageBreak - for plain float environment.}% + 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. +% This flag controls whether to fill rest space of float box with object +% contents when caption width was predefined. % \begin{macrocode} \FC@ifo@fil\advance\@tempdima-\FBc@wd\fi \fi @@ -5840,8 +6990,7 @@ \fi \FC@ifo@fil\else\@tempdima.5\@tempdima % \end{macrocode} -% The |\flrow@setwd| could define the width for followed float. -% \changes{v0.1h}{2005/10/02}{Added setting for \cmd{\linewidth}} +% The |\flrow@setwd| could define the width for followed float. % \begin{macrocode} \flrow@setwd\FB@wd\@tempdima\fi \adj@dim\@tempdima-\FBo@wadj={\global\FBo@wd}% @@ -5863,81 +7012,60 @@ % 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 [\ldots] \textit{Floatrow note.} Skipped explanation.} +% {\em [floatrow \ldots Skipped explanation of float package.]} % % \begin{em} -% \textit{Floatrow note.} -% 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. +% [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 float environment in minipage-like mode. +% 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. % -% \changes{v0.1d}{2005/02/07}{Bug fix: \cmd{\FBiffloatrow} deleted} % \begin{macrocode} \newcommand\float@makebox[1]{% \FBifcapbeside\flrow@FC{#1}\else\flrow@FB{#1}\fi} % \end{macrocode} -% The definitions of vertical fine tuning corrections. -% \changes{v0.1d}{2005/02/07}{Added vert skips (\cmd{\FBaskip}, -% \cmd{\FBbskip}) for layout fine tuning} -% \changes{v0.1d}{2005/02/07}{Added flag for float box layout building} -% \changes{v0.1d}{2005/02/07}{\cmd{\begin@FBBOX}\dots\cmd{\end@FBBOX} -% moved to \cmd{\flrow@makebox}} +% 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. -% \changes{v0.1f}{2005/06/14}{The argument used for defining of -% dimension---restored for (\package{float}) compatibility with -% \package{hyperref} package.} -% \changes{v0.1k}{2007/05/24}{Margins zeroed for the case of appearance -% of \cmd{\floatbox} inside list environment.} +% 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}% - \FBiffacing\FB@writeaux{\string\global\string\c@FBcnt\thepage}\fi + \FR@iffacing{\FB@writeaux{\string\global\string\c@FBcnt\thepage}}\relax \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. -% \changes{v0.1f}{2005/06/14}{The argument used for defining of -% dimension---restored for (\package{float}) compatibility with -% \package{hyperref} package.} -% \changes{v0.1k}{2007/05/24}{Margins zeroed for the case of appearance -% of \cmd{\floatbox} inside list environment.} -% Here added zeroing of list margins in the case of appearance of |\floatbox| -% inside list environment. +% 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}% - \FBiffacing\FB@writeaux{\string\global\string\c@FBcnt\thepage}\fi + \FR@iffacing{\FB@writeaux{\string\global\string\c@FBcnt\thepage}}\relax \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. -% \changes{v0.1d}{2005/02/07}{Added vertical skips (\cmd{\FBaskip}, -% \cmd{\FBbskip}) for layout fine tuning} -% \changes{v0.1d}{2005/02/07}{Added flag for float box layout building} -% \changes{v0.1d}{2005/02/07}{Settings for beside caption removed -% (they were set outside group somewhere above)} +% 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} @@ -5945,9 +7073,8 @@ \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. -% \changes{v0.1h}{2005/10/02}{Added setting for \cmd{\linewidth}} +% 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% @@ -5960,14 +7087,11 @@ % % \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). +% |\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. -% \changes{v0.1d}{2005/02/07}{\cmd{\begin@FBBOX}\dots\cmd{\end@FBBOX} -% moved to \cmd{\flrow@makebox}} -% \changes{v0.1f}{2005/06/14}{New design implementation for -% \cmd{\captionof}-like stuff?} +% 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 @@ -5977,77 +7101,75 @@ \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. -% \changes{v0.1k}{2007/05/24}{Margins zeroed for the case of appearance -% of \cmd{\floatbox} inside list environment.} +% 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 % \end{macrocode} -% If needed and exists---caption box above float object. -% If key \texttt{footposition=caption} under caption loaded -% foot material. +% If needed and exists---caption box above float object. +% If key |footposition=caption| under caption loaded +% foot material. % \begin{macrocode} \ifvoid\@floatcapt\else \FB@vbox\FBc@wd\FBcheight{\FBifCAPTOP\else\vfill\fi \unvbox\@floatcapt - \ifnum\FPOScnt=1\vbox{\FB@foot}\fi\vfil}% + \ifnum\FPOScnt=\@ne\vbox{\FB@foot}\fi\vfil}% \@@FBskip\hrule\@height\z@\@depth\z@ \fi % \end{macrocode} -% Box of float object. If key \texttt{footposition=default} -% foot material loaded in the bottom of float object box. In the case of -% \texttt{footposition=fott} foot material loads after float object box. +% 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. +% The zero vertical skip must be here in any case. % \begin{macrocode} \vskip\z@ - \ifnum\FPOScnt=0 + \ifnum\FPOScnt=\z@ \FB@vtop\FBo@wd\FBfheight{\FB@foot\vfil}\fi}}\par \par\vskip\z@ - \ifnum\FPOScnt=2\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 \texttt{footposition=default} or \texttt{footposition=caption} -% foot material loaded under caption contents. +% 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=0\FPOScnt=1\fi + \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=1\vtop{\FB@foot}\fi\par + \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 -% \texttt{postcode=} material. +% 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}} + \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. -% \changes{v0.1e}{2005/03/22}{Sorting \cmd{\floatfacing} command to use -% separate parameters for building of beside caption layout and float -% environment margins.} +% +% 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} -% \changes{v0.1k}{2007/05/24}{Margins zeroed for the case of appearance -% of \cmd{\floatbox} inside list environment.} -% Here added zeroing of list margins in the case of appearance of |\floatbox| -% inside list environment. +% 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 @@ -6056,8 +7178,9 @@ \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. +% |\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}}}% @@ -6065,9 +7188,10 @@ \floatcapbesidesep\FCc@box{\FBw@box\FBc@wd \unvbox\@floatcapt\FB@foot}\fi }}\par\@@FBbelow\vskip\z@ - \end@FBBOX}} + \end@FBBOX + \global\setbox\@floatcapt\box\voidb@x}} % \end{macrocode} -% Macro for foots and command for skip outside float row. +% Macro for foots and command for skip outside float row. % \begin{macrocode} \newcommand\FB@foot{\let\FR@ifFOOT\iftrue\FB@putfoots\@@par\FB@putfnotes} \newcommand\FB@zskip{} @@ -6078,7 +7202,7 @@ % \end{macro} % % \begin{macro}{\float@end} -% The internal macro |\end@float| appears here under the name of +% [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 @@ -6091,14 +7215,12 @@ % 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 \textit{Floatrow note.} -% 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.} -% \changes{v0.1d}{2005/02/07}{Added flag for float box layout building} +% {\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 @@ -6112,26 +7234,20 @@ % deal correctly with a non-floating float, inserting the proper amounts % of white space above and below. % -% {\em \textit{Floatrow note.} -% Added flag |\ifFBbuild| for float box layout building. -% This flag stops repeated usage of |\float@makebox| after |\floatbox|.} -% \changes{v0.1d}{2005/02/07}{Added flag for float box layout building} -% \changes{v0.1h}{2005/10/25}{Added penalties \cmd{\@beginparpenalty} -% and \cmd{\@endparpenalty}} -% \changes{v0.1k}{2007/01/14}{Added \cmd{\floatHpenalties} settings and flag for -% usage of list penalties} -% There is also added flag for loading of list penalties around anchored float. +% {\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 - \fi + {\floatHpenalties\relax + \addpenalty\@beginparpenalty}\relax \vskip\intextsep \ifFBbuild\setbox\@currbox\float@makebox\columnwidth\fi \box\@currbox\par - \FR@iffloatHaslist\addpenalty\@endparpenalty\@endpetrue\fi + \FR@iffloatHaslist + {\addpenalty\@endparpenalty\@endpetrue}\relax \vskip\intextsep\relax} % \end{macrocode} % \end{macro} @@ -6140,10 +7256,9 @@ % The |\float@dblend| command finishes up double-column floats. This % uses the same approach as |\float@end| above. It seems to work. % -% {\em \textit{Floatrow note.} -% Added flag |\ifFBbuild| for float box layout building. -% This flag stops repeated usage of |\float@makebox| after |\floatbox|.} -% \changes{v0.1d}{2005/02/07}{Added flag for float box layout building} +% {\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 @@ -6152,7 +7267,7 @@ % \end{macrocode} % \end{macro} % -% \subsubsection{\package{float} package: Captions and lists of floats} +% \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 @@ -6161,81 +7276,16 @@ \newsavebox\@floatcapt % \end{macrocode} % -% \begin{macro}{\caption} -% This is the only \LaTeX\ macro that this document style supersedes. -% {\em[\dots]} the caption routines from \package{float} are used {\em[\dots]}. -% {\em \textit{Floatrow note.} The \package{float}'s caption layout stuff -% replaced by \package{caption}'s |\captionsetup|. In \package{floatrow} -% package redefined |\@makecaption| command (\LaTeX's definition -% of |\caption| commented).} -% \changes{v0.1f}{2005/06/14}{The definition of \cmd{\caption} commented.} -% \begin{macrocode} -%\renewcommand\caption{% -% \ifx\@captype\@undefined -% \@latex@error{\noexpand\caption outside float}\@ehd -% \expandafter\@gobbletwo -% \else -% \refstepcounter\@captype -% \fi -% \@dblarg{\float@caption\@captype}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\float@caption} -% The |\float@caption| macro takes care of entering the caption into -% the appropriate listing. It also controls the typesetting of the caption -% itself, although a style-dependent macro |\@fs@capt| is called to handle -% the specifics. {\em \textit{Floatrow note}. The command |\@fs@capt| -% removed---\package{floatrow} package uses \package{caption} 3.0 possibilities and -% its own definitions.} -% -% Note that because the caption is saved in a box -% instead of being output to the float right away, you cannot simply put -% a legend after the caption proper; it has to follow the |\caption| -% command in an optional argument. -% -% First of all, we call |\addcontentsline| to update the list of -% floats of this class. Note that |\float@caption| is |\long| -% to allow for paragraph breaks in its arguments. -% -% {\em \textit{Floatrow note.} The support of optional argument for legend -% after mandatory caption argument didn't declared in user part of -% documentation. Since caption version 3.0 didn't support this feature, -% it was removed. Use |\floatfoot| macro for additional text.} -% -% \changes{v0.1f}{2005/06/14}{The definition of \cmd{\float@caption} -% commented: this macro used as safe command for \cmd{\@caption}.} -% {\em \textit{Floatrow note.} In version 0.1f this definition commented.} -% \begin{macrocode} -%\long\def\float@caption#1[#2]#3{% -% \addcontentsline{\@nameuse{ext@#1}}{#1}% -% {\protect\numberline{\@nameuse{the#1}}{\ignorespaces #2}}% -% \end{macrocode} -% Now we collect the caption proper. The caption name and number are -% taken from |\fnum@|\meta{float}, where \meta{float} is the class -% of float we're currently handling. -% \begin{macrocode} -% \global\setbox\@floatcapt -% \end{macrocode} -% {\em \textit{Floatrow note.} -% In next line is added necessary width for caption for fancy float layout. -% The flag |\if@@FS|, which checks whether float style predefined is -% stored---maybe caption appears outside any float environment and -% |\floatbox| command in this case it will use |\hsize| definitions.} -% \begin{macrocode} -% \vbox\bgroup\@parboxrestore\reset@font\if@@FS\hsize\FBc@wd\fi -% \normalsize\abovecaptionskip\z@\belowcaptionskip\z@ -% \@makecaption{\@nameuse{fnum@#1}}{\ignorespaces #3}\egroup} -% \end{macrocode} -% \end{macro} +% [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(\textit{Floatrow note.} the |\float@error| changed to -% |\flrow@error|)}. +% {\em([floatrow] the |\float@error| changed to +% |\flrow@error|)}. % \begin{macrocode} \newcommand*{\listof}[2]{% \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{% @@ -6243,8 +7293,13 @@ % 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} - \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}% + \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 @@ -6292,32 +7347,34 @@ % \end{macrocode} % \end{macro} % -% {\em \textit{Floatrow note.} Here goes \package{floatrow} message about -% finishing of loading of \package{float} package's corrected code.} +% {\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} % -% \subsection{Borrowed Code (with original comment) -% from \package{rotfloat} package} +% ^^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 \textit{Floatrow note.} Here goes code of revised and adapted package -% to floatrow. With documentation. -% -% The main redefinitions for \package{rotfloat} (|\flrow@restyle| stuff) purposes -% were made above (in \package{float} part).\\{}[\dots] +% {\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.} +% 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 \textit{Floatrow note}. Since |\rotfloat@endH| was originally defined +% {\em [floatrow] Since |\rotfloat@endH| was originally defined % as |\float@endH| in current macro used |\float@endH|} % \begin{macrocode} \let\rotfloat@HH\@float@HH @@ -6330,7 +7387,7 @@ % \end{macro} % % \begin{macro}{\rotfloat@endH} -% This one hasn't to be changed. {\em \textit{Floatrow note}. Commented.} +% This one hasn't to be changed. {\em [floatrow] Commented.} % \begin{macrocode} % \newcommand\rotfloat@endH{\float@endH} % \end{macrocode} @@ -6358,9 +7415,9 @@ % \end{macro} % \end{macro} % -% That's all folks\dots {\em \textit{Floatrow note:} of borrowed -% \package{rotfloat} package. And here goes message about loading of -% \package{rotfloat} package's code.} +% 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 @@ -6373,8 +7430,6 @@ % \begin{macro}{\FR@everyfloat} % These token macros add redefinition of float stuff to arrange usage % of footnotes inside plain float contents. -% \changes{v0.1f}{2005/06/14}{Deleted \cmd{\flrow@capsetup}: moved to -% \cmd{\flrow@setlist} stuff (AS).} % \begin{macrocode} \@ifdefinable\FR@everyfloat{\newtoks\FR@everyfloat} \FR@everyfloat={\let\@footnotetext\@mpfootnotetext @@ -6425,10 +7480,10 @@ % % \begin{macro}{\mpfootnotemark} % There is the definition of |\footnotemark| which creates the same mark as -% |\footnote| inside \texttt{minipage} environment. That could be useful in +% |\footnote| inside |minipage| environment. That could be useful in % multiple footnote marks in tables. Since the same definition was loaded -% in \package{footmisc} v5.3, these macros are defined at the beginning of -% document in the case only if \package{footmisc} was not 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 @@ -6444,9 +7499,7 @@ % % \begin{macro}{\floatfoot} % This command made for the same reasons as \package{ccaption}'s |\legend| -% macro and uses its style. It uses |\caption| mechanism. -% \changes{v0.1p}{2007/06/24}{The creation of float foot contents extracted -% for usage in longtable.} +% macro and follows its style. It uses |\caption| mechanism. % \begin{macrocode} \captionsetup[floatfoot]{labelformat=empty,labelsep=none} \newcommand\floatfoot{\@ifstar @@ -6456,14 +7509,15 @@ \global\setbox\flrow@foot\vbox{% \floatfoot@box{#1}}}% % \end{macrocode} -% For the case of usage outside of |\floatbox| and float environments. E.g. -% inside \env{longtable} environment. +% +% \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 \env{wrap...} environments. -% \changes{v0.1h}{2005/10/02}{Added setting for \cmd{\linewidth}} % \begin{macrocode} \if@@FS\hsize\columnwidth\linewidth\columnwidth\fi \@parboxrestore\reset@font\color@begingroup @@ -6482,63 +7536,16 @@ \color@endgroup} % \end{macrocode} % \end{macro} -% -% \subsection{The Usage of Command for Float Box} -% -% The usage of macro |\floatbox| is: -% \\[\medskipamount] -% |\floatbox[|\meta{preamble}|]{|\meta{captype}|}[|\meta{width}|]|^^A -% |[|\meta{height}|][|\meta{inner vert pos}|]|^^A -% \\\hspace*{5em}|{|\meta{caption}|}{|\meta{float object}|}|. -% \\[\medskipamount] -% where: -% \begin{description} -% \item[\meta{preamble}]there could be\\ -% \qquad\cmd{\capbeside} and \cmd{\nocapbeside}, -% or you may try to add any other regular command (e.g. |\captionsetup| -% or |\thisfloatsetup| stuff); -% \item[\meta{captype}]the |\@captype| of float type this command -% created for; -% \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); -% \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); -% \item[\meta{inner vert pos}]vertical alignment of object if its box -% larger than contents. -% \end{description} +% \end{macro} % % \subsection{Defining New Float Box Commands} % % \begin{macro}{\newfloatcommand} % \begin{macro}{\renewfloatcommand} -% The following macros allow to define user commands-abbreviations: +% 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. Usage: -% \begin{Quote}% -% |\newfloatcommand{|\meta{command}|}{|\meta{captype}|}|^^A -% |[|\meta{preamble}|][|\meta{default width}|]| -% \end{Quote}% -% where: -% \begin{description} -% \item[\meta{command}]the new command name without backslash; -% \item[\meta{captype}]see section above; -% \item[\meta{preamble}]see section above; -% \item[\meta{default width}]here you could put |\FBwidth| option: in this -% case the width of object---caption box (in case of caption above or -% below object) or width of object box (if caption stays beside object) -% will be equal to width of object. -% \end{description} -% Examples: -% \begin{Quote} -% |\newfloatcommand{ffigbox}{figure}| -% |\newfloatcommand{ttabbox}{table}[\captop][\FBwidth]| -% \end{Quote} -% +% float box. % The definition of command for new float command. -% \changes{v0.1f}{2005/06/14}{Bug fix: corrected \cmd{\@latex@error} -% command code.} % \begin{macrocode}% \newcommand\newfloatcommand[2]{% \@ifundefined{#1}{}% @@ -6551,11 +7558,14 @@ \@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} -% \changes{v0.1k}{2007/05/24}{The option with settings for float -% box saved to temporary command} +% 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]}}} @@ -6583,14 +7593,17 @@ % % \subsection{Building Float Box} % -% \subsubsection{Dimensions Used in Float Box Building} +% \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). +% (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} @@ -6639,21 +7652,14 @@ \@ifundefined{c@#1}{\@nocounterr{#1}}% {\advance\csname c@#1\endcsname #2\relax}} % \end{macrocode} -% The command for localization of |\refstepcounter| and +% The command for localization of |\refstepcounter|, |\stepcounter| and % |\refsteponlycounter|. -% \changes{v0.1h}{2005/10/25}{The \cmd{\FR@loc@refcnt} uncommented.} % \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. -% \changes{v0.1h}{2005/10/25}{The \cmd{\refstepcounter} and -% \cmd{\refsteponlycounter} localized (for \cmd{\ContinuedFloat} -% with \package{subfig}).} -% \changes{v0.1p}{2007/06/24}{The \cmd{\stepcounter} also -% localized (for \cmd{\ContinuedFloat} -% with \package{subfig} and \package{caption}).} % \begin{macrocode} \newcommand\FR@loc@{\let\label\@gobble \let\refstepcounter\FR@loc@refcnt @@ -6661,34 +7667,51 @@ \let\refsteponlycounter\FR@loc@refcnt % \end{macrocode} % The |\cl@@ckpt| is macro which ``globalizes'' all counters. It is used by -% \env{tabularx} environment. Here it is emptied during local creation of -% caption box. -% \changes{v0.1d}{2005/02/07}{Advanced redefinition of global recount -% (for \env{tabularx} environment)} -% \changes{v0.1f}{2005/06/14}{Added `gobbling' redefinition for -% \cmd{\sf@updatecaptionlist} macro (\package{subfig}).} +% |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.1h}{2005/10/31}{The \cmd{\caption@lfmt} used instead of -% \cmd{\fnum@}\cmd{\@captype}.} % \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 -% {\caption@@@make{\csname fnum@\@captype \endcsname}{#3}}% - {\caption@@@make{\caption@lfmt{\@nameuse{\@captype name}}% - {\@nameuse{the\@captype}}\relax}{#3}}% +\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 counts widths and heights of caption and +% 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} @@ -6706,11 +7729,9 @@ % 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). -% \changes{v0.1f}{2005/06/14}{Added value for undefined \cmd{\FBB@wd} -% command. (used as flag for wrapped floats.)} % \begin{macrocode} - \FBiffloatrow\else - \ifx\FBB@wd\relax + \FBiffloatrow\relax + {\ifx\FBB@wd\relax \ifdim\hsize=\z@ % \end{macrocode} % The |\floatbox| stuff doesn't use special |\caption| definition inside @@ -6723,37 +7744,31 @@ \fi \else \hsize\FBB@wd - \fi - \fi + \fi}% \adj@dim\hsize-\FB@wadj=\@tempdima \FBifcapbeside \FCget@@wd{#1}{#3}% \else \nofilFCOhsize - \FBiffloatrow\else - \settowidth\@tempdimb{{\FBleftmargin}{\FBrightmargin}}% - \advance\@tempdima-\@tempdimb - \fi + \FBiffloatrow\relax + {\settowidth\@tempdimb{{\FBleftmargin}{\FBrightmargin}}% + \advance\@tempdima-\@tempdimb}% \fi \FC@ifo@fil\@tempdima\FB@wd\else\FB@wd\@tempdima\fi \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. -% \changes{v0.1d}{2005/02/07}{Bug fix: Restored \cmd{\hsize} setting.} % \begin{macrocode} - \FBiffloatrow\else\hsize\FBo@wd\fi + \FBiffloatrow\relax{\hsize\FBo@wd}% % \end{macrocode} -% \changes{v0.1b}{2004/10/22}{Bug fix: \cmd{\FB@wd} changed only -% for beside captions.} % |\FB@wd| changed only for beside captions. -% \changes{v0.1h}{2005/10/02}{Added settings for \cmd{\linewidth}} % \begin{macrocode} \FBifcapbeside\hsize\FB@wd\fi \linewidth\hsize % \end{macrocode} % If there are defined the width and/or height arguments in |\floatbox| -% macro (re)counts width of object and caption. +% macro (re)calculates width of object and caption. % \begin{macrocode} \def\reserved@a{#1}\ifx\reserved@a\empty \else\FBget@@wd{#1}{#3}\fi @@ -6764,26 +7779,26 @@ \FBc@wd\FB@wd \fi % \end{macrocode} -% From this point macro counts heights of caption and object if necessary. +% From this point macro calculates heights of caption and object if necessary. % \begin{macrocode} - \setbox0\vbox{\FR@loc@\hsize\FBo@wd\linewidth\hsize + \setbox\z@\vbox{\FR@loc@\hsize\FBo@wd\linewidth\hsize \FBifcaptop - \ifnum\FPOScnt=0\columnwidth\hsize\else\columnwidth\FBc@wd\fi + \ifnum\FPOScnt=\z@\columnwidth\hsize\else\columnwidth\FBc@wd\fi \else \columnwidth\FBc@wd \fi #3}% \FBc@ht\ht\@floatcapt\advance\FBc@ht\dp\@floatcapt - \FBo@ht\ht0\advance\FBo@ht\dp0\let\FBheight\FBo@ht - \setbox2\vbox{\null\par\FB@foot\par}% - \FBf@ht\ht2\advance\FBf@ht\dp2% + \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 + {\ifdim\FBf@ht>\FBf@max\global\FBf@max\FBf@ht\fi \ifCADJ \FBifcaptop - \ifnum\FPOScnt=1\global\advance\FBc@ht\FBf@ht\fi + \ifnum\FPOScnt=\@ne\global\advance\FBc@ht\FBf@ht\fi \else - \ifnum\FPOScnt=2 + \ifnum\FPOScnt=\tw@ \ifdim\FBf@ht>\FBf@max \global\advance\FBc@ht\FBf@ht \else @@ -6795,20 +7810,22 @@ \fi \ifdim\FBc@ht>\FBc@max\global\FBc@max\FBc@ht\fi \gdef\FBcheight{\FBc@ht}\gdef\FBfheight{\FBf@ht}% - \fi - \fi + \fi}\relax \def\reserved@a{#2}\ifx\reserved@a\empty - \FBiffloatrow\ifOADJ + \FBiffloatrow{\ifOADJ \ifdim\FBo@ht>\FBo@max\global\FBo@max\FBo@ht\fi \FBifcaptop - \ifnum\FPOScnt=0 + \ifnum\FPOScnt=\z@ \ifdim\FBf@ht>\FBf@max\global\FBf@max\FBf@ht\fi \fi \fi \gdef\FBoheight{\FBo@ht}\gdef\FBfheight{\FBf@ht}% - \fi\fi + \fi}\relax \else - \FBget@@ht{#2}% +% \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} @@ -6817,26 +7834,20 @@ % Counts the width of caption if caption was placed beside float object. % \begin{macrocode} \newcommand\FCget@@wd[2]{\flrow@FClist - \FBiffloatrow\else - \settowidth\@tempdimb{{\FCleftmargin}{\FCrightmargin}}% - \advance\@tempdima-\@tempdimb\advance\hsize-\@tempdimb - \fi + \FBiffloatrow\relax + {\settowidth\@tempdimb{{\FCleftmargin}{\FCrightmargin}}% + \advance\@tempdima-\@tempdimb\advance\hsize-\@tempdimb}% \settowidth\@tempdimb{\floatcapbesidesep}\advance\@tempdima-\@tempdimb \FC@ifo@fil\FB@wd\@tempdima\fi \FC@ifc@wd % \end{macrocode} -% If |\FCwidth| was not defined (|\relax|), macro counts +% If |\FCwidth| was not defined (|\relax|), macro calculates % natural caption width (in this case |\caption| restores plain \LaTeX's -% behavior). The contents of float hidden in |\box1|. -% \changes{v0.1f}{2005/06/14}{Added temporal redefinition of -% \cmd{\refstepcounter}.} -% \changes{v0.1h}{2005/10/30}{The \cmd{\refstepcounter} and -% \cmd{\refsteponlycounter} localized (for \cmd{\ContinuedFloat} -% with \package{subfig}).} +% behavior). The contents of float thrown out in |\box\@ne|. % \begin{macrocode} \ifx\FCwidth\relax - \setbox1\vbox{\FR@loc@ - \let\caption\FB@caption + \setbox\@ne\vbox{\FR@loc@ + \let\caption\flrow@caption \let\@caption\FBtmp@cap #2}% \FBc@wd=\@tempdimb @@ -6861,8 +7872,6 @@ % 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. -% \changes{v0.1f}{2005/06/14}{The \texttt{4}\cmd{\textwidth} changed -% to absolute value.} % \begin{macrocode} \newcommand\FBget@@wd[2]{\@tempswafalse \begingroup @@ -6870,13 +7879,11 @@ \setlength\dimen@{#1}\ifdim\dimen@<\z@\global\@tempswatrue\fi \endgroup \if@tempswa - \setbox0\hbox{\FR@loc@#2}\FBo@wd\wd0% - \let\FBwidth\FBo@wd + \setbox\z@\hbox{\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. -% \changes{v0.1b}{2004/10/22}{Bug fix: \cmd{\FB@wd} localized.} % \begin{macrocode} \adj@dim\FBo@wd+\FBo@wadj=\FB@wd % \end{macrocode} @@ -6888,7 +7895,6 @@ \setlength\FB@wd{#1}% % \end{macrocode} % The width |\FB@wd| localized. -% \changes{v0.1b}{2004/10/22}{Bug fix: \cmd{\FB@wd} localized.} % \begin{macrocode} \adj@dim\FB@wd-\FB@wadj=\FB@wd \adj@dim\FB@wd-\FBo@wadj=\FBo@wd @@ -6899,54 +7905,56 @@ % % \begin{macro}{\FBget@@ht} % Counts the height of object if the height optional argument not empty. -% \changes{v0.1f}{2005/06/14}{The \texttt{4}\cmd{\textheight} changed -% to absolute value.} +% \changes{v0.2b}{2007/12/09}{The argument with floatbox contents added. Corrected bug +% with height calculating.} % \begin{macrocode} -\newcommand\FBget@@ht[1]{\@tempswafalse +\newcommand\FBget@@ht[2]{\@tempswafalse \begingroup \@tempdimb-3000pt\let\FBheight\@tempdimb \setlength\dimen@{#1}\ifdim\dimen@<\z@ \global\@tempswatrue\fi \endgroup - \setlength\FBo@ht{#1}% \if@tempswa + \setbox\z@\hbox{\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=0\advance\FBo@ht\FBf@ht\fi\fi + \FBifcaptop\ifnum\FPOScnt=\z@\advance\FBo@ht\FBf@ht\fi\fi \else + \setlength\FBo@ht{#1}% \adj@dim\FBo@ht-\FBo@hadj=\FBo@ht \adj@dim\FBo@ht-\FB@hadj=\FBo@ht - \setbox0\vbox{\offinterlineskip\vbox{\@@FBabove}% + \setbox\z@\vbox{\offinterlineskip\vbox{\@@FBabove}% \FBifcapbeside\else\@@FBskip\hrule\@height\z@\@depth\z@\fi \vtop{\@@FBbelow}}% - \global\advance\FBo@ht-\ht0\global\advance\FBo@ht-\dp0% + \global\advance\FBo@ht-\ht\z@\global\advance\FBo@ht-\dp\z@ \FBifcapbeside\else\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=0\advance\FBo@ht\FBf@ht\fi\fi - \fi\fi \fi + \FBiffloatrow{\ifOADJ + \ifdim\FBo@ht>\FBo@max\global\FBo@max\FBo@ht\fi +% \ifdim\FBf@ht>\FBf@max\global\FBf@max\FBf@ht\fi +% \FBifcaptop\ifnum\FPOScnt=\z@\advance\FBo@ht\FBf@ht\fi\fi + \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 -% counts height of additional vertical material (except of space +% 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 |\box0| settings moved up in |\FBget@@ht| macro. +% The |\box\z@| settings moved up in |\FBget@@ht| macro. % \begin{macrocode} -% \global\advance\FBo@ht-\ht0\global\advance\FBo@ht-\dp0% +% \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=1\else + \FBifcaptop\ifnum\FPOScnt=\@ne\else \ifdim\FBf@ht>\FBf@max \global\advance\FBo@ht-\FBf@ht \else @@ -6991,21 +7999,21 @@ % % \subsubsection{Building Caption and Object Boxes}\label{putFB} % -% \begin{macro}{\FC@ifFBOX} +% \begin{macro}{\FR@ifFCBOX} % \begin{macro}{\FBs@raise} % \begin{macro}{\FBf@raise} % \begin{macro}{\FCset@vpos} -% The |\FC@ifFBOX| flag if true aligns top or bottom of object's +% The |\FR@ifFCBOX| flag if true aligns top or bottom of object's % frame with top or bottom of beside caption if fancy layout used. % \begin{macrocode} -\let\FC@ifFBOX\iffalse +\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 -% \env{minipage} environment. +% |minipage| environment. % \begin{macrocode} \newcommand\FCset@vpos{\@FC@vpos \ifcase\count@ @@ -7015,12 +8023,12 @@ \gdef\FBs@raise{\raisebox{-.5\totalheight}}% \or\gdef\FC@bbox{\vtop\@parboxto\bgroup\vskip\z@}% \gdef\FC@ebox{\vskip\z@\egroup}% - \FC@ifFBOX\gdef\FBf@raise{\raisebox{-\height}}% - \else\gdef\FBf@raise{}\fi + \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}% - \FC@ifFBOX\gdef\FBf@raise{\raisebox{\depth}}% - \else\gdef\FBf@raise{}\fi + \FR@ifFCBOX{\gdef\FBf@raise{\raisebox{\depth}}}% + {\gdef\FBf@raise{}}% \gdef\FBs@raise{}\fi} % \end{macrocode} % \end{macro} @@ -7029,7 +8037,9 @@ % \end{macro} % % \begin{macro}{\adj@dim} -% Dimension defines box widths and heights in special styles. +% 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 @@ -7044,11 +8054,10 @@ % \begin{macro}{\floatbox} % The start of main macro of object---caption box building. % -% The preparation of optional arguments. -% \changes{v0.1k}{2007/05/24}{The option with settings for float -% box saved to temporary command} -% \changes{v0.1p}{2007/06/24}{Added \cmd{\floatbox@depth} counter for possible -% multilevel including box in box} +% 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}% @@ -7071,21 +8080,22 @@ % If object---caption stays alone here go % special style settings for current float type. % Then go the settings for caption layout. -% \changes{v0.1f}{2005/06/14}{Added local redefining of \cmd{\@makecaption} -% and \cmd{\@floatboxreset} (if outside float env).} -% \changes{v0.1f}{2005/06/14}{The \cmd{\flrow@settype} changed to -% \cmd{\flrow@setlist} (loads also caption settings).} -% \changes{v0.1f}{2005/06/14}{The \cmd{\capstart} stuff loaded here.} % \begin{macrocode} \if@@FS\else\FR@redefs \ifcase\floatbox@depth\or \flrow@setlist{{\@captype}}\or - \flrow@setlist{{subfloat}{subtype}{sub\@captype}}\fi +% \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\fi\@@FStrue \fi % \end{macrocode} -% \changes{v0.1k}{2007/05/24}{Put temporary command with option settings -% for float box} +% Put temporary command with option settings +% for float box. % \begin{macrocode} \FB@tmpset % \end{macrocode} @@ -7095,20 +8105,12 @@ \FBifcapbeside\flrow@FClist\fi % \end{macrocode} % Restoring standard justified paragraph settings${{}+{}}$|\parindent\z@|. -% \changes{v0.1f}{2005/06/14}{Added zeroed \cmd{\leftmargin} and -% \cmd{\rightmargin} in the case -% of appearance inside list environment. Canceling \package{caption} -% of package calculations?} % \begin{macrocode} \@parboxrestore\leftmargin\z@\rightmargin\z@ \floatobjectset\floatfont % \end{macrocode} -% Here is called macro which counts widths and heights of caption -% and object. Before it starts group to localize |\hsize| settings. -% \changes{v0.1b}{2004/10/22}{Bug fix: grouping restored\ldots} -% \changes{v0.1d}{2005/02/07}{\ldots for all cases.} -% \changes{v0.1e}{2005/03/22}{The \cmd{\begingroup} moved up at the -% beginning of \cmd{\floatbox} macro.} +% Here is called macro which calculates widths and heights of caption +% and object. % \begin{macrocode} \FBget@box{#1}{#2}{#4#5}% % \end{macrocode} @@ -7117,32 +8119,24 @@ % a)~\cmd{\FR@floatbox} argument (outside float row).} % \begin{macrocode} \FBifcapbeside\FCset@vpos\fi - \FBiffloatrow\FR@floatbox{\@ifundefined{capstart}{}{\capstart}#4#5}\else + \FBiffloatrow{\FR@floatbox{\@ifundefined{capstart}{}{\capstart}#4#5}}% % \end{macrocode} % The restoring of full |\hsize| of current float box. % For the case of counting of float width inside \env{wrap...} environment -% here defined the |\FBB@wd| macro. -% \changes{v0.1d}{2005/02/07}{Added flag for float box layout building} -% \changes{v0.1d}{2005/02/07}{\cmd{\float@makebox} macro changed to -% its contents} -% \changes{v0.1f}{2005/06/14}{If \cmd{\FBB@wd} still \cmd{\relax}, -% it defined here.} +% 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).} -% \changes{v0.1h}{2005/10/02}{Added setting for \cmd{\linewidth}} -% \changes{v0.1k}{2007/05/24}{Added \cmd{\relax} for \cmd{\FBB@wd} to allow multilevel boxes} % \begin{macrocode} - \adj@dim\FB@wd+\FB@wadj=\hsize\linewidth\hsize + {\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\else\flrow@FB\FBB@wd\fi \global\FBbuildfalse % \global\FB@wd\hsize - \fi\advance\floatbox@depth\m@ne + }\advance\floatbox@depth\m@ne % \end{macrocode} -% \changes{v0.1b}{2004/10/22}{Bug fix: grouping restored\ldots} -% \changes{v0.1d}{2005/02/07}{\ldots for all cases.} % End of the group. % \begin{macrocode} \endgroup\ignorespaces} @@ -7153,8 +8147,8 @@ % \begin{macrocode} \newcommand\FR@floatbox[1]{\@tempswafalse % \end{macrocode} -% For beside floats in special layouts of float (e.g. \texttt{boxed} -% or \texttt{ruled}) there is necessary the definition of maximum heights +% 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} @@ -7167,22 +8161,26 @@ \FBifcapbeside\flrow@FC@\else\flrow@FB@\fi \end@FBBOX % \end{macrocode} -% The each float box in float row reduces special counter \texttt{FRobj} -% by 1. +% The each float box in float row reduces special counter |FRobj| +% by~1. % \begin{macrocode} - \addtocounter{FRobj}{-1}% - \@tempswafalse\FBiffacing\@tempswatrue\fi + \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} - \ifnum\c@FRobj=0% + \advance\Xhsize-\FB@wd + \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. -% \changes{v0.1d}{2005/02/07}{Added flag for float box layout building} +% At last goes flag for float box layout building. % \begin{macrocode} \if@tempswa + \FBifcapbeside + \advance\Zhsize-\FBc@wd + \fi \FB@writeaux{\string\c@FBcnt\thepage \string\def\string\FB@@boxmax{% \ifOADJ\string\FBo@ht\the\FBo@max @@ -7193,12 +8191,15 @@ % \end{macrocode} % Between floats in float row macro puts separation material. % \begin{macrocode} - \advance\Xhsize-\FB@wd - \FBifcapbeside\advance\Xhsize-\FBc@wd + \FBifcapbeside + \advance\Xhsize-\FBc@wd + \advance\Zhsize-\FBc@wd \settowidth\@tempdimb{\floatcapbesidesep}% - \advance\Xhsize-\@tempdimb\fi + \advance\Xhsize-\@tempdimb + \advance\Zhsize-\@tempdimb\fi \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 @@ -7209,7 +8210,7 @@ \setbox\float@box\color@vbox\normalcolor \FBifcaptop \FB@vtop\FBo@wd\FBoheight\bgroup\FBafil\floatobjectset\floatfont - \ifnum\FPOScnt=0\columnwidth\FBo@wd\else\columnwidth\FBc@wd\fi + \ifnum\FPOScnt=\z@\columnwidth\FBo@wd\else\columnwidth\FBc@wd\fi \else \FB@vbox\FBo@wd\FBoheight\bgroup\FBafil\floatobjectset\floatfont \columnwidth\FBc@wd @@ -7222,30 +8223,40 @@ % % \subsection{Building Float Row} % -% \subsubsection{The Flag, Counter and Dimension for Float Row Environment} +% \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} -\let\FBiffloatrow\iffalse +\let\FBiffloatrow\@secondoftwo % \end{macrocode} % \end{macro} % % \begin{macro}{\c@FRobj} -% Counter of objects i a row, which helps to put correct spaces between +% 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} % % \subsubsection{Float Row Environment} @@ -7253,46 +8264,50 @@ % \begin{environment}{floatrow} % \label{floatrow} % Environment for placing beside floats (of one type). -% First go counter of floats in row, then the settings for float layout. -% \changes{v0.1d}{2005/02/07}{Added vertical skips (\cmd{\FBaskip}, -% \cmd{\FBbskip}) for layout fine tuning} -% \changes{v0.1k}{2007/01/18}{IF \cmd{\FBB@wd} still not defined, -% here it equals to \cmd{\hsize}} +% 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\floatrow[1][2]{\setcounter{FRobj}{#1}\FB@facing - \@tempswafalse\FBiffacing\@tempswatrue\fi +\newcommand\flrow@to{to\hsize} +\newcommand\floatrow[1][2]{\c@FRobj=#1\relax + \ifnum\floatbox@depth>\z@ + \flrow@settype{subfloat}\flrow@settype{subtype}\flrow@settype{sub\@captype}% + \fi + \FB@facing\@tempswafalse\FR@iffacing\@tempswatrue\relax \ifCADJ\@tempswatrue\fi\ifOADJ\@tempswatrue\fi \if@tempswa\FB@readaux{\relax}\fi - \ifx\FBB@wd\relax\edef\FBB@wd{\the\hsize}\fi - \vbox\bgroup\vskip\FBaskip\hsize\FBB@wd - \hb@xt@\hsize{\vbox{\settowidth\@tempdima{{\FRleftmargin}{\FRrightmargin}}{\advance\hsize-\@tempdima - \settowidth\leftskip\FRleftmargin\@@FRabove}}\hss}\unskip - \hb@xt@\hsize\bgroup\let\FBiffloatrow\iftrue\FRleftmargin\begingroup + \ifx\flrow@to\empty\else\ifx\FBB@wd\relax\edef\FBB@wd{\the\hsize}\fi\fi + \vbox\bgroup\vskip\FBaskip\ifx\flrow@to\empty\else\hsize\FBB@wd\fi + \ifx\flrow@to\empty\else + \hb@xt@\hsize{\vbox{\settowidth\@tempdima + {{\FRleftmargin}{\FRrightmargin}}{\advance\hsize-\@tempdima + \settowidth\leftskip\FRleftmargin\@@FRabove}}\hss}\unskip + \fi + \hbox\flrow@to\bgroup\let\FBiffloatrow\@firstoftwo\FRleftmargin\begingroup % \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@-1% - \settowidth\@tempdima{{\FRleftmargin}{\FRrightmargin}}% - \advance\Xhsize-\@tempdima - \settowidth\@tempdima{\floatrowsep}% - \advance\Xhsize-\count@\@tempdima - \@tempdimb\Xhsize\divide\@tempdimb#1% + \Xhsize\hsize\count@#1\advance\count@\m@ne + \settowidth\@tempdima{{\FRleftmargin}{\FRrightmargin}}\advance\Xhsize-\@tempdima + \settowidth\@tempdima{\floatrowsep}\advance\Xhsize-\count@\@tempdima + \@tempdimb\Xhsize\Zhsize\Xhsize\divide\@tempdimb#1\relax\FB@wd\@tempdimb % \end{macrocode} -% Here goes recounted |\hsize|. +% Here goes recalculated |\hsize|. % \begin{macrocode} - \FB@wd\@tempdimb\hsize\@tempdimb\ignorespaces} + \hsize\@tempdimb\ignorespaces} % \end{macrocode} % Macro for float row end. % \begin{macrocode} \def\endfloatrow{\ifdim\lastskip>\z@\unskip\fi \endgroup\FRrightmargin\egroup%h box - \global\let\FBiffloatrow\iffalse - \hb@xt@\hsize{\vbox{\settowidth\@tempdima{{\FRleftmargin}{\FRrightmargin}}{\advance\hsize-\@tempdima - \settowidth\leftskip\FRleftmargin\@@FRbelow}}\hss}% + \ifx\flrow@to\empty\else + \let\FBiffloatrow\@secondoftwo\relax + \hb@xt@\hsize{\vbox{\settowidth\@tempdima + {{\FRleftmargin}{\FRrightmargin}}{\advance\hsize-\@tempdima + \settowidth\leftskip\FRleftmargin\@@FRbelow}}\hss}% + \fi \vskip\FBbskip\gdef\FBaskip{\z@}\gdef\FBbskip{\z@}\egroup%v box \global\FBf@max\z@\global\FBo@max\z@\global\FBc@max\z@ \gdef\begin@FBBOX{\vbox\bgroup}\gdef\end@FBBOX{\egroup}} @@ -7301,24 +8316,17 @@ % % \begin{environment}{subfloatrow}\label{subfloatrow} % Environment for placing beside subfloats. It is simpler than -% \env{floatrow}. First go counter of floats (here it is local) +% |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 in main package body} -% \begin{macrocode} -\newcommand\subfloatrow[1][2]{\c@FRobj=#1%local - \ifdim\parindent<\z@\leavevmode\else\noindent\fi\hbox\bgroup - \let\FBiffloatrow\iftrue - \Xhsize\hsize\count@#1\advance\count@-1% - \settowidth\@tempdima{\subfloatrowsep}\let\floatrowsep\subfloatrowsep - \advance\Xhsize-\count@\@tempdima - \@tempdimb\Xhsize\divide\@tempdimb#1% - \hsize\@tempdimb\ignorespaces\killfloatstyle} -% \end{macrocode} -% Macro for sub float row end. +% \changes{v0.2a}{2007/08/24}{The \cmd{\subfloatrow} moved from \package{fr-subfig} +% in main package body} % \begin{macrocode} -\def\endsubfloatrow{\ifdim\lastskip>\z@\unskip\fi - \egroup\@ifundefined{adjustsubfloats}{}\adjustsubfloats - } +\newenvironment{subfloatrow}{\captionsetup{subtype}\@nameuse{subfloatrow*}}{\@nameuse{endsubfloatrow*}} +\newenvironment{subfloatrow*}[1][2]{\let\flrow@to\empty + \let\Xhsize\sXhsize\let\Zhsize\sZhsize\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} % @@ -7327,10 +8335,36 @@ \newcommand\subfloatrowsep{\hskip\columnsep} % \end{macrocode} % -% The caption label only. Commented % \begin{macrocode} -%\newcommand\captionlabel[1]{% -% \def\@makecaption##1##2{\hbox{\caption@@@make{##1}{##2}}}\caption{#1}} +\@ifdefinable\FR@ifuseCommonHeight{\let\FR@ifuseCommonHeight\@secondoftwo} +\newcommand\CommonHeightRow[2]{\def\CommonHeight{#1}\setbox\z@\hbox{\FR@loc@#2}% + \ifcase\floatbox@depth\def\@tempa{\Xhsize}\def\@tempb{\Zhsize}\or + \def\@tempa{\sXhsize}\def\@tempb{\sZhsize}\fi + \FR@calc@CommonHeight#2} +%\newcommand\UseCommonHeight[1]{\let\FR@ifuseCommonHeight\@firstoftwo\def\CommonHeight{#1}} +\newdimen\FR@Zunitlength +% \end{macrocode} +% The width of row, occupied by graphics divided in |.5pt| segments (|131072|). +% (To get |1pt| segment the |\count@| value must be divided by |65536|.) +% \begin{macrocode} +\newcommand\FR@calc@CommonHeight{% + \@tempdima\@tempb\advance\@tempdima-\@tempa + \count@\@tempdima\relax\divide\count@131072\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 |.5pt| segments. +% \begin{macrocode} + \count@\@tempdima\relax\divide\count@131072\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} @@ -7362,9 +8396,7 @@ \newcommand\BottomFloatBoxes{\CADJfalse\OADJfalse \buildFBBOX{\vbox\bgroup}{\vskip\z@\egroup}} % \end{macrocode} -% Restoring of plain behavior of boxes in \env{floatrow}. -% \changes{v0.1e}{2005/03/22}{Added \cmd{\PlainFloatBoxes} for restoring -% plain behavior of boxes.} +% Restoring of plain behavior of boxes in |floatrow|. % \begin{macrocode} \newcommand\PlainFloatBoxes{% \gdef\begin@FBBOX{\vbox\bgroup}\gdef\end@FBBOX{\egroup}} @@ -7384,25 +8416,24 @@ % \begin{macro}{\renewskiptocommand} % \begin{macro}{\newlengthtocommand} % \begin{macro}{\renewlengthtocommand} -% \changes{v0.1p}{2007/06/24}{Added substitution commands for usage instead skip -% or dimension parameters.} % 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} -\providecommand\newdimentocommand [3]{% +\def\newdimentocommand #1#2#3{% #1\@tempdima{#3}\@ifdefinable#2{\xdef#2{\the\@tempdima}}} -\providecommand\renewdimentocommand[3]{% +\def\renewdimentocommand#1#2#3{% #1\@tempdima{#3}\xdef#2{\the\@tempdima}} -\providecommand\newskiptocommand [3]{% +\def\newskiptocommand #1#2#3{% #1\@tempskipa{#3}\@ifdefinable#2{\xdef#2{\the\@tempskipa}}} -\providecommand\renewskiptocommand[3]{% +\def\renewskiptocommand #1#2#3{% #1\@tempskipa{#3}\xdef#2{\the\@tempskipa}} % \end{macrocode} +% The company to standard |\newlength| command. % \begin{macrocode} -\providecommand\newlengthtocommand{\newskiptocommand} -\providecommand\renewlengthtocommand{\renewskiptocommand} +\def\newlengthtocommand{\newskiptocommand} +\def\renewlengthtocommand{\renewskiptocommand} % \end{macrocode} % \end{macro} % \end{macro} @@ -7419,30 +8450,22 @@ %<*floatsetup> % \end{macrocode} % -% \subsection{Float settings stuff} +% \subsection{Float Settings Stuff} % -% \subsubsection{Definitions analogous to \package{caption}'s ones} +% \FRorisubsubsection{Definitions Analogous to The \package{caption}'s Ones} % -% The next bundle of definitions follow \package{caption} package macros -% to organize analogous mechanism of settings. -% -% \changes{v0.1f}{2005/06/14}{The macro \cmd{\flrow@ifinlist} -% deleted---it doubles \cmd{\caption@ifinlist} work.} % % \begin{macro}{\flrow@setbool} -% Macro analogous to |\caption@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[2]{% - \caption@ifinlist{#2}{1,true,yes,on}{\let#1\iftrue - }{\caption@ifinlist{#2}{0,false,no,off}{\let#1\iffalse - }{\flrow@error{Undefined boolean value `#2'}% - }}} +\newcommand*\flrow@setbool[1]{% + \expandafter\caption@set@bool\csname FR@if#1\endcsname} % \end{macrocode} % \end{macro} % -% \changes{v0.1f}{2005/06/14}{The macro \cmd{\l@addto@macro} -% deleted---it repeats \package{caption} package's definition.} -% % \subsubsection{Defining Stuff for Float Layout Settings} % % \begin{macro}{\floatsetup} @@ -7459,26 +8482,14 @@ % \end{macrocode} % \end{macro} % -% \changes{v0.1k}{2007/01/20}{\cmd{\caption@setkeys[floatrow]} instead of -% \cmd{\setkeys} (AS).} % \begin{macro}{\flrow@setup} % \begin{macro}{\flrow@esetup} % \begin{macro}{\flrow@settype} % Macros analogous to |\caption@setup|, |\caption@esetup| and -% |\caption@setoptions|. -% \begin{macrocode} -%\@ifundefined{caption@keydepth}{\@tempswatrue}{\@tempswafalse}% -%\if@tempswa -% \def\flrow@setup{\setkeys{floatrow}}% -% \@ifundefined{caption@setkeys}{}% -% {\let\flrow@caption@setkeys\caption@setkeys}% -% \def\caption@setkeys[#1]#2{\setkeys{#2}}% -% \AtEndOfPackage{\@ifundefined{flrow@caption@setkeys}{}% -% {\def\caption@setkeys\flrow@caption@setkeys -% \let\flrow@caption@setkeys\undefined}}% -%\else - \def\flrow@setup{\caption@setkeys[floatrow]{floatrow}} -%\fi +% |\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}{}% @@ -7490,23 +8501,23 @@ % % \begin{macro}{\flrow@setlist} % \begin{macro}{\flrow@FClist} -% This macro declares list of float settings (like \texttt{widefloat}, +% This macro declares list of float and caption settings (like |widefloat|, % {rotfloat} etc.) -% \changes{v0.1f}{2005/06/14}{Added \cmd{\flrow@capsetup} (AS).} -% \changes{v0.1f}{2005/06/14}{The \cmd{\caption@setposition} settings -% moved here (AS).} % \begin{macrocode} \newcommand\flrow@setlist[1]{\@flrow@setlist#1{tmpset};% - \FR@ifCST\flrow@capsetup\fi\@cap@setlist#1;% + \FR@ifCST{\flrow@capsetup}\relax\@cap@setlist#1;% \caption@setposition{\FBifcaptop t\else b\fi}} \newcommand\@flrow@setlist[1]{\flrow@settype{#1}\@ifnextchar;\@gobble \@flrow@setlist} % \end{macrocode} -% \changes{v0.1f}{2005/06/14}{The \cmd{\@cap@setlist} redefined (AS).} +% 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} -\@ifundefined{caption@setoptions}{\let\caption@setoptions\caption@settype}{} \newcommand\@cap@setlist[1]{\caption@setoptions{#1}% \@ifnextchar;{\let\caption@setfloattype\@gobble\@gobble}\@cap@setlist} % \end{macrocode} @@ -7518,16 +8529,13 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@nameundef} % \begin{macro}{\clearfloatsetup} -% \changes{v0.1f}{2005/06/14}{The macro \cmd{\@nameundef} -% deleted---it repeats \package{caption} package's definition.} -% Removes all settings for chosen type of float. +% 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} -% \end{macro} % % \begin{macro}{\DeclareFROpt} % The |\DeclareCaptionOption|-analog.\\ @@ -7545,40 +8553,30 @@ \@onlypreamble\DeclareFROpt \@onlypreamble\flrow@declopt % \end{macrocode} -% (The default settings. Commented). -% \begin{macrocode} -%\DeclareFROpt{default}[]{% -% \flrow@setup{% -% style=plain,capposition=bottom, -% margins=centering,objectset=centering, -% font=default,footfont=default, -% }} -% \end{macrocode} % \end{macro} % % \begin{macro}{rawfloats} % The default behavior of floats is like in \package{float}-like mode after % |\restylefloat|. -% \changes{v0.1k}{2007/05/24}{Key for raw float mode added.} % \begin{macrocode} -\let\FR@ifrawfloats\iffalse +\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{\FR@ifrawfloats}{#1}} +\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} -\let\FR@ifdoubleaswide\iffalse +\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{\FR@ifdoubleaswide}{#1}} +\DeclareFROpt{doublefloataswide}[0]{\flrow@setbool{doubleaswide}{#1}} % \end{macrocode} % \end{macro} % @@ -7586,16 +8584,16 @@ % The anchored float has list penalties around. If there are not blank line or % |\par| command, next paragraph starts without indentation. % \begin{macrocode} -\let\FR@iffloatHaslist\iffalse +\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{\FR@iffloatHaslist}{#1}} +\DeclareFROpt{floatHaslist}[0]{\flrow@setbool{floatHaslist}{#1}} % \end{macrocode} % \end{macro} % -% \subsubsection{Declaring of float styles} +% \subsubsection{Declaring of Float Styles} % % \begin{macro}{\DeclareFloatStyle} % Declares float style using |\floatsetup| mechanism. @@ -7608,8 +8606,7 @@ \@onlypreamble\DeclareFloatStyle % \end{macrocode} % The definition of command which defines settings for new float style. -% \changes{v0.1f}{2005/06/14}{Added \cmd{\caption@setoptions} in definition -% of \cmd{\flrow@capsetup} (AS).} +% 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} @@ -7623,9 +8620,7 @@ \flrow@esetup{\csname flrow@sty@#1\endcsname}}} % \end{macrocode} % Declarations of \package{float} package's emulating styles and new -% \package{floatrow} styles. -% \changes{v0.1f}{2005/06/14}{The bottom caption position moved in -% \cmd{\FBstyle@reset} as default.} +% \package{floatrow} styles. The |plain| style is consists of default settings. % \begin{macrocode} \DeclareFloatStyle{plain}{} \DeclareFloatStyle{plaintop}{capposition=top} @@ -7640,6 +8635,17 @@ 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} @@ -7649,16 +8655,17 @@ % % 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---\texttt{ruled}. +% style to \package{float} package's style---|ruled|. % \begin{macrocode} -\let\FR@ifCST\iftrue +\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{\FR@ifCST}{#1}} +\DeclareFROpt{relatedcapstyle}[0]{\flrow@setbool{CST}{#1}} % \end{macrocode} % \end{macro} % @@ -7669,9 +8676,6 @@ % 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|). -% \changes{v0.1f}{2005/06/14}{Removed \texttt{footfont} key.} -% \changes{v0.1f}{2005/06/14}{Removed \cmd{\AtBeginDocument}'s check---the -% \cmd{\captionsetup} is always known.} % \begin{macrocode} \DeclareFROpt{font}{\flrow@setfont{font}{#1}} \DeclareFROpt{footfont}{\captionsetup[floatfoot]{font={#1}}} @@ -7698,12 +8702,11 @@ % \end{macro} % % \begin{macro}{\DeclareFloatFont} -% The |\DeclareCaptionFont|-twin.\\ +% The |\DeclareCaptionFont|-twin (uses +% caption's key-val settings).\\ % It's usage:\\ % |\DeclareFloatFont{|\meta{name}|}{|\meta{code}|}|. % This macro is allowed only in preamble. -% \changes{v0.1f}{2005/06/14}{The code of \cmd{\DeclareFloatFont} uses -% caption's key-val settings.} % \begin{macrocode} \let\DeclareFloatFont\DeclareCaptionFont \@onlypreamble\DeclareFloatFont @@ -7714,29 +8717,19 @@ % The |\caption@setfont|-analog.\\ % It's usage:\\ % |\flrow@setfont{|\meta{command}|}{|\meta{keyval-list of names}|}|. -% \changes{v0.1f}{2005/06/14}{The code of \cmd{\flrow@setfont} uses -% caption's key-val settings.} -% \changes{v0.1p}{2007/06/24}{Changed definition of \cmd{\flrowsetfont} -% for compatibility with caption (AS).} -% \begin{macrocode} -%\newcommand*\flrow@setfont[2]{% -% \let\caption@tempa\@empty -% \begingroup\caption@setkeys[floatrow]{caption@fnt}{#2}\endgroup -% \expandafter\let\csname float#1\endcsname\caption@tempa} +% \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} -% \changes{v0.1f}{2005/06/14}{\cmd{\DeclareFloatFont} bundle -% removed---\package{floatrow} package uses \file{caption3} settings.} % % \subsubsection{Declaring of Caption Position} % % \begin{macro}{capposition} % Keys for defining caption position in float box. -% \changes{v0.1f}{2005/06/14}{Added \texttt{position} key as analog name -% to the same key in \cmd{\captionsetup} stuff.} % \begin{macrocode} \DeclareFROpt{capposition}{\flrow@cappos{#1}} \DeclareFROpt{position}{\flrow@cappos{#1}} @@ -7764,7 +8757,6 @@ % The positions for captions in float box. There are defined % traditional place of captions at the bottom of % object---caption box. -% \changes{v0.1f}{2005/06/14}{\cmd{\caption@position} deleted.} % \begin{macrocode} \let\FBifcaptop\iffalse \newcommand\captop{\let\FBifcaptop\iftrue} @@ -7794,7 +8786,6 @@ % \begin{macro}{\capbeside} % \begin{macro}{\nocapbeside} % There is flag and commands for printing caption and object beside. -% \changes{v0.2a}{2007/08/24}{Removed \cmd{\global}.} % \begin{macrocode} \let\FBifcapbeside\iffalse \newcommand\capbeside{\let\FBifcapbeside\iftrue} @@ -7809,17 +8800,13 @@ % \begin{macro}{capbesideframe} % This boolean key declares whether near beside caption stays framed % object. -% \changes{v0.1f}{2005/06/14}{Removed \texttt{besidecapframe} key.} % \begin{macrocode} -\DeclareFROpt{capbesideframe}[0]{\flrow@setbool{\FC@ifFBOX}{#1}} +\DeclareFROpt{capbesideframe}[0]{\flrow@setbool{FCBOX}{#1}} % \end{macrocode} % \end{macro} % % \begin{macro}{capbesidewidth} % This key defines width of beside caption. -% \changes{v0.1f}{2005/06/14}{Removed \texttt{besidecapwidth} key.} -% \changes{v0.1f}{2005/06/14}{Bug fix: the \cmd{\FCwidth} command defined -% here as \cmd{\relax}.} % \begin{macrocode} \DeclareFROpt{capbesidewidth}[1]{\flrow@FCc@wd{#1}} \let\FC@ifc@wd\iffalse @@ -7833,7 +8820,6 @@ % % \begin{macro}{capbesideposition} % Declares position of beside caption in document. -% \changes{v0.1f}{2005/06/14}{Removed \texttt{besidecapposition} key.} % \begin{macrocode} \DeclareFROpt{capbesideposition}{\flrow@scpos{#1}} % \end{macrocode} @@ -7855,23 +8841,28 @@ % \end{macrocode} % Declaring options. % \begin{macrocode} -\DeclareSCPos{left}{\def\@FC@hpos{\let\FBiffacing\iffalse\count@\@ne}} -\DeclareSCPos{right}{\def\@FC@hpos{\let\FBiffacing\iffalse\count@\z@}} -\DeclareSCPos{inside}{\def\@FC@hpos{\let\FBiffacing\iftrue - \count@\c@FBcnt}} -\DeclareSCPos{outside}{\def\@FC@hpos{\let\FBiffacing\iftrue - \count@\c@FBcnt\advance\count@\@ne}} +\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 |capbesideposition=bottom| +% Command for default key: |capbesideposition=bottom| % \begin{macrocode} \newcommand*\@FC@vpos{\count@\tw@} % \end{macrocode} -% Command for |capbesideposition=inside| +% 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\FBiffacing\iftrue\count@\c@FBcnt} +\newcommand*\@FC@hpos{\let\FR@iffacing\@secondoftwo\count@\@ne} % \end{macrocode} % \end{macro} % \end{macro} @@ -7964,32 +8955,34 @@ % \end{macro} % % \begin{macro}{\@FB@vpos} -% The vertical alignment of float objects in float row. -% \changes{v0.1h}{2006/06/16}{Changed \cmd{\vfill} to \cmd{\vss}-like code for vertical alignments} +% 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}% + \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} -\DeclareFROpt{facing}[1]{\flrow@setbool{\FBiffacing}{#1}} +\let\FR@iffacing\@secondoftwo +\DeclareFROpt{facing}[1]{\flrow@setbool{facing}{#1}} % \end{macrocode} % \end{macro} % -% \begin{macro}{\FBiffacing} % \begin{macro}{\FB@facing} -% Flag and command for \texttt{facing=}. +% Flag and command for |facing=|. % \begin{macrocode} -\let\FBiffacing\iffalse \newcommand\FB@facing{} % \end{macrocode} % \end{macro} @@ -8000,7 +8993,6 @@ % \begin{macro}{margins} % \begin{macro}{\flrow@FBAlign} % Declaring of option for |\floatbox| alignment and margins material. -% \changes{v0.1f}{2005/06/14}{Removed \texttt{floatmarginsset} key.} % \begin{macrocode} \DeclareFROpt{margins}{\flrow@FBAlign{#1}} % \end{macrocode} @@ -8024,9 +9016,10 @@ % \end{macrocode} % \end{macro} % -% Declaring of float box alignment. -% \changes{v0.1g}{2005/07/15}{Added settings for \cmd{\LTleft} and -% \cmd{\LTright} commands from \package{longtable} package.} +% 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}% @@ -8040,17 +9033,11 @@ % % \begin{macro}{\floatfacing} % Defines settings accordingly to left (even) or right (odd) pages. -% \changes{v0.1f}{2005/06/14}{Creation starred form for \cmd{\floatfacing} -% to use separate settings for building of beside caption layout and -% float environment margins.} +% 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]{\@tempswafalse - \FBiffacing\@tempswatrue\fi\if@twoside\@tempswatrue\fi - \if@tempswa - \ifodd\count@#1\else#2\fi - \else#2\fi} +\newcommand\floatfacing@[2]{\ifodd\count@#1\else#2\fi} % \end{macrocode} % \end{macro} % @@ -8072,12 +9059,10 @@ % |\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. -% \changes{v0.1f}{2005/06/14}{Removed \cmd{\FBiffacing} flag from -% \cmd{\FB@@mset} macro.} % \begin{macrocode} \newcommand\FB@mset{\@ifstar{\FB@mset@}{\FB@@mset}} \newcommand\FB@mset@[2]{% - \def\FB@facing{\let\FBiffacing\iftrue\count@\c@FBcnt}% + \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{}% @@ -8109,8 +9094,6 @@ % \begin{macro}{objectset} % \begin{macro}{justification} % Declaring of option for float object contents' alignment. -% \changes{v0.1f}{2005/06/14}{Added key \texttt{justification} -% as analog to \cmd{\captionsetup} stuff.} % \begin{macrocode} \DeclareFROpt{objectset}{\flrow@FBoAlign{#1}} \DeclareFROpt{justification}{\flrow@FBoAlign{#1}} @@ -8119,25 +9102,20 @@ % \end{macro} % % \begin{macro}{\DeclareObjectSet} -% The |\DeclareCaptionJustification|-twin.\\ +% 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. -% \changes{v0.1f}{2005/06/14}{The code of \cmd{\DeclareObjectSet} -% uses caption's key-val settings.} % \begin{macrocode} \let\DeclareObjectSet\DeclareCaptionJustification \@onlypreamble\DeclareObjectSet % \end{macrocode} % \end{macro} -% \changes{v0.1f}{2005/06/14}{\cmd{\DeclareObjectSet} bundle -% removed---\package{floatrow} -% package uses \file{caption} settings.} % % \begin{macro}{\flrow@FBoAlign} -% |\caption@setjustification|-analog.\\ -% Command for \texttt{objectset=} -% \changes{v0.1f}{2005/06/14}{The code of \cmd{\flrow@FBoAlign} -% uses caption's key-val settings.} +% |\caption@setjustification|-analog (uses +% caption's key-val settings).\\ +% Command for |objectset=| % \begin{macrocode} \newcommand*\flrow@FBoAlign[1]{% \@ifundefined{caption@hj@#1}% @@ -8159,8 +9137,7 @@ % \subsubsection{Defining Float Width} % % \begin{macro}{floatwidth} -% The float width settings mainly for plain float environments. -% \changes{v0.1f}{2005/06/14}{Removed \texttt{besidecapsep} key.} +% The float width settings mainly for plain floating environments. % \begin{macrocode} \DeclareFROpt{floatwidth}{\flrow@FBo@wd{#1}} \let\FC@ifo@fil\iffalse @@ -8168,7 +9145,7 @@ % \end{macro} % \begin{macro}{\filFCOhsize} % \begin{macro}{\nofilFCOhsize} -% Flags and commands for \texttt{floatwidth=}. +% Flags and commands for |floatwidth=|. % \begin{macrocode} \newcommand\filFCOhsize{\let\FC@ifo@fil\iftrue} \newcommand\nofilFCOhsize{\let\FC@ifo@fil\iffalse} @@ -8177,7 +9154,7 @@ % \end{macro} % \end{macro} % \begin{macro}{\flrow@FBo@wd} -% \changes{v0.1f}{2005/06/14}{Macro uses \package{caption} macros.} +% Settings for the width of object. % \begin{macrocode} \newcommand\flrow@FBo@wd[1]{% \caption@ifinlist{#1}{none,sidefil}{\filFCOhsize @@ -8191,11 +9168,10 @@ % \begin{macro}{capbesidesep} % Option |floatrowsep| sets separations for beside float boxes % in float row. -% \changes{v0.1f}{2005/06/14}{Removed \texttt{besidecapsep} key.} % \begin{macrocode} \DeclareFROpt{floatrowsep}{\flrow@setFRsep\floatrowsep{#1}} % \end{macrocode} -% Option |subfloatrowsep| sets separations for beside captions. +% Option |subfloatrowsep| sets separations for beside captions and objects. % \begin{macrocode} \DeclareFROpt{subfloatrowsep}{\flrow@setFRsep\subfloatrowsep{#1}} % \end{macrocode} @@ -8210,31 +9186,29 @@ % \begin{macro}{\flrow@setFRsep} % \begin{macro}{\flrow@setFCsep} % Next macros declare material, defined for usage as separator of -% both float boxes in \env{floatrow} environment and for beside +% both float boxes in |floatrow| environment and for beside % object and caption. % -% The |\DeclareCaptionLabelSeparator|-twin.\\ +% The |\DeclareCaptionLabelSeparator|-twin (uses +% caption's key-val settings).\\ % This macro is allowed only in preamble. -% \changes{v0.1f}{2005/06/14}{Macro is \cmd{\let} to -% \cmd{\DeclareCaptionLabelSeparator}.} % \begin{macrocode} \let\DeclareFloatSeparators\DeclareCaptionLabelSeparator \@onlypreamble\DeclareFloatSeparators % \end{macrocode} % -% The |\caption@setlabelseparator|-analog.\\ +% 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. -% \changes{v0.1f}{2005/06/14}{Macro uses \package{caption} macros.} % \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. -% \changes{v0.1f}{2005/06/14}{The \texttt{quad} and \texttt{none} -% deleted (repeated from \package{caption}).} +% 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} @@ -8266,8 +9240,6 @@ % \begin{macro}{postcode} % \begin{macro}{rowpostcode} % Keys for building of float style (rules). -% \changes{v0.1f}{2005/06/14}{Removed \texttt{Precode} and -% \texttt{Postcode} keys.} % \begin{macrocode} \DeclareFROpt{precode}{\flrow@FBrule\@@FRabove\@@FBabove{#1}} \DeclareFROpt{rowprecode}{\flrow@FRrule\@@FRabove\@@FBabove{#1}} @@ -8289,9 +9261,6 @@ % \begin{macrocode} \newcommand\DeclareFloatVCode[2]{\@namedef{flrow@FBr@#1}{#2}} \@onlypreamble\DeclareFloatVCode -\newcommand\DeclareFloatPrecode{\DeclareFloatVCode} -\newcommand\DeclareFloatMidcode{\DeclareFloatVCode} -\newcommand\DeclareFloatPostcode{\DeclareFloatVCode} % \end{macrocode} % \end{macro} % @@ -8311,7 +9280,7 @@ \newcommand*\flrow@FRrule[3]{% \@ifundefined{flrow@FBr@#3}% {\flrow@error{Undefined rule `#3'}}% - {\def#2{\FBiffloatrow\else\@nameuse{flrow@FBr@#3}\fi}% + {\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. @@ -8339,23 +9308,21 @@ % and between caption and float. % % \begin{macro}{\FBstyle@reset} -% Reset of all used layout settings. -% \changes{v0.1f}{2005/06/14}{Added \cmd{\captop} macro as default caption -% position.} -% \changes{v0.2a}{2007/08/24}{Removed \cmd{\gdef}.} +% Reset of all used layout settings. All settings localized---that allows +% usage |\floatbox| inside |\floatbox|. % \begin{macrocode} \newcommand\FBstyle@reset{\let\FRifFBOX\iffalse\OADJfalse\CADJfalse\capbot \def\@@FBskip{\vskip\captionskip}\def\@@FRabove{}\def\@@FRbelow{}% \def\@@FBabove{}\def\@@FBbelow{}% \def\FB@Bset{}\def\FB@frame{}\def\FBo@frame{}% \def\FBo@wadj{}\def\FBo@hadj{}\def\FB@wadj{}\def\FB@hadj{}} -\newcommand\@@FRabove{}\newcommand\@@FRbelow{} -\newcommand\@@FBabove{}\newcommand\@@FBbelow{} \newcommand\@@FBskip{\vskip\captionskip} -\newcommand\FB@frame{}\newcommand\FBo@frame{} -\newcommand\FBo@wadj{}\newcommand\FBo@hadj{} -\newcommand\FB@wadj{}\newcommand\FB@hadj{} -\newcommand\FB@Bset{} +\@ifdefinable\@@FRabove{}\@ifdefinable\@@FRbelow{} +\@ifdefinable\@@FBabove{}\@ifdefinable\@@FBbelow{} +\@ifdefinable\FB@frame{}\@ifdefinable\FBo@frame{} +\@ifdefinable\FBo@wadj{}\@ifdefinable\FBo@hadj{} +\@ifdefinable\FB@wadj {}\@ifdefinable\FB@hadj{} +\@ifdefinable\FB@Bset {} % \end{macrocode} % \end{macro} % @@ -8379,9 +9346,7 @@ % \end{macro} % % \begin{macro}{\flrow@fr@round} -% Command for \texttt{framearound}. -% \changes{v0.1f}{2005/06/14}{Macro uses \package{caption} macro -% \cmd{\caption@ifinlist}.} +% Command for |framearound|. % \begin{macrocode} \newcommand*\flrow@fr@round[1]{% \caption@ifinlist{#1}{object,contents}{\let\FRifFBOX\iftrue @@ -8397,9 +9362,9 @@ % \begin{macro}{framefit} % \begin{macro}{frameset} % This boolean key defines whether frame size fits to current |\hsize|. -% \changes{v0.1f}{2005/06/14}{Removed \texttt{framereduce} key.} % \begin{macrocode} -\DeclareFROpt{framefit}[0]{\flrow@setbool{\FRifFIT}{#1}} +\let\FR@ifFIT\@secondoftwo +\DeclareFROpt{framefit}[0]{\flrow@setbool{FIT}{#1}} % \end{macrocode} % This key defines parameters for chosen frame. % \begin{macrocode} @@ -8411,13 +9376,12 @@ % \begin{macro}{\@@setframe} % Macro which prepares box settings accordingly to predefined float layout. % \begin{macrocode} -\let\FRifFIT\iffalse \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}{\FRifFIT\@nameuse{FB@\FB@B@ @reset}\FB@Bset - \@nameuse{FB@\FB@B@ @adj}\fi}% + \@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}}} % \end{macrocode} @@ -8435,9 +9399,8 @@ % |\hsize|; third defines default values of compensating material. % \begin{macrocode} \newcommand\FB@fbox@frame[1]{\hbox{% - \FRifFIT\else\kern-\fboxrule\kern-\fboxsep\fi - \fbox{#1}% - \FRifFIT\else\kern-\fboxrule\kern-\fboxsep\fi}\ignorespaces} + \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} @@ -8445,18 +9408,41 @@ % \end{macro} % \end{macro} % -% ^^A\subsection{Default Settings} +% \subsection{Macros for Color Frame} % -% \begin{macro}{\flrow@setdefault} -% (Macros analogous to |\caption@setdefault|. Commented.) +% \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\flrow@setdefault{\floatsetup{% -% style=plain,capposition=bottom, -% margins=centering,objectset=centering, -% font=default,footfont=default, -% }} +\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} +% +% This key defines parameters (definition) for color frame. +% \begin{macrocode} +\DeclareFROpt{colorframeset}{\flrow@fcolorbox{#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*\DeclareColorBox[2]{% + \@ifundefined{color}{\flrow@error + {For usage of colored frames\MessageBreak load color package}}% + {\long\@namedef{flrow@fcolorbox@#1}{#2}}} +% \end{macrocode} % % \subsubsection{Defining Float Skips} % @@ -8464,9 +9450,7 @@ % \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). -% \changes{v0.1f}{2005/06/14}{Defining also standard \cmd{\abovecaptionskip} -% for compatibility with \package{caption}'s \cmd{\captionof}.} +% (footnote or other foot text). The |\abovecaptionskip| used for compatibility with caption. % \begin{macrocode} \DeclareFROpt{captionskip}{\def\captionskip{#1}% \setlength\abovecaptionskip{#1}} @@ -8494,7 +9478,7 @@ % % \begin{macro}{footnoterule} % \begin{macro}{\flrow@footrule} -% The definitions of |\footnoterule| inside float environment. +% The definitions of |\footnoterule| inside floating environment. % This macro is allowed only in preamble. % \begin{macrocode} \DeclareFROpt{footnoterule}{\flrow@footrule{#1}} @@ -8547,8 +9531,8 @@ % % Options for loading of fancy float styles. Commented. % \begin{macrocode} -\let\FR@iffancy\iffalse -\DeclareFROpt{fancyboxes}{\flrow@setbool{\FR@iffancy}{#1}} +\let\FR@iffancy\@secondoftwo +\DeclareFROpt{fancyboxes}{\flrow@setbool{fancy}{#1}} % \end{macrocode} % % \subsubsection{New Float Type Setup} @@ -8556,7 +9540,6 @@ % \begin{macro}{\DeclareFNOpt} % Declaring new float type like |\newfloat| does. % These macros allowed only in preamble. -% \changes{v0.1f}{2005/06/14}{Redefined \cmd{\DeclareFNOpt} (AS).} % \begin{macrocode} \newcommand\DeclareFNOpt{% \@ifstar{\flrow@declfnopt\AtBeginDocument} @@ -8565,11 +9548,9 @@ #1{\undefine@key{newfloat}{#2}}\define@key{newfloat}{#2}} \@onlypreamble\DeclareFNOpt % \end{macrocode} -% \begin{macrocode} -\newcommand\flnew@setdefault{\caption@setkeys[floatrow]{newfloat} - {placement=tbp,fileext=lox}} -% \end{macrocode} -% The |\newtoks| for defining of float environments (using +% \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} @@ -8577,6 +9558,10 @@ % \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}% @@ -8584,16 +9569,13 @@ \addtocounter{float@type}{\value{float@type}}% \@namedef{#1name}{#1}\newcounter{#1}% \expandafter\edef\csname fnum@#1\endcsname - {\expandafter\noexpand\csname #1name\endcsname\ + {\expandafter\noexpand\csname #1name\endcsname\nobreakspace \expandafter\noexpand\csname the#1\endcsname}% - \@namedef{the#1}{\arabic{#1}}% - \flnew@setdefault\caption@setkeys[floatrow]{newfloat}{#2}% - \let\FR@tmp=\relax + \@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 -% \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}% -% \addtocounter{float@type}{\value{float@type}} - } + \@tempa} \@onlypreamble\DeclareNewFloatType % \end{macrocode} % Key for placement defining. @@ -8634,14 +9616,9 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{relatedcapstyle} -% The flag whether to use related caption style to float layout. -% \begin{macrocode} -\DeclareFNOpt*{relatedcapstyle}[0]{\flrow@setbool{\FR@ifCST}{#1}} -% \end{macrocode} -% \end{macro} +%\changes{v0.2b}{2007/10/24}{The double definition of `relatedcapstyle' option deleted} % -% \subsubsection{Processing of floatsetup options} +% \subsubsection{Processing of Floatsetup Options} % % \begin{macro}{\ProcessOptionsWithKV} % As in caption style options are processed with usage of the @@ -8696,7 +9673,7 @@ \let\CurrentOption\@empty \AtEndOfPackage{\let\@unprocessedoptions\relax}} \ProcessOptionsWithKV{floatrow} -\FR@iffancy\RequirePackage{fr-fancy}\fi +\FR@iffancy{\RequirePackage{fr-fancy}}\relax \let\ProcessOptionsWithKV\undefined % \end{macrocode} % \end{macro} @@ -8708,12 +9685,10 @@ % \begin{macrocode} \AtBeginDocument{ \FR@ifrawfloats - \let\FR@tmp\flrow@Raw@restyle - \else - \flrow@restyle{table}\flrow@restyle{figure}% - \let\FR@tmp\flrow@restyle - \fi - \the\flrow@types + {\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} @@ -8722,9 +9697,6 @@ % % \end{macrocode} % -% \changes{v0.1f}{2005/06/14}{The support for non-caption usage deleted.} -% \changes{v0.1f}{2005/06/14}{The support for obsolete macros deleted.} -% % \begin{macrocode} %<*frfancy> \RequirePackage{fancybox} @@ -8732,48 +9704,7 @@ % % \subsection{Additional Definitions for Fancy Frames} % -% \subsection{Macros for Color Frame} -% -% \begin{macro}{\FB@colorbox@frame} -% \begin{macro}{\FB@colorbox@adj} -% \begin{macro}{\FB@colorbox@reset} -% \begin{macro}{\setcolorframe} -% 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. -% \begin{macrocode} -\newcommand\FB@colorbox@frame[1]{\hbox{% - \FRifFIT\else\kern-\fboxrule\kern-\fboxsep\fi - \FB@fcolorbox{#1}% - \FRifFIT\else\kern-\fboxrule\kern-\fboxsep\fi}\ignorespaces} -\@ifdefinable\FB@colorbox@adj{\let\FB@colorbox@adj\FB@fbox@adj} -\newcommand\FB@colorbox@reset{\fboxsep3\p@\fboxrule.4\p@} -\newcommand\FB@colorbox{\fbox} -% \end{macrocode} -% Definition of color box (frame and fill color) -% \begin{macrocode} -\newcommand\setcolorframe[1]{\def\FB@fcolorbox{#1}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% This key defines parameters (definition) for color frame. -% \begin{macrocode} -\DeclareFROpt{colorframeset}{\flrow@fcolorbox{#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*\DeclareColorBox[2]{% - \@ifundefined{color}{\flrow@error - {For usage of colored frames\MessageBreak load color package}}% - {\long\@namedef{flrow@fcolorbox@#1}{#2}}} -% \end{macrocode} -% -% \subsection{Macros for Fancy Frames} +% \FRorisubsubsection{Macros for Fancy Frames} % % \begin{macro}{\FB@wshadowbox} % The variant of shadowbox with white contoured shadow. @@ -8801,9 +9732,8 @@ % |\hsize|; third defines default values of compensating material. % \begin{macrocode} \newcommand\FB@shadowbox@frame[1]{\hbox{% - \FRifFIT\else\hskip-\fboxrule\hskip-\fboxsep\fi - \FBs@raise{\shadowbox{#1}}% - \FRifFIT\else\kern-\fboxrule\kern-\fboxsep\kern-\shadowsize\fi}} + \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@} @@ -8815,16 +9745,15 @@ % \begin{macro}{\FB@wshadowbox@frame} % \begin{macro}{\FB@wshadowbox@adj} % \begin{macro}{\FB@wshadowbox@reset} -% The definition for frame \texttt{wshadowbox}---similar to -% \texttt{shadowbox} from \package{fancybox}. +% 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{% - \FRifFIT\else\hskip-\fboxrule\hskip-\fboxsep\fi - \FBs@raise{\wshadowbox{#1}}% - \FRifFIT\else\kern-\fboxrule\kern-\fboxsep\kern-\shadowsize\fi}} + \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} @@ -8840,9 +9769,8 @@ % |\hsize|; third defines default values of compensating material. % \begin{macrocode} \newcommand\FB@doublebox@frame[1]{\hbox{% - \FRifFIT\else\kern-4.75\fboxrule\kern-.5pt\kern-\fboxsep\fi - \doublebox{#1}% - \FRifFIT\else\kern-4.75\fboxrule\kern-.5pt\kern-\fboxsep\fi}} + \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@} @@ -8901,7 +9829,7 @@ %<*floatpagestyle> % \end{macrocode} % -% \subsection{Empty Floating page} +% \subsection{Empty Floating Page} % % Here goes small sneaky-tricky style to put desired page style % for one floating page. @@ -8947,9 +9875,8 @@ % \end{macro} % % \begin{macro}{\@outputpage} -% Edited \LaTeX{} core macro (release 2001/06/01) -% \changes{v0.1h}{2005/10/02}{Optimization: the patch instead of -% redefinition of \cmd{\@outputpage} command} +% 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} @@ -8962,9 +9889,6 @@ % % \end{macrocode} % -% -% -% % \begin{macrocode} %<*listpen> % \end{macrocode} @@ -9041,12 +9965,43 @@ % \end{macro} % % \begin{macro}{\RestoreSpaces} -% \changes{v0.1b}{2007/05/24}{Adding definition of \cmd{\RestoreSpaces} command} +% \begin{macro}{\RemoveSpaces} % A simple command to turn off |\if@nobreak| flag. % \begin{macrocode} -\providecommand\RestoreSpaces{\@nobreakfalse} +\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} % @@ -9067,7 +10022,7 @@ %<*frforsubfig> % \end{macrocode} % -% \subsection{Support for \package{subfig} Package} +% \subsection{Support for The \package{subfig} Package} % % \changes{v0.2a}{2007/08/24}{Added compatibility check.} % \begin{macrocode} @@ -9096,11 +10051,6 @@ % % \begin{macro}{\adjustsubfloats} % The user command which loaded at the end of row of subcaptions. -% \changes{v0.1f}{2005/06/14}{Removed \cmd{\FB@subfloat} and -% \cmd{\FB@subcaption} definitions: the code for \env{subfloatrow} -% support placed in \package{subfig}'s definitions.} -% \changes{v0.1f}{2005/06/14}{The \cmd{\xdef} changed to local -% \cmd{\edef}.} % \begin{macrocode} \newcommand\adjustsubfloats{\@tempswafalse \ifCADJ\@tempswatrue\fi\ifOADJ\@tempswatrue\fi @@ -9114,9 +10064,9 @@ % \end{macrocode} % \end{macro} % -% \subsubsection{Small Correction of \package{subfig} Macro} +% \subsubsection{Small Correction of The \package{subfig} Macro} % -% There is a \package{subfig}'s macro with corrections to put +% 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{% @@ -9354,7 +10304,7 @@ % % Macro for creation of subfloat label only. That could be useful % for usage with \package{psfrag} package, placing labels inside -% \env{picture} environment, using in tabulars etc. +% |picture| environment, using in tabulars etc. % \begin{macrocode} \newcommand\subfloatlabel{\@ifnextchar[%] {\flrow@subfloatlabel}{\subfloat[]{}}} @@ -9370,8 +10320,14 @@ {\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[]{\label{#2}}\endgroup} + \subfloat[]{\FRsf@Flabel{#2}}\endgroup} % \end{macrocode} % % \begin{macrocode} @@ -9393,7 +10349,7 @@ %<*forlongtable> % \end{macrocode} % -% \subsection{Support for \package{longtable} Package} +% \subsection{Support for The \package{longtable} Package} % % First goes requirement of necessary packages. % \begin{macrocode} @@ -9403,8 +10359,6 @@ % % \subsubsection{Caption Width Settings} % -% \changes{v0.1g}{2005/07/15}{The \package{longtable} support moved inside -% \package{floatrow} package.} % 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 @@ -9417,11 +10371,8 @@ \renewcommand\LT@array{% % \end{macrocode} % Here are added settings for table font (similar to other table -% environments). -% \changes{v0.1j}{2006/07/24}{The \cmd{\belowcaptionskip} is set -% equal to \cmd{\captionskip}.} -% \changes{v0.1p}{2006/07/24}{Definition for table foot -% material: \cmd{\floatfoot}.} +% environments) skip after caption (\cmd{\belowcaptionskip} is set +% equal to \cmd{\captionskip}). % \begin{macrocode} \flrow@setlist{{table}{longtable}}\flrow@useLTcapwidth\normalfont\floatfont \belowcaptionskip\captionskip @@ -9442,14 +10393,18 @@ \def\LT@entry####1####2{\advance\LTcapwidth####2}\LT@save@row\relax \ifdim\LTcapwidth=\z@\else\global\LTcapwidth\LTcapwidth\fi \endgroup\fi}}% - \def\floatfoot@{%\par\kern-\normalbaselineskip\kern-\normallineskip - \vskip\floatfootskip\def\@captype{table}\floatfoot@box}% +% \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 defintions in the case of separate usage of \package{fr-longtable} package. % \begin{macrocode} \providecommand\floatfont{} \providecommand\floatfootskip{\skip\@mpfootins} @@ -9457,7 +10412,6 @@ \providecommand\floatfoot@box[1]{% % \end{macrocode} % The |\if@@FS| flag stored for \env{wrap...} environments. -% \changes{v0.1h}{2005/10/02}{Added setting for \cmd{\linewidth}} % \begin{macrocode} % \hsize\columnwidth\linewidth\columnwidth \@parboxrestore\reset@font\color@begingroup @@ -9471,14 +10425,13 @@ \caption@setoptions{floatfoot}% % \end{macrocode} % No captionlabel. -% \changes{v0.1k}{2007/05/24}{Added settings for emptied caption label} % \begin{macrocode} \captionsetup{labelformat=empty,labelsep=none}% \caption@@make{}{\FR@tmp#1\@finalstrut\strutbox}% \color@endgroup} % \end{macrocode} % -% The definition of caption width for \env{longtable} environment. +% The definition of caption width for |longtable| environment. % \begin{macrocode} \let\FBifLTcapwidth\@gobble \providecommand\caption@ifinlist[2]{% @@ -9489,22 +10442,29 @@ \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{LTcapwidthtotable}{\setLTcapwidth{table}} + \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} +% \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. @@ -9517,16 +10477,9 @@ \newcounter{FBLTpage} % \end{macrocode} % -% This command defines number of pages in current longtable. -% In current version defined by hand for -% each table. The default number is~2. -% \begin{macrocode} -%\newcommand\LTlastpage{2} -% \end{macrocode} -% % Storing of original definition of |\longtable| macro. -% In new definition was is added counting of longtable's pages -% with \texttt{FBLTpage} counter defined before. +% 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{% @@ -9535,7 +10488,7 @@ % \end{macrocode} % % Storing original definition of |\LT@ouput| macro. -% Here, in new definition, added increasing of \texttt{FBLTpage}. +% 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} @@ -9554,7 +10507,7 @@ % |\flrow@LTlastpage| (why???). % \begin{macrocode} \ifvoid\flrow@LT@prelastfoot\else - \count@\flrow@LTlastpage\relax%\advance\count@\m@ne\relax + \count@\flrow@LTlastpage\relax \ifnum\value{FBLTpage}=\count@ \let\LT@foot\flrow@LT@prelastfoot \fi @@ -9609,8 +10562,8 @@ \immediate\write\@auxout{% \gdef\expandafter\noexpand \csname FBLTpage@\romannumeral\c@LT@tables\endcsname - {\string\gdef\string\flrow@LTlastpage{\the\c@FBLTpage}} - }} + {\string\gdef\string\flrow@LTlastpage{\the\c@FBLTpage}}% + }}% \fi } % \end{macrocode} -- cgit v1.2.3