You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
680 lines
21 KiB
680 lines
21 KiB
%%
|
|
%% This is file `subfig.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% subfig.dtx (with options: `package')
|
|
%%
|
|
%% Copyright © 2003, 2004, 2005 Steven Douglas Cochran.
|
|
%%
|
|
%% This file is NOT the source for the subfig package, because almost
|
|
%% all comments have been stripped from it. It is NOT the preferred form
|
|
%% of the subfig package for making modifications to it.
|
|
%%
|
|
%% Therefore you can NOT redistribute and/or modify THIS file. You can
|
|
%% however redistribute the complete source package (README, Makefile,
|
|
%% subfig.dtx, subfig.ins, and subfig.pdf as well as the test/example
|
|
%% files test[1-7].tex) and/or modify it under the terms of the LaTeX Project
|
|
%% Public License, either version 1.3 of this license or (at your option)
|
|
%% any later version.
|
|
%% The latest version of this license is in
|
|
%% http://www.latex-project.org/lppl.txt
|
|
%% and version 1.3 or later is part of all distributions of LaTeX
|
|
%% version 2003/12/01 or later.
|
|
%%
|
|
%% This work has the LPPL maintenance status "author-maintained".
|
|
%%
|
|
%% This Current Maintainer of this work is Steven Douglas Cochran.
|
|
%%
|
|
%% This work consists of all files listed under "MANIFEST" in the
|
|
%% README file distributed with the subfig package.
|
|
%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%% @LaTeX-style-file{
|
|
%% author = "Steven Douglas Cochran",
|
|
%% version = "1.3",
|
|
%% date = "2005/07/05",
|
|
%% time = "04:19:08",
|
|
%% filename = "subfig.sty",
|
|
%% address = "Digital Mapping Laboratory,
|
|
%% School of Computer Science
|
|
%% Carnegie-Mellon University,
|
|
%% 5000 Forbes Avenue
|
|
%% Pittsburgh, PA 15213-3890
|
|
%% USA",
|
|
%% telephone = "+1 412.268.5654",
|
|
%% fax = "+1 412.268.5576",
|
|
%% email = "cochran@ieee.org",
|
|
%% codetable = "ISO/ASCII",
|
|
%% keywords = "LaTeX, float, sub-float, continued figure",
|
|
%% supported = "yes",
|
|
%% abstract = "LaTeX package for providing support for the
|
|
%% inclusion of small, `sub', figures and tables. It
|
|
%% simplifies the positioning, captioning and
|
|
%% labeling of them within a single figure or table
|
|
%% environment. In addition, this package allows
|
|
%% such sub-captions to be written to the List of
|
|
%% Figures or List of Tables if desired."
|
|
%% }
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
|
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
|
|
\ProvidesPackage{subfig}[2005/06/28 ver: 1.3 subfig package]
|
|
\def\sf@floatfix#1#2{%
|
|
\ifx#1#2%
|
|
\ifx#1\@undefined\else
|
|
\PackageWarningNoLine{subfig}{%
|
|
Your document class has a bad definition^^J
|
|
of \string#1, most likely^^J
|
|
\string\let\string#1=\string#2^^J
|
|
which has now been changed to^^J
|
|
\string\def\string#1{\string#2}^^J
|
|
because otherwise subsequent changes to \string#2^^J
|
|
(like done by several packages changing float behaviour)^^J
|
|
can't take effect on \string#1.^^J
|
|
Please complain to your document class author}%
|
|
\def#1{#2}%
|
|
\fi
|
|
\fi}
|
|
\begingroup
|
|
\def\next#1#2{%
|
|
\endgroup
|
|
\sf@floatfix\endfigure\end@float
|
|
\sf@floatfix\endtable\end@float
|
|
\sf@floatfix#1\end@dblfloat
|
|
\sf@floatfix#2\end@dblfloat}
|
|
\expandafter\next\csname endfigure*\expandafter\endcsname
|
|
\csname endtable*\endcsname
|
|
\RequirePackage{keyval}[1999/03/16]
|
|
\def\sf@ifinlist#1#2{%
|
|
\let\next\@secondoftwo
|
|
\edef\caption@tempa{#1}%
|
|
\@for\caption@tempb:={#2}\do{%
|
|
\ifx\caption@tempa\caption@tempb
|
|
\let\next\@firstoftwo
|
|
\fi}%
|
|
\next}
|
|
\def\sf@setbool#1#2{%
|
|
\sf@ifinlist{#2}{1,true,yes,on}{%
|
|
\@nameuse{#1true}%
|
|
}{\sf@ifinlist{#2}{0,false,no,off}{%
|
|
\@nameuse{#1false}%
|
|
}{%
|
|
\PackageError{subfig}{Undefined boolean value `#2'}{\@ehc}%
|
|
}}}
|
|
\def\sf@split#1=#2=#3\relax{%
|
|
\KV@@sp@def\@tempa{#1}%
|
|
\ifx\@tempa\@empty
|
|
\else\ifx\@tempa\KV@caption
|
|
\sf@usecaptionfoundtrue
|
|
\ifx\@empty#3\@empty
|
|
\sf@usecaptiontrue
|
|
\else
|
|
\KV@@sp@def\@tempb{#2}%
|
|
\sf@setbool{sf@usecaption}{\@tempb}%
|
|
\fi
|
|
\fi\fi}
|
|
\def\KV@caption{caption}
|
|
\newif\ifsf@usecaptionfound
|
|
\sf@usecaptionfoundfalse
|
|
\newif\ifsf@usecaption
|
|
\sf@usecaptiontrue
|
|
\edef\sf@temp{\@ptionlist{\@currname.\@currext}}
|
|
\let\caption@tempa\@empty
|
|
\@for\CurrentOption:=\sf@temp\do{%
|
|
\expandafter\sf@split\CurrentOption==\relax}
|
|
\ifsf@usecaption
|
|
\@ifpackageloaded{caption}{%
|
|
\ifsf@usecaptionfound
|
|
\PackageWarning{subfig}{%
|
|
You cannot set the `caption' option here if the\MessageBreak
|
|
caption package is already loaded (the option\MessageBreak
|
|
`caption=true' is ignored)}%
|
|
\fi
|
|
}{%
|
|
\RequirePackage{caption}[2005/06/26]
|
|
}%
|
|
\else
|
|
\RequirePackage{caption3}[2005/06/11]
|
|
\fi
|
|
\def\sf@ifpositiontop{%
|
|
\ifx\caption@position\@firstoftwo \let\next\@firstoftwo \else
|
|
\let\next\@secondoftwo \fi \next}
|
|
\def\DeclareCaptionListOfFormat#1{%
|
|
\@namedef{caption@lstfmt@#1}##1##2}
|
|
\@onlypreamble\DeclareCaptionListOfFormat
|
|
\def\caption@setlistofformat#1{%
|
|
\@ifundefined{caption@lstfmt@#1}{%
|
|
\PackageError
|
|
{subfig}%
|
|
{Undefined caption list-of format `#1'}%
|
|
{\caption@eh}%
|
|
}{%
|
|
\expandafter\let\expandafter\caption@lstfmt
|
|
\csname caption@lstfmt@#1\endcsname}}
|
|
\DeclareCaptionListOfFormat{empty}{}
|
|
\DeclareCaptionListOfFormat{simple}{#1#2}
|
|
\DeclareCaptionListOfFormat{parens}{#1(#2)}
|
|
\DeclareCaptionListOfFormat{subsimple}{#2}
|
|
\DeclareCaptionListOfFormat{subparens}{(#2)}
|
|
\DeclareCaptionOption{listofformat}{\caption@setlistofformat{#1}}
|
|
\def\sf@indent{3.8em}
|
|
\define@key{caption}{listofindent}[3.8em]{\def\sf@indent{#1}}
|
|
\def\sf@numwidth{2.5em}
|
|
\define@key{caption}{listofnumwidth}[2.5em]{\def\sf@numwidth{#1}}
|
|
\def\DeclareSubrefFormat#1{%
|
|
\@namedef{caption@subreffmt@#1}##1##2##3##4}
|
|
\@onlypreamble\DeclareSubrefFormat
|
|
\def\caption@setsubrefformat#1{%
|
|
\@ifundefined{caption@subreffmt@#1}{%
|
|
\PackageError
|
|
{subfig}%
|
|
{Undefined subref format `#1'}%
|
|
{\caption@eh}%
|
|
}{%
|
|
\expandafter\let\expandafter\caption@subreffmt
|
|
\csname caption@subreffmt@#1\endcsname}}
|
|
\DeclareSubrefFormat{empty}{}
|
|
\DeclareSubrefFormat{simple}{#1#2}
|
|
\DeclareSubrefFormat{parens}{#1(#2)}
|
|
\DeclareSubrefFormat{subsimple}{#2}
|
|
\DeclareSubrefFormat{subparens}{(#2)}
|
|
\DeclareCaptionOption{subrefformat}{\caption@setsubrefformat{#1}}
|
|
\newcounter{KVtest}
|
|
\def\KV@config{config}
|
|
\def\sf@split#1=#2=#3\relax{%
|
|
\setcounter{KVtest}{1}%
|
|
\KV@@sp@def\@tempa{#1}%
|
|
\ifx\@tempa\@empty
|
|
\else\ifx\@tempa\KV@caption
|
|
\setcounter{KVtest}{2}%
|
|
\else\ifx\@tempa\KV@config
|
|
\setcounter{KVtest}{2}%
|
|
\expandafter\let\expandafter\@tempc
|
|
\csname\KV@prefix\@tempa\endcsname
|
|
\ifx\@tempc\relax
|
|
\KV@errx
|
|
{\@tempa\space undefined}%
|
|
\else\ifx\@empty#3\@empty
|
|
\KV@default
|
|
\else
|
|
\KV@@sp@def\@tempb{#2}%
|
|
\expandafter\@tempc\expandafter{\@tempb}\relax
|
|
\fi\fi
|
|
\fi\fi\fi}
|
|
\def\ProcessPackageOptions{%
|
|
\def\KV@prefix{KV@\@currname @}%
|
|
\let\@tempc\relax
|
|
\let\caption@tempa\@empty
|
|
\@for\CurrentOption:=\@classoptionslist\do{%
|
|
\@ifundefined{KV@caption@\CurrentOption}{}{%
|
|
\edef\caption@tempa{\caption@tempa,\CurrentOption,}%
|
|
\@expandtwoargs\@removeelement\CurrentOption
|
|
\@unusedoptionlist\@unusedoptionlist}}%
|
|
\edef\caption@tempb{\@ptionlist{\@currname.\@currext}}%
|
|
\@for\CurrentOption:=\caption@tempb\do{%
|
|
\expandafter\sf@split\CurrentOption==\relax
|
|
\ifnum\c@KVtest<2\relax
|
|
\edef\caption@tempa{\caption@tempa,\CurrentOption,}%
|
|
\fi}%
|
|
\edef\caption@tempa{%
|
|
\noexpand\captionsetup[subfloat]{\caption@tempa}}%
|
|
\caption@tempa}
|
|
\def\@dottedxxxline#1#2#3#4#5#6#7{%
|
|
\begingroup
|
|
\@ifundefined{caption@setfloattype}%
|
|
\caption@settype
|
|
\caption@setfloattype
|
|
{#1}
|
|
\caption@settype{subfloat}%
|
|
\caption@settype{sub#1}%
|
|
\ifnum #3>\@nameuse{c@#2depth}\else
|
|
\@dottedtocline{\z@}{#4}{#5}{#6}{#7}%
|
|
\fi
|
|
\endgroup}
|
|
\newif\ifmaincaptiontop
|
|
\def\newsubfloat{%
|
|
\@ifnextchar[ %] bracket matching
|
|
{\@newsubfloat}
|
|
{\@newsubfloat[]}}
|
|
\def\@newsubfloat[#1]#2{%
|
|
\@ifundefined{c@sub#2}{%
|
|
\newcounter{sub#2}[#2]
|
|
\newcounter{sub#2@save}%
|
|
\@namedef{sub#2name}{}%
|
|
\@namedef{p@sub#2}{\@nameuse{the#2}}%
|
|
\@namedef{thesub#2}{\alph{sub#2}}%
|
|
\@namedef{ext@sub#2}{\@nameuse{ext@#2}}%
|
|
\@namedef{l@sub#2}{%
|
|
\@dottedxxxline{#2}%
|
|
{\@nameuse{ext@sub#2}}{2}{\sf@indent}{\sf@numwidth}}%
|
|
\@ifundefined{c@\@nameuse{ext@#2}depth}{%
|
|
\expandafter\newcounter\expandafter{\@nameuse{ext@#2}depth}%
|
|
\expandafter\addtocounter\expandafter{\@nameuse{ext@#2}depth}\@ne}{}%
|
|
\@namedef{KV@caption@\@nameuse{ext@#2}depth@default\expandafter}%
|
|
\expandafter{\csname KV@caption@\@nameuse{ext@#2}depth\endcsname{2}}%
|
|
\@namedef{KV@caption@\@nameuse{ext@#2}depth}##1{%
|
|
\setcounter{\@nameuse{ext@#2}depth}{##1}}%
|
|
\edef\sf@counterlist{%
|
|
\@ifundefined{sf@counterlist}{}%
|
|
{\sf@counterlist,}sub#2}%
|
|
\captionsetup[sub#2]{#1}%
|
|
}{%
|
|
\PackageWarning{subfig}{%
|
|
The sub#2\space type is already defined.}%
|
|
}}
|
|
\@onlypreamble\@newsubfloat
|
|
\@onlypreamble\newsubfloat
|
|
\newskip\sf@farskip
|
|
\sf@farskip 10\p@
|
|
\define@key{caption}{farskip}[10\p@]{\sf@farskip=#1}
|
|
\newdimen\sf@captopadj
|
|
\sf@captopadj \z@
|
|
\define@key{caption}{topadjust}[\z@]{\sf@captopadj=#1}
|
|
\newskip\sf@capskip
|
|
\sf@capskip 4\p@
|
|
\define@key{caption}{captionskip}[4\p@]{\sf@capskip=#1}
|
|
\newskip\sf@nearskip
|
|
\sf@nearskip \z@
|
|
\define@key{caption}{nearskip}[5\p@]{\sf@nearskip=#1}
|
|
\let\sf@old@caption\@caption
|
|
\def\@caption{\caption@}
|
|
\captionsetup[subfloat]{%
|
|
font=footnotesize,
|
|
labelformat=parens,labelsep=space,
|
|
listofformat=subparens,subrefformat=subsimple}
|
|
\define@key{subfig}{config}[subfig]{%
|
|
\InputIfFileExists{#1.cfg}{%
|
|
\typeout{***********************************************^^J%
|
|
* Subfig configuration file #1.cfg used ^^J%
|
|
***********************************************}%
|
|
}{%
|
|
\PackageWarning{subfig}{Configuration file #1.cfg not found}}%
|
|
}
|
|
\ProcessPackageOptions
|
|
\@ifundefined{c@subfigure}{\newsubfloat{figure}}{}
|
|
\@ifundefined{c@subtable}{\newsubfloat{table}}{}
|
|
\AtEndOfPackage{%
|
|
\global\let\ifsf@usecaption\relax
|
|
\global\let\sf@usecaptiontrue\relax
|
|
\global\let\sf@usecaptionfalse\relax
|
|
\global\let\ifsf@usecaptionfound\relax
|
|
\global\let\sf@usecaptionfoundtrue\relax
|
|
\global\let\sf@usecaptionfoundfalse\relax
|
|
\global\let\KV@caption\relax
|
|
\global\let\KV@subfig@caption\relax
|
|
\global\let\KV@subfig@caption@default\relax
|
|
\global\let\KV@config\relax
|
|
\global\let\KV@subfig@config\relax
|
|
\global\let\KV@subfig@config@default\relax
|
|
\global\let\ProcessPackageOptions\relax
|
|
\global\let\@unprocessedoptions\relax
|
|
\let\CurrentOption\@empty
|
|
}
|
|
\newskip\sf@top
|
|
\newskip\sf@bottom
|
|
\def\subfloat{%
|
|
\ifx\@captype\@undefined
|
|
\@latex@error{\noexpand\subfloat outside float}\@ehd
|
|
\expandafter\@gobble
|
|
\else
|
|
\expandafter\@firstofone
|
|
\fi
|
|
{\sf@subfloat}}
|
|
\def\sf@subfloat{%
|
|
\begingroup
|
|
\@ifundefined{caption@setfloattype}%
|
|
\caption@settype
|
|
\caption@setfloattype
|
|
\@captype
|
|
\sf@ifpositiontop{%
|
|
\maincaptiontoptrue
|
|
}{%
|
|
\maincaptiontopfalse
|
|
}%
|
|
\caption@settype{subfloat}%
|
|
\caption@settype{sub\@captype}%
|
|
\let\sf@oldlabel=\label
|
|
\let\label=\subfloat@label
|
|
\ifmaincaptiontop\else
|
|
\advance\@nameuse{c@\@captype}\@ne
|
|
\fi
|
|
\refstepcounter{sub\@captype}%
|
|
\setcounter{sub\@captype @save}{\value{sub\@captype}}%
|
|
\@ifnextchar [% %] match left bracket
|
|
{\sf@@subfloat}%
|
|
{\sf@@subfloat[\@empty]}}
|
|
\long\def\sf@@subfloat[#1]{%
|
|
\@ifnextchar [% %] match left bracket
|
|
{\sf@@@subfloat{sub\@captype}[{#1}]}%
|
|
{\sf@@@subfloat{sub\@captype}[\@empty{#1}][{#1}]}}
|
|
\long\def\sf@@@subfloat#1[#2][#3]#4{%
|
|
\@ifundefined{FBsc@max}{}%
|
|
{\FB@readaux{\let\FBsuboheight\relax}}%
|
|
\@tempcnta=\@ne
|
|
\if@minipage
|
|
\@tempcnta=\z@
|
|
\else\ifdim \lastskip=\z@ \else
|
|
\@tempcnta=\tw@
|
|
\fi\fi
|
|
\ifmaincaptiontop
|
|
\sf@top=\sf@nearskip
|
|
\sf@bottom=\sf@farskip
|
|
\else
|
|
\sf@top=\sf@farskip
|
|
\sf@bottom=\sf@nearskip
|
|
\fi
|
|
\leavevmode
|
|
\setbox\@tempboxa \hbox{#4}%
|
|
\@tempdima=\wd\@tempboxa
|
|
\@ifundefined{FBsc@max}{}%
|
|
{\global\advance\Xhsize-\wd\@tempboxa
|
|
\dimen@=\ht\@tempboxa
|
|
\advance\dimen@\dp\@tempboxa
|
|
\ifdim\dimen@>\FBso@max
|
|
\global\FBso@max\dimen@
|
|
\fi}%
|
|
\vtop\bgroup
|
|
\vbox\bgroup
|
|
\ifcase\@tempcnta
|
|
\@minipagefalse
|
|
\or
|
|
\vskip\sf@top
|
|
\or
|
|
\ifdim \lastskip=\z@ \else
|
|
\@tempskipb\sf@top\relax\@xaddvskip
|
|
\fi
|
|
\fi
|
|
\sf@ifpositiontop{%
|
|
\ifx \@empty#3\relax \else
|
|
\sf@subcaption{#1}{#2}{#3}%
|
|
\vskip\sf@capskip
|
|
\vskip\sf@captopadj
|
|
\fi\egroup
|
|
\hrule width0pt height0pt depth0pt
|
|
\box\@tempboxa
|
|
}{%
|
|
\@ifundefined{FBsc@max}%
|
|
{\box\@tempboxa}%
|
|
{\ifx\FBsuboheight\relax
|
|
\box\@tempboxa
|
|
\else
|
|
\vbox to \FBsuboheight{\FBafil\box\@tempboxa\FBbfil}%
|
|
\fi}%
|
|
\egroup
|
|
\ifx \@empty#3\relax \else
|
|
\vskip\sf@capskip
|
|
\hrule width0pt height0pt depth0pt
|
|
\sf@subcaption{#1}{#2}{#3}%
|
|
\fi
|
|
}%
|
|
\vskip\sf@bottom
|
|
\egroup
|
|
\@ifundefined{FBsc@max}{}%
|
|
{\addtocounter{FRobj}{-1}%
|
|
\ifnum\c@FRobj=0\else
|
|
\subfloatrowsep
|
|
\fi}%
|
|
\ifmaincaptiontop\else
|
|
\global\advance\@nameuse{c@\@captype}\m@ne
|
|
\fi
|
|
\endgroup\ignorespaces}
|
|
\def\sf@updatecaptionlist#1#2#3#4{%
|
|
\xdef\sf@captionlist{%
|
|
\sf@captionlist,%
|
|
{\protect\numberline{\@subcaplabel}\noexpand{\ignorespaces #2}}%
|
|
{#1.#3.#4}}}
|
|
\long\def\sf@subcaption#1#2#3{%
|
|
\ifx \relax#2\relax \else
|
|
\bgroup
|
|
\let\label=\@gobble
|
|
\let\protect=\string
|
|
\def\@subcaplabel{%
|
|
\caption@lstfmt{\@nameuse{p@#1}}{\@nameuse{the#1}}}%
|
|
\sf@updatecaptionlist{#1}{#2}{\the\value{\@captype}}{\the\value{#1}}%
|
|
\egroup
|
|
\fi
|
|
\bgroup
|
|
\ifx \relax#3\relax
|
|
\let\captionlabelsep=\relax
|
|
\fi
|
|
\setbox0\vbox{%
|
|
\hb@xt@\the\@tempdima{%
|
|
\hss
|
|
\parbox[t]{\the\@tempdima}{%
|
|
\caption@make
|
|
{\@nameuse{sub\@captype name}}%
|
|
{\@nameuse{thesub\@captype}}%
|
|
{#3}}%
|
|
\hss}}%
|
|
\@ifundefined{FBsc@max}%
|
|
{\box0}%
|
|
{\dimen@\ht0%
|
|
\advance\dimen@\dp0%
|
|
\ifdim\dimen@>\FBsc@max
|
|
\global\FBsc@max\dimen@
|
|
\fi
|
|
\FB@readaux{\let\FBsubcheight\relax}%
|
|
\ifx\FBsubcheight\relax
|
|
\def\next{\parbox[t]{\the\@tempdima}}%
|
|
\else
|
|
\def\next{\parbox[t][\FBsubcheight][t]{\the\@tempdima}}%
|
|
\fi
|
|
\vbox{%
|
|
\hb@xt@\the\@tempdima{%
|
|
\hss
|
|
\next{%
|
|
\caption@make
|
|
{\@nameuse{sub\@captype name}}%
|
|
{\@nameuse{thesub\@captype}}%
|
|
{#3}}%
|
|
\hss}}}%
|
|
\egroup}
|
|
\def\listsubcaptions{%
|
|
\@ifstar
|
|
{\gdef\sf@captionlist{}}%
|
|
{\@listsubcaptions{\@captype}}}
|
|
\def\sf@captionlist{}
|
|
\def\@listsubcaptions#1{%
|
|
\@ifundefined{@captype}{}{%
|
|
\@ifundefined{ext@sub#1}{}{%
|
|
\@for \sf@temp:=\sf@captionlist \do {%
|
|
\ifx \@empty\sf@temp\relax \else
|
|
\begingroup
|
|
\def\@currentHref{\expandafter\@secondoftwo\sf@temp}%
|
|
\sf@addcontentsline
|
|
{\@nameuse{ext@sub#1}}%
|
|
{sub#1}%
|
|
{\expandafter\@firstoftwo\sf@temp}%
|
|
\endgroup
|
|
\fi}}}%
|
|
\gdef\sf@captionlist{}}
|
|
\long\def\caption@#1[#2]#3{%
|
|
\@ifundefined{caption@setfloattype}%
|
|
\caption@settype
|
|
\caption@setfloattype
|
|
\@captype
|
|
\sf@ifpositiontop{%
|
|
\@listsubcaptions{#1}%
|
|
\sf@old@caption{#1}[{#2}]{#3}%
|
|
}{%
|
|
\sf@old@caption{#1}[{#2}]{#3}%
|
|
\@listsubcaptions{#1}%
|
|
}}
|
|
\AtBeginDocument{%
|
|
\let\sf@addcontentsline=\addcontentsline}
|
|
\def\subfloat@label{%
|
|
\@ifnextchar(% %) match left parenthesis
|
|
{\sf@sub@label}
|
|
{\sf@sub@label(Sub\@captype\space
|
|
\@ifundefined{thechapter}{}{\@nameuse{thechapter}\space}%
|
|
\@nameuse{p@sub\@captype}%
|
|
\@nameuse{thesub\@captype}.)}}
|
|
|
|
\newif\ifhyperrefloaded
|
|
\def\sf@sub@label(#1)#2{%
|
|
\ifhyperrefloaded
|
|
\protected@edef\@currentlabelname{%
|
|
\expandafter\strip@period #1\relax.\relax\@@@}%
|
|
\fi
|
|
\sf@@sub@label{#2}}
|
|
\def\sf@@sub@label#1{%
|
|
\@bsphack
|
|
\sf@oldlabel{#1}%
|
|
\ifhyperrefloaded
|
|
\begingroup
|
|
\edef\@currentlabstr{%
|
|
\expandafter\strip@prefix\meaning\@currentlabelname}%
|
|
\protected@write\@auxout{}{%
|
|
\string\newlabel{sub@#1}{%
|
|
{\caption@lstfmt
|
|
{\@nameuse{p@sub\@captype}}%
|
|
{\@nameuse{thesub\@captype}}}%
|
|
{\caption@subreffmt
|
|
{\@nameuse{p@sub\@captype}}%
|
|
{\@nameuse{thesub\@captype}}%
|
|
{\the\value{\@captype}}%
|
|
{\the\value{sub\@captype}}}%
|
|
{\expandafter\strip@period\@currentlabelname\relax.\relax\@@@}%
|
|
{\@currentHref}%
|
|
{}}}%
|
|
\endgroup
|
|
\else
|
|
\protected@write\@auxout{}{%
|
|
\string\newlabel{sub@#1}{%
|
|
{\caption@lstfmt
|
|
{\@nameuse{p@sub\@captype}}%
|
|
{\@nameuse{thesub\@captype}}}%
|
|
{\caption@subreffmt
|
|
{\@nameuse{p@sub\@captype}}%
|
|
{\@nameuse{thesub\@captype}}%
|
|
{\the\value{\@captype}}%
|
|
{\the\value{sub\@captype}}}}}%
|
|
\fi
|
|
\@esphack}
|
|
\def\subref{%
|
|
\@ifstar
|
|
\sf@@subref
|
|
\sf@subref}
|
|
\def\sf@subref#1{\ref{sub@#1}}
|
|
\def\sf@@subref#1{\pageref{sub@#1}}
|
|
\newif\if@ccflag
|
|
\@ccflagfalse
|
|
\AtBeginDocument{%
|
|
\let\sf@refstepcounter=\refstepcounter
|
|
\@ifpackageloaded{captcont}{}{%
|
|
\def\refsteponlycounter#1{%
|
|
\if@ccflag
|
|
\global\expandafter\advance\csname c@#1\endcsname\@ne
|
|
\let\sf@temp\protect
|
|
\def\protect{\noexpand\protect\noexpand}%
|
|
\edef\@currentlabel{\csname p@#1\endcsname\csname the#1\endcsname}%
|
|
\let\protect\sf@temp
|
|
\else
|
|
\sf@refstepcounter{#1}%
|
|
\fi
|
|
\@ccflagfalse}%
|
|
}%
|
|
\def\ContinuedFloat{%
|
|
\ifx\@captype\@undefined
|
|
\@latex@error{\noexpand\ContinuedFloat outside float}\@ehd
|
|
\else
|
|
\addtocounter{\@captype}{\m@ne}%
|
|
\caption@ContinuedFloat\@captype
|
|
\@ifundefined{c@sub\@captype}{}{%
|
|
\setcounter{sub\@captype}{\value{sub\@captype @save}}%
|
|
\@ccflagtrue}%
|
|
\fi}}
|
|
\providecommand*\caption@ContinuedFloat[1]{}
|
|
\def\sf@caption{%
|
|
\let\refstepcounter=\refsteponlycounter
|
|
\sf@savecaption}
|
|
\AtBeginDocument{%
|
|
\let\sf@savecaption=\caption
|
|
\let\caption=\sf@caption
|
|
}
|
|
\let\sf@end@float=\end@float
|
|
\let\sf@end@dblfloat=\end@dblfloat
|
|
\def\end@float{%
|
|
\@ifundefined{sf@counterlist}{}{%
|
|
\@for\sf@temp:=\sf@counterlist\do{%
|
|
\setcounter{\sf@temp}{\z@}}%
|
|
\@listsubcaptions{\@captype}}%
|
|
\sf@end@float}%
|
|
\def\end@dblfloat{%
|
|
\@ifundefined{sf@counterlist}{}{%
|
|
\@for\sf@temp:=\sf@counterlist\do{%
|
|
\setcounter{\sf@temp}{\z@}}%
|
|
\@listsubcaptions{\@captype}}%
|
|
\sf@end@dblfloat}
|
|
\AtBeginDocument{%
|
|
\@ifpackageloaded{hyperref}{%
|
|
\hyperrefloadedtrue
|
|
%
|
|
\def\sf@setref#1sub#2\relax{%
|
|
\@namedef{theHsub#2\expandafter}{\@nameuse{the#2}.\arabic{sub#2}}%
|
|
\@namedef{toclevel@sub#2}{1}%
|
|
}
|
|
%
|
|
\@for\sf@temp:=\sf@counterlist\do{%
|
|
\expandafter\sf@setref\sf@temp\relax}%
|
|
%
|
|
\global\let\sf@setref\relax
|
|
%
|
|
\let\sf@Hrefstepcounter\H@refstepcounter
|
|
\def\H@refstepcounter#1{%
|
|
\sf@Hrefstepcounter{#1}%
|
|
\@ifundefined{c@sub#1}{}{%
|
|
\if@ccflag
|
|
\setcounter{sub#1}{\value{sub#1@save}}%
|
|
\fi
|
|
\@ccflagfalse}}%
|
|
%
|
|
}{}%
|
|
\@ifpackageloaded{float}{%
|
|
\let\sf@endfloatbox=\@endfloatbox
|
|
\def\@endfloatbox{%
|
|
\listsubcaptions
|
|
\sf@endfloatbox}%
|
|
}{}%
|
|
\@ifpackageloaded{fixltx2e}{%
|
|
\def\end@dblfloat{%
|
|
\if@twocolumn
|
|
\@ifundefined{sf@counterlist}{}{%
|
|
\@for\sf@temp:=\sf@counterlist\do{%
|
|
\setcounter{\sf@temp}{\z@}}%
|
|
\@listsubcaptions{\@captype}}%
|
|
\@endfloatbox
|
|
\ifnum\@floatpenalty <\z@
|
|
\@largefloatcheck
|
|
\global\dp\@currbox1sp %
|
|
\expandafter\@gobble\sf@end@float
|
|
\fi
|
|
\else
|
|
\end@float
|
|
\fi}%
|
|
}{%
|
|
\@ifpackageloaded{fix2col}{%
|
|
\def\end@dblfloat{%
|
|
\if@twocolumn
|
|
\@ifundefined{sf@counterlist}{}{%
|
|
\@for\sf@temp:=\sf@counterlist\do{%
|
|
\setcounter{\sf@temp}{\z@}}%
|
|
\@listsubcaptions{\@captype}}%
|
|
\@endfloatbox
|
|
\ifnum\@floatpenalty <\z@
|
|
\@largefloatcheck
|
|
\global\dp\@currbox1sp %
|
|
\expandafter\@gobble\sf@end@float
|
|
\fi
|
|
\else
|
|
\end@float
|
|
\fi}}{}%
|
|
}
|
|
}
|
|
\endinput
|
|
%%
|
|
%% End of file `subfig.sty'.
|
|
|