summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/caption/caption_2020-07-29.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/caption/caption_2020-07-29.sty')
-rw-r--r--Master/texmf-dist/tex/latex/caption/caption_2020-07-29.sty1504
1 files changed, 1504 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/caption/caption_2020-07-29.sty b/Master/texmf-dist/tex/latex/caption/caption_2020-07-29.sty
new file mode 100644
index 00000000000..318253fe30b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/caption/caption_2020-07-29.sty
@@ -0,0 +1,1504 @@
+%%
+%% This is file `caption_2020-07-29.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fallback/v3.4/caption.dtx (with options: `package')
+%%
+%% Copyright (C) 1994-2022 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
+%%
+%% https://gitlab.com/axelsommerfeldt/caption
+%%
+%% --------------------------------------------------------------------------
+%%
+%% This work may be distributed and/or modified under the
+%% conditions 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 "maintained".
+%%
+%% This Current Maintainer of this work is Axel Sommerfeldt.
+%%
+%% This work consists of the files
+%% caption.ins, caption.dtx, caption-light.dtx, caption2.dtx, caption3.dtx,
+%% caption-ams-smf.dtx, caption-beamer.dtx, caption-elsarticle.dtx,
+%% caption-koma.dtx, caption-memoir.dtx, caption-ntg.dtx,
+%% caption-thesis.dtx, bicaption.dtx, ltcaption.dtx, subcaption.dtx,
+%% the derived files
+%% caption.sty, caption-light.sty, caption2.sty, caption3.sty,
+%% caption-ams-smf.sto, caption-beamer.sto, caption-elsarticle.sto,
+%% caption-koma.sto, caption-memoir.sto, caption-ntg.sto,
+%% caption-thesis.sto, bicaption.sty, ltcaption.sty, subcaption.sty.
+%%
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesPackage{caption}[2020/09/28 v3.4n Customizing captions (AR)] % Backport of commit 43567491e5b075d661c080bca298f5428f289758 from 2020/09/28
+\RequirePackage{caption3}[=2020/07/29] % needs v1.13 or newer
+\caption@ifbool{documentclass}{}{%
+ \caption@WarningNoLine{%
+ Unknown document class (or package),\MessageBreak
+ standard defaults will be used}}
+\@ifpackageloaded{caption2}{%
+ \caption@Error{%
+ You can't use both, the (obsolete) caption2 *and*\MessageBreak
+ the (current) caption package}%
+ \endinput
+}{}
+\caption@AtBeginDocument{%
+ \@ifpackageloaded{ftcap}{\caption@DisablePositionOption{ftcap}}{}%
+ \@ifpackageloaded{nonfloat}{\caption@DisablePositionOption{nonfloat}}{}%
+ \@ifpackageloaded{topcapt}{\caption@DisablePositionOption{topcapt}}{}}
+\newcommand*\caption@DisablePositionOption[1]{%
+ \caption@InfoNoLine{%
+ `#1' package detected; setting `position=b' for compatibility reasons}%
+ \caption@setposition b%
+ \DeclareCaptionOption{position}{%
+ \caption@Error{Usage of the `position' option is incompatible\MessageBreak
+ to the `#1' package}}}
+\@onlypreamble\caption@DisablePositionOption
+\DeclareCaptionOption*{config}[caption]{%
+ \InputIfFileExists{#1.cfg}%
+ {\typeout{*** Local configuration file #1.cfg used ***}}%
+ {\caption@Warning{Configuration file #1.cfg not found}}}
+\newcommand*\caption@selectlistentry[1]{%
+ \caption@ifinlist{#1}{heading}{%
+ \let\caption@iflistheading\@firstoftwo
+ }{\caption@ifinlist{#1}{default,list-entry,entry}{%
+ \let\caption@iflistheading\@secondoftwo
+ }{%
+ \caption@Error{Undefined list-entry selection `#1'}%
+ }}}
+\DeclareCaptionOption{list-entry}{\caption@selectlistentry{#1}}
+\captionsetup{list-entry=default}
+\newcommand*\caption@setparboxrestore[1]{%
+ \caption@ifinlist{#1}{full}{%
+ \caption@setfullparboxrestore
+ }{\caption@ifinlist{#1}{default,light,partial}{%
+ \let\caption@parboxrestore\@secondoftwo
+ }{%
+ \caption@Error{Undefined parboxrestore `#1'}%
+ }}}
+\newcommand*\caption@setfullparboxrestore{%
+ \let\caption@parboxrestore\@firstoftwo}
+\DeclareCaptionOption{parboxrestore}{\caption@setparboxrestore{#1}}
+\captionsetup{parboxrestore=default}
+\DeclareCaptionOption{@minipage}{%
+ \caption@ifinlist{#1}{auto,default}%
+ {\let\caption@if@minipage\@gobbletwo}%
+ {\caption@set@bool\caption@if@minipage{#1}}}
+\captionsetup{@minipage=default}
+\DeclareCaptionOption{compatibility}[v1]{%
+ \caption@ifinlist{#1}{v1,1,true,yes,on}{%
+ \let\caption@ifcompatibility\@firstoftwo
+ }{\caption@ifinlist{#1}{v3,3,0,false,no,off}{%
+ \let\caption@ifcompatibility\@secondoftwo
+ }{%
+ \caption@Error{Undefined compatibility value `#1'}%
+ }}}
+\@onlypreamble@key{caption}{compatibility}
+\caption@setbool{compatibility}{0} % default: Try not to be compatible to v1.x
+\newcommand*\caption@setincompatible[2]{%
+ #1{%
+ \caption@WarningNoLine{%
+ #2;\MessageBreak
+ Setting compatibility to v1}%
+ \caption@setbool{compatibility}{1}%
+ }{}}
+\caption@AtBeginDocument{\caption@ifcompatibility{}{%
+ \caption@setincompatible{\@ifpackageloaded{captcont}}{captcont package is loaded}%
+}}
+\DeclareCaptionOptionNoValue*{normal}{%
+ \caption@setformat{plain}%
+ \caption@setjustification{justified}}
+\DeclareCaptionOptionNoValue*{isu}{%
+ \caption@setformat{hang}%
+ \caption@setjustification{justified}}
+\DeclareCaptionOptionNoValue*{hang}{%
+ \caption@setformat{hang}%
+ \caption@setjustification{justified}}
+\DeclareCaptionOptionNoValue*{center}{%
+ \caption@setformat{plain}%
+ \caption@setjustification{centering}}
+\DeclareCaptionOptionNoValue*{centerlast}{%
+ \caption@setformat{plain}%
+ \caption@setjustification{centerlast}}
+\DeclareCaptionOptionNoValue*{scriptsize}{\def\captionfont{\scriptsize}}
+\DeclareCaptionOptionNoValue*{footnotesize}{\def\captionfont{\footnotesize}}
+\DeclareCaptionOptionNoValue*{small}{\def\captionfont{\small}}
+\DeclareCaptionOptionNoValue*{normalsize}{\def\captionfont{\normalsize}}
+\DeclareCaptionOptionNoValue*{large}{\def\captionfont{\large}}
+\DeclareCaptionOptionNoValue*{Large}{\def\captionfont{\Large}}
+\DeclareCaptionOptionNoValue*{up}{\l@addto@macro\captionlabelfont\upshape}
+\DeclareCaptionOptionNoValue*{it}{\l@addto@macro\captionlabelfont\itshape}
+\DeclareCaptionOptionNoValue*{sl}{\l@addto@macro\captionlabelfont\slshape}
+\DeclareCaptionOptionNoValue*{sc}{\l@addto@macro\captionlabelfont\scshape}
+\DeclareCaptionOptionNoValue*{md}{\l@addto@macro\captionlabelfont\mdseries}
+\DeclareCaptionOptionNoValue*{bf}{\l@addto@macro\captionlabelfont\bfseries}
+\DeclareCaptionOptionNoValue*{rm}{\l@addto@macro\captionlabelfont\rmfamily}
+\DeclareCaptionOptionNoValue*{sf}{\l@addto@macro\captionlabelfont\sffamily}
+\DeclareCaptionOptionNoValue*{tt}{\l@addto@macro\captionlabelfont\ttfamily}
+\DeclareCaptionOptionNoValue*{nooneline}{\caption@setbool{slc}{0}}
+\caption@setbool{ruled}{0}
+\DeclareCaptionOptionNoValue*{ruled}{\caption@setbool{ruled}{1}}
+\DeclareCaptionOptionNoValue*{flushleft}{%
+ \caption@setformat{plain}%
+ \caption@setjustification{raggedright}}
+\DeclareCaptionOptionNoValue*{flushright}{%
+ \caption@setformat{plain}%
+ \caption@setjustification{raggedleft}}
+\DeclareCaptionOptionNoValue*{oneline}{\caption@setbool{slc}{1}}
+\DeclareCaptionOptionNoValue*{ignoreLTcapwidth}{%
+ \caption@WarningNoLine{Obsolete option `ignoreLTcapwidth' ignored}}
+\DeclareCaptionOption*{caption}{%
+ \caption@setbool{temp}{#1}%
+ \caption@ifbool{temp}{}{%
+ \caption@Error{%
+ The package option `caption=#1' is obsolete.\MessageBreak
+ Please pass this option to the subfig package instead\MessageBreak
+ and do *not* load the caption package anymore}}}
+\DeclareCaptionOption{FPlist}[1]{\caption@setFPoption{list}{#1}}
+\DeclareCaptionOption{FPref}[1]{\caption@setFPoption{ref}{#1}}
+\@onlypreamble@key{caption}{FPlist}
+\@onlypreamble@key{caption}{FPref}
+\newcommand*\caption@setFPoption[2]{%
+ \edef\caption@tempa{\@car#2\@nil}%
+ \caption@setbool{FP#1cap}{\if c\caption@tempa 1\else 0\fi}}
+\@onlypreamble\caption@setFPoption
+\captionsetup{FPlist=caption,FPref=figure}
+\DeclareCaptionOption{hypcap}[1]{\caption@setbool{hypcap}{#1}}
+\DeclareCaptionOption{hypcapspace}{\def\caption@hypcapspace{#1}}
+\captionsetup{hypcap=1,hypcapspace=.5\baselineskip}
+\caption@ifclassloaded{ams}{%
+ \caption@InfoNoLine{AMS or SMF document class}%
+ \setlength\belowcaptionskip{0pt}% set to 12pt by AMS class
+}{}
+\caption@ifclassloaded{koma}{%
+ \caption@InfoNoLine{KOMA-Script document class}%
+ \g@addto@macro\@tablecaptionabovetrue{\captionsetup*[table]{position=t}}
+ \g@addto@macro\@tablecaptionabovefalse{\captionsetup*[table]{position=b}}
+ \if@tablecaptionabove
+ \@tablecaptionabovetrue
+ \else
+ \@tablecaptionabovefalse
+ \fi
+ \caption@ifdefined\@figurecaptionabovetrue{%
+ \g@addto@macro\@figurecaptionabovetrue{\captionsetup*[figure]{position=t}}
+ \g@addto@macro\@figurecaptionabovefalse{\captionsetup*[figure]{position=b}}
+ \if@figurecaptionabove
+ \@figurecaptionabovetrue
+ \else
+ \@figurecaptionabovefalse
+ \fi
+ }{}%
+ \g@addto@macro\onelinecaptionstrue{\let\caption@ifslc\@firstoftwo}
+ \g@addto@macro\onelinecaptionsfalse{\let\caption@ifslc\@secondoftwo}
+ \ifonelinecaptions
+ \onelinecaptionstrue
+ \else
+ \onelinecaptionsfalse
+ \fi
+ \g@addto@macro\@captionabovetrue{\let\caption@position\@firstoftwo}
+ \g@addto@macro\@captionabovefalse{\let\caption@position\@secondoftwo}
+ \DeclareCaptionOption{figureposition}{%
+ \caption@WarningNoLine{Option `figureposition=#1' has no effect\MessageBreak
+ when used with a KOMA script document class}%
+ \captionsetup*[figure]{position=#1}}
+ \DeclareCaptionOption{tableposition}{%
+ \caption@WarningNoLine{Option `tableposition=#1' has no effect\MessageBreak
+ when used with a KOMA script document class}%
+ \captionsetup*[table]{position=#1}}
+ \let\caption@KOMA@setcapindent\@setcapindent
+ \renewcommand*\@setcapindent[1]{%
+ \caption@KOMA@setcapindent{#1}\caption@setcapindent}
+ \let\caption@KOMA@@setcapindent\@@setcapindent
+ \renewcommand*\@@setcapindent[1]{%
+ \caption@KOMA@@setcapindent{#1}\caption@setcapindent}
+ \newcommand*\caption@setcapindent{%
+ \captionsetup{indent=\ifdim\cap@indent<\z@\z@\else\cap@indent\fi}}
+ \caption@ifdefined\cap@indent{\caption@setcapindent}{}
+ \expandafter\let\expandafter\caption@KOMA@setcapwidth
+ \csname\string\setcapwidth\endcsname
+ \@namedef{\string\setcapwidth}[#1]#2{%
+ \caption@KOMA@setcapwidth[{#1}]{#2}\caption@setcapwidth{#1}}
+ \newcommand*\caption@setcapwidth[1]{%
+ \ifx\\#1\\\else
+ \caption@ifdefined\cap@margin{%
+ \def\@tempa{captionbeside}%
+ \ifx\@tempa\@currenvir\else\caption@Warning{%
+ Ignoring optional argument [#1] of \string\setcapwidth\MessageBreak}%
+ \fi}{}%
+ \fi
+ \captionsetup{width=\cap@width}}
+ \def\caption@tempa{\hsize}%
+ \ifx\caption@tempa\cap@width \else
+ \caption@setcapwidth{?}
+ \fi
+ \expandafter\let\expandafter\caption@KOMA@setcapmargin
+ \csname\string\@setcapmargin\endcsname
+ \@namedef{\string\@setcapmargin}[#1]#2{%
+ \caption@KOMA@setcapmargin[{#1}]{#2}\caption@setcapmargin}
+ \expandafter\let\expandafter\caption@KOMA@@setcapmargin
+ \csname\string\@@setcapmargin\endcsname
+ \@namedef{\string\@@setcapmargin}[#1]#2{%
+ \caption@KOMA@@setcapmargin[{#1}]{#2}\caption@setcapmargin}
+ \newcommand*\caption@setcapmargin{%
+ \begingroup
+ \let\onelinecaptionsfalse\relax
+ \def\@twoside{0}%
+ \def\if@twoside{\def\@twoside{1}\iffalse}%
+ \cap@margin
+ \def\@tempa{\endgroup}%
+ \ifx\cap@left\hfill\else\ifx\cap@right\hfill\else
+ \def\hspace##1##{\@firstofone}%
+ \edef\@tempa{\endgroup
+ \noexpand\captionsetup{%
+ twoside=\@twoside,slc=0,%
+ margin={\cap@left,\cap@right}}}%
+ \fi\fi
+ \@tempa}
+ \ifx\cap@margin\relax \else
+ \caption@setcapmargin
+ \fi
+}{}
+\caption@SetupOptions{caption}{\caption@setkeys{#1}{#2}}
+\caption@ProcessOptions*{caption}
+\newcounter{caption@flags}
+\newcommand*\caption@ifflag[1]{%
+ \@tempcnta\c@caption@flags
+ \divide\@tempcnta #1\relax
+ \ifodd\@tempcnta
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+\newcommand*\caption@clrflags{%
+ \setcounter{caption@flags}\z@}
+\newcommand*\caption@clrflag[1]{%
+ \caption@ifflag{#1}{\caption@addtoflags{-#1}}{}}
+\newcommand*\caption@setflag[1]{%
+ \caption@ifflag{#1}{}{\caption@addtoflags{#1}}}
+\newcommand*\caption@addtoflags{%
+ \addtocounter{caption@flags}}
+\def\caption@caption{%
+ \caption@iftype
+ {\caption@checkgrouplevel\@empty\caption
+ \caption@star
+ {\caption@refstepcounter\@captype}%
+ {\caption@dblarg{\@caption\@captype}}}%
+ {\caption@Error{\noexpand\caption outside float}%
+ \caption@gobble}}
+\newcommand*\caption@star[2]{%
+ \@ifstar{\caption@startrue#2[]}{#1#2}}
+\long\def\caption@@caption#1[#2]#3{%
+ \ifcaption@star \else
+ \caption@prepareanchor{#1}{#2}%
+ \memcaptioninfo{#1}{\csname the#1\endcsname}{#2}{#3}%
+ \@nameuse{nag@hascaptiontrue}%
+ \fi
+ \par
+ \caption@beginex{#1}{#2}{#3}%
+ \caption@setfloatcapt{%
+ \caption@boxrestore
+ \if@minipage
+ \@setminipage
+ \fi
+ \caption@normalsize
+ \ifcaption@star
+ \let\caption@makeanchor\@firstofone
+ \fi
+ \@makecaption{\csname fnum@#1\endcsname}%
+ {\ignorespaces\caption@makeanchor{#3}}\par
+ \caption@if@minipage\@minipagetrue\@minipagefalse}%
+ \caption@end}
+\providecommand\M@gettitle[1]{}
+\providecommand\memcaptioninfo[4]{}
+\newcommand*\caption@prepareanchor[2]{%
+ \caption@makecurrent{#1}{#2}%
+ \caption@ifhypcap\caption@@start\relax
+ \M@gettitle{#2}}
+\long\def\caption@makecaption#1#2{%
+ \caption@make@above
+ \caption@@make{#1}{#2}%
+ \caption@make@below}
+\newcommand*\caption@make@above{%
+ \caption@iftop
+ \caption@belowskip
+ {\caption@rule\caption@aboveskip}}
+\newcommand*\caption@make@below{%
+ \caption@iftop
+ {\caption@aboveskip\caption@rule}%
+ \caption@belowskip}
+\newcommand*\caption@aboveskip{%
+ \vskip\abovecaptionskip}
+\newcommand*\caption@belowskip{%
+ \vskip\belowcaptionskip}
+\newcommand*\caption@redefine{}
+\g@addto@macro\caption@redefine{%
+ \caption@ifcompatibility{%
+ \caption@InfoNoLine{
+ \noexpand\caption will not be redefined since `compatibility' is set to v1}%
+ \renewcommand*\caption@redefine{}%
+ \renewcommand*\caption@continuedfloat[1]{%
+ \caption@Error{Not available in compatibility mode}}%
+ \caption@AtBeginDocument*{%
+ \let\caption@start\relax
+ \caption@ifdefined\caption@ORI@capstart{%
+ \caption@Debug{%
+ Restore hypcap definition of \string\capstart\@gobble}%
+ \let\capstart\caption@ORI@capstart}{}%
+ }%
+ \renewcommand*\caption@star[2]{#1#2}%
+ }{%
+ \renewcommand*\caption@redefine{%
+ \let\caption\caption@caption
+ \let\@caption\caption@@caption}%
+ }%
+ \caption@redefine
+ \caption@AtBeginDocument*{%
+ \let\caption@ORI@capstart\@undefined}%
+ \let\caption@ORI@xfloat\@xfloat
+ \def\@xfloat#1[#2]{%
+ \caption@ORI@xfloat{#1}[#2]%
+ \caption@settype{#1}}%
+}
+\caption@AtBeginDocument{\caption@redefine}
+\let\@makecaption\caption@makecaption
+\newcommand\phantomcaption{%
+ \caption@iftype
+ {\caption@refstepcounter\@captype}%
+ {\caption@Error{\noexpand\phantomcaption outside float}}}%
+\caption@AtBeginDocument{%
+ \DeclareCaptionOption{type}{\setcaptiontype{#1}}%
+ \DeclareCaptionOption{type*}{\setcaptiontype*{#1}}%
+ \DeclareCaptionOptionNoValue{subtype}{\setcaptionsubtype\relax}%
+ \DeclareCaptionOptionNoValue{subtype*}{\setcaptionsubtype*}%
+}
+\newcommand\setcaptiontype{%
+ \caption@boxrestore@mini
+ \caption@settype}
+\newcommand\setcaptionsubtype{%
+ \caption@iftype
+ \caption@setsubtype
+ {\caption@Error{\noexpand\setcaptionsubtype outside float}}}%
+\newcommand\caption@setsubtype{%
+ \@ifstar
+ {\caption@@settype{sub}*{sub\@captype}}%
+ {\caption@@settype{sub}{sub\@captype}}}%
+\newcommand*\caption@settype{%
+ \caption@clrflags
+ \caption@set@type}
+\newcommand*\caption@set@type{%
+ \caption@@settype{}}
+\newcommand*\caption@@settype[1]{%
+ \caption@teststar{\caption@@@settype{#1}}\@firstoftwo\@secondoftwo}
+\newcommand*\caption@@@settype[3]{%
+ \caption@Debug{#1type=#3}%
+ \@nameuse{caption@check#1type}{#3}%
+ {\caption@checkgrouplevel{#1}{%
+ \captionsetup{#1type#2*\@empty=...}#2{ or
+ \@backslashchar#1captionof}{}}%
+ \edef\caption@tempa{#3}%
+ \expandafter\ifx\csname @#1captype\endcsname\caption@tempa \else
+ \ifcaptionsetup@star\else\@nameuse{caption@#1type@warning}\fi
+ \fi
+ \expandafter\let\csname @#1captype\endcsname\caption@tempa
+ \@nameuse{caption@#1typehook}%
+ \caption@setoptions{#3}%
+ \ifx\caption@opt\relax
+ \@nameundef{caption@#1type@warning}%
+ \else
+ \@namedef{caption@#1type@warning}{\caption@Warning{%
+ The #1type was already set to
+ `\csname @#1captype\endcsname'\MessageBreak}}%
+ \fi
+ #2{}{%
+ \let\@currentlabel\caption@undefinedlabel
+ \ifx\caption@x@label\@undefined
+ \let\caption@x@label\label
+ \let\label\caption@xlabel
+ \fi
+ \caption@start}}}
+\newcommand*\caption@iftype{\caption@ifdefined\@captype}
+\newcommand*\caption@checktype[1]{%
+ \caption@ifsubtype{#1}\@firstoftwo{\caption@ifin@list\sf@counterlist{#1}}%
+ {\caption@Error{Should not be used with subtype `#1'}%
+ \@gobble}%
+ \@firstofone}
+\newcommand*\caption@checksubtype[1]{%
+ \caption@ifsubtype{#1}%
+ \@firstofone
+ {\caption@ifin@list\sf@counterlist{#1}%
+ {\caption@Warning{%
+ \noexpand\setcaptionsubtype without \string\DeclareCaptionSubType.\MessageBreak
+ This is not designed to work; you could try replacing\MessageBreak
+ the `subfig' package with `subcaption' to resolve\MessageBreak
+ this problem which occurred}%
+ \@firstofone}%
+ {\caption@Error{Undefined subtype `#1'}%
+ \@gobble}}}
+\caption@ifeTeX{%
+ \newcommand*\caption@checkgrouplevel[2]{%
+ \@ifundefined{#1caption@grouplevel}{%
+ \caption@ifundefined\caption@grouplevel{\let\caption@grouplevel\z@}{}%
+ \ifnum\currentgrouplevel>\caption@grouplevel\relax
+ \expandafter\edef\csname #1caption@grouplevel\endcsname{%
+ \the\currentgrouplevel}%
+ \else
+ \caption@Warning{\string#2\MessageBreak outside box or environment}%
+ \fi
+ }{}}%
+}{%
+ \let\caption@checkgrouplevel\@gobbletwo
+}
+\newcommand*\caption@undefinedlabel{%
+ \protect\caption@xref{\caption@labelname}{\on@line}}
+\DeclareRobustCommand*\caption@xref[2]{%
+ \caption@WarningNoLine{\noexpand\label without proper reference#2}%
+ \@setref\relax\@undefined{#1}}
+\newcommand*\caption@labelname{??}
+\newcommand*\caption@xlabel{%
+ \caption@withoptargs\caption@@xlabel}
+\newcommand*\caption@@xlabel[2]{%
+ \caption@@@xlabel
+ \def\caption@labelname{#2}%
+ \caption@x@label#1{#2}}
+\newcommand*\caption@@@xlabel{%
+ \global\let\caption@@@xlabel\@empty
+ \@bsphack
+ \protected@write\@auxout{}%
+ {\string\providecommand*\string\caption@xref[2]{%
+ \string\@setref\string\relax\string\@undefined{\string##1}}}%
+ \@esphack}
+\caption@AtBeginDocument{%
+ \def\captionof{\caption@teststar\caption@of{\caption*}\caption}}
+\newcommand*\caption@of[2]{\setcaptiontype*{#2}#1}
+\newcommand*\captionlistentry{%
+ \caption@teststar\@captionlistentry\@firstoftwo\@secondoftwo}
+\newcommand*\@captionlistentry[1]{%
+ \@testopt{\caption@listentry{#1}}\@captype}
+\def\caption@listentry#1[#2]#3{%
+ \@bsphack
+ #1{\caption@gettitle{#3}}%
+ {\caption@refstepcounter{#2}%
+ \caption@makecurrent{#2}{#3}}%
+ \caption@addcontentsline{#2}{#3}%
+ \@esphack}
+\newcommand*\captionbox{%
+ \caption@withoptargs{\caption@ibox\@gobble}}
+\newcommand\caption@ibox[3]{%
+ \kernel@ifnextchar[%]
+ {\caption@iibox{#1}{#2}{#3}}%
+ {\caption@iibox@{#1}{#2}{#3}}}
+\long\def\caption@iibox#1#2#3[#4]{%
+ \@testopt{\caption@iiibox{#1}{#2}{#3}[{#4}]}\captionbox@innerpos@default}
+\long\def\caption@iibox@#1#2#3#4{%
+ \setbox\@tempboxa\hbox{#4}%
+ \caption@iiibox{#1}{#2}{#3}[\wd\@tempboxa][\captionbox@innerpos@default]{\unhbox\@tempboxa}}
+\long\def\caption@iiibox#1{%
+ \caption@iiiibox{#1}\vbox\vtop}
+\long\def\caption@iiiibox#1#2#3#4#5[#6][#7]#8{%
+ \begingroup
+ #1*% set \caption@position
+ \caption@iftop{%
+ \endgroup
+ \parbox[t]{#6}{%
+ #1\relax
+ \caption@setposition t%
+ #2{\caption#4{#5}}%
+ \captionbox@hrule
+ \csname caption@hj@#7\endcsname
+ #8}%
+ }{%
+ \endgroup
+ \parbox[b]{#6}{%
+ #1\relax
+ \caption@setposition b%
+ \csname caption@hj@#7\endcsname
+ #8%
+ \captionbox@hrule
+ #3{\caption#4{#5}}}%
+ }}
+\newcommand*\captionbox@innerpos@default{c}
+\newcommand*\captionbox@hrule{\hrule\@height\z@\relax}
+\providecommand*\caption@hj@c{\centering}
+\providecommand*\caption@hj@l{\raggedright}
+\providecommand*\caption@hj@r{\raggedleft}
+\providecommand*\caption@hj@s{}
+\def\continuedfloat{%
+ \caption@iftype
+ {\caption@continuedfloat\@captype}%
+ {\caption@Error{\noexpand\continuedfloat outside float}}}
+\newcommand*\caption@continuedfloat[1]{%
+ \@ifstar
+ {\caption@@refstepcounter\@captype
+ \caption@@continuedfloat{#1}}%
+ {\caption@continued@float{#1}}}
+\newcommand*\caption@continued@float[1]{%
+ \edef\caption@tempa{#1}%
+ \ifx\caption@tempa\caption@CFtype
+ \caption@restorecounters
+ \caption@@continuedfloat{#1}%
+ \else
+ \caption@Error{Continued `#1' after `\caption@CFtype'}%
+ \fi}
+\newcommand*\caption@@continuedfloat{%
+ \caption@setflag1% continued float
+ \caption@@@continuedfloat}
+\newcommand*\caption@@@continuedfloat{%
+ \stepcounter{continuedfloat}%
+ \caption@@@@continuedfloat}
+\newcommand*\caption@@@@continuedfloat[1]{%
+ \caption@setoptions{ContinuedFloat}% for compatibility reasons
+ \caption@setoptions{continuedfloat}%
+ \caption@setoptions{continued#1}%
+ \expandafter\l@addto@macro\csname the#1\endcsname\thecontinuedfloat
+ \@ifundefined{theH#1}{}{%
+ \expandafter\l@addto@macro\csname theH#1\endcsname{%
+ \@alph\c@continuedfloat}}%
+ \let\caption@@@@continuedfloat\@gobble}
+\newcommand*\caption@CFtype{??}
+\newcounter{continuedfloat}
+\let\c@ContinuedFloat\c@continuedfloat % defined for compatibility reasons
+\def\thecontinuedfloat{\theContinuedFloat}
+\let\theContinuedFloat\@empty % defined for compatibility reasons
+\newcommand*\caption@reset@continuedfloat[1]{%
+ \xdef\caption@CFtype{#1}%
+ \@stpelt{continuedfloat}}
+\def\ContinuedFloat{\continuedfloat} % defined for compatibility reasons
+\def\caption@ContinuedFloat{%
+ \let\caption@reset@continuedfloat\@gobble
+ \caption@@@continuedfloat}
+\caption@ifdefined\donemaincaptionfalse{%
+ \g@addto@macro\donemaincaptionfalse\caption@savesubcounters}{}
+\newcommand*\caption@refstepcounter[1]{%
+ \@ifundefined{c@#1}%
+ {\caption@Error{No float type '#1' defined}}%
+ {\caption@ref@stepcounter{#1}%
+ \caption@fixposition
+ \caption@iftop\caption@setflag\caption@clrflag2% caption
+ \caption@clrflag4% subcaption
+ \@nameuse{donemaincaptiontrue}}}
+\newcommand*\caption@ref@stepcounter{%
+ \caption@ifflag1{% continued float
+ \let\caption@tempa\caption@@refcounter
+ \caption@clrflag1% continued float
+ }{%
+ \let\caption@tempa\caption@@refstepcounter
+ \caption@ifflag2{}{% caption
+ \caption@ifflag4{% subcaption
+ \let\caption@tempa\caption@@refcounter
+ }{}%
+ }%
+ }%
+ \caption@tempa}
+\newcommand*\caption@@refcounter[1]{%
+ \let\caption@stepcounter@ORI\stepcounter
+ \def\stepcounter##1{%
+ \edef\caption@tempa{#1}% Backport of commit 43567491e5b075d661c080bca298f5428f289758 from 2020/09/28: \def -> \edef
+ \edef\caption@tempb{##1}% Backport of commit 43567491e5b075d661c080bca298f5428f289758 from 2020/09/28: \def -> \edef
+ \ifx\caption@tempa\caption@tempb \else
+ \caption@stepcounter@ORI{##1}%
+ \fi}%
+ \caption@@@refstepcounter{#1}%
+ \let\stepcounter\caption@stepcounter@ORI}
+\newcommand*\caption@@refstepcounter[1]{%
+ \caption@prepare@stepcounter{#1}{ref}%
+ \caption@@@refstepcounter{#1}}
+\newcommand*\caption@@stepcounter[1]{%
+ \caption@prepare@stepcounter{#1}{}%
+ \caption@@@stepcounter{#1}}
+\newcommand*\caption@prepare@stepcounter[2]{%
+ \caption@addsubcontentslines{#2stepcounter}%
+ \caption@reset@continuedfloat{#1}}
+\newcommand*\caption@@@refstepcounter{\refstepcounter}
+\newcommand*\caption@@@stepcounter{\stepcounter}
+\@ifundefined{kernel@ifnextchar}{\let\kernel@ifnextchar\@ifnextchar}{}
+\newcommand\caption@dblarg[1]{%
+ \kernel@ifnextchar[{\caption@ydblarg{#1}}{\caption@xdblarg{#1}}}
+\newcommand\caption@xdblarg[2]{%
+ #1[{#2\relax}]{#2}}
+\long\def\caption@ydblarg#1[#2]#3{%
+ \caption@iflistheading{#1[{#3}]{#3}}{#1[{#2}]{#3}}}
+\newcommand*\caption@begin[1]{%
+ \caption@fixposition
+ \begingroup
+ \caption@setfnum{#1}}
+\newcommand\caption@beginex[3]{%
+ \caption@begin{#1}%
+ \let\lst@@caption\relax
+ \caption@addcontentsline{#1}{#2}%
+ \caption@ifempty{#3}{}}
+\newcommand*\caption@end{%
+ \endgroup}
+\newcommand*\caption@setfnum[1]{%
+ \@ifundefined{fnum@#1}{\iftrue}{\ifx\caption@lfmt\caption@lfmt@default\else}%
+ \@namedef{fnum@#1}{\caption@fnum{#1}}%
+ \fi}
+\newcommand*\caption@boxrestore{%
+ \caption@parboxrestore{\@parboxrestore}{%
+ \let\if@nobreak\iffalse
+ \let\if@noskipsec\iffalse
+ \let\par\@@par
+ \parindent\z@ \parskip\z@skip
+ \everypar{}%
+ \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
+ \parfillskip\@flushglue \lineskip\normallineskip
+ \baselineskip\normalbaselineskip
+ \sloppy
+ \let\\\@normalcr
+ }}
+\newcommand\caption@boxrestore@mini{%
+ \let\par\@@par
+ \parindent\z@ \parskip\z@skip
+ \sloppy}
+\newcommand*\caption@normalsize{%
+ \caption@font*{\KV@caption@fnt@normal\@unused}}
+\let\caption@setfloatcapt\@firstofone
+\newcommand*\caption@makecurrent[1]{\caption@gettitle}
+\let\caption@makeanchor\@firstofone
+\let\caption@start\relax
+\let\caption@@start\relax
+\let\caption@freezeHref\relax
+\let\caption@defrostHref\relax
+\newcommand\caption@gettitle[1]{%
+ \caption@ifdefined\NR@gettitle
+ {\NR@gettitle{#1}}%
+ {\def\@currentlabelname{#1}}}
+\newcommand*\caption@subtypehook{%
+ \ifx\caption\caption@subcaption \else
+ \caption@warmup
+ \caption@ifflag2{}{% caption
+ \let\caption@add@contentsline\caption@addsubcontentsline
+ \let\caption@addsubcontentslines\@gobble
+ \caption@ifflag4{}{% subcaption
+ \caption@ifflag1{% continued float
+ \caption@clrflag1%
+ }{%
+ \caption@@stepcounter\@captype
+ }%
+ \caption@setflag4% subcaption
+ }%
+ }%
+ \c@continuedfloat=0\relax
+ \let\caption@setfloatcapt\@firstofone
+ \let\caption@chkfloat\@gobbletwo
+ \caption@setbox{none}%
+ \caption@clearmargin
+ \caption@iflist{}{\let\caption@setlist\@gobble}%
+ \caption@setoptions{sub}%
+ \caption@setoptions{subfloat}% for subfig-package compatibility
+ \def\caption@settype{\caption@withoptargs\caption@sub@settype}%
+ \def\caption@sub@settype##1##2{%
+ \edef\caption@tempa{##2}%
+ \ifx\caption@tempa\@captype
+%%% \caption@setsubtype##1\relax
+ \else
+ \caption@Error{##2 inside \@subcaptype}%
+ \fi}%
+ \let\caption\caption@subcaption
+ \let\@caption\caption@@caption
+ \let\phantomcaption\caption@subphantom
+ \let\captionlistentry\caption@sublistentry
+ \let\caption@refstepcounter\caption@@@refstepcounter
+ \if@subfloatrow
+ \caption@Debug{Keeping \string\@makecaption}%
+ \else
+ \let\@makecaption\caption@makecaption
+ \fi
+ \fi}%
+\caption@AtBeginDocument{%
+ \caption@ifundefined\@subfloatrowtrue
+ {\newif\if@subfloatrow
+ \caption@ifundefined\subfloatrow{}%
+ {\caption@Debug{Patching subfloatrow environment}%
+ \g@addto@macro\capsubrowsettings{\@subfloatrowtrue}%
+ \g@addto@macro\killfloatstyle{%
+ \ifx\c@FRobj\c@FRsobj\@subfloatrowtrue\fi}}}%
+ {\caption@Debug{\string\if@subfloatrow is already defined}}}%
+\newcommand*\caption@subcaption{%
+ \caption@checkgrouplevel{sub}\subcaption
+ \caption@star
+ {\caption@refstepcounter\@subcaptype}%
+ {\caption@dblarg{\@caption\@subcaptype}}}
+\newcommand*\caption@subphantom{%
+ \caption@checkgrouplevel{sub}\phantomsubcaption
+ \caption@refstepcounter\@subcaptype}
+\newcommand*\caption@sublistentry{%
+ \caption@teststar\@subcaptionlistentry\@firstoftwo\@secondoftwo}
+\newcommand*\@subcaptionlistentry[1]{%
+ \@testopt{\caption@listentry{#1}}\@subcaptype}
+\newcommand*\caption@clearsubcontentslines{%
+ \global\let\caption@subcontentslines\@empty}
+\caption@clearsubcontentslines
+\newcommand*\caption@addsubcontentsline[4]{%
+ \caption@Debug{\string\caption@addsubcontentsline{#1}{#2}}%
+ \begingroup
+ \let\label\caption@gobble
+ \let\index\caption@gobble
+ \let\glossary\caption@gobble
+ \protected@edef\@tempa{\endgroup
+ \noexpand\g@addto@macro\noexpand\caption@subcontentslines{%
+ \noexpand\@namedef{the#2}{\csname the#2\endcsname}%
+ \ifx\@currentHref\@undefined \else
+ \noexpand\def\noexpand\@currentHref{\@currentHref}%
+ \fi
+ \noexpand\caption@@@addcontentsline{#1}{#2}{#3}{#4}}}%
+ \@tempa}
+\newcommand*\flushsubcaptionlistentries{%
+ \caption@addsubcontentslines{user}}
+\renewcommand*\caption@addsubcontentslines[1]{%
+ \caption@Debug{\string\flushsubcaptionlistentries (#1)}%
+ \begingroup
+ \caption@subcontentslines
+ \endgroup
+ \caption@clearsubcontentslines}
+\AtBeginDocument{%
+ \caption@ifdefined\chapter{%
+ \let\caption@chapter@ORI\chapter
+ \def\chapter{%
+ \caption@addsubcontentslines{chapter}\caption@chapter@ORI}}{}%
+ \caption@ifdefined\appendix{%
+ \let\caption@appendix@ORI\appendix
+ \def\appendix{%
+ \caption@addsubcontentslines{appendix}\caption@appendix@ORI}}{}%
+ \caption@addsubcontentslines{AtEndDocument}%
+}
+\caption@ifdefined\smf@makecaption{\let\smf@makecaption\@makecaption}{}
+\@ifclassloaded{beamer}{%
+ \caption@InfoNoLine{beamer document class}%
+ \let\caption@ORI@figure\figure
+ \def\figure{\caption@settype{figure}\caption@ORI@figure}
+ \let\caption@ORI@table\table
+ \def\table{\caption@settype{table}\caption@ORI@table}
+}{}
+\caption@ifdefined\scr@caption{%
+ \caption@AtBeginDocument{\let\scr@caption\caption}}{}
+\@nameuse{caption@frenchb}\@nameundef{caption@frenchb}
+\caption@AtBeginDocument{\caption@ifdefined\frenchTeXmods{%
+ \caption@InfoNoLine{frenchle/pro package is loaded}%
+ \let\captionfont@ORI\captionfont
+ \let\captionlabelfont@ORI\captionlabelfont
+ \let\@makecaption@ORI\@makecaption
+
+ \caption@ifdefined\GOfrench
+ {\def\caption@tempa{\g@addto@macro\GOfrench}}%
+ {\let\caption@tempa\@firstofone}%
+ \caption@tempa{%
+ \let\captionfont\captionfont@ORI
+ \let\captionfont@ORI\@undefined
+ \let\captionlabelfont\captionlabelfont@ORI
+ \let\captionlabelfont@ORI\@undefined
+ \let\@makecaption\@makecaption@ORI
+ \let\@makecaption@ORI\@undefined
+ \let\@cnORI\caption
+ \let\caption@tcORI\@tablescaption
+ \def\@tablescaption{\caption@star\relax\caption@tcORI}%
+ \let\@eatDP\@undefined
+ \let\caption@tempa\@empty
+ \ifx\f@ffrench\fnum@figure
+ \l@addto@macro\caption@tempa{\let\fnum@figure\f@ffrench}%
+ \fi
+ \ifx\f@tfrench\fnum@table
+ \l@addto@macro\caption@tempa{\let\fnum@table\f@tfrench}%
+ \fi
+ \def\f@ffrench{\ifx\listoffigures\relax\else\figurename~\thefigure\fi}%
+ \def\f@tfrench{\ifx\listoftables\relax\else\tablename~\thetable\fi}%
+ \caption@tempa
+ }%
+}{}}
+\def\caption@tempa#1{%
+ \@ifpackagewith{babel}{#1}{%
+ \caption@InfoNoLine{#1 babel option is loaded}%
+ \expandafter\addto\csname extras#1\endcsname{%
+ % reverse changes made by magyar.ldf
+ \let\@makecaption\caption@makecaption
+ \babel@save\@makecaption
+ \caption@redefine
+ \babel@save\@caption}%
+ }{}}
+\caption@tempa{hungarian}%
+\caption@tempa{magyar}%
+\newcommand\caption@IfPackageLoaded[1]{%
+ \@testopt{\caption@@IfPackageLoaded{#1}}{}}
+\@onlypreamble\caption@IfPackageLoaded
+\long\def\caption@@IfPackageLoaded#1[#2]#3#4{%
+ \@ifpackageloaded{#1}\@firstofone{%
+ \caption@Debug{#1 package is not loaded (yet)\@gobble}%
+ \caption@AtBeginDocument}{%
+ \caption@If@Package@Loaded{#1}[{#2}]{#3}{#4}}}
+\@onlypreamble\caption@@IfPackageLoaded
+\long\def\caption@If@Package@Loaded#1[#2]{%
+ \@ifpackageloaded{#1}{%
+ \caption@InfoNoLine{#1 package is loaded}%
+ \@ifpackagelater{#1}{#2}\@firstoftwo{%
+ \caption@Error{%
+ For a successful cooperation we need at least version\MessageBreak
+ `#2' of package #1,\MessageBreak
+ but only version\MessageBreak
+ `\csname ver@#1.\@pkgextension\endcsname'\MessageBreak
+ is available}%
+ \@secondoftwo}%
+ }{\@secondoftwo}}
+\@onlypreamble\caption@If@Package@Loaded
+\newcommand*\caption@clearmargin{%
+ \setcaptionmargin\z@
+ \let\caption@minmargin\@undefined}
+\caption@setbool{needfreeze}{0}
+\caption@AtBeginDocument*{%
+ \caption@ifneedfreeze{%
+ \newcommand*\caption@freezetype[1]{%
+ \caption@settype*{#1}%
+ \captionsetup*[sub]{hypcap=true}% Note: This is just a (q&d) workaround!
+ \caption@freeze}%
+ \newcommand*\caption@freeze{%
+ \let\caption@frozen@continuedfloat\continuedfloat
+ \def\continuedfloat{%
+ \caption@@freeze{\caption@@@@continuedfloat\@captype}%
+ \caption@frozen@continuedfloat}%
+ \let\caption@frozen@setup\caption@setup
+ \def\caption@setup##1{%
+ \caption@@freeze{\caption@setup{##1}}%
+ \caption@frozen@setup{##1}}%
+ \let\caption@frozen@caption\caption
+ \def\caption{%
+ \def\caption{%
+ \caption@Error{%
+ Only one \noexpand\caption can be placed in this environment}%
+ \caption@gobble}%
+ \@ifstar
+ {\caption@SC@caption*}%
+ {\let\@currentlabel\caption@SClabel
+ \caption@withoptargs\caption@SC@caption}}%
+ \long\def\caption@SC@caption##1##2{%
+ \caption@@freeze{\caption##1{##2}}%
+ \ignorespaces}%
+ \let\caption@frozen@label\label
+ \def\label{%
+ \caption@withoptargs\caption@SC@label}%
+ \def\caption@SC@label##1##2{%
+ \ifx\@currentlabel\caption@SClabel
+ \@bsphack
+ \caption@freeze@label{##1}{##2}%
+ \@esphack
+ \else
+ \caption@frozen@label##1{##2}%
+ \fi}%
+ \def\caption@SClabel{\caption@undefinedlabel}%
+ \def\caption@freeze@label##1##2{%
+ \caption@@freeze{\label##1{##2}}}%
+ \global\let\caption@frozen@content\@empty
+ \long\def\caption@@freeze{%
+ \g@addto@macro\caption@frozen@content}%
+ \def\caption@warmup{%
+ \let\continuedfloat\caption@frozen@continuedfloat
+ \let\caption@setup\caption@frozen@setup
+ \let\caption\caption@frozen@caption
+ \let\label\caption@frozen@label}}%
+ \newcommand*\caption@prepare@defrost{%
+ \let\caption@settype\caption@set@type}
+ \newcommand*\caption@defrost{%
+ \ifx\caption@frozen@caption\@undefined
+ \caption@frozen@content
+ \else
+ \caption@Error{Internal Error:\MessageBreak
+ \noexpand\caption@defrost in same group as \string\caption@freeze}%
+ \fi}%
+ }{}%
+ \caption@undefbool{needfreeze}}
+\let\caption@warmup\relax
+\caption@IfPackageLoaded{changepage}[2008/07/23 memoir-v3.7k]{%
+ \newdimen\caption@adjustwidth@hsize
+ \newdimen\caption@adjustwidth@linewidth
+ \providecommand*\caption@set@adjustwidth{%
+ \caption@adjustwidth@hsize\hsize
+ \caption@adjustwidth@linewidth\linewidth}%
+ \providecommand*\caption@patch@changepage[1]{%
+ \expandafter\let\csname caption@#1\expandafter\endcsname\csname #1\endcsname
+ \expandafter\renewcommand\csname #1\endcsname[2]{%
+ \@nameuse{caption@#1}{##1}{##2}%
+ \caption@set@adjustwidth}}%
+ \caption@patch@changepage{adjustwidth}%
+ \caption@patch@changepage{adjustwidth*}%
+ \let\caption@patch@changepage\relax
+ \providecommand\caption@test@adjustwidth{%
+ \ifdim\hsize=\caption@adjustwidth@hsize
+ \ifdim\linewidth=\caption@adjustwidth@linewidth
+ \hsize=\linewidth
+ \fi
+ \fi}%
+ \AtBeginCaption{\caption@test@adjustwidth}%
+ }{}%
+\caption@IfPackageLoaded{chkfloat}[2012/08/19 v0.1]{%
+ \caption@ifdefined\chkfloat@addcontentsline{%
+ \renewcommand\caption@chkfloat{\chkfloat@addcontentsline}%
+ }{%
+ \renewcommand\caption@chkfloat[2]{%
+ \caption@ifdefined\chkfloat@page{%
+ \addtocontents{fof}{\protect\chkfloat@{\thepage}{\chkfloat@page}{\csname fnum@#1\endcsname: #2}}%
+ }{}}%
+ }%
+ }{}%
+\caption@IfPackageLoaded{float}[2001/11/08 v1.3d]{%
+ \@ifpackageloaded{floatrow}{%
+ \caption@If@Package@Loaded{floatrow}[2007/08/24 v0.2a]{}{}%
+ }{%
+ \let\caption@ORI@float@setevery\@float@setevery
+ \def\@float@setevery#1{%
+ \float@ifcaption{#1}{%
+ \caption@setposition{\@fs@iftopcapt t\else b\fi}%
+ \renewcommand\caption@setfloatcapt[1]{%
+ \let\@makecaption\caption@@make
+ \global\setbox\@floatcapt\vbox{%
+ \color@begingroup ##1\color@endgroup}}%
+ \float@getstyle\float@style{#1}%
+ \caption@setstyle*\float@style
+ \caption@setoptions\float@style
+ }{}%
+ \caption@float@setname{#1}%
+ \caption@freezeHref % will be defrosted in \float@makebox
+ \caption@ORI@float@setevery{#1}}%
+ \caption@AtBeginDocument{\caption@ifcompatibility{}{%
+ \caption@ifdefined\HyOrg@float@makebox
+ {\let\caption@ORI@float@makebox\HyOrg@float@makebox}%
+ {\let\caption@ORI@float@makebox\float@makebox}%
+ \renewcommand\float@makebox[1]{%
+ \caption@ORI@float@makebox{#1\relax \caption@defrostHref}}%
+ }}%
+ \newcommand*\caption@float@setname[1]{%
+ \expandafter\ifx\csname #1name\endcsname\relax
+ \expandafter\let\csname #1name\expandafter\endcsname
+ \csname fname@#1\endcsname
+ \fi}%
+ \g@addto@macro\fs@plaintop{\def\@fs@mid{\vspace\abovecaptionskip\relax}}%
+ \g@addto@macro\fs@boxed{\def\@fs@mid{\kern\abovecaptionskip\relax}}%
+ \providecommand*\float@getstyle[2]{%
+ \edef#1{%
+ \noexpand\expandafter\noexpand\@gobblefour\noexpand\string
+ \expandafter\expandafter\expandafter\noexpand
+ \csname fst@#2\endcsname}%
+ \edef#1{#1}%
+ \caption@Debug{floatstyle{#2} = `#1'}}%
+ \providecommand*\float@ifcaption[1]{%
+ \expandafter\ifx\csname @float@c@#1\endcsname\float@caption
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}%
+}}{%
+ \providecommand*\float@ifcaption[1]{\@secondoftwo}%
+}
+\captionsetup[boxed]{skip=2pt} % do not issue a warning when not used
+\caption@ifbool{ruled}{%
+ \captionsetup[ruled]{margin=0pt,minmargin=0,slc=0}%
+}{%
+ \DeclareCaptionStyle{ruled}{labelfont=bf,labelsep=space,strut=0}%
+}
+\caption@undefbool{ruled}
+\caption@IfPackageLoaded{floatflt}[1996/02/27 v1.3]{%
+ \let\caption@ORI@floatingfigure\floatingfigure
+ \def\floatingfigure{%
+ \caption@floatflt{figure}%
+ \caption@ORI@floatingfigure}%
+ \let\caption@ORI@floatingtable\floatingtable
+ \def\floatingtable{%
+ \caption@floatflt{table}%
+ \caption@ORI@floatingtable}%
+ \newcommand*\caption@floatflt[1]{%
+ \caption@settype{#1}%
+ \caption@clearmargin
+ \caption@setfullparboxrestore
+ \caption@setoptions{floating#1}}%
+}{}
+\caption@IfPackageLoaded{fltpage}[1998/10/29 v.0.3]{%
+ \caption@setbool{needfreeze}{1}%
+ \renewcommand\FP@positionLabel{%
+ FP\FP@captype-\number\value{FP@\FP@captype C}-pos}%
+ \renewcommand\FP@helpNote[2]{%
+ \begingroup % save \caption@thepage
+ \caption@pageref{#2}%
+ \typeout{FP#1 is inserted on page \caption@thepage!}%
+ \endgroup}%
+ \renewcommand*\FP@floatBegin[1]{%
+ \def\FP@captype{#1}%
+ \begin{lrbox}{\FP@floatCorpusBOX}%
+ \minipage\hsize % changes from LR mode to vertical mode
+ \caption@freezetype{#1}%
+ \ignorespaces}%
+ \renewcommand*\FP@floatEnd{%
+ \endminipage
+ \end{lrbox}%
+ \stepcounter{FP@\FP@captype C}%
+ \caption@label\FP@positionLabel
+ \FP@helpNote\FP@captype\FP@positionLabel
+ \FP@float
+ {\FP@positionLabel}% location label test
+ {\caption@prepare@defrost
+ \begin\FP@captype[p!]%
+ \usebox\FP@floatCorpusBOX
+ \end\FP@captype}%
+ {\@ifundefined{theH\FP@captype}{}{%
+ \expandafter\l@addto@macro\csname theH\FP@captype\endcsname{.FP}}}%
+ {\caption@prepare@defrost
+ \begin\FP@captype[b!]%
+ \let\FP@savedSetfnumCommand\caption@setfnum
+ \def\caption@setfnum##1{%
+ \FP@savedSetfnumCommand{##1}%
+ \ifx\FP@guide\@empty \else
+ \expandafter\l@addto@macro\csname fnum@##1\endcsname{\ {\FP@guide}}%
+ \fi}%
+ \setlength\abovecaptionskip{2pt plus 2pt minus 1pt}% length above caption
+ \setlength\belowcaptionskip{2pt plus 2pt minus 1pt}% length below caption
+ \caption@setoptions{FP\@captype}%
+ \FP@separatorCaption
+ \caption@defrost
+ \end\FP@captype}%
+ }%
+}{%
+ \let\caption@ifFPlistcap\@undefined
+ \let\caption@ifFPrefcap\@undefined
+}
+\caption@IfPackageLoaded{hyperref}[2003/11/30 v6.74m]{%
+ % Test if hyperref has stopped early
+ \caption@ifundefined\IfHyperBoolean{%
+ \caption@set@bool\caption@ifhyp@stoppedearly0%
+ \caption@ifundefined\H@refstepcounter
+ {\caption@set@bool\caption@ifhyp@stoppedearly1}{%
+ \caption@ifundefined\hyper@makecurrent
+ {\caption@set@bool\caption@ifhyp@stoppedearly1}{%
+ \caption@ifundefined\measuring@true
+ {\caption@set@bool\caption@ifhyp@stoppedearly1}{}}}%
+ }{%
+ \def\caption@ifhyp@stoppedearly{\IfHyperBoolean{stoppedearly}}%
+ }%
+ \caption@ifhyp@stoppedearly{% hyperref has stopped early
+ \caption@InfoNoLine{%
+ Hyperref support is turned off\MessageBreak
+ because hyperref has stopped early}%
+ }{%
+ \g@addto@macro\caption@prepareslc{\measuring@true}%
+ \renewcommand*\caption@@@refstepcounter{\H@refstepcounter}%
+ \renewcommand*\caption@makecurrent[2]{%
+ \caption@makecurrentHref{#1}%
+ \caption@Debug{hyperref current=\@currentHref}%
+ \caption@gettitle{#2}}%
+ \newcommand*\caption@makecurrentHref{\hyper@makecurrent}%
+ \renewcommand\caption@makeanchor[1]{%
+ \caption@Debug{hyperref anchor: \@currentHref}%
+ % If we cannot have nesting, the anchor is empty.
+ \ifHy@nesting
+ \expandafter\hyper@@anchor\expandafter{\@currentHref}{#1}%
+ \else
+ \Hy@raisedlink{%
+ \expandafter\hyper@@anchor\expandafter{\@currentHref}{\relax}%
+ }#1%
+ \fi}%
+ \g@addto@macro\caption@prepareslc{\let\caption@makeanchor\@firstofone}%
+ \newif\if@capstart
+ \def\caption@start{\caption@ifhypcap\caption@start@\relax}%
+ \def\caption@start@{%
+ \caption@makestart\@captype
+ \caption@startanchor\@currentHref
+ \global\@capstarttrue
+ \let\hc@currentHref\@currentHref
+ \def\caption@makecurrentHref##1{%
+ \global\@capstartfalse
+ \global\let\@currentHref\hc@currentHref}%
+ \let\caption@makeanchor\@firstofone
+ }%
+ \newcommand*\caption@makestart[1]{%
+ \begingroup
+ \Hy@hypertexnamesfalse
+ \hyper@makecurrent{#1.caption}%
+ \endgroup
+ \caption@Debug{hypcap start=\@currentHref}}%
+ \newcommand*\caption@startanchor[1]{%
+ \ifvmode\begingroup
+ \caption@Debug{hypcap anchor: #1 (vertical mode)}%
+ \@tempdima\prevdepth
+ \nointerlineskip
+ \vspace*{-\caption@hypcapspace}%
+ \caption@anchor{#1}%
+ \vspace*{\caption@hypcapspace}%
+ \prevdepth\@tempdima
+ \endgroup\else
+ \caption@Debug{hypcap anchor: #1 (horizontal mode)}%
+ \caption@anchor{#1}%
+ \fi}%
+ \newcommand*\caption@anchor[1]{%
+ \ifmeasuring@ \else
+ \caption@raisedlink{\hyper@anchorstart{#1}\hyper@anchorend}%
+ \fi}%
+ \ifx\HyperRaiseLinkLength\@tempdima
+ \def\caption@raisedlink#1{\ifvmode#1\else\Hy@raisedlink{#1}\fi}%
+ \else
+ \let\caption@raisedlink\Hy@raisedlink
+ \fi
+ \def\caption@@start{%
+ \caption@ifundefined\hc@currentHref{%
+ \caption@Warning{%
+ The option `hypcap=true' will be ignored for this\MessageBreak
+ particular \string\caption}}{}}%
+ \def\caption@freezeHref{%
+ \let\caption@ORI@start\caption@start
+ \def\caption@start{\let\caption@start\caption@ORI@start}%
+ \global\let\caption@currentHref\@undefined
+ \def\caption@@start{\global\let\caption@currentHref\@currentHref}%
+ \let\caption@ORI@setfloatcapt\caption@setfloatcapt
+ \renewcommand*\caption@setfloatcapt{%
+ \ifx\caption@currentHref\@undefined \else
+ \let\caption@makeanchor\@firstofone
+ \fi
+ \caption@ORI@setfloatcapt}}%
+ \def\caption@defrostHref{%
+ \ifx\caption@currentHref\@undefined \else
+ \caption@startanchor\caption@currentHref
+ \global\let\caption@currentHref\@undefined
+ \fi}%
+ }}{}
+\caption@IfPackageLoaded{hypcap}{% v1.0
+ \ifx\caption@start\relax \else % hyperref hasn't stopped early
+ \let\caption@ORI@capstart\capstart % save for compatibility mode
+ \caption@ifundefined\capstarttrue % check for v1.10 of hypcap package
+ {\def\capstart{\caption@start@}}%
+ {\def\capstart{\ifcapstart\caption@start@\fi}}%
+ \let\caption@start\relax
+ \let\caption@@start\relax
+ \caption@set@bool\caption@ifhypcap 1%
+ \renewcommand*\caption@hypcapspace{\hypcapspace}%
+ \fi}{}
+\caption@IfPackageLoaded{listings}[2004/02/13 v1.2]{%
+ \caption@setbool{lst@Init}{0}%
+ \lst@AddToHook{Init}{\caption@setbool{lst@Init}{1}}%
+ \let\caption@ORI@lst@MakeCaption\lst@MakeCaption
+ \def\lst@MakeCaption#1{% #1 is `t' or `b'
+ \begingroup
+ \caption@iflst@Init{}{%
+ \edef\caption@lst@leftskip{\noexpand\hskip-\the\@totalleftmargin\noexpand\relax}%
+ \l@addto@macro\caption@beginhook\caption@lst@leftskip}%
+ \caption@setposition{#1}%
+ \caption@iftop{%
+ \@tempdima\belowcaptionskip
+ \belowcaptionskip\abovecaptionskip
+ \abovecaptionskip\@tempdima}{}%
+ \caption@setup{rule=0}%
+ \caption@setoptions{lstlisting}%
+ \caption@setautoposition{#1}%
+ \caption@begin{lstlisting}%
+ \caption@ORI@lst@MakeCaption{#1}%
+ \caption@end
+ \endgroup}%
+ \def\lst@makecaption{\caption@starfalse\@makecaption}%
+ \def\lst@maketitle{\caption@startrue\@makecaption\@empty}%
+ \providecommand*\ext@lstlisting{lol}%
+}{}
+\providecommand*\LTcaptype{table}
+\caption@IfPackageLoaded{longtable}[1995/05/24 v3.14]{%
+ \RequirePackage{ltcaption}[=2018/08/26]%
+ \let\LT@@makecaption\@undefined
+ \caption@AtBeginDocument{%
+ \let\caption@ORI@LT@array\LT@array
+ \renewcommand*\LT@array{%
+ \global\let\caption@opt@@longtable\@undefined
+ \def\captionsetup{%
+ \noalign\bgroup
+ \@ifstar\@captionsetup\@captionsetup}% gobble *
+ \def\@captionsetup##1{\LT@captionsetup{##1}\egroup}%
+ \def\LT@captionsetup##1{%
+ \captionsetup@startrue\caption@setup@options[@longtable]{##1}%
+ \global\let\caption@opt@@longtable\caption@opt@@longtable}%
+ \def\@captionabovetrue{\LT@captionsetup{position=t}}%
+ \def\@captionabovefalse{\LT@captionsetup{position=b}}%
+ \def\captionlistentry{%
+ \noalign\bgroup
+ \@ifstar{\egroup\LT@listentry\LTcaptype}% gobble *
+ {\egroup\LT@listentry\LTcaptype}}%
+%% \let\Hy@LT@currentHlabel\@currentHlabel
+%% \let\@currentHlabel\Hy@LT@currentHlabel
+ \def\continuedfloat{\noalign{%
+ \caption@Error{\noexpand\continuedfloat outside float}}}%
+ \let\bicaption\LT@bicaption
+ \caption@ORI@LT@array}}%
+ \def\LT@capti@n{%
+ \@ifstar
+ {\egroup\LT@c@ption\@gobble[]}%
+ {\egroup\caption@xdblarg{\LT@c@ption\@firstofone}}}%
+ \renewcommand\LT@makecaption[3]{%
+ \caption@LT@make{%
+ \caption@LT@settype\LTcaptype
+ \caption@LT@setup
+ \caption@setautoposition{\ifcase\LT@rows t\else b\fi}%
+ \caption@startrue#1\caption@starfalse
+ \caption@prepare@stepcounter\LTcaptype{LT}%
+ \caption@begin\LTcaptype
+ \caption@normalsize
+ \vskip-\ht\strutbox
+ \caption@ifdefined\FBifcaptop{%
+ \let\caption@belowskip\@empty}{}%
+ \caption@make@above
+ \caption@@make{#2}{#3}\endgraf
+ \caption@make@below
+ \caption@end}}%
+ \renewcommand*\LT@listentry[2]{%
+ \begingroup
+ \caption@LT@settype{#1}%
+ \caption@listentry\@firstoftwo[{#1}]{#2}%
+ \endgroup\ignorespaces}%
+ \newcommand*\caption@LT@settype[1]{%
+ \caption@settype*{#1}%
+ \ifdim\LTcapwidth=4in \else
+ \setcaptionwidth\LTcapwidth
+ \fi
+ \caption@setoptions{longtable}%
+ \caption@setoptions{@longtable}}%
+ \caption@AtBeginDocument{\caption@ifdefined\flrow@setlist@{%
+ \caption@InfoNoLine{Fixing longtable code of `floatrow' package}%
+ \let\caption@flrow@setlist@\flrow@setlist@
+ \renewcommand\flrow@setlist@[1]{%
+ \def\caption@tempa{{table}{longtable}}%
+ \def\caption@tempb{#1}%
+ \ifx\caption@tempa\caption@tempb
+ \def\@captype{table}%
+ \fi
+ \caption@flrow@setlist@{#1}}%
+ }{}}%
+}{}
+\providecommand*\caption@LT@setup{}
+\caption@IfPackageLoaded{picinpar}{%
+ \long\def\figwindow[#1,#2,#3,#4] {%
+ \caption@window{figure}%
+ \caption@setoptions{figwindow}%
+ \begin{window}[#1,#2,{#3},\caption@wincaption{#4}] }%
+ \long\def\tabwindow[#1,#2,#3,#4] {%
+ \caption@window{table}%
+ \caption@setoptions{tabwindow}%
+ \begin{window}[#1,#2,{#3},\caption@wincaption{#4}] }%
+ \newcommand*\caption@window[1]{%
+ \let\@makecaption\caption@@make
+ \caption@setautoposition b%
+ \caption@settype{#1}%
+ \caption@clearmargin
+ \caption@setfullparboxrestore}%
+ \newcommand\caption@wincaption[1]{%
+ \ifdim\picwd=\z@
+ \let\caption@makecurrent\@gobbletwo
+ \let\caption@@start\relax
+ \caption@prepareslc
+ \else
+ \caption@setflag1%
+ \fi
+ \edef\@tempa{\expandafter\noexpand\@car#1\@nil}%
+ \if\@tempa*%
+ \let\@tempa\@firstofone
+ \else\if\@tempa[%]
+ \let\@tempa\@firstofone
+ \else
+ \let\@tempa\@empty
+ \fi\fi
+ \expandafter\caption\@tempa{#1}}%
+}{}
+\newcommand*\piccaptiontype[1]{\def\@piccaptype{#1}}
+\caption@IfPackageLoaded{picins}{%
+ \caption@ifundefined\@piccaptype{%
+ \caption@iftype{%
+ \let\@piccaptype\@captype
+ }{%
+ \def\@piccaptype{figure}%
+ }%
+ }{}%
+ \let\@captype\@undefined
+ \def\piccaption{\caption@star\relax{\caption@dblarg\@piccaption}}%
+ \let\caption@ORI@make@piccaption\make@piccaption
+ \def\make@piccaption{%
+ \let\caption@ORI\caption
+ \long\def\caption[##1]##2{%
+ \caption@freezeHref % will be defrosted in \ivparpic
+ \caption@settype\@piccaptype
+ \caption@clearmargin
+ \caption@setfullparboxrestore
+ \caption@setoptions{parpic}%
+ \caption@setautoposition b%
+ \expandafter\expandafter\expandafter\caption@ORI
+ \expandafter\expandafter\expandafter[%
+ \expandafter\expandafter\expandafter{%
+ \expandafter##1\expandafter}\expandafter]\expandafter{##2}}%
+ \caption@ORI@make@piccaption
+ \let\caption\caption@ORI}%
+
+ \let\caption@ORI@ivparpic\ivparpic
+ \def\ivparpic(#1,#2)(#3,#4)[#5][#6]#7{%
+ \let\caption@ORI@noindent\noindent
+ \def\noindent{%
+ \caption@defrostHref
+ \let\noindent\caption@ORI@noindent
+ \noindent}%
+ \caption@ORI@ivparpic(#1,#2)(#3,#4)[{#5}][{#6}]{#7}%
+ \let\noindent\caption@ORI@noindent}%
+}{%
+ \let\piccaptiontype\@undefined
+}
+\caption@IfPackageLoaded{rotating}[1995/08/22 v2.10]{%
+ \def\rotcaption{\let\@makecaption\@makerotcaption\caption}%
+ \def\rotcaptionof{%
+ \caption@teststar\caption@of{\rotcaption*}\rotcaption}%
+ \long\def\@makerotcaption#1#2{%
+ \rotatebox{90}{%
+ \ifdim\captionwidth=\z@
+ \setcaptionwidth{.8\vsize}%
+ \l@addto@macro\caption@singleline{%
+ \caption@setup{parbox=none}}%
+ \fi
+ \let\caption@calcmargin\relax
+ \caption@@make{#1}{#2}}%
+ \nobreak\hspace{12pt}}%
+}{}
+\caption@IfPackageLoaded{sidecap}[2003/06/06 v1.6f]{%
+ \caption@setbool{needfreeze}{1}%
+ \let\caption@ORI@SC@zfloat\SC@zfloat
+ \def\SC@zfloat#1#2#3[#4]{%
+ \caption@ORI@SC@zfloat{#1}{#2}{#3}[#4]%
+ \SC@RestoreCommands
+ \caption@freezetype{#2}%
+ \let\SC@label\label}%
+ \providecommand*\SC@RestoreCommands{%
+ \let\caption=\SC@orig@caption \let\label=\SC@orig@label}%
+ \let\caption@ORI@endSC@FLOAT\endSC@FLOAT
+ \def\endSC@FLOAT{%
+ \def\caption@setSC@justify{%
+ \caption@clearmargin
+ \ifx\SC@justify\@empty \else
+ \let\caption@hj\SC@justify
+ \let\SC@justify\@empty
+ \fi}%
+ \let\caption\SC@orig@caption
+ \def\SC@orig@caption[##1]##2{%
+ \caption@setSC@justify
+%%% \caption@setoptions{SC}%
+ \caption@setoptions{SC\@captype}%
+ \caption@defrost}%
+ \caption@setSC@justify % for compatibility mode
+ \caption@prepare@defrost
+ \caption@ORI@endSC@FLOAT}%
+}{}
+\caption@IfPackageLoaded{subfigure}[2002/01/23 v2.1]{%
+ \def\sf@ifpositiontop{%
+ \ifx\@captype\@undefined
+ \expandafter\@gobbletwo
+ \else\ifx\@captype\relax
+ \expandafter\expandafter\expandafter\@gobbletwo
+ \else
+ \expandafter\expandafter\expandafter\sf@if@position@top
+ \fi\fi}
+ \def\sf@if@position@top{%
+ \@ifundefined{if\@captype topcap}%
+ {\@gobbletwo}%
+ {\@nameuse{if\@captype topcap}%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}}
+}{}
+\caption@IfPackageLoaded{supertabular}[2002/07/19 v4.1e]{%
+ \renewcommand*\tablecaption{%
+ \caption@star
+ {\refstepcounter{table}}%
+ {\caption@dblarg{\@xtablecaption}}}%
+ \let\caption@ORI@xtablecaption\@xtablecaption
+ \long\def\@xtablecaption[#1]#2{%
+ \caption@gettitle{#2}%
+ \caption@ORI@xtablecaption[{#1}]{#2}}%
+ \long\def\ST@caption#1[#2]#3{\par%
+ \caption@settype*{#1}%
+ \caption@setoptions{supertabular}%
+ \def\caption@fixposition{%
+ \caption@setposition{\if@topcaption t\else b\fi}}%
+ \caption@beginex{#1}{#2}{#3}%
+ \caption@boxrestore
+ \caption@normalsize
+ \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
+ \caption@end}%
+}{}
+\caption@IfPackageLoaded{xtab}[2000/04/09 v2.3]{%
+ \renewcommand*\tablecaption{%
+ \caption@star
+ {\refstepcounter{table}}%
+ {\caption@dblarg{\@xtablecaption}}}%
+ \let\caption@ORI@xtablecaption\@xtablecaption
+ \long\def\@xtablecaption[#1]#2{%
+ \caption@gettitle{#2}%
+ \caption@ORI@xtablecaption[{#1}]{#2}}%
+ \long\def\ST@caption#1[#2]#3{\par%
+ \caption@settype*{#1}%
+ \caption@setoptions{xtabular}%
+ \def\caption@fixposition{%
+ \caption@setposition{\if@topcaption t\else b\fi}}%
+ \@initisotab
+ \caption@beginex{#1}{#2}{#3}%
+ \caption@boxrestore
+ \caption@normalsize
+ \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
+ \caption@end
+ \global\advance\ST@pageleft -\PWSTcapht
+ \ST@trace\tw@{Added caption. Space left for xtabular: \the\ST@pageleft}}%
+}{}
+\caption@IfPackageLoaded{threeparttable}[2003/06/13 v3.0]{%
+ \let\caption@ORI@threeparttable\threeparttable
+ \renewcommand*\threeparttable{%
+ \caption@settype{\@ifundefined{@captype}{table}{\@captype}}%
+%%% \caption@setposition a% ?
+ \caption@clearmargin
+ \caption@setoptions{threeparttable}%
+ \caption@ORI@threeparttable}%
+ \let\caption@ORI@measuredfigure\measuredfigure
+ \renewcommand*\measuredfigure{%
+ \caption@settype{\@ifundefined{@captype}{figure}{\@captype}}%
+%%% \caption@setposition a% ?
+ \caption@clearmargin
+ \caption@setoptions{measuredfigure}%
+ \caption@ORI@measuredfigure}%
+ \def\TPT@caption#1[#2]#3{%
+ \gdef\TPT@docapt{%
+ \global\let\TPT@docapt\@undefined
+ \caption@setautoposition\caption@TPT@position
+ \TPT@LA@caption{#1}[{#2}]{#3}}%
+ \ifx\TPT@hsize\@empty
+ \let\label\TPT@gatherlabel % Bug: does not work for measuredfigures
+ \gdef\caption@TPT@position{t}%
+ \g@addto@macro\TPT@docapt\caption@TPT@eatvskip
+ \else
+ \def\caption@TPT@position{b}%
+ \TPT@docapt
+ \fi
+ \ignorespaces}%
+ %\newcommand*\caption@TPT@eatvskip{\vskip-.2\baselineskip}%
+ \def\caption@TPT@eatvskip#1\vskip{#1\@tempdima=}%
+}{}
+\caption@IfPackageLoaded{wrapfig}[2003/01/31 v3.6]{%
+ \renewcommand*\wrapfloat[1]{%
+ \def\@captype{#1}%
+ \@ifundefined{fst@#1}{}{%
+ \@nameuse{fst@#1}%
+ \def\WF@floatstyhook{\let\@currbox\WF@box
+ \global\setbox\WF@box\float@makebox{\wd\WF@box}}}%
+ \@ifnextchar[\WF@wr{\WF@wr[]}}
+ \def\WF@rapt[#1]#2{% final two args: #1 = overhang, #2 = width,
+ \gdef\WF@ovh{#1}% hold overhang for later, when \width is known
+ \global\setbox\WF@box\vtop\bgroup \setlength\hsize{#2}%
+ \expandafter\WF@captionstyhook\expandafter{\@captype}% <= new
+ \ifdim\hsize>\z@ \@parboxrestore \else
+ \setbox\z@\hbox\bgroup \let\wf@@caption\caption \let\caption\wf@caption
+ \ignorespaces \fi}%
+ \def\WF@captionstyhook#1{%
+ \let\@captype\@undefined
+ \@ifundefined{fst@#1}{}{\@float@setevery{#1}}%
+ \caption@settype{#1}%
+ \caption@clearmargin
+%%% \caption@setoptions{wrap}%
+ \caption@setoptions{wrap#1}}%
+}{}
+\endinput
+%%
+%% End of file `caption_2020-07-29.sty'.