2017/07/31 12:26、Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> のメッセージ: > On Fri, Jul 28, 2017 at 06:58:07PM +0900, Akira Yokosawa wrote: >>> From 53ff86011be07a62dba37a5bef56f04f25531dd1 Mon Sep 17 00:00:00 2001 >> From: Akira Yokosawa <akiyks@xxxxxxxxx> >> Date: Thu, 20 Jul 2017 23:34:58 +0900 >> Subject: [PATCH 03/10] Localize floatrow.sty >> >> The "floatrow" package conflicts with two-column layout. >> A possible workaround was posted at [1] and it seems to work >> in perfbook. Before the change, import the style file as of v0.3b >> with trailing white spaces removed. >> >> [1] https://tex.stackexchange.com/questions/133127/ > > If I understand the license correctly, we have to use a different name > due to having modified the file. Yes. I did the rename in the next commit. By splitting them, it would be easier to see the workaround. Or, do we need to keep the trailing blanks at this point? > Or has this change (commenting out > \textwidth\columnwidth) been applied upstream? No, the workaround looks like only a hint. Again, two-column layout tend to have little attention. > Or does changing the > name mean that the fix is ineffective? It is effective for perfbook AFAICS. Thanks, Akira (from mobile, might be QP encoded) > > (I applied the first two, thank you!) > > Thanx, Paul > >> Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> >> --- >> floatrow.sty | 1472 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 1472 insertions(+) >> create mode 100644 floatrow.sty >> >> diff --git a/floatrow.sty b/floatrow.sty >> new file mode 100644 >> index 0000000..18ef28a >> --- /dev/null >> +++ b/floatrow.sty >> @@ -0,0 +1,1472 @@ >> +%% >> +%% 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{floatrow} >> + [2008/08/02 v0.3b floatrow: float package extension] >> +\@ifundefined{float@caption}{% >> + \@ifundefined{rotfloat@float}{}% >> + {\PackageError{floatrow}{Do not use rotfloat package with floatrow.\MessageBreak >> + The latter will be skipped}{}% >> + \@namedef{opt@xxxxxxxxxxxx}{}\endinput}}% >> + {\PackageError{floatrow}{Do not use float package with floatrow.\MessageBreak >> + The latter will be skipped}{}% >> + \@namedef{opt@xxxxxxxxxxxx}{}\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 >> + {floatrow}{For a successful cooperation we need at least\MessageBreak >> + version `2007/04/11 v3.0q' of package caption,\MessageBreak >> + but only version\MessageBreak >> + `\csname ver@caption.\@pkgextension\endcsname'\MessageBreak >> + is available}\@eha\endinput} >> +\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{floatrow} >> +\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\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{floatrow}{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{floatrow}{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{floatrow}{Redefining \string#1}}% >> + \@ifnextchar[{\FB@nc{#1}{#2}}{\FB@nc{#1}{#2}[]}} >> +\@ifdefinable\FB@nc{}\@ifdefinable\FB@@nc{} >> +\def\FB@nc#1#2[#3]{% >> + \@ifnextchar[{\FB@@nc{#1}{#2}[#3]}{\FB@@nc{#1}{#2}[#3][]}} >> +\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 `floatrow.sty'. >> -- >> 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