summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/bgteubner/hhsubfigure/hhsubfigure.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/bgteubner/hhsubfigure/hhsubfigure.dtx')
-rw-r--r--macros/latex/contrib/bgteubner/hhsubfigure/hhsubfigure.dtx3913
1 files changed, 3913 insertions, 0 deletions
diff --git a/macros/latex/contrib/bgteubner/hhsubfigure/hhsubfigure.dtx b/macros/latex/contrib/bgteubner/hhsubfigure/hhsubfigure.dtx
new file mode 100644
index 0000000000..cd39eb59cc
--- /dev/null
+++ b/macros/latex/contrib/bgteubner/hhsubfigure/hhsubfigure.dtx
@@ -0,0 +1,3913 @@
+% \iffalse % hhsubfigure.dtx
+% Subfigure/subtable macros for use with the LaTeX figure/table environments.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Copyright (C) 2003 Harald Harders.
+%
+% This is a slightly modified version of the `subfigure' package by
+% Steven Douglas Cochran. The origianl package can be downloaded from
+% <ftp://ftp.dante.de/tex-archive/macros/latex/contrib/subfigure/>.
+%
+% The hhsubfigure package is free software; it may be distributed under
+% the conditions of the LaTeX Project Public License, either version 1.1
+% 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.1 or later is part of all distributions of LaTeX version
+% 1999/06/01 or later.
+%
+% The captcont package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% LaTeX Project Public License for more details.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% @LaTeX-style-file{
+%% author = "Steven Douglas Cochran (modified by Harald Harders)",
+%% version = "2.1.4",
+%% date = "2003/09/14",
+%% time = "09:34:13",
+%% filename = "hhsubfigure.sty",
+%% email = "h.harders@tu-bs.de",
+%% codetable = "ISO/ASCII",
+%% keywords = "LaTeX, float, figure, table, captcont",
+%% 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 subcaptions to be written to the List of
+%% Figures or List of tables if desired."
+%% }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesFile{hhsubfigure.dtx}
+\documentclass{ltxdoc}
+\usepackage[tight,TABTOPCAP]{hhsubfigure}[2002/03/15]
+\setlength\hfuzz{100pt}
+\setlength\vfuzz{100pt}
+\clubpenalty=10000
+\widowpenalty=10000
+\displaywidowpenalty=5000
+\brokenpenalty=5000
+\begin{document}
+ \DocInput{hhsubfigure.dtx}
+\end{document}
+%</driver>
+%
+%<*ltxdoc>
+\AtBeginDocument{
+% \OnlyDescription % comment out for implementation details
+ \EnableCrossrefs
+ \RecordChanges
+ \CodelineIndex}
+\AtEndDocument{
+ \PrintChanges
+ \PrintIndex}
+%</ltxdoc>
+%
+% \fi
+% \catcode`\^=14 ^^A We will use a ^ for a comment rather than ^^A.
+% \newcommand*{\Lopt}[1]{\textsf{#1}} ^ Package options
+% \newcommand*{\Lfile}[1]{\texttt{#1}} ^ File names
+% \newcommand*{\Lpack}[1]{\textsf{#1}} ^ Package names
+% \newcommand*{\Lenv}[1]{\texttt{#1}} ^ Environment names
+% \newcommand*{\Lcount}[1]{\textsl{\small#1}} ^ Counter names
+% \newcommand*{\Lif}[1]{\textsc{\bf#1}} ^ \if names
+% ^ NOTE: Hacks added to make the final format are marked ``^finalhack''.
+%
+% \changes{v1.0}{05 Mar 1986}{Created.}
+%
+% \changes{v1.1}{02 Nov 1988}{Initial revision.}
+%
+% \changes{v1.2}{30 Aug 1989}{Added a separate bottom margin and
+% expanded the comments.}
+%
+% \changes{v1.3}{22 Oct 1990}{Changed test for empty subcaption inside
+% of \cmd{\@subfigure} to compare tokens and not the subcaption vs.\
+% \cmd{\@empty}. The former (incorrect) test caused an error when the
+% first two letters of the subcaption were the same.}
+%
+% \changes{v1.4}{27 Jun 1992}{Added a hack to allow the \cmd{\label}
+% command to be used within the body of the subfigure giving a
+% reference label in the form \cmd{\arabic{thefigure}\thesubfigure}.
+% Added standard file header for style.}
+%
+% \changes{v1.5}{11 Aug 1992}{Fixed a bug which caused a problem with
+% subcaptions that contained expressions like \cmd{\sqrt}; This was
+% pointed out by Tom Scavo (scavo\@cie.uoregon.edu). A separate bug
+% was fixed which caused different sized subcaptions to be misaligned;
+% This problem was pointed out by Simon Marshall
+% (S.Marshal\@Hull.ac.uk). Also cleaned up the code a mite and
+% {\bf changed} the figure spacing so that if no optional section is
+% given, then the figure is only followed by \cmd{\subfigbottomskip}
+% and not that plus $(\cmd{\subfigcapskip}+\cmd{\strut}\hbox{height})$.
+% This should make it easier to adjust spacing as desired.}
+%
+% \changes{v1.6}{13 May 1993}{Changed to use the \cmd{\thefigure}
+% command in building the referenced label. The old form caused a
+% problem when used with the report.sty as pointed out by Andrew
+% Anselmo (anselmo\@cumesb.mech.columbia.edu). Also modified to
+% restrict the scope of the subfigure \cmd{\label} to the body of the
+% subfigure. Added \cmd{\@thesubfigure} to allow a separate labeling
+% of the subfigure in the figure and in the text. By default it is
+% the same as \cmd{\thesubfigure} with space appended. Added some
+% code to print the subfigure captions to the List-of-Figures file
+% if desired. Finally, added the corresponding support for subtables
+% as well as subfigures. NOTE: the optional subcaption is now a moving
+% argument and any fragile commands that appear in the subcaption must
+% be preceded by a \cmd{\protect} (just like that of the \cmd{\caption}
+% command).}
+%
+% \changes{v2.0}{06 Mar 1995}{This version of \cmd{\subfigure} is the
+% first to be ported to \LaTeXe\ (with backward compatibility to
+% \LaTeX2.09). \cmd{\subfigure} and \cmd{\subtable} are now identical
+% and the environment controls internal differences between them. Now,
+% the subcaption setting portion of \cmd{\@subfloat} is broken into the
+% separate commands \cmd{\@makesubfigurecaption} and
+% \cmd{\@makesubtablecaption} to allow a separate hook for the
+% modification of how the subcaption is constructed and to allow the
+% subtable and subfigure captions to be different. In addition, support
+% of the \Lopt{normal}, \Lopt{hang}, \Lopt{center}, \Lopt{centerlast},
+% \Lopt{nooneline}; \Lopt{scriptsize}, \ldots, \Lopt{Large}; \Lopt{up},
+% \Lopt{it}, \Lopt{sl}, \Lopt{sc}, \Lopt{md}, \Lopt{bf}, \Lopt{rm},
+% \Lopt{sf}, and \Lopt{tt} package options were added for compatibility
+% with the caption.sty by H.A. Sommerfeldt.}
+%
+% \changes{v2.1}{23 Jan 2002}{Upgraded to fix a \cmd{\protect} bug that
+% crept in due to changes in \LaTeXe\ and to enhance the interaction
+% with the ``List-of'' files. Backward compatibility with \LaTeX2.09 is
+% \textbf{not} supported. This version allows optional subcaption
+% strings for the ``List-of'' files and the companion captcont.sty
+% allows further extensions. Added check for \Lfile{subfigure.cfg} file
+% for automatic configuration. Added more options for adjustment of the
+% look-and-feel of the subcaption. Added the ability to independently
+% move the float caption and subcaption before or after the figure.
+% Removed extra space from the top of a figure at the top of a page and
+% some accidental whitespace. Reduced the default space around the
+% figure and made it actual skips. Updated the documentation to
+% describe the new changes and to make some points more clear.}
+%
+% \DoNotIndex{\@@@,\@auxout,\@bsphack,\@dottedtocline,\@empty,\@esphack}
+% \DoNotIndex{\@flushglue,\@for,\@gobble,\@ifnextchar,\@ifpackageloaded}
+% \DoNotIndex{\@ifstar,\@ifundefined,\@minipagefalse,\@nameuse,\@ne}
+% \DoNotIndex{\@rightskip,\@tempboxa,\@tempcnta,\@tempdima}
+% \DoNotIndex{\@tempdimb,\@tempskipb,\@xaddvskip,\addcontentsline}
+% \DoNotIndex{\addtolength,\advance,\alph,\arabic,\AtBeginDocument}
+% \DoNotIndex{\AtEndOfPackage,\begingroup,\bfseries,\bgroup,\box}
+% \DoNotIndex{\DeclareOption,\def,\do,\edef,\egroup,\else,\endgroup}
+% \DoNotIndex{\ExecuteOption,\ExecuteOptions,\ext@figure,\ext@table}
+% \DoNotIndex{\familydefault,\fi,\footnotesize,\fontfamily,\fontseries}
+% \DoNotIndex{\fontshape,\gdef,\global,\hbox,\hfil,\hskip,\hss,\if@minipage}
+% \DoNotIndex{\ifcase,\ifdim,\ifnum,\ifx,\ignorespaces,\InputIfFileExists}
+% \DoNotIndex{\itshape,\label,\lastskip,\leftskip,\Large,\large,\leavevmode}
+% \DoNotIndex{\let,\long,\m@ne,\mdseries,\multiply,\NeedsTeXFormat}
+% \DoNotIndex{\newcommand,\newcounter,\newdimen,\newif,\newlabel,\newskip}
+% \DoNotIndex{\noexpand,\normalsize,\numberline,\or,\p@,\par,\parbox}
+% \DoNotIndex{\parfillskip,\parindent,\ProcessOptions,\protect}
+% \DoNotIndex{\protected@write,\protected@edef,\providecommand}
+% \DoNotIndex{\ProvidesPackage,\ref,\refstepcounter,\relax,\renewcommand}
+% \DoNotIndex{\RequirePackage,\rightskip,\rmfamily,\sbox,\scriptsize}
+% \DoNotIndex{\scshape,\selectfont,\seriesdefault,\setbox,\setcounter}
+% \DoNotIndex{\setlength,\sffamily,\shapedefault,\slshape,\small,\space}
+% \DoNotIndex{\string,\strut,\thefigure,\thepage,\thetable,\ttfamily,\tw@}
+% \DoNotIndex{\typeout,\undefined,\upshape,\usebox,\vbox,\vskip,\vspace}
+% \DoNotIndex{\vtop,\wd,\xdef,\z@,\z@skip}
+%
+% \CheckSum{770}%
+% ^ Allow a little more freedom in typesetting floats.
+% \setcounter{topnumber}{8}
+% \def\topfraction{.8}
+% \setcounter{bottomnumber}{8}
+% \def\bottomfraction{.8}
+% \setcounter{totalnumber}{8}
+% \def\textfraction{.2}
+% \def\floatpagefraction{.8}
+% \setcounter{dbltopnumber}{8}
+% \def\dbltopfraction{.8}
+% \def\dblfloatpagefraction{.8}
+%
+% ^ Add some space above any footnotes.
+% \skip\footins=1.5\baselineskip
+%
+% \makeatletter
+%
+% ^ Remove some space above minipage footnotes.
+% \skip\@mpfootins=2.6\p@
+%
+% ^ Define a raggedright for use in tabular's.
+% \newcommand{\rr}{^
+% \@rightskip\@flushglue
+% \rightskip\@rightskip
+% \leftskip\z@
+% \parindent\z@}
+%
+% ^ Turn off any list entries by ``eating'' any \addcontentsline stuff.
+% \newcommand*{\eatthree}[3]{}^
+% \newcommand*{\turnofflistentry}{\let\addcontentsline=\eatthree}
+%
+% ^ Print text (#2) only if reference (r@#1) is defined.
+% \newcommand{\PrintIfDefined}[3]{^
+% \@bsphack
+% \@ifundefined{r@#1}{#3}{#2}^
+% \@esphack}
+%
+% \makeatother
+%
+% \def\docdate{2002/07/02}
+% \def\fileversion{v2.1.4a}
+% \def\filedate{2003/09/14}
+% \def\filename{hhsubfigure.dtx}
+%
+% \title{The \Lpack{hhsubfigure} Package\footnote{This paper documents
+% the \Lpack{hhsubfigure} package \fileversion, last revised \filedate.}}
+% \author{Steven Douglas Cochran\\[5pt]
+% Digital Mapping Laboratory, School of Computer Science \\
+% Carnegie-Mellon University, 5000 Forbes Avenue \\
+% Pittsburgh, PA 15213--3890, USA\\[5pt]
+% \texttt{sdc+@cs.cmu.edu}}
+% \date{\docdate}
+%
+% \maketitle
+%
+% \begin{abstract}
+% \noindent
+% This article documents the \LaTeX\ package `\Lpack{hhsubfigure}', which
+% provides support for the inclusion of small, `sub', figures and
+% tables. It simplifies the positioning, captioning and labeling of
+% such objects within a single \Lenv{figure} or \Lenv{table}
+% environment. In addition, this package allows such subcaptions to be
+% written to a List-of-Figures or List-of-Tables if desired. The
+% `\Lpack{hhsubfigure}' package also cooperates with the `\Lpack{caption}'
+% and `\Lpack{caption2}' packages by H.A. Sommerfeldt
+% \cite{Somm95a,Somm95b}, the `\Lpack{ccaption}' and `\Lpack{tocloft}'
+% packages \cite{Wils01,Wils01B} by Peter Wilson, the `\Lpack{hyperref}'
+% package by Sebastian Rahtz \cite{Raht02}, the `\Lpack{captcont}' package
+% \cite{Coch02}, and should be compatible with all other packages that
+% modify or extend the \Lenv{float} environment or the \cmd{\caption} or
+% \cmd{\label} commands.
+%
+% \end{abstract}
+%
+% \newpage
+% \tableofcontents
+%
+% \newpage
+% \setcounter{lotdepth}{2}^
+% \listoftables
+% \setcounter{lofdepth}{2}^
+% \listoffigures
+%
+% \newpage
+% \section{Introduction}
+% \enlargethispage{24pt}^finalhack
+%
+% This package provides support for the manipulation and reference of
+% small or `sub' figures and tables within a single \Lenv{figure} or
+% \Lenv{table} environment\@.\footnote{Section~\ref{sec:customfloat}
+% describes how to add support for additional \Lenv{float}
+% environments.} It is convenient to use this package when your
+% subfigures are to be separately captioned, referenced, or when such
+% subcaptions are to be included in the List-of-Figures.
+%
+% Before using the \Lpack{hhsubfigure} package, consider the following to
+% see if you really need it. If you simply want to center your figure,
+% then you can use |\centerline|, |\centering| or the \Lenv{center}
+% environment to do so. If your figure has a short width or if you wrap
+% your figure in a |\parbox| or a \Lenv{minipage} of a short width, then
+% you can place multiple figures or tables side-by-side. For example,
+% the following will put two images side-by-side in a single figure as
+% shown in figure~\ref{fig:1figs}:\footnote{You might have to use the
+% optional position arguments `[b]' or `[t]' if the figures are of
+% different heights.}
+%
+% \begin{verbatim}
+% \begin{figure}%
+% \centering
+% \parbox{1.2in}{...figure code...}%
+% \qquad
+% \begin{minipage}{1.2in}%
+% ...figure code...
+% \end{minipage}%
+% \caption{Here are two figures side-by-side.}%
+% \label{fig:1figs}%
+% \end{figure}
+% \end{verbatim}
+% \vspace{-1\baselineskip}
+% \begin{figure}^
+% \abovecaptionskip=6pt^
+% \centering
+% \parbox{1.2in}{^
+% \fboxsep=-\fboxrule
+% \fbox{\hbox to 1.2in{\vbox to 15mm{\null\vfil}\hfil}}}^
+% \qquad
+% \begin{minipage}{1.2in}^
+% \fboxsep=-\fboxrule
+% \fbox{\hbox to 1.2in{\vbox to 15mm{\null\vfil}\hfil}}^
+% \end{minipage}^
+% \caption{Here are two figures side-by-side.}^
+% \label{fig:1figs}^
+% \vspace{-10pt}
+% \end{figure}
+%
+% \noindent
+% Further, if you place the caption inside the |\parbox| or
+% \Lenv{minipage}, then the width of the caption will be limited to the
+% width of the parbox or minipage as shown in figures~\ref{fig:2figsA}
+% and \ref{fig:2figsB}:
+%
+% \begin{verbatim}
+% \begin{figure}%
+% \centering
+% \parbox{1.2in}{%
+% ...figure code...
+% \caption{First.}%
+% \label{fig:2figsA}}%
+% \qquad
+% \begin{minipage}{1.2in}%
+% ...figure code...
+% \caption{Second.}%
+% \label{fig:2figsB}%
+% \end{minipage}%
+% \end{figure}%
+% \end{verbatim}
+% \vspace{-\baselineskip}
+% \begin{figure}^
+% \abovecaptionskip=2pt^
+% \centering
+% \parbox{1.2in}{^
+% \fboxsep=-\fboxrule
+% \fbox{\hbox to 1.2in{\vbox to 15mm{\vfil\null}\hfil}}^
+% \caption{First.}^
+% \label{fig:2figsA}}^
+% \qquad
+% \begin{minipage}{1.2in}^
+% \fboxsep=-\fboxrule
+% \fbox{\hbox to 1.2in{\vbox to 15mm{\vfil\null}\hfil}}^
+% \caption{Second.}^
+% \label{fig:2figsB}^
+% \end{minipage}^
+% \vspace{-10pt}
+% \end{figure}
+%
+% For more information on typesetting figures and tables, see the
+% document ``Using Imported Graphics in \LaTeXe'' by Keith Reckdahl
+% \cite{Reck97}.
+%
+% \section{The User Interface}
+% \vspace{-5pt}^finalhack
+% \enlargethispage{12pt}^finalhack
+%
+% To use this package place
+% \begin{quote}
+% |\usepackage|\oarg{options}\marg{hhsubfigure}
+% \end{quote}
+% in the preamble of your document. The supported options are shown in
+% table~\ref{tab:options}.
+% \DescribeMacro{\subfigure}
+% \DescribeMacro{\subtable}
+% Within a \Lenv{figure} or \Lenv{table}
+% environment, you can use the following commands to create a subfigure
+% or subtable ``box'' with an optional subcaption underneath.
+% \vspace{-2pt}
+% \begin{quote}
+% |\subfigure|\oarg{list\_entry}\oarg{subcaption}\marg{figure}\\
+% |\subtable|\oarg{list\_entry}\oarg{subcaption}\marg{figure}
+% \end{quote}
+% \vspace{-2pt}
+%
+% \noindent
+% If a subcaption argument is given (including the null subcaption
+% `{\ttfamily [$\;$]}') then the subfigure is labeled with a counter
+% formatted by the command `|\thesubfigure|' which returns, by default,
+% `(a)', `(b)', etc. The counter used for labeling the subfigures is
+% \Lcount{hhsubfigure} and is incremented for each subfigure regardless of
+% whether a subcaption was printed. The internals of the |\subtable|
+% command are symmetric to those of the |\subfigure| command. Further,
+% if a List-of-Figures (or List-of-Tables) is generated, then the
+% \meta{list\_entry} argument controls how the caption text is used
+% there. Table~\ref{tab:calling} shows the possibilities.
+%
+% \changes{v2.1.4}{30 Apr 2002}{Changed the label and caption defaults
+% from \cmd{\rmfamily}\cmd{\mdseries}\cmd{\upshape} to
+% \cmd{\familydefault}\cmd{\seriesdefault} \cmd{\shapedefault}.}
+% \DeleteShortVerb{\|}
+% \begin{table}
+% \def\M#1{\vspace*{#1}}
+% \centering
+% \caption{\Lpack{hhsubfigure} package options.}
+% \label{tab:options}
+% \vspace{8pt}
+% \fbox{\begin{tabular}{|p{0.36\textwidth}|p{0.63\textwidth}|} \hline
+% \multicolumn{1}{|c|}{{\large\bf\strut Option}}
+% & \multicolumn{1}{c|}{{\large\bf Description}}
+% \\ \hline\hline
+% \Lopt{normal} & \rr Provides `normal' subcaptions, this is the
+% default. \\ \hline
+% \raisebox{-1.4ex}{\Lopt{hang}, \Lopt{isu}}
+% & \rr Causes the label to be a hanging
+% indentation to the subcaption paragraph.
+% (\Lopt{isu} is a synonym for \Lopt{hang}.)
+% \\ \hline
+% \raisebox{-1.4ex}{\Lopt{center}}
+% & \rr Causes each line of the paragraph to be
+% separately centered. Overrides
+% \Lopt{centerlast}.\\ \hline
+% \raisebox{-1.4ex}{\Lopt{centerlast}, \Lopt{anne}}
+% & \rr Causes the last line only to be centered.
+% Overrides \Lopt{nooneline}. (\Lopt{anne} is
+% a synonym for \Lopt{centerlast}.) \\ \hline
+% \raisebox{-2.6ex}{\Lopt{nooneline}}
+% & \rr If a subcaption fits on one line it will, by
+% default, be centered. This option
+% treats a single line like a mid-line of a
+% multi-line caption.\\ \hline
+% \raisebox{-1.4ex}{\Lopt{raggedright}}
+% & \rr Causes the subcaption text to be raggedright.
+% Overrides \Lopt{center} and \Lopt{centerlast}.
+% \\ \hline
+% \raisebox{-1.4ex}{\Lopt{RaggedRight}}
+% & \rr Causes the subcaption text to be
+% raggedright with hyphenation (using the
+% ragged2e package).
+% Overrides \Lopt{center} and \Lopt{centerlast}.
+% \\ \hline\hline
+% \Lopt{scriptsize{\rm,} footnotesize{\rm,} small{\rm,}\hfil\null\linebreak
+% normalsize{\rm,} large{\rm,} Large}
+% & \rr Sets the font size of the subcaptions (both
+% the label and the text), \Lopt{footnotesize}
+% is default. \\ \hline
+% \M{1.8ex}
+% \Lopt{rm{\rm,} sf{\rm,} tt{\rm,} md{\rm,} bf{\rm,}\efill
+% up{\rm,} it{\rm,} sl{\rm,} sc{\rm,}}\hfil\null\linebreak
+% \Lopt{RM{\rm,} SF{\rm,} TT{\rm,} MD{\rm,} BF{\rm,}\efill
+% UP{\rm,} IT{\rm,} SL{\rm,} SC}
+% & \rr The lowercase commands set the font attributes
+% of the subcaption label. The capitalized version
+% sets the font attributes of the text. Family,
+% shape and style attributes may be mixed.
+% The default is to set the document defaults for
+% the family, series and shape.\\ \hline\hline
+% \M{4ex}
+% \Lopt{figbotcap}{\rm,} \Lopt{tabbotcap}{\rm,}\hfil\null\linebreak
+% \Lopt{FIGBOTCAP}{\rm,} \Lopt{TABBOTCAP}
+% & \rr Sets the figure or table numbering based on
+% the assumption that the figure or table caption
+% comes after the subfigures or subtables. The
+% capitalized version also places the subcaption
+% after the figure (``\Lopt{FIGBOTCAP}'' and
+% ``\Lopt{TABBOTCAP}'' are the default settings).
+% \\ \hline
+% \M{3.9ex}
+% \Lopt{figtopcap}{\rm,} \Lopt{tabtopcap}{\rm,}\hfil\null\linebreak
+% \Lopt{FIGTOPCAP}{\rm,} \Lopt{TABTOPCAP}
+% & \rr Sets the figure or table numbering based on
+% the assumption that the figure or table caption
+% precedes the subfigures or subtables. The
+% capitalized version also places the subcaption
+% before the figure (``\Lopt{TABTOPCAP}'' is the
+% preferred table setting, see
+% section~\ref{sec:position} for details).
+% \\ \hline\hline
+% \M{2.6ex}
+% \Lopt{loose}{\rm,} \Lopt{tight}
+% & \rr The (default) \Lopt{loose} option sets the
+% historically normal whitespace around the subfloat.
+% The \Lopt{tight} option sets less space around the
+% subfigure (this is the preferred setting).
+% \\ \hline
+% \end{tabular}}%
+% \end{table}
+% \MakeShortVerb{\|}
+%
+% \begin{table}
+% \centering
+% \caption{\cmd{\subfigure} calling arguments.}
+% \label{tab:calling}
+% \begingroup\small
+% \begin{tabular}{llc} \\ \hline
+% {\normalsize Subfigure Command}
+% & {\normalsize LoF/LoT}
+% & \multicolumn{1}{r}{\hbox to .25in{%
+% \hss\normalsize
+% Subfigure Caption}}
+% \\ \hline
+% \cmd{\subfigure}\{\dots fig\dots\}
+% & & \\
+% \cmd{\subfigure}[~]\{\dots fig\dots\}
+% & (b)\ \ . . . . . . . . . .
+% & (b) \\
+% \cmd{\subfigure}[Subcaption.]\{\dots fig\dots\}
+% & (c) Subcaption. . . .
+% & (c) Subcaption. \\
+% \cmd{\subfigure}[\space][Subcaption.]\{\dots fig\dots\}
+% & & (d) Subcaption. \\
+% \cmd{\subfigure}[\space][\space]\{\dots fig\dots\}
+% & & (e) \\
+% \cmd{\subfigure}[List\_entry.][Subcaption.]\{\dots fig\dots\}
+% & (f) List\_entry. . . .
+% & (f) Subcaption. \\
+% \cmd{\subfigure}[List\_entry.][~]\{\dots fig\dots\}
+% & (g) List\_entry. . . .
+% & (g) \\ \hline
+% \end{tabular}
+% \endgroup
+% \vspace{-8pt}
+% \end{table}
+%
+% If you wish to reference a specific subfigure or subtable, you can
+% include a |\label| inside the body of either the \meta{subcaption} or
+% \meta{figure} argument to the command (but not the \meta{list\_entry}
+% argument). If supplied by itself, the \meta{subcaption} is a ``moving
+% argument''\footnote{See \cite[\textsection~4.7 and
+% \textsection~C.1.3]{Lamp94} for a more detailed description of
+% ``moving arguments'' and ``fragile'' commands.} and, therefore, any
+% ``fragile'' commands contained within it must be |\protect|'ed. If
+% the \meta{list\_entry} argument is supplied, then the
+% \meta{subcaption} is not a ``moving argument''; however, the
+% \meta{list\_entry} is.
+%
+% {\bf Note:} since the |\subfigure| and |\subtable| commands have optional
+% arguments, delimited with square brackets, before their required argument,
+% you cannot use the `]' character at the top level of either the
+% \meta{subcaption} or \meta{list\_entry} argument. To overcome this
+% problem, you must wrap the portion of the text containing the `]'
+% character (or the entire argument), in a pair of curly brackets (see
+% \cite[\textsection~C.1.1]{Lamp94} for more detail). For example:
+%
+% \begin{verbatim}
+% \subfigure[This does not $sqrt[3]{8}$ work.]{... figure text ...}
+% \subfigure[This works {$sqrt[3]{8}$} fine.]{... figure text ...}
+% \subfigure[{This also works $sqrt[3]{8}$ fine.}]{... figure text ...}
+% \end{verbatim}
+%
+% One final note, the |\subfigure| and |\subtable| commands are
+% actually identical and it is the surrounding environment that defines
+% actually identical and it is the surrounding environment that defines
+% whether a subtable or subfigure will be generated and not which command
+% is used. At the user level, the choice of names is purely cosmetic
+% (and historical). Therefore you can use |\subfigure| for any float
+% ({\it e.g.\/}, \Lenv{figure}, \Lenv{table}, or other) environment.
+%
+% \subsection{Format Options}
+% \label{sec:format}
+%
+% There are six options for formatting the layout of the caption label
+% and text. The first is \Lopt{normal}, which produces the style shown
+% in figure~\ref{fig:format-01}. The other options may be used in
+% various combinations to produce the layouts shown in
+% figures~\ref{fig:format-02} thru \ref{fig:format-14}. Note that some
+% combinations, like \Lopt{center} and \Lopt{centerlast} do not make
+% sense since \Lopt{center} overrides \Lopt{centerlast}. Also,
+% \Lopt{nooneline}, when combined with either \Lopt{center} or
+% \Lopt{centerlast} has no effect (unless the \Lopt{hang} option is
+% also set); and, \Lopt{raggedright} overrides both \Lopt{center} and
+% \Lopt{centerlast}.
+%
+% \begingroup
+% \def\sc{Short.}
+% \def\lc{This is a long caption of gibberish: Aafas d taed
+% gaihgghn adf irin sadf aets etsd na.}
+% \def\b{\fboxsep=-\fboxrule
+% \fbox{\hbox to 2.0in{\vbox to 2mm{\vfil\null}\hfil}}}
+% \def\g{\hspace{.5in}}
+% \subfigtopskip=20pt
+% \subfigcapskip=-3pt
+% \subfigbottomskip=0pt
+% \abovecaptionskip=5pt
+% \begin{figure}^
+% \centering
+% \turnofflistentry
+% \subcaphangfalse
+% \subcapcenterfalse
+% \subcapcenterlastfalse
+% \subcapnoonelinefalse
+% \subcapraggedrightfalse
+% \subfigure[\sc]{\b}\g\subfigure[\lc]{\b}\\
+% \caption{Format option [\Lopt{normal}].}^
+% \label{fig:format-01}^
+% \subcapnoonelinetrue
+% \subfigure[][\sc]{\b}\g\subfigure[][\lc]{\b}\\
+% \caption{Format option [\Lopt{nooneline}].}^
+% \label{fig:format-02}^
+% \subcapcenterlasttrue
+% \subcapnoonelinefalse
+% \subfigure[][\sc]{\b}\g\subfigure[][\lc]{\b}\\
+% \caption{Format option [\Lopt{centerlast}]; \Lopt{centerlast} overrides
+% \Lopt{nooneline}.\footnotemark}
+% \label{fig:format-03}^
+% \subcapcentertrue
+% \subcapcenterlastfalse
+% \subfigure[][\sc]{\b}\g\subfigure[][\lc]{\b}\\
+% \caption{Format option [\Lopt{center}]; \Lopt{center} overrides
+% \Lopt{nooneline} and \Lopt{centerlast}.}^
+% \label{fig:format-04}^
+% \subcaphangtrue
+% \subcapcenterfalse
+% \subfigure[][\sc]{\b}\g\subfigure[][\lc]{\b}\\
+% \caption{Format option [\Lopt{hang}].}
+% \label{fig:format-05}
+% \subcapnoonelinetrue
+% \subfigure[][\sc]{\b}\g\subfigure[][\lc]{\b}\\
+% \caption{Format options [\Lopt{hang},\Lopt{nooneline}].}
+% \label{fig:format-06}
+% \subcapcenterlasttrue
+% \subcapnoonelinefalse
+% \subfigure[][\sc]{\b}\g\subfigure[][\lc]{\b}\\
+% \caption{\Lpack{Hhsubfigure}\ format options [\Lopt{hang},^
+% \Lopt{centerlast}].}
+% \label{fig:format-07}
+% \vspace{2\baselineskip}
+% \begin{minipage}{\linewidth}
+% \footnotetext{\raise1ex\hbox to 0pt{\hss\tiny\thefootnote}^
+% So this is the same as [\Lopt{centerlast},\Lopt{nooneline}]. Only
+% the shortest number of options to achieve an effect is shown.
+% Adding any combination of overridden options has no effect.}
+% \end{minipage}
+% \end{figure}
+%
+% \begin{figure}
+% \turnofflistentry
+% \centering
+% \subcaphangtrue
+% \subcapcenterfalse
+% \subcapcenterlasttrue
+% \subcapnoonelinetrue
+% \subcapraggedrightfalse
+% \subfigure[][\sc]{\label{fig:format-08A}\b}\g\subfigure[][\lc]{\b}\\
+% \caption{Format options [\Lopt{hang},\Lopt{centerlast},\Lopt{nooneline}].}
+% \label{fig:format-08}
+% \subcapcentertrue
+% \subcapcenterlastfalse
+% \subcapnoonelinefalse
+% \subfigure[][\sc]{\b}\g\subfigure[][\lc]{\b}\\
+% \caption{Format options [\Lopt{hang},\Lopt{center}];
+% \Lopt{center} overrides \Lopt{centerlast}.}
+% \label{fig:format-09}
+% \subcapnoonelinetrue
+% \subfigure[][\sc]{\label{fig:format-10A}\b}\g\subfigure[][\lc]{\b}\\
+% \caption{Format options [\Lopt{hang},\Lopt{center},\Lopt{nooneline}];
+% \Lopt{center} overrides \Lopt{centerlast}.}
+% \label{fig:format-10}
+% \subcaphangfalse
+% \subcapcenterfalse
+% \subcapnoonelinefalse
+% \subcapraggedrighttrue
+% \subfigure[][\sc]{\b}\g\subfigure[][\lc]{\b}\\
+% \caption{Format option [\Lopt{raggedright}];
+% \Lopt{raggedright} overrides \Lopt{center} and \Lopt{centerlast}.}
+% \label{fig:format-11}
+% \subcapnoonelinetrue
+% \subfigure[][\sc]{\b}\g\subfigure[][\lc]{\b}\\
+% \caption{Format options [\Lopt{raggedright},\Lopt{noonelirne}];
+% \Lopt{raggedright} overrides \Lopt{center} and \Lopt{centerlast}.}
+% \label{fig:format-12}
+% \subcaphangtrue
+% \subcapnoonelinefalse
+% \subfigure[][\sc]{\b}\g\subfigure[][\lc]{\b}\\
+% \caption{Format options [\Lopt{hang},\Lopt{raggedright}];
+% \Lopt{raggedright} overrides \Lopt{center} and \Lopt{centerlast}.}
+% \label{fig:format-13}
+% \subcapnoonelinetrue
+% \subfigure[][\sc]{\label{fig:format-14A}\b}\g\subfigure[][\lc]{\b}\\
+% \caption{\Lpack{hhsubfigure}\ format options [\Lopt{hang},\Lopt{raggedright},
+% \Lopt{nooneline}]; \Lopt{raggedright} overrides \Lopt{center}
+% and \Lopt{centerlast}.}
+% \label{fig:format-14}
+% \end{figure}
+% \endgroup
+%
+% \addtocontents{lof}{^
+% \string\contentsline
+% {figure}
+% {\numberline{\ref{fig:format-01}--\ref{fig:format-14}}^
+% {\ignorespaces \Lpack{Hhsubfigure}\ format options.}}^
+% {\pageref{fig:format-01}--\pageref{fig:format-14}}}
+%
+% \subsection{Font Size and Style Options}
+% \label{sec:font}
+%
+% There are twenty-four options for setting the font of the subcaption.
+% The first six set the size of both the subcaption label and text.
+% They are: \Lopt{scriptsize}, \Lopt{footnotesize} (default),
+% \Lopt{small}, \Lopt{normalsize}, \Lopt{large}, and \Lopt{Large}.
+% Their effect is shown in figure~\ref{fig:font1}.
+%
+% The next nine, \Lopt{rm}: \Lopt{sf}, \Lopt{tt}, \Lopt{md}, \Lopt{bf},
+% \Lopt{up}, \Lopt{it}, \Lopt{sl}, and \Lopt{sc}, set the family, series
+% or shape of the subcaption label, as shown in
+% figures~\ref{fig:font2A}--~\ref{fig:font2I}. The last nine:
+% \Lopt{RM}, \Lopt{SF}, \Lopt{TT}, \Lopt{MD}, \Lopt{BF}, \Lopt{UP},
+% \Lopt{IT}, \Lopt{SL}, and \Lopt{SC}, do the same for the text of the
+% subcaption, as shown in figure~\ref{fig:font2J}--\ref{fig:font2R}.
+% These size and style options may be combined in 3456 ways to set the
+% label and text of the subcaption (as long as the selected font
+% combination exists\@!) The font family for the text and label may be
+% set as roman (\Lopt{rm}/\Lopt{RM}), sans serif (\Lopt{sf}/\Lopt{SF}),
+% and typewriter (\Lopt{tt}/\Lopt{TT}). These may be combined with
+% those for the font series, medium (\Lopt{md}/\Lopt{MD}) and bold
+% (\Lopt{bf}/\Lopt{BF}); and the font shape, upright
+% (\Lopt{up}/\Lopt{UP}), italic (\Lopt{it}/\Lopt{IT}), slanted
+% (\Lopt{sl}/\Lopt{SL}), and small caps (\Lopt{sc}/\Lopt{SC}).
+%
+% \begin{figure}^
+% \def\b{\fboxsep=-\fboxrule
+% \fbox{\hbox to 2.0in{\vbox to 2mm{\vfil\null}\hfil}}}^
+% \subfigtopskip=8pt^
+% \subfigcapskip=0pt^
+% \subfigbottomskip=4pt^
+% \centering
+% {\renewcommand{\subcapsize}{\scriptsize}^
+% \subfigure[][Font option {[scriptsize]}.]{\b}}\qquad
+% {\renewcommand{\subcapsize}{\footnotesize}^
+% \subfigure[][Font option {[footnotesize]}.]{\b}}\\
+% {\renewcommand{\subcapsize}{\small}^
+% \subfigure[][Font option {[small]}.]{\b}}\qquad
+% {\renewcommand{\subcapsize}{\normalsize}^
+% \subfigure[][Font option {[normalsize]}.]{\b}}\\
+% {\renewcommand{\subcapsize}{\large}^
+% \subfigure[][Font option {[large]}.]{\b}}\qquad
+% {\renewcommand{\subcapsize}{\Large}^
+% \subfigure[][Font option {[Large]}.]{\b}}%
+% \caption[\Lpack{Hhsubfigure} font size options.]{%
+% \Lpack{Hhsubfigure} font size options. (Default:
+% \Lopt{footnotesize}).}^
+% \label{fig:font1}^
+% \end{figure}
+%
+% \begin{figure}^
+% \def\b{\fboxsep=-\fboxrule
+% \fbox{\hbox to 2.0in{\vbox to 2mm{\vfil\null}\hfil}}}^
+% \subfigtopskip=8pt^
+% \subfigcapskip=0pt^
+% \subfigbottomskip=4pt^
+% \centering
+% \begin{minipage}{2.0in}^
+% {\renewcommand{\subcaplabelfont}{\rmfamily}^
+% \subfigure[][Subcaption label font option {[\Lopt{rm}]}.]{\b^
+% \label{fig:font2A}}}\\
+% {\renewcommand{\subcaplabelfont}{\sffamily}^
+% \subfigure[][Subcaption label font option {[\Lopt{sf}]}.]{\b}}\\
+% {\renewcommand{\subcaplabelfont}{\ttfamily}^
+% \subfigure[][Subcaption label font option {[\Lopt{tt}]}.]{\b}}\\
+% {\renewcommand{\subcaplabelfont}{\mdseries}^
+% \subfigure[][Subcaption label font option {[\Lopt{md}]}.]{\b}}\\
+% {\renewcommand{\subcaplabelfont}{\bfseries}^
+% \subfigure[][Subcaption label font option {[\Lopt{bf}]}.]{\b}}\\
+% {\renewcommand{\subcaplabelfont}{\upshape}^
+% \subfigure[][Subcaption label font option {[\Lopt{up}]}.]{\b}}\\
+% {\renewcommand{\subcaplabelfont}{\itshape}^
+% \subfigure[][Subcaption label font option {[\Lopt{it}]}.]{\b}}\\
+% {\renewcommand{\subcaplabelfont}{\slshape}^
+% \subfigure[][Subcaption label font option {[\Lopt{sl}]}.]{\b}}\\
+% {\renewcommand{\subcaplabelfont}{\scshape}^
+% \subfigure[][Subcaption label font option {[\Lopt{sc}]}.]{^
+% \label{fig:font2I}\b}}\\
+% \end{minipage}^
+% \qquad
+% \begin{minipage}{2.0in}^
+% {\renewcommand{\subcapfont}{\rmfamily}^
+% \subfigure[][Subcaption font option {[\Lopt{RM}]}.]{^
+% \label{fig:font2J}\b}}\\
+% {\renewcommand{\subcapfont}{\sffamily}^
+% \subfigure[][Subcaption font option {[\Lopt{SF}]}.]{\b}}\\
+% {\renewcommand{\subcapfont}{\ttfamily}^
+% \subfigure[][Subcaption font option {[\Lopt{TT}]}.]{\b}}\\
+% {\renewcommand{\subcapfont}{\mdseries}^
+% \subfigure[][Subcaption font option {[\Lopt{MD}]}.]{\b}}\\
+% {\renewcommand{\subcapfont}{\bfseries}^
+% \subfigure[][Subcaption font option {[\Lopt{BF}]}.]{\b}}\\
+% {\renewcommand{\subcapfont}{\upshape}^
+% \subfigure[][Subcaption font option {[\Lopt{UP}]}.]{\b}}\\
+% {\renewcommand{\subcapfont}{\itshape}^
+% \subfigure[][Subcaption font option {[\Lopt{IT}]}.]{\b}}\\
+% {\renewcommand{\subcapfont}{\slshape}^
+% \subfigure[][Subcaption font option {[\Lopt{SL}]}.]{\b}}\\
+% {\renewcommand{\subcapfont}{\scshape}^
+% \subfigure[][Subcaption font option {[\Lopt{SC}]}.]{^
+% \label{fig:font2R}\b}}^
+% \end{minipage}^
+% \caption[\Lpack{Hhsubfigure} font style options.]{%
+% \Lpack{Hhsubfigure} font style options. (Default:
+% \Lopt{rm,md,up,RM,MD,UP}). Note: The above single options
+% are loaded after the default settings and multiple options are
+% allowed, see the text, section~\ref{sec:font}.}^
+% \label{fig:font2}^
+% \end{figure}
+%
+% \subsection{Caption Position Options}
+% \enlargethispage{12pt}^finalhack
+% \label{sec:position}
+%
+% There are eight options that control the {\em position\/} of the
+% subcaption and how the subcaption {\em numbering\/} is related to the
+% ``containing'' figure or table's caption. The following shows only
+% the subfigure-related options, but the subtable options are symmetric.
+%
+% The first option, \Lopt{figbotcap} tells the subfigure command that
+% the ``containing'' figure's |\caption| occurs {\bf after} the
+% subfigures. This information is needed to decide if the current
+% figure counter shows the number for the last figure (\Lopt{figbotcap})
+% or for the current one (\Lopt{figtopcap}, see below).
+%
+% The second option, \Lopt{figtopcap} tells the subfigure command that
+% the ``containing'' figure's |\caption| occurs {\bf before} the
+% subfigures. The subcaption is automatically placed below the figure
+% for each of these options.
+%
+% The third option, \Lopt{FIGBOTCAP}, is similar to \Lopt{figbotcap},
+% except that it also forces the subcaption to be placed under the
+% figure. This is the default setting for figures (and \Lopt{TABBOTCAP}
+% for tables) and is shown in figure~\ref{fig:position1}.
+%
+% The fourth option, \Lopt{FIGTOPCAP}, is similar to \Lopt{figtopcap},
+% except that it forces the subcaption to be placed above the figure
+% box. (While not the default, it is the preferred format for tables,
+% which uses the option \Lopt{TABTOPCAP}\@.) An example of this option
+% is shown in figure~\ref{fig:position2}. Note that the baseline of the
+% subfigure is along the top of the two subfigures. See
+% section~\ref{sec:custom-position} for another way of positioning the
+% caption when captions are placed above the figure or table.
+%
+% \begin{figure}^
+% \subfigtopskip=8pt^
+% \subfigcapskip=0pt^
+% \subfigbottomskip=4pt^
+% \abovecaptionskip=5pt^
+% \centering
+% \subfigure[First caption.]{^
+% \fbox{\hbox to 1.5in{\vbox to 15mm{\vfil\null}\hfil}}}^
+% \hspace{0.2in}^
+% \subfigure[Second long, long, long, long, long, long, caption.]{^
+% \fbox{\hbox to 1.5in{\vbox to 10mm{\vfil\null}\hfil}}}^
+% \caption{Subcaption position option [\Lopt{FIGBOTCAP}].}
+% \label{fig:position1}^
+% \end{figure}
+%
+% \begin{figure}^
+% \subfigtopskip=8pt^
+% \subfigcapskip=0pt^
+% \subfigbottomskip=0pt^
+% \belowcaptionskip=5pt^
+% \caption{Subcaption position option: [\Lopt{FIGTOPCAP}].}^
+% \label{fig:position2}^
+% \centering
+% \figuretopcaptrue
+% \subfiguretopcaptrue
+% \subfigure[First caption.]{^
+% \fbox{\hbox to 1.5in{\vbox to 15mm{\vfil\null}\hfil}}}^
+% \hspace{0.2in}^
+% \subfigure[Second long, long, long, long, long, long caption.]{^
+% \fbox{\hbox to 1.5in{\vbox to 10mm{\vfil\null}\hfil}}}^
+% \setcounter{subfigure}{0}^
+% \vspace{-18pt}
+% \end{figure}
+%
+% \subsection{Recent Changes and Backward Compatibility}
+% \enlargethispage{24pt}^finalhack
+% \label{sec:back-compat}
+%
+% There are some significant changes in this version of the
+% \Lpack{hhsubfigure} package. One of them was to pack the subfigure
+% tighter together by removing the space at the top of the subfigure at
+% the beginning of a page, or minipage, and to reduce the spacing around
+% the subfigure, see table~\ref{tab:spacing}. If you have been using an
+% older version of the \Lpack{hhsubfigure} package ({\it i.e.\/}, version
+% 2.0 or eariler) than the default (\Lopt{loose}) setting will not cause
+% any change in your existing documents.\footnote{If you have been using
+% a beta release version of \Lpack{subfigure} 2.1, than you will need to
+% use the \Lopt{tight} option in order to maintain the ``look-and-feel''
+% that you are used to.}
+%
+% If you want to use the new and preferred, \Lopt{tight} option, your
+% subfigures will take up less space and should provide a more balanced
+% visual appearance for your paper.
+%
+% The second significant change is the ability to make the text on the
+% List-of-Figures page different than that in the subcaption. The use
+% of a second optional argument to the |\subfigure| command is shown in
+% table~\ref{tab:calling}. This should not cause any compatibility
+% problems.
+%
+% The third significant change is the it is now possible to have the
+% captions and subcaptions come before or after the corresponding
+% figure/table portion. While the default settings support the old view
+% of the subcaptions following the figure/table and, in turn, followed
+% by the main caption. The preferred format is for figures to retain
+% that layout and for tables to have both their subcaption and main
+% captions come before the table portion. This preferred setting may be
+% specified by adding the option \Lopt{TABTOPCAP} when loading the
+% \Lpack{hhsubfigure} package.
+%
+% The fourth update is that the font style options have been generalized
+% so that an option from each of the family, series and shape, may be
+% combined, as long as that combination exists; and you can set the font
+% of the label and text separately. In addition, the the |\space| that
+% separated the label from the text in the subcaption has been replaced
+% with a horizontal skip of |\subfiglabelskip| which has the default
+% value of |0.33em plus 0.07em minus 0.03em|. This extension should not
+% cause any compatibility problems.
+%
+% The last major change is that there is now a |\subref| command that
+% allows a reference to the subfigure without the figure number. An
+% example of the use of this command is shown later in
+% section~\ref{sec:ex3}. Associated with this change is that the
+% |\label| command will accept an optional argument, for use with the
+% \Lpack{hyperref} package, when used within the scope of the
+% |\subfigure| or |\subtable|, see section~\ref{sec:hyperref} for details.
+%
+% \DeleteShortVerb{\|}
+% \MakeShortVerb{\/}
+% \begin{table}^
+% \def\pz{\phantom{0}}^
+% \centering
+% \caption{\Lpack{hhsubfigure} spacing changes.}^
+% \label{tab:spacing}^
+% \vspace{4pt}^
+% \begin{tabular}{|l|c|c|c|} \hline
+% \multicolumn{1}{|c|}{\bf{\Lpack{hhsubfigure}}}
+% & \multicolumn{1}{c|}{{\bf Old (v2.0)}}
+% & \multicolumn{1}{c|}{\bf\Lopt{loose}}
+% & \multicolumn{1}{c|}{\bf\Lopt{tight}} \\
+% \multicolumn{1}{|c|}{{\bf Constant}}
+% & \multicolumn{1}{c|}{{\bf Value}}
+% & \multicolumn{1}{c|}{{\bf Option}}
+% & \multicolumn{1}{c|}{{\bf Option}}
+% \\ \hline
+% /\subfigtopskip/ & 10 pt & 10 pt & 5 pt \\
+% /\subfigcapskip/ & 10 pt & 10 pt & 0 pt \\
+% /\subfigcaptopadj/ & | &\pz0 pt & 3 pt \\
+% /\subfigbottomskip/ & 10 pt & 10 pt & 5 pt \\
+% /\subfigcapmargin/ & 10 pt & 10 pt & 0 pt \\
+% /\subfiglabelskip/ & | & 0.33 em &
+% \vtop{\hbox to 1.2in{0.33 em plus 0.07 em}
+% \hbox to 1.2in{\hfill minus 0.03 em}}
+% \\[8pt] \hline
+% \end{tabular}^
+% \end{table}
+% \DeleteShortVerb{\/}
+% \MakeShortVerb{\|}
+%
+% The \Lpack{hhsubfigure} package checks for and loads a configuration
+% file called \Lfile{subfigure.cfg} which is placed anywhere that \LaTeX\
+% will look for classes or packages (see
+% section~\ref{sec:customization}). By default, the \Lfile{subfigure.sty}
+% file tries to look unchanged from older versions. In order to
+% have it automatically use the preferred settings, you can add a
+% configuration file containing the options \Lopt{tight} to reduce the
+% extra whitespace around the subfigures and \Lopt{TABTOPCAP} to show
+% that table captions will come before the table and the the subcaptions
+% for tables should be set above the subtable. The following line is all
+% you need in your configuration file:
+%
+% \iffalse
+%<*newconf>
+% \fi
+% \begin{macrocode}
+\ExecuteOptions{tight,TABTOPCAP}
+% \end{macrocode}
+% \iffalse
+%</newconf>
+% \fi
+%
+% You could also load the subfigure package with the options with the
+% following in your \LaTeX\ preamble:
+% \begin{quote}
+% |\usepackage[tight,TABTOPCAP]{hhsubfigure}|
+% \end{quote}
+%
+% \subsection{Frequently Asked Questions}
+% \label{sec:faq}
+%
+% The four most frequently asked questions about the \Lpack{hhsubfigure}
+% package are:
+%
+% \begin{enumerate}
+% \item ``My subfigures are not aligned along their bottoms. Why?''
+%
+% Remember! The \Lpack{hhsubfigure} package aligns subfigure along
+% their baselines with the subcaption (if any) sticking out above or
+% below. The above problem is usually due to using a \Lenv{minipage},
+% \Lenv{tabular} or \Lenv{array} environment that, by default,
+% places the baseline at the center of the box that it generates.
+% If the two subfigures are different sizes, or if one subfigure is
+% generated in some other way with its baseline not at the expected
+% place (perhaps an |\includegraphics|), then the subfigures will be
+% misaligned. One solution is to use the environment options `[t]'
+% or `[b]' to move the baseline to the top or bottom rather than the
+% center.
+%
+% \item ``How can I get my figures/subfigures to line up the way I want?''
+%
+% A similar question, but this one is caused by extra whitespace in
+% the source text generating spaces next to the figures, and |\par|'s
+% generated by blanklines. The main thing is {\it be aware\/} that
+% extra whitespace can move figures and subfigures around, sometimes
+% a lot and sometimes just a little so that they look ``wrong''.
+% Placing too many `\%'s at the end of the lines is better than too
+% few in the figure and table environments. (See the discussion of
+% ``white space'' in section~\ref{sec:examples}.)
+%
+% \item ``I have too many subfigures for one page, How can I spread
+% them over two or more pages and continue the numbering?''
+% \begin{description}
+% \item[Option 1:] Adjust the \Lcount{figure} and \Lcount{subfigure}
+% counters (or the \Lcount{table} and
+% \Lcount{subtable} counters) as needed before and
+% after each figure (or table) See, for example
+% \emph{Using Imported Graphics in \LaTeXe}
+% \cite[\textsection~30]{Reck97}.
+% \item[Option 2:] Use the \Lpack{ccaption} package by Peter Wilson
+% \cite{Wils01}.
+% \item[Option 3:] Use the simpler \Lpack{captcont} package by
+% Steven Cochran \cite{Coch02}.
+% \end{description}
+% All of these options work well. Of the packages, the
+% \Lpack{ccaption} package is bigger and offers more control over
+% what is done (and things to do) at the expense of being a little
+% harder to use. The \Lpack{captcont} package is easier to use,
+% but only provides for continued floats.
+% \newpage^finalhack
+% \item ``Why do I get a garbled caption or an error when I use
+% square brackets?''
+% \vspace{-2pt}
+% \begin{verbatim}
+% \subfigure[SHIFT: ``register[3] $<<=$ 3;'']{... figure text ...}
+% \end{verbatim}
+% \vspace{-12pt}
+% Since the |\subfigure| and |\subtable| commands have optional
+% arguments, delimited with square brackets, before their required
+% argument, you cannot use the `]' character at the top level of
+% either the \meta{subcaption} or \meta{list\_entry} argument. To
+% overcome this problem, you must wrap all or the portion of the text
+% containing the `]' character, in a pair of curly brackets
+% (see \cite[\textsection~C.1.1]{Lamp94} for more detail). For example:
+% \begin{verbatim}
+% \subfigure[SHIFT: ``register{[3]} $<<=$ 3;'']{... figure text ...}
+% \end{verbatim}
+% \vspace{-16pt}
+% \noindent
+% or
+% \vspace{-4pt}
+% \begin{verbatim}
+% \subfigure[{SHIFT: ``register[3] $<<=$ 3;''}]{... figure text ...}.
+% \end{verbatim}
+% \vspace{-12pt}
+% \end{enumerate}
+%
+% \section{Three Examples}
+% \label{sec:examples}
+%
+% The easiest way to show the use of this package is to give a few
+% examples. The two most important things to remember when working
+% with the \Lpack{hhsubfigure} package are that (1) the subfigures are
+% aligned along their baselines (see figure~\ref{fig:layout} and
+% section~\ref{sec:customlayout}) and (2) that whitespace in the
+% \Lenv{figure} environment are significant and affect the layout.
+%
+% The baseline of the subfigure is usually at the bottom of the
+% subfigure or (when the subcaption appears at the top) at the bottom of
+% the subcaption {\em and\/} the |\subfigcapskip| space---which is usually
+% the same as the top of the subfigure. However sometimes, especially
+% when using the \Lenv{tabular}, \Lenv{array}, or \Lenv{minipage}
+% environments to build the figure, the baseline appears elsewhere. The
+% above environments are all aligned at their center by default but that
+% may be changed with the optional `{\bf [t]}' or `{\bf [b]}' arguments.
+% As a last resort you can wrap all of your figures in a |\vtop| box with
+% a |\vbox to 0pt{\null}| at the top followed by the figure.
+%
+% If your figure is not quite centered or where you want it to be, the
+% problem is often a space character being placed to one side or the
+% other of the figure. Some general rules of thumb are:\footnote{See
+% chapters 7 and 8 of ``The \TeX book'' \cite{Knut86} for details.}
+% \begin{itemize}\itemsep0pt
+% \item Two end-of-lines following each other (ignoring any
+% whitespace) are turned into a |\par| or paragraph break.
+% \item Multiple whitespace (including the end-of-line) are
+% compressed into a single space.
+% \item The spaces after a macro command name ({\it e.g.\/}, |\foo|)
+% are ignored.
+% \item A `\%' character at the end of the line suppresses the
+% end-of-line and all of the spaces (if any) at the
+% beginning of the next line.
+% \end{itemize}
+%
+% To suppress significant extra whitespace, you can add some `\%'
+% characters at the end of each line that doesn't end with a command name.
+% This is more than is required, but extra `\%' usually don't cause a
+% problem.
+%
+% The other case where things are not correctly centered is when the
+% subfigure uses only the label for the subcaption. This is often the
+% case when the description for each subfigure is given in the figure
+% caption rather than in each subcaption. In this case, the default
+% label has the form `(a)\ \ ' where the trailing space is defined by
+% |\subfiglabelskip|. In this case the style should redefine this space
+% as `0pt' so that the label is perfectly centered (see
+% section~\ref{sec:ex3}, below for an example).
+%
+% \subsection{A Simple Example}
+% \enlargethispage{12pt}
+%
+% The first example, shown in figure~\ref{3figs}, specifies |\centering|
+% \DescribeMacro{\subfigure}
+% to horizontally center the set of subfigures, and uses |\\| and
+% some horizontal space (using |\qquad|) to control the placement of
+% the subfigures. Note that the alignment of the top two subfigures
+% is along the bottom of the figure portion of each.
+%
+% \begin{figure}^
+% \centering
+% \fboxsep=-\fboxrule
+% \fbox{^
+% \begin{minipage}{4.0in}^
+% \vspace{10pt}^
+% \centering
+% \begin{minipage}{3.5in}^
+% \subfigtopskip=3pt^
+% \subfigcapskip=-2pt^
+% \subfigbottomskip=5pt^
+% \subfigcapmargin=3pt^
+% \abovecaptionskip=5pt^
+% \centering
+% \subfigure[First.]{^
+% \fbox{\hbox to 20mm{\vbox to 15mm{\vfil\null}\hfil}}}\qquad
+% \subfigure[Second figure.]{^
+% \fbox{\hbox to 20mm{\vbox to 10mm{\vfil\null}\hfil}}}\\[6pt]
+% \subfigure[Third.]{\label{3figs-c}^
+% \fbox{\hbox to 20mm{\vbox to 10mm{\vfil\null}\hfil}}}\\
+% \caption{Three subfigures.}^
+% \label{3figs}^
+% \rr
+% \vspace{15pt}^
+% Figure~\ref{3figs} contains two top `subfigures' and
+% figure~\ref{3figs-c}.$\!$\footnotemark
+% \end{minipage}^
+% \vspace{4pt}^
+% \end{minipage}}
+% \vspace{-5pt}^
+% \end{figure}
+% \footnotetext{In this and later boxed figures, the boxes are intended to
+% represent a portion of the page in which the figure occurs. This is
+% usually to show the figure along with some text or to show the effect
+% of some option on multiple pages.}
+%
+% \begin{verbatim}
+% \begin{figure}%
+% \centering
+% \subfigure[First.]{...}\qquad
+% \subfigure[Second figure.]{...}\\
+% \subfigure[Third.]{\label{3figs-c}...}%
+% \caption{Three subfigures.}
+% \label{3figs}
+% \end{figure}
+% ...
+% Figure~\ref{3figs} contains two top `subfigures' and
+% figure~\ref{3figs-c}.
+% \end{verbatim}
+%
+% \subsection{A More Advanced Example}
+%
+% A second example, shown in figure~\ref{fig:ex2}, demonstrates how to
+% change the subfigure labels and have the subfigure captions printed in
+% the List-of-Figures.
+%
+% The first |\renewcommand| changes the reference to |\thesubfigure| to
+% return both the figure number and the subfigure number separated with
+% a period. The next two |\renewcommand|'s turn off the |\p@subfigure|
+% (since it is now included in |\thesubfigure| and adds the colon and
+% space to the subfigure label. Later in the file, the
+% \Lcount{lofdepth} is set to ``2'' so allow the subfigure captions to
+% show and the |\listoffigures| is loaded. Finally, the \Lenv{figure}
+% is defined and a little following text is given that refers to it.
+%
+% \begin{verbatim}
+% \renewcommand{\thesubfigure}{\thefigure.\arabic{subfigure}}
+% \makeatletter
+% \renewcommand{\p@subfigure}{}
+% \renewcommand{\@thesubfigure}{\thesubfigure:\hskip\subfiglabelskip}
+% \makeatother
+% ...
+% \setcounter{lofdepth}{2}
+% \listoffigures
+% ...
+% \begin{figure}%
+% \centering
+% \subfigure[First.]{%
+% \label{fig:first}%
+% ...}%
+% \qquad
+% \subfigure[Second.]{%
+% \label{fig:second}%
+% ...}%
+% \caption{Two subfigures.}
+% \end{figure}
+% ...
+% See figures~\ref{fig:first} and \ref{fig:second}.
+% \end{verbatim}%
+%
+% \begin{figure}^
+% \centering
+% \fboxsep=-\fboxrule
+% \renewcommand{\thesubfigure}{\thefigure.\arabic{subfigure}}^
+% \makeatletter
+% \renewcommand{\p@subfigure}{}^
+% \renewcommand{\@thesubfigure}{\thesubfigure:\hskip\subfiglabelskip}^
+% \makeatother
+% \fbox{^
+% \begin{minipage}{4.0in}^
+% \centering
+% \begin{minipage}{3.5in}^
+% \setcounter{lofdepth}{2}^
+% \vspace{.1in}^
+% \section*{ List of Figures}^
+% \vspace{-15pt}^
+% \hspace{40pt}\dots
+% \vspace{3pt}^
+% \contentsline{figure}{\numberline{\ref{fig:ex2}}^
+% {\ignorespaces Two subfigures.}}{\pageref{fig:ex2}}^
+% \contentsline{subfigure}{\numberline{\ref{fig:first}}^
+% {\ignorespaces First.}}{\pageref{fig:first}}^
+% \contentsline{subfigure}{\numberline{\ref{fig:second}}^
+% {\ignorespaces Second.}}{\pageref{fig:second}}^
+% \hspace{40pt}\dots
+% \vspace{8pt}^
+% \end{minipage}^
+% \end{minipage}}\\
+% \fbox{^
+% \begin{minipage}{4.0in}^
+% \centering
+% \begin{minipage}{3.5in}^
+% \subfigtopskip=3pt^
+% \subfigcapskip=-2pt^
+% \abovecaptionskip=5pt^
+% \vspace{10pt}^
+% \centering
+% \subfigure[First.]{^
+% \label{fig:first}^
+% \fbox{\hbox to 22mm{\vbox to 15mm{\vfil\null}\hfil}}}^
+% \hspace{14pt}^
+% \subfigure[Second.]{^
+% \label{fig:second}^
+% \fbox{\hbox to 22mm{\vbox to 15mm{\vfil\null}\hfil}}}\\
+% \caption{Two subfigures.}^
+% \label{fig:ex2}^
+% \rr
+% \vspace{15pt}^
+% See figures~\ref{fig:first} and \ref{fig:second}.
+% \vspace{4pt}^
+% \end{minipage}^
+% \end{minipage}}^
+% \vspace{-8pt}
+% \end{figure}
+% \vspace{-12pt}^finalhack
+%
+% \subsection{An Example Without Subcaption Text}
+% \label{sec:ex3}
+%
+% The last example, shown in figure~\ref{fig:ex3}, demonstrates a
+% \DescribeMacro{\subref}
+% \DescribeMacro{\Subref}
+% \enlargethispage{12pt}
+% commonly required format where the subfigure are just labeled and the
+% description occurs in the main caption. This is easy to do by using
+% the ``empty'' optional caption arguments ``[\space ][\space ]''. This
+% creates a label for the subfigure in the text, but it does not show on
+% the List-of-Figures page. However, by default the caption may not be
+% perfectly centered, so |\subfiglabelskip| is reduced to zero points to
+% ensure that there is not any extra space hidden in the subcaption. To
+% refer to the subfigure label within the text or the main caption, you
+% can use the |\subref| command, which is similar to the |\ref| command,
+% but does not carry the figure number. (The |\Subref| command is the
+% same but sets it with |\subcaplabelfont|).
+%
+% \begin{figure}^
+% \centering
+% \fboxsep=-\fboxrule
+% \subfiglabelskip=0pt
+% \fbox{^
+% \begin{minipage}{4.0in}^
+% \centering
+% \begin{minipage}{3.5in}^
+% \setcounter{lofdepth}{2}^
+% \vspace{.1in}^
+% \section*{ List of Figures}^
+% \vspace{-15pt}^
+% \hspace{40pt}\dots
+% \vspace{3pt}^
+% \contentsline{figure}{\numberline{\ref{fig:ex3}}^
+% {\ignorespaces A set of four subfigures.}}^
+% {\pageref{fig:ex3}}^
+% \hspace{40pt}\dots
+% \vspace{8pt}^
+% \end{minipage}^
+% \end{minipage}}\\
+% \fbox{^
+% \begin{minipage}{4.0in}^
+% \centering
+% \begin{minipage}{3.5in}^
+% \subfigtopskip=3pt^
+% \subfigcapskip=-2pt^
+% \subfigbottomskip=3pt^
+% \abovecaptionskip=5pt^
+% \vspace{7pt}^
+% \centering
+% \makeatletter
+% \subfigure[][]{^
+% \label{fig:ex3-a}^
+% \fbox{\hbox to 1.2in{\vbox to 15mm{\null\vfil}\hfil}}}%
+% \hspace{8pt}%
+% \subfigure[][]{^
+% \label{fig:ex3-b}^
+% \fbox{\hbox to 1.2in{\vbox to 15mm{\null\vfil}\hfil}}}\\
+% \subfigure[][]{^
+% \label{fig:ex3-c}^
+% \fbox{\hbox to 1.2in{\vbox to 15mm{\null\vfil}\hfil}}}%
+% \hspace{8pt}%
+% \subfigure[][]{^
+% \label{fig:ex3-d}^
+% \fbox{\hbox to 1.2in{\vbox to 15mm{\null\vfil}\hfil}}}%
+% \caption[A set of four subfigures.]{A set of four subfigures:
+% \subref{fig:ex3-a} describes the first subfigure;
+% \subref{fig:ex3-b} describes the second subfigure;
+% \subref{fig:ex3-c} describes the third subfigure; and,
+% \subref{fig:ex3-d} describes the last subfigure.}^
+% \label{fig:ex3}^
+% \rr
+% \vspace{15pt}^
+% The text references the main figure as figure~\ref{fig:ex3}
+% or part of it as figures~\ref{fig:ex3-a}--\subref{fig:ex3-c}.
+% \vspace{4pt}^
+% \end{minipage}^
+% \end{minipage}}^
+% \vspace{-12pt}
+% \end{figure}
+%
+% \enlargethispage{12pt}
+% \begin{verbatim}
+% \subfiglabelskip=0pt
+% ...
+% \listoffigures
+% ...
+% \begin{figure}%
+% \centering
+% \subfigure[][]{%
+% \label{fig:ex3-a}%
+% ...figure code...}%
+% \hspace{8pt}%
+% \subfigure[][]{%
+% \label{fig:ex3-b}%
+% ...figure code...}\\
+% \subfigure[][]{%
+% \label{fig:ex3-c}%
+% ...figure code...}%
+% \hspace{8pt}%
+% \subfigure[][]{%
+% \label{fig:ex3-d}%
+% ...figure code...}%
+% \caption[A set of four subfigures.]{A set of four subfigures:
+% \subref{fig:ex3-a} describes the first subfigure;
+% \subref{fig:ex3-b} describes the second subfigure;
+% \subref{fig:ex3-c} describes the third subfigure; and,
+% \subref{fig:ex3-d} describes the last subfigure.}%
+% \label{fig:ex3}%
+% \end{figure}
+% ...
+% The text references the main figure as figure~\ref{fig:ex3} or part
+% of it as figures~\ref{fig:ex3-a}--\subref{fig:ex3-c}.
+% \end{verbatim}%
+%
+% \section{Customization}
+% \label{sec:customization}
+%
+% The following sections describe the internal parameters used by the
+% \Lpack{hhsubfigure} package to define the layout of the subfigures
+% or tables, as well as the labels and captions the accompany them.
+% In addition, adjustments to the entries on a ``List-of'' page and
+% the addition of new \Lenv{float} environments are described.
+%
+% Adjusting these values allows extensive customization of the
+% \Lpack{hhsubfigure} package. If you want to customize the package, an
+% alternative to actually changing the code is to create a a file called
+% \Lfile{subfigure.cfg} and place it anywhere that \LaTeX\ will look for
+% classes or packages. Any changes placed in the file will affect the
+% predefined parameters and you can override the default settings. Any
+% user options will be processed after this file is loaded.
+%
+% In order to change the major commands in the \Lpack{hhsubfigure} package
+% with this configure file, you will need to use the |\AtEndOfPackage|
+% command to defer that portion of your changes until the end of the
+% package.
+%
+% \subsection{Changing the Layout}
+% \enlargethispage{15pt}^finalhack
+% \label{sec:customlayout}
+%
+% \noindent
+% The layout of the |\subfigure| or |\subtable| is defined by several
+% internal values which may be changed to customize appearance of the
+% object. The following illustration shows the relationship of these
+% values. Figure~\ref{fig:layout-A} shows the standard layout with the
+% caption following the figure. The figure is vertically centered with
+% |\subfigtopskip| of space added above, then |\subfigcapskip| of
+% space is added below the figure followed by the subcaption and,
+% finally, |\subfigbottomskip| of space added at the bottom. The baseline
+% is located at the bottom of the figure. It is along this baseline that
+% adjacent subfigure boxes are aligned. Figure~\ref{fig:layout-C} shows
+% the case where the caption precedes the figure ({\it ie.\/},
+% |\subfiguretopcaptrue| or |\subtabletopcaptrue|). In this case the
+% various boxes and glue are reversed,$\!$\footnote{The \cmd{\subfigtopskip}
+% and \cmd{\subfigbottomskip} actually follow the \Lif{figuretopcap}
+% and \Lif{tabletopcap} flags, so that the actual top spacing used is
+% \cmd{\subfigtopskip} when the flags are {\bf false} and
+% \cmd{\subfigbottomskip} when they are {\bf true}.}
+% except that the |\subfigcapskip| is increased by |\subfigcaptopadj|.
+% The other two cases, figures~\ref{fig:layout-B} and
+% \subref{fig:layout-D}, show the cases where there is no caption. Note
+% that the |\subfigcapskip| is left out when there is no caption.
+% Note also, for all of these cases, that the space at the top of the
+% subfigure is automatically removed for items that are the first box
+% in a vertical list or other than the first box in a horizontal list.
+% This allows tighter packing of the subfigures and the full use of
+% the page or \Lenv{minipage}.
+%
+% Each of these values |\subfigtopskip|, |\subfigcapskip|, and
+% |\subfigbottomskip|; as well as |\subfigcapmargin| and
+% |\subfiglabelskip| (the latter not shown in figure~\ref{fig:layout})
+% may be changed from their defaults (see
+% table~{\PrintIfDefined{tab:defaults}{\ref{tab:defaults}}{\ref{tab:spacing}}})
+% to adjust the subfigure for the current layout style. In addition,
+% they may all assume negative values, which in some cases may solve
+% problems with the layout. Even though these constants are ``skips'',
+% only the last two (|\subfigcapmargin| and |\subfiglabelskip|) will
+% shrink or expand since the others assume their natural size in the
+% subfigure box and are fixed at that size.
+%
+% \begin{figure}[p]
+% \subfigtopskip=10pt^
+% \subfigcapskip=4pt^
+% \subfigbottomskip=12pt^
+% \abovecaptionskip=3pt^
+% \centering
+% \fboxsep=-\fboxrule
+% \newbox{\tempbox}
+% \newdimen{\tempdima}
+% \newdimen{\tempdimb}
+% \setbox\tempbox\hbox{
+% $\stackrel{\longleftrightarrow}{\cs{subfigcapmargin}}$}
+% \setbox\tempbox\hbox{\cs{subfigcapmargin}}
+% \tempdimb \wd\tempbox
+% \setbox\tempbox\hbox to \tempdimb{^
+% \kern -.5mm\hbox{$\leftarrow$}\kern -.5mm^
+% \leaders\hrule width1pt height2.6pt depth-2.2pt\hfill
+% \kern -.13mm$\rightarrow$}
+% \tempdima \wd\tempbox
+% \advance\tempdima 1mm
+% \tempdimb \tempdima
+% \multiply\tempdimb -2
+% \advance\tempdimb 4.5in
+% \advance\tempdimb -4mm
+% \subfigure[Standard layout {[FIGBOTCAP] or [TABBOTCAP]}.]{
+% \label{fig:layout-A}
+% \fbox{\parbox{4.5in}{
+% \vspace{1pt}
+% \hbox to 4.5in{
+% \hspace{1.5in}
+% $\left\updownarrow\vrule width0pt height11pt depth1pt\right.$
+% (\cs{subfigtopskip})
+% \hfil}
+% \fbox{\vbox to 45pt{
+% \vskip1pt
+% \vskip\baselineskip
+% \vfil
+% \hbox to 4.5in{
+% \hfil
+% {\scshape subfigure} or {\scshape subtable}
+% \hfil}
+% \vfil
+% \vbox to 0pt{%
+% \vss
+% \hbox to 4.5in{
+% \hspace{9pt}
+% {\small Baseline}
+% \hfil}}
+% \vspace{1pt}}}
+% \hbox to 4.5in{
+% \hspace{1.5in}
+% $\left\updownarrow\vrule width0pt height11pt depth1pt\right.$
+% \cs{subfigcapskip}
+% \hfil}
+% \hbox to 4.5in{
+% \hbox to\tempdima{
+% \vbox to 20pt{
+% \vfil
+% \copy\tempbox
+% \vfil
+% \hbox{\kern .5mm\cs{subfigcapmargin}}
+% \vfil}}
+% \fbox{\vbox to 20pt{
+% \vfil
+% \hbox to\tempdimb{
+% \hfil
+% {\scshape subcaption}
+% \hfil}
+% \vfil}}
+% \hbox to\tempdima{
+% \vbox to 20pt{
+% \vfil
+% \copy\tempbox
+% \vfil
+% \hbox{\kern .5mm\cs{subfigcapmargin}}
+% \vfil}}
+% \hfill}
+% \hbox to 4.5in{
+% \hspace{1.5in}
+% $\left\updownarrow\vrule width0pt height11pt depth1pt\right.$
+% \cs{subfigbottomskip}
+% \hfil}}}}
+%
+% \subfigure[Standard layout {[FIGBOTCAP] or [TABBOTCAP]} with no
+% caption present.]{
+% \label{fig:layout-B}
+% \fbox{\parbox{4.5in}{
+% \vspace{1pt}
+% \hbox to 4.5in{
+% \hspace{1.5in}
+% $\left\updownarrow\vrule width0pt height11pt depth1pt\right.$
+% (\cs{subfigtopskip})
+% \hfil}
+% \fbox{\vbox to 45pt{
+% \vskip1pt
+% \vskip\baselineskip
+% \vfil
+% \hbox to 4.5in{
+% \hfil
+% {\scshape subfigure} or {\scshape subtable}
+% \hfil}
+% \vfil
+% \hbox to 4.5in{
+% \hspace{9pt}
+% {\small Baseline}
+% \hfil}
+% \vspace{1pt}}}
+% \hbox to 4.5in{
+% \hspace{1.5in}
+% $\left\updownarrow\vrule width0pt height11pt depth1pt\right.$
+% \cs{subfigbottomskip}
+% \hfil}}}}
+%
+% \subfigure[Reversed layout {[FIGTOPCAP] or [TABTOPCAP]}.]{
+% \label{fig:layout-C}
+% \fbox{\parbox{4.5in}{
+% \vspace{1pt}
+% \hbox to 4.5in{
+% \hspace{1.5in}
+% $\left\updownarrow\vrule width0pt height11pt depth1pt\right.$
+% (\cs{subfigbottomskip})
+% \hfil}
+% \hbox to 4.5in{
+% \hbox to\tempdima{
+% \vbox to 20pt{
+% \vfil
+% \copy\tempbox
+% \vfil
+% \hbox{\kern -.5mm\cs{subfigcapmargin}}
+% \vfil}}
+% \fbox{\vbox to 20pt{
+% \vfil
+% \hbox to\tempdimb{
+% \hfil
+% {\scshape subcaption}
+% \hfil}
+% \vfil}}
+% \hbox to\tempdima{
+% \vbox to 20pt{
+% \vfil
+% \box\tempbox
+% \vfil
+% \hbox{\kern -.5mm\cs{subfigcapmargin}}
+% \vfil}}
+% \hfill}
+% \hbox to 4.5in{
+% \hbox to 0pt{
+% \hspace{9pt}
+% \smash{\raisebox{-6.5pt}{\small Baseline}}
+% \hss}
+% \hspace{1.5in}
+% $\left\updownarrow\vrule width0pt height11pt depth1pt\right.$
+% \cs{subfigcapskip}$+$\cs{subfigcaptopadj}
+% \hfil}
+% \fbox{\vbox to 45pt{
+% \vfil
+% \hbox to 4.5in{
+% \hfil
+% {\scshape subfigure} or {\scshape subtable}
+% \hfil}
+% \vfil}}
+% \hbox to 4.5in{
+% \hspace{1.5in}
+% $\left\updownarrow\vrule width0pt height11pt depth1pt\right.$
+% \cs{subfigtopskip}
+% \hfil}}}}
+%
+% \subfigure[Reversed layout {[FIGTOPCAP] or [TABTOPCAP]} with no
+% caption present.]{
+% \label{fig:layout-D}
+% \fbox{\parbox{4.5in}{
+% \vspace{1pt}
+% \hbox to 4.5in{
+% \hbox to 0pt{
+% \hspace{9pt}
+% \smash{\raisebox{-6.5pt}{\small Baseline}}
+% \hss}
+% \hspace{1.5in}
+% $\left\updownarrow\vrule width0pt height11pt depth1pt\right.$
+% (\cs{subfigbottomskip})
+% \hfil}
+% \fbox{\vbox to 45pt{
+% \vfil
+% \hbox to 4.5in{
+% \hfil
+% {\scshape subfigure} or {\scshape subtable}
+% \hfil}
+% \vfil}}
+% \hbox to 4.5in{
+% \hspace{1.5in}
+% $\left\updownarrow\vrule width0pt height11pt depth1pt\right.$
+% \cs{subfigtopskip}
+% \hfil}}}}
+% \caption{Subfigure and subtable layout.}
+% \label{fig:layout}
+% \end{figure}
+%
+% \subsection{Adjusting the Subcaption}
+% \label{sec:customlabel}
+%
+% The subfigure label has three forms. The first is the one that
+% \DescribeMacro{\subref}
+% \DescribeMacro{\Subref}
+% appears in the text when you use the |\ref| command; the second is the
+% one that appears on the List-of-Figures page and may be used to
+% reference individual subfigures within the figure and subfigure captions,
+% using the |\subref| or |\Subref| commands; and the third is the fully
+% formatted version used under the subfigure as the label part of the caption.
+%
+% The |\ref| command yields the string, saved by the |\label| command,
+% composed by concatenating the value of |\p@subfigure| to
+% |\thesubfigure|. By default these are defined by: ``|\thefigure|''
+% and ``|(\alph{subfigure})|'', respectively, which produces a reference
+% of the figure number followed by the subfigure letter in parentheses.
+%
+% The label used on the List-of-Figures page may be retrieved with the
+% |\subref| command (this value is saved by the |\label| command when
+% the |\label| command is used within the scope of the subfigure. This is
+% the string defined by |\@@thesubfigure|, which, by default, is the
+% value ``|\thesubfigure|'' (or ``|(\alph{subfigure})|'').
+%
+% The label used with the subcaption text is defined by the internal
+% value |\@thesubfigure|, which, by default, has the
+% value\hfil\null\linebreak
+% \centerline{``\cmd{\thesubfigure}\cmd{\hskip}\cmd{\subfiglabelskip}''.}
+% It is prefixed by |\subcapsize\subcaplabelfont| and followed by the
+% subcaption text which is set with |\subcapfont|.
+%
+% \changes{v2.1.4}{30 Apr 2002}{Changed the label and caption defaults
+% from \cmd{\rmfamily}\cmd{\mdseries}\cmd{\upshape} to
+% \cmd{\familydefault}\cmd{\seriesdefault} \cmd{\shapedefault}.}
+% Note that by default |\subcaplabelfont| has the default value
+% ``|{\familydefault| |\seriesdefault\shapedefault}|''. The package
+% options described in table~\ref{tab:options} allow you to set these
+% values for your paper. If you update the |\@subfigure| command, you
+% should include any separator character or spacing between the label
+% and the start of the subcaption text. The default is
+% |\hskip\subfiglabelskip| placed after the label.
+%
+% Finally, the text of the subcaption is prefixed by |\subcapfont| which
+% may be changed using the set of nine lower-case font options described
+% in table~\ref{tab:options}\@.$\!$\footnote{It is also prefixed by
+% \cmd{\subcapsize} as part of the overall label and caption.} \ One other
+% way of changing the layout of the lapel and caption is by replacing
+% the |\@makesubfigurecaption| or |\@makesubtablecaption| command (which
+% by default are identical).
+%
+% \subsection{Adjusting the Subfigure and Subtable Counters}
+% \label{sec:counters}
+%
+% To create some special effects, such as continuing the subfigure
+% \DescribeMacro{\c@figure}
+% \DescribeMacro{\c@table}
+% numbering across several pages as part of one long continued figure,
+% you can back off the number change from a caption with the command:
+% \begin{quote}
+% |\addtocounter{|\Lcount{figure}|}{|-1|}|
+% \end{quote}
+% within the \Lenv{figure} environment. In addition, you can adjust for
+% previous subfigures or subtables with one of the following (here
+% we assume that two subfigures or subtables appeared in the previous
+% pages:
+% \begin{quote}
+% |\addtocounter{|\Lcount{subfigure}|}{|2|}|
+% \end{quote}
+% \vspace{-5pt}
+% \noindent
+% or
+% \vspace{-5pt}
+% \begin{quote}
+% |\addtocounter{|\Lcount{subtable}|}{|2|}|.
+% \end{quote}
+%
+% Two other things that may be necessary, if you switch between figures
+% and tables in the same \Lenv{figure} environment ({\it e.g.\/}, by
+% changing |\@captype|, see section~\ref{sec:float_env}), is to add the
+% command |\listsubcaptions| following the last subfigure when the
+% subfigure is using the \Lopt{TOPCAP} or \Lopt{topcap} option. This is
+% necessary to flush the list of subcaptions before the next
+% \Lenv{subfigure} or \Lenv{subtable}. This also may be necessary if
+% you switch between |\figuretopcaptrue| and |\figuretopcapfalse|. The
+% other thing that may be required in some cases, is to reset the
+% subfigure counter by entering:
+% \begin{quote}
+% |\setcounter{|\Lcount{subfigure}|}{|0|}|
+% \end{quote}
+% \noindent
+% This should only be necessary if you are dynamically switching between
+% different \Lpack{hhsubfigure} options, or changing the |\@captype|,
+% within a float environment.
+%
+% \subsection{Modifying the List-of-Figures and List-of-Tables}
+% \label{sec:listof}
+%
+% To generate a List-of-Figures, or List-of-Tables, page you need to
+% \DescribeMacro{\l@subfigure}
+% \DescribeMacro{\@dottedxxxline}
+% add a |\listoffigures| or |\listoftables| command where
+% you want the list to appear. These
+% commands also cause the appropriate captions and subcaptions to be
+% written to a file with the extensions \Lfile{lof} (\Lfile{lot}). If
+% you want the subcaption text to appear in the List-of-Figures or
+% List-of-Tables page, you need to change the value of the counter
+% \Lcount{lofdepth} (\Lcount{lotdepth}) counter from its default of `1'.
+% For example, to have the \Lpack{hhsubfigure} subcaptions to appear on
+% the List-of-Figures, add the following to the preamble of your
+% paper:
+% \begin{quote}
+% |\setcounter{|\Lcount{lofdepth}|}{2}|
+% \end{quote}
+%
+% If you want to change how the subcaption appears on the ``List-of''
+% pages you can change its format by redefining the |\l@subfigure|
+% or |\l@subtable| command. Usually you will want to use the
+% |\@dottedxxxline| command
+% \PrintIfDefined{sec:dl}{(section~\ref{sec:dl},
+% page~\pageref{sec:dl})\space}{} to help with the formatting. For
+% instance the default value of |\l@subfigure| is:
+%
+% \begin{verbatim}
+% \newcommand{\l@subfigure}{%
+% \@dottedxxxline{\ext@subfigure}{2}{3.8em}{2.5em}}
+% \end{verbatim}
+% \vspace{-10pt}
+%
+% \noindent
+% The arguments of the |\@dottedxxxline| command are:
+% \begin{quote}
+% \begin{enumerate}
+% \itemsep -\parsep
+% \item \underline{\smash{\textsf{Type}}}. The usual values are
+% : \Lfile{lof} or \Lfile{lot}. The internal
+% values |\ext@subfigure| and |\ext@subtable| stand for
+% these extensions.
+% \item \underline{\textsf{Level}}. By default this is `2'
+% for the \Lcount{subfigure} and \Lcount{subtable}. If the level
+% is greater than \Lcount{\meta{Type}depth} (where
+% \underline{\smash{\meta{Type}}} is the first argument, above),
+% then no line is produced.
+% \item \underline{\textsf{Indent}}. Total indentation
+% from the left margin.
+% \item \underline{\textsf{Numwidth}}. Width of box for the
+% label number if the \underline{\textsf{Title}} has a
+% |\numberline| command. This is also the amount of extra
+% indentation added to second and later lines of a multiple
+% line entry.
+% \item \underline{\textsf{Title}}. Contents of entry ({\it e.g.\/} the
+% \meta{list\_entry} or \meta{subcaption}).
+% \item \underline{\smash{\textsf{Page}}}. The page number of the
+% figure or table.
+% \end{enumerate}
+% \end{quote}
+%
+% \noindent
+% The final two arguments, \underline{\textsf{title}} and
+% \underline{\smash{\textsf{page}}}, are automatically appended to the
+% value of |\l@subfigure| (and symmetrically for |\l@subtable|).
+%
+% For example, to change the amount of space reserved for the label
+% (if, for instance, you have a lot of figures and the and you need extra
+% space for the figure number) you could widen the
+% \texttt{2.5em} space for the label to \texttt{4.0em}:
+% \begin{verbatim}
+% \makeatletter
+% \renewcommand{\l@subfigure}{%
+% \@dottedxxxline{\ext@subfigure}{2}{3.8em}{4.0em}}
+% \makeatother
+% \end{verbatim}
+%
+% \subsection{Aligning Captions Above the Figure}
+% \label{sec:custom-position}
+%
+% \begin{figure}^
+% \figuretopcaptrue
+% \subfigtopskip=-5pt^
+% \subfigcapskip=-3pt^
+% \subfigbottomskip=2pt^
+% \centering
+% \caption{Caption position option: [\Lopt{figtopcap}] with changing
+% settings of \cmd{\subfiguretopcap}.}^
+% \label{fig:position3}^
+% \subfiguretopcapfalse
+% \subfigure[First caption.]{\hbox to 1.5in{\hfil\null}}^
+% \hspace{0.2in}^
+% \subfigure[Second long, long, long, long,
+% long, long, long, long caption.]{^
+% \hbox to 1.5in{\hfil\null}}\\[5pt]
+% \subfiguretopcaptrue
+% \subfigure{\fbox{\hbox to 1.5in{\vbox to 15mm{\vfil\null}\hfil}}}^
+% \hspace{0.2in}^
+% \subfigure{\fbox{\hbox to 1.5in{\vbox to 10mm{\vfil\null}\hfil}}}^
+% \setcounter{subfigure}{0}
+% \end{figure}
+%
+% \noindent
+% For unbalanced sets of captions placed, above the figures or tables,
+% \DescribeMacro{\subfiguretopcaptrue}
+% \DescribeMacro{\subfiguretopcapfalse}
+% \DescribeMacro{\figuretopcaptrue}
+% the caption portion looks unbalanced, such as the ones in
+% figure~\ref{fig:position2}. If you prefer to have the caption portion
+% aligned along the top rather than the bottom, as shown in
+% figure~\ref{fig:position3}, you can use the
+% \Lopt{figtopcap} option as in figure~\ref{fig:position2}, but use
+% two ``empty'' subfigures to position the captions followed by
+% two more containing the figures, but without captions. The code
+% to produce this example is:
+%
+% \begin{verbatim}
+% \begin{figure}%
+% \centering
+% \caption{Caption position option: [\Lopt{figtopcap}] with changing
+% settings of \subfiguretopcap.}%
+% \label{fig:position3}%
+% \subfiguretopcapfalse
+% \subfigure[First caption.]{\hbox to 1.5in{\hfil\null}}%
+% \hspace{0.2in}%
+% \subfigure[Second long, long, long, long,
+% long, long, long, long caption.]{%
+% \hbox to 1.5in{\hfil\null}}\\[5pt]
+% \subfiguretopcaptrue
+% \subfigure{\fbox{\hbox to 1.5in{\vbox to 15mm{\vfil\null}\hfil}}}%
+% \hspace{0.2in}%
+% \subfigure{\fbox{\hbox to 1.5in{\vbox to 10mm{\vfil\null}\hfil}}}%
+% \end{figure}
+% \end{verbatim}
+%
+% This example makes use of one of the four flags that control how the
+% caption labels are numbered and where the subcaption appears. Two are
+% for |\subfigure| and two for |\subtable|. The first of each set tell
+% the |\subfigure| or |\subtable| command that the related main caption
+% appears before or after the set of subfloats. |\figuretopcaptrue| and
+% |\tabletopcaptrue| indicate that the caption appears before and
+% |\figureotopcapfalse| and |\tabletopcapfalse| indicate that the it
+% appears after. The other two flags force the subcaption to be placed
+% before (|\subfiguretopcaptrue| and |\subtabletopcaptrue|) or after the
+% actual subfigure or subtable (|\subfiguretopcapfalse| and
+% |\subtabletopcapfalse|).
+%
+% There are two difficulties with this approach, first, you need to keep
+% changing the setting of |\subfiguretopcap|, and second, if you have
+% more than one row of subfigures or subtables, then you will need to
+% fiddle with the counter (see section~\ref{sec:counters} to keep the
+% numbers straight. The reason that this format is not supported by the
+% \Lpack{hhsubfigure} package is that you need information about all of
+% the subfigure or subtables on a row to box the figures correctly and
+% this information is not available locally.
+%
+% \subsection{Adding Subfloats to New Environments}
+% \enlargethispage{15pt}^finalhack
+% \label{sec:customfloat}
+%
+% It is easy to add a \Lenv{subfloat} command to a new environment. For
+% instance, let us assume we have a new \Lenv{float}
+% environment\footnote{For information on creating new float
+% environments, see any of the following: \cite{Lamp01}, \cite{Wils01}
+% or \cite{Ling01}.} called ``\Lenv{map}'' in which various maps are
+% displayed and for which a List-of-Maps is to be generated in the
+% contents section. If we wanted to have \Lenv{submaps}, then we could
+% define the following:
+%
+% \vspace{-4pt}
+% \begin{verbatim}
+% \makeatletter
+% \newcounter{submap}[map]
+% \newif\ifmaptopcap
+% \newif\ifsubmaptopcap
+% \newcommand{\p@submap}{\themap}
+% \newcommand{\thesubmap}{(\alph{submap})}
+% \newcommand{\@thesubmap}{\themap\hskip\subfiglabelskip}
+% \newcommand{\@@thesubmap}{\themap}
+% \newcommand{\ext@submap}{\ext@map}
+% \newcommand{\l@submap}{\@dottedxxxline{\ext@submap}{2}{3.8em}{2.5em}}
+% \newcounter{lomdepth}
+% \setcounter{lomdepth}{1}
+% \newcommand{\submap}{\subfigure}
+% \newcommand{\@makesubmapcaption}{\@makesubfigurecaption}
+% \ifhyperrefloaded
+% \newcommand\theHsubmap{\themap.\arabic{submap}}
+% \newcommand{\toclevel@submap}{1}
+% \fi
+% \makeatother
+% \end{verbatim}
+% \vspace{-14pt}
+%
+% The first and last lines make the character `@' act like a letter
+% between them and therefore it may be part of a command name used there.
+% First a new counter for the \Lpack{submap} is created along with two
+% conditionals that define where the position ({\i.e.\/}, above or
+% below) of the main caption and subcaption is with respect to the
+% submap. Then the four commands that define the \Lpack{submap} label
+% are created. The first two, |\p@submap| and |\thesubmap| define the
+% standard label returned by |\ref|. The next, |\@thesubmap| gives the
+% label as shown under or over the submap with the subcaption and the
+% last, |\@@thesubmap| shows how the label is displayed on the List-of-Maps
+% and/or referenced with the |\subref| command.
+%
+% The next four lines show where and how to print to the List-of-Maps
+% page: |\ext@submap| gives the List-of-Maps file extension; |\l@submap|
+% shows how to print the submap line on the List-of-Maps page; and the last
+% two lines show how to create and set the counter \Lcount{lomdepth}, which
+% controls how many caption levels are shown on the page when it is printed.
+%
+% The next two lines create the |\submap| and |\@makesubmapcaption|
+% commands by making them the same as the |\subfigure| and
+% |\@makesubfigurecaption| commands.
+%
+% The last four lines conditionally create the |\theHsubmap| and
+% |\toclevel@submap| commands which are used by the \Lpack{hyperref}
+% Package to name the item and to control the presence of the item
+% bookmark.
+%
+% Of course, this is where the \Lpack{ccaption} package \cite{Wils01}
+% comes in handy since it will do all of the above with one command:
+%
+% \vspace{-4pt}
+% \begin{verbatim}
+% \newsubfloat{map}
+% \end{verbatim}
+% \vspace{-10pt}
+%
+%
+% \subsection{Interaction with Other Parts of \LaTeX}
+% In the following sections, the interaction of the \Lpack{hhsubfigure}
+% package with other parts of \LaTeX\ is documented. These ``other
+% parts'' may be either part of the the \LaTeX\ base or contributed
+% packages or classes.
+%
+% \subsubsection{\TeX 's ``Mouth''}
+% The most important thing to remember when laying out your figures
+% within a \Lenv{float} environment is that spaces take room. If you
+% have an extra space between two figures, then they will be separated
+% by a little bit.
+%
+% \TeX 's state varies as it reads a line of text from a file. It
+% ignores some spaces and carriage-returns and converts others to
+% |\space|'s or |\par|'s. You can use a `|%|' to insure that you only
+% have real spaces where you want them. To understand which spaces
+% are significant, you should read chapters~7 and 8 of the \TeX book
+% \cite{Knut86}. However, the main source of unexpected
+% extra spacing is carriage-returns which are turned in to |\space|'s.
+% As a general rule: if in doubt, then add a `|%|' immediately after
+% the last significant character of the line.
+%
+% \subsubsection{The Float Environment}
+% \label{sec:float_env}
+%
+% Although the \Lpack{hhsubfigure} package was designed to work within a
+% \Lenv{float} environment ({\it e.g.\/}, \Lenv{figure} or
+% \Lenv{table}), it can be used outside with the following two caveats:
+% \begin{enumerate}\itemsep=5pt
+% \item You need to define |\@captype|. This is usually either
+% \Lenv{figure} or \Lenv{table}. For example add the following
+% to the preamble of your document:
+% \begin{verbatim}
+% \makeatletter
+% \newcommand{\change_cap_type}[1]{%
+% \renewcommand{\@captype}{#1}}
+% \makeatother
+% \end{verbatim}\vspace{-15pt}
+% Then use the new command to switch in the middle of a given
+% \Lenv{float} environment, say from ``figure'' to ``table'' with
+% the command |\change_cap_type{table}|.
+% \item If you want to define references using |\label|, then you also
+% need to redefine the \LaTeX\ internal |\@currentlabel|. For
+% example:
+% \begin{verbatim}
+% \makeatletter
+% \edef\@currentlabel{\p@subfigure\thesubfigure}
+% \makeatother
+% \end{verbatim}\vspace{-15pt}
+% before using the |\label| command. NOTE: Many other commands change
+% |\@currentlabel|, including all of the ``section'' commands,
+% |\caption|, \Lenv{equation}'s, and \Lenv{theorem}'s.
+% \end{enumerate}
+%
+% \subsubsection{Interaction with Other Packages}
+%
+% \changes{v2.1}{22 Jan 2001}{Added \Lpack{ccaption} reference.}
+%
+% \changes{v2.1}{11 Oct 1996}{Revised subsubsection on use with
+% the caption package and extended this section to talk about the
+% \Lpack{captcont} package.}
+%
+% \noindent
+% The only packages that directly interact with the \Lpack{hhsubfigure}
+% package are the \Lpack{caption}/\Lpack{caption2} packages by
+% H.A. Sommerfeldt \cite{Somm95a,Somm95b}, the \Lpack{ccaption} package
+% and \Lpack{tocloft} packages by Peter Wilson \cite{Wils01,Wils01B},
+% and the \Lpack{captcont} package by S.D. Cochran \cite{Coch02}.
+%
+% \paragraph{\Lpack{caption}}
+%
+% If you load the \Lpack{hhsubfigure} package {\bf before} the
+% \Lpack{caption} package, then the \Lpack{caption} package will detect
+% that fact and will change the |\subcapsize| when the options
+% \Lopt{scriptsize}, \ldots, \Lopt{Large} are specified (overriding such
+% options used when loading the \Lpack{hhsubfigure} package). In
+% addition, it redefines |\@thesubfigure| and |\@thesubtable| to use
+% |\captionlabelfont|. It also uses an older layout of
+% |\@thesubsubfigure| and |\@thesubtable|.
+%
+% The best plan is to load the \Lpack{caption} package {\bf before} the
+% \Lpack{hhsubfigure} package. In addition, you should try to coordinate
+% the ``look and feel'' of the two packages. This limits you a little
+% since, although the two packages have similar options, the options in
+% the \Lpack{caption} package do not combine the same way. You can pick
+% one from each column:\par\null
+%
+% \DeleteShortVerb{\|}
+% \noindent\hfil\begin{tabular}{*{4}{p{17mm}|}p{17mm}}
+% \rr \Lopt{normal}, \Lopt{hang}, \Lopt{center}, \Lopt{centerlast} &
+% \rr \Lopt{nooneline} &
+% \rr \Lopt{scriptsize}, \Lopt{footnotesize}, \Lopt{small},
+% \Lopt{normalsize}, \Lopt{large}, \Lopt{Large} &
+% \rr \Lopt{up}, \Lopt{it}, \Lopt{sl}, \Lopt{sc}, \Lopt{md},
+% \Lopt{bf}, \Lopt{rm}, \Lopt{sf}, \Lopt{tt} &
+% \rr (Other options---see package.)
+% \end{tabular}
+% \MakeShortVerb{\|}
+% \vskip14pt
+%
+% \paragraph{\Lpack{caption2}}
+%
+% This package acts similarly to the \Lpack{caption} package. If you
+% specify the \Lopt{subfigure} it will try to support the subfigure
+% package, if you specify \Lopt{nosubfigure} than it will not. If
+% neither option is specified, than load order matters. If loaded
+% {\bf before} the \Lpack{hhsubfigure} package, than it will not try to
+% support the package and if loaded {\bf after} it will.
+%
+% Again, the best plan is to load the \Lpack{caption2} package
+% {\bf before} the \Lpack{hhsubfigure} package, and specify the
+% \Lopt{nosubfigure} option. In addition, you should try to coordinate
+% the ``look and feel'' of the two packages. This limits you a little
+% since, although the two packages have similar options, they are not
+% exactly the same; however, most of the good looking combinations are
+% easily available. You can pick one from each column:\par\null
+%
+% \DeleteShortVerb{\|}
+% \noindent\hfil\begin{tabular}{*{5}{p{17mm}|}p{17mm}}
+% \rr \Lopt{nosubfigure}, \Lopt{subfigure} &
+% \rr \Lopt{normal}, \Lopt{hang}, \Lopt{center}, \Lopt{centerlast}
+% \Lopt{flushleft}, \Lopt{indent} &
+% \rr \Lopt{oneline}, \Lopt{nooneline} &
+% \rr \Lopt{scriptsize}, \Lopt{footnotesize}, \Lopt{small},
+% \Lopt{normalsize}, \Lopt{large}, \Lopt{Large} &
+% \rr \Lopt{up}, \Lopt{it}, \Lopt{sl}, \Lopt{sc}, \Lopt{md},
+% \Lopt{bf}, \Lopt{rm}, \Lopt{sf}, \Lopt{tt}^,
+%^ \Lopt{UP}, \Lopt{IT}, \Lopt{SL}, \Lopt{SC}, \Lopt{MD},
+%^ \Lopt{BF}, \Lopt{RM}, \Lopt{SF}, \Lopt{TT}
+% &
+% \rr (Other options---see package.)
+% \end{tabular}
+% \MakeShortVerb{\|}
+%
+% \paragraph{\Lpack{ccaption}}
+%
+% The \Lpack{ccaption} package provides for all sorts of extensions and
+% style options for \Lenv{float} |\captions|. It also provides for the
+% use of the |\caption| command outside of a \Lenv{float} environment and
+% a mechanism for creating new types of \Lenv{float} environments.
+%
+% In order to use it with the \Lpack{hhsubfigure} package, you need to
+% pass the \Lopt{subfigure} option when loading it:
+%
+% \begin{quote}
+% |\usepackage|[subfigure]\{ccaption\}
+% \end{quote}
+%
+% \paragraph{\Lpack{tocloft}}
+%
+% The \Lpack{tocloft} package gives the user the ability to easily
+% configure the ``List-of'' pages. It takes a \Lopt{subfigure} option
+% so it doesn't matter which package is loaded first.
+%
+% \begin{quote}
+% |\usepackage|[subfigure]\{tocloft\}
+% \end{quote}
+%
+% \paragraph{\Lpack{hyperref}}
+% \label{sec:hyperref}
+%
+% \changes{v2.1.2}{26 Mar 2002}{Improved coordination with the hyperref
+% package.}
+%
+% \changes{v2.1.1}{15 Mar 2002}{Added coordination with the hyperref
+% package. There is some interaction with the \cmd{label} command as
+% pointed out by Martin.Bernreuther@po.uni-stuttgart.de.}
+%
+% The \Lpack{hyperref} package extends the functionality of all of the
+% \LaTeX\ cross-referencing commands to produce hypertext links. In
+% addition, it provides new commands to allow the user to insert
+% hypertext links. When used with the \Lpack{hhsubfigure} package, they
+% may be loaded in any order; however, it might be better if the
+% \Lpack{hhsubfigure} package is loaded {\bf first}.
+%
+% To more fully support the \Lpack{hyperref} package, the |\label|
+% \DescribeMacro{\subfloat@label}
+% command, when used within the scope of the |\subfigure| or |\subtable|
+% commands takes an optional argument (note the parentheses rather than
+% square brackets):
+% \vspace{-2pt}
+% \begin{quote}
+% |\label|\parg{bookmark}\marg{key}
+% \end{quote}
+% \vspace{-2pt}
+%
+% \noindent
+% We would like to use the subcaption as the bookmark text, but the
+% |\label| command is often processed before the subcaption. Therefore,
+% this optional argument may be used to supply this information if
+% desired. By default a bookmark field of the form
+% ``Subfigure\textvisiblespace 1(a)'' will be generated.
+% \footnote{If the document class is \Lpack{report} or other class that
+% defines \cmd{\thechapter}, than the default bookmark field will be of the
+% form ``Subfigure\textvisiblespace 1 \textvisiblespace 1(a)''.}
+%
+%
+% \paragraph{\Lpack{captcont}}
+%
+% This package may be used with or without the \Lpack{hhsubfigure} package
+% \DescribeMacro{\caption}
+% \DescribeMacro{\caption*}
+% \DescribeMacro{\captcont}
+% \DescribeMacro{\captcont*}
+% to extend figure or table numbering across multiple pages. This
+% package knows about how the \Lpack{hhsubfigure} package interacts with
+% the List-of-Figures and List-of-Tables and does the right thing when
+% used with \Lenv{subfigure}'s and \Lenv{subtable}'s.
+%
+% The \Lpack{captcont} package may be loaded either {\bf before} or
+% {\bf after} the \Lpack{hhsubfigure} and it has four options:
+% \Lopt{figbotcap} or \Lopt{figtopcap} and \Lopt{tabbotcap} or
+% \Lopt{tabtopcap}. These are the same as the \Lpack{hhsubfigure}
+% options. When the \Lpack{captcont} package is used with the
+% \Lpack{hhsubfigure} package, only the \Lpack{hhsubfigure} options matter.
+% Any given with the \Lpack{captcont} package are ignored.
+%
+% The thing to remember about the \Lpack{captcont} package is that if
+% you normally place the |\caption| {\bf before} your subfigures or
+% subtables ({\it i.e.\/}, \Lopt{figtopcap} or \Lopt{tabtopcap}
+% respectively), then you start a series of continued \Lenv{figure}'s
+% with the |\caption[*]| and use |\contcapt[*]| in each of the rest of
+% the figures. If you {\bf follow} your subfigures or subtables with a
+% caption ({\it i.e.\/}, \Lopt{figbotcap} or \Lopt{tabbotcap}
+% respectively), then you start the series with the |\contcapt[*]| in
+% the first \Lenv{figure} environment and all but the last where you use
+% the |\caption[*]|.
+%
+% \subsubsection{Creating a \Lenv{subfigure} Environment}
+%
+% \changes{v2.1.4}{24 Apr 2002}{Added \cmd{\label} command handling
+% example in the \Lenv{subfloat} environment, thanks to Lars Clausen.}
+%
+% Some people have wanted to use the \Lenv{verbatim} environment within
+% \DescribeEnv{subfloat}
+% the \cmd{\subfigure} command and run into the restriction that the
+% \Lenv{verbatim} environment cannot be nested. To include verbatim text in
+% a subfigure, you can define a new environment, in which verbatim
+% text may be enclosed, and which calls the \cmd{\subfigure} command.
+% \vspace{-2pt}
+% \begin{verbatim}
+% \newbox\subfigbox % Create a box to hold the subfigure.
+% \makeatletter
+% \newenvironment{subfloat}% % Create the new environment.
+% {\def\caption##1{\gdef\subcapsave{\relax##1}}%
+% \let\subcapsave=\@empty % Save the subcaption text.
+% \let\sf@oldlabel=\label
+% \def\label##1{\xdef\sublabsave{\noexpand\label{##1}}}%
+% \let\sublabsave\relax % Save the label key.
+% \setbox\subfigbox\hbox
+% \bgroup}% % Open the box...
+% {\egroup % ... close the box and call \subfigure.
+% \let\label=\sf@oldlabel
+% \subfigure[\subcapsave]{\box\subfigbox}}%
+% \makeatother
+% \end{verbatim}
+% \enlargethispage{12pt}^finalhack
+% \noindent
+% The following is an example of this \Lenv{subfloat} environment begin
+% used to produce figure~\ref{fig:verbatim}. Note that you need to
+% supply the width of the \Lenv{verbatim}; here we use a section using a
+% \Lenv{minipage}).
+% \begingroup
+% \newbox\subfigbox
+% \makeatletter
+% \newenvironment{subfloat}^
+% {\def\caption##1{\gdef\subcapsave{\relax##1}}^
+% \let\subcapsave=\@empty
+% \let\sf@oldlabel=\label
+% \def\label##1{\xdef\sublabsave{\noexpand\label{##1}}}^
+% \let\sublabsave\relax
+% \setbox\subfigbox\hbox
+% \bgroup}^
+% {\egroup
+% \let\label=\sf@oldlabel
+% \subfigure[\subcapsave]{\box\subfigbox\sublabsave}}^
+% \makeatother
+% \begin{figure}
+% \centering
+% \subfigtopskip=0pt^
+% \subfigcapskip=0pt^
+% \subfigbottomskip=0pt^
+% \begin{subfloat}^
+% \begin{minipage}{2.1in}
+% \begin{verbatim}
+% This text should be
+% verbatim. And not
+% messed with in any way !
+% \end{verbatim}
+% \end{minipage}^
+% \caption{First subcaption.}^
+% \label{fig:verbone}
+% \end{subfloat}^
+% \hspace{10pt}^
+% \begin{subfloat}^
+% \begin{minipage}{2.1in}
+% \begin{verbatim}
+% This text (also)should be
+% verbatim. And not
+% messed with in any way !
+% \end{verbatim}
+% \end{minipage}^
+% \caption{Second subcaption.}^
+% \label{fig:verbtwo}
+% \end{subfloat}
+% \caption{Subfigures~\subref{fig:verbone} and \subref{fig:verbtwo}
+% show examples of using verbatim text in a subfigure.}
+% \label{fig:verbatim}
+% \end{figure}
+% \endgroup
+% \begin{quote}\
+% |\begin{figure}| \\
+% | \centering|
+% | \begin{subfloat}%| \\
+% | \begin{minipage}{2.1in}| \\
+% | \begin{verbatim}| \\
+% | This text should be| \\
+% |verbatim. And not| \\
+% | messed with in any way !| \\
+% | \end{verbatim}| \\
+% | \end{minipage}%| \\
+% | \caption{First subcaption.}%| \\
+% | \label{fig:verbone}| \\
+% | \end{subfloat}%| \\
+% | \qquad| \\
+% | \begin{subfloat}%| \\
+% | \begin{minipage}{2.1in}| \\
+% | \begin{verbatim}| \\
+% | This text (also)should be| \\
+% |verbatim. And not| \\
+% | messed with in any way !| \\
+% | \end{verbatim}| \\
+% | \end{minipage}%| \\
+% | \caption{Second subcaption.}%| \\
+% | \label{fig:verbtwo}| \\
+% | \end{subfloat}| \\
+% | \caption{Subfigures~\subref{fig:verbone} and \subref{fig:verbtwo}| \\
+% | show examples of using verbatim text in a subfigure.}| \\
+% | \label{fig:verbatim}| \\
+% |\end{figure}|
+% \end{quote}
+%
+%
+% \StopEventually{^
+% \section{Acknowledgements}
+%
+% This package was originally written to automatically line up some
+% figure boxes and place labels under them for a paper that I was
+% writing. I thought it useful and uploaded it to the internet
+% community and later to CTAN. Many people have asked questions or
+% given comments which collectively have changed and improved the
+% usefulness of this package.
+%
+% A few people have contributed more than most and I want to thank
+% them publicly, but in no particular order:
+%
+% \begin{itemize}\itemsep=-2pt^finalhack
+% \item{\bf Harald Axel Sommerfeldt} for the work that he did to adjust
+% his \Lpack{caption} and \Lpack{caption2} packages as necessary to
+% support the \Lpack{hhsubfigure} package when they are loaded together.
+% \item {\bf Peter Wilson} for the work that he did to adjust his
+% \Lpack{ccaption} package (and other packages) as necessary to support
+% the \Lpack{hhsubfigure} package when they are loaded together.
+% \item {\bf William `bil' L. Kleb} for his extensive list of errors and
+% suggestions to this documentation.
+% \item{\bf Axel Reichert} for his request for a `hang' caption style
+% since the subcaptions tend to have a short width. And, for his
+% request for some way of referencing the individual subfigures in
+% the main caption without the figure number.
+% \item{\bf Harald Harders} for his suggestion of the \cmd{\subref}
+% command and modifying \cmd{\label} within the \Lpack{hhsubfigure}
+% package to save local references to the subfigures that are often
+% needed.
+% \item{\bf Heiko Oberdiek} and {\bf James A. Bednar} for their help
+% with coexisting with the \Lpack{hyperref} and \Lpack{html} packages.
+% Also, {\bf Ingele Roelens} for pointing out some further compatibility
+% problems when using the \Lpack{hyperref} package with PDF\LaTeX.
+% \item{\bf Frederic Darboux} for searching out and finding several
+% incompatibilities with other packages.
+%
+% \end{itemize}
+%
+% \newpage^finalhack
+%
+% \begin{thebibliography}{6}^\itemsep=-2pt^finalhack
+% \itemsep=0.8pt
+% \bibitem{Somm95a}^
+% Harald Axel Sommerfeldt,
+% \emph{The \Lpack{caption} Package},
+% Version 1.4b, 1995/04/05.
+% (Available from CTAN as file \texttt{caption.dtx}.)
+% \bibitem{Somm95b}^
+% Harald Axel Sommerfeldt,
+% \emph{The \Lpack{caption} Package},
+% Version 2.0(beta), 1995/10/09.
+% (Available from CTAN as file \texttt{caption2.dtx}.)
+% \bibitem{Wils01}^
+% Peter Wilson,
+% \emph{The \Lpack{ccaption} Package},
+% Version 1.0a, 2001/08/15.
+% (Available from CTAN as file \texttt{ccaption.dtx}.)
+% \bibitem{Wils01B}^
+% Peter Wilson,
+% \emph{The \Lpack{tocloft} Package},
+% Version 2.2, 2001/14/17.
+% (Available from CTAN as file \texttt{ccaption.dtx}.)
+% \bibitem{Raht02}^
+% Sebastian Rahtz,
+% \emph{Hypertext marks in \LaTeX},
+% 2002/04/05/.
+% (Available from CTAN as file \texttt{hyperref.dtx}.)
+% \bibitem{Coch02}^
+% Steven Douglas Cochran,
+% \emph{The \Lpack{captcont} Package},
+% 2002/02/14/.
+% (Available from CTAN as file \texttt{captcont.dtx}.)
+% \bibitem{Reck97}^
+% Keith Reckdahl,
+% \emph{Using Imported Graphics in \LaTeXe},
+% 1997/12/15.
+% (Available from CTAN as file \texttt{epslatex.pdf})
+% \bibitem{Lamp94}^
+% Leslie Lamport,
+% \emph{LaTeX User's Guide and Reference Manual}, 2nd edition,
+% Addison-Wesley, Reading, Massachusetts,
+% 1994.
+% \bibitem{Knut86}^
+% Donald Ervin Knuth,
+% \emph{The \TeX book},
+% Addison-Wesley, Reading, Massachusetts,
+% 1986.
+% \bibitem{Lamp01}^
+% Leslie Lamport, Frank Mittelbach, and Johannes Braams,
+% \emph{Standard Document Classes for \LaTeX\ version 2e}
+% Version 1.4e, 2001/04/01.
+% (Available from CTAN as file \texttt{classes.dtx}.)
+% \bibitem{Ling01}^
+% Anselm Lingnau,
+% \emph{An Improved Environment for Floats.}
+% Version 1.3d, 2001/11/08.
+% (Available from CTAN as file \texttt{float.dtx}.)
+% \end{thebibliography}}
+%
+% \section{The Code}
+% \iffalse
+%<*package>
+% \fi
+% \subsection{Identification}
+%
+% \changes{v2.1}{23 Jan 2002}{Updated the release date.}
+%
+% \changes{v2.1}{11 Oct 1996}{Removed compatibility with \LaTeX2.09.}
+%
+% Announce the \Lpack{hhsubfigure} package.
+%
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesPackage{hhsubfigure}[2003/09/14 v2.1.4a (hh)subfigure package]
+% \end{macrocode}
+%
+% \subsection{Check for the \Lpack{hyperref} Package}
+%
+% \changes{v2.1.4}{02 Jul 2002}{Added the \cmd{\theHsubfigure} and
+% \cmd{\theHsubtable} commands to avoid duplicate names in a PDF
+% file when using the \Lpack{hyperref} Package.}
+%
+% \changes{v2.1.3}{17 Apr 2002}{Changed \cmd{\newcommand} to
+% \cmd{\providecommand} to allow other packages to set the
+% \cmd{\toclevel@subfigure} and \cmd{\toclevel@subtable}.}
+%
+% \changes{v2.1.2}{26 Mar 2002}{Changed to simplify the interaction
+% with the hyperref package and avoid loading nameref.}
+%
+% \changes{v2.1.1}{15 Mar 2002}{Added coordination with the hyperref
+% package.}
+%
+% \begin{macro}{\toclevel@subfigure}
+% \begin{macro}{\toclevel@subtable}
+%
+% After every package is loaded, check to see if the \Lpack{hyperref}
+% package was among them, if so, then make sure that the |\ifhyperrefloaded|
+% switch is set so that the |\subfloat@label| command will write the correct
+% form of the |\newlabel| to the \Lfile{aux} file. Also define the
+% ``TOC level'' of the subfigure and subtable. We fix these at one since
+% the default figure and table levels are zero. Finally, we add definitions
+% for |\theHsubfigure| and |\theHsubtable| to avoid duplicate names in
+% the PDF file when using the \Lpack{hyperref} Package.
+%
+% \begin{macrocode}
+\newif\ifhyperrefloaded
+\AtBeginDocument{%
+ \@ifpackageloaded{hyperref}{%
+ \hyperrefloadedtrue
+ \providecommand\theHsubfigure{\thefigure.\arabic{subfigure}}%
+ \providecommand\theHsubtable{\thetable.\arabic{subtable}}%
+ \providecommand{\toclevel@subfigure}{1}%
+ \providecommand{\toclevel@subtable}{1}}{}}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Initialization and Shared Constants}
+% \begin{macro}{\ifsubcaphang}
+% \begin{macro}{\ifsubcapcenter}
+% \begin{macro}{\ifsubcapcenterlast}
+% \begin{macro}{\ifsubcapnooneline}
+% \begin{macro}{\ifsubcapraggedright}
+%
+% \changes{v2.1}{23 Jan 2002}{Added.}
+%
+% These five flags control how the style in which the subfloat label and
+% caption are printed. The \Lif{subcaphang} flag is first checked and
+% if true, causes the subcaption label to be typeset separately and
+% placed to the upper left of the space available for the subcaption.
+% The \Lif{subcapcenter} flag centers each line of the subcaption. The
+% \Lif{subcapcenterlast} centers the last line of the subcaption (this
+% is a {\sc nop} if the \Lif{subcapcenter} flag is true. If the
+% \Lif{subcapnooneline} is false, then the label plus the text of the
+% subcaption are centered. If it is true, than the other flags may
+% cause something different to happen. The purpose of this flag,
+% generally, is to cause a single line to be left justified when there
+% is a very short caption. The last flag is the \Lif{subcapraggedright}
+% which typsets its text without lining up the right side. This is
+% useful for the subcaptions since they are usually short and prone to
+% generating hyphenated words unless allowed to be ragged.
+%
+% \begin{macrocode}
+\newif\ifsubcaphang
+\newif\ifsubcapcenter
+\newif\ifsubcapcenterlast
+\newif\ifsubcapnooneline
+\newif\ifsubcapraggedright
+\newif\ifsubcapRaggedRight
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \noindent
+% Table~\ref{tab:defaults} gives the initial (default) values of the
+% internals that are used to control the placement and printing of the
+% subfloats.
+%
+% \changes{v2.1.4}{30 Apr 2002}{Changed the label and caption defaults
+% from \cmd{\rmfamily}\cmd{\mdseries}\cmd{\upshape} to
+% \cmd{\familydefault}\cmd{\seriesdefault} \cmd{\shapedefault}.}
+% \DeleteShortVerb{\|}
+% \MakeShortVerb{\/}
+% \begin{table}^
+% \def\pz{\phantom{0}}^
+% \def\M#1{\vspace*{#1}}
+% \caption[Default values of the Subfigure constants.]%
+% {Default values of the Subfigure constants. These
+% values are set during the options processing (see
+% section~\ref{sec:startup}).}^
+% \label{tab:defaults}^
+% \vspace{5pt}^
+% \begin{minipage}{4.8in}^
+% \setlength\tabcolsep{5pt}^
+% \rr
+% \begin{tabular}{|l|c|p{1.3in}|p{1.963in}|}\hline
+% \multicolumn{1}{|c|}{\raisebox{-1.5ex}{\bf Command}}
+% & \multicolumn{1}{c|}{\bf \Lopt{loose}}
+% & \multicolumn{1}{c|}{\bf \Lopt{tight}}
+% &
+% \multicolumn{1}{c|}{\raisebox{-1.5ex}{\bf Description}}
+% \\
+% & \multicolumn{1}{c|}{\bf Option}
+% & \multicolumn{1}{c|}{\bf Option}
+% & \\ \hline
+% \raisebox{-2.1ex}{\cmd{\subfigtopskip}}
+% & \raisebox{-2.1ex}{10 pt}
+% & \M{0.6ex}\hfil 5 pt
+% & \rr Length from the top of the subfloat
+% box to the beginning of the figure.
+% \\ \hline
+% \raisebox{-1.5ex}{\cmd{\subfigcapskip}}
+% & \raisebox{-1.5ex}{10 pt}
+% & \M{0.0ex}\hfil 0 pt
+% & \rr Length between the baseline of the
+% subcaption and the figure.
+% \\ \hline
+% \raisebox{-2.1ex}{\cmd{\subfigcaptopadj}}
+% & \raisebox{-2.1ex}{\pz0 pt}
+% & \M{0.4ex}\hfil 3 pt
+% & \rr Length added to /\subfigcapskip/
+% when the caption is above the figure.
+% \\ \hline
+% \raisebox{-2.1ex}{\cmd{\subfigbottomskip}}
+% & \raisebox{-2.1ex}{10 pt}
+% & \M{0.7ex}\hfil 5 pt
+% & \rr Length from the bottom of the
+% subcaption to the bottom of the
+% subfloat.
+% \\ \hline
+% \raisebox{-3.5ex}{\cmd{\subfigcapmargin}}
+% & \raisebox{-3.5ex}{10 pt}
+% & \M{2.0ex}\hfil 0 pt
+% & \rr Indentation of the subcaption from
+% the sides of the subfloat box. (This
+% should always be positive or zero.)
+% \\ \hline
+% \raisebox{-1.5ex}{\cmd{\subfiglabelskip}}
+% & \raisebox{-1.5ex}{0.33 em}
+% & \raggedleft 0.33 em plus 0.07 em minus 0.03 em
+% & \rr Space between the label and the
+% text of the subcaption.
+% \\ \hline
+% \raisebox{-1.5ex}{\cmd{\subcapsize}}
+% & \multicolumn{2}{c|}{\raisebox{-1.5ex}{footnotesize}}
+% & \rr Size for the text portion of the
+% subcaption font.
+% \\ \hline
+% \raisebox{-1.5ex}{\cmd{\subcaplabelfont}}
+% & \multicolumn{2}{c|}{\raisebox{-1.5ex}{(Default family, series and shape)}}
+% & \rr Font for the label portion of the
+% subcaption.
+% \\ \hline
+% \raisebox{-1.5ex}{\cmd{\subcapfont}}
+% & \multicolumn{2}{c|}{\raisebox{-1.5ex}{(Default family, series and shape)}}
+% & \rr Font for the text portion of the
+% subcaption.
+% \\ \hline
+% \end{tabular}
+% \end{minipage}
+% \end{table}
+% \DeleteShortVerb{\/}
+% \MakeShortVerb{\|}
+%
+% \begin{macro}{\subfigtopskip}
+% \begin{macro}{\subfigcapskip}
+% \begin{macro}{\subfigcaptopadj}
+% \begin{macro}{\subfigbottomskip}
+%
+% \changes{v2.1}{22 Jan 1997}{Reduced the space to the values separating
+% subfloat caption and figure box and its top and bottom. Added
+% \cmd{\subfigcaptopadj} in case it is needed in styles that with figure
+% subcaptions on the bottom and table subcaptions on the top.}
+%
+% See figure~\ref{fig:layout} for details of where these take effect.
+% Generally the |\subfigtopskip| appears between the figure or table and
+% the edge of the box. |\subfigbottomskip| appears between the
+% subcaption and the edge of the box. If the subcaption follows the
+% figure or table, then |\subfigcapskip| is placed before it along with
+% ({\it i.e.\/}, in addition to) a |\baselineskip|. If the subcaption
+% comes before the figure or table then |\subfigcapskip| is placed
+% after it along with |\subfigcaptopadj|. Although several of the above
+% are {\tt skip}'s they are typset at their base size and will not
+% shrink or expand.
+%
+% \begin{macrocode}
+\newskip\subfigtopskip \subfigtopskip = 5\p@
+\newskip\subfigcapskip \subfigcapskip = 0\p@
+\newdimen\subfigcaptopadj \subfigcaptopadj = 3\p@
+\newskip\subfigbottomskip \subfigbottomskip = 5\p@
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\subfigcapmargin}
+%
+% \changes{v2.1}{22 Jan 1997}{Reduced \cmd{\subfigcapmargin} to zero.}
+% \begin{macro}{\subfiglabelskip}
+%
+% \changes{v2.1}{23 Jan 2002}{Added to replace the space between the
+% subcaption label and text.}
+%
+% These two values are used to typeset the subcaption The width of the
+% subcaption is the same as that of its associated figure or table
+% width. |\subfigcapmargin| is placed on either side of the caption and
+% |\subfiglabelskip| is placed between the subcaption label and the
+% subcaption text. Depending on the manner of typesetting the
+% subcaption, this may shrink or expand. By default, the
+% |\subfigcapmargin| is zero to allow as much room of the subcaption as
+% possible.
+%
+% \begin{macrocode}
+\newdimen\subfigcapmargin \subfigcapmargin = \z@
+\newskip\subfiglabelskip \subfiglabelskip = 0.33em plus 0.07em minus 0.03em
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\subcapsize}
+%
+% |\subcapsize| is used to set the size of both the subcaption label and
+% the subcaption text. The options allow it to be set to any of the
+% following: |\scriptsize|, |\footnotesize|, |\small|, |\normalsize|,
+% |\large|, |\Large|. It may also be set to |\tiny|, |\LARGE|, |\huge|
+% or |\HUGE| by hand if need be for special instances.
+%
+% \begin{macrocode}
+\newcommand*{\subcapsize}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subcaplabelfont}
+% \begin{macro}{\subcaplabelfont@f}
+%
+% \changes{v2.1.4}{30 Apr 2002}{Changed the \cmd{\subcaplabelfont@f}
+% default value to \cmd{\familydefault}.}
+%
+% \begin{macro}{\subcaplabelfont@c}
+%
+% \changes{v2.1.4}{30 Apr 2002}{Changed the \cmd{\subcaplabelfont@c}
+% default value to \cmd{\seriesdefault}.}
+%
+% \begin{macro}{\subcaplabelfont@s}
+%
+% \changes{v2.1.4}{30 Apr 2002}{Changed the \cmd{\subcaplabelfont@s}
+% default value to \cmd{\shapedefault}.}
+%
+% The |\subcaplabelfont| is composed of three parts, the font family,
+% such as roman, san serif or typewriter; the font series, such as
+% medium or bold; and the font shape, such as italic, slanted, small
+% caps or upright. These are combined along with the |\subcapsize| to
+% select the font for the subcaption label.
+%
+% \begin{macrocode}
+\newcommand*{\subcaplabelfont}{%
+ \subcaplabelfont@f\subcaplabelfont@c\subcaplabelfont@s}
+\newcommand*{\subcaplabelfont@f}{\fontfamily{\familydefault}\selectfont}
+\newcommand*{\subcaplabelfont@c}{\fontseries{\seriesdefault}\selectfont}
+\newcommand*{\subcaplabelfont@s}{\fontshape{\shapedefault}\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\subcapfont}
+%
+% \changes{v2.1}{11 Dec 1996}{Added.}
+%
+% \begin{macro}{\subcapfont@f}
+%
+% \changes{v2.1.4}{30 Apr 2002}{Changed the \cmd{\subcapfont@f} default
+% value to \cmd{\familydefault}.}
+%
+% \begin{macro}{\subcapfont@c}
+%
+% \changes{v2.1.4}{30 Apr 2002}{Changed the \cmd{\subcapfont@s} default
+% value to \cmd{\seriesdefault}.}
+%
+% \begin{macro}{\subcapfont@s}
+%
+% \changes{v2.1.4}{30 Apr 2002}{Changed the \cmd{\subcapfont@s} default
+% value to \cmd{\shapedefault}.}
+%
+% The |\subcapfont| is the same as the |\subcaplabelfont| except that it
+% is applied to the subcaption text rather than the label.
+%
+% \begin{macrocode}
+\newcommand*{\subcapfont}{%
+ \subcapfont@f\subcapfont@c\subcapfont@s}
+\newcommand*{\subcapfont@f}{\fontfamily{\familydefault}\selectfont}
+\newcommand*{\subcapfont@c}{\fontseries{\seriesdefault}\selectfont}
+\newcommand*{\subcapfont@s}{\fontshape{\shapedefault}\selectfont}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifsf@tight}
+%
+% Create an `if' to control whether the check for the top-of-page is
+% performed in the |\@subfloat| command. This is necessary to preserve
+% the look-and-feel of the older versions of this package. The
+% \Lopt{loose} option turns this flag off (no check) and the
+% \Lopt{tight} option turns it on (do the check).
+%
+% \begin{macrocode}
+\newif\ifsf@tight \sf@tighttrue
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Subfigure Constants}
+% \label{sec:fig_constants}
+% \begin{macro}{\c@subfigure}
+% Subfigure counter.
+%
+% \begin{macrocode}
+\newcounter{subfigure}[figure]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\iffiguretopcap}
+%
+% \changes{v2.1}{23 Jan 2002}{Added check for existing
+% \cmd{\figuretopcaptrue} so that this package will work with the
+% captcont package.}
+%
+% \changes{v2.1}{22 Jan 1997}{Added to control label numbering for
+% captions at the top vs.\ at the bottom.}
+%
+% \begin{macro}{\ifsubfiguretopcap}
+%
+% \changes{v2.1}{15 Nov 1997}{Added to control placement of the
+% subcaption at the top vs.\ at the bottom.}
+%
+% These control how the \Lpack{hhsubfigure} \Lcount{caption} numbering is
+% obtained and where the figure caption and subcaption should appear
+% relative to the body of the \Lenv{subfigure}. The boolean
+% |\iffiguretopcap| indicates that the \Lcount{caption} counter is
+% current and there is no need to increment it. The boolean
+% |\ifsubfiguretopcap| indicates that the subcaption will be printed
+% above the body portion of the \Lpack{subfigure}.
+%
+% \begin{macrocode}
+\@ifundefined{figuretopcaptrue}{\newif\iffiguretopcap}{}
+\newif\ifsubfiguretopcap
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\p@subfigure}
+% \begin{macro}{\thesubfigure}
+% \begin{macro}{\@thesubfigure}
+% \begin{macro}{\@@thesubfigure}
+%
+% \changes{v2.1}{23 Jan 2002}{Added.}
+%
+% The |\thesubfigure| command defines the label for text references
+% (prefixed by |\p@subfigure|). This is the value saved by the |\label|
+% and retrieved by the |\ref| commands. In the case of a
+% conflict between this package and a prior one over the definition
+% of |\thesubfigure|, this package will win. This is insured by first
+% specifying the |\providecommand| for the |\thesubfigure| and then
+% |\renewcommand|. This is necessary because some packages incorrectly
+% insert this command.
+%
+% The |\@thesubfigure| value defines the the caption label complete
+% offset from the beginning of the caption text. It is used in the
+% subfigure caption and normally takes the label portion as defined
+% by |\thesubfigure|.
+%
+% Finally, the value defined by |\@@thesubfigure| is also saved by the
+% |\label| command and may be retrieved with the |\subref| command. This is
+% often useful in the subcaption or caption text when referring to the
+% individual subfigures. This value is also the one that is used in
+% the List-of-Figures.
+%
+% These multiple ``views'' of the \Lcount{subfigure} counter allow a
+% style to define the way the label looks in the figure, for example
+% ``{\bf (a)}\textvisiblespace''. Then references to it with |\ref|
+% have the form ``2.1a'', and with |\subref| ``(a)'' (This latter form
+% is also used to label references in the List-of-Figures section).
+%
+% \begin{macrocode}
+\let\p@subfigure=\thefigure
+\providecommand*{\thesubfigure}{(\alph{subfigure})}
+\renewcommand*{\thesubfigure}{(\alph{subfigure})}
+\newcommand*{\@thesubfigure}{\thesubfigure\hskip\subfiglabelskip}
+\newcommand*{\@@thesubfigure}{\thesubfigure}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ext@subfigure}
+% \begin{macro}{\l@subfigure}
+%
+% \changes{v2.1}{11 Oct 1996}{Changed the indentation of the
+% List-of-Figures line from 2.3em to 2.5em.}
+%
+% \begin{macro}{\c@lofdepth}
+%
+% These values define how and if the subfigure caption will appear in a
+% List-of-Figures file. |\ext@subfigure| defines the default subfigure
+% file extension (which is the same as |\ext@figure| --- the
+% List-of-Figures file, \Lcount{lof}). |\l@subfigure|
+% shows how to print an \Lfile{lof} subfigure line and defines that line
+% at level two. |\c@lofdepth| is an extension of the Table-of-Contents
+% depth value and controls the depth to which captions in the file are
+% printed to the actual page. By default, the subcaptions are not.
+%
+% \begin{macrocode}
+\let\ext@subfigure=\ext@figure
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*{\l@subfigure}{%
+ \@dottedxxxline{\ext@subfigure}{2}{3.8em}{2.5em}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcounter{lofdepth}
+\setcounter{lofdepth}{1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Subtable Constants}
+% This section is symmetric to section~\ref{sec:fig_constants}.
+% \begin{macro}{\c@subtable}
+% Subtable counter.
+%
+% \begin{macrocode}
+\newcounter{subtable}[table]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\iftabletopcap}
+%
+% \changes{v2.1}{23 Jan 2002}{Added check for existing
+% \cmd{\tabeltopcaptrue} so that this package will work with the
+% captcont package.}
+%
+% \changes{v2.1}{22 Jan 1997}{Added to control label numbering for
+% captions at the top vs.\ at the bottom.}
+%
+% \begin{macro}{\ifsubtabletopcap}
+% \changes{v2.1}{15 Nov 1997}{Added to control placement of the
+% subcaption at the top vs.\ at the bottom.}
+%
+% These define the form that the subcaption prefix is generated. The
+% boolean |\iftabletopcap| works with the numbering of the subcaption
+% label and uses the current \Lcount{table} counter value if true and
+% the next value if false. The boolean |\ifsubtabletopcap| sets the
+% subcaption before the main body of the subfigure, if true; and, after
+% it, if false.
+%
+% \begin{macrocode}
+\@ifundefined{tabletopcaptrue}{\newif\iftabletopcap}{}
+\newif\ifsubtabletopcap
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\p@subtable}
+% \begin{macro}{\thesubtable}
+% \begin{macro}{\@thesubtable}
+% \begin{macro}{\@@thesubtable}
+%
+% \changes{v2.1}{23 Jan 2002}{Added.}
+%
+% The |\thesubtable| command defines the label for text references
+% (prefixed by |\p@subtable|), while the |\@thesubtable| command defines
+% what appears in the subcaption under or over the subtable. The
+% |\@@thesubtable| command defines an alternative reference to the label
+% for use in the subcaption and caption of the table (see the discussion
+% above for the equivalent figure values). The latter form is also used
+% for the List-of-Tables label. As above, the |\thesubtable| command is
+% twice specified
+%
+% \begin{macrocode}
+\let\p@subtable=\thetable
+\providecommand*{\thesubtable}{(\alph{subtable})}
+\renewcommand*{\thesubtable}{(\alph{subtable})}
+\newcommand*{\@thesubtable}{\thesubtable\hskip\subfiglabelskip}
+\newcommand*{\@@thesubtable}{\thesubtable}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ext@subtable}
+% \begin{macro}{\l@subtable}
+%
+% \changes{v2.1}{11 Oct 1996}{Changed the indentation of the
+% List-of-Tables line from 2.3em to 2.5em.}
+%
+% \begin{macro}{\c@lotdepth}
+%
+% These define how and if the subtable caption will appear in a
+% List-of-Tables file. |\ext@subtable| defines the default subtable
+% file extension (which is the same as |\ext@table| --- the
+% List-of-Tables file, \Lcount{lot}). |\l@subtable| shows how to print
+% an \Lfile{lot} subtable line and defines that line at level two.
+% |\c@lotdepth| is an extension of the table-of-contents depth value and
+% controls the depth to which captions in the file are printed to the
+% actual page. By default, the subcaptions are not printed.
+%
+% \begin{macrocode}
+\let\ext@subtable=\ext@table
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*{\l@subtable}{%
+ \@dottedxxxline{\ext@subtable}{2}{3.8em}{2.5em}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcounter{lotdepth}
+\setcounter{lotdepth}{1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Declaration of Options}
+%
+% The following options allow general compatibility with the
+% \Lpack{caption} and \Lpack{caption2} packages by H.A. Sommerfeldt
+% \cite{Somm95a}. There are six different subcaption layout options
+% supported: \Lopt{normal}, \Lopt{hang} (or \Lopt{isu}), \Lopt{center},
+% \Lopt{centerlast} (or \Lopt{anne}), \Lopt{nooneline} and
+% \Lopt{raggedright}. The \Lopt{hang} subcaption may be combined with
+% the \Lopt{center} or \Lopt{centerlast} options. The \Lopt{nooneline}
+% may be combined with any of the other options (but it's effect is
+% negated or looks bad with either of \Lopt{center} or \Lopt{centerlast}
+% unless the \Lopt{hang} option is also used). \Lopt{raggedright}
+% overrides the \Lopt{center} or \Lopt{centerlast} options.
+%
+% \begin{macrocode}
+\DeclareOption{normal}{%
+ \subcaphangfalse
+ \subcapcenterfalse
+ \subcapcenterlastfalse
+ \subcapnoonelinefalse
+ \subcapraggedrightfalse
+ \subcapRaggedRightfalse}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{hang}{\subcaphangtrue}
+\DeclareOption{center}{\subcapcentertrue}
+\DeclareOption{centerlast}{\subcapcenterlasttrue}
+\DeclareOption{nooneline}{\subcapnoonelinetrue}
+\DeclareOption{raggedright}{\subcapraggedrighttrue}
+\DeclareOption{RaggedRight}{\subcapRaggedRighttrue}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{isu}{\ExecuteOption{hang}}
+\DeclareOption{anne}{\ExecuteOption{centerlast}}
+% \end{macrocode}
+%
+% \newpage^finalhack
+%
+% \noindent
+% There are options for six different font sizes available.
+%
+% \begin{macrocode}
+\DeclareOption{scriptsize}{\renewcommand*{\subcapsize}{\scriptsize}}
+\DeclareOption{footnotesize}{\renewcommand*{\subcapsize}{\footnotesize}}
+\DeclareOption{small}{\renewcommand*{\subcapsize}{\small}}
+\DeclareOption{normalsize}{\renewcommand*{\subcapsize}{\normalsize}}
+\DeclareOption{large}{\renewcommand*{\subcapsize}{\large}}
+\DeclareOption{Large}{\renewcommand*{\subcapsize}{\Large}}
+% \end{macrocode}
+%
+% \noindent
+% There are eighteen options available to set the font attributes of the
+% subcaptions. The first nine affect only the subcaption label
+% The last nine affect only the subcaption text.
+%
+% \changes{v2.1}{22 Jan 1997}{Changed order of font options.}
+%
+% \changes{v2.1}{15 Nov 1997}{Added nine new options to set the format
+% of the caption text separately from the caption label.}
+%
+% \begin{macrocode}
+\DeclareOption{rm}{\renewcommand*{\subcaplabelfont@f}{\rmfamily}}
+\DeclareOption{sf}{\renewcommand*{\subcaplabelfont@f}{\sffamily}}
+\DeclareOption{tt}{\renewcommand*{\subcaplabelfont@f}{\ttfamily}}
+\DeclareOption{md}{\renewcommand*{\subcaplabelfont@c}{\mdseries}}
+\DeclareOption{bf}{\renewcommand*{\subcaplabelfont@c}{\bfseries}}
+\DeclareOption{up}{\renewcommand*{\subcaplabelfont@s}{\upshape}}
+\DeclareOption{it}{\renewcommand*{\subcaplabelfont@s}{\itshape}}
+\DeclareOption{sl}{\renewcommand*{\subcaplabelfont@s}{\slshape}}
+\DeclareOption{sc}{\renewcommand*{\subcaplabelfont@s}{\scshape}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{RM}{\renewcommand*{\subcapfont@f}{\rmfamily}}
+\DeclareOption{SF}{\renewcommand*{\subcapfont@f}{\sffamily}}
+\DeclareOption{TT}{\renewcommand*{\subcapfont@f}{\ttfamily}}
+\DeclareOption{MD}{\renewcommand*{\subcapfont@c}{\mdseries}}
+\DeclareOption{BF}{\renewcommand*{\subcapfont@c}{\bfseries}}
+\DeclareOption{IT}{\renewcommand*{\subcapfont@s}{\itshape}}
+\DeclareOption{SL}{\renewcommand*{\subcapfont@s}{\slshape}}
+\DeclareOption{SC}{\renewcommand*{\subcapfont@s}{\scshape}}
+\DeclareOption{UP}{\renewcommand*{\subcapfont@s}{\upshape}}
+% \end{macrocode}
+%
+% \noindent
+% There are eight options available to control the caption placement
+% and the proper numbering in association with the figure or table
+% caption placement. The first four affect only the caption numbering
+% by informing the internals that the associated figure or table
+% caption appears before or after the subfloat. The second four do
+% this and, in addition, shift the subfloat caption to the bottom or
+% top of the subfloat. The |\subfigure| and |\subtable| commands each
+% have a set of flags since it is often the case that a document style
+% requires that figure captions follow the figure and table captions
+% precede the table.
+%
+% \begin{macrocode}
+\DeclareOption{figbotcap}{\figuretopcapfalse}
+\DeclareOption{figtopcap}{\figuretopcaptrue}
+\DeclareOption{tabbotcap}{\tabletopcapfalse}
+\DeclareOption{tabtopcap}{\tabletopcaptrue}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{FIGBOTCAP}{\ExecuteOptions{figbotcap}\subfiguretopcapfalse}
+\DeclareOption{FIGTOPCAP}{\ExecuteOptions{figtopcap}\subfiguretopcaptrue}
+\DeclareOption{TABBOTCAP}{\ExecuteOptions{tabbotcap}\subtabletopcapfalse}
+\DeclareOption{TABTOPCAP}{\ExecuteOptions{tabtopcap}\subtabletopcaptrue}
+% \end{macrocode}
+%
+% \newpage^finalhack
+%
+% \begin{macro}{\subfigtopskip}
+% \begin{macro}{\subfigcapskip}
+% \begin{macro}{\subfigcaptopadj}
+% \begin{macro}{\subfigbottomskip}
+% \begin{macro}{\subfigcapmargin}
+% \begin{macro}{\subfiglabelskip}
+%
+% \noindent
+% The last two options control the overall ``look-and-feel'' of the
+% subfloat. The \Lopt{loose} option is the default and makes the
+% subfloat look like it always has with lots of extra room around the
+% subfigure and subcaption.
+%
+% \begin{macrocode}
+\DeclareOption{loose}{%
+ \subfigtopskip = 10\p@
+ \subfigcapskip = 10\p@
+ \subfigcaptopadj = 0\p@
+ \subfigbottomskip = 10\p@
+ \subfigcapmargin = 10\p@
+ \subfiglabelskip = 0.33em
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@thesubfigure}
+% \begin{macro}{\@thesubtable}
+% Next, it replaces the glue at the end of the subcaption label with a
+% |\space| like the older version of the \Lpack{subfigure} package.
+%
+% \begin{macrocode}
+ \renewcommand*{\@thesubfigure}{\thesubfigure\space}
+ \renewcommand*{\@thesubtable}{\thesubtable\space}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifsf@tight}
+%
+% Finally, set the \Lif{sf@tight} flag to make the |\@subfloat| command
+% skip its check for the top of a page or minipage and to always add
+% its topmost vertical spacing. (For more details about the
+% |\@subfloat| command, see section~\ref{sec:mainmacros}.)
+%
+% \begin{macrocode}
+ \sf@tightfalse}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\subfigtopskip}
+% \begin{macro}{\subfigcapskip}
+% \begin{macro}{\subfigcaptopadj}
+% \begin{macro}{\subfigbottomskip}
+% \begin{macro}{\subfigcapmargin}
+% \begin{macro}{\subfiglabelskip}
+%
+% The \Lopt{tight} option is the is the preferred version and has less white
+% space around the subfloat. It also will omit the space above the subfloat
+% at the top of the page or minipage.
+%
+% \begin{macrocode}
+\DeclareOption{tight}{%
+ \subfigtopskip = 5\p@
+ \subfigcapskip = 0\p@
+ \subfigcaptopadj = 3\p@
+ \subfigbottomskip = 5\p@
+ \subfigcapmargin = \z@
+ \subfiglabelskip = 0.33em plus 0.07em minus 0.03em
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@thesubfigure}
+% \begin{macro}{\@thesubtable}
+% Next, it keeps the glue at the end of the subcaption label to allow
+% better subcaption fitting.
+%
+% \begin{macrocode}
+ \renewcommand*{\@thesubfigure}{\thesubfigure\hskip\subfiglabelskip}
+ \renewcommand*{\@thesubtable}{\thesubtable\hskip\subfiglabelskip}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifsf@tight}
+%
+% Finally, set the \Lif{sf@tight} flag to make the |\@subfloat| command
+% check for the top of a page or minipage and to skip adding any vertical
+% space there. (For more details about the |\@subfloat| command, see
+% section~\ref{sec:mainmacros}.)
+%
+% \begin{macrocode}
+ \sf@tighttrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Execution of Options}
+% \label{sec:startup}
+%
+% \changes{v2.1}{11 Oct 1996}{Added a check for a local configuration file.}
+%
+% \changes{v2.1}{15 Nov 1997}{Added the \Lopt{FIGBOTCAP} and
+% \Lopt{TABBOTCAP} options.}
+%
+% \changes{v2.1.4}{30 Apr 2002}{Changed the subcaption label defaults
+% to be hard coded above and no longer in the options list.}
+%
+% The \Lopt{normal} type of subcaption is preselected, the standard
+% subcaption size is set to \Lopt{footnotesize}, and the font for both
+% the subcaption label and text is set above to the global defaults for
+% family, series, and shape. Also, the subcaptions for the subfigure
+% and subtable are placed after the figure box and it is assumed that
+% the figure or table caption follows all of the associated subfloats.
+% Finally, the \Lopt{loose} form is selected in order to cause minimal
+% change to existing papers using the \Lpack{subfigure} package.
+%
+% The preferred form would be to have the \Lopt{TABTOPCAP} and
+% \Lopt{tight} be the defaults, but this would adversely affect the
+% existing papers that have used the official releases of this package.
+%
+% \begin{macrocode}
+\ExecuteOptions{normal,footnotesize,FIGBOTCAP,TABBOTCAP,loose}
+\InputIfFileExists{subfigure.cfg}{%
+ \typeout{****************************************^^J%
+ * Local config file subfigure.cfg used *^^J%
+ ****************************************}}{}
+\ProcessOptions
+% \end{macrocode}
+%
+% \subsection{The Subfigure and Subtable Commands}
+% \label{sec:mainmacros}
+%
+% \changes{v2.1}{23 Jan 2002}{Added setting \cmd{\label} to
+% \cmd{\subfloat@label}.}
+%
+% \changes{v2.1}{11 Oct 1996}{Added command lines. The subfigure
+% command was updated to allow a second optional argument. This
+% causes changes all the way down to the \cmd{\@subcaption} command.}
+%
+% \begin{macro}{\subfigure}
+% \label{sec:subfigure}
+%
+% \changes{v2.1.2}{26 Mar 2002}{Added check to see if \cmd{\subfig@oldlabel}
+% is defined and if not to save the current definition.}
+%
+% \changes{v2.1}{22 Jan 1997}{Changed the counter advance to occur
+% only if the related boolean is false. This allows \cmd{\caption}'s
+% to occur before the subfloats rather than after.}
+%
+% \changes{v2.1}{07 Mar 1997}{Moved \cmd{\leavevmode} to \cmd{\@subfloat}.}
+%
+% The |\subfigure| command acts as cover function for the |\@subfloat|
+% command. It locally changes the |\label| command to our special version
+% that supports the |\subref|'s (see section~\ref{sec:patches}). It
+% insures that the proper counter is used and has the correct value.
+% Since the caption is usually generated later, we must locally
+% anticipate the future value of its counter by adding one to it within
+% a local group. Upon leaving |\subfigure|, the old value is restored.
+%
+% \begin{macrocode}
+\newcommand*{\subfigure}{%
+ \bgroup
+ \let\subfig@oldlabel=\label
+ \let\label=\subfloat@label
+ \@nameuse{if\@captype topcap}\else
+ \advance\@nameuse{c@\@captype}\@ne
+ \fi
+ \refstepcounter{sub\@captype}%
+ \@ifnextchar [%
+ {\@subfigure}%
+ {\@subfigure[\@empty]}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subtable}
+%
+% The |\subtable| command is identical to |\subfigure|. The of names
+% at the user level is purely cosmetic (and historical).
+%
+% \begin{macrocode}
+\let\subtable=\subfigure
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \enlargethispage{-24pt}^finalhack
+%
+% \begin{macro}{\@subfigure}
+% \changes{v2.1.4}{07 Jun 2002}{Added curly brackets around the
+% argument when passing it on as an optional argument.}
+%
+% Here we are still setting up for the main |\@subfloat| command. We
+% check for a second optional argument. If one is not found, than any
+% optional argument from the last |\subfigure| or |\subtable| becomes
+% the main caption and we give |\@empty| as the default list-entry
+% caption. If we see another optional argument, then we make that one
+% the main caption and use any prior optional argument as the list-entry
+% caption. See Table~\ref{tab:calling} for how this looks to the user.
+%
+% \begin{macrocode}
+\def\@subfigure[#1]{%
+ \@ifnextchar [%
+ {\@subfloat{sub\@captype}[{#1}]}%
+ {\@subfloat{sub\@captype}[\@empty{#1}][{#1}]}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@subfloat}
+%
+% \changes{v2.1.4}{24 Apr 2002}{Changed \cmd{\@subfloat} to globally
+% reset the figure/table counter if it was incremented so that any
+% subfloat body that resets the counters globally will not cause
+% errors ({\it e.g.\/}, the \Lpack{tabularx} package}
+%
+% \changes{v2.1}{23 Jan 2002}{Now using \cmd{\@nameuse} to build names.
+% Made the \cmd{\def} a \cmd{\long}\cmd{\def}.}
+%
+% \changes{v2.1}{22 Apr 1998}{Added some percents to keep out whitespace}
+%
+% \changes{v2.1}{07 Mar 1997}{Changed the addition of the
+% \cmd{\subfigtopskip} to be added only if not at the top of the
+% float and only in vertical mode. Moved \cmd{\leavevmode} from
+% \cmd{\subfigure} to after the topskip addition.}
+%
+% \changes{v2.1}{17 Jan 1997}{Added swap of the top and bottom space
+% when in TOPCAP mode.}
+%
+% This is the common code for setting up the subfloat box and drawing
+% the subcaption under it. The two skips are used only here to keep
+% track of what vertical space is to be placed before and after the
+% figure.
+%
+% The first argument is the type of object being generated: that is,
+% a |subfigure| or a |subtable|. The second and third are the
+% \texttt{subcaption} and \texttt{subfigure} arguments from the
+% calling |\subfigure| or |\subtable| command.
+%
+% \begin{macrocode}
+\newskip\subfig@top
+\newskip\subfig@bottom
+% \end{macrocode}
+%
+% If \Lif{ifsf@tight} is true, then the |\@subfloat| command checks to
+% see if it is at the top of a page or a minipage and will suppress the
+% top vertical space in that case; otherwise, it always adds the space.
+%
+% \begin{macrocode}
+\long\def\@subfloat#1[#2][#3]#4{%
+ \@tempcnta=1
+ \ifsf@tight
+ \if@minipage
+ \@tempcnta=\z@
+ \else\ifdim \lastskip=\z@ \else
+ \@tempcnta=2
+ \fi\fi
+ \fi
+% \end{macrocode}
+%
+% Based on the |\iffiguretopcap| or |\iftabletopcap| flags we
+% select which vertical space is to be placed above and below the figure
+% or table and save it in |\subfig@top| and |\subfig@bottom|.
+%
+% \begin{macrocode}
+ \@nameuse{if\@captype topcap}%
+ \subfig@top=\subfigbottomskip
+ \subfig@bottom=\subfigtopskip
+ \else
+ \subfig@top=\subfigtopskip
+ \subfig@bottom=\subfigbottomskip
+ \fi
+% \end{macrocode}
+%
+% The |\leavevmode| is here to inhibit any \LaTeX\ errors that the
+% surreounding environment might generate if we stay in vertical mode.
+% Then it determines the width of the figure or table by placing it in a
+% box and testing the box.
+%
+% \begin{macrocode}
+ \leavevmode
+ \setbox\@tempboxa \hbox{#4}%
+ \@tempdima=\wd\@tempboxa
+% \end{macrocode}
+%
+% Finally we put the figure together in a vertical box. At the very top
+% goes any vertical space, but only if we are not at the top of the page
+% or minipage as determined above.
+%
+% \begin{macrocode}
+ \vtop\bgroup
+ \vbox\bgroup
+ \ifcase\@tempcnta
+ \@minipagefalse
+ \or
+ \vspace{\subfig@top}%
+ \or
+ \ifdim \lastskip=\z@ \else
+ \@tempskipb\subfig@top\relax\@xaddvskip
+ \fi
+ \fi
+% \end{macrocode}
+%
+% Next, based on the `topcap' flags, we check if the subcaption or the
+% figure goes next. If it is the subcaption, then we add some extra
+% |\subfigcaptopadj| space between the subcaption and the figure and
+% table in addtion to the regular |\subfigcapskip| space. This finishes
+% off the top box and establishes our baseline.
+%
+% After that we add in either the figure or subcaption (whichever we
+% have not typeset yet and follow it with the bottom vertical space.
+% (see figure~\ref{fig:layout-C} for a diagram of this layout).
+%
+% Finally, we globally ({\bf !}) reset the \Lcount{figure} or
+% \Lcount{table} counter, if we incremented it at the beginning of the
+% |\subfigure| or |\subtable| command so that any functions used inside
+% the command body which globally sets the counters ({\it e.g.\/}, the
+% \Lpack{tabularx} package) will not cause problems.
+%
+% \begin{macrocode}
+ \@nameuse{if#1topcap}%
+ \ifx \@empty#3\relax \else
+ \@subcaption{#1}{#2}{#3}%
+ \vskip\subfigcapskip
+ \vskip\subfigcaptopadj
+ \fi\egroup
+ \box\@tempboxa
+ \else
+ \box\@tempboxa\egroup
+ \ifx \@empty#3\relax \else
+ \vskip\subfigcapskip
+ \@subcaption{#1}{#2}{#3}%
+ \fi
+ \fi
+ \vspace{\subfig@bottom}%
+ \egroup
+ \@nameuse{if\@captype topcap}\else
+ \global\advance\@nameuse{c@\@captype}\m@ne
+ \fi
+ \egroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@subfigcaptionlist}
+%
+% \begin{macro}{\@subcaption}
+%
+% \changes{v2.1}{23 Jan 2002}{Now using \cmd{\@nameuse} to build names.
+% Also use \@@thesubfigure and \@@thesubtable stored label.}
+%
+% \begin{macro}{\listsubcaptions}
+%
+% \changes{v2.1.4}{09 Jul 2002}{Changed \cmd{\@tempa} to \cmd{\sf@temp}
+% at the request of Donald Arseneau to remove the potential of problems
+% with others using the same variable.}
+% \changes{v2.1}{22 Oct 1996}{Added to allow the user to cause a dump
+% of the currently queued subcaptions to the ``List-of'' page. This
+% is necessary when the \cmd{caption} is placed before the subfloats
+% as is often the case for subtables.}
+%
+% \changes{v2.1}{11 Oct 1996}{Fixed \cmd{\protect} related bug caused by
+% a change in \LaTeX3.}
+% \begin{macro}{\@listsubcaptions}
+%
+% \changes{v2.1}{23 Jan 2002}{Added checks for undefined \cmd{\@captype}
+% and \cmd{ext@<\@captype>} just in case the \cmd{caption} is called
+% outside the \Lenv{float} or the current float type does not support
+% subfigures.}
+%
+% \changes{v2.1}{11 Oct 1996}{Added to print the queued subcaptions.
+% This is also used by the \Lpack{captcont} package to correctly print
+% the subcaptions.}
+%
+% \changes{v2.1}{17 Jan 1997}{Changed the source of the label for the
+% ``List-of'' pages to use the \cmd{\thesubfigure} or \cmd{\thesubtable}
+% value rather than the \cmd{\@currentlabel}. This usually will be
+% cleaner since the figure number won't be repeated.}
+%
+% \changes{v2.1}{05 Jan 1998}{Changed \cmd{\edef} to \cmd{\def} and added
+% back the \cmd{\protect} due to changes in the use of the
+% \cmd{\@subcaption}.}
+%
+% The following series of commands control exactly how the subcaption is
+% typeset. The |\@subcaption| command adds the subcaption to the current
+% list of subcaptions to be added to the ``List-of'' page as soon as
+% the major caption is declared (see |\@caption| below).
+% ({\scshape Note}: only one list is kept because that seems right;
+% if there is a mix of tables and figures, they will be grouped
+% under the next |\caption|\@.) Next |\@subcaption| calls the
+% appropriate float-type specific command to decide how to size and shape
+% the subcaption text.
+%
+% \begin{macrocode}
+\newcommand*{\@subfigcaptionlist}{}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand{\@subcaption}[3]{%
+ \ifx \relax#2\relax \else
+ \bgroup
+ \let\label=\@gobble
+ \let\protect=\string
+ \def\@subcaplabel{\@nameuse{@@the#1}}%
+ \xdef\@subfigcaptionlist{%
+ \@subfigcaptionlist,%
+ {\protect\numberline{\@subcaplabel}\noexpand{\ignorespaces #2}}}%
+ \egroup
+ \fi
+ \@nameuse{@make#1caption}{\@nameuse{@the#1}}{#3}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*{\listsubcaptions}{%
+ \@ifstar
+ {\gdef\@subfigcaptionlist{}}%
+ {\@listsubcaptions{\@captype}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*{\@listsubcaptions}[1]{%
+ \@ifundefined{@captype}{}{%
+ \@ifundefined{ext@sub#1}{}{%
+ \@for \sf@temp:=\@subfigcaptionlist \do {%
+ \ifx \@empty\sf@temp\relax \else
+ \addcontentsline
+ {\@nameuse{ext@sub#1}}%
+ {sub#1}%
+ {\sf@temp}%
+ \fi}}}%
+ \gdef\@subfigcaptionlist{}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@makesubfigurecaption}
+% \begin{macro}{\@makesubtablecaption}
+%
+% \changes{v2.1}{17 Jan 1997}{Added the new font control.}
+%
+% By default, the |\@subfigurecaption| and |\@subtablecaption|
+% commands are identical. Unlike the standard |\@makecaption| command,
+% we assume that the first argument (the label number produced by
+% the |\@thesubfigure| or the |\@thesubtable|) contains any trailing
+% separator characters or spacing (which makes it easier to customize).
+%
+% \newpage^finalhack
+%
+% The |\@makesubfigurecaption| command first checks the size of the
+% caption typeset as a single line. It knocks off twice the
+% |\subfigcapmargin| (at it's regular size) to determine the with of the
+% caption and label.
+%
+% \begin{macrocode}
+\newcommand{\@makesubfigurecaption}[2]{%
+ \setbox\@tempboxa\hbox{%
+ \subcapsize
+ {\subcaplabelfont #1}%
+ {\subcapfont\ignorespaces #2}}%
+ \@tempdimb=-\subfigcapmargin
+ \multiply\@tempdimb\tw@
+ \advance\@tempdimb\@tempdima
+% \end{macrocode}
+%
+% Next it creates a horizontal box of that width and if the label plus
+% the text was too wide or if the \Lif{subcapnooneline} flag is true,
+% then it sends off the label and subcaption to |\subfig@caption| to
+% typset as a paragraph. NOTE: |\subfig@caption| assumes that
+% |\@tempbdimb| has the calculated width for the paragraph.
+%
+% If the label plus the text will fit and the \Lif{subcapnooneline} flag
+% is false, then we just return them (from box |\@tempboxa|).
+%
+% \begin{macrocode}
+ \hbox to\@tempdima{%
+ \hss
+ \ifdim \wd\@tempboxa >\@tempdimb
+ \subfig@caption{#1}{#2}%
+ \else\ifsubcapnooneline
+ \subfig@caption{#1}{#2}%
+ \else
+ \box\@tempboxa
+ \fi\fi
+ \hss}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\@makesubtablecaption=\@makesubfigurecaption
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\subfig@caption}
+%
+% \changes{v2.1}{23 Jan 2002}{Added \cmd{\subcapfont} and
+% \cmd{\ignorespaces} before the caption text. So that it does not
+% interfere with the label font settings. This fixes a bug found by
+% Axel Sommerfeldt.}
+%
+% \begin{macro}{\subfig@captionpar}
+%
+% \changes{v2.1}{23 Jan 2002}{Simplified by removing the font settings.
+% It is up to the caller to enforce these! This fixes a bug found by
+% Axel Sommerfeldt.}
+%
+% \changes{v2.1}{17 Jan 1997}{Added the new font control.}
+%
+% These commands are called to typeset a multiple-line subcaption (or a
+% single line when \Lif{subcapnooneline} is true). Depending on the
+% \Lif{subcapcenter} and \Lif{subcapcenterlast} flags, the text will be
+% justified (both false), centered (\Lif{subcapcenter} true), or
+% justified with the last line centered (only the flag
+% \Lif{subcapcenterlast} set true).
+%
+% \begin{macrocode}
+\newcommand{\subfig@caption}[2]{%
+ \ifsubcaphang
+ \sbox{\@tempboxa}{\subcapsize\subcaplabelfont #1}%
+ \addtolength{\@tempdimb}{-\wd\@tempboxa}%
+ \usebox{\@tempboxa}%
+ \subfig@captionpar{\@tempdimb}{%
+ {\subcapfont\ignorespaces #2}}%
+ \else
+ \subfig@captionpar{\@tempdimb}{%
+ {\subcaplabelfont #1}%
+ {\subcapfont\ignorespaces #2}}%
+ \fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\subfig@captionpar}[2]{%
+ \parbox[t]{#1}{%
+ \subcapsize
+ \ifsubcapraggedright
+ \setlength{\leftskip}{\z@}%
+ \setlength{\@rightskip}{\@flushglue}%
+ \setlength{\rightskip}{\@rightskip}%
+ \setlength{\parindent}{\z@}%
+ \else\ifsubcapRaggedRight
+ \setlength{\leftskip}{\z@}%
+ \setlength{\@rightskip}{\z@ plus \tw@ em}%
+ \setlength{\rightskip}{\@rightskip}%
+ \setlength{\parfillskip}{\z@ plus \@ne fil}%
+ \setlength{\parindent}{\z@}%
+ \else\ifsubcapcenter
+ \setlength{\leftskip}{\@flushglue}%
+ \setlength{\rightskip}{\@flushglue}%
+ \setlength{\parfillskip}{\z@skip}%
+ \else\ifsubcapcenterlast
+ \addtolength{\leftskip}{\z@ plus 1fil}%
+ \addtolength{\rightskip}{\z@ plus -1fil}%
+ \setlength{\parfillskip}{\z@ plus 2fil}%
+ \fi\fi\fi\fi
+ #2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Patches to the Standard Environment}
+% \label{sec:patches}
+%
+% The following adjust the standard environment for the
+% \Lpack{subfigure} package. They are designed as wrappers to the
+% current definition of the standard commands to minimize any chance of
+% conflict with other packages or to extend \LaTeX.
+%
+% \begin{macro}{\@dottedxxxline}
+% \label{sec:dl}
+% This is a generalized wrapper for the |\@dottedtocline| command.
+% It checks for the level based on the output file (first argument)
+% and not using only |\@tocdepth|. (See section~\ref{sec:listof}
+% for a description of the arguments.)
+%
+% \begin{macrocode}
+\newcommand*{\@dottedxxxline}[6]{%
+ \ifnum #2>\@nameuse{c@#1depth}\else
+ \@dottedtocline{0}{#3}{#4}{#5}{#6}
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subfig@end@float}
+% \begin{macro}{\subfig@end@dblfloat}
+% \begin{macro}{\end@float}
+% \begin{macro}{\end@dblfloat}
+%
+% \changes{v2.1}{05 Jan 1998}{Added this section to minimize the need
+% for \cmd{\listofcaptions}.}
+%
+% These commands patch the end of the \Lenv{float} environment so that it will
+% dump out the subcaptions if any remain at this point. This can occur
+% when using the \Lopt{TOPCAP} options.
+% \begin{macrocode}
+\let\subfig@end@float=\end@float
+% \end{macrocode}
+%
+% \begin{macrocode}
+\renewcommand*{\end@float}{%
+ \@listsubcaptions{\@captype}%
+ \subfig@end@float}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\subfig@end@dblfloat=\end@dblfloat
+% \end{macrocode}
+%
+% \begin{macrocode}
+\renewcommand*{\end@dblfloat}{%
+ \@listsubcaptions{\@captype}%
+ \subfig@end@dblfloat}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \newpage^finalhack
+%
+% \begin{macro}{\subfig@oldcaption}
+% \begin{macro}{\@caption}
+%
+% \changes{v2.1}{23 Jan 2002}{Now using \cmd{\@nameuse} to build names.
+% Added a check for topcap flag. If it is not defined, we assume that
+% this float type does not support subfigures.}
+%
+% \changes{v2.1}{05 Jan 1998}{Changed to print the subcaptions before
+% or after the caption, depending on the TOPCAP setting of the current
+% environment.}
+%
+% Next, we redefine the current |\@caption| command to dump any
+% subcaptions saved. First the `old' caption command is called to
+% add the line to the ``List-of'' file and then the list of
+% subcaptions, |\@subfigcaptionlist| is written to the same file.
+% Lastly, the |\@subfigcaptionlist| is reinitialized.
+%
+% \begin{macrocode}
+\let\subfig@oldcaption=\@caption
+% \end{macrocode}
+%
+% \begin{macrocode}
+\long\def\@caption#1[#2]#3{%
+ \@ifundefined{if#1topcap}%
+ {\subfig@oldcaption{#1}[{#2}]{#3}}%
+ {\@nameuse{if#1topcap}%
+ \@listsubcaptions{#1}%
+ \subfig@oldcaption{#1}[{#2}]{#3}%
+ \else
+ \subfig@oldcaption{#1}[{#2}]{#3}%
+ \@listsubcaptions{#1}%
+ \fi}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\subfig@oldlabel}
+%
+% To support the redefinition of the |\label| command within the body of
+% the subfloats, we will use |\subfig@oldlabel| to save the current
+% definition of |\label| and create the |\subfloat@label| command to take its
+% place during the processing of the |\subfigure| command. Since the
+% definition of |\label| may change as packages are loaded, we save the
+% definition each time that |\label| is replaced with |\sub@label|
+% (see \ref{sec:subfigure} above).
+%
+% \begin{macrocode}
+\let\subfig@oldlabel=\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subfloat@label}
+% \begin{macro}{\sub@label}
+%
+% \changes{v2.1.4}{02 Jul 2002}{Added reference to this command via
+% the name \cmd{subfloat@label} to avoid packages that replace the
+% name without the support of the optional argument. The old name
+% is still here to decoy the other packages. Added chapter number
+% in the automatically generated label to increase uniqueness.}
+%
+% One difference from the regular |\label| command is that there is an
+% optional argument (note with parentheses rather than square brackets)
+% that is only used with the \Lpack{hyperref} package to define the
+% {\em bookmark\/} argument to the label. Typically, this would be a
+% copy or paraphrase of the subcaption text. If this is not given and
+% the \Lpack{hyperref} package is being used, then the {\em bookmark\/}
+% argument is of the form ``Subfigure\textvisiblespace 1(a)''.
+%
+% \begin{macrocode}
+\newcommand*{\subfloat@label}{%
+ \@ifnextchar(
+ {\sf@sub@label}
+ {\sf@sub@label(Sub\@captype\space
+ \@ifundefined{thechapter}{}{%
+ \@nameuse{thechapter}\space}%
+ \@nameuse{p@sub\@captype}%
+ \@nameuse{thesub\@captype}.)}}
+% \end{macrocode}
+% \begin{macrocode}
+\let\sub@label\subfloat@label
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \newpage^finalhack
+%
+% \begin{macro}{\sf@sub@label}
+%
+% \changes{v2.1.4}{02 Jul 2002}{Moved \cmd{\relax} from the
+% \cmd{\sf@@sub@label} to here.}
+%
+% \changes{v2.1.1}{15 Mar 2002}{Added coordination with the hyperref
+% package.}
+%
+% The |\sf@sub@label| parses the optional argument and (if the
+% \Lpack{hyperref} Package is loaded) saves the {\em bookmark\/} text
+% as |\@currentlabelname|. It then calls the |\sf@@sub@label| command
+% to the real processing of the label.
+%
+% \begin{macrocode}
+\def\sf@sub@label(#1)#2{%
+ \ifhyperrefloaded
+ \protected@edef\@currentlabelname{%
+ \expandafter\strip@period #1\relax.\relax\@@@}%
+ \fi
+ \sf@@sub@label{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sf@@sub@label}
+%
+% \changes{v2.1.4}{02 Jul 2002}{Moved \cmd{\relax} from here to the
+% \cmd{\sf@sub@label}.}
+%
+% \changes{v2.1.2}{26 Mar 2002}{Changed to simplify the operation and
+% to avoid a bug in the hyperref package.}
+%
+% \changes{v2.1.1}{15 Mar 2002}{Added coordination with the hyperref
+% package.}
+%
+% In order to support the \Lpack{hyperref} package we check if it was
+% loaded and use the proper form of the |\newlabel| command. |\sf@@sub@label|
+% operates by first calling the old |\label| definition (which adds a
+% |\newlabel| command to the \Lfile{*.aux} file) and then adds another
+% |\newlabel| command to the \Lfile{*.aux} file with a similar reference
+% name (with `sub@' prepended) and the value of |\@@thesubfigure| or
+% |\@@thesubtable|.
+%
+% If the |\ifhyperrefloaded| flag is set, then the |\newlabel| command
+% has three extra fields, the first is the value of |\@currentlabelname|,
+% which is either of the form ``Subfigure\textvisiblespace1(a)'' or
+% was defined by the optional argument to |\label| (actually
+% |\sub@label|). The second extra field is the hypertext anchor name
+% and the third is unused. Otherwise, the we us the standard |\newlabel|
+% form to write the sub-reference.
+%
+% \begin{macrocode}
+\newcommand*{\sf@@sub@label}[1]{%
+ \@bsphack
+ \subfig@oldlabel{#1}%
+ \ifhyperrefloaded
+ \protected@write\@auxout{}{%
+ \string\newlabel{sub@#1}%
+ {{\@nameuse{@@thesub\@captype}}%
+ {\thepage}%
+ {\expandafter\strip@period\@currentlabelname\relax.\relax\@@@}%
+ {\@currentHref}%
+ {}}}%
+ \else
+ \protected@write\@auxout{}{%
+ \string\newlabel{sub@#1}%
+ {{\@nameuse{@@thesub\@captype}}%
+ {\thepage}}}%
+ \fi
+ \@esphack}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \enlargethispage{24pt}^finalhack
+% \vspace{-10pt}^finalhack
+%
+% \begin{macro}{\subref}
+%
+% The |\subref| command is the same as the |\ref| command except that
+% |\@@thesubtable| instead of |\p@subfigure\thesubfigure| or
+% |\p@subtable\thesubtable|. This is often of use for local references
+% within the figure where the figure number may be assumed; or, for ease
+% in constructing a range of references within a figure with many
+% subfigures.
+%
+% \begin{macrocode}
+\newcommand\subref[1]{%
+ \ref{sub@#1}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\Subref}
+%
+% \changes{v2.1.2}{26 Mar 2002}{Changed \cmd{\subref*} to \cmd{\Subref} to
+% avoid problems in writing to the \Lfile{aux} file.}
+%
+% \changes{v2.1}{23 Jan 2002}{Added \cmd{\subref*} at the request of Benoit
+% Hudson (bhudson\@cs.cmu.edu).}
+%
+% The |\Subref| command is the same as |\subref|, except that it adds
+% |\subcaplabelfont| before the reference so that it uses the same font
+% (except that the current font size is maintained).
+%
+% \begin{macrocode}
+\newcommand\Subref[1]{%
+ {\subcaplabelfont
+ \ref{sub@#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+%
+\endinput