>From 0303dcbf121ba63c855d59ef98864f4bcc3fe108 Mon Sep 17 00:00:00 2001 From: Akira Yokosawa <akiyks@xxxxxxxxx> Date: Sat, 5 Aug 2017 11:30:33 +0900 Subject: [PATCH 1/3] Revert commits after "Localize floatrow.sty as floatrowpf.sty" It turns out that the workaround of floatrow's conflict with two-column layout causes build failure when the "caption" package is added in the preamble. So revert the following 8 commits that relies floatrowpf.sty. 4f90fe21d9a9 ("Localize floatrow.sty as floatrowpf.sty") f91cb12fd082 ("Apply workaround to floatrowpf.sty") b3c03d55bbdd ("Define 'listing' environment for style guide") fec4c19f0fc0 ("styleguide: Add listing environment examples") 4a99c22ba7d7 ("Disable 'floatrow' layout in manually aligned code snippets") 33d239e0ca0c ("styleguide: Add example of grouping code snippets") 5ac664e8b3e8 ("styleguide: Add example of preferred table layout using 'booktabs'") c49e4ea4bd06 ("styleguide: Tweak layout of 'Limitation' table") Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> --- appendix/styleguide/hello.c | 9 - appendix/styleguide/styleguide.tex | 177 +---- defer/rcuusage.tex | 6 +- floatrowpf.sty | 1482 ------------------------------------ howto/howto.tex | 4 +- perfbook.tex | 4 - 6 files changed, 14 insertions(+), 1668 deletions(-) delete mode 100644 appendix/styleguide/hello.c delete mode 100644 floatrowpf.sty diff --git a/appendix/styleguide/hello.c b/appendix/styleguide/hello.c deleted file mode 100644 index d35d93f..0000000 --- a/appendix/styleguide/hello.c +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Sample Code Snippet - */ -#include <stdio.h> -int main(void) -{ - printf("Hello world!\n"); - return 0; -} diff --git a/appendix/styleguide/styleguide.tex b/appendix/styleguide/styleguide.tex index 6f5236f..72b8ca0 100644 --- a/appendix/styleguide/styleguide.tex +++ b/appendix/styleguide/styleguide.tex @@ -389,20 +389,15 @@ Table~\ref{tab:app:styleguide:Limitation of Monospace Macro} lists such limitations. \begin{table}[tbh] - \renewcommand*{\arraystretch}{1.2} - \begin{floatrow}[1] - \ttabbox[\columnwidth]{ -\footnotesize -\begin{tabular}{@{}lll@{}}\toprule +\centering\footnotesize +\begin{tabular}{lll} Macro & Need Escape & Should Avoid \\ - \midrule + \hline \co{\\co}, \co{\\nbco} & \co{\\}, \%, \{, \} & \\ \co{\\tco} & \# & \%, \{, \}, \co{\\} \\ -\bottomrule \end{tabular} -}{\caption{Limitation of Monospace Macro} - \label{tab:app:styleguide:Limitation of Monospace Macro}} - \end{floatrow} +\caption{Limitation of Monospace Macro} +\label{tab:app:styleguide:Limitation of Monospace Macro} \end{table} While \verb|\co{}| requires some characters to be escaped, @@ -594,21 +589,8 @@ This section lists up such candidates. Strictly speaking, code snippets are \emph{not} figures. They deserve their own floating environment. The ``floatrow'' package would be of help. -Figure~\ref{fig:app:styleguide:Sample Code Snippet} -can be typeset as in -Listing~\ref{lst:app:styleguide:Sample Code Snippet} -using an experimental environment ``listing''. -\begin{listing} -{ \scriptsize -\verbfilebox[{\makebox[5ex][r]{\arabic{VerbboxLineNo}\hspace{2ex}}}] - {appendix/styleguide/hello.c} -} -\centering -\theverbbox -\caption{Sample Code Snippet} -\label{lst:app:styleguide:Sample Code Snippet} -\end{listing} +% TODO: Add example \subsubsection{Position of Caption} \label{sec:app:styleguide:Position of Caption} @@ -622,39 +604,8 @@ The same can be said of code snippets, which are read from top to bottom. The floatrow package mentioned above also has the capability to adjust layout of caption. -For example, -Listing~\ref{lst:app:styleguide:Sample Code Snippet (Top)} -has the option \qco{cappostion=top} in its preamble. - -\begin{listing}\RawFloats -{ \scriptsize -\verbfilebox[{\makebox[5ex][r]{\arabic{VerbboxLineNo}\hspace{2ex}}}] - {appendix/styleguide/hello.c} -} -\begin{floatrow}[1]\thisfloatsetup{capposition=top} - \floatbox{listing}[2.5in]{\caption{Sample Code Snippet (Top)} - \label{lst:app:styleguide:Sample Code Snippet (Top)}}{ -\theverbbox -} -\end{floatrow} -\end{listing} -For code snippets, the ``ruled'' style would look even better. -Listing~\ref{lst:app:styleguide:Sample Code Snippet (Ruled)} -is an example using the option \qco{style=ruled}. - -\begin{listing}\RawFloats -{ \scriptsize -\verbfilebox[{\makebox[5ex][r]{\arabic{VerbboxLineNo}\hspace{2ex}}}] - {appendix/styleguide/hello.c} -} -\begin{floatrow}[1]\thisfloatsetup{style=ruled} - \floatbox{listing}[2.5in]{\caption{Sample Code Snippet (Ruled)} - \label{lst:app:styleguide:Sample Code Snippet (Ruled)}}{ -\theverbbox -} -\end{floatrow} -\end{listing} +% TODO: Add example Once the conversion of code sippets to a new environment has completed, we would be able to choose one of the style options @@ -674,84 +625,7 @@ The floatrow package provides the features to do so.\footnote{ One problem of grouping figures might be the learning curve to do so.} -For example, -Figures~\ref{fig:advsync:Message-Passing Litmus Test} -and~\ref{fig:advsync:Enforcing Order of Message-Passing Litmus Test} -can be grouped together as in -Listings~\ref{lst:app:styleguide:Message-Passing Litmus Test} -and~\ref{lst:app:styleguide:Enforcing Order of Message-Passing Litmus Test}. - -\begin{listing*}\RawFloats -{ \scriptsize -\begin{verbbox} - 1 C C-MP+o-wmb-o+o-o.litmus - 2 - 3 { - 4 } - 5 - 6 - 7 P0(int* x0, int* x1) { - 8 - 9 WRITE_ONCE(*x0, 2); -10 smp_wmb(); -11 WRITE_ONCE(*x1, 2); -12 -13 } -14 -15 P1(int* x0, int* x1) { -16 -17 int r2; -18 int r3; -19 -20 r2 = READ_ONCE(*x1); -21 r3 = READ_ONCE(*x0); -22 -23 } -24 -25 exists (1:r2=2 /\ 1:r3=0) -\end{verbbox} -} - \begin{floatrow}[2]\thisfloatsetup{style=ruled} - \floatbox{listing}[2.2in]{\caption{Message-Passing Litmus Test} - \label{lst:app:styleguide:Message-Passing Litmus Test}}{ - \theverbbox -} -{ \scriptsize -\begin{verbbox} - 1 C C-MP+o-wmb-o+o-rmb-o.litmus - 2 - 3 { - 4 } - 5 - 6 P0(int* x0, int* x1) { - 7 - 8 WRITE_ONCE(*x0, 2); - 9 smp_wmb(); -10 WRITE_ONCE(*x1, 2); -11 -12 } -13 -14 P1(int* x0, int* x1) { -15 -16 int r2; -17 int r3; -18 -19 r2 = READ_ONCE(*x1); -20 smp_rmb(); -21 r3 = READ_ONCE(*x0); -22 -23 } -24 -25 exists (1:r2=2 /\ 1:r3=0) -\end{verbbox} -} - \thisfloatsetup{style=ruled}\hspace{1em}% - \floatbox{listing}[2.2in]{\caption{Enforcing Order of Message\-/Passing Litmus Test} - \label{lst:app:styleguide:Enforcing Order of Message-Passing Litmus Test}}{ - \theverbbox -} - \end{floatrow} -\end{listing*} +% TODO: Add example \subsubsection{Ruled Line in Table} \label{sec:app:styleguide:Ruled Line in Table} @@ -763,40 +637,7 @@ look ugly.\footnote{ Vertical lines should be avoided and horizontal lines should be used sparingly, especially in tables of simple structure. -For example, -Table~\ref{tab:cpu:Performance of Synchronization Mechanisms on 4-CPU 1.8GHz AMD Opteron 844 System} -can be tweaked by the help of ``booktabs'' package as is shown in -Table~\ref{tab:app:styleguide:Performance of Synchronization Mechanisms of 4-CPU 1.8GHz AMD Opteron 844 System}, -with the caption at the top. - -\begin{table}[htb]\RawFloats -\renewcommand*{\arraystretch}{1.2} -\begin{floatrow}[1]\ttabbox[]{ -\small -\begin{tabular}{@{}lrr@{}}\toprule - & & Ratio \\ - Operation & Cost (ns) & (cost/clock) \\ - \midrule - Clock period & 0.6 & 1.0 \\ - Best-case CAS & 37.9 & 63.2 \\ - Best-case lock & 65.6 & 109.3 \\ - Single cache miss & 139.5 & 232.5 \\ - CAS cache miss & 306.0 & 510.0 \\ - Comms Fabric & 5,000\textcolor{white}{.0} - & 8,330\textcolor{white}{.0} - \\ - Global Comms & 195,000,000\textcolor{white}{.0} - & 325,000,000\textcolor{white}{.0} \\ -\bottomrule -\end{tabular}}{ -\caption{Performance of Synchronization Mechanisms of 4-CPU 1.8\,GHz AMD Opteron 844 System} -\label{tab:app:styleguide:Performance of Synchronization Mechanisms of 4-CPU 1.8GHz AMD Opteron 844 System} -} -\end{floatrow} -\end{table} - -Note that ruled lines of booktabs can not be mixed with -vertical lines in a table. +% TODO: Add example \subsubsection{Miscellaneous Candidates} \label{sec:app:styleguide:Miscellaneous Candidates} diff --git a/defer/rcuusage.tex b/defer/rcuusage.tex index f3174f3..af4faff 100644 --- a/defer/rcuusage.tex +++ b/defer/rcuusage.tex @@ -603,7 +603,7 @@ and all taken from Wikipedia~\cite{WikipediaRCU}. -\begin{figure*}[htbp]\RawFloats +\begin{figure*}[htbp] { \scriptsize \begin{verbbox} 1 struct el { 1 struct el { @@ -623,7 +623,7 @@ Wikipedia~\cite{WikipediaRCU}. \label{fig:defer:Converting Reader-Writer Locking to RCU: Data} \end{figure*} -\begin{figure*}[htbp]\RawFloats +\begin{figure*}[htbp] { \scriptsize \begin{verbbox} 1 int search(long key, int *result) 1 int search(long key, int *result) @@ -649,7 +649,7 @@ Wikipedia~\cite{WikipediaRCU}. \label{fig:defer:Converting Reader-Writer Locking to RCU: Search} \end{figure*} -\begin{figure*}[htbp]\RawFloats +\begin{figure*}[htbp] { \scriptsize \begin{verbbox} 1 int delete(long key) 1 int delete(long key) diff --git a/floatrowpf.sty b/floatrowpf.sty deleted file mode 100644 index b98af62..0000000 --- a/floatrowpf.sty +++ /dev/null @@ -1,1482 +0,0 @@ -%%% -%%% This is file `floatrowpf.sty', which is a modified version -%%% of `floatrow.sty' to work around issues in two-column layout. -%%% The possible workaround was posted at: -%%% https://tex.stackexchange.com/questions/133127/ -%%% -%%% Modified by Akira Yokosawa for perfbook project. -%%% -%%% Following is the original header: -%%% -%% This is file `floatrow.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% floatrow.dtx (with options: `floatrow,floatsetup') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% Any modified versions of this file must be renamed -%% with new filenames distinct from floatrow.sty. -%% -%% For distribution of the original source see the terms -%% for copying and modification in the file floatrow.dtx. -%% -%% This generated file may be distributed as long as the -%% original source files, as listed above, are part of the -%% same distribution. (The sources need not necessarily be -%% in the same archive or directory.) -\NeedsTeXFormat{LaTeX2e}[1995/06/01] -\ProvidesPackage{floatrowpf} - [2017/07/17 v0.3b-ay floatrowpf: customized floatrow for perfbook] -\@ifundefined{float@caption}{% - \@ifundefined{rotfloat@float}{}% - {\PackageError{floatrowpf}{Do not use rotfloat package with floatrowpf.\MessageBreak - The latter will be skipped}{}% - \@namedef{opt@xxxxxxxxxxxxxx}{}\endinput}}% - {\PackageError{floatrowpf}{Do not use float package with floatrowpf.\MessageBreak - The latter will be skipped}{}% - \@namedef{opt@xxxxxxxxxxxxxx}{}\endinput} -\@namedef{ver@xxxxxxxxx}{2001/11/08 v1.3d (excerpt) - Float enhancements (AL)} -\@namedef{ver@xxxxxxxxxxxx}{2004/01/04 v1.2 (excerpt) - Combining float+rotating package (AS)} -\RequirePackage{keyval} -\RequirePackage{caption3} -\@ifpackagelater{caption3}{2007/04/11 v3.0q}{}{\PackageError - {floatrowpf}{For a successful cooperation we need at least\MessageBreak - version `2007/04/11 v3.0q' of package caption,\MessageBreak - but only version\MessageBreak - `\csname ver@caption.\@pkgextension\endcsname'\MessageBreak - is available}\@eha\endinput} -\providecommand*\caption@fnum[1]{% - \caption@lfmt{\@nameuse{#1name}}{\@nameuse{the#1}}} -\@ifdefinable\FR@flboxreset{\let\FR@flboxreset\@floatboxreset} -\@ifdefinable\FR@makecaption{\let\FR@makecaption\@makecaption} -\newcommand\flrow@caption{% - \ifx\@captype\@undefined - \@latex@error{\noexpand\caption outside float}\@ehd - \expandafter\@gobble - \else - \refstepcounter\@captype - \expandafter\@firstofone - \fi - {\@dblarg{\@caption\@captype}}% -} -\@ifdefinable\float@caption{\let\float@caption\@caption} -\newcounter{float@type} -\@ifundefined{c@figure}% - {\setcounter{float@type}{1}}% - {\setcounter{float@type}{4}} -\newcommand\flrow@package{floatrowpf} -\newcommand*\flrow@error[1]{\PackageError\flrow@package{#1}\flrow@eh} -\newcommand*\flrow@eh{% - If you do not understand this error, please take look\MessageBreak - at `floatrow' and `caption' package documentations.\MessageBreak - \@ehc} -\newcommand\floatstyle[1]{\@ifundefined{flrow@sty@#1}% - {\flrow@error{Unknown float style `#1'}}{\edef\float@style{#1}}} -\newcommand\floatname[2]{\@namedef{#1name}{#2}} -\newcommand\floatplacement[2]{\@namedef{fps@#1}{#2}} -\newif\if@@FS -\newcommand\FR@redefs{% - \@ifundefined{HyOrg@float@makebox}{}% - {\let\float@makebox\HyOrg@float@makebox}% - \ifx\flrow@makecaption\@makecaption\relax - \else - \let\FR@makecaption\@makecaption - \let\@makecaption\flrow@makecaption - \fi - \let\@floatboxreset\flrow@flboxreset} -\newcommand\flrow@makecaption[2]{\ifnum\floatbox@depth=\z@ - \ifvoid\@floatcapt - \else\flrow@error{Caption(s) lost}\fi\fi - \global\setbox\@floatcapt - \vbox\bgroup\@parboxrestore - \reset@font - \if@@FS - \ifdim\FBc@wd>\z@ - \hsize\FBc@wd - \else - \adj@dim\hsize+\FBo@wadj=\hsize - \fi - \fi - \linewidth\hsize - \ifdim\hsize<70mm\sloppy\fi - \normalsize - \abovecaptionskip\z@\belowcaptionskip\z@ - \FR@makecaption{#1}{#2}\egroup} -\newcommand\killfloatstyle{\FBbuildtrue\if@@FS\hsize\FB@wd\fi\@@FSfalse} -\newcommand\flrow@capsetup{} -\edef\float@style{plain} -\@ifdefinable\FBB@wd{\let\FBB@wd\relax} -\newcommand\restylefloat{% - \@ifstar{\flrow@restylefloat{no}\flrow@restyle}% - {\flrow@restylefloat{yes}\flrow@restyle}} -\newcommand\flrow@restylefloat[3]{% - \edef\FR@tmp{\noexpand - \floatsetup[#3]{style=\float@style,relatedcapstyle=#1}}\FR@tmp - #2{#3}} -\newcommand\flrow@restyle[1]{% - \@namedef{#1}{\killfloatstyle\def\@captype{#1}\FR@redefs - \flrow@setlist{{#1}}% - %\textwidth\columnwidth <-- error in two-column layout - \edef\FBB@wd{\the\columnwidth}% - \FRifFBOX\@@setframe\relax\@@FStrue\@float{#1}}% - \@namedef{#1*}{\killfloatstyle\def\@captype{#1}\FR@redefs - \flrow@setlist{{#1}{widefloat}{wide#1}}% - \FRifFBOX\@@setframe\relax\@@FStrue\edef\FBB@wd{\the\textwidth}% - \let\@xdblfloat\@xfloat\relax - \FR@ifdoubleaswide - {\if@twocolumn\else\let\@dblfloat\@float\fi}\relax - \@dblfloat{#1}}% - \expandafter\let\csname end#1\endcsname\float@end - \expandafter\let\csname end#1*\endcsname\float@dblend - \@ifundefined{@rotfloat}{}{% - \@namedef{sideways#1}{\killfloatstyle\def\@captype{#1}\FR@redefs - \flrow@setlist{{#1}{rotfloat}{rot#1}}% - \columnwidth\textheight\edef\FBB@wd{\the\textheight}% - \FRifFBOX\@@setframe\relax\@@FStrue - \let\rotfloat@@makebox\float@makebox - \let\float@makebox\rotfloat@makebox - \@float{#1}}% - \@namedef{endsideways#1}{\FBbuildtrue\float@end} - \ifx\@rotdblfloat\undefined - \@namedef{sideways#1*}{% - \flrow@error{% - You need rotating version 2.10 or newer to do this}% - \@nameuse{sideways#1}}% - \else - \@namedef{sideways#1*}{\killfloatstyle\def\@captype{#1}\FR@redefs - \flrow@setlist{{#1}{rotfloat}{rot#1}{widerotfloat}{widerot#1}}% - \columnwidth\textheight\edef\FBB@wd{\the\textheight}% - \FRifFBOX\@@setframe\relax\@@FStrue - \let\@xdblfloat\@xfloat - \let\rotfloat@@makebox\float@makebox - \let\float@makebox\rotdblfloat@makebox - \@dblfloat{#1}}% - \fi - \@namedef{endsideways#1*}{\FBbuildtrue\float@dblend}} - \@ifundefined{wrapfloat}{}{% - \@ifundefined{flrow@WF@rapt}{\let\flrow@WF@rapt\WF@rapt - \def\WF@rapt[##1]##2{\FRifFBOX\@@setframe\relax\@@FStrue - \dimen@##2\relax - \ifdim\dimen@>\z@ - \edef\FBB@wd{\the\dimen@}\FB@fs@wd\dimen@\FBo@wd - \fi - \flrow@WF@rapt[##1]{\dimen@}% - \the\FR@everyfloat\ignorespaces}% - }{}% - \@namedef{wrap#1}{\killfloatstyle\def\@captype{#1}% - \FR@redefs\FBc@wd\z@ - \flrow@setlist{{#1}{wrapfloat}{wrap#1}}% - \def\WF@floatstyhook{\let\@currbox\WF@box - \ifFBbuild - \global\setbox\WF@box\flrow@FB{\wd\WF@box}% - \else - \global\let\flrow@typ@tmpset\undefined - \global\let\WF@box\@currbox - \fi}% - \@ifnextchar[\WF@wr{\WF@wr[]}}%] - \@namedef{endwrap#1}{\endwrapfloat - \@ifundefined{FloatHBarrier}{}\FloatHBarrier - }} - \@ifundefined{sf@@@subfloat}{}{\@ifundefined{c@sub#1}{\newsubfloat{#1}}{}}} -\newcommand\RawFloats{\@ifnextchar[%] - \flrow@rawfloatschk\flrow@rawfloats} -\newcommand\flrow@rawfloats{\killfloatstyle\@parboxrestore - \let\@makecaption\FR@makecaption - \expandafter\ifx\csname end\@captype\endcsname\float@endH - \global\FBbuildfalse - \else - \@namedef{end\@captype}{\end@float}% - \fi - \expandafter\ifx\csname end\@captype*\endcsname\float@endH - \global\FBbuildfalse - \else - \@namedef{end\@captype*}{\end@dblfloat}% - \fi - \@ifundefined{@rotfloat}{}{% - \@namedef{endsideways\@captype}{\end@rotfloat}% - \@namedef{endsideways\@captype*}{\end@rotdblfloat}% - }% - \@ifundefined{wrapfloat}{}{% - \@namedef{endwrap\@captype}{\endwrapfloat}% - }} -\@ifdefinable\flrow@rawfloatschk{} -\def\flrow@rawfloatschk[#1]{\@ifnextchar[%] - {\flrow@RawFloats[#1]}{\flrow@@RawFloats#1,;}} -\@ifdefinable\flrow@RawFloats{} -\newcommand\flrow@raw@set{\AtBeginDocument} -\AtBeginDocument{\let\flrow@raw@set\@firstofone} -\def\flrow@RawFloats[#1][#2]{\flrow@RawFloats@[#1]#2,;} -\def\flrow@RawFloats@[#1]#2,{% - \caption@ifinlist{#2}{float}{\flrow@raw@set - {\@namedef{#1}{\@float{#1}}}% - }{\caption@ifinlist{#2}{widefloat}{\flrow@raw@set% - {\@namedef{#1*}{\let\@xdblfloat\@xfloat\@dblfloat{#1}}}% - }{\caption@ifinlist{#2}{rotfloat}{% - \@ifundefined{@rotfloat}{}{\flrow@raw@set - {\@namedef{sideways#1}{\@rotfloat{#1}}}}% - }{\caption@ifinlist{#2}{widerotfloat}{% - \@ifundefined{@rotfloat}{}{\flrow@raw@set - {\@namedef{sideways#1*}{\@rotdblfloat{#1}}}}% - }{\caption@ifinlist{#2}{wrapfloat}{% - \@ifundefined{wrapfloat}{}{\flrow@raw@set - {\@namedef{wrap#1}{\wrapfloat{#1}}}}}% - }{\caption@ifinlist{#2}{all,allfloats}{% - \flrow@@RawFloats{#1}% - }{\flrow@error{Undefined float subtype `#2'}% - }}}}}\@ifnextchar;\@gobble{\flrow@RawFloats@[#1]}} -\@ifdefinable\flrow@@RawFloats{} -\def\flrow@@RawFloats#1,{% - \flrow@raw@set{\@namedef{#1}{\@float{#1}}% - \@namedef{#1*}{\let\@xdblfloat\@xfloat\@dblfloat{#1}}% - \@ifundefined{@rotfloat}{}{% - \@namedef{sideways#1}{\@rotfloat{#1}}% - \@namedef{sideways#1*}{\@rotdblfloat{#1}}% - }% - \@ifundefined{wrapfloat}{}{% - \@namedef{wrap#1}{\wrapfloat{#1}}}% - }\@ifnextchar;\@gobble\flrow@@RawFloats -} -\newcommand\flrow@Raw@restyle[1]{% - \@namedef{#1}{\@float{#1}}% - \@namedef{#1*}{\@dblfloat{#1}}% - \@namedef{end#1}{\end@float}% - \@namedef{end#1*}{\end@dblfloat}% - \@ifundefined{@rotfloat}{}{% - \@namedef{sideways#1}{\@rotfloat{#1}}% - \@namedef{sideways#1*}{\@rotdblfloat{#1}}% - \@namedef{endsideways#1}{\end@rotfloat}% - \@namedef{endsideways#1*}{\end@rotdblfloat}% - }% - \@ifundefined{wrapfloat}{}{% - \@namedef{wrap#1}{\wrapfloat{#1}}% - \@namedef{endwrap#1}{\endwrapfloat}% - }% - } -\newcommand\RawCaption[1]{{\let\@makecaption\FR@makecaption #1}} -\@ifdefinable\float@exts{\newtoks\float@exts} -\newcommand\newfloat{\@ifstar{\flrow@restylefloat{no}\newfloat@}% - {\flrow@restylefloat{yes}\newfloat@}} -\newcommand\newfloat@[3]{\@ifnextchar[{\@@newfloat{#1}{#2}{#3}}% - {\@newfloat{#1}{#2}{#3}}} -\newcommand\@newfloat[3]{% - \DeclareNewFloatType{#1}{placement=#2,fileext=#3}} -\@ifdefinable\@@newfloat{} -\def\@@newfloat#1#2#3[#4]{% - \DeclareNewFloatType{#1}{placement=#2,fileext=#3,within=#4}} -\let\@float@Hx\@xfloat -\def\@xfloat#1[{\@ifnextchar{H}{\@float@HH{#1}[}{\@float@Hx{#1}[}} -\AtBeginDocument{% - \@ifundefined{latex@xfloat}{}{% - \let\floatrow@ORI@xfloat\@xfloat - \def\@xfloat#1[#2]{% - \floatrow@ORI@xfloat{#1}[#2]% - \floatfont}}}% -\newsavebox\float@box -\def\@float@HH#1[H]{% - \@ifundefined{FloatHBarrier}{}\FloatHBarrier - \expandafter\let\csname end#1\endcsname\float@endH - \FR@ifdoubleaswide - {\expandafter\let\csname end#1*\endcsname\float@endH}\relax - \let\@currbox\float@box - \flrow@setlist*{{floatH}{#1H}}% - \def\@captype{#1}%\setbox\@floatcapt=\vbox{}% - \setbox\@currbox\color@vbox\normalcolor - \vbox\bgroup - \hsize\columnwidth - \linewidth\columnwidth - \@parboxrestore\leftmargin\z@\rightmargin\z@ - \@floatboxreset \@setnobreak - \ignorespaces} -\newcommand\flrow@flboxreset{\FR@flboxreset - \@ifundefined{capstart}{}{\capstart}% - \FB@facing\@tempswafalse\FR@iffacing\@tempswatrue\relax - \if@tempswa\FB@readaux{\relax}\fi - \global\let\FBcheight\relax\global\let\FBoheight\relax - \global\let\FBfheight\relax - \FBifcapbeside\FC@fs@wd\FB@fs@wd - \the\FR@everyfloat} -\@ifdefinable\FBcheight{\let\FBcheight\relax} -\@ifdefinable\FBoheight{\let\FBoheight\relax} -\@ifdefinable\FBfheight{\let\FBfheight\relax} -\newcommand\FB@fs@wd{\@tempdima\FBB@wd - \flrow@setwd\textwidth\@tempdima - \adj@dim\@tempdima-\FB@wadj=\@tempdima - \settowidth\@tempdimb{{\FBleftmargin}{\FBrightmargin}}% - \advance\@tempdima-\@tempdimb - \global\FBc@wd\@tempdima\global\FB@wd\@tempdima - \adj@dim\@tempdima-\FBo@wadj={\global\FBo@wd}% - \hsize\FBo@wd\linewidth\hsize - \FBifcaptop - {\ifnum\FPOScnt=\z@\columnwidth\hsize\else\columnwidth\FBc@wd\fi}% - {\columnwidth\FBc@wd}% - } -\newcommand\FC@fs@wd{\@tempdima\FBB@wd\flrow@FClist - \settowidth\@tempdimb{{\FCleftmargin}{\FCrightmargin}}% - \advance\@tempdima-\@tempdimb - \adj@dim\@tempdima-\FB@wadj=\@tempdima - \settowidth\@tempdimb{{\floatcapbesidesep}}% - \advance\@tempdima-\@tempdimb - \FC@ifc@wd\@tempswatrue\@tempswafalse - \if@tempswa - \ifx\FCwidth\relax - \flrow@error{You didn't define width of caption\MessageBreak - for plain floating environment.}% - \else - \global\FBc@wd=\FCwidth - \FC@ifo@fil{\advance\@tempdima-\FBc@wd}\relax - \fi - \else - \global\FBc@wd\@tempdima - \fi - \FC@ifo@fil\relax{\@tempdima.5\@tempdima - \flrow@setwd\FB@wd\@tempdima}% - \adj@dim\@tempdima-\FBo@wadj={\global\FBo@wd}% - \FC@ifc@wd\relax{\global\advance\FBc@wd-\FB@wd}% - \hsize\FBo@wd\linewidth\hsize\columnwidth\FBc@wd\linewidth\hsize - \FCset@vpos} -\newcommand\float@makebox[1]{% - \FBifcapbeside{\flrow@FC{#1}}{\flrow@FB{#1}}} -\newcommand\FBaskip{\z@}\newcommand\FBbskip{\z@} -\newif\ifFBbuild\FBbuildtrue -\newcommand\flrow@FB[1]{\vbox{\@tempdima=#1\vskip\FBaskip - \@parboxrestore\leftmargin\z@\rightmargin\z@ - \hbox to\@tempdima{\def\FB@zskip{\vskip\z@}% - \FBleftmargin\flrow@FB@\FBrightmargin}% - \FR@iffacing{\FB@writeaux{\string\global\string\c@FBcnt\thepage}}\relax - \gdef\begin@FBBOX{\vbox\bgroup}\gdef\end@FBBOX{\egroup}% - \vskip\FBbskip\gdef\FBaskip{\z@}\gdef\FBbskip{\z@}}} -\newcommand\flrow@FC[1]{\vbox{\@tempdima=#1\@parboxrestore - \leftmargin\z@\rightmargin\z@\flrow@FClist\vskip\FBaskip - \hbox to\@tempdima{\FCleftmargin\flrow@FC@\FCrightmargin}% - \FR@iffacing{\FB@writeaux{\string\global\string\c@FBcnt\thepage}}\relax - \nocapbeside\global\let\FCwidth\relax - \vskip\FBbskip\gdef\FBaskip{\z@}\gdef\FBbskip{\z@}}} -\newcommand\FCc@box[1]{\def\@parboxto{}\FC@bbox#1\FC@ebox} -\newcommand\FC@bbox{\vbox\@parboxto\bgroup} -\newcommand\FC@ebox{\vskip\z@\egroup} -\newcommand\FCo@box[1]{\def\@parboxto{}\ifx\FBoheight\relax\FC@bbox\else - \def\@parboxto{to\FBoheight}\FC@bbox\vsize\FBoheight\fi#1\FC@ebox} -\newcommand\FBafil{\vfill}\newcommand\FBbfil{\vfill} -\newcommand\FBw@box[1]{\hsize#1\columnwidth#1\linewidth#1% - \normalfont\normalcolor} -\newcommand\FB@vbox[3]{\ifx#2\relax\vbox\bgroup\else - \vbox to#2\bgroup\vsize#2\fi\FBw@box#1#3\vskip\z@\egroup} -\newcommand\FB@vtop[3]{\ifx#2\relax\vtop\bgroup\else - \vtop to#2\bgroup\vsize#2\fi\vskip\z@\FBw@box#1#3\egroup} -\newcommand\flrow@FB@{\global\let\flrow@typ@tmpset\undefined - \FB@frame{\begin@FBBOX - \adj@dim\FBo@wd+\FBo@wadj=\hsize - \@tempdima\ht\@currbox\advance\@tempdima\dp\@currbox - \ifdim\@tempdima=\z@ - \def\@@FBskip{}\let\FBo@frame\@gobble - \fi - \@parboxrestore\leftmargin\z@\rightmargin\z@ - \@@FBabove - \FBifcaptop\@tempswatrue\@tempswafalse - \if@tempswa - \ifvoid\@floatcapt\else - \FB@vbox\FBc@wd\FBcheight{\FBifCAPTOP\relax\vfill - \unvbox\@floatcapt - \ifnum\FPOScnt=\@ne\vbox{\FB@foot}\fi\vfil}% - \@@FBskip\hrule\@height\z@\@depth\z@ - \fi - \vtop{\vskip\z@\FBo@frame{\FB@vtop\FBo@wd\FBoheight - {\FBafil\unvbox\@currbox\FBbfil - \vskip\z@ - \ifnum\FPOScnt=\z@ - \FB@vtop\FBo@wd\FBfheight{\FB@foot\vfil}\fi}}\par - \vskip\z@ - \ifnum\FPOScnt=\tw@\vskip\z@ - \FB@vtop\FBc@wd\FBfheight{\FB@foot\vfil}\fi}% - \else\ifnum\FPOScnt=\z@\FPOScnt=\@ne\fi - \FBo@frame{\FB@vbox\FBo@wd\FBoheight{\FBafil - \unvbox\@currbox\FBbfil}}\par - \ifvoid\@floatcapt\else - \@@FBskip\hrule\@height\z@\@depth\z@ - \FB@vtop\FBc@wd\FBcheight{\hsize\columnwidth\unvbox\@floatcapt - \ifnum\FPOScnt=\@ne\vtop{\FB@foot}% - \fi\par - \vfill\vskip\z@\vss - \ifnum\FPOScnt=2\FB@vtop\FBc@wd\FBfheight{\FB@foot\vfil}\fi - }\fi - \fi\@@FBbelow\FB@zskip\end@FBBOX - \global\setbox\@floatcapt\box\voidb@x}} -\newcommand\flrow@FC@{\global\let\flrow@typ@tmpset\undefined - \FB@frame{\begin@FBBOX - \adj@dim\FBo@wd+\FBo@wadj=\hsize - \settowidth\@tempdimb{\floatcapbesidesep}\advance\hsize\@tempdimb - \advance\hsize\FBc@wd\@parboxrestore\leftmargin\z@\rightmargin\z@ - \@@FBabove - \hbox{\floatfacing*% - {\ifvoid\@floatcapt\else - \FCc@box{\FBw@box\FBc@wd\unvbox\@floatcapt\FB@foot}% - \floatcapbesidesep\fi - \FBf@raise{\FBo@frame{\FCo@box{\FBw@box\FBc@wd\unvbox\@currbox}}}}% - {\FBf@raise{\FBo@frame{\FCo@box{\FBw@box\FBo@wd\unvbox\@currbox}}}% - \ifvoid\@floatcapt\else - \floatcapbesidesep\FCc@box{\FBw@box\FBc@wd - \unvbox\@floatcapt\FB@foot}\fi - }}\par\@@FBbelow\vskip\z@ - \end@FBBOX - \global\setbox\@floatcapt\box\voidb@x}} -\newcommand\FB@foot{\let\FR@ifFOOT\@firstoftwo\FB@putfoots\@@par\FB@putfnotes} -\newcommand\FB@zskip{} -\newcommand\float@end{\ifFBbuild\@endfloatbox - \global\setbox\@currbox\float@makebox\columnwidth - \let\@endfloatbox\relax\fi - \end@float} -\newcommand\floatHpenalties{} -\newcommand\float@endH{\@endfloatbox\par - \FR@iffloatHaslist - {\floatHpenalties\relax - \addpenalty\@beginparpenalty}\relax - \vskip\intextsep - \ifFBbuild\setbox\@currbox\float@makebox\columnwidth\fi - \box\@currbox\par - \FR@iffloatHaslist - {\addpenalty\@endparpenalty\@endpetrue}\relax - \vskip\intextsep\relax} -\newcommand\float@dblend{\ifFBbuild\@endfloatbox - \global\setbox\@currbox\float@makebox\textwidth - \let\@endfloatbox\relax\fi - \end@dblfloat} -\newsavebox\@floatcapt -\newcommand*{\listof}[2]{% - \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{% - \expandafter\providecommand\csname l@#1\endcsname - {\@dottedtocline{1}{1.5em}{2.3em}}% - \float@listhead{#2}% - \begingroup\setlength{\parskip}{\z@}% - \@starttoc{\@nameuse{ext@#1}}% - \endgroup}} -\providecommand*{\float@listhead}[1]{% - \@ifundefined{chapter}{\def\@tempa{\section*}}% - {\def\@tempa{\chapter*}}% - \@tempa{#1\@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}}}% -\newcommand\float@addtolists[1]{% - \def\float@do##1{\addtocontents{##1}{#1}} \the\float@exts} -\PackageInfo{floatrowpf}{Modified float package code loaded} -\IfFileExists{rotating.sty}{\@tempswatrue}{\@tempswafalse} -\if@tempswa - \let\rotfloat@HH\@float@HH - \def\@float@HH#1{% - \expandafter\let\csname endsideways#1\endcsname\float@endH - \let\end@float\relax - \rotfloat@HH{#1}} - \newcommand*\rotfloat@makebox[1]{% - \vbox{\def\@float##1[##2]{}\let\end@float\relax - \@rotfloat{}[]% - \ifFBbuild\rotfloat@@makebox{#1}\else\box\@currbox\fi - \end@rotfloat}} - \newcommand*\rotdblfloat@makebox[1]{% - \vbox{\def\@float##1[##2]{}\let\end@dblfloat\relax - \@rotdblfloat{}[]% - \ifFBbuild\rotfloat@@makebox{#1}\else\box\@currbox\fi - \end@rotdblfloat}} -\PackageInfo{floatrowpf}{Modified rotfloat package code loaded} -\fi -\@ifdefinable\FR@everyfloat{\newtoks\FR@everyfloat} -\FR@everyfloat={\let\@footnotetext\@mpfootnotetext - \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@ - \floatobjectset\floatfont} -\@ifdefinable\FR@ifFOOT{\let\FR@ifFOOT\@secondoftwo} -\newcommand\FB@putfnotes{% - \ifvoid\@mpfootins\else\FR@ifFOOT - {\vskip\floatfootskip\normalcolor\FBfootnoterule - \unvbox\@mpfootins\@@par}\relax - \fi} -\@ifdefinable\flrow@foot{\newinsert\flrow@foot} -\newcommand\FB@putfoots{% - \ifvoid\flrow@foot\else\FR@ifFOOT - {\vskip\floatfootskip\normalcolor - \unvbox\flrow@foot\@@par}\relax - \fi} -\AtBeginDocument{\providecommand\mpfootnotemark{\@ifnextchar[%] - \@xmpfootnotemark{\stepcounter\@mpfn - \protected@xdef\@thefnmark{\thempfn}\@footnotemark}}% - \@ifundefined{@xmpfootnotemark} - {\def\@xmpfootnotemark[#1]{\begingroup\c@mpfootnote#1\relax - \unrestored@protected@xdef\@thefnmark{\thempfn}\endgroup - \@footnotemark}}{}} -\captionsetup[floatfoot]{labelformat=empty,labelsep=none} -\newcommand\floatfoot{\@ifstar - {\def\FR@tmp{\@parboxrestore\captionfootfont}\floatfoot@}% - {\def\FR@tmp{\captionfootfont}\floatfoot@}} -\newcommand\floatfoot@[1]{% - \global\setbox\flrow@foot\vbox{% - \floatfoot@box{#1}}}% -\newcommand\floatfoot@box[1]{% - \@ifundefined{@captype}{\def\@captype{floatfoot}}{}% - \if@@FS\hsize\columnwidth\linewidth\columnwidth\fi - \@parboxrestore\reset@font\color@begingroup - \caption@setoptions{\@captype}% - \caption@setoptions{floatfoot}% - \caption@@make{}{\FR@tmp#1\@finalstrut\strutbox}% - \color@endgroup} -\newcommand\newfloatcommand[2]{% - \@ifundefined{#1}{}% - {\flrow@error{\string#1 already defined}}% - \@ifnextchar[{\FB@nc{#1}{#2}}{\FB@nc{#1}{#2}[]}} -\newcommand\renewfloatcommand[2]{% - \@ifundefined{#1}{}% - {\PackageInfo{floatrowpf}{Redefining \string#1}}% - \@ifnextchar[{\FB@nc{#1}{#2}}{\FB@nc{#1}{#2}[]}} -\@ifdefinable\FB@nc{}\@ifdefinable\FB@@nc{} -\def\FB@nc#1#2[#3]{% - \@ifnextchar[{\FB@@nc{#1}{#2}[#3]}{\FB@@nc{#1}{#2}[#3][]}} -\def\FB@@nc#1#2[#3][#4]{% - \@namedef{#1}{\begingroup - \def\FB@tmpset{#3}\def\@captype{#2}% - \@ifnextchar[{\@floatbox}{\@floatbox[#4]}}} -\newfloatcommand{ffigbox}{figure}[\nocapbeside][] -\newfloatcommand{ttabbox}{table}[\captop][\FBwidth] -\newfloatcommand{fcapside}{figure}[\capbeside][] -\@ifdefinable\FB@wd {\newdimen\FB@wd} -\@ifdefinable\FBo@wd{\newdimen\FBo@wd} -\@ifdefinable\FBc@wd{\newdimen\FBc@wd} -\newlength\FBo@ht -\newlength\FBc@ht -\newlength\FBf@ht -\newlength\FBo@max -\newlength\FBc@max -\newlength\FBf@max -\newcommand\FR@loc@addcnt[2]{% - \@ifundefined{c@#1}{\@nocounterr{#1}}% - {\advance\csname c@#1\endcsname #2\relax}} -\newcommand\FR@loc@refcnt[1]{% - \@ifundefined{c@#1}{\@nocounterr{#1}}% - {\advance\csname c@#1\endcsname1\relax}} -\newcommand\FR@loc@{% - \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 - \let\cl@@ckpt\empty\let\addtocounter\FR@loc@addcnt - \let\caption@kernel@addcontentsline\@gobbletwo - \let\caption@addcontentsline\@gobbletwo - \def\sf@updatecaptionlist##1##2##3##4{}} -\def\FBtmp@cap#1[#2]#3{\sbox\@tempboxa{\captionlabel{#3}}% - \global\@tempdimb\wd\@tempboxa} -\newcommand\captionlabel[1]{{\def\FR@tmp{\@captype}\ifnum\floatbox@depth>\@ne - \def\FR@tmp{sub\@captype}\caption@setsubtype*{\FR@tmp}\stepcounter{\FR@tmp}\fi - \caption@@@make{\caption@fnum\FR@tmp}{#1}}} -\newcommand\subcaptionlabel[1]{{\floatbox@depth\tw@\captionlabel{#1}}} -\newcommand\FBget@box[3]{% - \FBiffloatrow\relax - {\ifx\FBB@wd\relax - \ifdim\hsize=\z@ - \@ifundefined{wf@@caption}{}{\let\caption\wf@@caption}% - \hsize.5\columnwidth\advance\hsize-.5\columnsep - \else - \edef\FBB@wd{\the\hsize}% - \fi - \else - \hsize\FBB@wd - \fi}% - \adj@dim\hsize-\FB@wadj=\@tempdima - \FBifcapbeside - {\FCget@@wd{#1}{#3}}% - {\nofilFCOhsize - \FBiffloatrow\relax - {\settowidth\@tempdimb{{\FBleftmargin}{\FBrightmargin}}% - \advance\@tempdima-\@tempdimb}}% - \FC@ifo@fil{\@tempdima\FB@wd}{\FB@wd\@tempdima}% - \adj@dim\@tempdima-\FBo@wadj=\FBo@wd - \FBiffloatrow\relax{\hsize\FBo@wd}% - \FBifcapbeside{\hsize\FB@wd}\relax - \linewidth\hsize - \def\reserved@a{#1}\ifx\reserved@a\empty - \else\FBget@@wd{#1}{#3}\fi - \hsize\FBo@wd\linewidth\hsize - \FBifcapbeside - {\FC@ifc@wd\relax{\advance\FBc@wd-\FB@wd}}% - {\FBc@wd\FB@wd}% - \setbox\z@\vbox{\let\FR@ifROWFILL\@secondoftwo\FR@loc@\hsize\FBo@wd\linewidth\hsize - \FBifcaptop - {\ifnum\FPOScnt=\z@\columnwidth\hsize\else\columnwidth\FBc@wd\fi}% - {\columnwidth\FBc@wd}% - #3}% - \FBc@ht\ht\@floatcapt\advance\FBc@ht\dp\@floatcapt - \FBo@ht\ht\z@\advance\FBo@ht\dp\z@\let\FBheight\FBo@ht - \setbox\tw@\vbox{\null\par\FB@foot\par}% - \FBf@ht\ht\tw@\advance\FBf@ht\dp\tw@ - \FBiffloatrow - {\ifdim\FBf@ht>\FBf@max\global\FBf@max\FBf@ht\fi - \ifCADJ - \FBifcaptop - {\ifnum\FPOScnt=\@ne\global\advance\FBc@ht\FBf@ht\fi}% - {\ifnum\FPOScnt=\tw@ - \ifdim\FBf@ht>\FBf@max - \global\advance\FBc@ht\FBf@ht - \else - \global\advance\FBc@ht\FBf@max - \fi - \else - \global\advance\FBc@ht\FBf@ht - \fi}% - \ifdim\FBc@ht>\FBc@max\global\FBc@max\FBc@ht\fi - \gdef\FBcheight{\FBc@ht}\gdef\FBfheight{\FBf@ht}% - \fi}\relax - \def\reserved@a{#2}\ifx\reserved@a\empty - \FBiffloatrow{\ifOADJ - \ifdim\FBo@ht>\FBo@max\global\FBo@max\FBo@ht\fi - \FBifcaptop - {\ifnum\FPOScnt=\z@ - \ifdim\FBf@ht>\FBf@max\global\FBf@max\FBf@ht\fi - \fi}\relax - \gdef\FBoheight{\FBo@ht}\gdef\FBfheight{\FBf@ht}% - \fi}\relax - \else - \FBget@@ht{#2}{#3}% - \fi} -\newcommand\FCget@@wd[2]{\flrow@FClist - \FBiffloatrow\relax - {\settowidth\@tempdimb{{\FCleftmargin}{\FCrightmargin}}% - \advance\@tempdima-\@tempdimb\advance\hsize-\@tempdimb}% - \settowidth\@tempdimb{\floatcapbesidesep}\advance\@tempdima-\@tempdimb - \FC@ifo@fil{\FB@wd\@tempdima}\relax - \FC@ifc@wd\@tempswatrue\@tempswafalse - \if@tempswa - \ifx\FCwidth\relax - \setbox\@ne\vbox{\FR@loc@ - \let\caption\flrow@caption - \let\@caption\FBtmp@cap - #2}% - \FBc@wd=\@tempdimb - \else - \FBc@wd=\FCwidth - \fi\FC@ifo@fil{\advance\FB@wd-\FBc@wd}\relax - \else - \FBc@wd\@tempdima - \fi - \@tempdima.5\@tempdima} -\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@ - } -\newcommand\FBget@@wd[2]{\@tempswafalse - \begingroup - \@tempdima-3000pt\let\FBwidth\@tempdima - \setlength\dimen@{#1}\ifdim\dimen@<\z@\global\@tempswatrue\fi - \endgroup - \if@tempswa - \setbox\z@\hbox{\let\FR@ifROWFILL\@secondoftwo\FR@loc@#2}% - \FBo@wd\wd\z@\let\FBwidth\FBo@wd - \setlength\FBo@wd{#1}% - \advance\FBo@wd\leftskip\advance\FBo@wd\rightskip - \adj@dim\FBo@wd+\FBo@wadj=\FB@wd - \setbox\flrow@foot\box\voidb@x - \setbox\@mpfootins\box\voidb@x - \else - \setlength\FB@wd{#1}% - \adj@dim\FB@wd-\FB@wadj=\FB@wd - \adj@dim\FB@wd-\FBo@wadj=\FBo@wd - \let\FBwidth\FBo@wd - \fi} -\newcommand\FBget@@ht[2]{\@tempswafalse - \begingroup - \@tempdimb-3000pt\let\FBheight\@tempdimb - \setlength\dimen@{#1}\ifdim\dimen@<\z@ - \global\@tempswatrue\fi - \endgroup - \if@tempswa - \setbox\z@\hbox{\let\FR@ifROWFILL\@secondoftwo\FR@loc@#2}% - \FBo@ht\ht\z@\advance\FBo@ht\dp\z@ - \let\FBheight\FBo@ht\setlength\FBo@ht{#1}% - \adj@dim\FBo@ht+\FBo@hadj=\FBo@ht - \FBifcaptop{\ifnum\FPOScnt=\z@\advance\FBo@ht\FBf@ht\fi}\relax - \else - \setlength\FBo@ht{#1}% - \adj@dim\FBo@ht-\FBo@hadj=\FBo@ht - \adj@dim\FBo@ht-\FB@hadj=\FBo@ht - \setbox\z@\vbox{\offinterlineskip\vbox{\@@FBabove}% - \FBifcapbeside\relax{\@@FBskip\hrule\@height\z@\@depth\z@}% - \vtop{\@@FBbelow}}% - \global\advance\FBo@ht-\ht\z@\global\advance\FBo@ht-\dp\z@ - \FBifcapbeside\relax\FBget@@@ht - \fi - \FBiffloatrow{\ifOADJ - \ifdim\FBo@ht>\FBo@max\global\FBo@max\FBo@ht\fi - \fi}\relax - \def\FBoheight{\FBo@ht}} -\newcommand\FBget@@@ht{% - \ifdim\FBc@ht>\FBc@max - \global\advance\FBo@ht-\FBc@ht - \else - \global\advance\FBo@ht-\FBc@max - \fi - \FBifcaptop{\ifnum\FPOScnt=\@ne\else - \ifdim\FBf@ht>\FBf@max - \global\advance\FBo@ht-\FBf@ht - \else - \global\advance\FBo@ht-\FBf@max - \fi - \fi}\relax - } -\newcommand\FB@writeaux[1]{% - \begingroup - \let\thepage\relax\let\protect\@unexpandable@protect - \edef\reserved@a{\write\@auxout{\string\gdef - \expandafter\string\csname @@FBset@\romannumeral - \the\c@FBl@b\endcsname{#1}}}\reserved@a - \endgroup - \addtocounter{FBl@b}{1}} -\newcommand\FB@readaux[1]{% - \@ifundefined{@@FBset@\romannumeral\the\c@FBl@b}% - {#1}{\@nameuse{@@FBset@\romannumeral\the\c@FBl@b}}} -\newcounter{FBl@b} -\@ifdefinable\FR@ifFCBOX{\let\FR@ifFCBOX\@secondoftwo} -\newcommand\FBs@raise{\raisebox{-\totalheight}} -\newcommand\FBf@raise{} -\newcommand\FCset@vpos{\@FC@vpos - \ifcase\count@ - \gdef\FC@bbox{$\vcenter\@parboxto\bgroup\vskip\z@}% - \gdef\FC@ebox{\vskip\z@\egroup$}% - \gdef\FBf@raise{}% - \gdef\FBs@raise{\raisebox{-.5\totalheight}}% - \or\gdef\FC@bbox{\vtop\@parboxto\bgroup\vskip\z@}% - \gdef\FC@ebox{\vskip\z@\egroup}% - \FR@ifFCBOX{\gdef\FBf@raise{\raisebox{-\height}}}% - {\gdef\FBf@raise{}}% - \gdef\FBs@raise{\raisebox{-\totalheight}}% - \or\gdef\FC@bbox{\vbox\@parboxto\bgroup}\gdef\FC@ebox{\vskip\z@\egroup}% - \FR@ifFCBOX{\gdef\FBf@raise{\raisebox{\depth}}}% - {\gdef\FBf@raise{}}% - \gdef\FBs@raise{}\fi} -\@ifdefinable\adj@dim{} -\def\adj@dim#1#2#3=#4{\dimen@\z@#3\ifdim\dimen@=\z@#4#1\else - \adj@@dim#1#2#3{#4}\fi} -\newcommand\adj@@dim[4]{\@tempdima#1\advance\@tempdima#2\dimen@ - #4=\@tempdima} -\newcommand\floatbox[2][]{\begingroup - \def\FB@tmpset{#1}\def\@captype{#2}% - \@ifnextchar[{\@floatbox}{\@floatbox[]}} -\@ifdefinable\@floatbox{}\@ifdefinable\@@floatbox{} -\def\@floatbox[#1]{% - \@ifnextchar[{\@@floatbox[#1]}{\@@floatbox[#1][]}} -\@ifdefinable\floatbox@depth{\newcount\floatbox@depth} -\def\@@floatbox[#1][#2]{% - \@ifnextchar[{\@@@floatbox[#1][#2]}{\@@@floatbox[#1][#2][]}}%] -\@ifdefinable\@@@floatbox{} -\long\def\@@@floatbox[#1][#2][#3]#4#5{\advance\floatbox@depth\@ne - \@FB@vpos{#3}% - \if@@FS\else\FR@redefs - \ifcase\floatbox@depth\or - \flrow@setlist{{\@captype}}\or - \flrow@settype{subfloat}\flrow@settype{subtype}\flrow@settype{sub\@captype}% - \fi - \FRifFBOX\@@setframe\relax\@@FStrue - \fi - \FB@tmpset - \FBifcapbeside\flrow@FClist\relax - \@parboxrestore\leftmargin\z@\rightmargin\z@ - \floatobjectset\floatfont - \FBget@box{#1}{#2}{#4#5}% - \FBifcapbeside\FCset@vpos\relax - \FBiffloatrow{\FR@floatbox{\@ifundefined{capstart}{}{\capstart}#4#5}}% - {\adj@dim\FB@wd+\FB@wadj=\hsize\linewidth\hsize - \ifx\FBB@wd\relax\edef\FBB@wd{\the\hsize}\fi - \FBsetbox@obj{\@ifundefined{capstart}{}{\capstart}\let\FBB@wd\relax - #4#5}\FBbuildtrue - \FBifcapbeside{\flrow@FC\FBB@wd}{\flrow@FB\FBB@wd}% - \global\FBbuildfalse - \FR@iffacing{\FB@writeaux{\string\global\string\c@FBcnt\thepage}}\relax - }\advance\floatbox@depth\m@ne - \endgroup\ignorespaces} -\newcommand\FR@floatbox[1]{\@tempswafalse - \ifOADJ\@tempswatrue\fi\ifCADJ\@tempswatrue\fi - \if@tempswa\@ifundefined{FB@@boxmax}{}{\FB@@boxmax}\fi - \FBsetbox@obj{#1}\begin@FBBOX - \FBifcapbeside\flrow@FC@\flrow@FB@ - \end@FBBOX - \addtocounter{FRobj}\m@ne - \@tempswafalse\FR@iffacing\@tempswatrue\relax - \ifCADJ\@tempswatrue\fi\ifOADJ\@tempswatrue\fi - \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@ - \if@tempswa - \FB@writeaux{\string\c@FBcnt\thepage - \string\def\string\FB@@boxmax{% - \ifOADJ\string\FBo@ht\the\FBo@max - \string\FBf@ht\the\FBf@max\fi - \ifCADJ\string\FBc@ht\the\FBc@max\fi}}\fi - \global\FBbuildfalse - \else - \floatrowsep - \adj@dim\Xhsize-\FB@wadj={\global\Xhsize}% - \adj@dim\Zhsize-\FB@wadj={\global\Zhsize}% - \fi} -\newcommand\FBsetbox@obj[1]{% - \setbox\float@box\color@vbox\normalcolor - \FBifcaptop - {\FB@vtop\FBo@wd\FBoheight\bgroup\FBafil\floatobjectset\floatfont - \ifnum\FPOScnt=\z@\columnwidth\FBo@wd\else\columnwidth\FBc@wd\fi}% - {\FB@vbox\FBo@wd\FBoheight\bgroup\FBafil\floatobjectset\floatfont - \columnwidth\FBc@wd}% - #1\FBbfil\egroup\color@endbox - \let\@currbox\float@box} -\@ifdefinable\FBiffloatrow{\let\FBiffloatrow\@secondoftwo} -\newcounter{FRobj} -\newcounter{FRsobj} -\newlength\Xhsize -\newlength\sXhsize -\newlength\Zhsize -\newlength\sZhsize -\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 - \ifcase\floatbox@depth - \flrow@setlist*{{floatrow}{\@captype row}}% - \or - \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% - \FB@facing\@tempswafalse\FR@iffacing\@tempswatrue\relax - \ifCADJ\@tempswatrue\fi\ifOADJ\@tempswatrue\fi - \if@tempswa\FB@readaux{\relax}\fi - \flrow@boxset{\ifx\FBB@wd\relax\edef\FBB@wd{\the\hsize}\else\hsize\FBB@wd\fi}% - \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 - \@@FRabove - \flrow@setrowhbox - \flrow@hbox@bgroup\let\FBiffloatrow\@firstoftwo - \Xhsize\hsize\count@#1\advance\count@\m@ne - \settowidth\@tempdima{\floatrowsep}\advance\Xhsize-\count@\@tempdima - \@tempdimb\Xhsize - \FR@iftwolevel - {\ifnum\floatbox@depth=\z@\Zhsize\Xhsize\else - \ifdim\Zhsize=\z@\Zhsize\Xhsize\sZhsize\Xhsize\fi - \FR@ifcountH{\global\advance\Zhsize-\count@\@tempdima}\relax - \fi}{\@tempdimb\Xhsize\Zhsize\Xhsize}% - \divide\@tempdimb#1\relax\FB@wd\@tempdimb - \hsize\@tempdimb\ignorespaces} -\def\endfloatrow{\ifdim\lastskip>\z@\unskip\fi - \flrow@hbox@egroup%h box - \@@FRbelow - \egroup%v box - \FR@frame{\box\flrow@rowbox}% - \egroup%frame set - \FRrightmargin\egroup%outer h box - \ifnum\floatbox@depth=\z@\vspace\FBbskip\fi - \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}} -\newenvironment{subfloatrow}{\capsubrowsettings - \captionsetup{subtype}\@nameuse{subfloatrow*}}{\@nameuse{endsubfloatrow*}} -\newcommand\capsubrowsettings{\caption@setoptions{subfloatrow}\caption@setoptions{sub\@captype row}} -\newenvironment{subfloatrow*}[1][2]{\let\flrow@to\empty - \let\Xhsize\sXhsize%\let\Zhsize\sZhsize - \FR@ifunloc{\let\FR@ifcountH\@firstoftwo}\let\c@FRobj\c@FRsobj - \def\FRleftmargin{}\def\FRrightmargin{}\let\floatrowsep\subfloatrowsep - \floatrow[#1]\killfloatstyle}{\ifdim\lastskip>\z@\unskip\fi - \@ifundefined{adjustsubfloats}\relax\adjustsubfloats\endfloatrow} -\newcommand\subfloatrowsep{\hskip\columnsep} -\@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@}} -\newcommand\DefaultCommonHeight{25pt} -\newcommand\CommonHeight{\DefaultCommonHeight} -\newcommand\CommonHeightRow@[2][\DefaultCommonHeight]{\def\CommonHeight{#1}\setbox\z@ - \hbox{\FR@loc@\let\FR@ifunloc\@firstofone#2}% - \ifcase\floatbox@depth\def\@tempa{\Xhsize}\def\@tempb{\Zhsize}\or - \def\@tempa{\sXhsize}\def\@tempb{\Zhsize}\fi - \FR@calc@CommonHeight#2} -\@ifdefinable\FR@Zunitlength{\newdimen\FR@Zunitlength} -\newcommand\FR@calc@CommonHeight{% - \@tempdima\@tempb\advance\@tempdima-\@tempa - \count@\@tempdima\relax\divide\count@16384\relax - \divide\@tempb\count@\relax\FR@Zunitlength\@tempb\relax - \@tempdima\CommonHeight\relax - \count@\@tempdima\relax\divide\count@16384\relax - \@tempdima\count@\FR@Zunitlength\relax - \edef\CommonHeight{\the\@tempdima}} -\newcommand\begin@FBBOX{\vbox\bgroup} -\def\end@FBBOX{\egroup} -\newcommand\CenterFloatBoxes{\CADJfalse\OADJfalse - \buildFBBOX{\hbox\bgroup$\vcenter\bgroup\vskip\z@}% - {\vskip\z@\egroup$\egroup}} -\newcommand\TopFloatBoxes{\CADJfalse\OADJfalse - \buildFBBOX{\vtop\bgroup\vskip\z@}{\egroup}} -\newcommand\BottomFloatBoxes{\CADJfalse\OADJfalse - \buildFBBOX{\vbox\bgroup}{\vskip\z@\egroup}} -\newcommand\PlainFloatBoxes{% - \gdef\begin@FBBOX{\vbox\bgroup}\gdef\end@FBBOX{\egroup}} -\newcommand\buildFBBOX[2]{\gdef\begin@FBBOX{#1}\gdef\end@FBBOX{#2}} -\def\newdimentocommand #1#2#3{% - #1\@tempdima{#3}\@ifdefinable#2{\xdef#2{\the\@tempdima}}} -\def\renewdimentocommand#1#2#3{% - #1\@tempdima{#3}\xdef#2{\the\@tempdima}} -\def\newskiptocommand #1#2#3{% - #1\@tempskipa{#3}\@ifdefinable#2{\xdef#2{\the\@tempskipa}}} -\def\renewskiptocommand #1#2#3{% - #1\@tempskipa{#3}\xdef#2{\the\@tempskipa}} -\def\newlengthtocommand{\newskiptocommand} -\def\renewlengthtocommand{\renewskiptocommand} -\newcommand*\flrow@setbool[1]{% - \expandafter\caption@set@bool\csname FR@if#1\endcsname} -\def\floatsetup{\@ifnextchar[\flrow@setuptype\flrow@setup} -\def\flrow@setuptype[#1]#2{% - \@ifundefined{flrow@typ@#1}{\@namedef{flrow@typ@#1}{#2}}% - {\expandafter\l@addto@macro\csname flrow@typ@#1\endcsname{,#2}}} -\newcommand\thisfloatsetup{\floatsetup[tmpset]} -\def\flrow@setup{\caption@setkeys[floatrow]{floatrow}} -\def\flrow@esetup#1{% - \edef\FR@tmp{\noexpand\flrow@setup{#1}}\FR@tmp} -\def\flrow@settype#1{\@ifundefined{flrow@typ@#1}{}% - {\flrow@esetup{\csname flrow@typ@#1\endcsname}}}% -\newcommand\flrow@setlist{\@ifstar\flrow@setlist@@\flrow@setlist@} -\newcommand\flrow@setlist@[1]{\@flrow@setlist#1{tmpset};% - \FR@ifCST{\flrow@capsetup}\relax\@cap@setlist#1;% - \caption@setposition{\FBifcaptop tb}} -\newcommand\flrow@setlist@@[1]{\@flrow@setlist#1;% - \FR@ifCST{\flrow@capsetup}\relax\@cap@setlist#1;% - \caption@setposition{\FBifcaptop tb}} -\newcommand\@flrow@setlist[1]{\flrow@settype{#1}\@ifnextchar;\@gobble - \@flrow@setlist} -\@ifundefined{caption@setoptions}{\let\caption@setoptions\caption@settype}{} -\newcommand\@cap@setlist[1]{\caption@setoptions{#1}% - \@ifnextchar;{\let\caption@setfloattype\@gobble\@gobble}\@cap@setlist} -\newcommand\flrow@FClist{\flrow@setlist - {{floatbeside}{capbesidefloat}{\@captype beside}{capbeside\@captype}}} -\newcommand*\clearfloatsetup[1]{\@nameundef{flrow@typ@#1}} -\newcommand\DeclareFROpt{% - \@ifstar{\flrow@declopt\AtEndOfPackage} - {\flrow@declopt\@gobble}} -\newcommand*\flrow@declopt[2]{% - #1{\undefine@key{floatrow}{#2}}\define@key{floatrow}{#2}} -\@onlypreamble\DeclareFROpt -\@onlypreamble\flrow@declopt -\@ifdefinable\FR@ifrawfloats{\let\FR@ifrawfloats\@secondoftwo} -\DeclareFROpt*{rawfloats}[0]{\flrow@setbool{rawfloats}{#1}} -\@ifdefinable\FR@ifdoubleaswide{\let\FR@ifdoubleaswide\@secondoftwo} -\DeclareFROpt{doublefloataswide}[0]{\flrow@setbool{doubleaswide}{#1}} -\@ifdefinable\FR@iffloatHaslist{\let\FR@iffloatHaslist\@secondoftwo} -\DeclareFROpt{floatHaslist}[0]{\flrow@setbool{floatHaslist}{#1}} -\newcommand*\DeclareFloatStyle[2]{% - \global\@namedef{flrow@sty@#1}{#2}} -\@onlypreamble\DeclareFloatStyle -\newcommand*\flrow@setstyle[1]{% - \@ifundefined{flrow@sty@#1}% - {\flrow@error{Undefined float style `#1'}}% - {\FBstyle@reset - \def\flrow@capsetup{% - \@ifundefined{caption@sty@#1}{}{\caption@setstyle*{#1}}% - \caption@setoptions {#1}}% - \flrow@esetup{\csname flrow@sty@#1\endcsname}}} -\DeclareFloatStyle{plain}{} -\DeclareFloatStyle{plaintop}{capposition=top} -\DeclareFloatStyle{boxed}{captionskip=2pt, - framestyle=fbox,heightadjust=object,framearound=object} -\DeclareFloatStyle{ruled}{precode=thickrule,midcode=rule,postcode=lowrule, - capposition=top,heightadjust=all} -\DeclareFloatStyle{Ruled}{style=ruled,capposition=TOP} -\DeclareFloatStyle{Plaintop}{capposition=TOP} -\DeclareFloatStyle{Boxed}{style=boxed,framefit=yes} -\DeclareFloatStyle{BOXED}{framestyle=fbox, - framefit=yes,heightadjust=all,framearound=all} -\DeclareFloatStyle{default}{% - style=plain,captionskip=10pt, - margins=centering,objectset=centering, - capbesideposition=left,facing=no, - floatrowsep=columnsep,capbesidesep=columnsep, - font=default,footfont=footnotesize} -\DeclareFROpt{style}{\flrow@setstyle{#1}} -\@ifdefinable\FR@ifCST{\let\FR@ifCST\@firstoftwo} -\DeclareFROpt{relatedcapstyle}[0]{\flrow@setbool{CST}{#1}} -\DeclareFROpt{font}{\flrow@setfont{font}{#1}} -\DeclareFROpt{footfont}{\captionsetup[floatfoot]{font={#1}}} -\DeclareCaptionOption{footfont}{\caption@setfont{footfont}{#1}} -\@ifdefinable\floatfont{\let\floatfont\empty} -\newcommand*\captionfootfont{\normalfont\footnotesize} -\let\DeclareFloatFont\DeclareCaptionFont -\@onlypreamble\DeclareFloatFont -\newcommand*\flrow@setfont[2]{% - \caption@setfont{@tempa}{#2}% - \expandafter\let\csname float#1\endcsname\caption@tempa} -\DeclareFROpt{capposition}{\flrow@cappos{#1}} -\DeclareFROpt{position}{\flrow@cappos{#1}} -\newcommand*\flrow@cappos[1]{% - \caption@ifinlist{#1}{t,top,above}{\captop\nocapbeside - }{\caption@ifinlist{#1}{T,TOP,ABOVE}{\CAPTOP\nocapbeside - }{\caption@ifinlist{#1}{b,bottom,below,default}{\capbot\nocapbeside - }{\caption@ifinlist{#1}{beside,side}{\caption@setposition{a}\capbeside - }{\flrow@error{Undefined caption position `#1'}% - }}}}} -\@ifdefinable\FBifcaptop{\let\FBifcaptop\@secondoftwo} -\newcommand\captop{\let\FBifcaptop\@firstoftwo} -\newcommand\capbot{\let\FBifcaptop\@secondoftwo} -\@ifdefinable\FBifCAPTOP{\let\FBifCAPTOP\@secondoftwo} -\newcommand\CAPTOP{\captop\let\FBifCAPTOP\@firstoftwo\CADJtrue} -\@ifdefinable\FBifcapbeside{}\let\FBifcapbeside\@secondoftwo -\newcommand\capbeside{\let\FBifcapbeside\@firstoftwo} -\newcommand\nocapbeside{\let\FBifcapbeside\@secondoftwo} -\DeclareFROpt{capbesideframe}[0]{\flrow@setbool{FCBOX}{#1}} -\DeclareFROpt{capbesidewidth}[1]{\flrow@FCc@wd{#1}} -\@ifdefinable\FC@ifc@wd{\let\FC@ifc@wd\@secondoftwo} -\newcommand\useFCwidth{\let\FC@ifc@wd\@firstoftwo\let\FCwidth\relax} -\@ifdefinable\FCwidth{\let\FCwidth\relax} -\newcommand\flrow@FCc@wd[1]{% - \caption@ifinlist{#1}{none,sidefil}{\let\FC@ifc@wd\@secondoftwo - }{\useFCwidth\def\FCwidth{#1}}} -\DeclareFROpt{capbesideposition}{\flrow@scpos{#1}} -\newcommand\DeclareSCPos[2]{% - \define@key{flrow@scpos}{#1}[]{\g@addto@macro\FR@tmp{#2}}} -\newcommand*\flrow@scpos[1]{% - \let\FR@tmp\@empty - \begingroup\caption@setkeys[floatrow]{flrow@scpos}{#1}\endgroup - \FR@tmp} -\@onlypreamble\DeclareSCPos -\DeclareSCPos{left}{\def\@FC@hpos{\let\FR@iffacing\@secondoftwo\count@\@ne}} -\DeclareSCPos{right}{\def\@FC@hpos{\let\FR@iffacing\@secondoftwo\count@\z@}} -\DeclareSCPos{inside}{\def\@FC@hpos{\let\FR@iffacing\@firstoftwo - \count@\c@FBcnt\ifnum\count@=\z@\count@\@ne\fi - }} -\DeclareSCPos{outside}{\def\@FC@hpos{\let\FR@iffacing\@firstoftwo - \count@\c@FBcnt\ifnum\count@=\z@\else\advance\count@\@ne\fi - }} -\DeclareSCPos{center}{\def\@FC@vpos{\count@\z@}} -\DeclareSCPos{top}{\def\@FC@vpos{\count@\@ne}} -\DeclareSCPos{bottom}{\def\@FC@vpos{\count@\tw@}} -\newcommand*\@FC@vpos{\count@\tw@} -\newcommand*\@FC@hpos{\let\FR@iffacing\@secondoftwo\count@\@ne} -\newcounter{FBcnt} -\DeclareFROpt{footposition}{\flrow@ftpos{#1}} -\newcommand\DeclareFtPos[2]{% - \define@key{flrow@ftpos}{#1}[]{\g@addto@macro\FR@tmp{#2}}} -\newcommand*\flrow@ftpos[1]{% - \let\FR@tmp\@empty - \begingroup\caption@setkeys[floatrow]{flrow@ftpos}{#1}\endgroup - \FR@tmp} -\@onlypreamble\DeclareFtPos -\@ifdefinable\FPOScnt{\newcount\FPOScnt} -\DeclareFtPos{caption}{\FPOScnt1\relax} -\DeclareFtPos{bottom}{\FPOScnt2\relax} -\DeclareFtPos{default}{\FPOScnt0\relax} -\DeclareFROpt{heightadjust}{\flrow@htadj{#1}} -\newcommand\DeclareHtAdj[2]{% - \define@key{flrow@htadj}{#1}[]{\g@addto@macro\FR@tmp{#2}}} -\newcommand*\flrow@htadj[1]{\let\FR@tmp\@empty - \begingroup\caption@setkeys[floatrow]{flrow@htadj}{#1}\endgroup - \FR@tmp} -\@onlypreamble\DeclareHtAdj -\DeclareHtAdj{all}{\CADJtrue\OADJtrue} -\DeclareHtAdj{caption}{\CADJtrue} -\DeclareHtAdj{object}{\OADJtrue} -\DeclareHtAdj{none}{\CADJfalse\OADJfalse} -\DeclareHtAdj{nocaption}{\CADJfalse} -\DeclareHtAdj{noobject}{\OADJfalse} -\newif\ifCADJ -\newif\ifOADJ -\DeclareFROpt{valign}{\@FB@vpos{#1}} -\newcommand\@FB@vpos[1]{% - \if#1t\def\FBafil{}\def\FBbfil{\vss}\else - \if#1b\def\FBafil{\vss}\def\FBbfil{}\else - \if#1c\def\FBafil{\vskip0ptplus1fillminus1000pt}% - \def\FBbfil{\vskip0ptplus1fillminus1000pt}\else - \if#1s\def\FBafil{\vskip0ptminus1000pt}% - \def\FBbfil{\vskip0ptminus1000pt}% - \fi\fi\fi\fi} -\@ifdefinable\FR@iffacing{\let\FR@iffacing\@secondoftwo} -\DeclareFROpt{facing}[1]{\flrow@setbool{facing}{#1}} -\newcommand\FB@facing{} -\DeclareFROpt{margins}{\flrow@FBAlign{#1}} -\newcommand*\flrow@FBAlign[1]{% - \@ifundefined{flrow@mj@#1}% - {\flrow@error{Undefined float alignment `#1'}}% - {\@nameuse{flrow@mj@#1}}} -\newcommand*\DeclareMarginSet[2]{% - \global\@namedef{flrow@mj@#1}{#2}} -\@onlypreamble\DeclareMarginSet -\newskip\LTleft\newskip\LTright -\DeclareMarginSet{centering}{\setfloatmargins{\hfill}{\hfill}% - \LTleft=\fill \LTright=\fill} -\DeclareMarginSet{raggedright}{\setfloatmargins{}{\hfil}% - \LTleft=\z@ \LTright=\fill} -\DeclareMarginSet{raggedleft}{\setfloatmargins{\hfil}{}% - \LTleft=\fill \LTright=\z@} -\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}% - } -\DeclareMarginSet{hangoutside}{\setfloatmargins - *{\hskip\leftskip}{\hskip-\marginparwidth\hskip-\marginparsep\hskip\rightskip}% - } -\newcommand\flrow@mj@default{\flrow@mj@centering} -\newcommand\floatfacing{\@ifstar - {\@FC@hpos\floatfacing@}{\FB@facing\floatfacing@}} -\newcommand\floatfacing@[2]{\ifodd\count@#1\else#2\fi} -\newcommand\floatboxmargins{\def\FR@tmp{FB}\FB@mset} -\newcommand\floatrowmargins{\def\FR@tmp{FR}\FB@mset} -\newcommand\floatcapbesidemargins{\def\FR@tmp{FC}\FB@mset} -\newcommand\FB@mset{\@ifstar{\FB@mset@}{\FB@@mset}} -\newcommand\FB@mset@[2]{% - \def\FB@facing{\let\FR@iffacing\@firstoftwo\count@\c@FBcnt}% - \@namedef{\FR@tmp leftmargin}{\floatfacing{#1}{#2}}% - \@namedef{\FR@tmp rightmargin}{\floatfacing{#2}{#1}}} -\newcommand\FB@@mset[2]{\def\FB@facing{}% - \@namedef{\FR@tmp leftmargin}{#1}\@namedef{\FR@tmp rightmargin}{#2}} -\newcommand\setfloatmargins{\@ifstar\FB@allset@\FB@@allset} -\newcommand\FB@allset@[2]{% - \def\FR@tmp{FR}\FB@mset@{#1}{#2}% - \def\FR@tmp{FB}\FB@mset@{#1}{#2}% - \def\FR@tmp{FC}\FB@mset@{#1}{#2}} -\newcommand\FB@@allset[2]{% - \def\FR@tmp{FR}\FB@@mset{#1}{#2}% - \def\FR@tmp{FB}\FB@@mset{#1}{#2}% - \def\FR@tmp{FC}\FB@@mset{#1}{#2}} -\setfloatmargins\hfill\hfill -\DeclareFROpt{objectset}{\flrow@FBoAlign{#1}} -\DeclareFROpt{justification}{\flrow@FBoAlign{#1}} -\let\DeclareObjectSet\DeclareCaptionJustification -\@onlypreamble\DeclareObjectSet -\newcommand*\flrow@FBoAlign[1]{% - \@ifundefined{caption@hj@#1}% - {\flrow@error{Undefined object setting `#1'}}% - {\expandafter\let\expandafter\floatobjectset - \csname caption@hj@#1\endcsname}} -\newcommand*\floatobjectset{\centering} -\DeclareFROpt{floatwidth}{\flrow@FBo@wd{#1}} -\@ifdefinable\FC@ifo@fil{\let\FC@ifo@fil\@secondoftwo} -\newcommand\filFCOhsize{\let\FC@ifo@fil\@firstoftwo} -\newcommand\nofilFCOhsize{\let\FC@ifo@fil\@secondoftwo} -\newcommand\flrow@setwd{\relax} -\newcommand\flrow@FBo@wd[1]{% - \caption@ifinlist{#1}{none,sidefil}{\filFCOhsize - }{\nofilFCOhsize\def\flrow@setwd{\@tempdima=#1}}} -\DeclareFROpt{floatrowsep}{\flrow@setFRsep\floatrowsep{#1}} -\DeclareFROpt{subfloatrowsep}{\flrow@setFRsep\subfloatrowsep{#1}} -\DeclareFROpt{capbesidesep}{\flrow@setFRsep\floatcapbesidesep{#1}} -\let\DeclareFloatSeparators\DeclareCaptionLabelSeparator -\@onlypreamble\DeclareFloatSeparators -\newcommand*\flrow@setFRsep[2]{% - \@ifundefined{caption@lsep@#2}% - {\flrow@error{Undefined float separator `#2'}}% - {\expandafter\let\expandafter#1\csname caption@lsep@#2\endcsname}} -\DeclareFloatSeparators{columnsep}{\hskip\columnsep} -\DeclareFloatSeparators{qquad}{\qquad} -\DeclareFloatSeparators{fil}{\hskip\columnsep plus1fil} -\DeclareFloatSeparators{fill}{\hskip\columnsep plus1fill} -\newcommand\floatrowsep{\hskip\columnsep} -\newcommand\floatcapbesidesep{\hskip\columnsep} -\DeclareFROpt{precode}{\flrow@FBrule\@@FRabove\@@FBabove{#1}} -\DeclareFROpt{rowprecode}{\flrow@FRrule\@@FRabove\@@FBabove{#1}} -\DeclareFROpt{midcode}{\flrow@FBskip{#1}} -\DeclareFROpt{postcode}{\flrow@FBrule\@@FRbelow\@@FBbelow{#1}} -\DeclareFROpt{rowpostcode}{\flrow@FRrule\@@FRbelow\@@FBbelow{#1}} -\newcommand\DeclareFloatVCode[2]{\@namedef{flrow@FBr@#1}{#2}} -\@onlypreamble\DeclareFloatVCode -\newcommand*\flrow@FBrule[3]{% - \@ifundefined{flrow@FBr@#3}% - {\flrow@error{Undefined rule `#3'}}% - {\let#1\empty - \expandafter\let\expandafter#2\csname flrow@FBr@#3\endcsname}} -\newcommand*\flrow@FRrule[3]{% - \@ifundefined{flrow@FBr@#3}% - {\flrow@error{Undefined rule `#3'}}% - {\def#2{\FBiffloatrow\relax{\@nameuse{flrow@FBr@#3}}}% - \expandafter\let\expandafter#1\csname flrow@FBr@#3\endcsname}} -\newcommand*\flrow@FBskip[1]{% - \@ifundefined{flrow@FBr@#1}% - {\flrow@error{Undefined rule `#1'}}% - {\expandafter\let\expandafter\@@FBskip\csname flrow@FBr@#1\endcsname}} -\DeclareFloatVCode{none}{} -\DeclareFloatVCode{thickrule}{\par\rule{\hsize}{.8pt}\vskip2pt\par} -\DeclareFloatVCode{rule}{\vskip2pt\hrule\vskip2pt} -\DeclareFloatVCode{lowrule}{\par\vskip2pt\rule\hsize\@wholewidth\par} -\DeclareFloatVCode{captionskip}{\vskip\captionskip} -\newcommand\FBstyle@reset{\let\FRifFBOX\@secondoftwo\OADJfalse\CADJfalse\capbot - \def\@@FBskip{\vskip\captionskip}\def\@@FRabove{}\def\@@FRbelow{}% - \def\@@FBabove{}\def\@@FBbelow{}% - \def\FB@Bset{}\def\FB@frame{}\def\FBo@frame{}\def\FR@frame{}% - \def\FBo@wadj{}\def\FBo@hadj{}\def\FB@wadj{}\def\FB@hadj{}\def\FR@wadj{}\def\FR@hadj{}} -\newcommand\@@FBskip{\vskip\captionskip} -\@ifdefinable\@@FRabove{\def\@@FRabove{}} -\@ifdefinable\@@FRbelow{\def\@@FRbelow{}} -\@ifdefinable\@@FBabove{\def\@@FBabove{}} -\@ifdefinable\@@FBbelow{\def\@@FBbelow{}} -\@ifdefinable\FB@frame {\def\FB@frame {}} -\@ifdefinable\FBo@frame{\def\FBo@frame{}} -\@ifdefinable\FR@frame {\def\FR@frame {}} -\@ifdefinable\FBo@wadj {\def\FBo@wadj {}} -\@ifdefinable\FBo@hadj {\def\FBo@hadj {}} -\@ifdefinable\FB@wadj {\def\FB@wadj {}} -\@ifdefinable\FB@hadj {\def\FB@hadj {}} -\@ifdefinable\FR@wadj {\def\FR@wadj {}} -\@ifdefinable\FR@hadj {\def\FR@hadj {}} -\@ifdefinable\FB@Bset {\def\FB@Bset {}} -\DeclareFROpt{framestyle}{\@ifundefined{FB@#1@frame}% - {\let\FRifFBOX\@secondoftwo}{\let\FRifFBOX\@firstoftwo\def\FB@B@{#1}}} -\DeclareFROpt{framearound}{\flrow@fr@round{#1}} -\newcommand*\flrow@fr@round[1]{% - \caption@ifinlist{#1}{object,contents}{\let\FRifFBOX\@firstoftwo - \def\FB@BO@{FBo}% - }{\caption@ifinlist{#1}{floatbox,all}{\let\FRifFBOX\@firstoftwo - \def\FB@BO@{FB}% - }{\caption@ifinlist{#1}{row}{\let\FRifFBOX\@firstoftwo - \def\FB@BO@{FR}% - }{\caption@ifinlist{#1}{none}{\let\FRifFBOX\@secondoftwo - }{\flrow@error{Undefined framed object `#1'}% - }}}}} -\@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{} -\DeclareFROpt{rowfill}[0]{\flrow@setbool{ROWFILL}{#1}} -\DeclareFROpt{frameset}{\def\FB@Bset{#1}} -\newcommand\FB@BO@{FBo}\newcommand\FB@B@{} -\newcommand\@@setframe{% - \@namedef{\FB@BO@ @hadj}{\@nameuse{FB@\FB@B@ @reset}\FB@Bset - \@nameuse{FB@\FB@B@ @adj}}% - \@namedef{\FB@BO@ @wadj}{\FR@ifFIT{\@nameuse{FB@\FB@B@ @reset}\FB@Bset - \@nameuse{FB@\FB@B@ @adj}}\relax}% - \@namedef{\FB@BO@ @frame}{\@nameuse{FB@\FB@B@ @reset}\FB@Bset - \@nameuse{FB@\FB@B@ @frame}}% - \ifx\FR@frame\empty\else%\ifx\FB@frame\empty - \def\FB@hadj{\@nameuse{FB@\FB@B@ @reset}\FB@Bset - \@nameuse{FB@\FB@B@ @adj}}% - \def\FB@wadj{\FR@ifFIT{\@nameuse{FB@\FB@B@ @reset}\FB@Bset - \@nameuse{FB@\FB@B@ @adj}}\relax}% - \def\FB@frame{\@nameuse{FB@\FB@B@ @reset}\FB@Bset - \@nameuse{FB@\FB@B@ @frame}}% - \fi%\fi - } -\@ifdefinable\FRifFBOX{\let\FRifFBOX\@secondoftwo} -\newcommand\FB@fbox@frame[1]{\hbox{% - \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}\fbox{#1}% - \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}}\ignorespaces} -\newcommand\FB@fbox@adj{\dimen@=2\fboxsep\advance\dimen@2\fboxrule} -\newcommand\FB@fbox@reset{\fboxsep3\p@\fboxrule.4\p@} -\newcommand\FB@colorbox@frame[1]{\hbox{% - \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}\FB@fcolorbox{#1}% - \FR@ifFIT\relax{\kern-\fboxrule\kern-\fboxsep}}\ignorespaces} -\@ifdefinable\FB@colorbox@adj{\let\FB@colorbox@adj\FB@fbox@adj} -\newcommand\FB@colorbox@reset{\fboxsep3\p@\fboxrule.4\p@} -\newcommand\FB@fcolorbox{\fbox} -\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@} -\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@} -\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}} -\newcommand\flrow@ll@col@put{} -\newcommand\flrow@ul@col@put{} -\newcommand\flrow@lr@col@put{} -\newcommand\flrow@ur@col@put{} -\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}% - } -\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}% - }}} -\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}{}{\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} -\DeclareFROpt{captionskip}{\def\captionskip{#1}% - \setlength\abovecaptionskip{#1}} -\DeclareFROpt{footskip}{\def\floatfootskip{#1}} -\newcommand\captionskip{10\p@} -\newcommand\floatfootskip{\skip\@mpfootins} -\DeclareFROpt{footnoterule}{\flrow@footrule{#1}} -\newcommand\DeclareFloatFootnoterule[2]{% - \long\@namedef{flrow@fnrule@#1}{#2}} -\newcommand*\flrow@footrule[1]{% - \@ifundefined{flrow@fnrule@#1}% - {\flrow@error{Undefined footnoterule `#1'}}% - {\let\@@FRabove\empty - \expandafter\let\expandafter\FBfootnoterule\csname - flrow@fnrule@#1\endcsname}} -\@onlypreamble\DeclareFloatFootnoterule -\DeclareFloatFootnoterule{normal}{\kern-3\p@ - \@tempdima.4\columnwidth - \hrule\@width\@tempdima\kern2.6\p@} -\DeclareFloatFootnoterule{limited}{\kern-3\p@ - \@tempdima.4\columnwidth - \ifdim\@tempdima>\frulemax\@tempdima=\frulemax\fi - \hrule\@width\@tempdima\kern2.6\p@} -\newcommand\frulemax{1in} -\DeclareFloatFootnoterule{fullsize}{\kern-3\p@ - \hrule\@width\hsize\kern2.6\p@} -\DeclareFloatFootnoterule{none}{} -\@ifdefinable\FBfootnoterule{\let\FBfootnoterule\footnoterule} -\@ifdefinable\FR@iffancy{\let\FR@iffancy\@secondoftwo} -\DeclareFROpt{fancyboxes}{\flrow@setbool{fancy}{#1}} -\newcommand\DeclareFNOpt{% - \@ifstar{\flrow@declfnopt\AtBeginDocument} - {\flrow@declfnopt\@gobble}} -\newcommand*\flrow@declfnopt[2]{% - #1{\undefine@key{newfloat}{#2}}\define@key{newfloat}{#2}} -\@onlypreamble\DeclareFNOpt -\@ifdefinable\flrow@types{\newtoks\flrow@types} -\newcommand\DeclareNewFloatType[2]{\def\FB@captype{#1}% - \expandafter\edef\csname ftype@#1\endcsname{\the\c@float@type}% - \addtocounter{float@type}{\value{float@type}}% - \@namedef{#1name}{#1}\newcounter{#1}% - \expandafter\edef\csname fnum@#1\endcsname - {\expandafter\noexpand\csname #1name\endcsname\nobreakspace - \expandafter\noexpand\csname the#1\endcsname}% - \@namedef{the#1}{\arabic{#1}}\flnew@ext{lo#1}\@namedef{fps@#1}{tbp}% - \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}% - \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax - \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}% - \@tempa} -\@onlypreamble\DeclareNewFloatType -\DeclareFNOpt*{placement}{\flnew@fps{#1}} -\newcommand\flnew@fps[1]{\@namedef{fps@\FB@captype}{#1}} -\@onlypreamble\flnew@fps -\DeclareFNOpt*{name}{\flnew@fname{#1}} -\newcommand\flnew@fname[1]{\@namedef{\FB@captype name}{#1}} -\@onlypreamble\flnew@fname -\DeclareFNOpt*{fileext}{\flnew@ext{#1}} -\newcommand\flnew@ext[1]{\@namedef{ext@\FB@captype}{#1}% - \let\float@do=\relax - \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#1}}}% - \@tempa} -\@onlypreamble\flnew@ext -\DeclareFNOpt*{within}{\flnew@within{#1}} -\newcommand\flnew@within[1]{\@addtoreset{\FB@captype}{#1}% - \expandafter\edef\csname the\FB@captype\endcsname{% - \expandafter\noexpand\csname - the#1\endcsname.\noexpand\arabic{\FB@captype}}} -\@onlypreamble\flnew@within -\def\ProcessOptionsWithKV#1{% - \let\@tempc\relax - \let\FR@tmp\@empty - \@for\CurrentOption:=\@classoptionslist\do{% - \@ifundefined{KV@#1@\CurrentOption}% - {}% - {% - \@ifundefined{KV@#1@\CurrentOption @default}{% - \PackageInfo{#1}{Global option `\CurrentOption' ignored}% - }{% - \PackageInfo{#1}{Global option `\CurrentOption' processed}% - \edef\FR@tmp{\FR@tmp,\CurrentOption,}% - \@expandtwoargs\@removeelement\CurrentOption - \@unusedoptionlist\@unusedoptionlist - }% - }% - }% - \edef\FR@tmp{% - \noexpand\caption@setkeys[floatrow]{#1}{% - \FR@tmp\@ptionlist{\@currname.\@currext}% - }% - }% - \FR@tmp - \let\CurrentOption\@empty - \AtEndOfPackage{\let\@unprocessedoptions\relax}} -\ProcessOptionsWithKV{floatrow} -\FR@iffancy{\RequirePackage{fr-fancy}}\relax -\let\ProcessOptionsWithKV\undefined -\AtBeginDocument{ - \FR@ifrawfloats - {\let\FR@tmp\flrow@Raw@restyle - }{\flrow@restyle{table}\flrow@restyle{figure}% - \let\FR@tmp\flrow@restyle - }\the\flrow@types - \@onlypreamble\flrow@restyle\@onlypreamble\flrow@Raw@restyle - \flrow@types={}} -\AtBeginDocument{% -\@ifundefined{sf@@@subfloat}{\@tempswafalse}{\@tempswatrue} -\if@tempswa\RequirePackage{fr-subfig}\fi} -\AtBeginDocument{% -\@ifundefined{LT@array}{\@tempswafalse}{\@tempswatrue} -\if@tempswa\RequirePackage{fr-longtable}\fi} -\endinput -%% -%% End of file `floatrowpf.sty'. diff --git a/howto/howto.tex b/howto/howto.tex index 2e95375..90abb14 100644 --- a/howto/howto.tex +++ b/howto/howto.tex @@ -361,7 +361,7 @@ Other types of systems have well-known ways of locating files by filename. \section{Whose Book Is This?} \label{sec:howto:Whose Book Is This?} -\begin{figure*}[tbp]\RawFloats +\begin{figure*}[tbp] { \scriptsize \begin{verbbox} @@ -379,7 +379,7 @@ Other types of systems have well-known ways of locating files by filename. \label{fig:howto:Creating a Up-To-Date PDF} \end{figure*} -\begin{figure*}[tbp]\RawFloats +\begin{figure*}[tbp] { \scriptsize \begin{verbbox} diff --git a/perfbook.tex b/perfbook.tex index 16d30dd..cda014c 100644 --- a/perfbook.tex +++ b/perfbook.tex @@ -80,10 +80,6 @@ \renewcommand{\path}[1]{\nolinkurl{#1}} % workaround of interference with mathastext }{} -\usepackage{floatrowpf} % Use customized floatrow -\DeclareNewFloatType{listing}{placement=htbp,name=Listing,within=chapter,fileext=lst} -\usepackage{booktabs} % For better looking tables - \usepackage{bm} % for bold math mode fonts --- should be after math mode font choice \IfLmttForCode{ -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe perfbook" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html