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