%%
%% This is file `caption_2007-04-16.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% fallback/v3.0/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}[2022/07/10 v3.0r Customising captions (AR)]
\RequirePackage{caption3}[=2007/01/31] % needs v1.0l or newer
\@ifpackageloaded{caption2}{%
  \caption@Error{You can't use both the caption *and* caption2 package}%
  \endinput
}{}
\DeclareCaptionOption{config}[caption]{%
   \InputIfFileExists{#1.cfg}{\typeout{*** Local configuration file
                                       #1.cfg used ***}}%
                             {\PackageWarning{caption}{Configuration
                               file #1.cfg not found}}}
\DeclareCaptionOption*{figureposition}{\captionsetup[figure]{position=#1}}
\DeclareCaptionOption*{tableposition}{\captionsetup[table]{position=#1}}
\DeclareCaptionOption*{figurename}{\captionsetup[figure]{name=#1}}
\DeclareCaptionOption*{tablename}{\captionsetup[table]{name=#1}}
\DeclareCaptionOption*{normal}[]{\caption@setformat{normal}}
\DeclareCaptionOption*{isu}[]{\caption@setformat{hang}}
\DeclareCaptionOption*{hang}[]{\caption@setformat{hang}}
\DeclareCaptionOption*{center}[]{\caption@setjustification{centering}}
\DeclareCaptionOption*{anne}[]{\caption@setjustification{centerlast}}
\DeclareCaptionOption*{centerlast}[]{\caption@setjustification{centerlast}}
\DeclareCaptionOption*{scriptsize}[]{\def\captionfont{\scriptsize}}
\DeclareCaptionOption*{footnotesize}[]{\def\captionfont{\footnotesize}}
\DeclareCaptionOption*{small}[]{\def\captionfont{\small}}
\DeclareCaptionOption*{normalsize}[]{\def\captionfont{\normalsize}}
\DeclareCaptionOption*{large}[]{\def\captionfont{\large}}
\DeclareCaptionOption*{Large}[]{\def\captionfont{\Large}}
\DeclareCaptionOption*{up}[]{\l@addto@macro\captionlabelfont\upshape}
\DeclareCaptionOption*{it}[]{\l@addto@macro\captionlabelfont\itshape}
\DeclareCaptionOption*{sl}[]{\l@addto@macro\captionlabelfont\slshape}
\DeclareCaptionOption*{sc}[]{\l@addto@macro\captionlabelfont\scshape}
\DeclareCaptionOption*{md}[]{\l@addto@macro\captionlabelfont\mdseries}
\DeclareCaptionOption*{bf}[]{\l@addto@macro\captionlabelfont\bfseries}
\DeclareCaptionOption*{rm}[]{\l@addto@macro\captionlabelfont\rmfamily}
\DeclareCaptionOption*{sf}[]{\l@addto@macro\captionlabelfont\sffamily}
\DeclareCaptionOption*{tt}[]{\l@addto@macro\captionlabelfont\ttfamily}
\DeclareCaptionOption*{nooneline}[]{\caption@setbool{slc}{0}}
\caption@setbool{ruled}{0}
\DeclareCaptionOption*{ruled}[]{\caption@setbool{ruled}{1}}
\DeclareCaptionOption*{flushleft}[]{\caption@setjustification{raggedright}}
\DeclareCaptionOption*{flushright}[]{\caption@setjustification{raggedleft}}
\DeclareCaptionOption*{oneline}[]{\caption@setbool{slc}{1}}
\DeclareCaptionOption*{ignoreLTcapwidth}[]{}
\DeclareCaptionOption*{onelinecaption}[]{\caption@setbool{slc}{1}}
\DeclareCaptionOption*{noonelinecaption}[]{\caption@setbool{slc}{0}}
\DeclareCaptionOption*{tablecaptionabove}[]{\captionsetup[table]{position=t}}
\DeclareCaptionOption*{tablecaptionbelow}[]{\captionsetup[table]{position=b}}
\newcommand*\caption@declarepackage[1]{%
  \caption@setbool{pkt@#1}{1}%
  \DeclareCaptionOption*{#1}{\caption@setbool{pkt@#1}{##1}}}
\AtEndOfPackage{\let\caption@declarepackage\@undefined}
\newcommand\caption@ifpackage[3]{%
  \edef\caption@tempa{%
    \caption@ifbool{pkt@#1}%
      {\@ifundefined{#2}{AtBeginDocument}{firstofone}}%
      {gobble}}%
  \caption@Info{#1=\caption@ifbool{pkt@#1}{1}{0} %
       (\@ifundefined{#2}{not }{}loaded->\caption@tempa)}%
  \caption@ifbool{pkt@#1}{%
    \@ifundefined{#2}%
      {\let\caption@tempa\AtBeginDocument}%
      {\let\caption@tempa\@firstofone}%
  }{%
    \let\caption@tempa\@gobble
  }%
  \caption@tempa{\@ifundefined{#2}{}{#3}}%
  \caption@undefbool{pkt@#1}}
\AtEndOfPackage{\let\caption@ifpackage\@undefined}
\caption@declarepackage{caption}
\caption@declarepackage{float}
\caption@declarepackage{floatrow}
\caption@declarepackage{hyperref}
\caption@declarepackage{hypcap}
\caption@declarepackage{listings}
\caption@declarepackage{longtable}
\caption@declarepackage{picins}
\caption@declarepackage{rotating}
\caption@declarepackage{sidecap}
\caption@declarepackage{supertabular}
\DeclareCaptionOption{verbose}[1]{%
  \caption@setbool{verbose}{#1}%
  \caption@ifverbose{%
    \def\caption@Info{\PackageInfo{caption}}%
  }{%
    \let\caption@Info\@gobble
  }}
\setkeys{caption}{verbose=0}
\caption@ProcessOptions{caption}
\caption@ifbool{pkt@caption}{}{\endinput}
\caption@undefbool{pkt@caption}
\def\captionof{\@ifstar{\caption@of{\caption*}}{\caption@of\caption}}
\newcommand*\caption@of[2]{\def\@captype{#2}#1}
\DeclareCaptionOption{name}{\caption@setfloatname\@captype{#1}}
\DeclareCaptionOption{type}{\def\@captype{#1}}
\providecommand\ContinuedFloat{%
  \@ifnextchar[%]
    \@ContinuedFloat
    {\ifx\@captype\@undefined
       \@latex@error{\noexpand\ContinuedFloat outside float}\@ehd
     \else
       \@ContinuedFloat[\@captype]%
     \fi}}
\def\@ContinuedFloat[#1]{%
  \addtocounter{#1}\m@ne
  \caption@ContinuedFloat{#1}%
  \caption@@ContinuedFloat{#1}}
\let\caption@ContinuedFloat\@gobble
\let\caption@resetContinuedFloat\@gobble
\providecommand*\caption@@ContinuedFloat[1]{}
\newcommand*\caption@begin[1]{%
  \caption@resetContinuedFloat{#1}%
  \begingroup
  \caption@setfloattype{#1}%
  \ifx\caption@lfmt\caption@lfmt@default\else
    \@namedef{fnum@#1}{%
      \caption@lfmt{\caption@floatname{#1}}{\@nameuse{the#1}}}%
  \fi
  \caption@fixposition
  \global\let\caption@fixedposition\caption@position}
\newcommand\caption@beginex[3]{%
  \caption@begin{#1}%
  \caption@iflof%
    {\def\caption@tempa{#2}}%
    {\let\caption@tempa\@empty}%
  \ifx\caption@tempa\@empty
    \long\def\addcontentsline##1##2##3{}% There is no \@gobblethree...
  \fi
  \caption@ifempty{#3}{\let\caption@ifempty\@secondoftwo}%
}
\newcommand*\caption@end{%
  \endgroup
  \let\caption@position\caption@fixedposition}
\let\caption@setfloattype\caption@settype
\newcommand*\caption@letfloattype[2]{%
  \def\caption@setfloattype##1{%
    \caption@settype{##1}#2\caption@settype{#1}}}
\newcommand*\caption@floatname[1]{\@nameuse{#1name}}
\newcommand*\caption@setfloatname[1]{\@namedef{#1name}}
\AtBeginDocument{%
  \@ifundefined{cc@caption}{%
  \@ifundefined{caption@old}{%
    \let\caption@old\caption
    \def\caption{\caption@caption\caption@old}%
    \def\caption@caption#1{%
      \@ifstar{\ContinuedFloat\global\caption@startrue#1[]}{#1}}%
    \let\caption@@old\@caption
    \long\def\@caption#1[#2]#3{%
      \caption@beginex{#1}{#2}{#3}%
        \caption@@old{#1}[{#2}]{#3}%
      \caption@end}%
  }{}}{%
    \caption@Info{captcont package v2.0 detected}%
    \def\caption@caption#1{#1}%
  }%
}
\renewcommand\@makecaption[2]{%
  \caption@iftop{\vskip\belowcaptionskip}{\vskip\abovecaptionskip}%
  \caption@@make{#1}{#2}%
  \caption@iftop{\vskip\abovecaptionskip}{\vskip\belowcaptionskip}}
\@ifundefined{scr@caption}{}{%
  \caption@Info{KOMA-Script class detected}
  \AtBeginDocument{\let\scr@caption\caption}
  \def\onelinecaptionstrue{\caption@setbool{slc}{1}}
  \def\onelinecaptionsfalse{\caption@setbool{slc}{0}}
  \def\captionabove{%
    \caption@setposition{t}\let\caption@setposition\@gobble
    \scr@caption}
  \def\captionbelow{%
    \caption@setposition{b}\let\caption@setposition\@gobble
    \scr@caption}
}
\AtBeginDocument{\@ifundefined{f@ffrench}{}{%
  \caption@Info{french(le) package detected}%
  \@ifundefined{GOfrench}%
    {\let\caption@tempa\@firstofone}%
    {\def\caption@tempa{\g@addto@macro\GOfrench}}%
  \caption@tempa{%
    \let\@cnORI\caption
    \let\caption@tablescaption\@tablescaption
    \def\@tablescaption{\caption@caption\caption@tablescaption}%
    \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@setfloatposition{%
  \caption@setposition{\@fs@iftopcapt t\else b\fi}}
\caption@ifpackage{float}{@float@setevery}{%
  \caption@Info{float package v1.3 (or newer) detected}%
  \let\caption@of@float\@gobble
  \renewcommand*\caption@of[2]{%
    \@ifundefined{fst@#2}{}{%
      \let\caption@of@float\@firstofone
      \@nameuse{fst@#2}\@float@setevery{#2}}%
    \def\@captype{#2}#1}%
  \let\caption@@float\float@caption
  \long\def\float@caption#1[#2]#3{%
    \caption@beginex{#1}{#2}{#3}%
      \let\@fs@capt\caption@@make
      \caption@@float{#1}[{#2}]{#3}%
      \caption@of@float{%
        \@ifundefined{hyper@@anchor}{}{%
          \begingroup
            \@tempdima\prevdepth
            \nointerlineskip
            \let\leavevmode\relax
            \hyper@@anchor\@currentHref\relax
            \prevdepth\@tempdima
          \endgroup}%
        \def\caption@@make##1##2{\unvbox\@floatcapt}%
        \@makecaption{}{}}%
    \caption@end}%
  \let\caption@float@setevery\@float@setevery
  \def\@float@setevery#1{%
    \def\caption@floatname##1{\@nameuse{fname@#1}}%
    \def\caption@setfloatname##1{\@namedef{fname@#1}}%
    \expandafter\let\expandafter\caption@tempa\csname @float@c@#1\endcsname
    \ifx\caption@tempa\float@caption
    \else\ifx\caption@tempa\@caption
    \else\ifx\caption@tempa\caption@@float
      \caption@Info{\protect\@float@c@#1\space := \protect\float@caption}%
      \expandafter\let\csname @float@c@#1\endcsname\float@caption
    \else
      \caption@Info{\protect\@float@c@#1\space := \protect\@caption}%
      \expandafter\let\csname @float@c@#1\endcsname\@caption
    \fi\fi\fi
    \expandafter\ifx\csname @float@c@#1\endcsname\float@caption
      \caption@setfloatposition
      \expandafter\let\expandafter\caption@fst\csname fst@#1\endcsname
      \edef\caption@fst{\noexpand\string\expandafter\noexpand\caption@fst}%
      \edef\caption@fst{\noexpand\@gobblefour\caption@fst}%
      \caption@setstyle*\caption@fst
      \caption@settype\caption@fst
    \fi
    \caption@float@setevery{#1}}%
  \g@addto@macro\fs@plaintop{\def\@fs@mid{\vspace\abovecaptionskip\relax}}%
  \g@addto@macro\fs@boxed{\def\@fs@mid{\kern\abovecaptionskip\relax}}%
}
\captionsetup[boxed]{skip=2pt}
\caption@ifbool{ruled}{%
  \captionsetup[ruled]{margin=0pt,singlelinecheck=0}%
}{%
  \DeclareCaptionStyle{ruled}{labelfont=bf,labelsep=space,strut=0}%
}
\caption@undefbool{ruled}
\caption@ifpackage{floatrow}{flrow@setlist}{%
  \caption@Info{floatrow package v0.1f (or newer) detected}%
  \renewcommand*\caption@of[2]{%
    \def\@captype{#2}\flrow@setlist{{#2}}#1}%
  \renewcommand*\caption@floatname[1]{%
    \@nameuse{\@ifundefined{fname@#1}{#1name}{fname@#1}}}%
  \renewcommand*\caption@setfloatname[1]{%
    \@namedef{\@ifundefined{fname@#1}{#1name}{fname@#1}}}%
}
\caption@ifpackage{hyperref}{theHfigure}{%
  \caption@Info{hyperref package v6.74m (or newer) detected}%
  \def\caption@ContinuedFloat#1{%
    \@ifundefined{theH#1}{}{%
      \@ifundefined{CF@#1}{%
        \expandafter\caption@newcounter\csname CF@#1\endcsname
        \caption@resetContinuedFloat{#1}}{}%
      \expandafter\caption@stepcounter\csname CF@#1\endcsname
      \expandafter\l@addto@macro\csname theH#1\endcsname{%
        .\csname CF@#1\endcsname}%
      \let\caption@resetContinuedFloat\@gobble
    }}%
  \def\caption@resetContinuedFloat#1{%
    \@ifundefined{CF@#1}{}{%
      \expandafter\caption@setcounter\csname CF@#1\endcsname0}}%
}
\caption@ifpackage{hypcap}{hc@caption}{%
  \caption@Info{hypcap package v1.0 (or newer) detected}%
  \let\caption@capstart\capstart
  \def\capstart{%
    \let\hc@org@caption\caption
    \begingroup
      \let\H@refstepcounter\@gobble
      \Hy@hypertexnamesfalse
      \caption@capstart
      \@ifundefined{hc@hyperref}{}{% hypcap v1.7
        \global\advance\csname c@\@captype\endcsname\@ne}%
      \global\let\hc@currentHref\@currentHref
    \endgroup
    \@ifundefined{hc@hyperref}%
      {\let\next\@firstofone}{\let\next\hc@hyperref}% hypcap v1.7
    \next{\def\caption{%
      \let\caption\hc@org@caption
      \H@refstepcounter\@captype
      \@ifundefined{hc@hyperref}{}{% hypcap v1.7
        \global\advance\csname c@\@captype\endcsname\m@ne}%
      \caption@caption\hc@caption}}%
  }%
  \let\caption@hc@@caption\hc@@caption
  \long\def\hc@@caption#1[#2]#3{%
    \caption@beginex{#1}{#2}{#3}%
      \let\caption@hyper@makecurrent\hyper@makecurrent
      \def\hyper@makecurrent\@captype{%
        \let\hyper@makecurrent\caption@hyper@makecurrent
        \global\let\@currentHref\hc@currentHref}%
      \caption@hc@@caption{#1}[{#2}]{#3}%
    \caption@end}%
}
\caption@ifpackage{listings}{lst@MakeCaption}{%
  \caption@Info{listings package v1.2 (or newer) detected}%
  \let\caption@lst@MakeCaption\lst@MakeCaption
  \def\lst@MakeCaption#1{%
    \def\caption@autoposition{\caption@setposition{#1}}%
    \caption@begin{lstlisting}%
      \caption@lst@MakeCaption{#1}%
    \caption@end}%
}
\caption@ifpackage{longtable}{LT@makecaption}{%
  \caption@Info{longtable package v3.15 (or newer) detected}%
  \def\LT@makecaption#1#2#3{%
    \caption@LT@make{%
      \caption@startrue#1\caption@starfalse
      \caption@letfloattype{longtable}{%
        \ifdim\LTcapwidth=4in \else
          \setcaptionwidth\LTcapwidth
        \fi}%
      \let\caption@defaultpos\@firstoftwo
      \def\caption@autoposition{%
        \caption@setposition{\ifcase\LT@rows t\else b\fi}}%
      \caption@begin{table}%
        \vskip-\ht\strutbox
        \caption@iftop{\vskip\belowcaptionskip}{\vskip\abovecaptionskip}%
        \caption@@make{#2}{#3}\endgraf
        \caption@iftop{\vskip\abovecaptionskip}{\vskip\belowcaptionskip}%
      \caption@end}}%
  \newcommand\caption@LT@make[1]{%
    \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\hsize{#1}\hss}}}%
}
\caption@ifpackage{picins}{piccaption}{%
  \caption@Info{picins package v3.0 (or newer) detected}%
  \def\piccaption{\@dblarg\@piccaption}
}
\caption@ifpackage{rotating}{@rotcaption}{%
  \caption@Info{rotating package v2.0 (or newer) detected}%
  \def\rotcaption{\let\@makecaption\@makerotcaption\caption}%
  \def\rotcaptionof{%
    \@ifstar{\caption@of{\rotcaption*}}{\caption@of\rotcaption}}%
  \long\def\@makerotcaption#1#2{%
    \ifdim\captionwidth=\z@
      \setcaptionwidth{.8\textheight}%
      \caption@slc{#1}{#2}{.8\vsize}{%
        \let\caption@makerot\caption@@make
        \setcaptionmargin\z@
        \let\captionbox\@secondoftwo}%
      \caption@setbool{slc}{0}% been there, done that
    \fi
    \rotatebox{90}{\caption@makerot{#1}{#2}}%
    \nobreak\hspace{12pt}}%
  \newcommand\caption@makerot[2]{%
    \begin{minipage}\captionwidth\caption@@make{#1}{#2}\end{minipage}}%
}
\caption@ifpackage{sidecap}{endSC@FLOAT}{%
  \caption@Info{sidecap package v1.4d (or newer) detected}%
  \@ifundefined{caption@caption}%
    {\let\caption@tempa\AtBeginDocument}%
    {\let\caption@tempa\@firstofone}%
  \caption@tempa{\let\SC@caption=\caption}%
  \let\caption@SC@zfloat\SC@zfloat
  \def\SC@zfloat#1#2#3[#4]{%
    \caption@SC@zfloat{#1}{#2}{#3}[#4]%
    \global\let\SC@CAPsetup\@empty
    \def\captionsetup##1{\g@addto@macro\SC@CAPsetup{,##1}}%
    \let\caption@SC\caption
    \def\caption{\caption@caption\caption@SC}%
    \ignorespaces}%
  \let\caption@endSC@FLOAT\endSC@FLOAT
  \def\endSC@FLOAT{%
    \let\@captype\SC@captype
    \caption@esetup\SC@CAPsetup
    \caption@letfloattype{SC\@captype}{%
      \@listdepth\z@
      \setcaptionmargin\z@
      \@ifundefined{SC@justify}{}{%
        \ifx\SC@justify\@empty\else
          \let\caption@hj\SC@justify
          \let\SC@justify\@empty
        \fi}}%
    \long\def\caption@ifempty##1{%
      \ifx\SC@CAPtext\@empty
        \expandafter\@firstofone
      \else
        \expandafter\@gobble
      \fi}%
    \caption@endSC@FLOAT}%
}
\def\caption@setSTposition{%
  \caption@setposition{\if@topcaption t\else b\fi}}
\caption@ifpackage{supertabular}{ST@caption}{%
  \caption@Info{supertabular package detected}%
  \let\caption@tablecaption\tablecaption
  \def\tablecaption{\caption@caption\caption@tablecaption}%
  \long\def\ST@caption#1[#2]#3{\par%
    \caption@letfloattype{supertabular}{}%
    \let\caption@fixposition\caption@setSTposition
    \caption@beginex{#1}{#2}{#3}%
      \addcontentsline{\csname ext@#1\endcsname}{#1}%
                      {\protect\numberline{%
                          \csname the#1\endcsname}{\ignorespaces #2}}%
      \@parboxrestore
      \normalsize
      \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
    \caption@end}%
}
\endinput
%%
%% End of file `caption_2007-04-16.sty'.
