From ba8058f661bc514c2d960695ddb21d5501abbf97 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 8 Sep 2007 15:58:47 +0000 Subject: float 0.2a (7sep07) git-svn-id: svn://tug.org/texlive/trunk@4910 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/floatrow/floatrow.dtx | 7665 +++++++++++++------- .../texmf-dist/source/latex/floatrow/floatrow.ins | 6 +- 2 files changed, 4902 insertions(+), 2769 deletions(-) (limited to 'Master/texmf-dist/source/latex/floatrow') diff --git a/Master/texmf-dist/source/latex/floatrow/floatrow.dtx b/Master/texmf-dist/source/latex/floatrow/floatrow.dtx index 3b1c2bed19c..7f4c2684946 100644 --- a/Master/texmf-dist/source/latex/floatrow/floatrow.dtx +++ b/Master/texmf-dist/source/latex/floatrow/floatrow.dtx @@ -1,6 +1,6 @@ % \iffalse % floatrow.dtx - The float row package (extension of float package) -% (c) 2004-2006 Olga Lapko (Lapko.O@g23.relcom.ru) +% (c) 2004-2007 Olga Lapko (Lapko.O@g23.relcom.ru) % % This package borrowed code (core parts) from: % float package 2001/11/08 v1.3d, @@ -9,7 +9,7 @@ % Copyright (c) 1995-2002 Axel Sommerfeldt % % During creation of floatsetup stuff there was borrowed code structure -% from caption package v3.x ((c) 1994-2006 Axel Sommerfeldt) +% from caption package v3.x ((c) 1994-2007 Axel Sommerfeldt) % % This program is provided under the terms of the % LaTeX Project Public License distributed from CTAN @@ -18,89 +18,130 @@ %<*dtx> \ProvidesFile{floatrow.dtx} % -%\NeedsTeXFormat{LaTeX2e}[1995/06/01] +%\NeedsTeXFormat{LaTeX2e}[1995/06/01] %\ProvidesPackage{floatrow} %\ProvidesPackage{fr-fancy} %\ProvidesPackage{floatpagestyle} %\ProvidesPackage{listpen} +%\ProvidesPackage{fr-subfig} +%\ProvidesPackage{fr-longtable} % % \ProvidesFile{floatrow.dtx} -% [2006/07/24 v0.1j floatrow: float package extension] -% [2005/07/15 v0.1g floatrow: fancy boxes] +% [2007/08/24 v0.2a floatrow: float package extension] +% [2005/05/24 v0.1h floatrow: fancy boxes] % [2005/10/02 v0.1h floating page style] -% [2005/02/07 v0.1a list penalty managing] +% [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] % %<*driver> \input pictures -\listfiles \documentclass[twoside]{ltxdoc} +\makeatletter%^^A ----------------------- + \usepackage{calc} \usepackage{tabularx,array} +\ifx\pdfoutput\undefined \else + \ifcase\pdfoutput \else + \usepackage{mathptm}\def\ttdefault{pxtt} + \usepackage[scaled=0.90]{helvet} + \fi +\fi +\settowidth\marginparwidth{\texttt{0DeclareFloatFootnoterule}} + \IfFileExists{titlesec.sty}{\usepackage[raggedright]{titlesec}}{} \IfFileExists{footmisc.sty}{\usepackage[perpage]{footmisc}}{} -\usepackage{floatpagestyle,flafplins} +\IfFileExists{fancyhdr.sty}{\usepackage{fancyhdr} +\pagestyle{fancy} +\fancyhead{}\fancyfoot{} +\fancyhead[LE]{\setlength{\dimen@}{\marginparwidth+\marginparsep}%^^A + \leavevmode\hbox to\dimen@{\normalsize\bfseries\thepage\hfil} + \ignorespaces{\nouppercase\leftmark}\hfil\strut} +\fancyhead[LO]{\setlength{\dimen@}{\marginparwidth+\marginparsep}%^^A + \leavevmode\hbox to\dimen@{} + \ignorespaces{\nouppercase\rightmark}\hfill\hbox to2em{\hfil\normalsize\bfseries\thepage}\strut} +\fancyheadoffset[L]{\marginparwidth+\marginparsep} +}{} \usepackage[font=small,labelfont=bf,labelsep=period, justification=centerlast] - {caption}[2004/11/28] + {caption}[2007/04/11] + \usepackage[format=default,justification=centerlast, - labelfont=up] + labelfont=up,captionskip=5pt] {subfig}[2005/06/28] \IfFileExists{rotating.sty}{\usepackage[figuresright]{rotating}}{} +\usepackage{longtable} \usepackage{wrapfig} +%\usepackage{psfrag} \usepackage[vflt]{floatflt} \usepackage{picins} %^^A\RequirePackage[writefile]{listings}[2004/09/07] -\usepackage[style=plain,font=small,footskip=.5\skip\footins, - footnoterule=fullsize,margins=centering,objectset=centering, - floatrowsep=qquad,captionskip=5pt,capbesidesep=quad, - facing=yes,capbesideposition=inside]{floatrow} +\usepackage[font=small,captionskip=5pt,objectset=centering,margins=centering, + footskip=.5\skip\footins,footnoterule=fullsize, + floatrowsep=qquad,capbesidesep=quad, + facing=yes,capbesideposition=inside,floatHaslist=yes,doublefloataswide=yes]{floatrow} + +\usepackage{floatpagestyle,listpen} +\allowprelistbreaks[-4] \usepackage{fr-fancy} -\IfFileExists{hyperref.sty}{\usepackage{hyperref} +\IfFileExists{hyperref.sty}{\usepackage[ + linktocpage, + hyperindex,% + plainpages=false,% + bookmarksopenlevel=1,% + bookmarksnumbered=false,% + pdfview=FitH, + pdfstartview=FitH, + ]{hyperref} \IfFileExists{hypcap.sty}{\usepackage{hypcap}}{} }{} + \ifx\pdftexversion\undefined + \IfFileExists{pstricks.sty}{\usepackage{pstricks,pst-eps}}{} +\else\ifcase\pdfoutput \IfFileExists{pstricks.sty}{\usepackage{pstricks}}{} +\or +%^^A \IfFileExists{pdftricks.sty}{ +%^^A \usepackage{pdftricks} +%^^A }{} +\fi\fi +\ifx\pdfdisplay\undefined\else + \begin{psinputs} + \usepackage{pstricks} + \end{psinputs} \fi + \IfFileExists{makecell.sty}{\usepackage{makecell}}{} -\makeatletter + \@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}}}}{} -\makeatother \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] -\DeclareFloatStyle{MyBoxed}{style=Boxed, - captionskip=5pt,frameset={\fboxrule1pt\fboxsep12pt}} -\DeclareFloatVCode{lowthickrule}{\kern2pt\hrule height.8ptdepth0pt} - \DeclareNewFloatType{Example}% {placement=tb,within=section,fileext=lox} -%^^A for Appendix----------- -\DeclareFloatSeparators{none}{} -\DeclareFloatSeparators{cicero}{\hskip1cc} -\DeclareFloatSeparators{enskip}{\hskip.5em} -\DeclareFloatSeparators{mcapwidth}{\hskip-\FCwidth} - \newfloatcommand{fcapsideleft}{figure}[{\capbeside \captionsetup[capbesidefigure]{format=break,labelsep=none, justification=raggedleft}% @@ -109,27 +150,59 @@ \captionsetup[capbesidefigure]{format=break,labelsep=none, justification=raggedright}% \thisfloatsetup{capbesideposition=right}}][\FBwidth] + +\DeclareFloatStyle{MyBoxed}{style=Boxed, + captionskip=5pt,frameset={\fboxrule1pt\fboxsep12pt}} + +\DeclareFloatVCode{lowthickrule}{\par\vskip2pt\rule{\hsize}{.8pt}\par} +\DeclareFloatVCode{grayruleabove}{{\color{gray}\par\rule\hsize{2.8pt}\vskip4pt\par}} +\DeclareFloatVCode{grayrulebelow}{{\color{gray}\par\vskip4pt\rule\hsize{2.8pt}}} + +\DeclareObjectSet{colorred}{\parskip2pt\parindent15pt\color{red}} + +\DeclareMarginSet{hangleft}% + {\setfloatmargins + {\hskip-\marginparwidth\hskip-\marginparsep}{\hfil}} +\DeclareMarginSet{hangtoheads}% + {\setfloatmargins + {\hfil}{\hskip-.7\headheight\hskip-\headsep}} + +\DeclareFloatSeparators{colorsep}% + {\begingroup\color{blue}% + \floatfacing{\hskip6pt\vrule width4.8pt\hskip6pt}% + {\hskip6pt\vrule width4.8pt\hskip6pt}% + \endgroup} +\DeclareFloatSeparators{none}{} +\DeclareFloatSeparators{cicero}{\hskip1cc} +\DeclareFloatSeparators{enskip}{\hskip.5em} +\DeclareFloatSeparators{mcapwidth}{\hskip-\FCwidth} + %^^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? -\DeclareCaptionFormat{flushrightlabel}{\leavevmode\rightline{#1}#2\par#3\par} -\DeclareCaptionJustification{togglelast} - {\floatfacing*\rightlast\leftlast} -\DeclareCaptionStyle{capbesidefigure}{justification=togglelast} -\captionsetup[table] - {format=flushrightlabel,textfont=bf,labelsep=none, - labelfont=sl,captionskip=5pt} +\DeclareCaptionLabelFormat{rightline}{\rightline{\bothIfFirst{#1}{ }#2}} +\DeclareCaptionJustification{togglelast}{\floatfacing*\rightlast\leftlast} + +\captionsetup[table]{labelformat=rightline,textfont=bf,labelfont={md,sl},labelsep=newline} \captionsetup[capbesidefigure]{justification=togglelast} \captionsetup[floatfoot]{format=default} -%^^A for Appendix----------- \DeclareCaptionFormat{break}{#1#2\par#3\par} + %^^A ----------------------- -\makeatletter +\advance\oddsidemargin.25\marginparwidth \evensidemargin\oddsidemargin \@mparswitchfalse \widowpenalty10000 @@ -144,14 +217,15 @@ \def\l@subsubsection{\@dottedtocline {3}{4.2em}{3.6em}} \newcommand\Resizebox[5]{\setbox0\hbox{\setlength\unitlength{#1/#3}%^^A - \ifx\pspicture\undefined\else\psset{unit=\unitlength}\fi{#5}}%^^A - \@tempdima\ht0\advance\@tempdima\dp0%^^A - \ifdim\@tempdima>#2\setlength\unitlength{#2/#4}\ifx\pspicture\undefined - \else\psset{unit=\unitlength}\fi - {#5}\else\box0\fi} + \ifx\pspicture\undefined\else\psset{unit=\unitlength}\fi{#5}}%^^A + \@tempdima\ht0\advance\@tempdima\dp0%^^A + \ifdim\@tempdima>#2 + \setlength\unitlength{#2/#4}\ifx\pspicture\undefined + \else\psset{unit=\unitlength}\fi + {#5}\else\box0\fi} \providecommand*{\file}[1]{\texttt{#1}} -\providecommand*{\pkg}[1]{\textsf{#1}} +\providecommand*{\package}[1]{\textsf{#1}} \providecommand*{\cls}[1]{\textsf{#1}} \providecommand*{\env}[1]{\texttt{#1}} \providecommand*{\meta}[1]{$\langle$\textit{#1}$\rangle$} @@ -165,6 +239,8 @@ \setlength{\parsep}{0pt}% }}% {\endlist} + +\newenvironment{Quote}{\par\RestoreSpaces\small\begin{quote}\obeylines\parskip0pt}{\end{quote}\par\@endpetrue} \def\OptionLabel{RaggedRight} \DeclareRobustCommand\La{L\kern-.36em% @@ -176,7 +252,27 @@ \vss}% }% } -\makeatother + +%maybe there is better solution? +\def\DescribeMacro{\let\outer@nobreak\@nobreaktrue + \leavevmode\everypar{\@nobreakfalse}\@bsphack + \begingroup\MakePrivateLetters\Describe@Macro} +\def\DescribeEnv{\let\outer@nobreak\@nobreaktrue + \leavevmode\everypar{\@nobreakfalse}\@bsphack + \begingroup\MakePrivateLetters\Describe@Env} +\def\RestoreSpaces{\@nobreakfalse} + +\newcommand\FRmpar{\@ifstar{\@nobreaktrue\xFRmpar}{\xFRmpar}} + +\newcommand\xFRmpar[2]{\label{#2}\marginpar{\footnotesize + \raggedleft\advance\leftskip.3\hsize#1}} + +\providecommand\sectionname{section} +\def\SpecialUsageIndex#1{} +\def\SpecialEnvIndex#1{} +\newcommand\seeIntro{\hyperref[sec:intro]{Intro}} + +\makeatother%^^A--------------------------------- \OnlyDescription \let\PrintChanges\relax @@ -185,12 +281,12 @@ \RecordChanges \begin{document} \DocInput{floatrow.dtx} - \PrintChanges +\PrintChanges \end{document} % % \fi % -% \CheckSum{4187} +% \CheckSum{5209} % % % \changes{v0.1e}{2005/03/22}{The user documentation loaded inside @@ -200,9 +296,9 @@ % % \ifx\pspicture\undefined\else\psset{unit=1pt}\fi % -% \def\fileversion{v0.1j} -% \def\filedate{2006/07/24} -% \title{The \pkg{floatrow} package\thanks{This +% \def\fileversion{v0.2a} +% \def\filedate{2007/08/24} +% \title{The \package{floatrow} package\thanks{This % file has version number \fileversion, last revised % \filedate.}} % @@ -212,98 +308,292 @@ % \date{\filedate} % \maketitle % -% \begin{abstract} -% This package was created like extension or addition of \pkg{float} -% package. The \pkg{floatrow} borrows core code from -% \pkg{float}\footnote{\pkg{float} package, version v1.3d dated +% \begin{abstract}\openup.5pt +% This package was created as extension of the \package{float} +% package. The \package{floatrow} package borrows core code from +% the \package{float}\footnote{\package{float} package, version v1.3d dated % 2001/11/08, \copyright{} 1991-2000 Anselm Lingnau.} and -% \pkg{rotfloat}\footnote{\pkg{rotfloat} package, version v1.2 +% \package{rotfloat}\footnote{\package{rotfloat} package, version v1.2 % dated 2004/01/04, \copyright{} 1995--2004 Axel -% Sommerfeldt.} packages, so you must not load these packages. +% Sommerfeldt.} packages, so you \emph{must not} load these packages. % -% The \pkg{float} package has good mechanism for creation (and easy +% The \package{float} package has a~good mechanism for the creation (and easy % modification) of common layout for all floats without -% adding any repeated code in document; unfortunately it deals only -% with alone (plain) object---caption combinations. -% -% Current package extends this mechanism and allows: +% adding any repeated code in the document; besides, this package allows to +% create new float type; it deals only +% with alone (plain) combinations ``object (float contents)---caption''. +% The \package{rotfloat} +% package changes environments of rotated floats (\package{rotating} package) +% to adapt them to \package{float}'s settings. +% +% Current package extends these possibilities and, at last, it allows: % \begin{itemize}\itemsep0pt\parskip0pt -% \item% -% to change width of float box; -% \item% +% \item +% to use mechanism, borrowed from \package{float} package, for +% creation of new float type; +% \item +% to change width of float box, also % to set width for float box, which equals to the width of object; -% \item% +% \item % to put caption beside object; -% \item% +% \item % to put a few floats side by side on the row; -% \item% +% \item % to put footnotes inside float box (using \env{minipage}-like mode); % and also put legend-like text; -% \item% -% to create or modify special layout for each type of float and -% for different positioning of float and its components -% (two-column or rotated float). +% \item +% to create and/or modify special layout for each type of float and +% for different positioning of float and its components, e.g. +% two-column or rotated float. % \end{itemize} % -% The \pkg{floatrow} package is cooperated with \pkg{caption} package -% (version 3.0 and later). Also the \pkg{floatrow} package (like -% \pkg{caption} one) uses \pkg{keyval} package mechanism for layout +% The \package{floatrow} package is cooperated with \package{caption} package +% (\textit{needs version} 3.0\textbf{q} \textit{and later}). +% Also the \package{floatrow} package (like +% \package{caption} one) uses \package{keyval} package mechanism for layout % settings. % \medskip % % \begingroup % \slshape -% I think I did my best to follow this idea and I hope that someone +% 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 % and absurdities in this package or documentation. % \endgroup % \medskip % -% {Document terminology}: +% \centerline{\textbf{Document Terminology}\nopagebreak\vspace{1ex}} % \begin{description}\itemsep0pt\parskip0pt -% \item[float] could include \emph{object}, \emph{caption}, and +% \item[float] +% 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 in |\floatbox| -% command; +% \env{table} environments (\emph{plain float}), or by |\floatbox| +% command and its modifications; +% +% \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.; % % \item[object]\env{tabular} or graphics, as contents of table -% (\env{figure}) or figure (\env{table}) or other type of float; +% (\env{table}) or figure (\env{figure}) or other type of float; % % \item[caption]text in |\caption|; % % \item[foot material]explications, legends and/or footnotes inside -% \emph{float} box (|\footnote|/|\mpfootnotemark|/|\footnotetext|, +% \emph{float} box (|\footnote|/\allowbreak|\mpfootnotemark|/\allowbreak|\footnotetext|, % and |\floatfoot| macros). % \end{description} % \end{abstract} % +% \begingroup\small +% \vspace{2ex}\pdfbookmark[1]{Frequently Appeared Design}{FAD}\nopagebreak\centerline{\textbf{Frequently Appeared Design}\nopagebreak} +% \begin{multicols}{2}\raggedright\advance\rightskip1em +% \makeatletter\let\item\@idxitem\ignorespaces\makeatother +% \def\sectionname{sec.} +%^^A% \item{``Anchored'' float (option~\texttt{H})} +%^^A% \strut\pfill +%^^A% \textsl{\sectionname}~\ref{sec:floatborrowII} +% +% \item{Caption} +% \subitem{above float (\env{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} +% +% \subitem{beside float (\env{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}, +% +% \subitem{width equals to \env{longtable}'s (|LTcapwidth=| key)} +% \strut\pfill +% \pageref{FAD:LTcapwidth} +% +% \subitem{width equals to object's} +% \emph{see}~{float box width equals to object's}{} +% +% \item{Creation of new float type (|\DeclareNewFloatType|)} +% \strut\pfill +% \textsl{\sectionname}~\ref{sec:newfloat}%;~^^A +% %^^A\pageref{FAD:newfloattype} +% +% \item{Layout of Float types (|\floatsetup|)} +% \strut\pfill +% \textsl{\sectionname}~\ref{sec:floatsetup}\nopagebreak +% +% \item{Float}\nopagebreak +% \subitem{box (|\floatbox|)} +% \strut\pfill +% \textsl{\sectionname}~\ref{sec:floatbox}; +% \subsubitem{figure box (|\ffigbox|)} +% \strut\pfill +% \textsl{{\seeIntro}},~%^^A +% \textsl{\sectionname}~\ref{sec:floatbox}; +% +% \subsubitem{table box (|\ttabbox|)} +% \strut\pfill +% \textsl{{\seeIntro}},~%^^A +% \textsl{\sectionname}~\ref{sec:floatbox}; +% +% \subitem{rotated (|sideways..|~env.)}\nopagebreak +% \strut\pfill +% \textsl{\sectionname}~\ref{ssec:rotating}%^^A--\ref{ssec:lscape} +% \subsubitem{empty (special) page style (|\emptyfloatpage|)} +% \strut\pfill +% \pageref{FAD:emptyfloatpage} +% +% \subsubitem{placing on the facing pages} +% \strut\pfill +% \pageref{FAD:ContRotated} +% +% \subitem{\textbf{here!} (option \texttt{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} +% +% \subsubitem{float(box) in the row occupies the rest space} +% \emph{see}~{float 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} +% +% \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} +% +% \subitem{wrapped} +% \strut\pfill +% \textsl{\sectionname}~\ref{ssec:wrapfig}--\ref{ssec:picins} +% +% \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} +% +% \subitem{footnote mark +% (|\mpfootnotemark|)\kern-1em\allowbreak} +% \strut\pfill +% \pageref{FAD:FnoteInsideFloat} +% +% \item{Legend-like macro (|\floatfoot|)} +% \strut\pfill +% \textsl{\sectionname}~\ref{subsec:floatfoot} +% +% \item{Subfloat} +% \strut\pfill +% \subitem{subcaption above} +% \strut\pfill +% \pageref{FAD:subcapabove} +% \subitem{subfloat label beside} +% \strut\pfill +% \pageref{FAD:sublabelbeside} +% \end{multicols}% +% \endgroup +% % \clearpage % \begingroup -% \small -% \tableofcontents -% \listoffigures -% \listoftables +% \small\openup-.75pt +% \pdfbookmark[1]{Contents}{TOC}\nopagebreak\tableofcontents +% \pdfbookmark[1]{List of Figures}{LOF}%^^A\setcounter{lofdepth}2 +% \nopagebreak\listoffigures +% \pdfbookmark[1]{List of Tables}{LOT}%^^A\setcounter{lotdepth}2 +% \nopagebreak\listoftables % \endgroup +% % \clearpage % \suppressfloats[t] % -% \section{Introduction} +% \section{Macros for Building Floats} +% +% \subsection{Introduction}\label{sec:intro} % % One of the first macros of package, created for float contents, -% is a macro which builds contents of table environment with caption +% 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}). -%\begin{verbatim} -%\begin{table} -%\ttabbox -% {\caption{A table ...}\label{...}} -% {\begin{tabular}...\end{tabular}} -%\end{table} -%\end{verbatim} -% \begin{table}[h] +% of tabular (see table~\ref{intro:table}).%^^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}} +%| {\caption{A small table ...}\label{...}}| +%| {\begin{tabular}...\end{tabular}}| +%|\end{table}| +%\end{Quote} +% \begin{table}[H] % \ttabbox -% {\caption{A table with caption above}\label{intro:table}} -% {\begin{tabular}{|c|c|c|} +% {\caption{A small table with caption text above (\cmd{\ttabbox})}\label{intro:table}} +% {\jot2pt\begin{tabular}{|c|c|c|} % \hline % \thead{First data} & \thead{Second data} & \thead{Third data} \\ % \hline @@ -315,449 +605,381 @@ % % 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. The default -% layout of |\ffigbox| is similar to plain \env{figure} environment; -% this macro will be useful for creation of beside floats (see -% example with figures~\ref{intro:leftfig} and~\ref{intro:rightfig}) +% to the width of main text or predefined |\hsize|. +%\begin{Quote}\openup-.65pt +%|...| +%|\begin{figure}| +%|\|\hyperref[floatbox:ffigbox]{\texttt{ffigbox}} +%| {\caption{A figure...}\label{...}}| +%| {...}| +%|\end{figure}| +%\end{Quote} +%\begingroup +% \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}} +% \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: +% \FRmpar{Caption's width equals to object}{FAD:FBwidthI} +%\begin{Quote} +%|...| +%|\begin{figure}|\nopagebreak +%|\ffigbox[\|\hyperref[floatbox:FBwidth]{\texttt{FBwidth}}|]| +%| {\caption{A figure}\label{...}}| +%| {...}| +%|\end{figure}| +%\end{Quote} +% \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}} +% \end{figure}%^^A +% You get 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{verbatim} -%\begin{figure} -%\fcapside -% {\caption[Beside caption]{Beside caption ...}\label{...}} -% {...} -%\end{figure} -%\end{verbatim} -% \begin{figure}[h] +%\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]| +%|...| +%\meta{preamble} +%|\begin{figure}| +%|\|\hyperref[floatbox:fcapside]{\texttt{fcapside}} +%| {\caption{...}\label{...}}| +%| {...}| +%|\end{figure}| +%\end{Quote} +% \begin{figure}[H] % \fcapside % {\caption[Beside caption (`one-column' width)]{Beside caption % (width of caption equals to the width of object) and more text % and some more text and a bit more text and -% a little more text and a little peace of text to fill +% a little more text and a little piece of text to fill % space}\label{intro:beside}} -% {{\setlength\unitlength{4cm/58}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{Mouse.picture}}} +% {{\setlength\unitlength{3.68cm/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| +% (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 +% or legends and footnotes). +% +% +% If you set the |[\FBwidth]| option: +% \FRmpar{Caption's width equals to object}{FAD:FBwidthII} +%\begin{Quote} +%|...| +%|\fcapside[\FBwidth]| +%|...| +%\end{Quote} +% \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 +% 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 +% \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 % -% These three commands abbreviate |\floatbox| command, which creates -% float boxes (see section~\ref{sec:floatbox}). -% -% The \env{floatrow} environment allows to put floats side by side, -% like figures~\ref{intro:leftfig} and~\ref{intro:rightfig}. -% By default \env{floatrow} creates necessary number of ``columns'' -% (usually two) where floats are placed: -%\begin{verbatim} -%\begin{figure} -% \begin{floatrow} -% \ffigbox -% {...}{\caption{...}\label{...}} -% -% \ffigbox -% {...}{\caption{...}\label{...}} -% \end{floatrow} -%\end{figure} -%\end{verbatim} -% \begin{figure}[h] -% \begin{floatrow} -% \ffigbox -% {\input{BlackDog.picture}} -% {\caption{Left beside figure of simple row}% -% \label{intro:leftfig}}% -% -% \ffigbox -% {\caption{Beside figure at the right side of simple figure row}%^^A -% \label{fig:rotrow:FcatI}} -% {\input{TheCat.picture}\label{intro:rightfig}} -% \end{floatrow} -% \end{figure}%^^A -% Please note that inside \env{floatrow} you must use |\ffigbox| -% or |\ttabbox| macros for each float box. (See also -% sections~\ref{sec:floatbox} for more information about commands -% used in introduction and |\floatbox| command; -% and \ref{sec:floatrow} about \env{floatrow} environment.) -% -% \subsection{Do not write that with \pkg{floatrow} package} -% -% The \pkg{floatrow} package creates some features or limitations -% of float layout building. If you'll write something like -%\begin{verbatim} -%\begin{figure} -%\caption{A figure caption} -%\centering \input{Mouse.picture} -%\end{figure} -%\end{verbatim} -% please do not expect that caption appears at the top of figure. If -% you want, e.g. to put figure captions above its contents, you must -% write in preamble |\floatsetup[figure]{style=plaintop}| (see also -% section~\ref{sec:floatsetup} about |\floatsetup| mechanism). -% -%^^A \begin{figure} -%^^A \caption{A figure caption}\label{Wrong:expect} -%^^A \centering \input{Mouse.picture} -%^^A \end{figure} -% -% Another example. If you put beside floats by following way: -%\begin{verbatim} -%\begin{figure} -%\begin{minipage}{0.5\textwidth} -%\centering \input{Mouse.picture} -%\caption{A figure caption} -%\end{minipage} -%\begin{minipage}{0.5\textwidth} -%\captionof{table}{A table caption} -%\centering \begin{tabular}{cc} A & B \\ C & D \end{tabular} -%\end{minipage} -%\end{figure} -%\end{verbatim} -% you also won't get expected result. Use \env{floatrow}, like in -% example with figures~\ref{intro:leftfig} and~\ref{intro:rightfig} -% to get correct result\footnote{See also the page~\pageref{mixrow} -% about mixed float rows}. +% \subsection{The \cs{floatbox} Macro}\label{sec:floatbox} % -% \section{Float Layout Settings}\label{sec:floatsetup} +% \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: +% \begin{Quote} +% |\floatbox[|\meta{preamble}|]{|\meta{captype}|}[|^^A +% \meta{width}|][|\meta{height}|][|\meta{vert pos}|]| +% | {|\meta{caption}|}{|\meta{object}|}|\footnotemark +% \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}: +% \begin{description}\itemsep0pt +% \item[\meta{preamble}]there could be |\capbeside|\label{floatbox:capbeside} command which +% places caption beside float contents; +% |\nocapbeside|\label{floatbox:nocapbeside} +% (to put caption above/below, accordingly +% to float type's style); +% |\captop|\label{floatbox:captop} +% (to put caption above); +% or another systematic command +% (even with usage of |\captionsetup| +% and |\|\hyperref[setup:thisfloatsetup]{\texttt{thisfloatsetup}} +% see examples in documentation and appendix). +% \item[\meta{captype}]the type of float 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). +% 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); +% \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{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 +% |\floatfoot| command. +% \end{description} % -% The idea of \pkg{floatrow} package is to avoid a lot of repeated code -% inside document for creation of desired layout for floats (which also -% lowers readability of document), 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. +% 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. % -% The easy modification of common layout of all float of for one type of -% float is possible because of the borrowed code from the \pkg{float} -% package, which allows to modify layout of float boxes as a whole. +% \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 common layout and its modification for captions and special -% settings for -% each type of float supported by \pkg{caption} package, version~3.x. +% 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 layout settings of \pkg{floatrow} package are built similarly -% to \pkg{caption} ones 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 section~\ref{sec:changed}).} mechanism which is -% analog to |\captionsetup| one\footnote{Look also at \pkg{caption} -% documentation (version 3.0 and later)}. +% 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|). % -% \DescribeMacro{\floatsetup} -% You may use layout settings stuff as \pkg{floatrow} option in -% |\usepackage| line. -% \begin{quote} -% |\usepackage[|\meta{options}|]{floatrow}| -% \end{quote} -% You may write -% \begin{quote} -% |\usepackage[style=boxed,font=small]{floatrow}| -% \end{quote} -% The same result you get with -% \begin{quote} -% |\floatsetup{style=boxed,font=small}| -% \end{quote} -% The lines above declare \texttt{boxed} style and |\small| font for -% float contents. These settings were loaded for \emph{all} float types. +%\begin{Quote} +%|\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]| +%| {\caption{...}\label{...}}| +%| {...}| +%|\end{figure}| +%\end{Quote} +% \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 +% and some more text and a bit more text and +% a little more text and a little peace of 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.) % -% The |\floatsetup| command has following form: -% \begin{quote} -% |\floatsetup|\oarg{float type}\marg{options} -% \end{quote} +% \RestoreSpaces +% \subsubsection{Creation of Personal Commands for Float Boxes}\label{ssec:ffigbox:etc} % -% For defining of a special style for float of one type use optional -% argument with name of necessary float type. The following command -% \begin{quote} -% |\floatsetup[table]{style=Plaintop}| -% \end{quote} -% sets a special float style for tables (captions are placed above -% float objects; in the case of beside floats inside \env{floatrow} -% environment captions aligned by top line)\footnote{The keys, -% used in special settings for float of one type, are always -% ``stronger'' than synonym keys in common setting. In other words, -% if you want after example above to redefine float style for all -% floats with \cmd{\floatsetup\{style={\normalfont \meta{option}}\}} -% you won't change tables---use -% \cmd{\floatsetup[table]}\allowbreak -% \texttt{\{style={\normalfont \meta{option}}\}} again.}. +% The usage of |\floatbox| command with options (which could be cumbersome) sometimes is rather complex. +% The Introduction demonstrates commands-abbreviations of this commands. +% You may define commands-abbreviations (or redefine existing) for your own purposes and +% include there some additional style definitions and settings. % -% 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 etc. The ``strength'' of options in the lists below decreases -% from previous item to next one (examples based on \env{figure} -% environment): -% \begin{itemize}\label{stsetorder}\itemsep0pt\parskip0pt -% \item Wide or two-column floats (e.g. \env{figure*}, -% you may load special -% settings for starred environments even in one-column document): -% \begin{itemize} -% \item |\floatsetup[widefigure]|---the ``strongest'' settings; -% if they absent, package uses settings from next item; -% \item |\floatsetup[widefloat]|---these settings ``stronger'' -% than settings from next item (|\floatsetup[figure]|); -% if they absent, package uses settings from next item; -% \item |\floatsetup[figure]|; -% if they absent, package uses settings from -% optional argument in |\usepackage| line or |\floatsetup{...}| -% command; if they absent---default package settings -% (see page~\pageref{sec:default}); -% \end{itemize} -% \item Wrapped floats (\env{wrapfigure}): -% \begin{itemize}\itemsep0pt\parskip.5\parskip -% \item |\floatsetup[wrapfigure]|; -% \item |\floatsetup[wrapfloat]|; -% \item |\floatsetup[figure]|; -% \end{itemize} -% \item Rotated floats (in environments, like \env{sidewaysfigure}): -% \begin{itemize}\itemsep0pt\parskip.5\parskip -% \item |\floatsetup[rotfigure]|; -% \item |\floatsetup[rotfloat]|; -% \item |\floatsetup[figure]|; -% \end{itemize} -% \item Wide 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 -% \item |\floatsetup[widerotfigure]|; -% \item |\floatsetup[widerotfloat]|; -% \item |\floatsetup[rotfigure]|; -% \item |\floatsetup[rotfloat]|; -% \item |\floatsetup[figure]|; -% \end{itemize} -% \item Floats with beside captions: -% \begin{itemize}\itemsep0pt -% \item |\floatsetup[capbesidefigure]|; -% \item |\floatsetup[capbesidefloat]|; -% \item setting of outer environments from previous items: -% \env{sidewaysfigure*}, \env{sidewaysfigure}, and \env{figure*}. -% \end{itemize} -% Please note, that usage of \texttt{style=} key (see beginning of next -% section) cancels settings for beside position of caption. -% \end{itemize} -% You can also create and change special settings for captions, using -% the same \meta{float~type} options in |\captionsetup| stuff. +% The definition of new float abbreviation looks like: +% \begin{Quote} +% |\newfloatcommand|\marg{command}%^^A\\\strut\qquad +% \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 +% 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. +% \end{description} % -% The next few sections describe keys of |\floatsetup| macro. +% Let's repeat three already defined commands-abbreviations:\label{abbrcom}%^^A +% \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} +% \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 % -% \subsection{Floatsetup Keys}\label{sec:floatsetup} +% Your defined commands you may use in following way (example for |\ffigbox|): +% \begin{Quote} +% |\ffigbox|\oarg{width}\oarg{height}\oarg{vert pos} +% \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}). % -% \subsubsection{Float Style} +% \par\RestoreSpaces +% \subsection{Building Float Row}\label{sec:floatrow} % -% \DescribeMacro{style=} -% The \emph{float style} is specified by -% following way: -% \begin{quote} -% |style=|\meta{float style name}\quad , -% \end{quote} -% the \meta{float style name} you may take from -% table~\ref{tab:floatlayouts}. +% 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. % -% -% The caption's \texttt{ruled} style is the only one from \pkg{float} -% package, which was predefined in \pkg{caption} package. To use it, -% write -% \begin{quote} -% |\captionsetup[figure]{style=ruled}|\quad . -% \end{quote} -% -% \begin{sidewaystable}%[p]% -% \extrarowheight1pt\tabcolsep.5\tabcolsep -% \newcommand\leftcell[2][16.5mm]{\extrarowheight0pt\def\arraystretch{.75} -% \hspace*{-\tabcolsep}\begin{tabular}[t]{>{\footnotesize -% \ttfamily\noindent -% \vphantom{\small()\mpfootnotemark[1]}}p{#1}}#2\end{tabular}% -% \hspace*{-\tabcolsep}\ignorespaces} -% \emptyfloatpage -% \begin{tabularx}\hsize{|@{}l@{}|@{}l@{}|X|} -% \hline -% \hfil\thead{Style} & -% \hfil\thead{\cmd{\floatsetup} keys} & -% \hfil\thead{Description} \\ -% \hline -% \multicolumn{3}{|c|}{Offered by \pkg{floatrow} package}\\ -% \hline \leftcell{\texttt{plain}{\mpfootnotemark[1]}} -% & \leftcell{\meta{none}} -% &Standard \LaTeX's layout -% \\\hline -% \leftcell{\texttt{plaintop}{\mpfootnotemark[1]} -% \\\hline\texttt{Plaintop}{\mpfootnotemark[2]}} -% & \leftcell[50mm]{capposition=top\\\hline -% capposition=TOP} -% &The same as \texttt{plain} but puts caption at the top---analog of -% \pkg{float} package style. Capitalized form aligns captions above -% object by top line in \env{floatrow} environment -% \\\hline -% \leftcell{\texttt{ruled}{\mpfootnotemark[1]} -% \\ \\ \\\hline\texttt{Ruled}} -% & \leftcell[50mm]{capposition=top,precode=thickrule,\\ -% midcode=rule,postcode=lowrule,\\ -% heightadjust=all\\\hline -% style=ruled,capposition=TOP} -% &The first one emulates \pkg{float} package's co-named style. -% Capitalized form aligns captions above object by top line in -% \env{floatrow} environment -% \\\hline -% \leftcell{\texttt{boxed}\smash{\mpfootnotemark[1]\mpfootnotemark[2]} -% \\ \\ \\\hline\texttt{Boxed} -% \\\hline\texttt{BOXED}} -% & \leftcell[50mm]{captionskip=2pt,framestyle=fbox,\\ -% heightadjust=object,\\framearound=object\\\hline -% style=boxed,framefit=yes\\\hline -% framestyle=fbox,framefit=yes,\\ -% heightadjust=all,framearound=all} -% &The first one emulates \pkg{float} package's style: -% object's width equals to \cmd{\hsize} or -% predefined width of float box; frame climbs out to the right and -% left sides. In capitalized form frame fits the -% \cmd{\hsize} or predefined width; width of -% object reduced to fit inside frame. Uppercase form -% draws frame which fits to current \cmd{\hsize} or predefined width, -% but around full float: caption, object and foot material. -% \\\hline -% \multicolumn{3}{|c|}{Offered by \pkg{fr-fancy} package. -% They also need \pkg{fancybox} package.}\\ -% \hline \leftcell{\texttt{shadowbox}\smash{\mpfootnotemark[2]} -% \\\hline\texttt{Shadowbox} -% \\\hline\texttt{SHADOWBOX}} -% & \leftcell[50mm]{style=boxed,framestyle=shadowbox\\ \hline -% style=Boxed,framestyle=shadowbox\\ \hline -% style=BOXED,framestyle=shadowbox} -% &The same as \texttt{boxed}, \texttt{Boxed} and \texttt{BOXED} -% consequently. The \cmd{\fbox} frame changed to \cmd{\shadowbox} -% from \pkg{fancybox} package. -% \\\hline -% \leftcell{\texttt{doublebox}\smash{\mpfootnotemark[2]} -% \\\hline\texttt{Doublebox}\\\hline\texttt{DOUBLEBOX}} -% & \leftcell[50mm]{style=boxed,framestyle=doublebox\\\hline -% style=Boxed,framestyle=doublebox\\\hline -% style=BOXED,framestyle=doublebox} -% &The same as \texttt{boxed}, \texttt{Boxed} and \texttt{BOXED} -% consequently. The \cmd{\fbox} frame changed to \cmd{\doublebox} -% from \pkg{fancybox} package. -% \\\hline -% \multicolumn{3}{|c|}{Additional float style. It also needs -% \pkg{fancybox} package.}\\\hline -% \leftcell{\texttt{wshadowbox}\smash{\mpfootnotemark[2]} -% \\\hline\texttt{Wshadowbox} -% \\\hline\texttt{WSHADOWBOX}} -% & \leftcell[50mm]{style=boxed,framestyle=wshadowbox\\\hline -% style=Boxed,framestyle=wshadowbox\\\hline -% 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 -% draws edges of ``second copy'') from \pkg{fancybox} package. -% \\\hline -% \end{tabularx} -% -% \caption{Float layout styles}\label{tab:floatlayouts}% -% -% \floatfoot{When there is set float style with frame around object of -% fitted to the text width (like \texttt{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.} -% -% \footnotetext[1]{The styles analogous to \pkg{float} package style.} -% \footnotetext[2]{During usage of these styles in -% \env{floatrow} environment you ought to enlarge -% space between floats, using key \texttt{floatrowsep}).} -% \end{sidewaystable} -% \label{setup:start} -% -%^^A\pagebreak[4] -% -% \subsubsection{Font settings} -% -% \DescribeMacro{font=} -% Defines font for float object contents. Option -% analogous to |font| key in |\captionsetup| stuff.\nopagebreak -% -% Available font setting options: -% -% \begin{Options}{\OptionLabel} -% \item[scriptsize] {\scriptsize Very small size} -% \item[footnotesize] {\footnotesize The size usually used for footnotes} -% \item[small] {\small Small size} -% \item[normalsize] {\normalsize Normal size} -% \item[large] {\large Large size} -% \item[Large] {\Large Even larger size} -% -% \item[up] {\upshape Upright shape} -% \item[it] {\itshape Italic shape} -% \item[sl] {\slshape Slanted shape} -% \item[sc] {\scshape Small Caps shape} -% -% \item[md] {\mdseries Medium series} -% \item[bf] {\bfseries Bold series} -% -% \item[rm] {\rmfamily Roman family} -% \item[sf] {\sffamily Sans Serif family} -% \item[tt] {\ttfamily Typewriter family} -% \end{Options} -% -% You may set font for float object like -% \begin{quote} -% |font=small| -% \end{quote} -% or -% \begin{quote} -% |font={small,sf}|\quad . -% \end{quote} -% -% \DescribeMacro{footfont=}\label{sec:setfloatfoot}%^^A -% Defines font for legends or explications. This macro -% uses |\captionsetup| mechanism (because |\floatfoot| macro -% uses \pkg{caption} mechanism). By default the font size -% of float foot text equals to footnote text: |footfont=footnotesize|. -% -% \subsubsection{Position of Caption and of Other Elements} -% -% \DescribeMacro{capposition=} -% Defines position of captions. It is similar to \texttt{position=} -% key in \pkg{caption} package, but it has two additional -% options\footnote{The option \texttt{auto} isn't used by -% \texttt{capposition=}.}: \texttt{TOP}, 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 -% for one environment, see about |\thisfloatsetup| on the -% page~\pageref{thisfloatsetup}): -% \begin{Options}{\OptionLabel} -% \item[top] caption above object (equals to |\captop| command); -% \item[TOP] caption above object and also aligned by top line in float -% row (equals to |\CAPTOP| command). -% For example the \texttt{Plaintop} style is the variant of -% \texttt{plaintop} where used |capposition=TOP| settings, -% see tables~\ref{tab:row:tabIII}--\ref{tab:row:tabIV}; -% \item[bottom] caption below object (equals to |\capbot| command); -% \item[beside] caption beside object (equals to |\capbeside| command). -% \end{Options} -% -% \DeleteShortVerb{\|}% -% \begin{table}[h] -% \begin{floatrow} -% \extrarowheight1pt -% \ttabbox -% {\caption[Beside table~I long header]%^^A -% {Beside table~I with long long long 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}} +% \par\RestoreSpaces +% This environment looks like: +% \begin{Quote} +% |\begin{floatrow}[|\meta{number of beside floats}|]|\nopagebreak +% |\floatbox...|\nopagebreak +% |\floatbox...|\nopagebreak +% |...|\nopagebreak +% |\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 +% (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: +%\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{...}}| +%| {...}| +%| | +%| \ttabbox| +%| {\caption{...}\label{...}}| +%| {...}| +%| \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 @@ -777,1534 +999,2395 @@ % \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}| +%\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, +% the width of graphic}% +% \label{intro:leftfig:FBwidth}}% +% {\unitlength1.12\unitlength\input{Bear.picture}} % -% \emph{Note}. The option \texttt{TOP} uses |\label|---|\ref| -% mechanism, so to get necessary result with it you must run \LaTeX{} -% twice (when you make changes in contents which could change number -% of lines you get correct result also on the second run). +% \ffigbox[\Xhsize] +% {\caption[Right beside figure (\env{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 % -% \DescribeMacro{capbesideposition=} -% Defines position of beside captions: vertical and horizontal. -% For horizontal position there are defined four options: -% \begin{Options}{\OptionLabel} -% \item[left] -% caption is printed to the left side of object; -% \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; -% \item[outside] -% least popular option: caption printed in -% outer side of page if |twoside| option switched on -% in document class. -% \end{Options} +% \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| +% 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. % -% For vertical position there are defined three options -% \begin{Options}{\OptionLabel}\samepage -% \item[top] -% caption aligned to the top of object; -% \item[bottom] -% caption aligned to the bottom of object; -% \item[center] -% caption aligned to the center of float contents. -% \end{Options} -% You may define position of beside caption by following: -% \begin{quote} -% |capbesideposition={top,outside}|\quad. -% \end{quote} +% And here is more complex example. The first float (used |\ffigbox|) 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 +%\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{figure*}| +%|\begin{floatrow}[4]| +%| \ffigbox| +%| {\caption{Beside figure~I...}...}| +%| {...}| +%| | +%| \ffigbox[\FBwidth]| +%| {\caption{Beside figure~II...}...}| +%| {...}| +%| | +%| \ffigbox[\Xhsize]| +%| {\caption{Beside figure~III...}...}| +%| {...}| +%|\end{floatrow}| +%|\end{figure*}| +%\end{Quote} +% \floatsetup[widefloat]{margins=hangleft} +% \begin{figure*}% +% \begin{floatrow}[4] +% \ffigbox +% {\caption{Figure~I in the row (\env{floatrow}), ``column'' width}% +% \label{fig:row:Dog}} +% {\input{TheDog.picture}} % -% \noindent -% \DescribeMacro{capbesidewidth=} -% Defines width of beside caption (this option could be more preferable -% in settings for one environment, see about |\thisfloatsetup| on the -% page~\pageref{thisfloatsetup}). You may set: -% \begin{quote} -% |capbesidewidth=4cm|\quad. -% \end{quote} -% If you'll write \texttt{capbesidewidth=none} or -% \texttt{capbesidewidth=sidefill} (this is default key setting), the -% width of caption will be counted by usual way, accordingly -% to float width (i.e. occupies the rest width of float box, see -% figure~\ref{fig:beside:mouse} on the page~\pageref{fig:beside:mouse}). +% \ffigbox[\FBwidth] +% {\caption{Figure~II in the row (\env{floatrow}), graphics width}% +% \label{fig:row:WcatI}} +% {\input{TheCat.picture}} % -% \noindent -% \DescribeMacro{capbesideframe=} -% This boolean key declares whether beside caption stays near framed object -% (\texttt{capbesideframe=yes}) in this case caption lines 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}). +% \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}} +% {{\setlength\unitlength{\hsize/58}%^^A +% {\input{Mouse.picture}}}} % -% \penalty-5000 -% \subsubsection{Defining Float Foot Position (Legends and Footnotes)}% -% \label{sec:footposition} +% \ffigbox[\Xhsize] +% {\caption{Figure~IV in the row, +% occupies the rest space of row}% +% \label{fig:row:mouseI}} +% {\input{Cheese.picture}} +% \end{floatrow} +% \end{figure*}% +% 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) +% of float and the top of lower part (captions). % -% \DescribeMacro{footposition=}\label{foot:pos}%^^A -% Defines position of |\footnote|'s and |\floatfoot|'s in float box -% with above/below captions. -% \begin{Options}{\OptionLabel} -% \item[default] -% if caption above float object foot material is placed below float -% object otherwise---below caption; -% \item[caption] -% always placed below caption; -% \item[bottom] -% always placed at the bottom of float box. -% \end{Options} -% See examples in file \file{frsample01.tex}. In the case of caption -% beside float object, footnotes and foot text always placed below -% caption. +% \RestoreSpaces +% \subsubsection{Mixed Row}\label{sec:mixrow} % -% \subsubsection{Defining Vertical Alignment}\label{sec:heightadjust} +% 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). % -% \DescribeMacro{heightadjust=} -% Defines whether the common maximum height of objects -% or/and captions in \env{floatrow} will be used. It has -% following options -% \begin{Options}{\OptionLabel}\samepage -% \item[all] -% adjust both caption and object heights (e.g. for styles -% \texttt{Ruled} and \texttt{BOXED}); -% \item[caption] -% adjust caption heights (e.g. for styles \texttt{Plaintop}); -% \item[object] -% adjust object heights (e.g. for styles \texttt{Boxed}); -% \item[none] -% nothing to be adjusted; -% \item[nocaption] -% no adjusting for captions; -% \item[noobject] -% no adjusting for objects; -% \end{Options} -% You may define height adjustment even as followed: -% \begin{quote} -% |heightadjust={caption,noobject}|\quad. -% \end{quote} +% 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: +%\begin{Quote} +%|\CenterFloatBoxes|\label{floatbox:CenterFloatBoxes} +%|\TopFloatBoxes|\label{floatbox:TopFloatBoxes} +%|\BottomFloatBoxes|\label{floatbox: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. % -% \noindent -% \DescribeMacro{valign=} -% Defines vertical alignment of -% float objects in \env{floatrow} if |heightadjust=all| or -% |heightadjust=object|, 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| -% command. Default option is |c| (centered vertical alignment). -% \begin{Options}{\OptionLabel}\samepage -% \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} +% 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 +%|\begin{figure}\CenterFloatBoxes|\nopagebreak +%|\begin{floatrow}| +%| \ffigbox[\FBwidth]| +%| ...| +%| \killfloatstyle\ttabbox| +%| ...| +%\end{Quote} +% \DeleteShortVerb{\|}% +% \begingroup +% \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}}% +% \extrarowheight1pt +% \killfloatstyle +% \ttabbox +% {\caption{A table in the mixed row}\label{tab:rowmixspec:tabI}} +% {\tabcolsep5\tabcolsep\begin{tabular}{|c|c|}\hline A & B \\ C & D \\ \hline\end{tabular}} +% \end{floatrow} +% \end{figure} +% \endgroup +% \MakeShortVerb{\|}% +% \par\RestoreSpaces % -% \subsubsection{Facing Layout} +% \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} % -% \DescribeMacro{facing=} This key defines whether facing layout used -% for floats. This key works if |twoside| option switched on in -% document class. +% \subsection{Running Floats In The Raw \LaTeX\ mode}\label{sec:rawfloats} % -% \subsubsection{Defining Float Margins and Object Settings} -% \label{sec:set:box} +% The\label{FAD:PlainFloat} +% \package{floatrow} package redefines float 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. +% +% 1.\enskip If you want \LaTeX\ behavior for \emph{just for one environment}, +% input a |\RawFloats| command \emph{inside} environment: +%\begin{Quote}\openup-.5pt +%|\begin{figure}\RawFloats|\nopagebreak +%|\captionsetup[table]{position=top}| +%|\begin{minipage}{0.45\textwidth}| +%| \centering ...| +%| \caption{...}\label{...}| +%|\end{minipage}| +%|\begin{minipage}{0.45\textwidth}| +%| \captionof{table}{...}\label{...}| +%| \centering ...| +%|\end{minipage}|\nopagebreak +%|\end{figure}| +%\end{Quote} +% And you'll get figure~\ref{Right:expect:fig} +% and table~\ref{Right:expect:tab}\nopagebreak\footnote{That could work correct if +% you do not use any fancy float layout at least for one of floats.}. +% \begin{figure}[H]\RawFloats +% \captionsetup[table]{position=top} +% \begin{minipage}{0.45\textwidth} +% \centering {\unitlength1.86\unitlength\input{Horse.picture}} +% \caption{A figure in raw \LaTeX's mode}\label{Right:expect:fig} +% \end{minipage}\quad\hfill +% \killfloatstyle\begin{minipage}{0.45\textwidth} +% \captionof{table}{A table in raw \LaTeX's mode}\label{Right:expect:tab} +% \centering\tabcolsep5\tabcolsep +% \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 +%| {...}|\nopagebreak +%| {\caption{...}\label{...}}| +%| | +%| \ttabbox|\nopagebreak +%| {...}|\nopagebreak +%| {\caption{...}\label{...}}| +%|\end{floatrow}|\nopagebreak +%|\end{figure}| +%\end{Quote} +% \begin{figure}[H]\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}}% % -% \DescribeMacro{margins=} -% 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: -% \begin{Options}{\OptionLabel} -% \item[centering] -% float box centered; -% \item[raggedright] -% float flushed to the left; -% \item[raggedleft] -% float flushed to the right. -% \end{Options} -% You may create your own alignment settings, see -% page~\pageref{ssec:decl:marg}. +% \ttabbox +% {\caption{A table in \cmd{\floatbox} and inside \env{floatrow} in raw +% \LaTeX's mode}\label{intro:righttab:raw}} +% {\tabcolsep5\tabcolsep +% \begin{tabular}{|c|c|}\hline A & B \\ C & D \\ \hline +% \end{tabular}} +% \end{floatrow} +% \end{figure}%^^A % -% \noindent -% \DescribeMacro{objectset=}\DescribeMacro{justification=} -% Defines justification of float object -% (float contents). Predefined options are similar to -% \texttt{justification=} key in |\captionsetup|. -% \begin{Options}{\OptionLabel} -% \item[justified] -% Typesets the object text as a normal paragraph. (This is the default.) +% 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 +% 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, +% |\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 +% +% \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. % -% \item[centering] -% Each line of the object text will be centered. +% 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 % -% \item[raggedright] -% Each line of the object text will be moved to the left margin. +% \RestoreSpaces +% \subsection{Usage of Footnotes Inside Float Environment} +% \label{sec:floatfootnote} % -% \item[RaggedRight] -% Each line of the object text will be moved to the left margin, too. -% But this time the command |\RaggedRight| of the \pkg{ragged2e} package -% will be used to achieve this. This difference is that this time -% the word breaking algorithm of \TeX\ will work inside the object text. +% 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. % -% \item[raggedleft] -% Each line of the object text will be moved to the right margin. +% 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. +% 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}| +% \end{Quote}% +% \DeleteShortVerb{\|}% +% \begin{table}[H]\floatsetup{footnoterule=limited,footskip=\skip\footins} +% \ttabbox +% {\caption{Table with footnote}%^^A +% \label{tab:floatfnote}}%^^A +% {\extrarowheight1pt +% \begin{tabular}{|l|c|c|} +% \hline +% \thead{Column head} & \thead{Data I} & \thead{Data II} \\ +% \hline +% First row & \phantom01 & 2\mpfootnotemark[1] \\ +% Second row & \phantom06\mpfootnotemark[1] & 4\mpfootnotemark[1] \\ +% Third row & 28\mpfootnotemark[1] & 8\mpfootnotemark[1] \\ +% \hline +% \end{tabular}%^^A +% \footnotetext[1]{Even numbers.}} +% \end{table}% +% \MakeShortVerb{\|}% % -% \item[RaggedLeft] -% Analogous to |RaggedRight|. +% 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.) % -% \end{Options} -% You may also create your own settings (see -% page~\pageref{ssec:decl:rule}) +% \RestoreSpaces +% \subsubsection{The Legend-Like Macro}\label{subsec:floatfoot} % -% \noindent -% \DescribeMacro{floatwidth=} -% You may use this key for redefinition of width of floats below. -% You may use -% \begin{quote} -% |floatwidth=.6\hsize| -% \end{quote} -% or -% \begin{quote} -% |floatwidth=7cm| -% \end{quote} -% This key could be useful in settings for one float -% environment (see about |\thisfloatsetup| on the page -% \pageref{thisfloatsetup}). +% 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}). % -% If you use option \texttt{floatwidth=sidefill} for objects with beside -% captions (in the case of key \texttt{capbesidewidth=} uses absolute -% value, like \texttt{4cm}) the object (instead of caption) occupies the -% rest space of float box (see appendix, figure~\ref{fig:capbeside:trick} -% on the page~\pageref{fig:capbeside:trick}) +% 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]}. +%\begin{Quote} +%|\begin{table}| +%|\ttabbox| +%| {\caption{...}\label{...}}| +% \verb+ {\begin{tabular}{...}+ +%| ...| +%| \end{tabular}%| +%| \floatfoot*{`Data I' column ...}}| +%|\end{table}| +%\end{Quote} +% \DeleteShortVerb{\|}% +% \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}% +% \MakeShortVerb{\|}% % -% \subsubsection{Defining Float Separators}\label{sec:set:sep} +% \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. % -% \noindent -% \DescribeMacro{floatrowsep=} -% Sets separation material between beside float boxes (defined -% by |\floatbox| macro etc., see page~\pageref{sec:floatbox}) -% inside \env{floatrow} environment (see page~\pageref{sec:floatrow}). +% 2)\enskip If you use both commands |\floatfoot| and |\footnote| +% inside one float box, the |\floatfoot| appears above |\footnote| +% contents. % -% \noindent -% \DescribeMacro{capbesidesep=} -% Sets separation material between object and beside caption. +% 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. % -% Both key settings work similarly to |labelsep=| key -% from |\captionsetup|. % -% They use following predefined options: -% \begin{Options}{\OptionLabel} -% \item[columnsep] -% horizontal skip${}={}$|\columnsep|; -% \item[quad] -% horizontal skip${}={}1$\,em; -% \item[qquad] -% horizontal skip${}={}2$\,em; -% \item[hfil] -% horizontal skip${}={}1$\,fil (like |\hfil|); -% \item[hfill] -% horizontal skip${}={}1$\,fill (like |\hfill|); -% \item[none] -% empty separator. -% \end{Options} +% \RestoreSpaces +% \subsection{Fine Tuning of Vertical Spaces of Float} +% \label{sec:FBabskips} % -% \subsubsection{Defining Float Rules/Skips}\label{sec:set:rule} +% At the final variant of document you may need to correct vertical +% spaces between float and main text, between float object and +% caption. % -% \DescribeMacro{precode=} -% Defines skip, rule or other analogous code above float box. +% To change space between float box and main text there you may use +% two simple commands |\FBaskip| and |\FBbskip|. For example define +% \begin{verse} +% |\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 +% some of wrapped figures.\nopagebreak % -% \noindent -% \DescribeMacro{rowprecode=} -% 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}). +% Use |\vspace| command for vertical space correction around float +% object\footnote{The plain float 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.}. % -% \noindent -% \DescribeMacro{midcode=} -% Defines skip, rule or other analogous code between -% caption above/below and float object. +% \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 % -% \noindent -% \DescribeMacro{postcode=} -% Defines skip, rule or other analogous code below float box. +% 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. % -% \noindent -% \DescribeMacro{rowpostcode=} -% 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}). +% \clearpage +% \section{Float Layout Settings}\label{sec:floatsetup} % -% For all these keys there are predefined following options (settings -% were taken from styles created in \pkg{float} package): -% \begin{Options}{\OptionLabel}\makeatletter\@itempenalty10000\makeatother -% \item[none] -% absent code; -% \item[thickrule] -% thick rule (.8pt) with 2pt vertical skip below---rule above float box -% in \texttt{ruled} style; -% \item[rule] -% rule of default thickness (.4pt), with 2pt vertical skips above and -% below---middle rule in \texttt{ruled} style; -% \item[lowrule] -% rule of default thickness (.4pt), with 2pt vertical skip above---rule -% below float box in \texttt{ruled} style; -% \item[captionskip] -% vertical skip equal to value, defined in |captionskip=| key. -% \end{Options} -% You may create your own options, see page~\pageref{ssec:decl:rule}. +% 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. % -% \subsubsection{Defining Float Frames} +% 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. % -% \DescribeMacro{framestyle=} -% Defines type of frame; the -% \pkg{floatrow} package offers only one type of frame: -% \begin{Options}{\OptionLabel} -% \item[fbox] -% Standard frame. -% \end{Options} -% There are options for additional frames, offered by \pkg{fr-fancy} -% package, installed with \env{floatrow}: -% \begin{Options}{\OptionLabel} -% \item[colorbox] -% colored frame, needs also \pkg{color} package; -% if not defined, there is used |\fbox|; -% \item[doublebox] -% double frame, needs also \pkg{fancybox} package; -% \item[shadowbox] -% frame with shadow, needs also \pkg{fancybox} package; -% \item[wshadowbox] -% modified \texttt{shadowbox} frame (frame with ``white shadow''), -% needs also \pkg{fancybox} package; -% \end{Options} +% The common layout and modification for captions and special +% settings for +% each type of float is supported by \package{caption} package, version~3.x. % -% \noindent -% \DescribeMacro{framearound=} -% Declares element of float box to be framed: -% \begin{Options}{\OptionLabel} -% \item[object] -% float object contents; -% \item[all] -% full float box including object, caption, and any foot text. -% \end{Options} +% 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} +% documentation (version 3.0 and later)}. % -% \noindent -% \DescribeMacro{framefit=} -% 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; -% 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}). +% \DescribeMacro{\floatsetup} +% You may use layout settings stuff as \package{floatrow} option in +% the |\usepackage| line. +% \begin{Quote} +% |\usepackage[|\meta{options}|]{floatrow}|\quad. +% \end{Quote} +% You may write +% \begin{Quote} +% |\usepackage[style=boxed,font=small]{floatrow}|\quad. +% \end{Quote} +% The same result you get with the |\floatsetup| command: +% \begin{Quote} +% |\floatsetup{style=boxed,font=small}|\quad. +% \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. % -% \noindent -% \DescribeMacro{frameset=} -% The parameters for chosen frame; there are no options -% for this key, just write something like: -% \begin{quote} -% |frameset={\fboxrule1pt\fboxsep12pt}|\quad. -% \end{quote} +% The |\floatsetup| command has following form: +% \begin{Quote} +% |\floatsetup|\oarg{float type}\marg{options}\quad. +% \end{Quote} % -% \noindent -% \DescribeMacro{colorframeset=} -% Offered by \pkg{fr-fancy} package\footnote{Use -% \texttt{fancyboxes=yes} option in \cmd{\usepackage} line.}: defines -% concrete color box (default is standard |\fbox|). -% In current version you may use only |\fcolorbox| as color box. You -% may define your color box like -% \begin{quote} -% |colorframeset={\fcolorbox{white}{yellow}}|\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 +% \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.} % -% \subsubsection{Defining Float Skips} +% 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 +% \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): +% \begin{itemize} +% \item +% |\floatsetup[widefigure]|\label{setup:widefigure}---the ``strongest'' settings; +% if they absent, package uses settings from next item; +% \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; +% \item +% |\floatsetup[figure]|; +% if they absent, package uses settings from +% optional argument in |\usepackage| line or |\floatsetup{...}| +% command; if they absent---default package settings +% (see page~\pageref{sec:default}); +% \end{itemize} +% \item +% Wrapped floats (\env{wrapfigure}, used width \package{wrapfig} package): +% \begin{itemize}%\itemsep0pt\parskip.5\parskip +% \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 +% \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 +% \item |\floatsetup[widerotfigure]|\label{setup:widerotfigure}; +% \item |\floatsetup[widerotfloat]|\label{setup:widerotfloat}; +% \item |\floatsetup[rotfigure]|; +% \item |\floatsetup[rotfloat]|; +% \item |\floatsetup[figure]|; +% \end{itemize} +% \item +% Floats with beside captions (please note, that settings in these options are limited, see below): +% \begin{itemize}%\itemsep0pt +% \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}. +% \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 % -% \DescribeMacro{captionskip=} -% 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}: -% \begin{quote} -% |captionskip=10pt|\quad. -% \end{quote} +% The next few sections describe keys of |\floatsetup| macro. % -% \noindent -% \DescribeMacro{footskip=} -% Defines vertical space before foot material and footnotes. -% \begin{quote} -% |footskip=4pt|\quad, -% \end{quote} -% or -% \begin{quote} -% |footskip=\skip\footins|\quad. -% \end{quote} +% \subsection{Floatsetup Keys}\label{sec:floatkeys} % -% \penalty-5000 -% \subsubsection{Defining Float Footnote Rule's Style} -% \label{sec:footnotestyle} +% \subsubsection{Float Style} % -% \DescribeMacro{footnoterule=} -% Defines type of footnote rule for footnotes inside float environment. -% \begingroup -% \makeatletter\@beginparpenalty10000\makeatother -% \begin{Options}{\OptionLabel} -% \item[normal] -% standard \LaTeX{} definition, used in \env{minipage} environments, the -% width of it equals to 0.4 of current with of text (|\columnwidth|); -% \item[limited] -% like previous one but max width of footnote rule equals to the value -% defined by |\frulemax| command, like: -% \begin{quote} -% |\newcommand\frulemax{1in}| -% \end{quote} -% \item[fullsize] -% rule to full current text width. -% \item[none] -% Absent rule. +% \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} 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, +% see page~\pageref{ssec:declstyle}. % \end{Options} -% \endgroup % -% \label{setup:end} +% As you may see in the table~\ref{tab:floatlayouts}, there are included all float styles +% which emulate co-named ones from the \package{float} package. % -% %^^A ???needed? -% \subsubsection{Loading Style for Fancy Boxes} +% Please note, that usage of \texttt{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 % -% \DescribeMacro{fancyboxes=} -% This boolean key loads \pkg{fr-fancy} package. This key you may use -% only in optional argument in |\usepackage| line. +% 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 +% \begin{Quote} +% |\captionsetup[figure]{style=ruled}|\quad . +% \end{Quote} +% +% \begingroup\vfill +% \jot3pt\tabcolsep1.5\tabcolsep +% \newlengthtocommand\settowidth\Icolumn{\small\texttt{wshadowboxx}} +% \newlengthtocommand\settowidth\IIcolumn{\small\texttt{framestyle=wshadowbox}} +% \newlengthtocommand\setlength\IIIcolumn{\textwidth-\Icolumn-\IIcolumn +% -6\tabcolsep-1.6pt} +% \newcommand\leftcell[2][16.5mm]{%^^A% +% \hspace*{-\tabcolsep}\begin{tabular}[t]{>{% +% \noindent +% \vphantom{\small()\mpfootnotemark[1]}} +% p{\hsize}} +% #2\unskip\botstrut\end{tabular}\hspace*{-\tabcolsep}% +% } +% \begin{longtable}{|>{\extrarowheight0pt\def\arraystretch{.75}\ttfamily}p{\Icolumn} +% |>{\extrarowheight0pt\def\arraystretch{.75}\ttfamily}p{\IIcolumn} +% |>{\parindent1em\topstrut}p{\IIIcolumn}<{\botstrut}|} +% \caption{Float layout styles}\label{tab:floatlayouts}\\ +% \hline +% \hfil\thead{Style} & +% \hfil\thead{\cmd{\floatsetup} keys} & +% \hfil\thead{Description} \\ +% \hline +% \endfirsthead +% \caption[]{Float layout styles \textmd{(\emph{Continued})}}\\ +% \hline +% \hfil\thead{Style} & +% \hfil\thead{\cmd{\floatsetup} keys} & +% \hfil\thead{Description} \\ +% \hline +% \endhead +% \caption[]{Float layout styles \textmd{(\emph{Finished})}}\\ +% \hline +% \hfil\thead{Style} & +% \hfil\thead{\cmd{\floatsetup} keys} & +% \hfil\thead{Description} \\ +% \hline +% \endlasthead +% \multicolumn{3}{r@{}}{\topstrut\emph{Continued on next page}} +% \endfoot +% \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]}} +% & \leftcell{\meta{none}} +% &The style \texttt{plain} is standard \LaTeX's layout. Put 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}) +% \\\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,\\ +% 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. +% 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}) +% \\\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[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 +% 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, +% but around all float elements: caption, object and foot material +% (see example on the page~\pageref{fig:wrapfig:WcatII}) +% \\ \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}} +% & \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} +% 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} +% \\ \hline +% \leftcell{\texttt{doublebox}\smash{\mpfootnotemark[4]} +% \\ \botstrut\\ \hline\topstrut\texttt{Doublebox}\\ +% \botstrut\\ \hline\topstrut\texttt{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} +% \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}} +% & \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 +% 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. +% \\\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 +% \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 +% \rule{1in}{.4pt}\vspace{2pt}\parindent15pt % -% \subsection{Settings for One Float} +% \mpfootnotemark[1]{The styles co-named and analogous to \package{float} package style.} % -% \DescribeMacro{\thisfloatsetup}\label{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 +% \mpfootnotemark[2]{This style used in the sample file \file{frsmaple01.tex}} % -%^^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 in |\floatsetup| stuff. +% \mpfootnotemark[3]{This style used in the sample file \file{frsmaple02.tex}} % +% \mpfootnotemark[4]{During usage of these styles in +% \env{floatrow} environment you ought to enlarge +% space between floats, using key \texttt{floatrowsep}.} +% }} +% \end{longtable} % -% \subsection{Clearing of Previous Float Type Settings} % -% \DescribeMacro{\clearfloatsetup} -% If you want to get rid of parameters marked -% for an automatic use within a particular environment -% you can use the command\footnote{See also documentation -% of \pkg{caption} package about \cmd{\clearcaptionsetup} command}: -% \begin{quote} -% |\clearfloatsetup|\marg{Typ}\quad. -% \end{quote} +% \endgroup % -% %^^A !!!for footnotes! -% %^^A \newpage % -% \subsection{The Default Float Type Settings}\label{sec:default} % -% The following keys and options are switched on when \pkg{floatrow} -% package loaded. They equal to \texttt{plain} style: -% \begin{Options}{\OptionLabel} -% \item[font=normalsize] -% \item[footfont=footnotesize] -% \item[capposition=bottom] -% \item[capbesideposition=inside] -% \item[capbesideframe=no] -% \item[footposition=default] -% \item[heightadjust=none] -% \item[facing=no] -% \item[margins=centering] -% \item[objectset=centering] %^^A($\equiv$\texttt{justification=centering}, \pkg{caption}) -% \item[floatrowsep=columnsep] -% \item[capbesidesep=columnsep] -% \item[precode=none] -% \item[rawprecode=none] -% \item[postcode=none] -% \item[rawpostcode=none] -% \item[midcode=captionskip] -% \item[captionskip=10pt] -% \end{Options} +% \RestoreSpaces % +%^^A\pagebreak[4] % -% \subsection{Defining new options} +% \subsubsection{Font settings}\label{setup:start} % -% In the next few sections goes a small list of commands, which -% define key options for |\floatsetup|. The examples of option -% definitions were taken mainly from \pkg{floatrow} definitions. +% \DescribeMacro{font}\label{setup:font}%^^A +% Defines font for float object contents. Option +% analogous to |font=| key in |\captionsetup| stuff.\nopagebreak % -% \subsubsection{Float Style} +% Available font setting options: % -% \DescribeMacro{\DeclareFloatStyle} -% Defines new float style. Example shows definition of new float -% style \texttt{MyBoxed}. The figures~\ref{fig:plain:MyBoxed}, and -% some others in current documentation show result. -%\begin{verbatim} -%\DeclareFloatStyle{MyBoxed}{style=Boxed,captionskip=5pt, -% frameset={\fboxrule1pt\fboxsep12pt}} -%\floatsetup[figure]{style=MyBoxed} -%\end{verbatim} +% \begin{Options}{\OptionLabel} +% \item[scriptsize] {\scriptsize Very small size}\allowitembreaks[-4] +% \item[footnotesize] {\footnotesize The size usually used for footnotes}\allowitembreaks +% \item[small] {\small Small size} +% \item[normalsize] {\normalsize Normal size} +% \item[large] {\large Large size} +% \item[Large] {\Large Even larger size} % -% \begingroup +% \item[up] {\upshape Upright shape} +% \item[it] {\itshape Italic shape} +% \item[sl] {\slshape Slanted shape} +% \item[sc] {\scshape Small Caps shape}\pagebreak[2] % -% \floatsetup[figure]{style=MyBoxed} -% \begin{figure}[!t] -% {\input{BlackCat.picture}}% -% \caption{%^^A -% Plain figure in \texttt{MyBoxed} style}% -% \label{fig:plain:MyBoxed}% -% \floatfoot{Much more, more and more and more and more and more and -% more and more and more text inside macro \cmd{\floatfoot}}% -% \end{figure} +% \item[md] {\mdseries Medium series}\pagebreak[2] +% \item[bf] {\bfseries Bold series}\pagebreak[2] % -% The same result you get with: -%\begin{verbatim} -%\floatsetup[figure]{style=Boxed,captionskip=5pt, -% frameset={\fboxsep12pt\fboxrule1pt}} -%\end{verbatim} -% \endgroup +% \item[rm] {\rmfamily Roman family} +% \item[sf] {\sffamily Sans Serif family} +% \item[tt] {\ttfamily Typewriter family} +% \item[...] +% You may create your own options with |\DeclareFloatFont| command, +% see page~\pageref{ssec:declfont}. +% \end{Options} % -% \subsubsection{Defining Float Rules/Skips}\label{ssec:decl:rule} +% You may set font for float object like +% \begin{Quote} +% |font=small| +% \end{Quote} +% this option is used in current documentation, or +% \begin{Quote} +% |font={small,sf}|\quad . +% \end{Quote} % -% \DescribeMacro{\DeclareFloatVCode} -% 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. -% \begin{quote} -% |\DeclareFloatVCode{thickrule}{\hrule height.8ptdepth0pt%|\\ -% \strut\qquad|\kern2pt}| -% \end{quote} +% \addvspace\medskipamount\noindent +% \DescribeMacro{footfont}\label{setup:footfont}%^^A +% 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 +% of float foot text equals to footnote text: |footfont=footnotesize|. % -% \subsubsection{Float Object Justification}\label{ssec:decl:marg} +% \RestoreSpaces +% \subsubsection{Position of Caption and of Other Elements} % -% \DescribeMacro{\DeclareObjectSet} -% You may define justification for \texttt{objectset=} key like\nopagebreak: -% \begin{quote} -% |\DeclareObjectSet{centering}{\centering}| -% \end{quote} -% In option's definition you may try to include any regular commands -% which you need to put before each object contents in float -% environment\footnote{You may also use key options declared by -% \cmd{\DeclareCaptionJustification} command of \pkg{caption} package -% as options for \texttt{objectset=} key.}.\par -% \strut\par\kern-\baselineskip +% \DescribeMacro{capposition}\label{setup:capposition}%^^A +% Defines position of captions. It is similar to \texttt{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 +% \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 +% 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, +% see tables~\ref{tab:row:tabIII:CAPTOP}--\ref{tab:row:tabIV:CAPTOP}; +% \item[bottom] caption below object; +% \item[beside] caption beside object.%^^A +%^^A% \FRmpar{Beside caption and float object}{FAD:BesideCaptionII} +% \end{Options} % -% \subsubsection{Float Box Alignment (and Some Other Settings)} -% \label{ssec:decl:marg} +% Compare two examples: +% \begin{Quote} +% |\floatsetup[table]{|\hyperref[setup:style]{\texttt{style}}%^^A +% |=plain,capposition=top}%|${}\equiv\texttt{style=plaintop}$ +% \end{Quote} +% \DeleteShortVerb{\|}% +% \begingroup +% \floatsetup[table]{style=plain,capposition=top} +% \begin{table}[H] +% \begin{floatrow}\tabcolsep2\tabcolsep +% \extrarowheight1pt +% \ttabbox +% {\caption[Long caption of table~I with key \texttt{capposition=top}]%^^A +% {The table~I in the row with long, long, long, long, long, long caption}\label{tab:row:tabIII:captop}}%^^A +% {\begin{tabular}{|l|>{\phantom0}c|>{\phantom0}c|} +% \hline +% \multirowthead{2}[-1ex]{Left Column Head} +% & \multicolumn{2}{c|}{\thead{Data}} \\ +% \cline{2-3} +% & \multicolumn{1}{c|}{\thead{I}} +% & \multicolumn{1}{c|}{\thead{II}} +% \\\hline +% First row & 1 & 2 \\ +% Second row & 3 & 4 \\ +% Third row & 6 & 8 \\ +% Fourth row & \llap{1}0 & \llap{1}6 \\ +% \hline +% \end{tabular}} % -% \DescribeMacro{\DeclareMarginSet}\label{fsetup:besmarg}%^^A -% You may define box alignment for float box (\texttt{margins=} key) like: -% \begin{quote} -% |\DeclareMarginSet{center}{%|\\ -% | \setfloatmargins{\hfil}{\hfil}}| -% \end{quote} -% or like (see also sample files) -% \begin{quote} -% |\DeclareMarginSet{outside}{%|\\ -% | \setfloatmargins*{\hfil}{}}| -% \end{quote} +% \ttabbox +% {\caption[Table~II in the row with caption with key \texttt{capposition=top}]%^^A +% {Table~II in the row with caption}\label{tab:row:tabIV:captop}}%^^A +% {\begin{tabular}{|l|c|c|c|} +% \hline +% \multirowthead{2}[-1ex]{Column Head} +% & \multicolumn{3}{c|}{Data} \\ +% \cline{2-4} +% & \thead{I} & \thead{II} & \thead{III} \\ +% \hline +% First row & 1 & 2 & \phantom01 \\ +% Second row & 3 & 4 & \phantom06 \\ +% Third row & 6 & 8 & 28 \\ +% \hline +% \end{tabular}} +% \end{floatrow} +% \end{table} +% \endgroup +% \MakeShortVerb{\|}% % -% Non-starred form of |\setfloatmargins| defines left and right -% margin. -% \begin{quote} -% |\setfloatmargins{|\meta{left margin}|}{|\meta{right margin}|}| -% \end{quote} +% \begin{Quote} +% |\floatsetup[table]{|\hyperref[setup:style]{\texttt{style}}%^^A +% |=plain,capposition=TOP}%|${}\equiv\texttt{style=Plaintop}$ +% \end{Quote} +% \DeleteShortVerb{\|}% +% \begingroup +% \floatsetup[table]{style=plain,capposition=TOP} +% \begin{table}[H] +% \begin{floatrow}\tabcolsep2\tabcolsep +% \extrarowheight1pt +% \ttabbox +% {\caption[Long top-aligned caption of table~I key \texttt{capposition=TOP}]%^^A +% {The table~I in the row with long, long, long, long, long, long caption, +% aligned by the top line}\label{tab:row:tabIII:CAPTOP}}%^^A +% {\begin{tabular}{|l|>{\phantom0}c|>{\phantom0}c|} +% \hline +% \multirowthead{2}[-1ex]{Left Column Head} +% & \multicolumn{2}{c|}{\thead{Data}} \\ +% \cline{2-3} +% & \multicolumn{1}{c|}{\thead{I}} +% & \multicolumn{1}{c|}{\thead{II}} +% \\\hline +% First row & 1 & 2 \\ +% Second row & 3 & 4 \\ +% Third row & 6 & 8 \\ +% Fourth row & \llap{1}0 & \llap{1}6 \\ +% \hline +% \end{tabular}} % -% Starred form, |\setfloatmargins*|, defines facing layout: inside and -% outside margin. -% \begin{quote} -% |\setfloatmargins*{|\meta{inside margin}|}{|\meta{outside margin}|}| -% \end{quote} +% \ttabbox +% {\caption[Table~II in the row with caption, aligned +% at the top line with key \texttt{capposition=TOP}]{Table~II in the row with caption, aligned +% at the top line}\label{tab:row:tabIV:CAPTOP}}%^^A +% {\begin{tabular}{|l|c|c|c|} +% \hline +% \multirowthead{2}[-1ex]{Column Head} +% & \multicolumn{3}{c|}{Data} \\ +% \cline{2-4} +% & \thead{I} & \thead{II} & \thead{III} \\ +% \hline +% First row & 1 & 2 & \phantom01 \\ +% Second row & 3 & 4 & \phantom06 \\ +% Third row & 6 & 8 & 28 \\ +% \hline +% \end{tabular}} +% \end{floatrow} +% \end{table} +% \endgroup +% \MakeShortVerb{\|}% % -% You may set even much more complex definition: -% \begin{quote}\leftmargin0pt -% |\DeclareObjectSet{facingrule}{%| -% |\setfloatmargins*{%|\\ -% | \floatfacing{\hskip-12pt\vrule width4pt\hskip8pt\hfill}%|\\ -% | {\hfill\hskip8pt\vrule width4pt\hskip-12pt}}{}}| -% \end{quote} -% 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. +% \emph{Note}. The option \texttt{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] % -% The |\setfloatmargins| consists of three macros which set margins -% for three main variants of float positions: +% \medskip\noindent +% \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[\cmd{\floatboxmargins}]sets left/right margins around alone -% float box; -% \item[\cmd{\floatrowmargins}]sets left/right margins around -% \env{floatrow} environment; -% \item[\cmd{\floatcapbesidemargins}]sets left/right margins around -% alone float box with beside caption. +% \item[left] +% caption is printed to the left side of object; +% \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; +% \item[outside] +% least popular option: caption printed in +% outer side of page if |twoside| option switched on +% in document class. % \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. % -% \emph{Notes}. 1)\enskip The \pkg{floatrow} expands some settings of table layout -% to the \env{longtable} environment, so you may set |\LTleft| and -% |\LTright| parameters inside |\setfloatmargins| command. For example, -% \texttt{centering} option was defined like: -% \begin{quote} -% |\DeclareMarginSet{centering}{\setfloatmargins{\hfill}{\hfill}%|\\ -% | \LTleft=\fill \LTright=\fill}| -% \end{quote} +% For vertical position there are defined three options +% \begin{Options}{\OptionLabel}\samepage +% \item[top] +% caption aligned to the top of object; +% \item[bottom] +% caption aligned to the bottom of object; +% \item[center] +% caption aligned to the center of float contents. +% \end{Options} +% You may define position of beside caption by following: +% \begin{Quote} +% |capbesideposition={top,outside}|\quad. +% \end{Quote} +% See examples in file \file{frsample02.tex} with all variants of +% position of captions beside float objects. % -% 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 must restore correct -% font size, family, and shape 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} +% \medskip\noindent +% \DescribeMacro{capbesidewidth}\label{setup:capbesidewidth}%^^A +% Defines width of beside caption. This option could be more preferable +% in settings for one environment, see about |\thisfloatsetup| on the +% page~\pageref{thisfloatsetup}. You may set: +% \begin{Quote} +% |capbesidewidth=4cm|\quad. +% \end{Quote} +% 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 +% 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}). % +% \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 +% 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}. +% \newcommand\TEXTBOX[1][]{\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 +% 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}}| +% |\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}| +% |\begin{figure}| +% | ...| +% | \caption{...}\label{...}| +% |\end{figure}| +% \end{Quote}% +% \floatsetup[figure]{style=Boxed,frameset={\fboxsep8pt},capbesideframe=no,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 +% \label{capbesideframeI}}% +% \end{figure} +% \begin{Quote} +% \meta{preamble} +% |\floatsetup[figure]{...,capbesideframe=yes,...}| +% |...| +% \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{Quote}% +% \floatsetup[figure]{capbesideframe=yes} +% \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}% +% \label{row:text:I}}% +% \end{figure} +%\endgroup % -% \subsubsection{Defining Float Separators} +% \emph{Floatrow note.} For examples above was also used |\captionsetup{strut=no}| sentence, +% which cancels struts at the beginning and end of caption (|\strut|: the rules with height +% and depth, which are set accordingly to current |\baselineskip|). % -% \DescribeMacro{\DeclareFloatSeparators}\label{decl:sep}%^^A -% You may to define separator -% between float boxes, or float object and beside caption, for example: -% \begin{quote} -% |\DeclareFloatSeparators{columnsep}{\hskip\columnsep}| -% \end{quote} -% or more complex, using \pkg{color} package, and |\floatfacing| macro -% (do not forget the \texttt{facing=yes} key): -% \begin{quote} -% |\DeclareFloatSeparators{colorsep}%|\\ -% | {\begingroup\color{blue}%|\\ -% | \floatfacing{\hskip14pt\vrule width1.8pt\hskip2pt}%|\\ -% | {\hskip2pt\vrule width1.8pt\hskip14pt}%|\\ -% | \endgroup}| -% \end{quote} +% \penalty-5000 +% \RestoreSpaces +% \subsubsection{Defining Float Foot Position (Legends and Footnotes)}% +% \label{sec:footposition} % -% 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\strut\par -% \kern-\baselineskip +% \DescribeMacro{footposition}\label{setup:footposition}%^^A +% Defines position of |\footnote|'s and |\floatfoot|'s in float box +% with above/below captions. +% \par\RestoreSpaces +% \begin{Options}{\OptionLabel} +% \item[default] +% if caption above float object foot material is placed below float +% object otherwise---below caption; +% \item[caption] +% always placed below caption; +% \item[bottom] +% always placed at the bottom of float box. +% \end{Options} +% See examples in file \file{frsample01.tex}. In the case of caption +% beside float object, footnotes and foot text always placed below +% caption. % -% \subsubsection{Float font} +% \subsubsection{Defining Vertical Alignment}\label{sec:heightadjust} % -% \DescribeMacro{\DeclareFloatFont} -% With this macro you may define new option -% for font (\texttt{font=} key) of float contents. This macro works -% like |\DeclareCaptionFont| in \pkg{caption} package. (You may also -% use key options declared by |\DeclareCaptionFont| command.)\par -% \strut\par\kern-\baselineskip +% \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 +% \begin{Options}{\OptionLabel}\samepage +% \item[all] +% adjust both caption and object heights (e.g. for styles +% \texttt{Ruled} and \texttt{BOXED}); +% \item[caption] +% adjust caption heights (e.g. for \texttt{Plaintop} style); +% \item[object] +% adjust object heights (e.g. for \texttt{Boxed} style); +% \item[none] +% nothing to be adjusted; +% \item[nocaption] +% no adjusting for captions; +% \item[noobject] +% no adjusting for objects; +% \end{Options} +% You may define height adjustment even as followed: +% \begin{Quote} +% |heightadjust={caption,noobject}|\quad. +% \end{Quote} % -% \subsubsection{Defining Float Footnote Rule's Style} +% \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} +% 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| +% 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; +% \item[b] +% aligns objects by bottom line; +% \item[s] +% stretches objects by full height (if it is possible). +% \end{Options} % -% \DescribeMacro{\DeclareFloatFootnoterule} -% You may define new footnoterule (\texttt{footnoterule=} key) like: -% \begin{quote} -% |\DeclareFloatFootnoterule{fullsize}{%|\\ -% | \kern-3\p@|\\ -% | \hrule \@width\hsize\kern 2.6\p@}| -% \end{quote} -% Remember, that summary vertical height for footnote rule must be -% equal to~0pt. +% 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} +% |\begin{figure}| +% |\begin{floatrow}| +% | \ffigbox[\FBwidth+2cm]| +% | {...}| +% | {\caption{The left ...}\label{...}}%| +%| | +% | \ffigbox[\FBwidth+2cm]| +% | {\caption{The beside ...}\label{...}}| +% | {...}| +% |\end{floatrow}| +% |\end{figure}| +%\end{Quote}% +% \begin{figure}[h!]\floatsetup{heightadjust=object,valign=c}\killfloatstyle +% \begin{floatrow} +% \ffigbox[\FBwidth+2cm] +% {\input{BlackCat.picture}} +% {\caption{The left beside figure uses settings for vertical centering}% +% \label{intro:leftfig:valigned}}% +% +% \ffigbox[\FBwidth+2cm] +% {\caption{The beside figure at the right side uses settings for vertical centering}%^^A +% \label{intro:rightfig:valigned}} +% {\unitlength1.25\unitlength\input{Cat.picture}} +% \end{floatrow} +% \end{figure}%^^A % -% \section{Creation of New Float Type} +% \subsubsection{Facing Layout} % -% \DescribeMacro{\DeclareNewFloatType} -% For creation of new float type there was created -% |\DeclareNewFloatType| command which also uses -% \meta{key}${}=\nobreak {}$\meta{value} mechanism: -% \begin{quote} -% |\DeclareNewFloatType{|\meta{type}|}{|\meta{options}|}| -% \end{quote} -% The \meta{type} argument includes the new float environment name.\\ -% The \meta{options} could include following keys: +% \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. % -% \noindent -% \DescribeMacro{placement=} -% 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 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}. % -% \noindent -% \DescribeMacro{name=} -% Defines the name of environment in the caption -% label. (As default for caption label is declared the -% name of environment.) +% \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} % % \noindent -% \DescribeMacro{fileext=} -% Defines the file extension from which -% gathered list of floats. (As default, captions -% are gathered in \texttt{lox}-file). +% \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 +% \begin{Options}{RaggedRigh} +% \item[justified] +% Blocks (in the case of a~picture or text box) +% moved to the left, the text aligned as a normal paragraph (without indentation). (This is the default.) +% +% \item[centering] +% Blocks centered, each line of the object text will be centered. +% +% \item[raggedright] +% Blocks moved to the left, each line of the text shoved to the left margin. +% +% \item[RaggedRight] +% As in previous item, each line of the text shoved to the +% left margin, too. +% But this time the command |\RaggedRight| of the \package{ragged2e} package +% will be used to achieve this. This difference is that this time +% the word breaking algorithm of \TeX\ will work inside the text. +% +% \item[raggedleft] +% Blocks moved to the right, +% each line of the text shoved to the right margin. +% +% \item[RaggedLeft] +% Analogous to |RaggedRight|. +% +% \item[...] +% You may also create your own settings with |\DeclareObjectSet| command (see +% page~\pageref{ssec:decl:oset}) +% \end{Options} +% +% \RestoreSpaces +% \subsubsection{Defining Width of Object}\label{sec:wd:object} % % \noindent -% \DescribeMacro{within=} -% Declares the section head of document, by which -% current float resets its numbering to zero. If this key absent, -% float increases during whole documentation. +% \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}) +% +% \RestoreSpaces +% \subsubsection{Defining Float Separators}\label{sec:set:sep} % % \noindent -% \DescribeMacro{relatedcapstyle=} -% In \pkg{float} package the non-starred -% \cmd{\newfloat}/\cmd{\restylefloat} macros attach related -% caption style for float styles (see section \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} +% \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}). % -% The |\DeclareNewFloatType| was used for defining of \env{Example} -% environment (see page \pageref{exa1.1}). It consists of following -% code: -% \begin{quote} -% |\DeclareNewFloatType{Example}%|\\ -% | {placement=t,within=section,fileext=lox}| -% \end{quote} +% \addvspace\smallskipamount\noindent +% \DescribeMacro{capbesidesep}\label{setup:capbesidesep}%^^A +% Sets separation material between object and beside caption. % -% \section{Borrowed code} +% \RestoreSpaces +% Both key settings work similarly to |labelsep=| key +% from |\captionsetup|. +%^^A +% They use following predefined options: +% \begin{Options}{\OptionLabel} +% \item[columnsep] +% horizontal skip${}={}$|\columnsep| (default); +% \item[quad] +% horizontal skip${}={}1$\,em; +% \item[qquad] +% horizontal skip${}={}2$\,em; +% \item[hfil] +% horizontal skip${}={}1$\,fil (like |\hfil|); +% \item[hfill] +% horizontal skip${}={}1$\,fill (like |\hfill|); +% \item[none] +% empty separator. +% \item[...] +% You may also create your own settings with\\ |\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. % -% \subsection{\pkg{float} Package: Compatibility}\label{sec:floatst} +% \subsubsection{Defining Float Rules/Skips}\label{sec:set:rule} % -% The \pkg{floatrow} package includes some macros of \pkg{float} -% (version v1.3d, dated 2001/11/08) -% with necessary modifications. In the case of loaded \pkg{float} -% package before \pkg{floatrow} you'll get error message. +% \DescribeMacro{precode}\label{setup:precode}%^^A +% Defines skip, rule or other analogous code above float box. % -% \emph{Note}. -% In the case of some packages -% could call \pkg{float} package\footnote{I'm aware about \pkg{algorithm} -% package.} the \pkg{floatrow} package loads code which emulates -% already loaded \pkg{float} package v1.3, so next requests for -% \pkg{float} are ignored. This will help to avoid strange error messages -% in the case of these packages loaded \emph{after} \pkg{floatrow}. -% Please note that packages, which load \pkg{float} must be loaded -% \emph{after} \pkg{floatrow}. -% -% I hope that old documents could work with \pkg{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 -% 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 \pkg{floatrow} package -% supports obsolete macros but there is no guarantee.}. See also -% section~\ref{float-obs} about translation of these commands -% into |\floatsetup| command. +% \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}). % -% Sections, signed with ``[\pkg{float}]'' were borrowed from -% \pkg{float}'s documentation. +% \addvspace\smallskipamount\noindent +% \DescribeMacro{midcode}\label{setup:midcode}%^^A +% Defines skip, rule or other analogous code between +% caption above/below and float object. % -% \subsubsection{The User Interface---New Floats [\pkg{float}]} -% \label{sec:floatborrowI} +% \addvspace\smallskipamount\noindent +% \DescribeMacro{postcode}\label{setup:postcode}%^^A +% Defines skip, rule or other analogous code below float box. % -% \DescribeMacro{\newfloat} -% The most important command in \pkg{float} -% is the |\newfloat| command\footnote{It doubles the -% \cmd{\DeclareNewFloatType} command.}. It is patterned on -% |\newtheorem|. The |\newfloat| command takes three required and -% one optional argument; it is of the form -% \begin{quote} -% \hspace*{\MacroIndent}|\newfloat{|\meta{type}|}{|^^A -% \meta{placement}|}{|\meta{ext}|}[|\meta{within}{\tt]} -% \end{quote} -% \begin{itemize} -% \item \marg{type} is the `type' of the new class of floats, like -% \texttt{program} or \texttt{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', -% respectively. -% \item \marg{ext} When \LaTeX\ writes the captions to an auxiliary file -% for the list of figures (or whatever), it'll use the job name -% followed by \marg{ext} as a file name. -% \item \oarg{within} Finally, the optional -% argument \meta{within} determines whether floats of this class will -% be numbered within some sectional unit of the document. For example, -% if \oarg{within}${}={}$\texttt{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.}. -% \end{itemize} -% \emph{Floatrow note.} -% There is also created a |\newfloat*| pair, which works similar to -% |\restylefloat*| command (see below). -% \begin{Program} -%\begin{verbatim} -%#include +% \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}). % -%int main(int argc, char **argv) { -% int i; -% for (i = 0; i < argc; ++i) -% printf("argv[%d] = %s\n", i, argv[i]); -% return 0; -%} -%\end{verbatim} -% \caption{The first program. This hasn't got anything to do with the -% package but is included as an example. -% Note the \texttt{ruled} float style.% -% \label{prog1.1}} -% \end{Program} -% \begin{Example}[H] -% \begin{verse} -% |\floatstyle{ruled}|\\ -% |\newfloat{Program}{tbp}{lop}[section]|\\ -% \dots\ loads o' stuff \dots\\ -% |\begin{Program}|\\ -% |\begin{verbatim}|\\ -% \dots\ program text \dots\\ -% |\end{verbatim}|\\ -% |\caption{|\dots\ caption \dots|}|\\ -% |\end{Program}| -% \end{verse} -% \caption{This is another silly floating Example. Except -% that this one doesn't actually float -% because it uses the {\tt[H]} optional parameter -% to appear \textbf{Here}. (Gotcha.)}\label{exa1.1} -% \end{Example} +% 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 +% \item[none] +% absent code; +% \item[thickrule] +% thick rule (.8pt) with 2pt vertical skip below---rule above float box +% in \texttt{ruled} style; +% \item[rule] +% rule of default thickness (.4pt), with 2pt vertical skips above and +% below---middle rule in \texttt{ruled} style; +% \item[lowrule] +% rule of default thickness (.4pt), with 2pt vertical skip above---rule +% below float box in \texttt{ruled} style; +% \item[captionskip] +% vertical skip equal to value, defined in |captionskip=| key (default). +% \item[...] +% You may create your own options with |\DeclareFloatVCode| command, +% see page~\pageref{ssec:decl:rule}. +% \end{Options} % -% \DescribeMacro{\floatstyle} -% The |\floatstyle| command sets a default -% float style. This float style will be used for all the floats that -% are subsequently defined using |\newfloat|, until another -% |\floatstyle| command appears. The |\floatstyle| command takes one -% argument, the name of a float style. For instance, -% |\floatstyle{ruled}|. Specifying a string that does not name a valid -% float style is an error. +% \subsubsection{Defining Float Frames} % -% \DescribeMacro{\floatname} -% The |\floatname| command lets you define -% the \emph{float name} that \LaTeX\ uses in the caption of a float, -% i.e., `Figure' for a figure and so on. For example, -% |\floatname{program}{Program}|. The |\newfloat| command sets the -% float name to its argument \meta{type} if no other name has been -% specified before. +% \DescribeMacro{framestyle}\label{setup:framestyle}%^^A +% Defines type of frame; the +% \package{floatrow} package offers only one type of frame: +% \par\RestoreSpaces +% \begin{Options}{\OptionLabel} +% \item[fbox] +% Standard frame. +% \end{Options} +% There are options for additional frames, offered by \package{fr-fancy} +% package, installed with \env{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; +% \end{Options} % -% \DescribeMacro{\floatplacement} -% The |\floatplacement| command resets -% the default placement specifier of a class of floats. E.g., -% |\floatplacement{figure}{tp}|. +% \enlargethispage{\baselineskip} +% \addvspace\medskipamount\noindent +% \DescribeMacro{frameset}\label{setup:frameset}%^^A +% The parameters for chosen frame; there are no options +% for this key, just write something like: +% \begin{Quote} +% |frameset={\fboxrule1pt\fboxsep12pt}|\quad. +% \end{Quote} % -% \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 -% 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 -% 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 \pkg{float} package -% created special caption style with bold label for \texttt{boxed} -% style. Please note that \texttt{plain} and \texttt{boxed} float -% styles have not any special settings in \pkg{caption} 3.x package. -% To emulate \texttt{boxed} style from \pkg{float} documentation there -% were: cleared all special caption settings for tables, and restored -% default colon separator after label.}. There is a |\restylefloat*| -% command which will restyle an existing float type but will keep the -% new float style from taking over the |\caption| command. In this -% case the user is responsible for handling their own captions. -% \DeleteShortVerb{\|} -% %^^AEmulation of float's documentation settings -% %^^A\floatstyle{boxed} -% %^^A\restylefloat{table} +% \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; +% \item[all] +% full float box including object, caption, and any foot text. +% \end{Options} +% +% \addvspace\medskipamount\noindent +% \DescribeMacro{framefit}\label{setup:framefit}%^^A +% Boolean which sets whether the \textit{frame width} will +% be equal to current |\hsize| 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); +% 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}). +% \begingroup +% \begin{Quote}% +% |\floatsetup[figure]{framestyle=fbox,|\hyperref[setup:heightadjust]{\texttt{heightadjust}}|=object,|\nopagebreak +% | framearound=object,frameset={\fboxrule1pt\fboxsep10pt},| +% | framefit=no}%|$\approx\texttt{style=boxed}$ +% |\begin{figure}| +% |\ffigbox[4cm]| +% | {...}{\caption{...}}| +% |\end{figure}| +% \end{Quote}% +% \floatsetup[figure]{framestyle=fbox,heightadjust=object, +% framearound=object,frameset={\fboxrule1pt\fboxsep10pt},framefit=no}%^^A$\equiv\texttt{style=boxed}$ +% \begin{figure}[H]% +% \ffigbox[4cm] +% {\input{Cat.picture}}{\caption{The frame around graphics climbs out to the right and left sides}\label{fig:setup:boxed}} +% \end{figure}% +% \begin{Quote}% +% |\floatsetup[figure]{...,framefit=yes}%|$\approx\texttt{style=Boxed}$ +% |\begin{figure}|% +% |\ffigbox[4cm]| +% | {...}{\caption{...}}|\nopagebreak +% |\end{figure}|% +% \end{Quote}% +% \floatsetup[figure]{framestyle=fbox,heightadjust=object, +% framearound=object,frameset={\fboxrule1pt\fboxsep10pt},framefit=yes}%%^^A$\equiv\texttt{style=Boxed}$ +% \begin{figure}[H]% +% \ffigbox[4cm] +% {\input{Cat.picture}}{\caption{The frame around graphics fits to the width of float box (here: caption)}} +% \end{figure}% +% \endgroup +% +% \addvspace\medskipamount\noindent +% \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 +% \begin{Quote} +% |colorframeset={\fcolorbox{white}{yellow}}|\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}: +% \begin{Quote} +% |captionskip=10pt|\quad. +% \end{Quote} +% The settings above are default. +% The settings of current documentation: |captionskip=5pt|. +% +% \addvspace\medskipamount\noindent +% \DescribeMacro{footskip}\label{setup:footskip}%^^A +% Defines vertical space before foot material and footnotes. +% \begin{Quote} +% |footskip=4pt|\quad, +% \end{Quote} +% or +% \begin{Quote} +% |footskip=\skip\footins|\quad. +% \end{Quote} +% +% \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 % \begingroup -% \clearcaptionsetup{table} -% \captionsetup{labelsep=default,labelfont=bf} -% \floatsetup[table]{style=boxed} -% \begin{table} \def\B#1{$\displaystyle{n\choose#1}$} -% \begin{center} \begin{tabular}{c|cccccccc} -% $n$&\B0&\B1&\B2&\B3&\B4&\B5&\B6&\B7\\ \hline -% 0 & 1\\ -% 1 & 1&1\\ -% 2 & 1&2&1\\ -% 3 & 1&3&3&1\\ -% 4 & 1&4&6&4&1\\ -% 5 & 1&5&10&10&5&1\\ -% 6 & 1&6&15&20&15&6&1\\ -% 7 & 1&7&21&35&35&21&7&1 -% \end{tabular} \end{center} -% \caption{Pascal's triangle. This is a re-styled \LaTeX\ -% \texttt{table}.\label{table1}} -% \end{table} +% \begin{Options}{\OptionLabel} +% \item[normal] +% standard \LaTeX{} definition, used in \env{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: +% \begin{Quote} +% |\newcommand\frulemax{1in}| +% \end{Quote} +% \item[fullsize] +% rule to full current text width. +% \item[none] +% Absent rule. +% \item[...] +% You may create your own options with |\DeclareFloatFootnoterule| command, +% see page~\pageref{ssec:fnoterule}. +% \end{Options} % \endgroup -% \MakeShortVerb{\|} % -% \subsubsection{How macros from \pkg{float} package -% work in \pkg{floatrow}}\label{float-obs} +% \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} +% +% \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.) +% +% \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}). +% +% \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 +% +%^^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 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}: +% \begin{Quote} +% |\clearfloatsetup|\marg{float type}\quad. +% \end{Quote} +% where \marg{float type}---types as \texttt{figure}, \texttt{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 |\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}. +% In this case you may define your command, based on predefined +% |\fcapside|: +% \begin{Quote} +% |\newcommand\myfcapside{\killfloatstyle| +% | \floatsetup[figure]{style=Boxed}\fcapside}|\quad. +% \end{Quote} +% The option |[figure]| is necessary if you defined settings for this option +% globally in the preamble. +% +% %^^A !!!for footnotes! +% %^^A \newpage +% +% \subsection{The Default Float Type Settings}\label{sec:default} +% +% 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] +% \item[capposition=bottom] +% \item[capbesideposition=inside] +% \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[floatrowsep=columnsep] +% \item[capbesidesep=columnsep] +% \item[precode=none] +% \item[rawprecode=none] +% \item[postcode=none] +% \item[rawpostcode=none] +% \item[midcode=captionskip] +% \item[captionskip=10pt] +% \end{Options} +% +% +% \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} +% +% \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 +% 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}}| +%|\floatsetup[figure]{style=MyBoxed}| +%\end{Quote} +% +% \begingroup +% +% \floatsetup[figure]{style=MyBoxed} +% \begin{figure}[H] +% {\unitlength1.44\unitlength\input{Horse.picture}}% +% \caption{%^^A +% Plain figure in \texttt{MyBoxed} style}% +% \label{fig:plain:MyBoxed}% +% \floatfoot{Much more, more and more and more and more and more and +% more and more and more text inside macro \cmd{\floatfoot}}% +% \end{figure} +% +% The same result you get with: +% \par\RestoreSpaces +%\begin{Quote} +%|\floatsetup[figure]{style=Boxed,captionskip=5pt,| +%| frameset={\fboxsep12pt\fboxrule1pt}}| +%\end{Quote} +% \endgroup % -% The combination of |\floatstyle|\marg{style} and any of -% \cmd{\newfloat}\marg{float} or -% \cmd{\restylefloat}\marg{float} commands in \pkg{floatrow} package -% set float layout in the way: -% \begin{quote} -% |\floatsetup|\oarg{float}|{style=|\meta{style}|}| -% \end{quote} -% Please note that co-named keys from |\floatsetup|\oarg{float}|{...}| -% will overwrite the |\floatsetup{...}| settings. That means that if you -% set float layout with these obsolete commands, the next layout tuning -% you ought to do with |\floatsetup|\oarg{float}|{...}| stuff only. +% \subsubsection{Option for Float Rules/Skips (\texttt{precode=} etc.)} +% \label{ssec:decl:rule} % -% \subsubsection{Printing of Float List [\pkg{float}]} -% \label{sec:floatborrowIa} +% \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. +% \begin{Quote}\openup.5pt +% \meta{preamble} +% |\DeclareFloatVCode{grayruleabove}%| +% | {{\color{gray}\hrule height2.8ptdepth0pt\vskip4pt}}| +% |\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| +% | {...}{\caption{The left ...}\label{...}}%| +%| | +% | \ffigbox|\nopagebreak +% | {...}{\caption{The beside ...}\label{...}}| +% | \end{floatrow}|\nopagebreak +% |\end{figure}| +%| | +%| | +% |\begin{figure}| +% | ...| +% | \caption{The figure ...}\label{...}%| +% |\end{figure}| +% \end{Quote} +%\begingroup +% \advance\intextsep-.5\intextsep +% \begin{figure}[H]\floatsetup{heightadjust=object,valign=c,rowprecode=grayruleabove, +% rowpostcode=grayrulebelow}\killfloatstyle +% \begin{floatrow} +% \ffigbox +% {\unitlength.65\unitlength\input{BlackCat.picture}} +% {\caption{The left beside figure inside float row with defined row rules above and below}% +% \label{intro:leftfig:row}}% % -% \nobreak\DescribeMacro{\listof} -% \nopagebreak -% The |\listof| command produces a list of all the floats -% of a given class. Its syntax~is\\[2pt] -% \hspace*{\MacroIndent}|\listof{|\meta{type}|}{|\meta{title}^^A -% |}|\\[2pt] -% \meta{type} is the float type given in the |\newfloat| command. -% \meta{title} is used for the title of the list as well as the -% headings if the current page style includes them. Otherwise, the -% |\listof| command is analogous to the built-in \LaTeX\ commands -% |\listoffigures| and |\listoftables|. +% \ffigbox +% {\caption{The beside figure at the right inside float row with defined row rules above and below}%^^A +% \label{intro:rightfig:row}} +% {\unitlength.85\unitlength\input{Cat.picture}} +% \end{floatrow} +% \end{figure}%^^A +% \begin{figure}[H]\floatsetup{heightadjust=object,valign=c,rowprecode=grayruleabove, +% rowpostcode=grayrulebelow}\killfloatstyle +% \ffigbox +% {\caption{Alone figure with defined row rules above and below}%^^A +% \label{intro:alone:row}} +% {\unitlength.85\unitlength\input{TheCat.picture}} +% \end{figure}%^^A +% \begin{Quote}\openup-.65pt +% \meta{preamble}\nopagebreak +% |...|\nopagebreak +% |\floatsetup{...,|\hyperref[setup:precode]{precode}|=grayruleabove,|%^^A +% \hyperref[setup:postcode]{postcode}|=grayrulebelow}| +% \meta{preamble} +% |...| +% \end{Quote}%^^A +% \advance\intextsep-.5\intextsep +% \begin{figure}[H]\floatsetup{heightadjust=object,valign=c, +% precode=grayruleabove,postcode=grayrulebelow}\killfloatstyle +% \begin{floatrow} +% \ffigbox +% {\unitlength.65\unitlength\input{BlackCat.picture}} +% {\caption{The left beside figure inside float row with defined rules for float box}% +% \label{intro:leftfig:box}}% % -% \subsubsection{The User Interface---\texttt{[H]} -% Placement Specifier [\pkg{float}]}\label{sec:floatborrowII} +% \ffigbox +% {\caption{The beside figure at the right inside float row with defined rules for float box}%^^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, +% precode=grayruleabove,postcode=grayrulebelow}\killfloatstyle +% \ffigbox +% {\caption{Alone figure with defined rules above and below for float box}%^^A +% \label{intro:alone:box}} +% {\unitlength.85\unitlength\input{TheCat.picture}} +% \end{figure}%^^A +%\endgroup +% \RestoreSpaces +% \subsubsection{Object Justification Option (\texttt{objectset=})}\label{ssec:decl:oset} % -% Many people find \LaTeX's float placement specifiers too -% restrictive. A Commonly Uttered Complaint (CUC) calls for a way to -% place a float exactly at the spot where it occurs in the input file, -% i.e., to \emph{not} have it float at all. It seems that the -% \texttt{[h]} specifier should do that, but in fact it only suggests -% to \LaTeX\ something along the lines of ``put the float here if it's -% OK with you''. As it turns out, \LaTeX\ hardly ever feels inclined -% to actually do that. This situation can be improved by judicious -% manipulation of float style parameters. +% \DescribeMacro{\DeclareObjectSet}\label{setup:DeclareObjectSet}%^^A +% You may define justification for \texttt{objectset=} key like\nopagebreak: +% \begin{Quote} +% |\DeclareObjectSet{centering}{\centering}| +% \end{Quote} +% In option's definition you may try to include any regular commands +% which you need to put before each object contents in float +% environment\footnote{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 % -% The same effect can be achieved by changing the actual method of -% placing floats. David Carlisle's \pkg{here} option introduces a new -% float placement specifier, namely \texttt{[H]}, which, when added to -% a float, tells \LaTeX\ to ``put it HERE, period''. If there isn't -% enough space left on the page, the float is carried over to the next -% page together with whatever follows, even though there might still -% be room left for some of that. This style option provides the -% \texttt{[H]} specifier for newly defined classes of floats as well -% as the predefined \texttt{figure}s and \texttt{table}s, thereby -% superseding \pkg{here}. David suggests that the \pkg{here} option be -% withdrawn from the archives in due course. +% \subsubsection{Option for Float Box Alignment/Settings (\texttt{margins=})} +% \label{ssec:decl:marg} % -% The {\tt[H]} specifier may simply be added to the float as an -% optional argument, like all the other specifiers. It may \emph{not} -% be used in conjunction with any other placement specifiers, so -% {\tt[Hhtbp]} is illegal. Neither may it be used as the default -% placement specifier for a whole class of floats. The following table -% is defined like this: -% \begin{verse} -% |\begin{table}[H]| \\* -% |\begin{tabular}{cl}|\\ -% |\tt t & Top of the page\\|\\* -% \dots\ more stuff \dots\\ -% |\end{tabular}| -% \end{verse} -% (It seems that I have to add some extraneous chatter here just so -% that the float actually comes out right in the middle of a printed -% page. When I \LaTeX ed the documentation\footnote{For \pkg{float} -% package.} just now it turned out that there was a page break that -% fell exactly between the ``So now'' line and the float. This -% wouldn't Prove Anything. Bother.) So now we have the following float -% placement specifiers: -% \begin{table}[H] -% \begin{tabular}{cl} -% \tt t & Top of the page\\ -% \tt b & Bottom of the page\\ -% \tt p & Page of floats\\ -% \tt h & Here, if possible\\ -% \tt H & Here, definitely -% \end{tabular} -% ^^A\caption{Could it be that this just needs a caption?} -% \end{table} +% \DescribeMacro{\DeclareMarginSet}\label{setup:DeclareMarginSet}%^^A +% You may define box alignment for float box (\texttt{margins=} key) like: +% \begin{Quote} +% |\DeclareMarginSet{center}{%| +% | \setfloatmargins{\hfil}{\hfil}}| +% \end{Quote} +% or like (see also sample files) +% \begin{Quote} +% |\DeclareMarginSet{outside}{%| +% | \setfloatmargins*{\hfil}{}}| +% \end{Quote} % -% \subsubsection{The {[H]} -% Placement Specifier---Managing of Page Breaks}\label{sec:listpen} +% Non-starred form of |\setfloatmargins| defines left and right +% margin. +% \begin{Quote} +% |\setfloatmargins{|\meta{left margin}|}{|\meta{right margin}|}| +% \end{Quote} % -% During usage of |[H]| option I found that it is necessary -% to set common penalties before and after ``anchored'' floats. +% Starred form, |\setfloatmargins*|, defines facing layout: inside and +% outside margin. +% \begin{Quote} +% |\setfloatmargins*{|\meta{inside margin}|}{|\meta{outside margin}|}| +% \end{Quote} % -% The rules for page breaking around such floats similar to -% page breaking of lists in the book. +% You may set even much more complex definition: +% \begin{Quote}\leftmargin0pt +% |\DeclareMarginSet{facingrule}{%| +% |\setfloatmargins*{%| +% | \floatfacing{\hskip-12pt\vrule width4pt\hskip8pt\hfill}%| +% | {\hfill\hskip8pt\vrule width4pt\hskip-12pt}}{}}| +% \end{Quote} +% 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. % -% To follow the idea of |\allowdisplaybreaks| command from -% \pkg{amsmath} package there is created a beta-temp\footnote{I suppose -% that there will be created such support in \pkg{paralist} package -% and think it is better to follow one grammar for similar -% situations.} version -% of \pkg{listpen} package, which offers following commands: +% The |\setfloatmargins| consists of three macros which set margins +% for three main variants of float positions: % \begin{Options}{\OptionLabel} -% \item[\cmd{\allowprelistbreaks}]sets penalty before lists -% (and also ``anchored'' floats); -% \item[\cmd{\allowpostlistbreaks}]sets penalty after lists; -% \item[\cmd{\allowitembreaks}]sets penalty between list items. +% \item[\cmd{\floatboxmargins}]sets left/right margins around alone +% float box; +% \item[\cmd{\floatrowmargins}]sets left/right margins around +% \env{floatrow} environment; +% \item[\cmd{\floatcapbesidemargins}]sets left/right margins around +% alone float box with beside caption. % \end{Options} -% All they set globally, inside group or inside -% environments the penalties accordingly to digits -% from |[-4]| (never break) to |[4]| (always break). The positive -% values of optional argument in these commands analogous to values -% of optional arguments in |\pagebreak| command. The negative -% ones---to optional arguments |[1]|--|[4]| in |\nopagebreak| command. -% The default value of all three commands is |[-1]| which equal -% to settings of standard \LaTeX{} classes: \cls{book}, \cls{article} -% etc. (|[-1]| option equal to |-\@lowpenalty| value). -% -% \subsection{\pkg{rotfloat} Package} -% -% Code of \pkg{rotfloat} package was also borrowed by \pkg{floatrow} -% package. In the case of loaded \pkg{rotfloat} package before -% \pkg{floatrow} you will get error message. +% 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. % -% The \pkg{floatrow} package loads code which pretends that -% \pkg{rotfloat} already loaded, so next loads are ignored. -% The \pkg{rotfloat} allowed in the |\usepackage| -% line with \pkg{rotating} package, which could have options. It is -% necessary to delete \pkg{rotfloat} package from |\usepackage| line -% where also \pkg{rotating} package loaded with options: otherwise -% you may get `option clash' error message. +% \emph{Notes}. 1)\enskip The \package{floatrow} expands some settings of table layout +% to the \env{longtable} environment, so you may set |\LTleft| and +% |\LTright| parameters inside |\DeclareMarginSet| settings. For example, +% \texttt{centering} option was defined like: +% \begin{Quote} +% |\DeclareMarginSet{centering}{\setfloatmargins{\hfill}{\hfill}%| +% | \LTleft=\fill \LTright=\fill}| +% \end{Quote} % -% \section{Macros for Building Floats} +% 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} % -% \subsection{The Floatbox Macro}\label{sec:floatbox} % -% This package offers macro, which creates necessary layout of float -% object contents and caption (see also the introduction). -% The main macro looks like: -% \begin{quote} -% |\floatbox[|\meta{preamble}|]{|\meta{captype}|}[|^^A -% \meta{width}|][|\meta{height}|][|\meta{vert pos}|]|\\ -% | {|\meta{caption}|}{|\meta{object}|}|\footnote{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.} -% \end{quote} -% where\label{floatboxsets}: -% \begin{description}\itemsep0pt -% \item[\meta{preamble}]there could be |\capbeside| command which -% places caption beside float contents; |\nocapbeside| -% (to put caption above/below, accordingly -% to float type's style); or another systematic command -% (even with usage of |\captionsetup| and |\thisfloatsetup|---see -% examples in documentation and appendix). -% \item[\meta{captype}]the type of float 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). -% The command |\FBwidth| in the \meta{width} argument -% allows usage of natural width of float contents.\par -% \emph{Note}. If you use \verb|\FBwidth| in \meta{width} -% argument be sure that object contents can be placed in |\hbox| -% (you only allowed to use |\vspace| command at the very -% beginning and very end of object contents for fine tuning -% of vertical spaces); -% \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{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 -% |\floatfoot| command. -% \end{description} +% \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: +% \begin{Quote} +% |\DeclareFloatSeparators{columnsep}{\hskip\columnsep}| +% \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}%| +% | {\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}| +% |\captionsetup[figure]{justification=justified,| +% | labelfont={magenta,bf},textfont=green,labelsep=newline}| +% \meta{preamble} +% |\begin{figure*}|\nopagebreak +% |...|\nopagebreak +% |\end{figure*}| +% \end{Quote} % \begingroup -% First simplest example: -%\begin{verbatim} -%\begin{figure} -%\floatbox{figure}[4cm] -%{\caption{The simple example ...}% -%\label{fig:WcatI}} -%{\input{TheCat.picture}} -%\end{figure} -%\end{verbatim} -% created the picture in the figure~\ref{fig:WcatI}.\pagebreak[3] -% \begin{figure} -% \floatbox{figure}[4cm] -% {\caption{The simple example of \cmd{\floatbox}}% -% \label{fig:WcatI}} -% {\unitlength1.28\unitlength\input{TheCat.picture}} -% \end{figure}% +% \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 % -% 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. Caption position was defined in document preamble -% by command |\floatsetup[table]{style=Plaintop}| -%\begin{verbatim} -%\begin{table} -%\floatbox{table}[\FBwidth] {\caption{Simple tabular in -%\cmd{\floatbox} -% with caption above}\label{tab:tabII}} -%{\begin{tabular}{|l|c|c|} -% \hline -% Column head & Data I & Data II \\ -% \hline -% First row & 1 & 2 \\ -%... -% \hline -%\end{tabular}} -%\end{table} -%\end{verbatim} -% \DeleteShortVerb{\|}% -% \begin{table} -% \floatbox{table}[\FBwidth] -% {\caption{Simple tabular with caption -% above}\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}% -% \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. +% \subsubsection{Float Font Option (\texttt{font=})}\label{ssec:declfont} % -% The next example shows \env{figure} environment with beside caption. -% In this example only |\capbeside| command used in \meta{preamble} -% argument, 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|). +% \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.) % -%\begin{verbatim} -%\begin{figure} -%\floatbox[\capbeside]{figure}[\FBwidth] -% {\caption[Beside caption]{Beside caption ...}\label{...}} -% {...} -%\end{figure} -%\end{verbatim} -% \begin{figure}[h] -% \floatbox[\capbeside]{figure}[\FBwidth] -% {\caption[Beside caption]{Beside caption and more text -% and some more text and a bit more text and -% a little more text and a little peace of text to fill -% space}\label{fig:beside:mouse}} -% {{\setlength\unitlength{4cm/58}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{Mouse.picture}}} -% \end{figure} +% 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}% % -% The default width of beside object and caption are equal to one -% ``column'' width, i.e. half of current |\hsize| -% (figure~\ref{intro:beside}) width excluding float margins and -% separation material between float and caption. (See more examples -% with float and beside captions in appendix, page~\pageref{fig:Idog:w}.) % +% \subsubsection{Option for Footnote Rule's Style (\texttt{footnoterule=})} +% \label{ssec:fnoterule} % -% \subsubsection{User Commands for Float Boxes} +% \DescribeMacro{\DeclareFloatFootnoterule}\label{setup:DeclareFloatFootnoterule}%^^A +% You may define new footnoterule (\texttt{footnoterule=} key) like: +% \begin{Quote} +% |\DeclareFloatFootnoterule{limited}{\kern-3pt| +% | \@tempdima.4\columnwidth| +% | \ifdim\@tempdima>\frulemax\@tempdima=\frulemax\fi| +% | \hrule width\@tempdima\kern2.6pt}| +% \end{Quote} +% Remember, that summary vertical height for footnote rule must be +% equal to~0pt. % -% The usage of plain |\floatbox| command sometimes is rather complex. -% You may define commands-abbreviations for your own purposes and -% define there some additional style settings. +%\newpage +% \section{Creation of New Float Type}\label{sec:newfloat} % -% The definition of new float abbreviation looks like: -% \begin{quote} -% |\newfloatcommand|\marg{command}%^^A\\\strut\qquad -% \marg{captype}\oarg{preamble}\oarg{default width} -% \end{quote} -% where: -% \begin{description} -% \item[\meta{command}]the user's command name (without backslash); -% \item[\meta{captype}]the name of float 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}]here you put any dimension like |6cm| -% or |.75\textwidth|\footnote{There is also exists possibility to set -% common width for current float type of float using -% \texttt{floatwidth} key in \cmd{\floatsetup} stuff.}; if you -% put |\FBwidth| command the width of object---caption box (in case of -% caption above or below object---there could be defined -% |\nocapbeside| in \meta{preamble}) or width of object box (if caption -% stays beside object---|\capbeside| in \meta{preamble}) will be equal -% to width of object. -% \end{description} +% \DescribeMacro{\DeclareNewFloatType}\label{setup:DeclareNewFloatType}%^^A +% For creation of new float type there was created +% |\DeclareNewFloatType|\label{FAD:newfloattype} +% command 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: % -% There are three already defined commands-abbreviations:\label{abbrcom} -% \begin{quote} -% |\newfloatcommand{ffigbox}{figure}[\nocapbeside]|\\* -% |\newfloatcommand{fcapside}{figure}[\capbeside]|\\* -% |\newfloatcommand{ttabbox}{table}[\captop][\FBwidth]| -% \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). +% \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}.) % +% \noindent +% \DescribeMacro{name}\label{setup:name}%^^A +% Defines the name of environment in the caption +% label. (As default for caption label is declared the +% name of environment.) % -% \subsection{Building Float Row}\label{sec:floatrow} +% \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. % -% If you need to put two or more floats of one type side by side, you -% may use \env{floatrow} environment. +% \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. % -% This environment looks like: -% \begin{quote} -% |\begin{floatrow}[|\meta{number of beside floats}|]|\\ -% |\floatbox...|\\ -% |...|\\ -% |\floatbox...|\\ -% |...|\\ -% |\end{floatrow}| -% \end{quote} +% \noindent +% \DescribeMacro{relatedcapstyle}\label{setup:relatedcapstyle}%^^A +% In \package{float} package the non-starred +% \cmd{\newfloat}/\cmd{\restylefloat} macros attach 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} % -% And here is example. The first float (used |\ffigbox|) has default -% width equal to ``column'' width, the next uses width of included -% graphic (uses command |\FBwidth| in optional argument \meta{width}), -% third one occupies the rest horizontal space of page which was -% counted with command |\Xhsize|. +% The |\DeclareNewFloatType| was used for defining of \env{Example} +% environment (see page \pageref{exa1.1}). It consists of following +% code: +% \begin{Quote} +% |\DeclareNewFloatType{Example}%| +% | {placement=t,within=section,fileext=lox}| +% \end{Quote} +% +% \subsection{How to replace \cmd{\newfloat} with +% \cmd{\DeclareNewFloatType}}\label{sec:oldtonew} +% +% The |\newfloat| command takes three required and +% one optional argument: +% \begin{Quote} +% |\newfloat|\marg{type}^^A +% \marg{placement}\marg{ext}\oarg{within} +% \end{Quote} +% which could be replaced with +% \begin{Quote} +% |\DeclareNewFloatType|\marg{type}|%| +% | {placement=|\meta{placement}|,fileext=|\marg{ext}|,widthin=|\oarg{within}|}| +% \end{Quote} % -% \emph{Note}. Usually the command |\Xhsize| is used for the last float -% box. But if you use \pkg{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, see sample files~\file{frsample10}--\file{frsample12}, -% and also sample file \file{fr-sample.tex}. -%\begin{verbatim} -%\begin{floatrow}[3] -%\ffigbox -%{\caption{Beside figure~I...}...} -%{...} -% -%\ffigbox[\FBwidth] -%{\caption{Beside figure~II...}...} -%{...} -% -%\ffigbox[\Xhsize] -%{\caption{Beside figure~III...}...} -%{...} -%\end{floatrow} -%\end{figure} -%\end{verbatim} -% \begin{figure} -% \begin{floatrow}[3] -% \ffigbox -% {\caption{Beside figure~I, ``column'' width}% -% \label{fig:row:WcatI}} -% {\unitlength1.25\unitlength\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{TheCat.picture}} +% \clearpage +% \section{Borrowed code}\label{sec:borrow} % -% \ffigbox[\FBwidth] -% {\caption{Beside figure~II in \env{floatrow}, float box has the -% width of graphic}% -% \label{fig:row:BcatI}} -% {\unitlength1.25\unitlength\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{TheBlackCat.picture}} +% \subsection{\package{float} Package: Compatibility}\label{sec:floatst} % -% \ffigbox[\Xhsize] -% {\caption{Beside figure~III in \env{floatrow}, -% occupies the rest of row}% -% \label{fig:row:mouseI}} -% {{\setlength\unitlength{\hsize/58}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{Mouse.picture}}} -% \end{floatrow} -% \end{figure}% -% The result you see in the row of -% figures~\ref{fig:row:WcatI}--\ref{fig:row:mouseI}. The vertical -% alignment of floats lays on the bottom of upper part (here: objects) -% of float and the top of lower part (captions). +% 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. % -% \subsection{Usage of Footnotes Inside Float Environment} -% \label{sec:floatfootnote} +% \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}. +% 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 +% limitation or feature is---if you didn't use any |\restylefloat| +% command---all figures and tables appear in \texttt{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.}. % -% 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. +% 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 +% in the section~\ref{sec:changed} +% (subsection~\ref{sec:floatborrowI}, ``The User Interface---New +% Floats [\package{float}]''). % -% In the case of few elements have the same footnote, we cannot -% use standard |\footnotemark|---|\footnotetext| combination, because -% of |\footnotemark| creates the sign of main text footnote. -% For these cases current package offers |\mpfootnotemark| macro -% instead of |\footnotemark|% -% \footnote{The same macro also is defined in \pkg{footmisc} package, -% version 4.10, dated 2003/01/20.}. % -% The |\floatbox| macro uses special own definition of footnote rule -% (the |\FBfootnoterule| command) and skip before footnotes and -% explications or legends (|footskip=|). (See also -% page~\pageref{sec:footnotestyle} for variants of footnote rule.) +% \RestoreSpaces +% \subsubsection{How macros from \package{float} package +% work in \package{floatrow}}\label{float-obs} % -% \subsubsection{The Legend-Like Macro}\label{subsec:floatfoot} +% 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: +% \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{...}|. % -% 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| command. The |\floatfoot| is -% build by usage of |\caption| stuff and uses caption's justification, -% but star form (|\floatfoot*|) prints its contents as plain unindented -% paragraph (see table~\ref{tab:floatfoot}). +% The |\floatname| command replaces the |name=| key of |\DeclareNewFlotaType| +% command. The |\floatplacement|---|placement=| key. % -% For defining of explication font use \texttt{footfont=} key -% (page~\pageref{sec:setfloatfoot}) in |\floatsetup|. You may try to -% define special settings for float foot using -% \cmd{\captionsetup[floatfoot]} setup. -%\begin{verbatim} -%\begin{table} -%\ttabbox -%{\caption{Table with additional foot material}% -%\label{tab:floatfoot}} -%{\extrarowheight1pt -% \tabcolsep2\tabcolsep -% \begin{tabular}{|l|c|c|} -% \hline -% ... -% \end{tabular}% -% \floatfoot*{`Data I' column ...}} -%\end{table} -%\end{verbatim} -% \DeleteShortVerb{\|}% -% \begin{table} -% \ttabbox -% {\caption{Table with additional foot material}%^^A -% \label{tab:floatfoot}}%^^A -% {\extrarowheight1pt\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}% -% \MakeShortVerb{\|}% +% \subsubsection{Printing of Float List [\package{float}]} +% \label{sec:floatborrowIa} % -% \emph{Notes.} 1)\enskip The \pkg{float} package defines additional -% optional argument after main caption text. Since this possibility -% didn't declared in user part of documentation the current version of -% \pkg{caption} (3.0 and later), and also \pkg{float\-row} package, -% doesn't support this possibility. You may use |\floatfoot| and -% |\footnotemark|/|\footnotetext| stuffs instead. +% \nobreak\DescribeMacro{\listof} +% \nopagebreak +% The |\listof| command produces a list of all the floats +% of a given class. Its syntax~is +% \begin{Quote} +% \hspace*{\MacroIndent}|\listof{|\meta{type}|}{|\meta{title}|}|^^A +% \end{Quote} +% \meta{type} is the float type given in the |\newfloat| command. +% \meta{title} is used for the title of the list as well as the +% headings if the current page style includes them. Otherwise, the +% |\listof| command is analogous to the built-in \LaTeX\ commands +% |\listoffigures| and |\listoftables|. % -% 2)\enskip If you use both |\floatfoot| command and |\footnote| -% inside one float box, the |\floatfoot| appears above |\footnote| -% contents. +% \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. % -% 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{foot:pos} -% and sample file \file{frsample01.tex}. In case of caption beside -% float object, footnotes and foot text always placed below caption. +% \subsubsection{The User Interface---\texttt{[H]} +% Placement Specifier [\package{float}]}\label{sec:floatborrowII} % +% Many%^^A +% \FRmpar{Anchored float}{FAD:AnchoredFloat} +% people find \LaTeX's float placement specifiers too +% restrictive. A Commonly Uttered Complaint (CUC) calls for a way to +% place a float exactly at the spot where it occurs in the input file, +% i.e., to \emph{not} have it float at all. It seems that the +% \texttt{[h]} specifier should do that, but in fact it only suggests +% to \LaTeX\ something along the lines of ``put the float here if it's +% OK with you''. As it turns out, \LaTeX\ hardly ever feels inclined +% to actually do that. This situation can be improved by judicious +% manipulation of float style parameters. % -% \subsection{Fine Tuning of Vertical Spaces of Float} -% \label{sec:FBabskips} +% \RestoreSpaces +% The same effect can be achieved by changing the actual method of +% placing floats. David Carlisle's \package{here} option introduces a new +% float placement specifier, namely \texttt{[H]}, which, when added to +% a float, tells \LaTeX\ to ``put it HERE, period''. If there isn't +% enough space left on the page, the float is carried over to the next +% page together with whatever follows, even though there might still +% be room left for some of that. This style option provides the +% \texttt{[H]} specifier for newly defined classes of floats as well +% as the predefined \texttt{figure}s and \texttt{table}s, thereby +% superseding \package{here}. David suggests that the \package{here} option be +% withdrawn from the archives in due course. % -% At the final variant of document you may need to correct vertical -% spaces between float and main text, between float object and -% caption. +% The {\tt[H]} specifier may simply be added to the float as an +% optional argument, like all the other specifiers. It may \emph{not} +% be used in conjunction with any other placement specifiers, so +% {\tt[Hhtbp]} is illegal. Neither may it be used as the default +% placement specifier for a whole class of floats. The following table +% is defined like this: +% \begin{Quote} +% |\begin{table}|\nopagebreak +% |\begin{tabular}{cl}| +% |\tt t & Top of the page\\| +% \dots\ more stuff \dots\\ +% |\end{tabular}| +% \end{Quote} +% (It seems that I have to add some extraneous chatter here just so +% that the float actually comes out right in the middle of a printed +% page. When I \LaTeX ed the documentation\footnote{For \package{float} +% package.} just now it turned out that there was a page break that +% fell exactly between the ``So now'' line and the float. This +% wouldn't Prove Anything. Bother.) So now we have the following float +% placement specifiers:\nopagebreak +% \par\RestoreSpaces +% \begin{table}[H] +% \begin{tabular}{cl} +% \tt t & Top of the page\\ +% \tt b & Bottom of the page\\ +% \tt p & Page of floats\\ +% \tt h & Here, if possible\\ +% \tt H & Here, definitely +% \end{tabular} +% ^^A\caption{Could it be that this just needs a caption?} +% \end{table} % -% To change space between float box and main text there you may use -% two simple commands |\FBaskip| and |\FBbskip|. For example define -% \begin{verse} -% |\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 -% some of wrapped figures. +% \emph{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. % -% Use |\vspace| command for vertical space correction around float -% object\footnote{The plain float 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.}. +% 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 +% paragraph. % -% \subsection{Running Raw \LaTeX\ Floats} +% \RestoreSpaces +% \subsubsection{The {[H]} +% Placement Specifier---Managing of Page Breaks}\label{sec:listpen} % -% The \pkg{floatrow} package redefines float 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 input a |\RawFloats| command \emph{inside} environment: -%\begin{verbatim} -%\begingroup -%\captionsetup[table]{position=top} -%\begin{figure}\RawFloats -%\begin{minipage}{0.45\textwidth} -%\centering ... -%\caption{...}\label{...} -%\end{minipage} -%\begin{minipage}{0.45\textwidth} -%\captionof{table}{...}\label{...} -%\centering ... -%\end{minipage} -%\end{figure} -%\endgroup -%\end{verbatim} -% And you'll get figure~\ref{Right:expect:fig} -% and table~\ref{Right:expect:tab}\footnote{That could work correct if -% you do not use any fancy float layout.}. -% \begingroup -% \captionsetup[table]{position=top} -% \begin{figure}\RawFloats -% \begin{minipage}{0.45\textwidth} -% \centering \input{Mouse.picture} -% \caption{A figure caption in raw \LaTeX}\label{Right:expect:fig} -% \end{minipage} -% \begin{minipage}{0.45\textwidth} -% \captionof{table}{A table caption in raw \LaTeX}\label{Right:expect:tab} -% \centering\tabcolsep3\tabcolsep -% \begin{tabular}{|c|c|} A & B \\ C & D \end{tabular} -% \end{minipage} -% \end{figure} -% \endgroup +% During usage of |[H]| option I found that it is necessary +% to set common penalties before and after ``anchored'' floats. % -% You may see that \env{floatrow} environment and |\floatbox| commands -% still work after |\RawFloats| (figure~\ref{intro:leftfig:raw} and -% table~\ref{intro:righttab:raw}) -%\begin{verbatim} -%\begin{figure}\RawFloats\CenterFloatBoxes -% \begin{floatrow} -% \floatbox{figure} -% {...}{\caption{...}\label{...}} +% The rules for page breaking around such floats similar to +% page breaking of lists in the book. % -% \floatbox{table}[\FBwidth] -% {...}{\caption{...}\label{...}} -% \end{floatrow} -%\end{figure} -%\end{verbatim} -% \begin{figure}\RawFloats\CenterFloatBoxes -% \begin{floatrow} -% \floatbox{figure} -% {\input{Mouse.picture}} -% {\caption{A figure caption in \cmd{\floatbox} in raw \LaTeX}% -% \label{intro:leftfig:raw}}% +% 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: +% \begin{Options}{\OptionLabel} +% \item[\cmd{\allowprelistbreaks}]sets penalty before lists +% (and also ``anchored'' floats); +% \item[\cmd{\allowpostlistbreaks}]sets penalty after lists; +% \item[\cmd{\allowitembreaks}]sets penalty between list items +% (surely, this command not for floats!). +% \end{Options} +% All they set globally, inside group or inside +% environments. These penalties are set accordingly to digits +% from |[-4]| (never break) to |[4]| (always break). The positive +% values of optional argument in these commands analogous to values +% of optional arguments in |\pagebreak| command. The negative +% ones---to optional arguments |[1]|--|[4]| in |\nopagebreak| command. +% The default value of all three commands is |[-1]| which equal +% to settings of standard \LaTeX{} classes: \cls{book}, \cls{article} +% etc. (|[-1]| option equal to |-\@lowpenalty| value). % -% \floatbox{table}[\FBwidth] -% {\caption{A table caption in \cmd{\floatbox} in raw -% \LaTeX}\label{intro:righttab:raw}} -% {\tabcolsep3\tabcolsep -% \begin{tabular}{|c|c|} A & B \\ C & D -% \end{tabular}} -% \end{floatrow} -% \end{figure}%^^A -% See also page~\pageref{mixrow} about how to set and align different -% float types like figure~\ref{intro:leftfig:raw} and -% table~\ref{intro:righttab:raw} in one row (\env{floatrow} environment). +% \DescribeMacro{floatHaslist}\label{setup:floatHaslist}%^^A +% This is the late attempts of backwards compatibility. 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 +% and earlier. (I hope there could not much difference, +% unless you redefined penalties of lists.) +% +% 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} +% (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 +% \begin{Quote} +% |\renewcommand\floatHpenalties{\@beginparpenalty\@M}| +% \end{Quote} +% or, with \package{listpen} package +% \begin{Quote} +% |\renewcommand\floatHpenalties{\allowprelistbreaks[-4]}|\quad, +% \end{Quote} +% you'll never get page breaks before anchored float. % +% \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. +% +% \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{floatrow} you will get error message. +% +% The \package{floatrow} package loads code which pretends that +% \package{rotfloat} 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. % +%\clearpage % \section{Style Tandems} % % The next few sections show examples and explain some noticed -% features with usage of \pkg{floatrow} and another package. There is not +% 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 \pkg{caption} Package} +% \subsection{The \package{caption} Package}\label{ssec:caption} % -% Tested with versions v3.0a--v3.0i. +% Tested (and compatible) with version v3.0q. % -% The \pkg{caption} package has strong mechanism of creating of -% caption layout, so \pkg{floatrow} addresses the creation of new -% caption styles to this package (see documentation for \pkg{caption} +% The \package{caption} package has strong mechanism of creating of +% caption layout, so \package{floatrow} addresses the creation of new +% caption styles to this package (see documentation for \package{caption} % package). % -% The \pkg{floatrow} adds possibility to create a variations of captions +% 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 % two-column floats. In this case you may use -% \begin{quote} +% \begin{Quote} % |\captionsetup[widefloat]|\marg{options} -% \end{quote} +% \end{Quote} % or for wide or two-column figures: -% \begin{quote} +% \begin{Quote} % |\captionsetup[widefigure]|\marg{options} -% \end{quote} +% \end{Quote} % The priority of |\captionsetup| optional arguments is similar to % |\floatsetup| ones. In current examples |\captionsetup[widefigure]| % will be stronger than |\captionsetup[widefloat]|. The priority % and usage of ``\meta{float subtypes}'' in optional arguments % see on the page~\pageref{stsetorder}\label{cap:beside:order}). % +% \subsection{The \package{subfig} Package}\label{ssec:subfig} % -% \subsection{The \pkg{subfig} Package} +% 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 +% subcaption label. % -% Tested with version 1.2 dated 2004/01/28 and 1.3. -% dated 2005/06/28.\nopagebreak +% \subsubsection{Additions in \package{floatrow}} % % The example with \cmd{\subfloat}'s (table~\ref{tab:tabIII}). The -% setting command in preamble |\floatsetup[table]{style=Plaintop}| +% setting command in preamble |\floatsetup[table]{style=Plaintop}|%^^A +% \FRmpar{Subcaption above subtable}{FAD:subcapabove} % includes also settings for subcaption positions used with -% \pkg{subfloat} package (like |\captionsetup[table]{position=top}| in -% \pkg{caption} package): -%\begin{verbatim} -%\begin{table}\extrarowheight1pt -% \floatbox{table}[\FBwidth] -% {\caption{Two ...}\label{...}} -% {\begin{subfloatrow} -% \subfloat[First subtable] -% {\begin{tabular}{...} -% ... -% \end{tabular}} -% -% \subfloat[Second subtable with long long long subcaption] -% {\begin{tabular}{...} -% ... -% \end{tabular}}% -% \end{subfloatrow}} -%\end{table} -%\end{verbatim} +% \package{subfloat} package (like |\captionsetup[table]{position=top}| in +% \package{caption} package): +%\begin{Quote}\obeylines\parskip-.15pt +%|\begin{table}\extrarowheight1pt|\nopagebreak +%| \floatbox{table}[\FBwidth]| +%| {\caption{Two ...}\label{...}}| +%| {\begin{subfloatrow}| +%| \subfloat[First table]| +%\verb+ {\begin{tabular}{|l|c|c|}+ +%| ...\end{tabular}}| +%| \subfloat[Second table...]| +%\verb+ {\begin{tabular}{|l|c|c|}+ +%| ...\end{tabular}%| +%| \end{subfloatrow}}}| +%|\end{table}| +%\end{Quote} % \DeleteShortVerb{\|}% % \captionsetup[subtable]{textfont=md} -% \begin{table}[h]\extrarowheight1pt +% \begin{table}[h]\extrarowheight1pt\tabcolsep1.25\tabcolsep % \floatbox{table}[\FBwidth] % {\caption{Two \cmd{\subtable}'s -% (created with \pkg{subfig} package)}\label{tab:tabIII}} +% (created with \package{subfig} package)}\label{tab:tabIII}} % {\begin{subfloatrow} % \subfloat[First subtable] % {\begin{tabular}{|l|>{\phantom0}c|>{\phantom0}c|} @@ -2340,20 +3423,19 @@ % \end{table}% % \MakeShortVerb{\|}% % -% \emph{Note.} There was used \env{subfloatrow} environment in current -% example. This is simplified \env{floatrow} environment, which +% 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 % these keys defined by |\DeclareFloatSeparators| command, -% page~\pageref{decl:sep}). +% page~\pageref{setup:DeclareFloatSeparators}). % %^^A To use \env{subfloatrow} environment load -%^^A \pkg{fr-subfig}\footnote{This package could have only beta-status, -%^^A because of it redefines two macros of \pkg{subfig} package for +%^^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 \pkg{floatrow}.\pagebreak[3] +%^^A together with \package{floatrow}.\pagebreak[3] % % See examples with \env{subfloatrow} environment in sample files % \file{frsample03.tex}, \file{frsample05.tex}; and also @@ -2362,41 +3444,239 @@ % % The next goes example with beside caption (see % figure~\ref{fig:subfig:catsI}).%^^A -% \footnote{In version 1.2 the beside boxed and non-boxed subfloat -% contents (like in figure~\ref{fig:subfig:catsI}) could not get aligned -% bottom (top) subcaptions. In this example I ought to use following -% lines for subfigure~\ref{subfig:b}, when \pkg{pstricks} package is -% loaded:\\[2ex]\ttfamily -% \cmd{\raisebox}\{\cmd{\depth}\}\{\cmd{\input}\{\texttt -% {TheBlackCat.picture}\}\}} -%\begin{verbatim} -%\floatsetup{style=Shadowbox,capbesidesep=columnsep, -% capbesideframe=yes,capbesideposition={top,inside}} -%\fcapside[\FBwidth] -% {\begin{subfloatrow} -% \subfloat[White cat\label{subfig:w}]{% -% {\input{TheCat.picture}}} -% -% \subfloat[Black cat\label{subfig:b}]{\input{TheBlackCat.picture}}% -% \end{subfloatrow}} -%{\caption{...}} -%\end{verbatim} +%^^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}\}\}} +%\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,| +%| strut=no}|\nopagebreak +%\meta{preamble} +%|\fcapside[\FBwidth]| +%| {\begin{subfloatrow}| +%| \subfloat[...\label{...}]{...}| +%| \subfloat[...\label{...}]{...}%| +%| \end{subfloatrow}}| +%|{\caption{...}}| +%\end{Quote} % \floatsetup[figure]{style=Shadowbox,capbesidesep=columnsep, -% capbesideframe=yes,capbesideposition={top,inside}} +% capbesideframe=yes,capbesideposition={left,top}} +% \floatsetup[subfigure]{style=plain} +% \captionsetup[subfigure]{labelformat=list,justification=centerlast,strut=no} % \begin{figure}[h] % \fcapside[\FBwidth] % {\begin{subfloatrow} -% \subfloat[White cat\label{subfig:w}]{% -% {\input{TheCat.picture}}} +% \subfloat[One cat\label{subfig:w}]{% +% {\input{Cat.picture}}} +% \subfloat[Another cat\label{subfig:b}]{\input{TheCat.picture}}% +% \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}} +% \end{figure} +% +% \DescribeMacro{\sidesubfloat} +% Another addition in \package{floatrow} for subfloats is command,%^^A +% \FRmpar{Subcaption beside subfloat}{FAD:sublabelbeside} +% 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 +% \begin{Options}{\OptionLabel}\samepage +% \item[top] +% subcaption label aligned to the top of object; +% \item[bottom] +% subcaption label aligned to the bottom of object; +% \item[center] +% subcaption label aligned to the center of float contents. +% \end{Options} +% +% The figure~\ref{fig:subfig:catsII} shows layout with subfloat labels beside. +% \begingroup +% \begin{Quote}% +%\meta{preamble}\nopagebreak +%|...| +%|\floatsetup[figure]{|\hyperref[setup:style]{\texttt{style}}|=plain,|%^^A +% \hyperref[setup:subcapbesideposition]{\texttt{subcapbesideposition}}|=top}| +%\meta{preamble} +% |\begin{figure}[H]| +% | \ffigbox[\FBwidth]| +% | {\begin{subfloatrow}| +% | \sidesubfloat[]{...\label{...}}%| +% | | +% | \sidesubfloat[]{...\label{...}}%| +% | \end{subfloatrow}}| +% |{\caption[...]{...}\label{...}}| +% |\end{figure}| +% \end{Quote} +% \floatsetup[figure]{style=plain,subcapbesideposition=top} +% \begin{figure}[h] +% \ffigbox[\FBwidth] +% {\begin{subfloatrow} +% \sidesubfloat[]{% +% {\input{Cat.picture}\label{subfig:wI}}} % -% \subfloat[Black cat\label{subfig:b}]{\input{TheBlackCat.picture}}% +% \sidesubfloat[]{\input{TheCat.picture}\label{subfig:bI}}% % \end{subfloatrow}} -% {\caption{Beside caption vertically top aligned with fancy -% \texttt{Shadowbox} layout}\label{fig:subfig:catsI}} +% {\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}} +% \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| +% 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 +% puts alone subcaption label with necessary number. The full variant +% of |\subfloatlabel| +% \begin{Quote} +% |\subfloatlabel|\oarg{subfloat number}\oarg{label entry} +% \end{Quote} +% is the abbreviation of the following: +% \begin{Quote} +% |\setcounter|\marg{sub{\upshape\texttt{\char`\\@captype}}}\marg{subfloat number-1} +% |\subfloat[]{\label{|\meta{label entry}|}}| +% \end{Quote} +% +% +% \begingroup +% \begin{Quote}% +%\meta{preamble}\nopagebreak +%|...| +%|\floatsetup[figure]{|\hyperref[setup:style]{\texttt{style}}|=plain}| +%|\DeclareCaptionListOfFormat{comma-separated}{#1,\,#2}| +%|\captionsetup[subfigure]{listofformat=comma-separated}| +%\meta{preamble} +% |\begin{figure}[h]| +% |\fcapside[\FBwidth]| +% | {\unitlength2\unitlength\fboxsep-.4pt| +% | \begin{picture}(90,30)(0,0)| +% | \put(0,0){\framebox(40,30)[bl]{}}| +%|...| +% \end{Quote} +% \floatsetup[figure]{style=plain} +% \captionsetup[subfigure]{listofformat=comma-separated} +% \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[]{\label{subfig:wII}}}} +% \put(0,0){ +% \put(8,10){\put(4.5,4.5){\oval(9,9)[t]} +% \put(4.5,4.5){\line(0,1){4.5}} +% \put(0,4.5){\line(1,0){9}}} +% \put(23,10){\put(4.5,4.5){\oval(9,9)[t]} +% \put(4.5,4.5){\line(0,1){4.5}} +% \put(0,4.5){\line(1,0){9}}}} +% +% \put(50,0){\framebox(40,30)[bl]{}} +% \put(52,2){\makebox(0,0)[bl]{\subfloatlabel[3][subfig:bII]{}%^^A +% }}%^^A\label{} +% \put(50,0){ +% \put(6,18){\put(0,0){\line(2,3){5}} +% \put(10,0){\line(-2,3){5}}} +% \put(24,18){\put(0,0){\line(2,3){5}} +% \put(10,0){\line(-2,3){5}}}} +% \end{picture}} +% {\caption[The graphic with subfloat labels]{%^^A +% Here are two simple subfigures. +% First shows cat's eyes (\protect\ref{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 +% \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 +% +% \clearpage +% \par\RestoreSpaces +% \subsection{The \package{longtable} Package}\label{ssec:longtable} +% +% Tested with version v4.11, dated 2004/02/01. +% +% \subsubsection{Additions in \package{floatrow}} +% \label{ssec:LTcapwidth} +% +% There was added a patch to the |\LT@array| macro (\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. +% +% \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. % -% \newpage -% \subsection{The \pkg{wrapfig} Package} +% The \env{longtable} environment uses layout settings from +% |\floatsetup[table]| and |\floatsetup[longtable]| macros. +% 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 +% 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. +% +%^^A% \DescribeMacro{\LTlastpage} +% \DescribeMacro{\endlasthead} +% \DescribeMacro{\endprelastfoot} +%^^A% The command |\LTlastpage|, defined by hand, tells to \package{longtable}'s +%^^A% redefined macro the number of pages in longtable environment. +% The |\endlasthead| command defined for last head of longtable; second command, +% |\endprelastfoot|, defined for foot on the page before last. +% Since these names of commands ``intrude'' in the \package{longtable} naming +% territory they 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. +% (See examples and additional explanation in the sample file +% \texttt{sample-longtable.tex} file.) +% +%^^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. +% +% \clearpage +% \subsection{The \package{wrapfig} Package}\label{ssec:wrapfig} % % \begingroup % \def\FBaskip{-12pt} @@ -2404,25 +3684,24 @@ % footposition=caption} % \begin{wrapfigure}[10]{O}{40mm} %^^A \ffigbox[40mm] -% {\caption{Wrapped plain figure (\pkg{wrapfig} package)}% +% {\caption{Wrapped plain figure (\package{wrapfig} package)}% % \floatfoot{Plain figure fails with package version % 3.3}\label{fig:wrapfig:WcatI}} -% {\unitlength1.2\unitlength -% \ifx\pspicture\undefined\else\psset{unit=\unitlength}\fi +% {\unitlength1.095\unitlength % \input{TheCat.picture}} % \end{wrapfigure} % -% Tested with version 3.3 dated 1999/10/12 (style from \pkg{ltxmisc} +% 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). % % Options for environment (text borrowed from package comments): -% \begin{quote} -% |\begin{wrapfigure}%|\\* -% \strut\quad\oarg{number}\marg{placement}|%|\\* -% \strut\quad\oarg{overhang}\marg{width of figure}\\ -% |...|\\* +% \begin{Quote} +% |\begin{wrapfigure}%|\nopagebreak +% \strut\quad\oarg{number}\marg{placement}|%|\nopagebreak +% \strut\quad\oarg{overhang}\marg{width of figure} +% |...| % |\end{wrapfigure}| -% \end{quote} +% \end{Quote} % \meta{Placement} is one of \texttt{r}, \texttt{l}, \texttt{i}, % \texttt{o}, \texttt{R}, \texttt{L}, \texttt{I}, \texttt{O}, for % right, left, inside, outside. Lowercase letters set unfloated @@ -2431,33 +3710,33 @@ % |\wrapoverhang|, which is normally zero. The \meta{number} of % wrapped text lines is normally calculated from the height of the % figure, but may be specified manually, e.g. -% \begin{quote} -% |\begin{wrapfigure}[10]{r}[34pt]{5cm}|\\* \meta{figure}\\* +% \begin{Quote} +% |\begin{wrapfigure}[10]{r}[34pt]{5cm}|\nopagebreak +% \meta{figure}\nopagebreak % |\end{wrapfigure}| -% \end{quote} +% \end{Quote} % \endgroup % % \begingroup % \def\FBaskip{-12pt} % \floatsetup[figure]{style=BOXED,frameset={\fboxsep12pt}} -% \begin{wrapfigure}[14]{O}{0mm} -% \ffigbox[40mm] -% {\par{\setlength\unitlength{\hsize/64}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{TheCat.picture}}} -% {\caption{Wrapped figure in \cmd{\ffigbox} (\pkg{wrapfig} package)}% +% \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)}% % \label{fig:wrapfig:WcatII}} % \end{wrapfigure} % % \emph{Floatrow note.} % For figure, placed in \env{wrap...} environment you must set width % in mandatory argument. If you'll write \texttt{0mm} as \marg{width -% of figure} argument, \pkg{wrapfig} package will count natural width +% of figure} argument, \package{wrapfig} package will count natural width % of float contents. % % Sometimes above (below) float box in \env{wrap...} environment % appears unwanted space. To correct vertical position, use |\FBaskip| -% (|\FBbskip|) commands (see section~\ref{sec:FBabskips}). +% (|\FBbskip|) commands (see {\sectionname}~\ref{sec:FBabskips}). % % \emph{Special settings}. % @@ -2468,29 +3747,29 @@ % \begin{itemize}\itemsep0pt % \item % % if exists |\floatsetup[wrap|\meta{captype}|]{...}| -% \pkg{floatrow} uses these settings---they are the ``strongest'' +% \package{floatrow} uses these settings---they are the ``strongest'' % settings; if they absent---uses settings of next item; %^^A \end{itemize} % %^^A \begin{itemize} % \item % if exists |\floatsetup[wrapfloat]{...}| -% \pkg{floatrow} uses these settings---these settings ``stronger'' +% \package{floatrow} uses these settings---these settings ``stronger'' % than next ones; if they absent---settings of current % float\\[\medskipamount] % |\floatsetup[|\meta{captype}|]{...}|\,;\\[\medskipamount] % if they absent---uses default settings -% (|\floatsetup{...}| or package settings). +% (|\floatsetup{...}| or package settings inside |\usepackage| command). % \end{itemize} % % -% \emph{Founded limitations}. +% \emph{Founded limitations}.\nopagebreak % % The usage of plain float environment in version 3.3 will -% not succeed with current version of \pkg{floatrow}---use |\floatbox| +% not succeed with current version of \package{floatrow}---use |\floatbox| % stuff. The version 3.6 allows usage of plain \env{wrap...} -% environment with \texttt{plain} (or \texttt{ruled}) styles, but -% the framed styles, like \texttt{Boxed} (where text inside frames +% 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 % changes its |\hsize| to fit frames, fitted to defined |\hsize|) % could work only with |\floatbox| macro, otherwise you'll get % incorrect widths and layout. @@ -2498,16 +3777,15 @@ % % \begingroup % \floatsetup[figure]{style=WSHADOWBOX,captionskip=8pt} -% \subsection{The \pkg{floatflt} package} +% \subsection{The \package{floatflt} package}\label{ssec:floatflt} % -% \begin{floatingfigure}[v]{40mm}\def\FBaskip{-2.5pt} -% \ffigbox[42mm] -% {\setlength\unitlength{.85\hsize/60}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi +% \begin{floatingfigure}[v]{44mm}\def\FBaskip{-2.5pt} +% \ffigbox[44mm] +% {\setlength\unitlength{\hsize/60}%%^^A % \input{BlackDog.picture}} % {\caption{\hyphenpenalty-100\pretolerance-1% % Wrapped figure inside \env{floating\-figure} environment -% (\pkg{floatflt})}\label{fig:floatflt:WcatI}} +% (\package{floatflt})}\label{fig:floatflt:WcatI}} % \end{floatingfigure}%\FBbuildtrue % % \noindent Tested with version v\kern-1pt.1.3 dated @@ -2518,10 +3796,10 @@ % environments need usage of |\floatbox| in any case, you can use % either \env{floatingfigure} or \env{floatingtable} and put % necessary float type in |\floatbox| argument (or use necessary -% macro-abbreviation). +% macro abbreviation, like |\ffigbox|). % % -% The next limitations could not tied with \pkg{floatrow} package. +% The next limitations could not tied with \package{floatrow} package. % % 2)\enskip If you put \env{floatingfigure} environment just after % |\...section| command you need (if you do not indentation after @@ -2535,30 +3813,28 @@ % |\makeatletter\@nobreakfalse\makeatother| (as was made in just % before next section). % -% \makeatletter\@nobreakfalse\makeatother +% \RestoreSpaces % -% %^^A \penalty-10000 +% %^^A\newpage % -% \subsection{The \pkg{picins} Package} +% \subsection{The \package{picins} Package}\label{ssec:picins} % % \floatsetup[figure]{style=ruled} % % \parpic[l]{{%\def\floatrowsep{}\let\FBiffloatrow\iftrue -% \def\FBbskip{14pt} +% \def\FBaskip{6pt}\def\FBbskip{14pt} % \ffigbox[42mm] -% {{\setlength\unitlength{18mm/61}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{BlackCat.picture}}} +% {{\setlength\unitlength{20mm/72}%^^A +% \input{TheDog.picture}}} % {\caption{Wrap\-ped figure (\cmd{\parpic}); -% \cmd{\floatbox} -% with \cmd{\FBwidth} option}\label{fig:parpic:BcatI}}% +% \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 % supports usage of captions with command |\piccaption|. It also allows -% the \pkg{caption} package settings. +% the \package{caption} package settings. % % The \cmd{\parpic} macro usually allows usage of |\floatbox| macro % inside of its mandatory argument. @@ -2566,21 +3842,22 @@ %^^A \emph{Founded limitations}.\nopagebreak % %^^A 1)\enskip In |\parpic| argument you ought to put before |\floatbox| -%^^A following commands:\\[\medskipamount] +%^^A following commands: +%^^A \begin{Quote}% %^^A |\def\floatrowsep{}|\allowbreak -%^^A |\let\FBiffloatrow\iftrue|\\[\medskipamount] +%^^A |\let\FBiffloatrow\iftrue| +%^^A \end{Quote}% %^^A to get correct layout. % -% The next limitations could not tied with \pkg{floatrow} package. +% The next limitations could not tied with \package{floatrow} package. % %^^A \floatsetup[figure]{style=DOUBLEBOX} % %^^A \parpic[r]{{%\def\floatrowsep{}\let\FBiffloatrow\iftrue %^^A \hsize36mm %^^A \ffigbox[\hsize] -%^^A {{\setlength\unitlength{16mm/61}\ifx\pspicture\undefined -%^^A \else\psset{unit=\unitlength}\fi -%^^A \input{BlackCat.picture}}} +%^^A {{\setlength\unitlength{16mm/61}%^^A +%^^A \input{TheDog.picture}}} %^^A {\caption{Wrapped figure (\cmd{\parpic})}\label{fig:parpic:BcatII}}% %^^A }} % @@ -2599,33 +3876,36 @@ % % \endgroup % -% \subsection{The \pkg{rotating} Package and \env{sideways\ldots} -% Environment} +% \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}. -%\begin{verbatim} -%\floatsetup[figure]{style=WSHADOWBOX} -%\begin{sidewaysfigure}\emptyfloatpage -%\ffigbox[\FBwidth] -%{\includegraphics[width=4in]{pslearn.eps}} -%{\caption{Figure inside \env{sidewaysfigure} environment}% -%\label{fig:rot}} -%\end{sidewaysfigure}% -%\end{verbatim} -% \floatsetup[figure]{style=WSHADOWBOX} +%\begin{Quote} +%\meta{preamble} +%|\floatsetup[|\hyperref[setup:rotfigure]{\texttt{rotfigure}}|]{|%^^A +% \hyperref[setup:style]{\texttt{style}}|=WSHADOWBOX}| +%\meta{preamble} +%|\begin{sidewaysfigure}\emptyfloatpage| +%|\ffigbox[\FBwidth]| +%| {...}| +%| {\caption{Figure ...}%| +%| \label{...}}| +%|\end{sidewaysfigure}%| +%\end{Quote} +% \floatsetup[rotfigure]{style=WSHADOWBOX} % \begin{sidewaysfigure}\emptyfloatpage % \ffigbox[\FBwidth] {\includegraphics[width=4in]{pslearn}} % {\caption{Figure inside \env{sidewaysfigure} environment}% -% \label{fig:rot}} +% \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 \begin{Quote} % %^^A |\usepackage[figuresright]{rotating}| -% %^^A \end{quote} +% %^^A \end{Quote} % % % \emph{Special settings}.\nopagebreak @@ -2634,6 +3914,7 @@ % \env{sideways...} environment (see page \pageref{stsetorder}). % % For one-column rotated float +% \par\RestoreSpaces % \begin{itemize} % \item % % if exists |\floatsetup[rot|\meta{captype}|]{...}| @@ -2645,7 +3926,7 @@ % ones; if they absent---settings for current float % (|\floatsetup[|\meta{captype}|]{...}|); % if they absent---uses default settings -% (|\floatsetup{...}| or package settings). +% (command |\floatsetup{...}| or package settings). % \end{itemize} % % For two-column or wide rotated float (starred environment) @@ -2681,31 +3962,36 @@ % % \emph{Notes}.\nopagebreak % -% 1)\enskip If you place two continued rotated floats on 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 \pkg{rotating} package has |[figuresright]| +% 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} +% \begin{Quote} % |\buildFBBOX{\vbox to\rottextwidth\bgroup\vss}{\egroup}| -% \end{quote} +% \end{Quote} % and before second one -% \begin{quote} +% \begin{Quote} % |\buildFBBOX{\vbox to\rottextwidth\bgroup}{\vss\egroup}| -% \end{quote} +% \end{Quote} % \medskip -% The |\rottextwidth| dimension---here is saved |\textwidth| of +% The |\rottextwidth| dimension---here is saved parameter |\textwidth| of the % document---the |\columnwidth| and |\textwidth| inside % \texttt{sideways...} environment are redefined and equal to % |\textheight|. % -% 2)\enskip In current example you may see command |\emptyfloatpage|. -% It is offered by \pkg{floatpagestyle} package, (installed with -% \pkg{floatrow} package). Macro |\emptyfloatpage| is abbreviation of +% 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| +% 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} @@ -2713,23 +3999,28 @@ % |\label|---|\ref| mechanism, the |\floatpagestyle| command works % after \emph{second} \LaTeX{} run. % -% \subsection{The \pkg{lscape} Package and \env{landscape} Environment} +% \RestoreSpaces +% \subsection{The \package{lscape} Package and \env{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 -% \pkg{lscape} package on the page~\pageref{fig:rotrow:WcatI}, figures +% \package{lscape} package on the page~\pageref{fig:rotrow:WcatI}, figures % \ref{fig:rotrow:WcatI}--\ref{fig:rotrow:FcatI}): -%\begin{verbatim} -%\DeclareFloatVCode{lowthickrule}{\kern2pt\hrule height.8ptdepth0pt} -%\floatsetup[figure]{style=ruled,rowprecode=thickrule, -% rowpostcode=lowthickrule,capposition=TOP} -%\begin{landscape} -%\begin{figure}\emptyfloatpage -%... -%\end{verbatim} +% \par\RestoreSpaces +%\begin{Quote} +%\meta{preamble} +%|\DeclareFloatVCode{lowthickrule}{\kern2pt\rule{\hsize}{.8pt}}| +%|\floatsetup[figure]{style=ruled,rowprecode=thickrule,| +%| rowpostcode=lowthickrule,capposition=TOP}| +%\meta{preamble} +%|\begin{landscape}| +%|\begin{figure}\emptyfloatpage| +%|...| +%\end{Quote} % |\floatsetup| code sets \texttt{ruled} float style, % then settings for above and below material are redefined: % \texttt{rowprecode=} and \texttt{rowpostcode=} keys define thick @@ -2738,96 +4029,64 @@ %\fi\fi % % The \env{landscape} environment creates a new page. It would be -% useful to start new section of document, e.g., appendix. (In current +% useful to rotate the whole new section of document, e.g., appendix. (In current % document it was placed just before appendix) % %^^A \emph{Founded limitations}.\nopagebreak %^^A The tested version works incorrect (does not rotates contents) -%^^A with \pkg{hypcap} package. +%^^A with \package{hypcap} package. % -% \subsection{The \pkg{listings} 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 \pkg{caption} +% algorithms itself. The usage of |\lstset| command and \package{caption} % package settings gives you necessary result\footnote{Please note and read -% \pkg{caption} documentation: the co-operation of \pkg{caption}3.x and -% \pkg{listings} succeeds with version of last one not older than 1.2.} +% \package{caption} documentation: the co-operation of \package{caption}3.x and +% \package{listings} succeeds with version of last one not older than 1.2.} % for algorithm type of float. % -% \iffalse -% For the cases of appearance of listings inside of other float -% environments e.g. inside \env{figure} environments with boxed styles -% like \texttt{Boxed} and \texttt{BOXED} and with predefined float -% width, you ought to set: -% \begin{quote} -% |\lstset{linewidth=\hsize}| -% \end{quote} -% in the preamble, or just before \env{lstlisting} environment. Or in -% optional argument of \env{lstlisting} environment---here you must set -% width like: -% \begin{quote} -% |\begin{lstlisting}[linewidth=\hsize]| -% \end{quote} -% \fi -% % For the cases of appearance of listings inside of other float -% environments, which get settings from \pkg{floatrow}package, +% environments, which get settings from \package{floatrow} package, % there is a limitation: you can't put \env{lstlisting} inside % |\floatbox| contents. % -% \subsection{The \pkg{longtable} Package} -% -% There was added a patch to the |\LT@array| macro (\pkg{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. -% -% \DescribeMacro{LTcapwidth=} -% This key could have any value, like |5cm| or |\hsize|. 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. -% The |\floatsetup[longtable]| will be ``strongest'' in this pair. -% -% \subsection{The \pkg{hyperref} and \pkg{hypcap} Packages} +% \subsection{The \package{hyperref} and \package{hypcap} Packages} % -% There were tested versions v6.74i (\pkg{hyperref}) -% and v1.3 (\pkg{hypcap}). +% There were tested versions v6.74i (\package{hyperref}) +% and v1.3 (\package{hypcap}). % -% The \pkg{floatrow} tries not to expand its code to |\caption| stuff. -% I hope that environments supported by \pkg{floatrow} won't -% make harm to \pkg{caption}---\pkg{hyperref}/\pkg{hypcap} tandem. +% The \package{floatrow} 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 -% \pkg{caption} 3.x package: -% \begin{quote} -% \pkg{ccaption}, \pkg{hvfloat}, \pkg{nonfloat} -% \end{quote} -% -% The known incompatibilities of \pkg{floatrow} package itself -% is \pkg{sidecap} package\footnote{Despite that I'm trying -% to follow offered layouts of this package. Great thanks for -% Rolf Niepraschk and Hubert G\"{a}\ss{}lein for package with +% \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} +% +% The known incompatibilities of \package{floatrow} package itself: +% \quad 1)\nobreak\enskip \package{sidecap} package\footnote{Despite that +% I'm trying to follow all offered layouts of this package. Great thanks +% for Rolf Niepraschk and Hubert G\"{a}\ss{}lein for package with % rich implementation of such float -% layouts.}: the \pkg{floatrow} package doesn't expands its +% 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 +% \package{ctable}'s tools, e.g. for tables, please set |\RawFloats[table]| +% in the preamble, and remember that commands like |\ttabbox| won't +% loose its strength (see also {\sectionname}~\ref{sec:rawfloats}). % % \addtocontents{toc}{\string\pagebreak[3]} % \section{Limitations} % % There are known limitations, which were found during usage of -% \pkg{floatrow}: +% \package{floatrow}: % \begin{itemize} % %^^A \item % % %^^A Limitations for boxed and ruled styles in beside floats: be @@ -2840,7 +4099,7 @@ % You cannot use |\floatbox| stuff for floats with \texttt{verbatim} % environment and/or |\verb|. % \item % -% This limitation was mentioned above: the package uses +% This limitation was mentioned above: some tools of the package use % |\label|---|\ref| mechanism, thus, if you use float layout which % demands common height of objects and/or captions in float row, % you'll get correct result after second or more runs. If you change @@ -2850,8 +4109,8 @@ % Beside captions and other facing layout will appears correctly only % after second \LaTeX's run (sometimes you need to run more times). % \item % -% The version 3.0a (and newer) of \pkg{caption} package and -% \pkg{floatrow} package do not support optional argument \emph{after} +% The \package{caption} and +% \package{floatrow} package do not support optional argument \emph{after} % caption ``title''. You may use |\floatfoot| % macro after main caption argument. % \item % @@ -2902,7 +4161,7 @@ % % 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 \pkg{floatrow} package. +% help in \emph{all} my questions and problems in \package{floatrow} package. % % \medskip\noindent % Thanks for \emph{all} involuntary (\La)\TeX{} teachers, who teaches @@ -2917,11 +4176,11 @@ % \emph{Thanks for \emph{all} authors of second edition of \LaTeX{} % Companion for this book.} % -%\ifx\landscape\undefined\else +%\ifx\landscape\undefined\else\begingroup % \ifx\landscape\relax\else % \clearfloatsetup{figure} % \floatsetup[figure]{style=ruled,rowprecode=thickrule, -% rowpostcode=lowthickrule,capposition=TOP, +% rowpostcode=lowthickrule,capposition=TOP,margins=hangtoheads, % footposition=caption} % \newlength\Mylen\Mylen\textwidth % @@ -2929,40 +4188,39 @@ % % \begin{figure}\emptyfloatpage % -% \begin{floatrow}[4] +% \begin{floatrow}[4]\label{example:ruledcapposTOP}%^^A % \ffigbox[][][t] % {{\input{TheCat.picture}}%^^A % \footnotetext[1]{The % picture was created with \cmd{\qbezier} % macro}}% -% {\caption[Beside figure~I, top of object box]% -% {Beside figure~I, top of object box\protect\mpfootnotemark}% +% {\caption[Figure in the row~I, top of object box]% +% {Figure in the row~I, top of object box\protect\mpfootnotemark}% % \label{fig:rotrow:WcatI}}% % % \floatbox{figure}[2\FBwidth][][b] -% {\caption{Beside figure~II, bottom of object box}% +% {\caption{Figure in the row~II, bottom of object box}% % \label{fig:rotrow:BcatI}% % \floatfoot{There are all \cmd{\qbezier} macros and only % two vertical lines}}% % {\input{BlackCat.picture}}% % % \ffigbox[\FBwidth] -% {{\unitlength2.5\unitlength\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{Mouse.picture}}\footnote[2]% +% {{\unitlength2.5\unitlength +% \input{Cat.picture}}\footnote[2]% % {Look at funny footnotemark!}} -% {\caption{Beside figure~III, center of object box}% +% {\caption{Figure in the row~III, center of object box}% % \label{fig:rotrow:mouseI}\floatfoot{The Mouse-animal image}}% % % \floatbox{figure}[\Xhsize][\Mylen] -% {\caption{Beside figure~IV}\label{fig:rotrow:FcatI}} +% {\caption{Figure in the row~IV}\label{fig:rotrow:FcatI}} % {\Resizebox\hsize\vsize{35}{136}{\input{BlackCat2.picture}}} % \end{floatrow} % % \end{figure} % % \end{landscape} -%\fi\fi +%\endgroup\fi\fi % % \clearpage % \suppressfloats[t] @@ -2970,106 +4228,25 @@ % % \subsection{Miscellaneous} % -% \subsubsection{Mixed Row} -% -% \floatsetup[figure]{style=Boxed,midcode=captionskip, -% frameset={\fboxsep12pt\fboxrule1pt}} -% Sometimes author (or designer) wants to put different types of floats, -% e.g., table and figure beside in one row. This situation creates -% some problems. -% -% The first problem 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 -% |\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). -% -% The second 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 following commands: -%\begin{verbatim} -%\CenterFloatBoxes -%\TopFloatBoxes -%\BottomFloatBoxes -%\end{verbatim} -% which align \emph{full} float boxes by center, top or bottom lines. -% These macros were created by |\buildFBBOX| macro. -% There is also |\PlainFloatBoxes| which restores standard behavior of -% |\floatbox|'es. -% -% 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}: -% \DeleteShortVerb{\|}% -% \begin{figure} -% \begin{floatrow} -% \CenterFloatBoxes \killfloatstyle -% \ffigbox[\FBwidth] -% {{\unitlength1.15\unitlength\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{TheCat.picture}}} -% {\caption{Figure (\texttt{Boxed} style) beside table -% (vertical centering)}\label{fig:rowmixspec:WcatI}}% -% \extrarowheight1pt -% \ttabbox -% {\caption{Table beside \texttt{Boxed}-styled figure -% (vertical centering)}\label{tab:rowmixspec:tabI}} -% {\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{figure} -% \MakeShortVerb{\|}% -%\begin{verbatim} -%\begin{figure} -%\begin{floatrow} -%\CenterFloatBoxes\killfloatstyle -%\ffigbox[\FBwidth] -% ... -%\ttabbox -% ... -%\end{verbatim} -% -% \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}). -% -% -% \subsubsection{Usage of Captionsetup and Thisfloatsetup -% Inside Floatbox Stuff} +% \subsubsection{Usage of Captionsetup +% 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{verbatim} -%\newfloatcommand{fcapsideleft}{figure}[{\capbeside -% \captionsetup[capbesidefigure]{format=break,labelsep=none, -% justification=raggedleft}% -% \thisfloatsetup{capbesideposition=left}}]% -% [\FBwidth] -%\newfloatcommand{fcapsideright}{figure}[{\capbeside -% \captionsetup[capbesidefigure]{format=break,labelsep=none, -% justification=raggedright}% -% \thisfloatsetup{capbesideposition=right}}]% -% [\FBwidth] -%\end{verbatim} +%\begin{Quote} +%|\newfloatcommand{fcapsideleft}{figure}[{\capbeside| +%| \captionsetup[capbesidefigure]{format=break,labelsep=none,| +%| justification=raggedleft}%| +%| \thisfloatsetup{capbesideposition=left}}]%| +%| [\FBwidth]| +%|\newfloatcommand{fcapsideright}{figure}[{\capbeside| +%| \captionsetup[capbesidefigure]{format=break,labelsep=none,| +%| justification=raggedright}%| +%| \thisfloatsetup{capbesideposition=right}}]%| +%| [\FBwidth]| +%\end{Quote} % % \clearfloatsetup{figure} % \floatsetup[figure] @@ -3081,35 +4258,33 @@ % \begin{figure}[b!] % \begin{floatrow} % \fcapsideleft -% {\unitlength1.44\unitlength\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{TheCat.picture}} -% {\caption{%^^A +% {\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] -% {\setlength\unitlength{\hsize/61}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi +% {\setlength\unitlength{\hsize/61}%^^A % \input{BlackCat.picture}}% -% {\caption{%^^A +% {\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}}% % \end{floatrow}% % \end{figure}% % The caption format \texttt{break} was defined by following way: -%\begin{verbatim} -%\DeclareCaptionFormat{break}{#1#2\par#3\par} -%\end{verbatim} +%\begin{Quote} +%|\DeclareCaptionFormat{break}{#1#2\par#3\par}| +%\end{Quote} % % For these figures created following \verb|\floatsetup| settings: -%\begin{verbatim} -%\floatsetup[figure] -% {style=Boxed,capposition=beside, -% objectset=centering,floatwidth=\columnwidth, -% capbesidewidth=5.75cc,capbesidesep=cicero,margins=centering, -% capbesideframe=yes,floatwidth=sidefil} -%\end{verbatim} -% The key \texttt{floatwidth=sidefill} means that in the case of +%\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). @@ -3117,9 +4292,9 @@ % 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{verbatim} -%\hsize\Xhsize -%\end{verbatim} +%\begin{Quote} +%|\hsize\Xhsize| +%\end{Quote} % which, in case of caption placed beside float object defines width % of full float box. % @@ -3145,56 +4320,53 @@ % float environment.}). The object---caption box in this case aligned % using alignment settings from |margins| key (its options defined % by |\setfloatmargins| or |\floatcapbesidemargins| macro). In this -% documentation they are centered (see page~\pageref{fsetup:besmarg}). -%\begin{verbatim} -%\begin{figure} -%\floatbox[\capbeside\useFCwidth]{figure}[\FBwidth] -% ... -%\end{figure} -%\end{verbatim} +% documentation they are centered (see page~\pageref{setup:DeclareMarginSet}). +%\begin{Quote} +%\meta{preamble} +%|\floatsetup[figure]{style=plain}| +%\meta{preamble} +%|\begin{figure}| +%|\floatbox[\capbeside\useFCwidth]{figure}[\FBwidth]| +%| ...| +%|\end{figure}| +%\end{Quote} % \clearfloatsetup{figure} % \floatsetup[figure]{style=plain} % -% \begin{figure}[h] +% \begin{figure}[H] % \floatbox[\capbeside\useFCwidth]{figure}[\FBwidth] % {\caption[Beside % caption, width equals to caption's text]{Beside % caption}\label{fig:Idog:w}} -% {{\setlength\unitlength{{4cm}/60}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi +% {{\setlength\unitlength{{4cm}/60}%^^A % \input{BlackDog.picture}}} % \end{figure}% % -% The settings for current float: -%\begin{verbatim} -%\floatsetup[figure]{style=plain} -%\end{verbatim} % % \subsubsection{Predefined Beside Caption Width with -% The Rest Space for Object} +% 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 \pkg{hyperref} +%^^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}} -%\begin{verbatim} -%\floatsetup[figure] -% {style=Boxed,capposition=beside,objectset=centering, -% floatwidth=\columnwidth,capbesidewidth=\Mylen, -% capbesideposition=left,capbesidesep=cicero, -% margins=centering,capbesideframe=yes, -% floatwidth=sidefil} -%\end{verbatim} -% The \verb|\Mylen| dimension was defined as width of caption label: -%\begin{verbatim} -%\newdimen\Mylen -%\settowidth\Mylen{\captionfont\captionlabelfont -% \figurename\ \thefigure} -%\end{verbatim} +%\begin{Quote} +%\meta{preamble} +%|\renewlengthtocommand\settowidth\Mylen{\captionfont\captionlabelfont| +%| \figurename\ \thefigure}| +%\meta{preamble} +%|\floatsetup[figure]| +%| {style=Boxed,capposition=beside,objectset=centering,| +%| floatwidth=\columnwidth,capbesidewidth=\Mylen,| +%| capbesideposition=left,capbesidesep=cicero,| +%| margins=centering,capbesideframe=yes,| +%| floatwidth=sidefil}| +%\end{Quote} +% The \verb|\Mylen| dimension was defined as width of caption label. % % \clearfloatsetup{figure} % \floatsetup[figure] @@ -3202,41 +4374,40 @@ % floatwidth=\columnwidth,capbesidewidth=\Mylen, % capbesideposition=left,capbesidesep=cicero, % margins=centering,capbesideframe=yes,floatwidth=sidefil} -% \newdimen\Mylen\settowidth\Mylen{\captionfont\captionlabelfont +% \renewlengthtocommand\settowidth\Mylen{\captionfont\captionlabelfont % \figurename\ \thefigure} % -% \begin{figure} +%\begingroup +% \begin{figure}[H] %^^A \captionsetup[capbesidefigure]{format=default,labelsep=none} % \fcapside -% {\unitlength1.1\unitlength\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{TheCat.picture}} -% {\caption{}\label{fig:capbeside:trick}} +% {\unitlength1.44\unitlength +% \input{Horse.picture}} +% {\caption[The box of beside caption has width of caption contents (here: caption label)]{}\label{fig:capbeside:trick}} % \end{figure}% +%\endgroup % % -% \subsubsection{Caption Beside with Centered Object} +% \subsubsection{Caption Beside with Centered Object}\label{FAD:CapandCenterObj} % % The figure \ref{fig:plain:trick} uses tricky float style: -%\begin{verbatim} -%\floatsetup[figure] -% {style=plain,capposition=beside,objectset=centering, -% floatwidth=\columnwidth,capbesidewidth=6cc, -% capbesideposition=left,capbesidesep=mcapwidth, -% margins=centering,capbesideframe=yes, -% floatwidth=sidefil} -%\end{verbatim} -% the \texttt{mcapwidth} option is a negative skip equal to caption -% width: -%\begin{verbatim} -%\DeclareFloatSeparators{mcapwidth}{\hskip-\FCwidth} -%\end{verbatim} +%\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] +% \clearfloatsetup{figure}\floatsetup[figure] % {style=plain,capposition=beside,objectset=centering, % floatwidth=\columnwidth,capbesidewidth=6cc, % capbesideposition=left,capbesidesep=mcapwidth, @@ -3244,21 +4415,21 @@ % \begingroup % \captionsetup[capbesidefigure]{format=break,labelsep=none, % justification=raggedright} -% \begin{figure}[!b] -% \unitlength1.1\unitlength\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{TheCat.picture} -% \caption{%^^A +% \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}: -%\begin{verbatim} -%\captionsetup[capbesidefigure]{format=break,labelsep=none, -% justification=raggedright} -%\end{verbatim} +% 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} @@ -3267,55 +4438,55 @@ % boxes (figures~\ref{floatrow:pre:figI} and % \ref{floatrow:pre:figII}): just define before \verb|\fcapside| % command something like -%\begin{verbatim} -%\setlength\hsize{1.098\hsize}% -%\end{verbatim} +%\begin{Quote} +%|\setlength\hsize{1.2\hsize}%| +%\end{Quote} % as was defined for first figure, or -%\begin{verbatim} -%\setlength\hsize\Xhsize -%\end{verbatim} +%\begin{Quote} +%|\setlength\hsize\Xhsize| +%\end{Quote} % before second (here is clear that you can set -% |\setlength\hsize{.902\hsize}|). +% |\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. % +%\begingroup % \clearfloatsetup{figure} % \floatsetup[figure] % {style=plain,capposition=beside,objectset=centering, % capbesideposition=left,capbesidesep=enskip, % margins=centering,capbesideframe=yes,floatwidth=sidefil} -% \begin{figure}[h]\useFCwidth +% \begin{figure}[H]\useFCwidth %^^A \captionsetup[capbesidefigure]{format=default,labelsep=none} % \begin{floatrow} -% \setlength\hsize{1.098\hsize}% +% \setlength\hsize{1.2\hsize}% % \fcapside -% {\setlength\unitlength{\hsize/64}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{TheCat.picture}} -% {\caption{%^^A +% {\setlength\unitlength{\hsize/100}%^^A +% \input{Bear.picture}} +% {\caption[Left figure with beside caption in the row]{%^^A % }\label{floatrow:pre:figI}} % \setlength\hsize\Xhsize % \fcapside -% {\setlength\unitlength{\hsize/58}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{Mouse.picture}} -% {\caption{%^^A +% {\setlength\unitlength{\hsize/44}%^^A +% \input{Doll.picture}} +% {\caption[Right figure with beside caption in the row]{%^^A % }\label{floatrow:pre:figII}} % \end{floatrow}% % \end{figure}% +%\endgroup % There was used following setup for figures: -%\begin{verbatim} -%\floatsetup[figure] -% {style=plain,capposition=beside,objectset=centering, -% capbesideposition=left,capbesidesep=enskip, -% margins=centering,capbesideframe=yes,floatwidth=sidefil} -%\end{verbatim} +%\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 Float and Caption Beside Float at -% The One Float Row} +% \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 @@ -3326,37 +4497,36 @@ % 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: -%\begin{verbatim} -%\begin{figure}\CenterFloatBoxes -%\begin{floatrow} -%\hsize1.098\hsize -% \fcapside[\FBwidth][4cm] -% ... -% -% \ffigbox[\Xhsize][4cm] -% ... -%\end{floatrow}% -%\end{figure} -%\end{verbatim} +%\begin{Quote} +%|\begin{figure}\CenterFloatBoxes| +%|\begin{floatrow}| +%|\hsize1.098\hsize| +%| \fcapside[\FBwidth][3.6cm]| +%| ...| +%| | +%| \ffigbox[\Xhsize][3.6cm]| +%| ...| +%|\end{floatrow}%| +%|\end{figure}| +%\end{Quote} % -% \clearfloatsetup{figure} \floatsetup[figure] +% \clearfloatsetup{figure} +% \floatsetup[figure] % {style=Boxed,frameset={\fboxsep6pt},captionskip=5pt,capposition=bottom, % objectset=centering,capbesidewidth=none,capbesideposition=inside, % capbesidesep=enskip,margins=centering,capbesideframe=yes} % -% \begin{figure}\CenterFloatBoxes +% \begin{figure}[H]\CenterFloatBoxes % \begin{floatrow} -% \hsize1.098\hsize \fcapside[\FBwidth][4cm] -% {\unitlength1.44\unitlength\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{TheCat.picture}} -% {\caption{%^^A +% \hsize1.098\hsize \fcapside[\FBwidth][3.6cm] +% {\unitlength1.44\unitlength +% \input{Cat.picture}} +% {\caption[Float box \cmd{\fcapside} in float row beside \cmd{\ffigbox}]{%^^A % Float box (\cmd{\fcapside}) with beside caption in float row % width float with caption below}\label{flrow:mix:figI}}% % -% \ffigbox[\Xhsize][4cm] -% {\unitlength1.44\unitlength\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi +% \ffigbox[\Xhsize][3.6cm] +% {\unitlength1.44\unitlength % \input{BlackDog.picture}} % {\caption{%^^A % Float box (\cmd{\ffigbox}) width of rest float row @@ -3365,35 +4535,34 @@ % \end{figure} % % The ``mirror layout'' (but not identical) looks like: -%\begin{verbatim} -%\begin{figure}\CenterFloatBoxes -%\begin{floatrow} -% \ffigbox[1.2\FBwidth][4cm] -% ... -% -% \hsize\Xhsize -% \fcapside[\FBwidth][4cm] -% ... -%\end{floatrow}% -%\end{figure} -%\end{verbatim} -% -% \begin{figure}[!b]\CenterFloatBoxes +% \allowprelistbreaks[-4]\par\RestoreSpaces +%\begin{Quote} +%|\begin{figure}\CenterFloatBoxes|\nopagebreak +%|\begin{floatrow}| +%| \ffigbox[1.2\FBwidth][3.6cm]| +%| ...| +%| | +%| \hsize\Xhsize| +%| \fcapside[\FBwidth][3.6cm]| +%| ...| +%|\end{floatrow}%| +%|\end{figure}| +%\end{Quote} +% +% \begin{figure}[H]\CenterFloatBoxes % \begin{floatrow} -% \ffigbox[1.2\FBwidth][4cm] -% {\unitlength1.44\unitlength\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi +% \ffigbox[1.2\FBwidth][3.6cm] +% {\unitlength1.44\unitlength % \input{BlackDog.picture}} % {\caption{%^^A -% Float box (\cmd{\ffigbox}) width of rest float row -% space}\label{floatrow:mirrmix:figII}}% +% Float box (\cmd{\ffigbox}) +% in mirror float row}\label{floatrow:mirrmix:figII}}% % \hsize\Xhsize % -% \fcapside[\FBwidth][4cm] -% {\unitlength1.44\unitlength\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi -% \input{TheCat.picture}} -% {\caption{%^^A +% \fcapside[\FBwidth][3.6cm] +% {\unitlength1.44\unitlength +% \input{Cat.picture}} +% {\caption[Float box (\cmd{\fcapside}) in mirror float row]{%^^A % Float box with beside caption (\cmd{\fcapside}) in mirror float row % width float with caption below}\label{floatrow:mirrmix:figI}} % \end{floatrow}% @@ -3401,13 +4570,14 @@ % % The figures~\ref{floatrow:mirrmix:figII}--\ref{floatrow:mirrmix:figI} % use following float style settings: -%\begin{verbatim} -%\floatsetup[figure] -% {style=Boxed,frameset={\fboxsep4pt},captionskip=5pt, -% capposition=bottom,objectset=centering,capbesidewidth=none, -% capbesideposition=inside,capbesidesep=enskip,margins=centering, -% capbesideframe=yes} -%\end{verbatim} +% \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} % @@ -3416,73 +4586,74 @@ % and, ``mirror layout''---^^A % \ref{floatrow:threemirr:figI}--\ref{floatrow:threemirr:figIII}) were % created by following lines: -%\begin{verbatim} -%\begin{figure}[t]\BottomFloatBoxes -%\begin{floatrow} -%\hsize1.2\hsize \ffigbox[][6.7cm] -% ... -% -%\vbox to6.7cm -% {\floatsetup[figure]{floatrowsep=none}\killfloatstyle -% \ffigbox[.8\hsize] -% ... -% \vss -% \ffigbox[.8\hsize] -% ...% -% }% -%\end{floatrow}% -%\end{figure} -%\end{verbatim} +%\begin{Quote} +%|\begin{figure}\BottomFloatBoxes| +%|\begin{floatrow}| +%|\hsize1.2\hsize \ffigbox[][6.7cm]| +%| ...| +%| | +%|\vbox to6.7cm| +%| {\floatsetup[figure]{floatrowsep=none}\killfloatstyle| +%| \ffigbox[.8\hsize]| +%| ...| +%| \vss| +%| \ffigbox[.8\hsize]| +%| ...%| +%| }%| +%|\end{floatrow}%| +%|\end{figure}| +%\end{Quote} % % \floatsetup[figure]{heightadjust=none} -% \begin{figure}[b!]\BottomFloatBoxes +% \begin{figure}[H]\BottomFloatBoxes % \begin{floatrow} % \hsize1.2\hsize % \ffigbox[][6.7cm] -% {\setlength\unitlength{\hsize/58}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi +% {\setlength\unitlength{\hsize/58}%^^A % \input{Mouse.picture}}% -% {\caption{Float box in photo-album-like layout: +% {\caption[Photo-album-like layout: left float]{Float +% box in photo-album-like layout: % alone in left column}\label{flrow:three:figIII}}% % % \vbox to6.7cm {\floatsetup[figure]{floatrowsep=none}\killfloatstyle % \ffigbox[.8\hsize] % {\input{TheCat.picture}} -% {\caption{%^^A +% {\caption[Photo-album-like layout: upper right float]{%^^A % Float box in photo-album-like layout: upper float in right % column}\label{floatrow:three:figI}} \vss \ffigbox[.8\hsize] % {\input{BlackDog.picture}}% -% {\caption{%^^A +% {\caption[Photo-album-like layout: lower right float]{%^^A % Lower float in right column}% % \label{floatrow:threemirr:figII}}}% % \end{floatrow}% % \end{figure} % % The ``mirror'' layout created by following commands: -%\begin{verbatim} -%\begin{figure}[t]\TopFloatBoxes -%\begin{floatrow} -%\vtop to7cm -% {\floatsetup[figure]{floatrowsep=none}\killfloatstyle -% \ffigbox[.8\hsize] -% ... -% \vss -% \ffigbox[.8\hsize] -% ...% -% \vskip0pt}\floatrowsep -% -%\ffigbox[\Xhsize][7cm-11pt] -% ... -%\end{floatrow}% -%\end{figure} -%\end{verbatim} +% \par\RestoreSpaces +%\begin{Quote} +%|\begin{figure}[t]\TopFloatBoxes| +%|\begin{floatrow}| +%|\vtop to7cm| +%| {\floatsetup[figure]{floatrowsep=none}\killfloatstyle| +%| \ffigbox[.8\hsize]| +%| ...| +%| \vss| +%| \ffigbox[.8\hsize]| +%| ...%| +%| \vskip0pt}\floatrowsep| +%| | +%|\ffigbox[\Xhsize][7cm-11pt]| +%| ...| +%|\end{floatrow}%| +%|\end{figure}| +%\end{Quote} % Note that in second example with ``mirror'' layout there was used % trick with \meta{height} definition---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 \pkg{caption}'s version not older than 3.0d.} -% (here were used \pkg{calc} package possibilities). The |\vtop| of +% beside floats with \package{caption}'s version not older than 3.0d.} +% (here were used \package{calc} package possibilities). The |\vtop| of % left column ends with |\vskip0pt|, otherwise you get fanny unwanted % layout. % @@ -3492,19 +4663,18 @@ % \vtop to7cm {\floatsetup[figure]{floatrowsep=none}\killfloatstyle % \ffigbox[.8\hsize] % {\input{TheCat.picture}} -% {\caption{%^^A +% {\caption[Photo-album-like layout, mirror: upper left float]{%^^A % Float box in photo-album-like layout: upper float in left % column}\label{floatrow:threemirr:figI}} \vss \ffigbox[.8\hsize] % {\input{BlackDog.picture}}% -% {\caption{%^^A -% Float box in photo-album-like layout: lower float in left column}% +% {\caption[Photo-album-like layout, mirror: lower left float]{%^^A +% Float box in photo-album-like layout: lower float in the left column}% % \label{floatrow:three:figII}}\vskip0pt}\floatrowsep % % \ffigbox[\Xhsize][7cm-11pt] -% {\setlength\unitlength{\hsize/58}\ifx\pspicture\undefined -% \else\psset{unit=\unitlength}\fi +% {\setlength\unitlength{\hsize/58}%^^A % \input{Mouse.picture}}% -% {\caption{%^^A +% {\caption[Photo-album-like layout, mirror: right float]{%^^A % Float box in photo-album-like layout: alone in right % column}\label{floatrow:threemirr:figIII}} % \end{floatrow}% @@ -3522,7 +4692,9 @@ % photo-album-like layout is rather rare in technical literature (It % isn't?). % -% \subsection{Sample files} +% \clearpage +% \par\RestoreSpaces +% \subsection{Sample files}\label{sec:samples} % % The \env{floatrow} package distribution offers a few files with % examples, which show settings, not covered by current document (some @@ -3538,12 +4710,12 @@ % % \begin{Options}{\OptionLabel} % \item[frsample01.tex] all possible combinations of predefined -% \pkg{floatrow} styles for captions above/below floats with foot +% \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 % alone objects and alone captions; % \item[frsample02.tex] all possible combinations of predefined -% \pkg{floatrow} styles for beside captions and all possible +% \package{floatrow} styles for beside captions and all possible % caption positions; % \item[frsample03.tex] different tests with tables; % \item[frsample04.tex] sample with fancy layout with usage of @@ -3567,19 +4739,169 @@ % colored float styles. % \end{Options} % -% There is also added [temporary] sample file \file{sample-longtable.tex} -% with \env{longtable} test of defined command |\endlasthead| which +% There is also added sample file \file{sample-longtable.tex} 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 % -% \section{Obsolete Commands}\label{sec:changed} +% \subsection{Obsolete Commands}\label{sec:changed} +% +% \begin{small} +% \subsubsection{The User Interface---New Floats [\package{float}]} +% \label{sec:floatborrowI} +% +% \DescribeMacro{\newfloat} +% The most important command in \package{float} +% is the |\newfloat| command\footnote{It doubles the +% \cmd{\DeclareNewFloatType} command.}. It is patterned on +% |\newtheorem|. The |\newfloat| command takes three required and +% one optional argument; it is of the form +% \begin{Quote} +% \hspace*{\MacroIndent}|\newfloat{|\meta{type}|}{|^^A +% \meta{placement}|}{|\meta{ext}|}[|\meta{within}{\tt]} +% \end{Quote} +% \begin{itemize}\advance\itemsep2ptplus2pt +% \item \marg{type} is the `type' of the new class of floats, like +% \texttt{program} or \texttt{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', +% respectively. +% \item \marg{ext} When \LaTeX\ writes the captions to an auxiliary file +% for the list of figures (or whatever), it'll use the job name +% followed by \marg{ext} as a file name. +% \item \oarg{within} Finally, the optional +% argument \meta{within} determines whether floats of this class will +% be numbered within some sectional unit of the document. For example, +% if \oarg{within}${}={}$\texttt{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.}. +% \end{itemize} +% \emph{Floatrow note.} +% There is also created a |\newfloat*| pair, which works similar to +% |\restylefloat*| command (see below).\pagebreak[2] +% \begin{Example}[H] +% \begin{Quote}\openup-.5pt +% |\floatstyle{ruled}| +% |\newfloat{Program}{tbp}{lop}[section]|\pagebreak[3] +% \dots\ loads o' stuff \dots +% |\begin{Program}| +% |\begin{verbatim}| +% \dots\ program text \dots +% |\end{verbatim}| +% |\caption{|\dots\ caption \dots|}| +% |\end{Program}| +% \end{Quote} +% \caption{This is another silly floating Example. Except +% that this one doesn't actually float +% because it uses the {\tt[H]} optional parameter +% to appear \textbf{Here}. (Gotcha.)}\label{exa1.1} +% \end{Example}\pagebreak[3] +% \begin{Program} +%\begin{verbatim} +%#include +% +% +%int main(int argc, char **argv) { +% int i; +% for (i = 0; i < argc; ++i) +% printf("argv[%d] = %s\n", i, argv[i]); +% return 0; +%} +%\end{verbatim} +% \caption{The first program. This hasn't got anything to do with the +% package but is included as an example. +% Note the \texttt{ruled} float style.% +% \label{prog1.1}} +% \end{Program} +% +% \DescribeMacro{\floatstyle} +% The |\floatstyle| command sets a default +% float style. This float style will be used for all the floats that +% are subsequently defined using |\newfloat|, until another +% |\floatstyle| command appears. The |\floatstyle| command takes one +% argument, the name of a float style. For instance, +% |\floatstyle{ruled}|. Specifying a string that does not name a valid +% float style is an error. +% +% \DescribeMacro{\floatname} +% The |\floatname| command lets you define +% the \emph{float name} that \LaTeX\ uses in the caption of a float, +% i.e., `Figure' for a figure and so on. For example, +% |\floatname{program}{Program}|. The |\newfloat| command sets the +% float name to its argument \meta{type} if no other name has been +% specified before. +% +% \DescribeMacro{\floatplacement} +% The |\floatplacement| command resets +% the default placement specifier of a class of floats. E.g., +% |\floatplacement{figure}{tp}|. +% +% \DescribeMacro{\restylefloat}\nopagebreak +% The |\restylefloat| command is necessary +% to change styles for the standard float types +% \texttt{figure} and \texttt{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 +% 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 +% styles have not any special settings in \package{caption} 3.x package. +% To emulate \texttt{boxed} style from \package{float} documentation there +% were: cleared all special caption settings for tables, and restored +% default colon separator after label.}. There is a |\restylefloat*| +% command which will restyle an existing float type but will keep the +% new float style from taking over the |\caption| command. In this +% case the user is responsible for handling their own captions. +% \DeleteShortVerb{\|} +% %^^AEmulation of float's documentation settings +% %^^A\floatstyle{boxed} +% %^^A\restylefloat{table} +% \begingroup +% \clearcaptionsetup{table} +% \captionsetup{labelsep=default,labelfont=bf} +% \floatsetup[table]{style=boxed} +% \begin{table}[h] \def\B#1{$\displaystyle{n\choose#1}$} +% \begin{center} \begin{tabular}{c|cccccccc} +% $n$&\B0&\B1&\B2&\B3&\B4&\B5&\B6&\B7\\ \hline +% 0 & 1\\ +% 1 & 1&1\\ +% 2 & 1&2&1\\ +% 3 & 1&3&3&1\\ +% 4 & 1&4&6&4&1\\ +% 5 & 1&5&10&10&5&1\\ +% 6 & 1&6&15&20&15&6&1\\ +% 7 & 1&7&21&35&35&21&7&1 +% \end{tabular} \end{center} +% \caption{Pascal's triangle. This is a re-styled \LaTeX\ +% \texttt{table}.\label{table1}} +% \end{table} +% \endgroup +% \MakeShortVerb{\|} % -% |\floatsetup|, renamed or deleted after version 0.1b. +% \end{small}\pagebreak[2] +%\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} % -% \begingroup\extrarowheight1.75pt\small\tabcolsep.5\tabcolsep -% \medskip\parindent0pt -% \begin{tabular*}\hsize{@{\extracolsep{-.3ptplus1fill}}| +% \parindent0pt +% \begin{longtable}{@{\extracolsep{-.3ptplus1fill}}| % >{\rightskip0ptplus1fil}p{.35\hsize}| % >{\rightskip0ptplus1fil}p{.6\hsize}|} % \multicolumn{2}{c}{Removed or changed commands} @@ -3588,6 +4910,7 @@ % & % \thead{Changed to} % \\\hline +% \endhead % \extrarowheight0pt\begin{tabular}[t]{@{}l} % \cmd{\renewfloatstyle},\\ % \cmd{\newfloatstyle},\\ @@ -3602,10 +4925,10 @@ % \\\hline % \cmd{\floatfootskip} & command, not a skip % \\\hline -% \end{tabular*}\pagebreak +% \end{longtable} % % \vskip1pt -% \begin{tabular*}\hsize{@{\extracolsep{-.3ptplus1fill}}| +% \begin{longtable}{@{\extracolsep{-.3ptplus1fill}}| % >{\rightskip0ptplus1fil}p{.35\hsize}| % >{\rightskip0ptplus1fil}p{.6\hsize}|} % \multicolumn{2}{c}{Commands, replaced by keys} @@ -3614,6 +4937,7 @@ % & % \thead{Key Analog} % \\\hline +% \endhead % \cmd{\floatobjectset} & % in current version \emph{do not used for definition of object % settings}, use key @@ -3644,7 +4968,7 @@ % \end{tabular}& % in current version \emph{do not used for definition of separation % material}, use keys\par \extrarowheight0pt -% \begin{tabular}[t]{@{}l} +% \extrarowheight0pt\begin{tabular}[t]{@{}l} % \texttt{floatrowsep=}\\ % \texttt{capbesidesep=} % \end{tabular} @@ -3662,7 +4986,7 @@ % \\\hline % \cmd{\setfloatstyle} & \texttt{style=} % \\\hline -% \begin{tabular}[t]{@{}l} +% \extrarowheight0pt\begin{tabular}[t]{@{}l} % \cmd{\Setframe}\\ % \cmd{\setframe} % \end{tabular} @@ -3672,11 +4996,11 @@ % & use \texttt{precode=}, \texttt{postcode=}, \texttt{midcode=} (also % \texttt{rowpercode} and \texttt{rowpostcode}) keys % \\\hline -% \end{tabular*} +% \end{longtable} % -% \vskip1pt +% \RestoreSpaces\vskip1pt\pagebreak[3] % -% \begin{tabular*}\hsize{@{\extracolsep{-.3ptplus1fill}}| +% \begin{longtable}{@{\extracolsep{-.3ptplus1fill}}| % >{\rightskip0ptplus1fil}p{.35\hsize}| % >{\rightskip0ptplus1fil}p{.6\hsize}|} % \multicolumn{2}{c}{Renamed keys} @@ -3685,6 +5009,7 @@ % & % \thead{Changed to} % \\\hline +% \endhead % \texttt{attachedcapstyle=} & \texttt{relatedcapstyle=} % \\\hline % \texttt{floatstyle=} & \texttt{style=} @@ -3716,12 +5041,12 @@ % \end{tabular} & % \extrarowheight0pt\begin{tabular}[t]{@{}l@{}} % \vphantom{(}options of \texttt{objectset=} and \texttt{margins=} -% (for unification\\\quad with analogous key options in \pkg{caption} +% (for unification\\\quad with analogous key options in \package{caption} % package)\\ % \texttt{raggedright},\\ \texttt{raggedleft},\\ \texttt{centering} % \end{tabular} % \\\hline -% \end{tabular*} +% \end{longtable} % \endgroup % \MakeShortVerb{\|}% % @@ -3735,11 +5060,11 @@ % \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 \pkg{float} and -% \pkg{rotfloat} are loaded or not. If yes, there go error messages. -% \changes{v0.1d}{2005/02/07}{Added test for \pkg{rotfloat} package} +% 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 \pkg{float} or/and \pkg{rotfloat} loaded before} +% in the case of \package{float} or/and \package{rotfloat} loaded before} % \begin{macrocode} %<*floatrow> %\@ifundefined{float@caption}{}% @@ -3754,27 +5079,27 @@ \@namedef{opt@floatrow.sty}{}\endinput} % \end{macrocode} % -% The next lines emulate already loaded \pkg{float} and \pkg{rotfloat} +% The next lines emulate already loaded \package{float} and \package{rotfloat} % packages. % -% If in preamble, after loading of \pkg{floatrow} package is used -% |\usepackage| with \pkg{float} package (the \pkg{float} package +% If in preamble, after loading of \package{floatrow} package is used +% |\usepackage| with \package{float} package (the \package{float} package % doesn't support any options), the defining of command |\ver@float.sty|, % which emulates loading of package will do not any harm. % -% Unfortunately the \pkg{rotfloat} package allows to transfer options of -% \pkg{rotating} package in the case of appearance +% Unfortunately the \package{rotfloat} package allows to transfer options of +% \package{rotating} package in the case of appearance % of both packages in one |\usepackage| line. Thus, if someone loads -% options in \pkg{rotating}---\pkg{rotfloat} line, he will get +% options in \package{rotating}---\package{rotfloat} line, he will get % `option clash' error. A followed help gives a simple solution of such % problem---moving options in |\documentclass| line and make them global. % I hope, that moving option in this way will do not harm % to document, but now you aware of ``non-necessity'' of loading -% of \pkg{rotfloat} package. +% of \package{rotfloat} package. % \changes{v0.1e}{2005/03/22}{Restoring code of emulation of loading -% for \pkg{float} and \pkg{rotfloat} packages.} +% for \package{float} and \package{rotfloat} packages.} % \changes{v0.1f}{2005/06/14}{The version, date and description of -% \pkg{float} and \pkg{floatrow} borrowed from originals (AS).} +% \package{float} and \package{floatrow} borrowed from originals (AS).} % \begin{macrocode} %\expandafter\let\csname ver@float.sty\expandafter\endcsname % \csname ver@floatrow.sty\endcsname @@ -3786,26 +5111,37 @@ Combining float+rotating package (AS)} % \end{macrocode} % -% Here goes request for \pkg{keyval} package. -% \changes{v0.1c}{2004/10/22}{Bug fix: added request for \pkg{keyval} +% Here goes request for \package{keyval} package. +% \changes{v0.1c}{2004/10/22}{Bug fix: added request for \package{keyval} % package.} % \begin{macrocode} \RequirePackage{keyval} % \end{macrocode} % -% Here goes request for \file{caption3} file, core part of \pkg{caption} +% Here goes request for \file{caption3} file, core part of \package{caption} % package. -% \changes{v0.1f}{2005/06/14}{Added request for \pkg{caption3} package.} -% \changes{v0.1j}{2006/06/18}{Added date request for \pkg{caption3} package.} -% \begin{macrocode} -\RequirePackage{caption3}[2006/01/12] +% \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.} +% \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 + {floatrow}{For a successful cooperation we need at least\MessageBreak + version `2007/04/11 v3.0q' of package caption,\MessageBreak + but only version\MessageBreak + `\csname ver@caption.\@pkgextension\endcsname'\MessageBreak + is available}\@eha} +\providecommand*\caption@fnum[1]{% + \caption@lfmt{\@nameuse{#1name}}{\@nameuse{the#1}}} % \end{macrocode} % % \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 macro |\@floatboxreset| from bundle of +% float definitions. % \begin{macrocode} \@ifdefinable\FR@flboxreset{\let\FR@flboxreset\@floatboxreset} \@ifdefinable\FR@makecaption{\let\FR@makecaption\@makecaption} @@ -3833,16 +5169,17 @@ % \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 \pkg{caption}, \pkg{hyperref}, (\pkg{pdfpages}) packages.} +% for \package{caption}, \package{hyperref}, (\package{pdfpages}) packages.} % \begin{macrocode} \@ifdefinable\float@caption{\let\float@caption\@caption} % \end{macrocode} % \end{macro} % -% \subsection{Borrowed Code (with original comment) from \pkg{float} package} +% \subsection{Borrowed Code (with original comment) from \package{float} +% package} % -% From this point starts \pkg{float} package's core code (version 1.3). -% The necessary explanation of macro code also borrowed from \pkg{float} +% From this point starts \package{float} package's core code (version 1.3). +% The necessary explanation of macro code also borrowed from \package{float} % package and typed with slanted font. Some macros % were skipped or edited (see \emph{floatrow notes}). % @@ -3871,21 +5208,41 @@ % is unknown, and we call |\float@error{|\meta{arg}|}| for the % error message. % -% {\em \textit{Floatrow note.} \pkg{float}'s error message +% \begin{macro}{\flrow@package} +% {\em \textit{Floatrow note.} \package{float}'s error message % (the command \cmd{\float@error}\meta{arg}) changed to -% \pkg{floatrow}'s one (\cmd{\flrow@error}\meta{arg}).} +% \package{floatrow}'s one (\cmd{\flrow@error}\meta{arg}).} +% \changes{v0.1k}{2007/01/20}{Added +% macro analogous to \cmd{\caption@package}.} +% \begin{macrocode} +\newcommand\flrow@package{floatrow} +% \end{macrocode} +% \end{macro} % % \begin{macro}{\flrow@error} -% Here's the error message. |\@eha| is the help message that says -% `Your command was ignored.' +% \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.} % \begin{macrocode} -\newcommand\flrow@error[1]{\PackageError{floatrow}{% - Unknown float style `#1'}{\@eha}} +\newcommand*\flrow@eh{% + If you do not understand this error, please take look\MessageBreak + at `floatrow' and `caption' package documentations.\MessageBreak + \@ehc} % \end{macrocode} % \end{macro} +% % \begin{macrocode} \newcommand\floatstyle[1]{\@ifundefined{flrow@sty@#1}% - {\flrow@error{#1}}{\edef\float@style{#1}}} + {\flrow@error{Unknown float style `#1'}}{\edef\float@style{#1}}} % \end{macrocode} % \end{macro} % @@ -3893,16 +5250,19 @@ % \begin{macro}{\floatplacement} % The next two commands are even simpler. \LaTeX\ says that % |\fps@|\meta{float} contains the default placement specifier for -% the class of floats \meta{float}. |\fname@|\meta{float} expands +% 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).} % \begin{macrocode} -\newcommand\floatname[2]{\@namedef{fname@#1}{#2}} +\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 \pkg{floatrow} package it was deleted. +% current type of float. In \package{floatrow} package it was deleted. % Use \cmd{\floatsetup} stuff instead.} % \end{macro} % \end{macro} @@ -3946,7 +5306,7 @@ % \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 \pkg{wrapfig}'s floats).} +% 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 @@ -3970,31 +5330,102 @@ % 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\global\@@FSfalse} + \if@@FS\hsize\FB@wd\fi\@@FSfalse} % \end{macrocode} % \end{macro} % % \begin{macro}{\RawFloats} -% This macro restores core-\LaTeX-float-environment's behavior. +% 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. % \begin{macrocode} -\newcommand\RawFloats[1][\@captype]{\killfloatstyle - \@parboxrestore - \let\@makecaption\FR@makecaption - \@namedef{end#1}{\end@float}% - \@namedef{end#1*}{\end@dblfloat}% - \@namedef{endsideways#1}{\end@rotfloat}% - \@namedef{endsideways#1*}{\end@rotdblfloat}% +\newcommand\flrow@Raw@restyle[1]{% + \@namedef{#1}{\@float{#1}}% + \@namedef{#1*}{\@dblfloat{#1}}% + \@namedef{end#1}{\end@float}% + \@namedef{end#1*}{\end@dblfloat}% + \@ifundefined{@rotfloat}{}{% + \@namedef{sideways#1}{\@rotfloat{#1}}% + \@namedef{sideways#1*}{\@rotdblfloat{#1}}% + \@namedef{endsideways#1}{\end@rotfloat}% + \@namedef{endsideways#1*}{\end@rotdblfloat}% + }% + \@ifundefined{wrapfloat}{}{% + \@namedef{wrap#1}{\wrapfloat{#1}}% + \@namedef{endwrap#1}{\endwrapfloat}% + }% } % \end{macrocode} % \end{macro} % % \begin{macro}{\FB@capsetup} -% This only additional definition which is used with \pkg{caption} package +% 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} @@ -4021,7 +5452,7 @@ % \end{macro} % % \begin{macro}{\restylefloat} -% The redefined \pkg{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. @@ -4042,9 +5473,9 @@ % \begin{macrocode} %\newcommand\float@restyle{} % \end{macrocode} -% To avoid redefinition of this macro by other packages (e.g. \pkg{wrapfig}, -% which uses |\float@restyle| as recognition of \pkg{float} v1.3 package) -% \pkg{floatrow} package uses other name. +% 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 @@ -4073,13 +5504,21 @@ % \end{macrocode} % {\sl The standard |\@xdblfloat| macro changes |\hsize| to |\textwidth|. % This way is not correct so use |\@xfloat| instead.} -% \begin{macrocode} - \let\@xdblfloat\@xfloat\@dblfloat{#1}}% +% 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} +% \begin{macrocode} + \let\@xdblfloat\@xfloat\relax + \FR@ifdoubleaswide + \if@twocolumn\else\let\@dblfloat\@float\fi\fi + \@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 (\pkg{rotfloat} package) +% The code contents of |\rotfloat@float| macro (\package{rotfloat} package) % moved here. % \begin{macrocode} \@ifundefined{@rotfloat}{}{% @@ -4095,13 +5534,13 @@ % 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 \pkg{rotfloat}'s definition form +% \changes{v0.1d}{2005/02/07}{Restored \package{rotfloat}'s definition form % for wide rotated float} % \begin{macrocode} \ifx\@rotdblfloat\undefined \@namedef{sideways#1*}{% - \PackageError{floatrow}{% - You need rotating version 2.10 or newer to do this}{\@ehd}% + \flrow@error{% + You need rotating version 2.10 or newer to do this}% \@nameuse{sideways#1}}% \else % \end{macrocode} @@ -4117,7 +5556,7 @@ % {\sl The standard |\@xdblfloat| macro changes |\hsize| to |\textwidth|. % This way is not correct so use |\@xfloat| instead.} % -% The code contents of |\rotfloat@dblfloat| macro (\pkg{rotfloat} +% The code contents of |\rotfloat@dblfloat| macro (\package{rotfloat} % package) moved here. % \begin{macrocode} \let\@xdblfloat\@xfloat @@ -4127,7 +5566,7 @@ \fi \@namedef{endsideways#1*}{\FBbuildtrue\float@dblend}} % \end{macrocode} -% Wrapped float environment from \pkg{wrapfig} package. +% Wrapped float environment from \package{wrapfig} package. % \begin{macrocode} \@ifundefined{wrapfloat}{}{% \@ifundefined{flrow@WF@rapt}{\let\flrow@WF@rapt\WF@rapt @@ -4137,17 +5576,19 @@ \edef\FBB@wd{\the\dimen@}\FB@fs@wd\dimen@\FBo@wd \fi \flrow@WF@rapt[##1]{\dimen@}% - \@ifundefined{capstart}{}{\capstart}% +% \end{macrocode} +% \changes{v0.1k}{2007/05/24}{Commented \cmd{\capstart} for a while} +% \begin{macrocode} +% \@ifundefined{capstart}{}{\capstart}% \the\FR@everyfloat\ignorespaces}% }{}% \@namedef{wrap#1}{\killfloatstyle\def\@captype{#1}% % \end{macrocode} -% ^^A The \cmd{\FloatHBarrier} for \pkg{flafplins}. +% ^^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}{tmpset}}% - \global\let\flrow@typ@tmpset\undefined + \flrow@setlist{{#1}{wrapfloat}{wrap#1}}% % \end{macrocode} % Here repeated code from |\float@end| and |\float@dblend|: check whether % |\floatbox| stuff appeared or not. @@ -4163,6 +5604,7 @@ %^^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[]}}%] @@ -4173,14 +5615,16 @@ %^^A \@namedef{endwrap#1}{\ifdim\hsize>\z@ %^^A \adj@dim\hsize+\FBo@wadj=\hsize\fi\endwrapfloat}} % \end{macrocode} -% At last definitions for new subfloat numeration for \pkg{subfig} package. +% 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.} % \begin{macrocode} - \@ifundefined{subfloat}{}{\@ifundefined{c@sub#1}{\newsubfloat{#1}}{}}} + \@ifundefined{sf@@@subfloat}{}{\@ifundefined{c@sub#1}{\newsubfloat{#1}}{}}} % \end{macrocode} % \end{macro} % \end{em} @@ -4216,12 +5660,12 @@ % counter, was removed. It was replaced by |\DeclareNewFloatType| stuff.} % \end{macro} % -% \subsubsection{The \pkg{float} Package: Adapting \LaTeX\ Internals} +% \subsubsection{The \package{float} Package: Adapting \LaTeX\ Internals} % % We have to adapt some of \LaTeX's internal macros to our needs. % There are several things that have to be changed around -% in order to provide the functionality of David Carlisle's \pkg{here}. -% The following is thus lifted from \pkg{here}, with changes and with +% in order to provide the functionality of David Carlisle's \package{here}. +% The following is thus lifted from \package{here}, with changes and with % David's permission: % % \begin{macro}{\@float@Hx} @@ -4240,7 +5684,7 @@ \def\@xfloat#1[{\@ifnextchar{H}{\@float@HH{#1}[}{\@float@Hx{#1}[}} % \end{macrocode} % \end{macro} -% {\em\textit{Floatrow note}. Since \pkg{floatrow} always uses float style, +% {\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.} % @@ -4257,14 +5701,18 @@ \def\@float@HH#1[H]{% % \end{macrocode} %^^A {\em\textit{Floatrow note}. If we want to put barrier -%^^A (i.e. use beta-package \pkg{flafplins}).} +%^^A (i.e. use beta-package \package{flafplins}).} % \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} % \begin{macrocode} \expandafter\let\csname end#1\endcsname\float@endH + \FR@ifdoubleaswide + \expandafter\let\csname end#1*\endcsname\float@endH + \fi % \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. @@ -4281,16 +5729,20 @@ % \texttt{[h]} option. % % \emph{Floatrow note. -% Since \pkg{floatrow} always uses preloaded style +% Since \package{floatrow} always uses preloaded style % the stuff of flag \cmd{\@flstyle} moved out.} +% 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.} % \begin{macrocode} \def\@captype{#1}\setbox\@floatcapt=\vbox{}% \setbox\@currbox\color@vbox\normalcolor \vbox\bgroup \hsize\columnwidth \linewidth\columnwidth - \@parboxrestore + \@parboxrestore\leftmargin\z@\rightmargin\z@ \@floatboxreset \@setnobreak % \end{macrocode} % The final |\ignorespaces| is needed to gobble any spaces or new lines @@ -4307,7 +5759,7 @@ % 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 \pkg{floatrow} looks +% \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} @@ -4319,7 +5771,6 @@ \@ifundefined{capstart}{}{\capstart}% \FB@facing\@tempswafalse\FBiffacing\@tempswatrue\fi \if@tempswa\FB@readaux{\relax}\fi - \flrow@settype{tmpset}\global\let\flrow@typ@tmpset\undefined \global\let\FBcheight\relax\global\let\FBoheight\relax \global\let\FBfheight\relax \FBifcapbeside\FC@fs@wd\else\FB@fs@wd\fi @@ -4374,8 +5825,8 @@ % \begin{macrocode} \FC@ifc@wd \ifx\FCwidth\relax - \PackageError{You didn't define width of caption\MessageBreak - for plain float environment.}{\flrow@eh}% + \flrow@error{You didn't define width of caption\MessageBreak + for plain float environment.}% \else \global\FBc@wd=\FCwidth % \end{macrocode} @@ -4418,7 +5869,7 @@ % \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 \pkg{float} |\float@makebox| which loads necessary +% 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 @@ -4443,12 +5894,17 @@ % \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 (\pkg{float}) compatibility with -% \pkg{hyperref} package.} +% 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.} % \begin{macrocode} \newcommand\flrow@FB[1]{\vbox{\@tempdima=#1\vskip\FBaskip - \@parboxrestore\hbox to\@tempdima{\def\FB@zskip{\vskip\z@}% + \@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 \gdef\begin@FBBOX{\vbox\bgroup}\gdef\end@FBBOX{\egroup}% @@ -4459,11 +5915,15 @@ % \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 (\pkg{float}) compatibility with -% \pkg{hyperref} package.} +% 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. % \begin{macrocode} \newcommand\flrow@FC[1]{\vbox{\@tempdima=#1\@parboxrestore - \flrow@FClist\vskip\FBaskip + \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 \nocapbeside\global\let\FCwidth\relax @@ -4509,13 +5969,21 @@ % \changes{v0.1f}{2005/06/14}{New design implementation for % \cmd{\captionof}-like stuff?} % \begin{macrocode} -\newcommand\flrow@FB@{\FB@frame{\begin@FBBOX +\newcommand\flrow@FB@{\global\let\flrow@typ@tmpset\undefined + \FB@frame{\begin@FBBOX \adj@dim\FBo@wd+\FBo@wadj=\hsize \@tempdima\ht\@currbox\advance\@tempdima\dp\@currbox \ifdim\@tempdima=\z@ \def\@@FBskip{}\let\FBo@frame\@gobble \fi - \@parboxrestore\@@FBabove +% \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.} +% \begin{macrocode} + \@parboxrestore\leftmargin\z@\rightmargin\z@ + \@@FBabove \FBifcaptop % \end{macrocode} % If needed and exists---caption box above float object. @@ -4571,10 +6039,18 @@ % separate parameters for building of beside caption layout and float % environment margins.} % \begin{macrocode} -\newcommand\flrow@FC@{\FB@frame{\begin@FBBOX +\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 - \advance\hsize\FBc@wd\@parboxrestore\@@FBabove +% \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. +% \begin{macrocode} + \advance\hsize\FBc@wd\@parboxrestore\leftmargin\z@\rightmargin\z@ + \@@FBabove \hbox{\floatfacing*% {\ifvoid\@floatcapt\else \FCc@box{\FBw@box\FBc@wd\unvbox\@floatcapt\FB@foot}% @@ -4619,7 +6095,7 @@ % 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 \pkg{rotating} used, +% |\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} @@ -4632,7 +6108,7 @@ % \end{macro} % % \begin{macro}{\float@endH} -% The |\float@endH| command is, again, derived from \pkg{here}. It'll +% The |\float@endH| command is, again, derived from \package{here}. It'll % deal correctly with a non-floating float, inserting the proper amounts % of white space above and below. % @@ -4642,11 +6118,21 @@ % \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. % \begin{macrocode} +\newcommand\floatHpenalties{} \newcommand\float@endH{\@endfloatbox\par - \addpenalty\@beginparpenalty\vskip\intextsep + \FR@iffloatHaslist + \floatHpenalties\relax + \addpenalty\@beginparpenalty + \fi + \vskip\intextsep \ifFBbuild\setbox\@currbox\float@makebox\columnwidth\fi - \box\@currbox\par\addpenalty\@endparpenalty\vskip\intextsep\relax} + \box\@currbox\par + \FR@iffloatHaslist\addpenalty\@endparpenalty\@endpetrue\fi + \vskip\intextsep\relax} % \end{macrocode} % \end{macro} % @@ -4666,7 +6152,7 @@ % \end{macrocode} % \end{macro} % -% \subsubsection{\pkg{float} package: Captions and lists of floats} +% \subsubsection{\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 @@ -4677,9 +6163,9 @@ % % \begin{macro}{\caption} % This is the only \LaTeX\ macro that this document style supersedes. -% {\em[\dots]} the caption routines from \pkg{float} are used {\em[\dots]}. -% {\em \textit{Floatrow note.} The \pkg{float}'s caption layout stuff -% replaced by \pkg{caption}'s |\captionsetup|. In \pkg{floatrow} +% {\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.} @@ -4700,7 +6186,7 @@ % 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---\pkg{floatrow} package uses \pkg{caption} 3.0 possibilities and +% removed---\package{floatrow} package uses \package{caption} 3.0 possibilities and % its own definitions.} % % Note that because the caption is saved in a box @@ -4752,7 +6238,7 @@ % |\flrow@error|)}. % \begin{macrocode} \newcommand*{\listof}[2]{% - \@ifundefined{ext@#1}{\flrow@error{#1}}{% + \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{% % \end{macrocode} % All's well until now. We define the |\l@|\meta{float} command % that \LaTeX\ needs for formatting the list, and then typeset the @@ -4806,14 +6292,14 @@ % \end{macrocode} % \end{macro} % -% {\em \textit{Floatrow note.} Here goes \pkg{floatrow} message about -% finishing of loading of \pkg{float} package's corrected code.} +% {\em \textit{Floatrow note.} 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 \pkg{rotfloat} package} +% from \package{rotfloat} package} % % \begin{macrocode} \IfFileExists{rotating.sty}{\@tempswatrue}{\@tempswafalse} @@ -4823,8 +6309,8 @@ % {\em \textit{Floatrow note.} Here goes code of revised and adapted package % to floatrow. With documentation. % -% The main redefinitions for \pkg{rotfloat} (|\flrow@restyle| stuff) purposes -% were made above (in \pkg{float} part).\\{}[\dots] +% 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.} @@ -4853,7 +6339,7 @@ % \begin{macro}{\rotfloat@makebox} % \begin{macro}{\rotdblfloat@makebox} % |\float@makebox| has a parameter here which will be set to |\columnwidth| -% or |\textwidth|. (In the \pkg{float} package $v1.2$ the |\columnwidth| was +% or |\textwidth|. (In the \package{float} package $v1.2$ the |\columnwidth| was % hard wired into |\float@makebox|.) So we have to pass this parameter % through the original version of |\float@makebox| which we have saved to % |\rotfloat@@makebox| within |\rotfloat@float|.) @@ -4873,8 +6359,8 @@ % \end{macro} % % That's all folks\dots {\em \textit{Floatrow note:} of borrowed -% \pkg{rotfloat} package. And here goes message about loading of -% \pkg{rotfloat} package's code.} +% \package{rotfloat} package. And here goes message about loading of +% \package{rotfloat} package's code.} % \begin{macrocode} \PackageInfo{floatrow}{Modified rotfloat package code loaded} \fi @@ -4941,8 +6427,8 @@ % There is the definition of |\footnotemark| which creates the same mark as % |\footnote| inside \texttt{minipage} environment. That could be useful in % multiple footnote marks in tables. Since the same definition was loaded -% in \pkg{footmisc} v5.3, these macros are defined at the beginning of -% document in the case only if \pkg{footmisc} was not 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. % \begin{macrocode} \AtBeginDocument{\providecommand\mpfootnotemark{\@ifnextchar[%] \@xmpfootnotemark{\stepcounter\@mpfn @@ -4957,14 +6443,24 @@ % \subsection{Macro for Legends, Explications, etc.} % % \begin{macro}{\floatfoot} -% This command made for the same reasons as \pkg{ccaption}'s |\legend| +% 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.} % \begin{macrocode} +\captionsetup[floatfoot]{labelformat=empty,labelsep=none} \newcommand\floatfoot{\@ifstar - {\def\FR@tmp{\@parboxrestore\captionfootfont}\floatfoot@}% - {\def\FR@tmp{\captionfootfont}\floatfoot@}} + {\def\FR@tmp{\@parboxrestore\captionfootfont}\floatfoot@}% + {\def\FR@tmp{\captionfootfont}\floatfoot@}} \newcommand\floatfoot@[1]{% \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{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}} @@ -4974,17 +6470,16 @@ % \end{macrocode} % Apply current float settings. % \begin{macrocode} - \caption@settype{\@captype}% + \caption@setoptions{\@captype}% % \end{macrocode} % Apply floatfoot settings. % \begin{macrocode} - \caption@settype{floatfoot}% + \caption@setoptions{floatfoot}% % \end{macrocode} % No captionlabel. % \begin{macrocode} - \captionsetup{labelformat=empty,labelsep=none}% \caption@@make{}{\FR@tmp#1\@finalstrut\strutbox}% - \color@endgroup}}% + \color@endgroup} % \end{macrocode} % \end{macro} % @@ -5020,9 +6515,11 @@ % \begin{macro}{\renewfloatcommand} % The following macros allow to define user commands-abbreviations: % they have common unchanged preamble and setting for default width of -% float box. Usage:\\[\medskipamount] +% float box. Usage: +% \begin{Quote}% % |\newfloatcommand{|\meta{command}|}{|\meta{captype}|}|^^A -% |[|\meta{preamble}|][|\meta{default width}|]|\\[\medskipamount] +% |[|\meta{preamble}|][|\meta{default width}|]| +% \end{Quote}% % where: % \begin{description} % \item[\meta{command}]the new command name without backslash; @@ -5034,18 +6531,18 @@ % will be equal to width of object. % \end{description} % Examples: -% \begin{verse} -% |\newfloatcommand{ffigbox}{figure}|\\ +% \begin{Quote} +% |\newfloatcommand{ffigbox}{figure}| % |\newfloatcommand{ttabbox}{table}[\captop][\FBwidth]| -% \end{verse} +% \end{Quote} % % The definition of command for new float command. % \changes{v0.1f}{2005/06/14}{Bug fix: corrected \cmd{\@latex@error} % command code.} -% \begin{macrocode} +% \begin{macrocode}% \newcommand\newfloatcommand[2]{% \@ifundefined{#1}{}% - {\PackageError{floatrow}{\string#1 already defined}{\@ehd}}% + {\flrow@error{\string#1 already defined}}% \@ifnextchar[{\FB@nc{#1}{#2}}{\FB@nc{#1}{#2}[]}} \newcommand\renewfloatcommand[2]{% \@ifundefined{#1}{}% @@ -5056,7 +6553,11 @@ \@ifnextchar[{\FB@@nc{#1}{#2}[#3]}{\FB@@nc{#1}{#2}[#3][]}} \def\FB@@nc#1#2[#3][#4]{% \@namedef{#1}{\begingroup - #3\def\@captype{#2}% +% \end{macrocode} +% \changes{v0.1k}{2007/05/24}{The option with settings for float +% box saved to temporary command} +% \begin{macrocode}% + \def\FB@tmpset{#3}\def\@captype{#2}% \@ifnextchar[{\@floatbox}{\@floatbox[#4]}}} % \end{macrocode} % \end{macro} @@ -5149,18 +6650,23 @@ % 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 \pkg{subfig}).} +% 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\let\refsteponlycounter\FR@loc@refcnt + \let\refstepcounter\FR@loc@refcnt + \let\stepcounter\FR@loc@refcnt + \let\refsteponlycounter\FR@loc@refcnt % \end{macrocode} -% The |\cl@@ckpt| is macro which ``globalizes'' all counter. It is used by +% 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 (\pkg{subfig}).} +% \cmd{\sf@updatecaptionlist} macro (\package{subfig}).} % \begin{macrocode} \let\cl@@ckpt\empty\let\addtocounter\FR@loc@addcnt \def\sf@updatecaptionlist##1##2##3##4{}} @@ -5168,11 +6674,13 @@ % 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.} % \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}}}{#3}}% + {\@nameuse{the\@captype}}\relax}{#3}}% \global\@tempdimb\wd\@tempboxa} % \end{macrocode} % \end{macro} @@ -5183,7 +6691,7 @@ % This macro counts widths and heights of caption and % object boxes accordingly to \meta{width} and \meta{height} % arguments of |\floatbox| macro. -% \label{FBwidth} +% \label{code:FBwidth} % \begin{macrocode} \newcommand\FBget@box[3]{% % \end{macrocode} @@ -5324,7 +6832,7 @@ % \cmd{\refstepcounter}.} % \changes{v0.1h}{2005/10/30}{The \cmd{\refstepcounter} and % \cmd{\refsteponlycounter} localized (for \cmd{\ContinuedFloat} -% with \pkg{subfig}).} +% with \package{subfig}).} % \begin{macrocode} \ifx\FCwidth\relax \setbox1\vbox{\FR@loc@ @@ -5350,7 +6858,8 @@ % % There is na\u\i{}ve check of existence of |\FBwidth| and/or % |\FBheight| commands in optional arguments. I hope it could work -% unless you are manipulating with metre dimensions or set more than +% 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.} @@ -5536,13 +7045,18 @@ % 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} % \begin{macrocode} \newcommand\floatbox[2][]{\begingroup - #1\def\@captype{#2}% + \def\FB@tmpset{#1}\def\@captype{#2}% \@ifnextchar[{\@floatbox}{\@floatbox[]}} \@ifdefinable\@floatbox{}\@ifdefinable\@@floatbox{} \def\@floatbox[#1]{% \@ifnextchar[{\@@floatbox[#1]}{\@@floatbox[#1][]}} +\@ifdefinable\floatbox@depth{\newcount\floatbox@depth} \def\@@floatbox[#1][#2]{% \@ifnextchar[{\@@@floatbox[#1][#2]}{\@@@floatbox[#1][#2][]}}%] % \end{macrocode} @@ -5551,7 +7065,7 @@ % Building object---caption box. % \begin{macrocode} \@ifdefinable\@@@floatbox{} -\long\def\@@@floatbox[#1][#2][#3]#4#5{% +\long\def\@@@floatbox[#1][#2][#3]#4#5{\advance\floatbox@depth\@ne \@FB@vpos{#3}% % \end{macrocode} % If object---caption stays alone here go @@ -5564,18 +7078,30 @@ % \changes{v0.1f}{2005/06/14}{The \cmd{\capstart} stuff loaded here.} % \begin{macrocode} \if@@FS\else\FR@redefs - \flrow@setlist{{\@captype}}\FRifFBOX\@@setframe\fi\@@FStrue + \ifcase\floatbox@depth\or + \flrow@setlist{{\@captype}}\or + \flrow@setlist{{subfloat}{subtype}{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} +% \begin{macrocode} + \FB@tmpset +% \end{macrocode} % Then load settings for beside captions, in the case we use this % layout---the beside caption could use a bit different layout. % \begin{macrocode} \FBifcapbeside\flrow@FClist\fi - \flrow@settype{tmpset}\global\let\flrow@typ@tmpset\undefined % \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\floatobjectset\floatfont + \@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. @@ -5604,14 +7130,16 @@ % \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 \ifx\FBB@wd\relax\edef\FBB@wd{\the\hsize}\fi - \FBsetbox@obj{\@ifundefined{capstart}{}{\capstart}#4#5}\FBbuildtrue + \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 + \fi\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.} @@ -5675,7 +7203,7 @@ % \end{macrocode} % The macro for storing float object in box in the same way as % in plain environment. There is added code for possible usage of -% \pkg{color} package and color boxes. +% \package{color} package and color boxes. % \begin{macrocode} \newcommand\FBsetbox@obj[1]{% \setbox\float@box\color@vbox\normalcolor @@ -5728,12 +7256,19 @@ % 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}} +% \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 \ifCADJ\@tempswatrue\fi\ifOADJ\@tempswatrue\fi \if@tempswa\FB@readaux{\relax}\fi - \vbox\bgroup\vskip\FBaskip\hsize\FBB@wd\@@FRabove + \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 % \end{macrocode} % Here starts trick with redefinition of |\hsize| inside float row. @@ -5754,14 +7289,50 @@ % Macro for float row end. % \begin{macrocode} \def\endfloatrow{\ifdim\lastskip>\z@\unskip\fi - \endgroup\FRrightmargin\egroup%h box - \global\let\FBiffloatrow\iffalse\@@FRbelow - \vskip\FBbskip\gdef\FBaskip{\z@}\gdef\FBbskip{\z@}\egroup%v box + \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}% + \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}} % \end{macrocode} % \end{environment} % +% \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) +% 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. +% \begin{macrocode} +\def\endsubfloatrow{\ifdim\lastskip>\z@\unskip\fi + \egroup\@ifundefined{adjustsubfloats}{}\adjustsubfloats + } +% \end{macrocode} +% \end{environment} +% +% The definition of subfloat separator. +% \begin{macrocode} +\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}} +% \end{macrocode} +% % \subsection{Aligning Float Boxes} % % \begin{macro}{\CenterFloatBoxes} @@ -5807,6 +7378,39 @@ % \end{macro} % \end{macro} % +% \begin{macro}{\newdimentocommand} +% \begin{macro}{\renewdimentocommand} +% \begin{macro}{\newskiptocommand} +% \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]{% + #1\@tempdima{#3}\@ifdefinable#2{\xdef#2{\the\@tempdima}}} +\providecommand\renewdimentocommand[3]{% + #1\@tempdima{#3}\xdef#2{\the\@tempdima}} +\providecommand\newskiptocommand [3]{% + #1\@tempskipa{#3}\@ifdefinable#2{\xdef#2{\the\@tempskipa}}} +\providecommand\renewskiptocommand[3]{% + #1\@tempskipa{#3}\xdef#2{\the\@tempskipa}} +% \end{macrocode} +% \begin{macrocode} +\providecommand\newlengthtocommand{\newskiptocommand} +\providecommand\renewlengthtocommand{\renewskiptocommand} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% % \begin{macrocode} % % \end{macrocode} @@ -5817,9 +7421,9 @@ % % \subsection{Float settings stuff} % -% \subsubsection{Definitions analogous to \pkg{caption}'s ones} +% \subsubsection{Definitions analogous to \package{caption}'s ones} % -% The next bundle of definitions follow \pkg{caption} package macros +% 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} @@ -5831,13 +7435,13 @@ \newcommand\flrow@setbool[2]{% \caption@ifinlist{#2}{1,true,yes,on}{\let#1\iftrue }{\caption@ifinlist{#2}{0,false,no,off}{\let#1\iffalse - }{\PackageError{floatrow}{Undefined boolean value `#2'}{\flrow@eh}% + }{\flrow@error{Undefined boolean value `#2'}% }}} % \end{macrocode} % \end{macro} % % \changes{v0.1f}{2005/06/14}{The macro \cmd{\l@addto@macro} -% deleted---it repeats \pkg{caption} package's definition.} +% deleted---it repeats \package{caption} package's definition.} % % \subsubsection{Defining Stuff for Float Layout Settings} % @@ -5855,13 +7459,26 @@ % \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@settype|. -% \begin{macrocode} -\def\flrow@setup{\setkeys{floatrow}} +% |\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 \def\flrow@esetup#1{% \edef\FR@tmp{\noexpand\flrow@setup{#1}}\FR@tmp} \def\flrow@settype#1{\@ifundefined{flrow@typ@#1}{}% @@ -5879,17 +7496,18 @@ % \changes{v0.1f}{2005/06/14}{The \cmd{\caption@setposition} settings % moved here (AS).} % \begin{macrocode} -\newcommand\flrow@setlist[1]{\@flrow@setlist#1;% +\newcommand\flrow@setlist[1]{\@flrow@setlist#1{tmpset};% \FR@ifCST\flrow@capsetup\fi\@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 code of |\@cap@setlist| co-operated with \pkg{caption} package +% The code of |\@cap@setlist| co-operated with \package{caption} package % (code suggestions of Axel Sommerfeldt). % \begin{macrocode} -\newcommand\@cap@setlist[1]{\caption@settype{#1}% +\@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} % This macro adds list of possible settings for beside captions. @@ -5903,7 +7521,7 @@ % \begin{macro}{\@nameundef} % \begin{macro}{\clearfloatsetup} % \changes{v0.1f}{2005/06/14}{The macro \cmd{\@nameundef} -% deleted---it repeats \pkg{caption} package's definition.} +% deleted---it repeats \package{caption} package's definition.} % Removes all settings for chosen type of float. % \begin{macrocode} \newcommand*\clearfloatsetup[1]{\@nameundef{flrow@typ@#1}} @@ -5911,16 +7529,6 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\flrow@eh} -% The |\caption@eh|-analog. -% \begin{macrocode} -\newcommand\flrow@eh{% - If you do not understand this error, please take look\MessageBreak - at `floatrow' and `caption' package documentations.\MessageBreak - \@ehc} -% \end{macrocode} -% \end{macro} -% % \begin{macro}{\DeclareFROpt} % The |\DeclareCaptionOption|-analog.\\ % Since this command has internal usage (before end of package) it has @@ -5948,6 +7556,45 @@ % \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 +% \end{macrocode} +% The boolean key which defines, whether floats run in plain \LaTeX{} mode. +% \begin{macrocode} +\DeclareFROpt*{rawfloats}[0]{\flrow@setbool{\FR@ifrawfloats}{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{doublefloataswide} +% Starred environments work like non-starred with special |\floatsetup| settings. +% \begin{macrocode} +\let\FR@ifdoubleaswide\iffalse +% \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}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{floatHaslist} +% The anchored float has list penalties around. If there are not blank line or +% |\par| command, next paragraph starts without indentation. +% \begin{macrocode} +\let\FR@iffloatHaslist\iffalse +% \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}} +% \end{macrocode} +% \end{macro} +% % \subsubsection{Declaring of float styles} % % \begin{macro}{\DeclareFloatStyle} @@ -5961,20 +7608,22 @@ \@onlypreamble\DeclareFloatStyle % \end{macrocode} % The definition of command which defines settings for new float style. -% \changes{v0.1f}{2005/06/14}{Added \cmd{\caption@settype} in definition +% \changes{v0.1f}{2005/06/14}{Added \cmd{\caption@setoptions} in definition % of \cmd{\flrow@capsetup} (AS).} +% \changes{v0.2a}{2007/08/24}{Added star to \cmd{\caption@setstyle} +% (AS).} % \begin{macrocode} \newcommand*\flrow@setstyle[1]{% \@ifundefined{flrow@sty@#1}% - {\PackageError{floatrow}{Undefined float style `#1'}{\flrow@eh}}% + {\flrow@error{Undefined float style `#1'}}% {\FBstyle@reset \def\flrow@capsetup{% - \@ifundefined{caption@sty@#1}{}{\caption@setstyle{#1}}% - \caption@settype {#1}}% + \@ifundefined{caption@sty@#1}{}{\caption@setstyle*{#1}}% + \caption@setoptions {#1}}% \flrow@esetup{\csname flrow@sty@#1\endcsname}}} % \end{macrocode} -% Declarations of \pkg{float} package's emulating styles and new -% \pkg{floatrow} styles. +% 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.} % \begin{macrocode} @@ -5991,7 +7640,7 @@ framefit=yes,heightadjust=all,framearound=all} % \end{macrocode} % -% \begin{macro}{style=} +% \begin{macro}{style} % Declaring of key for float styles. % \begin{macrocode} \DeclareFROpt{style}{\flrow@setstyle{#1}} @@ -5999,13 +7648,13 @@ % \end{macro} % % The flag, which loads related caption style (if exists), to chosen float -% style. The \pkg{caption} 3.0 package defines only one related caption -% style to \pkg{float} package's style---\texttt{ruled}. +% style. The \package{caption} 3.0 package defines only one related caption +% style to \package{float} package's style---\texttt{ruled}. % \begin{macrocode} \let\FR@ifCST\iftrue % \end{macrocode} % \end{macro} -% \begin{macro}{relatedcapstyle=} +% \begin{macro}{relatedcapstyle} % The boolean key which defines, whether to use caption style, related % to chosen float style. % \begin{macrocode} @@ -6015,11 +7664,11 @@ % % \subsubsection{Defining Font} % -% \begin{macro}{font=} -% \begin{macro}{footfont=} +% \begin{macro}{font} +% \begin{macro}{footfont} % Fonts for object and |\floatfoot| contents. The settings of font for % |\floatfoot| use |\captionsetup| mechanism, so its name follows -% \pkg{caption} package's rules (|\captionfootfont|). +% \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.} @@ -6041,8 +7690,8 @@ % % \begin{macro}{\captionfootfont} % Font for |\legend|-like command |\floatfoot|. This font is used inside -% macro which uses \pkg{caption} package mechanism, so the name of this -% font follows rules of font naming in \pkg{caption} package. +% macro which uses \package{caption} package mechanism, so the name of this +% font follows rules of font naming in \package{caption} package. % \begin{macrocode} \newcommand*\captionfootfont{\normalfont\footnotesize} % \end{macrocode} @@ -6067,21 +7716,26 @@ % |\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} \newcommand*\flrow@setfont[2]{% - \let\caption@tempa\@empty - \begingroup\setkeys{caption@fnt}{#2}\endgroup - \expandafter\let\csname float#1\endcsname\caption@tempa} + \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---\pkg{floatrow} package uses \file{caption3} settings.} +% removed---\package{floatrow} package uses \file{caption3} settings.} % % \subsubsection{Declaring of Caption Position} % -% \begin{macro}{capposition=} +% \begin{macro}{capposition} % Keys for defining caption position in float box. -% \changes{v0.1f}{2005/06/14}{Added \texttt{position=} key as analog name +% \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}} @@ -6099,7 +7753,7 @@ }{\caption@ifinlist{#1}{T,TOP,ABOVE}{\CAPTOP\nocapbeside }{\caption@ifinlist{#1}{b,bottom,below,default}{\capbot\nocapbeside }{\caption@ifinlist{#1}{beside,side}{\caption@setposition{a}\capbeside - }{\PackageError{floatrow}{Undefined caption position `#1'}{\flrow@eh}% + }{\flrow@error{Undefined caption position `#1'}% }}}}} % \end{macrocode} % \end{macro} @@ -6140,10 +7794,11 @@ % \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{\global\let\FBifcapbeside\iftrue} -\newcommand\nocapbeside{\global\let\FBifcapbeside\iffalse} +\newcommand\capbeside{\let\FBifcapbeside\iftrue} +\newcommand\nocapbeside{\let\FBifcapbeside\iffalse} % \end{macrocode} % \end{macro} % \end{macro} @@ -6151,7 +7806,7 @@ % % \subsubsection{Defining for Beside Captions} % -% \begin{macro}{capbesideframe=} +% \begin{macro}{capbesideframe} % This boolean key declares whether near beside caption stays framed % object. % \changes{v0.1f}{2005/06/14}{Removed \texttt{besidecapframe} key.} @@ -6160,7 +7815,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{capbesidewidth=} +% \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 @@ -6171,12 +7826,12 @@ \newcommand\useFCwidth{\let\FC@ifc@wd\iftrue\let\FCwidth\relax} \@ifdefinable\FCwidth{\let\FCwidth\relax} \newcommand\flrow@FCc@wd[1]{% - \caption@ifinlist{#1}{none,sidefill}{\let\FC@ifc@wd\iffalse + \caption@ifinlist{#1}{none,sidefil}{\let\FC@ifc@wd\iffalse }{\useFCwidth\def\FCwidth{#1}}} % \end{macrocode} % \end{macro} % -% \begin{macro}{capbesideposition=} +% \begin{macro}{capbesideposition} % Declares position of beside caption in document. % \changes{v0.1f}{2005/06/14}{Removed \texttt{besidecapposition} key.} % \begin{macrocode} @@ -6194,7 +7849,7 @@ \define@key{flrow@scpos}{#1}[]{\g@addto@macro\FR@tmp{#2}}} \newcommand*\flrow@scpos[1]{% \let\FR@tmp\@empty - \begingroup\setkeys{flrow@scpos}{#1}\endgroup + \begingroup\caption@setkeys[floatrow]{flrow@scpos}{#1}\endgroup \FR@tmp} \@onlypreamble\DeclareSCPos % \end{macrocode} @@ -6228,7 +7883,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{footposition=} +% \begin{macro}{footposition} % Keys for defining foot text position. % \begin{macrocode} \DeclareFROpt{footposition}{\flrow@ftpos{#1}} @@ -6244,7 +7899,7 @@ \define@key{flrow@ftpos}{#1}[]{\g@addto@macro\FR@tmp{#2}}} \newcommand*\flrow@ftpos[1]{% \let\FR@tmp\@empty - \begingroup\setkeys{flrow@ftpos}{#1}\endgroup + \begingroup\caption@setkeys[floatrow]{flrow@ftpos}{#1}\endgroup \FR@tmp} \@onlypreamble\DeclareFtPos % \end{macrocode} @@ -6258,7 +7913,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{heightadjust=} +% \begin{macro}{heightadjust} % Keys for vertical adjustment and alignment. % \begin{macrocode} \DeclareFROpt{heightadjust}{\flrow@htadj{#1}} @@ -6274,7 +7929,7 @@ \newcommand\DeclareHtAdj[2]{% \define@key{flrow@htadj}{#1}[]{\g@addto@macro\FR@tmp{#2}}} \newcommand*\flrow@htadj[1]{\let\FR@tmp\@empty - \begingroup\setkeys{flrow@htadj}{#1}\endgroup + \begingroup\caption@setkeys[floatrow]{flrow@htadj}{#1}\endgroup \FR@tmp} \@onlypreamble\DeclareHtAdj % \end{macrocode} @@ -6301,7 +7956,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{valign=} +% \begin{macro}{valign} % Keys for vertical alignment. % \begin{macrocode} \DeclareFROpt{valign}{\@FB@vpos{#1}} @@ -6323,7 +7978,7 @@ % % \subsubsection{Facing Pages} % -% \begin{macro}{facing=} +% \begin{macro}{facing} % Defines, if necessary, flag for facing pages. % \begin{macrocode} \DeclareFROpt{facing}[1]{\flrow@setbool{\FBiffacing}{#1}} @@ -6342,7 +7997,7 @@ % % \subsubsection{Float Box and Float Object Settings} % -% \begin{macro}{margins=} +% \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.} @@ -6353,7 +8008,7 @@ % \begin{macrocode} \newcommand*\flrow@FBAlign[1]{% \@ifundefined{flrow@mj@#1}% - {\PackageError{floatrow}{Undefined float alignment `#1'}{\flrow@eh}}% + {\flrow@error{Undefined float alignment `#1'}}% {\@nameuse{flrow@mj@#1}}} % \end{macrocode} % \end{macro} @@ -6371,7 +8026,7 @@ % % Declaring of float box alignment. % \changes{v0.1g}{2005/07/15}{Added settings for \cmd{\LTleft} and -% \cmd{\LTright} commands from \pkg{longtable} package.} +% \cmd{\LTright} commands from \package{longtable} package.} % \begin{macrocode} \newskip\LTleft\newskip\LTright \DeclareMarginSet{centering}{\setfloatmargins{\hfill}{\hfill}% @@ -6451,8 +8106,8 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{objectset=} -% \begin{macro}{justification=} +% \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.} @@ -6475,7 +8130,7 @@ % \end{macrocode} % \end{macro} % \changes{v0.1f}{2005/06/14}{\cmd{\DeclareObjectSet} bundle -% removed---\pkg{floatrow} +% removed---\package{floatrow} % package uses \file{caption} settings.} % % \begin{macro}{\flrow@FBoAlign} @@ -6486,7 +8141,7 @@ % \begin{macrocode} \newcommand*\flrow@FBoAlign[1]{% \@ifundefined{caption@hj@#1}% - {\PackageError{floatrow}{Undefined object setting `#1'}{\flrow@eh}}% + {\flrow@error{Undefined object setting `#1'}}% {\expandafter\let\expandafter\floatobjectset \csname caption@hj@#1\endcsname}} % \end{macrocode} @@ -6503,7 +8158,7 @@ % % \subsubsection{Defining Float Width} % -% \begin{macro}{floatwidth=} +% \begin{macro}{floatwidth} % The float width settings mainly for plain float environments. % \changes{v0.1f}{2005/06/14}{Removed \texttt{besidecapsep} key.} % \begin{macrocode} @@ -6522,24 +8177,28 @@ % \end{macro} % \end{macro} % \begin{macro}{\flrow@FBo@wd} -% \changes{v0.1f}{2005/06/14}{Macro uses \pkg{caption} macros.} +% \changes{v0.1f}{2005/06/14}{Macro uses \package{caption} macros.} % \begin{macrocode} \newcommand\flrow@FBo@wd[1]{% - \caption@ifinlist{#1}{sidefil}{\filFCOhsize + \caption@ifinlist{#1}{none,sidefil}{\filFCOhsize }{\nofilFCOhsize\def\flrow@setwd{\@tempdima=#1}}} % \end{macrocode} % \end{macro} % % \subsubsection{Defining Float Separators} % -% \begin{macro}{floatrowsep=} -% \begin{macro}{capbesidesep=} +% \begin{macro}{floatrowsep} +% \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. +% \begin{macrocode} +\DeclareFROpt{subfloatrowsep}{\flrow@setFRsep\subfloatrowsep{#1}} +% \end{macrocode} % Option |capbesidesep| sets separations for beside captions. % \begin{macrocode} \DeclareFROpt{capbesidesep}{\flrow@setFRsep\floatcapbesidesep{#1}} @@ -6566,16 +8225,16 @@ % The |\caption@setlabelseparator|-analog.\\ % Command which defines settings for separators in float row, and % between beside caption and float object. -% \changes{v0.1f}{2005/06/14}{Macro uses \pkg{caption} macros.} +% \changes{v0.1f}{2005/06/14}{Macro uses \package{caption} macros.} % \begin{macrocode} \newcommand*\flrow@setFRsep[2]{% \@ifundefined{caption@lsep@#2}% - {\PackageError{floatrow}{Undefined float separator `#2'}{\flrow@eh}}% + {\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 \pkg{caption}).} +% deleted (repeated from \package{caption}).} % \begin{macrocode} \DeclareFloatSeparators{columnsep}{\hskip\columnsep} %\DeclareFloatSeparators{quad}{\quad} @@ -6601,11 +8260,11 @@ % % \subsubsection{Defining Float Rules/Skips} % -% \begin{macro}{precode=} -% \begin{macro}{rowprecode=} -% \begin{macro}{midcode=} -% \begin{macro}{postcode=} -% \begin{macro}{rowpostcode=} +% \begin{macro}{precode} +% \begin{macro}{rowprecode} +% \begin{macro}{midcode} +% \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.} @@ -6643,7 +8302,7 @@ % \begin{macrocode} \newcommand*\flrow@FBrule[3]{% \@ifundefined{flrow@FBr@#3}% - {\PackageError{floatrow}{Undefined rule `#3'}{\flrow@eh}}% + {\flrow@error{Undefined rule `#3'}}% {\let#1\empty \expandafter\let\expandafter#2\csname flrow@FBr@#3\endcsname}} % \end{macrocode} @@ -6651,7 +8310,7 @@ % \begin{macrocode} \newcommand*\flrow@FRrule[3]{% \@ifundefined{flrow@FBr@#3}% - {\PackageError{floatrow}{Undefined rule `#3'}{\flrow@eh}}% + {\flrow@error{Undefined rule `#3'}}% {\def#2{\FBiffloatrow\else\@nameuse{flrow@FBr@#3}\fi}% \expandafter\let\expandafter#1\csname flrow@FBr@#3\endcsname}} % \end{macrocode} @@ -6659,7 +8318,7 @@ % \begin{macrocode} \newcommand*\flrow@FBskip[1]{% \@ifundefined{flrow@FBr@#1}% - {\PackageError{floatrow}{Undefined rule `#1'}{\flrow@eh}}% + {\flrow@error{Undefined rule `#1'}}% {\expandafter\let\expandafter\@@FBskip\csname flrow@FBr@#1\endcsname}} % \end{macrocode} % \end{macro} @@ -6669,9 +8328,9 @@ % Declared options for keys for building of float style (rules). % \begin{macrocode} \DeclareFloatVCode{none}{} -\DeclareFloatVCode{thickrule}{\hrule height.8ptdepth0pt\kern2pt} -\DeclareFloatVCode{rule}{\kern2pt\hrule\kern2pt} -\DeclareFloatVCode{lowrule}{\kern2pt\hrule} +\DeclareFloatVCode{thickrule}{\par\rule{\hsize}{.8pt}\vskip2pt\par} +\DeclareFloatVCode{rule}{\vskip2pt\hrule\vskip2pt} +\DeclareFloatVCode{lowrule}{\par\vskip2pt\rule\hsize\@wholewidth\par} \DeclareFloatVCode{captionskip}{\vskip\captionskip} % \end{macrocode} % @@ -6683,12 +8342,13 @@ % 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}.} % \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{}\gdef\FB@frame{}\gdef\FBo@frame{}% - \gdef\FBo@wadj{}\gdef\FBo@hadj{}\gdef\FB@wadj{}\gdef\FB@hadj{}} + \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} @@ -6703,7 +8363,7 @@ % % Keys for building of float style (boxes). % -% \begin{macro}{framestyle=} +% \begin{macro}{framestyle} % This key defines style of frame. % \begin{macrocode} \DeclareFROpt{framestyle}{\@ifundefined{FB@#1@frame}% @@ -6711,7 +8371,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{framearound=} +% \begin{macro}{framearound} % This key defines object to be framed. % \begin{macrocode} \DeclareFROpt{framearound}{\flrow@fr@round{#1}} @@ -6719,8 +8379,8 @@ % \end{macro} % % \begin{macro}{\flrow@fr@round} -% Command for \texttt{framearound=}. -% \changes{v0.1f}{2005/06/14}{Macro uses \pkg{caption} macro +% Command for \texttt{framearound}. +% \changes{v0.1f}{2005/06/14}{Macro uses \package{caption} macro % \cmd{\caption@ifinlist}.} % \begin{macrocode} \newcommand*\flrow@fr@round[1]{% @@ -6729,13 +8389,13 @@ }{\caption@ifinlist{#1}{floatbox,all}{\let\FRifFBOX\iftrue \def\FB@BO@{FB}% }{\caption@ifinlist{#1}{none}{\let\FRifFBOX\iffalse - }{\PackageError{floatrow}{Undefined framed object `#1'}{\flrow@eh}% + }{\flrow@error{Undefined framed object `#1'}% }}}} % \end{macrocode} % \end{macro} % -% \begin{macro}{framefit=} -% \begin{macro}{frameset=} +% \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} @@ -6800,13 +8460,13 @@ % % \subsubsection{Defining Float Skips} % -% \begin{macro}{captionskip=} -% \begin{macro}{footskip=} +% \begin{macro}{captionskip} +% \begin{macro}{footskip} % The following options define skips: first---between float object and % caption (if it used in float style); second---before foot material % (footnote or other foot text). % \changes{v0.1f}{2005/06/14}{Defining also standard \cmd{\abovecaptionskip} -% for compatibility with \pkg{caption}'s \cmd{\captionof}.} +% for compatibility with \package{caption}'s \cmd{\captionof}.} % \begin{macrocode} \DeclareFROpt{captionskip}{\def\captionskip{#1}% \setlength\abovecaptionskip{#1}} @@ -6832,7 +8492,7 @@ % % \subsubsection{Defining Float Footnote Rule} % -% \begin{macro}{footnoterule=} +% \begin{macro}{footnoterule} % \begin{macro}{\flrow@footrule} % The definitions of |\footnoterule| inside float environment. % This macro is allowed only in preamble. @@ -6842,7 +8502,7 @@ \long\@namedef{flrow@fnrule@#1}{#2}} \newcommand*\flrow@footrule[1]{% \@ifundefined{flrow@fnrule@#1}% - {\PackageError{floatrow}{Undefined footnoterule `#1'}{\flrow@eh}}% + {\flrow@error{Undefined footnoterule `#1'}}% {\let\@@FRabove\empty \expandafter\let\expandafter\FBfootnoterule\csname flrow@fnrule@#1\endcsname}} @@ -6906,28 +8566,34 @@ \@onlypreamble\DeclareFNOpt % \end{macrocode} % \begin{macrocode} -\newcommand\flnew@setdefault{\setkeys{newfloat} +\newcommand\flnew@setdefault{\caption@setkeys[floatrow]{newfloat} {placement=tbp,fileext=lox}} % \end{macrocode} % The |\newtoks| for defining of float environments (using % |\flrow@restyle| command) at the end of preamble. (Took a leaf with -% settings for lists of floats from \pkg{float} package's book.) +% settings for lists of floats from \package{float} package's book.) +% \changes{v0.1p}{2007/06/24}{Double code with \texttt{ftype@}\meta{captype} +% deleted.} +% \changes{v0.1p}{2007/06/24}{The \cmd{\fname@}\meta{floatname} changed to +% \cs{}\meta{floatname}\texttt{name} macros redefined locally.} +% \changes{v0.2a}{2007/08/24}{Corrected bug with \texttt{ftype@} definition (AS).} % \begin{macrocode} \@ifdefinable\flrow@types{\newtoks\flrow@types} \newcommand\DeclareNewFloatType[2]{\def\FB@captype{#1}% - \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}% - \addtocounter{float@type}{\value{float@type}} - \@namedef{fname@#1}{#1}\newcounter{#1}% + \expandafter\edef\csname ftype@#1\endcsname{\the\c@float@type}% + \addtocounter{float@type}{\value{float@type}}% + \@namedef{#1name}{#1}\newcounter{#1}% \expandafter\edef\csname fnum@#1\endcsname - {\expandafter\noexpand\csname fname@#1\endcsname\ + {\expandafter\noexpand\csname #1name\endcsname\ \expandafter\noexpand\csname the#1\endcsname}% \@namedef{the#1}{\arabic{#1}}% - \flnew@setdefault\setkeys{newfloat}{#2}% + \flnew@setdefault\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}}} +% \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}% +% \addtocounter{float@type}{\value{float@type}} + } \@onlypreamble\DeclareNewFloatType % \end{macrocode} % Key for placement defining. @@ -6939,175 +8605,47 @@ % \end{macrocode} % Key for float label name defining. % This macro is allowed only in preamble. +% \changes{v0.1p}{2007/06/24}{The \cmd{\fname@}\meta{floatname} changed to +% \cs{}\meta{floatname}\texttt{name} macros redefined locally.} % \begin{macrocode} \DeclareFNOpt*{name}{\flnew@fname{#1}} -\newcommand\flnew@fname[1]{\@namedef{fname@\FB@captype}{#1}} +\newcommand\flnew@fname[1]{\@namedef{\FB@captype name}{#1}} \@onlypreamble\flnew@fname % \end{macrocode} % Key for extension of ``toc''-file. % This macro is allowed only in preamble. % \begin{macrocode} -\DeclareFNOpt*{fileext}{\flnew@ext{#1}} -\newcommand\flnew@ext[1]{\@namedef{ext@\FB@captype}{#1}% - \let\float@do=\relax - \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#1}}}% - \@tempa} -\@onlypreamble\flnew@ext -% \end{macrocode} -% The section of document which resets numbering of float. -% This macro is allowed only in preamble. -% \begin{macrocode} -\DeclareFNOpt*{within}{\flnew@within{#1}} -\newcommand\flnew@within[1]{\@addtoreset{\FB@captype}{#1}% - \expandafter\edef\csname the\FB@captype\endcsname{% - \expandafter\noexpand\csname - the#1\endcsname.\noexpand\arabic{\FB@captype}}} -\@onlypreamble\flnew@within -% \end{macrocode} -% \end{macro} -% -% \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} -% -% \subsection{Building Subfloatrow} -% -% \begin{macrocode} -%<*frforsubfig> -% \end{macrocode} -% \changes{v0.1f}{2005/06/14}{The subfloatrow support became a part of a -% \pkg{floatrow} package.} -% At first defined dimension for maximal height of subcaption. Then macro -% for defining height of subcaption box. -% \begin{macrocode} -\newlength\FBsc@max -\newlength\FBso@max -\@ifdefinable\FBsubcheight{\let\FBsubcheight\relax} -\@ifdefinable\FBsuboheight{\let\FBsuboheight\relax} -% \end{macrocode} -% -% \begin{macro}{\adjustsubfloats} -% The user command which loaded at the end of row of subcaptions. -% \changes{v0.1f}{2005/06/14}{Removed \cmd{\FB@subfloat} and -% \cmd{\FB@subcaption} definitions: the code for \env{subfloatrow} -% support placed in \pkg{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 - \if@tempswa\FB@writeaux{% - \string\global\string\c@FBcnt\thepage - \ifCADJ\string\edef\string\FBsubcheight{\the\FBsc@max}\fi - \ifOADJ\string\edef\string\FBsuboheight{\the\FBso@max}\fi - }\fi - \global\let\FBsubcheight\relax\global\let\FBsuboheight\relax - \global\FBso@max\z@\global\FBsc@max\z@} -% \end{macrocode} -% \end{macro} -% -% \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) -% in row, then the settings for float layout. -% \begin{macrocode} -\newcommand\subfloatrow[1][2]{\c@FRobj=#1%local - \ifdim\parindent<\z@\leavevmode\else\noindent\fi\hbox\bgroup - \Xhsize\hsize\count@#1\advance\count@-1% - \settowidth\@tempdima{\subfloatrowsep}% - \advance\Xhsize-\count@\@tempdima - \@tempdimb\Xhsize\divide\@tempdimb#1% - \hsize\@tempdimb\ignorespaces} -% \end{macrocode} -% Macro for sub float row end. -% \begin{macrocode} -\def\endsubfloatrow{\ifdim\lastskip>\z@\unskip\fi - \egroup\adjustsubfloats} -% \end{macrocode} -% \end{environment} -% -% The definition of subfloat separator. -% \begin{macrocode} -\newcommand\subfloatrowsep{\hskip\columnsep} -\DeclareFROpt{subfloatrowsep}{\flrow@setFRsep\subfloatrowsep{#1}} -% \end{macrocode} -% -% \begin{macrocode} -% -% \end{macrocode} -% -% \begin{macrocode} -%<*frforlongtbl> -% \end{macrocode} -% -% \subsection{Support for \pkg{longtable} Package} -% -% \changes{v0.1g}{2005/07/15}{The \pkg{longtable} support moved inside -% \pkg{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 -% A. Sommerfeldt for compact code created as patch of |\LT@array| command). -% -% At first we save macro |\LT@array| under name |\flrow@LT@array|. -% Then start redefinition. -% \begin{macrocode} -\AtBeginDocument{\@ifundefined{LT@array}{}{\let\flrow@oriLT@array\LT@array - \let\LT@array\flrow@LT@array}} -\newcommand\flrow@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}.} -% \begin{macrocode} - \flrow@setlist{{table}{longtable}}\normalfont\floatfont - \belowcaptionskip\captionskip -% \end{macrocode} -% Here goes safe and redefinition of |\LT@make@row| macro in the way -% of managing of counting of table width. -% \begin{macrocode} - \FBifLTcapwidth - \let\flrow@LT@make@row\LT@make@row - \def\LT@make@row{% - \let\LT@make@row\flrow@LT@make@row - \LT@make@row -% \end{macrocode} -% The |\LT@entry| here used for width calculation. -% \begin{macrocode} - \ifx\LT@save@row\relax\else\begingroup - \LTcapwidth\z@ - \def\LT@entry####1####2{\advance\LTcapwidth####2}\LT@save@row - \ifdim\LTcapwidth=\z@\else\global\LTcapwidth\LTcapwidth\fi - \endgroup\fi}% - \fi -% \end{macrocode} -% At last goes \pkg{longtable}'s macro itself. -% \begin{macrocode} - \flrow@oriLT@array} +\DeclareFNOpt*{fileext}{\flnew@ext{#1}} +\newcommand\flnew@ext[1]{\@namedef{ext@\FB@captype}{#1}% + \let\float@do=\relax + \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#1}}}% + \@tempa} +\@onlypreamble\flnew@ext % \end{macrocode} -% -% The definition of subfloat separator. +% The section of document which resets numbering of float. +% This macro is allowed only in preamble. % \begin{macrocode} -\let\FBifLTcapwidth\iffalse -\DeclareFROpt{LTcapwidth}{\flrow@LTcapwd{#1}} -\newcommand*\flrow@LTcapwd[1]{% - \caption@ifinlist{#1}{table,contents}{\let\FBifLTcapwidth\iftrue - }{\let\FBifLTcapwidth\iffalse\setlength\LTcapwidth{#1}}} +\DeclareFNOpt*{within}{\flnew@within{#1}} +\newcommand\flnew@within[1]{\@addtoreset{\FB@captype}{#1}% + \expandafter\edef\csname the\FB@captype\endcsname{% + \expandafter\noexpand\csname + the#1\endcsname.\noexpand\arabic{\FB@captype}}} +\@onlypreamble\flnew@within % \end{macrocode} +% \end{macro} % +% \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} % % \subsubsection{Processing of floatsetup options} % % \begin{macro}{\ProcessOptionsWithKV} % As in caption style options are processed with usage of the -% \pkg{keyval} package. +% \package{keyval} package. % \changes{v0.1j}{2006/02/24}{Edited by suggestions of A.Sommerfeldt} % \begin{macrocode} \def\ProcessOptionsWithKV#1{% @@ -7150,7 +8688,7 @@ }% }% \edef\FR@tmp{% - \noexpand\setkeys{#1}{% + \noexpand\caption@setkeys[floatrow]{#1}{% \FR@tmp\@ptionlist{\@currname.\@currext}% }% }% @@ -7161,15 +8699,24 @@ \FR@iffancy\RequirePackage{fr-fancy}\fi \let\ProcessOptionsWithKV\undefined % \end{macrocode} +% \end{macro} +% % At beginning of document there are loaded macros |\flrow@restyle| % for table and figure floats. (Any new float type gets this command % when |\newfloat| macro of |\DeclareNewFloatType| are used.) +% \changes{v0.1k}{2007/05/24}{The support for raw float mode added.} % \begin{macrocode} -\AtBeginDocument{\flrow@restyle{table}\flrow@restyle{figure}% - \let\FR@tmp\flrow@restyle \the\flrow@types - \@onlypreamble\flrow@restyle\flrow@types{}} +\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 + \@onlypreamble\flrow@restyle\@onlypreamble\flrow@Raw@restyle + \flrow@types={}} % \end{macrocode} -% \end{macro} % % \begin{macrocode} % @@ -7178,13 +8725,13 @@ % \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.} % -% \subsection{Additional Definitions for Fancy Frames} -% % \begin{macrocode} %<*frfancy> \RequirePackage{fancybox} % \end{macrocode} % +% \subsection{Additional Definitions for Fancy Frames} +% % \subsection{Macros for Color Frame} % % \begin{macro}{\FB@colorbox@frame} @@ -7217,12 +8764,12 @@ \DeclareFROpt{colorframeset}{\flrow@fcolorbox{#1}} \newcommand*\flrow@fcolorbox[1]{% \@ifundefined{flrow@fcolorbox@#1}% - {\PackageError{floatrow}{Undefined color box `#1'}{\flrow@eh}}% + {\flrow@error{Undefined color box `#1'}}% {\expandafter\let\expandafter\FB@fcolorbox \csname flrow@fcolorbox@#1\endcsname}} \newcommand*\DeclareColorBox[2]{% - \@ifundefined{color}{\PackageError{floatrow}% - {For usage of colored frames\MessageBreak load color package}{}}% + \@ifundefined{color}{\flrow@error + {For usage of colored frames\MessageBreak load color package}}% {\long\@namedef{flrow@fcolorbox@#1}{#2}}} % \end{macrocode} % @@ -7269,7 +8816,7 @@ % \begin{macro}{\FB@wshadowbox@adj} % \begin{macro}{\FB@wshadowbox@reset} % The definition for frame \texttt{wshadowbox}---similar to -% \texttt{shadowbox} from \pkg{fancybox}. +% \texttt{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. @@ -7347,6 +8894,13 @@ % % \end{macrocode} % +% +% +% +% \begin{macrocode} +%<*floatpagestyle> +% \end{macrocode} +% % \subsection{Empty Floating page} % % Here goes small sneaky-tricky style to put desired page style @@ -7356,7 +8910,6 @@ % First goes macro which defines desired page style for page with % current float. % \begin{macrocode} -%<*floatpagestyle> \newcommand\floatpagestyle[1]{\@ifundefined{ps@#1}\undefinedpagestyle {\begingroup \let\thepage\relax\let\protect\@unexpandable@protect @@ -7409,13 +8962,16 @@ % % \end{macrocode} % +% +% +% % \begin{macrocode} %<*listpen> % \end{macrocode} % % \subsection{List Penalties Managing} % -% The package \pkg{listpen} is a beta-temp package, which +% The package \package{listpen} is a beta-temp package, which % offers commands |\allowprelistbreaks|, % |\allowpostlistbreaks| and |\allowitembreaks| which help % to manage page breaking at the beginning and the end of @@ -7430,7 +8986,7 @@ % These commands set penalties before lists, after lists and between items. % They set globally or inside group or (also list!) % environment\footnote{Look also at \cmd{\allowdisplaybreaks} -% macro from \pkg{amsmath} package.} penalties accordingly to digits +% macro from \package{amsmath} package.} penalties accordingly to digits % from |[-4]| (never break) to |[4]| (always break). The values of optional % argument in these commands analogous to values of optional arguments % in, e.g., |\pagebreak| command. The default value of all three commands @@ -7484,9 +9040,584 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\RestoreSpaces} +% \changes{v0.1b}{2007/05/24}{Adding definition of \cmd{\RestoreSpaces} command} +% A simple command to turn off |\if@nobreak| flag. +% \begin{macrocode} +\providecommand\RestoreSpaces{\@nobreakfalse} +% \end{macrocode} +% \end{macro} +% % \begin{macrocode} % % \end{macrocode} % +% +% +% +% \begin{macrocode} +%<*floatrow> +\AtBeginDocument{% +\@ifundefined{sf@@@subfloat}{\@tempswafalse}{\@tempswatrue} +\if@tempswa\RequirePackage{fr-subfig}\fi} +% +% \end{macrocode} +% +% \begin{macrocode} +%<*frforsubfig> +% \end{macrocode} +% +% \subsection{Support for \package{subfig} Package} +% +% \changes{v0.2a}{2007/08/24}{Added compatibility check.} +% \begin{macrocode} +\def\@tempb{2005/06/28 ver: 1.3 subfig package} +\expandafter\let\csname @tempa\expandafter\endcsname + \csname ver@subfig.\@pkgextension\endcsname +\ifx\@tempa\@tempb\else + \PackageWarning{fr-subfig}{The additions cooperated with \MessageBreak + version `2005/06/28 ver: 1.3' of package subfig,\MessageBreak + but only version\MessageBreak + \csname ver@subfig.\@pkgextension\endcsname'\MessageBreak + is available}\relax + \fi +% \end{macrocode} +% +% \subsubsection{Building Subfloatrow} +% +% At first defined dimension for maximal height of subcaption. Then macro +% for defining height of subcaption box. +% \begin{macrocode} +\newlength\FBsc@max +\newlength\FBso@max +\@ifdefinable\FBsubcheight{\let\FBsubcheight\relax} +\@ifdefinable\FBsuboheight{\let\FBsuboheight\relax} +% \end{macrocode} +% +% \begin{macro}{\adjustsubfloats} +% The user command which loaded at the end of row of subcaptions. +% \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 + \if@tempswa\FB@writeaux{% + \string\global\string\c@FBcnt\thepage + \ifCADJ\string\edef\string\FBsubcheight{\the\FBsc@max}\fi + \ifOADJ\string\edef\string\FBsuboheight{\the\FBso@max}\fi + }\fi + \global\let\FBsubcheight\relax\global\let\FBsuboheight\relax + \global\FBso@max\z@\global\FBsc@max\z@} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Small Correction of \package{subfig} Macro} +% +% There is a \package{subfig}'s macro with corrections to put +% alone subfloat label. +% \begin{macrocode} +\long\def\sf@@@subfloat#1[#2][#3]#4{% + \@ifundefined{FBsc@max}{}% + {\FB@readaux{\let\FBsuboheight\relax}}% + \@tempcnta=\@ne + \if@minipage + \@tempcnta=\z@ + \else\ifdim \lastskip=\z@ \else + \@tempcnta=\tw@ + \fi\fi + \ifmaincaptiontop + \sf@top=\sf@nearskip + \sf@bottom=\sf@farskip + \else + \sf@top=\sf@farskip + \sf@bottom=\sf@nearskip + \fi + \leavevmode + \setbox\@tempboxa \hbox{#4}% +% \end{macrocode} +% In the case of empty contents of subfloat all vertical spaces zeroed. +% subcaption label created like oneline |\vtop|. +% \begin{macrocode} + \ifdim\wd\@tempboxa=\z@\ht\@tempboxa\z@\dp\@tempboxa\z@ + \setbox\z@\hbox{{\caption@@@make + {\caption@lfmt{\@nameuse{sub\@captype name}}% + {\@nameuse{thesub\@captype}}\relax}{}}}\@tempdima=\wd\z@ + \sf@top=\z@ + \sf@bottom=\z@ + \sf@capskip\z@ + \sf@captopadj\z@ + \let\sf@ifpositiontop\@firstoftwo + \else + \@tempdima=\wd\@tempboxa + \@ifundefined{FBsc@max}{}% + {\global\advance\Xhsize-\wd\@tempboxa + \dimen@=\ht\@tempboxa + \advance\dimen@\dp\@tempboxa + \ifdim\dimen@>\FBso@max + \global\FBso@max\dimen@ + \fi}% + \fi + \vtop\bgroup + \vbox\bgroup + \ifcase\@tempcnta + \@minipagefalse + \or + \vskip\sf@top + \or + \ifdim \lastskip=\z@ \else + \@tempskipb\sf@top\relax\@xaddvskip + \fi + \fi +% \end{macrocode} +% In the case of empty contents there is used only first variant. +% \begin{macrocode} + \sf@ifpositiontop{% + \ifx \@empty#3\relax \else + \sf@subcaption{#1}{#2}{#3}% + \vskip\sf@capskip + \vskip\sf@captopadj + \fi\egroup +% \end{macrocode} +% In the case of empty contents the |\@tempboxa| box skipped . +% \begin{macrocode} + \hrule width0pt height0pt depth0pt + \box\@tempboxa + }{% + \@ifundefined{FBsc@max}% + {\box\@tempboxa}% + {\ifx\FBsuboheight\relax + \box\@tempboxa + \else + \vbox to \FBsuboheight{\FBafil\box\@tempboxa\FBbfil}% + \fi}% + \egroup + \ifx \@empty#3\relax \else + \vskip\sf@capskip + \hrule width0pt height0pt depth0pt + \sf@subcaption{#1}{#2}{#3}% + \fi + }% + \vskip\sf@bottom + \egroup + \@ifundefined{FBsc@max}{}% + {\addtocounter{FRobj}{-1}% +% \end{macrocode} +% Here is the small correction: +% |\ifnum\c@FRobj>0| instead of |\ifnum\c@FRobj=0\else|. +% \begin{macrocode} + \ifnum\c@FRobj>0% bugfix + \subfloatrowsep + \fi}% + \ifmaincaptiontop\else + \global\advance\@nameuse{c@\@captype}\m@ne + \fi + \endgroup\ignorespaces} +% \end{macrocode} +% +% \subsubsection{Beside Labels for Subfloats} +% +% New key for beside caption of subfloat label. Beside label of subfloat +% always on the left side. +% \begin{macrocode} +\DeclareFROpt{subcapbesideposition}{\flrow@SFbesidealign{#1}} +\newcommand*\flrow@SFbesidealign[1]{% + \caption@ifinlist{#1}{t,top}{% + \let\flrow@SFBalign\TopFloatBoxes + }{\caption@ifinlist{#1}{b,bottom,default}{% + \let\flrow@SFBalign\BottomFloatBoxes + }{\caption@ifinlist{#1}{c,center}{% + \let\flrow@SFBalign\CenterFloatBoxes + }{\PackageError{floatrow}% + {Undefined sublabel position `#1'}{\flrow@eh}% + }}}} +\newcommand\flrow@SFBalign{\BottomFloatBoxes} +% \end{macrocode} +% +% Macro for beside float label. Labels always placed on the left side. +% \begin{macrocode} +\newcommand\sidesubfloat{% + \ifx\@captype\@undefined + \@latex@error{\noexpand\subfloat outside float}\@ehd + \expandafter\@gobble + \else + \expandafter\@firstofone + \fi + {\flrow@sidesubfloat}} +% \end{macrocode} +% +% \begin{macrocode} +\def\flrow@sidesubfloat{\flrow@SFBalign + \begingroup + \@ifundefined{caption@setfloattype}% + \caption@settype + \caption@setfloattype + \@captype +% \caption@setoptions\@captype + \sf@ifpositiontop{% + \maincaptiontoptrue + }{% + \maincaptiontopfalse + }% + \caption@setoptions{subfloat}% + \caption@setoptions{sub\@captype}% + \let\sf@oldlabel=\label + \let\label=\subfloat@label +% \end{macrocode} +% +% Next, a decision (based on the \texttt{\char`\\ ifmaincaptiontop} +% flag) is made of how to advance the float counter; then the +% sub-float counter is advanced and saved and a check is made if an +% optional argument is present (if not, one is supplied). +% +% \begin{macrocode} + \ifmaincaptiontop\else + \advance\@nameuse{c@\@captype}\@ne + \fi + \refstepcounter{sub\@captype}% + \setcounter{sub\@captype @save}{\value{sub\@captype}}% + \@ifnextchar [% %] match left bracket + {\flrow@@sidesubfloat}% + {\flrow@@sidesubfloat[\@empty]}} +% \end{macrocode} +% +% \begin{macrocode} +\long\def\flrow@@sidesubfloat[#1]{% + \@ifnextchar [% %] match left bracket + {\flrow@@@sidesubfloat{sub\@captype}[{#1}]}% + {\flrow@@@sidesubfloat{sub\@captype}[\@empty{#1}][{#1}]}} +% \end{macrocode} +% +% \begin{macrocode} +\long\def\flrow@@@sidesubfloat#1[#2][#3]#4{% + \@ifundefined{FBsc@max}{}% + {\FB@readaux{\let\FBsuboheight\relax}}% + \@tempcnta=\@ne + \if@minipage + \@tempcnta=\z@ + \else\ifdim \lastskip=\z@ \else + \@tempcnta=\tw@ + \fi\fi + \sf@bottom=\z@ + \sf@top=\z@ + \leavevmode + \setbox\@tempboxa \hbox{#2}% + \@tempdima\wd\@tempboxa + \setbox\@tempboxa \hbox{#4}% + \advance\@tempdima\wd\@tempboxa + \advance\@tempdima\labelsep + \@ifundefined{FBsc@max}{}% + {\global\advance\Xhsize-\wd\@tempboxa + \dimen@=\ht\@tempboxa + \advance\dimen@\dp\@tempboxa + \ifdim\dimen@>\FBso@max + \global\FBso@max\dimen@ + \fi}% + \begin@FBBOX + \ifcase\@tempcnta + \@minipagefalse + \or + \vskip\sf@top + \or + \ifdim \lastskip=\z@ \else + \@tempskipb\sf@top\relax\@xaddvskip + \fi + \fi + \hbox{% + \begin@FBBOX + \ifx \@empty#3\relax \else + \hbox{\caption@@@make + {\caption@lfmt{\@nameuse{sub\@captype name}}% + {\@nameuse{thesub\@captype}}\relax}{}}% + \fi + \end@FBBOX\hskip\labelsep\ignorespaces + \begin@FBBOX + \box\@tempboxa + \end@FBBOX + }% + \vskip\sf@bottom + \end@FBBOX + \@ifundefined{FBsc@max}{}% + {\addtocounter{FRobj}{-1}% + \ifnum\c@FRobj>0 + \subfloatrowsep + \fi}% + \ifmaincaptiontop\else + \global\advance\@nameuse{c@\@captype}\m@ne + \fi + \endgroup\ignorespaces} +% \end{macrocode} +% +% \subsubsection{Alone Labels for Subfloats} +% +% Macro for creation of subfloat label only. That could be useful +% for usage with \package{psfrag} package, placing labels inside +% \env{picture} environment, using in tabulars etc. +% \begin{macrocode} +\newcommand\subfloatlabel{\@ifnextchar[%] + {\flrow@subfloatlabel}{\subfloat[]{}}} +\@ifdefinable\flrow@subfloatlabel{} +\def\flrow@subfloatlabel[#1]{% + \ifx\@captype\@undefined + \@latex@error{\noexpand\subfloat outside float}\@ehd + \fi + \begingroup + \count@#1\advance\count@\m@ne + \csname c@sub\@captype\endcsname\count@\relax + \@ifnextchar[%] + {\flrow@@subfloatlabel[#1]}% + {\subfloat[]{}\endgroup}} +\@ifdefinable\flrow@@subfloatlabel{} +\def\flrow@@subfloatlabel[#1][#2]{% + \subfloat[]{\label{#2}}\endgroup} +% \end{macrocode} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% +% +% \begin{macrocode} +%<*floatrow> +\AtBeginDocument{% +\@ifundefined{LT@array}{\@tempswafalse}{\@tempswatrue} +\if@tempswa\RequirePackage{fr-longtable}\fi} +% +% \end{macrocode} +% +% \begin{macrocode} +%<*forlongtable> +% \end{macrocode} +% +% \subsection{Support for \package{longtable} Package} +% +% First goes requirement of necessary packages. +% \begin{macrocode} +\RequirePackage{longtable}[2004/02/01] +%\RequirePackage{floatrow}[2007/05/24] +% \end{macrocode} +% +% \subsubsection{Caption Width Settings} +% +% \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 +% A.~Sommerfeldt for compact code created as patch of |\LT@array| command). +% +% At first we save macro |\LT@array| under name |\flrow@LT@array|. +% Then start redefinition. +% \begin{macrocode} +\let\flrow@oriLT@array\LT@array +\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}.} +% \begin{macrocode} + \flrow@setlist{{table}{longtable}}\flrow@useLTcapwidth\normalfont\floatfont + \belowcaptionskip\captionskip +% \end{macrocode} +% Here goes safe and redefinition of |\LT@make@row| macro in the way +% of managing of counting of table width. +% \begin{macrocode} + \FBifLTcapwidth + {\let\flrow@LT@make@row\LT@make@row + \def\LT@make@row{% + \let\LT@make@row\flrow@LT@make@row + \LT@make@row +% \end{macrocode} +% The |\LT@entry| here used for width calculation. +% \begin{macrocode} + \ifx\LT@save@row\relax\else\begingroup + \LTcapwidth\z@ + \def\LT@entry####1####2{\advance\LTcapwidth####2}\LT@save@row\relax + \ifdim\LTcapwidth=\z@\else\global\LTcapwidth\LTcapwidth\fi + \endgroup\fi}}% + \def\floatfoot@{%\par\kern-\normalbaselineskip\kern-\normallineskip + \vskip\floatfootskip\def\@captype{table}\floatfoot@box}% +% \end{macrocode} +% At last goes \package{longtable}'s macro itself. +% \begin{macrocode} + \flrow@oriLT@array} +% \end{macrocode} +% +% \begin{macrocode} +\providecommand\floatfont{} +\providecommand\floatfootskip{\skip\@mpfootins} +\providecommand\captionskip{10\p@} +\providecommand\floatfoot@box[1]{% +% \end{macrocode} +% The |\if@@FS| flag stored for \env{wrap...} environments. +% \changes{v0.1h}{2005/10/02}{Added setting for \cmd{\linewidth}} +% \begin{macrocode} +% \hsize\columnwidth\linewidth\columnwidth + \@parboxrestore\reset@font\color@begingroup +% \end{macrocode} +% Apply current float settings. +% \begin{macrocode} + \caption@setoptions{\@captype}% +% \end{macrocode} +% Apply floatfoot settings. +% \begin{macrocode} + \caption@setoptions{floatfoot}% +% \end{macrocode} +% No captionlabel. +% \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. +% \begin{macrocode} +\let\FBifLTcapwidth\@gobble +\providecommand\caption@ifinlist[2]{% + \let\next\@secondoftwo + \edef\caption@tempa{#1}% + \@for\caption@tempb:={#2}\do{% + \ifx\caption@tempa\caption@tempb + \let\next\@firstoftwo + \fi}% + \next} +\newcommand*\flrow@useLTcapwidth{} +\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}} + \ProcessOptions + } + {\DeclareOption{LTcapwidthtotable}{\setLTcapwidth{table}} + \ProcessOptions + \let\flrow@setlist\@gobble} +% \end{macrocode} +% +% \subsubsection{Additional Settings for Last Head and Pre-last Foot} +% +% The box for last head. Defined in the same way as analog macros in +% \package{longtable} package. +% \begin{macrocode} +\newbox\flrow@LT@lasthead +\newbox\flrow@LT@prelastfoot +% \end{macrocode} +% This counter register is used for checking of last longtable page. +% \begin{macrocode} +\newcounter{FBLTpage} +% \end{macrocode} +% +% 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. +% \begin{macrocode} +\@ifdefinable\FB@ori@longtable{\let\FB@ori@longtable\longtable} +\def\longtable{% + \setcounter{FBLTpage}\@ne + \FB@ori@longtable} +% \end{macrocode} +% +% Storing original definition of |\LT@ouput| macro. +% Here, in new definition, added increasing of \texttt{FBLTpage}. +% In the case of defined |\lasthead| contents and last page was +% checked, the contents of last head loaded. +% \begin{macrocode} +\@ifdefinable\FB@ori@LT@output{\let\FB@ori@LT@output\LT@output} +\def\LT@output{% + \@ifundefined{FBLTpage@\romannumeral\c@LT@tables}% + {\gdef\flrow@LTlastpage{2}}{\@nameuse{FBLTpage@\romannumeral\c@LT@tables}}% + \addtocounter{FBLTpage}\@ne + \ifvoid\flrow@LT@lasthead\else + \ifnum\value{FBLTpage}=\flrow@LTlastpage + \let\LT@head\flrow@LT@lasthead + \fi + \fi +% \end{macrocode} +% Switching on of the |\LT@prelastfoot| also needs the real value of +% |\flrow@LTlastpage| (why???). +% \begin{macrocode} + \ifvoid\flrow@LT@prelastfoot\else + \count@\flrow@LTlastpage\relax%\advance\count@\m@ne\relax + \ifnum\value{FBLTpage}=\count@ + \let\LT@foot\flrow@LT@prelastfoot + \fi + \fi + \FB@ori@LT@output} +% \end{macrocode} +% +% The definition of last head box and foot of the page before last. +% They are defined in the same way as other commands in \package{longtable} +% package, like |\endlastfoot|. +% Here was used |\def| as for all |\end..| commands. I hope if \package{longtable} +% will use these synonyms it will use also synonyms for +% || and || box register commands at the very beginning of package. +% Use command names with the analogous names +% in the hope that their synonyms will appear in the ``host''-package +% and in this case current package stops interfere. +% \begin{macrocode} +\@tempswafalse +\ifx\endlasthead\undefined\@tempswatrue\else + \ifx\endlasthead\relax\@tempswatrue +\fi\fi +\if@tempswa + \def\endlasthead{\LT@end@hd@ft\flrow@LT@lasthead} +\else +\PackageError{fr-longtable}{The command \string\endlasthead\MessageBreak + already defined by longtable package} +\fi +\@tempswafalse +\ifx\endprelastfoot\undefined\@tempswatrue\else + \ifx\endprelastfoot\relax\@tempswatrue +\fi\fi +\if@tempswa + \def\endprelastfoot{\LT@end@hd@ft\flrow@LT@prelastfoot} +\else +\PackageError{fr-longtable}{The command \string\endprelastfoot\MessageBreak + already defined by longtable package} +\fi +% \end{macrocode} +% +% Redefined |\endlongtable| command---added code which writes +% the number of pages of long table. +% \begin{macrocode} +\@ifdefinable\FB@ori@endlongtable{\let\FB@ori@endlongtable\endlongtable} +\def\endlongtable{% + \FB@ori@endlongtable +% \end{macrocode} +% Here is additional code. +% Why it is necessary to reduce counter of pages by~1? +% \begin{macrocode} + \if@filesw + {\advance\c@FBLTpage\m@ne + \immediate\write\@auxout{% + \gdef\expandafter\noexpand + \csname FBLTpage@\romannumeral\c@LT@tables\endcsname + {\string\gdef\string\flrow@LTlastpage{\the\c@FBLTpage}} + }} + \fi + } +% \end{macrocode} +% \begin{macrocode} +% +% \end{macrocode} +% +% % \Finale \endinput diff --git a/Master/texmf-dist/source/latex/floatrow/floatrow.ins b/Master/texmf-dist/source/latex/floatrow/floatrow.ins index 532f02946dc..2c209bc6594 100644 --- a/Master/texmf-dist/source/latex/floatrow/floatrow.ins +++ b/Master/texmf-dist/source/latex/floatrow/floatrow.ins @@ -30,12 +30,14 @@ You are NOT ALLOWED to change this file. \askonceonly \keepsilent -%%%\askforoverwritefalse +%\askforoverwritefalse %%%\nopreamble \generate{ - \file{floatrow.sty}{\from{floatrow.dtx}{floatrow,frforsubfig,frforlongtbl,floatsetup}} + \file{floatrow.sty}{\from{floatrow.dtx}{floatrow,floatsetup}} \file{fr-fancy.sty}{\from{floatrow.dtx}{frfancy}} \file{floatpagestyle.sty}{\from{floatrow.dtx}{floatpagestyle}} \file{listpen.sty}{\from{floatrow.dtx}{listpen}} + \file{fr-longtable.sty}{\from{floatrow.dtx}{forlongtable}} + \file{fr-subfig.sty}{\from{floatrow.dtx}{frforsubfig}} } \endbatchfile -- cgit v1.2.3