summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/subfloat
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/subfloat
Initial commit
Diffstat (limited to 'macros/latex/contrib/subfloat')
-rw-r--r--macros/latex/contrib/subfloat/ChangeLog21
-rw-r--r--macros/latex/contrib/subfloat/Makefile80
-rw-r--r--macros/latex/contrib/subfloat/README42
-rwxr-xr-xmacros/latex/contrib/subfloat/install.sh15
-rw-r--r--macros/latex/contrib/subfloat/subfloat.dtx899
-rw-r--r--macros/latex/contrib/subfloat/subfloat.ins21
-rw-r--r--macros/latex/contrib/subfloat/subfloat.pdfbin0 -> 107504 bytes
7 files changed, 1078 insertions, 0 deletions
diff --git a/macros/latex/contrib/subfloat/ChangeLog b/macros/latex/contrib/subfloat/ChangeLog
new file mode 100644
index 0000000000..53392256b5
--- /dev/null
+++ b/macros/latex/contrib/subfloat/ChangeLog
@@ -0,0 +1,21 @@
+2003-08-21 v2.13 <h.harders@tu-bs.de>
+ Moved warning outside options
+
+2002-12-16 v2.13 <h.harders@tu-bs.de>
+ Remove error message of incorrect usage of the counters for
+ maximal float number due to an incompatibility to tabularx.
+
+2002-10-30 v2.12 <h.harders@tu-bs.de>
+ Remove some typos.
+
+2002-09-10 v2.11 <h.harders@tu-bs.de>
+ Test for nesting of subfloatfigure areas
+
+2002-09-06 v2.10 <h.harders@tu-bs.de>
+ Add counting of subfloats
+
+2002-09-06 v2.01 <h.harders@tu-bs.de>
+ Add support for subfigure.sty
+
+2002-09-06 v2.00 <h.harders@tu-bs.de>
+ Total new implementation of the package with help of Frank Mittelbach
diff --git a/macros/latex/contrib/subfloat/Makefile b/macros/latex/contrib/subfloat/Makefile
new file mode 100644
index 0000000000..33d6491310
--- /dev/null
+++ b/macros/latex/contrib/subfloat/Makefile
@@ -0,0 +1,80 @@
+SUBFLOATDIR=subfloat
+INSTALLDIR=`kpsewhich --expand-path='$$TEXMFLOCAL'`/tex/latex/subfloat
+DOCDIR=`kpsewhich --expand-path='$$TEXMFLOCAL'`/doc/latex/subfloat
+VERSION=`grep '^\\\\def\\\\fileversion' subfloat.dtx | sed 's/^\\\\def\\\\fileversion{\\(.*\\)\\.\\(.*\\)}/\\1_\\2/'`
+
+.SUFFIXES: .sty .ins .dtx .dvi .ps
+
+
+.ins.sty:
+ latex $<
+
+.dtx.dvi:
+ latex $<
+ latex $<
+ makeindex -s gind.ist $(*D)/$(*F)
+ makeindex -s gglo.ist -o $(*D)/$(*F).gls $(*D)/$(*F).glo
+ latex $<
+
+.dvi.ps:
+ dvips -o $(*D)/$(*F).ps $(*D)/$(*F)
+
+
+all: subfloat.sty subfloat.dvi ausgabe
+
+subfloat: subfloat.sty
+
+clean:
+ @-rm -f subfloat.{glo,gls,idx,ilg,ind,aux,log,toc}
+ @-rm -f *~
+
+distclean: clean
+ @-rm -f subfloat.{sty,dvi,ps}
+
+tar: all clean
+ echo Lege subfloat.tar.gz an
+ -rm -f subfloat-*.tar.gz
+ tar czCf .. subfloat-$(VERSION).tar.gz \
+ $(SUBFLOATDIR)/README $(SUBFLOATDIR)/Makefile \
+ $(SUBFLOATDIR)/subfloat.{dtx,ins,dvi} \
+ $(SUBFLOATDIR)/install.sh \
+ $(SUBFLOATDIR)/subfloat.xml $(SUBFLOATDIR)/ChangeLog
+
+zip: all clean
+ -@rm -f subfloat-$(VERSION).zip
+ mkdirhier tex/latex/subfloat
+ mkdirhier doc/latex/subfloat
+ mkdirhier source/latex/subfloat
+ mv subfloat.sty tex/latex/subfloat
+ cp subfloat.{dtx,ins,xml} Makefile source/latex/subfloat
+ cp ChangeLog README subfloat.dvi doc/latex/subfloat
+ zip -r subfloat-$(VERSION).zip tex doc source
+ rm -r tex/ doc/ source/
+
+install: all
+ if [ ! -d $(INSTALLDIR) ]; then mkdirhier $(INSTALLDIR); fi
+ if [ ! -d $(DOCDIR) ]; then mkdirhier $(DOCDIR); fi
+ install -m622 subfloat.sty $(INSTALLDIR)
+ install -m622 subfloat.dvi $(DOCDIR)
+ texhash
+
+ausgabe:
+ @echo "Please copy subfloat.sty to a directory"
+ @echo "in the LaTeX search path"
+
+tpm: all
+ mkdirhier texmf-local/tex/latex/subfloat
+ mkdirhier texmf-local/doc/latex/subfloat
+ mkdirhier texmf-local/source/latex/subfloat
+ cp subfloat.dtx subfloat.ins README Makefile texmf-local/source/latex/subfloat
+ cp README subfloat.dvi texmf-local/doc/latex/subfloat
+ cp subfloat.sty texmf-local/tex/latex/subfloat
+ @-rm -f subfloat.zip
+ zip -r subfloat texmf-local
+ rm -rf texmf-local
+
+
+
+subfloat.sty: subfloat.ins subfloat.dtx
+
+
diff --git a/macros/latex/contrib/subfloat/README b/macros/latex/contrib/subfloat/README
new file mode 100644
index 0000000000..7965398c20
--- /dev/null
+++ b/macros/latex/contrib/subfloat/README
@@ -0,0 +1,42 @@
+subfloat.sty -- subnumbering for figures and tables
+
+This package enables subnumbering of different floats (figures and
+tables) simular to the subequations-environment of the amsmath
+package. It does not the same as the subfigure package which
+generates subfigures within one normal figure.
+
+Semi-automatic installation:
+=======================
+1. Run the script install.sh:
+ . ./install.sh
+ Or run make:
+ make
+2. Copy subfloat.sty to the LaTeX search path or run make:
+ make install
+3. Optionally copy subfloat.dvi to the LaTeX documentations path (not
+ necessary when using make install).
+
+
+Manual installation:
+====================
+1. Run
+ latex subfloat.ins
+2. Copy subfloat.sty to a directory of the LaTeX search path.
+3. Documentation in english is available in subfloat.ps or by running
+ latex subfloat.dtx
+ latex subfloat.dtx
+ makeindex -s gind.ist subfloat
+ makeindex -s gglo.ist -o subfloat.gls subfloat.glo
+ latex subfloat.dtx
+4. Copy subfloat.sty to the LaTeX search path.
+5. Optionally copy subfloat.dvi to the LaTeX documentations path.
+
+
+This program can be redistributed and/or modified under the terms
+of the LaTeX Project Public License Distributed from CTAN
+archives in directory macros/latex/base/lppl.txt; either
+version 1 of the License, or any later version.
+
+2003/08/21
+Harald Harders
+h.harders@tu-bs.de
diff --git a/macros/latex/contrib/subfloat/install.sh b/macros/latex/contrib/subfloat/install.sh
new file mode 100755
index 0000000000..176d75f0d9
--- /dev/null
+++ b/macros/latex/contrib/subfloat/install.sh
@@ -0,0 +1,15 @@
+# Generate package file
+latex subfloat.ins
+
+# Generate documentation
+latex subfloat.dtx
+latex subfloat.dtx
+makeindex -s gind.ist subfloat
+makeindex -s gglo.ist -o subfloat.gls subfloat.glo
+latex subfloat.dtx
+rm subfloat.glo subfloat.gls subfloat.idx subfloat.ilg subfloat.ind
+rm subfloat.aux subfloat.log subfloat.toc
+
+echo
+echo
+echo "Please copy subfloat.sty to a directory in the LaTeX search path"
diff --git a/macros/latex/contrib/subfloat/subfloat.dtx b/macros/latex/contrib/subfloat/subfloat.dtx
new file mode 100644
index 0000000000..37d6c9af67
--- /dev/null
+++ b/macros/latex/contrib/subfloat/subfloat.dtx
@@ -0,0 +1,899 @@
+% \iffalse meta comment
+% File: subfloat.dtx Copyright (C) 1999 Harald Harders
+% \fi
+%
+% \iffalse
+%
+%<*package>
+\def\packagename{subfloat}
+\def\fileversion{2.14}
+\def\filedate{2003/08/21}
+\def\docdate{2003/08/21}
+%</package>
+%<*driver>
+\documentclass{ltxdoc}
+\IfFileExists{subfloat.sty}{\usepackage{subfloat}
+ \let\subfloatSTYfound\active}{\GenericWarning{subfloat.dtx}{Package
+ file subfloat.sty not found (Documentation will be messed up!^^J^^A
+ Generate subfloat.sty by (La)TeXing subfloat.ins, process
+ subfloat.dtx again)^^J}\stop}
+\usepackage{longtable}
+\title{The \texttt{subfloat} package\thanks{This file has version
+ \fileversion\ last revised \filedate, documentation dated \docdate.}}
+\author{Harald Harders\\\texttt{h.harders@tu-bs.de}}
+\date{File Date \filedate, Printed \today}
+\newlength{\tempdima}%
+\makeatletter
+\renewenvironment{table}[1][]{%
+ \@float{table}[#1]%
+ \centering%
+ \setlength{\tempdima}{\abovecaptionskip}%
+ \setlength{\abovecaptionskip}{\belowcaptionskip}%
+ \setlength{\belowcaptionskip}{\tempdima}%
+ }{%
+\end@float
+}
+\makeatother
+\EnableCrossrefs
+\CodelineIndex
+\DoNotIndex{\def,\edef,\let,\newcommand,\newenvironment,\newcounter}
+\DoNotIndex{\setcounter,\space,\endinput,\@auxout,\@bsphack,\@esphack}
+\DoNotIndex{\@firstoftwo,\if,\else,\fi,\ifnum,\fi,\ifx,\fi,\MessageBreak}
+\DoNotIndex{\relax,\string,\thepage,\@ifpackageloaded,\expandafter}
+\DoNotIndex{\message,\newif,\protect,\protected@write}
+\CodelineNumbered
+\RecordChanges
+\CheckSum{280}
+\setcounter{topnumber}{5}
+\setcounter{bottomnumber}{1}
+\setcounter{totalnumber}{6}
+\begin{document}
+ \DocInput{subfloat.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \changes{1.01}{1999/06/08}{Documentation improved}
+% \changes{1.02}{1999/06/08}{Error in change history corrected}
+% \changes{1.03}{1999/10/08}{email address changed}
+% \changes{1.04}{2002/08/18}{Suggestions made by Frank Mittelbach
+% implemented: Changes in implementation, macros to change label format}
+% \changes{2.00}{2002/09/06}{Total new implementation of the package
+% with help of Frank Mittelbach}
+% \changes{2.12}{2002/10/30}{Correct a typo (thanks to Michael M\"uller)}%
+% \maketitle
+% \begin{abstract}
+% \noindent This package enables subnumbering of floats (figures and
+% tables) similar to the subequations environment of the amsmath
+% package. It does not the same as the subfigure package which
+% generates subfigures within one normal figure.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section*{Copyright}
+% Copyright 1999, 2002 Harald Harders.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+% \section{Introduction}
+% Sometimes two or more floats (figures or tables) belong together in a
+% way you should not use different caption numbers for them.
+% With a subnumbering like that of the amsmath package for equations
+% it is possible to point out the connection of the floats.
+% This package provides two environments and four macros to achive
+% subnumbering of floats.
+% It is possible to change the caption labels.
+%
+% In case of problems or bugs please send an email to my address
+% printed on the title page.
+%
+% \section{The user interface}
+%
+% To use this package place
+% \begin{verbatim}
+% \usepackage{subfloat}
+% \end{verbatim}
+% in the preamble of your document.
+% No options are necessary.
+%
+% \changes{2.10}{2002/09/06}{Add counting of subfloats}%
+% If you want to be able to count the number of subfloats with the
+% same main number you have to add the package option |countmax|:
+% \begin{verbatim}
+% \usepackage[countmax]{subfloat}
+% \end{verbatim}
+% For more description to counting see section~\ref{sec:count}.
+%
+% \subsection{Environments}
+% \DescribeEnv{subfigures}
+% Put
+% \begin{verbatim}
+% \begin{subfigures}
+% \end{subfigures}
+% \end{verbatim}
+% around the figures which belong together.
+% By default, they get the same figure number with an increasing
+% lowercase character added.
+% \DescribeEnv{subtables}
+% In the same way you can put
+% \begin{verbatim}
+% \begin{subtables}
+% \end{subtables}
+% \end{verbatim}
+% around tables. The macros for the environments have to be placed outside
+% the picture or table environments.
+%
+% \subsection{Macros}
+% \DescribeMacro{\subfiguresbegin}
+% \DescribeMacro{\subfiguresend}
+% Instead using of the environments it is possible to use adequate macros:
+% \begin{verbatim}
+% \subfiguresbegin
+% \subfiguresend
+% \end{verbatim}
+% \DescribeMacro{\subtablesbegin}
+% \DescribeMacro{\subtablesend}
+% or
+% \begin{verbatim}
+% \subtablesbegin
+% \subtablesend
+% \end{verbatim}
+%
+% Put these macros in place of the environment macros. The macros are
+% necessary to be able to nest subnumbered figures and tables.
+%
+% If you put labels inside the figure and table environments the subfloat
+% label numberes are referenced.
+% If you want a reference to the common figure or table number place a
+% label right after the |\begin{subfigures}|, |\subfiguresbegin|,
+% |\begin{subtables}|, or |\subtablesbegin| command.
+%
+% \section{Examples}
+% \subsection{Using the environments}
+%
+% \DescribeEnv{subfigures}
+% The code
+% \begin{verbatim}
+% \begin{subfigures}
+% \label{fig:fig1a2}
+% %
+% \begin{figure}\centering
+% \fbox{fig. 1}
+% \caption{This is the first figure}\label{fig:fig1}
+% \end{figure}
+% %
+% \begin{figure}\centering
+% \fbox{fig. 2}
+% \caption{This is the second figure}\label{fig:fig2}
+% \end{figure}
+% %
+% \end{subfigures}
+% \end{verbatim}
+% produces the output of the figures~\ref{fig:fig1a2}
+% (figure~\ref{fig:fig1} and figure~\ref{fig:fig2}).
+% References are made as usual with
+% e.\,g. |\ref{fig:fig1}|.
+% %
+% \begin{subfigures}
+% \label{fig:fig1a2}
+% %
+% \begin{figure}\centering
+% \fbox{fig. 1}
+% \caption{This is the first figure}\label{fig:fig1}
+% \end{figure}
+% %
+% \begin{figure}\centering
+% \fbox{fig. 2}
+% \caption{This is the second figure}\label{fig:fig2}
+% \end{figure}
+% %
+% \end{subfigures}
+%
+% \DescribeEnv{subtables}
+% The output of the tables~\ref{tab:tab1} and \ref{tab:tab1} is
+% generated similarly:
+% \begin{verbatim}
+% \begin{subtables}
+% %
+% \begin{table}\centering
+% \caption{This is the first table}\label{tab:tab1}
+% \begin{tabular}{l} \hline
+% table 1\\ \hline
+% \end{tabular}
+% \end{table}
+% %
+% \begin{table}\centering
+% \caption{This is the second table}\label{tab:tab2}
+% \begin{tabular}{l} \hline
+% table 2\\ \hline
+% \end{tabular}
+% \end{table}
+% %
+% \end{subtables}
+% \end{verbatim}
+% %
+% \begin{subtables}
+% %
+% \begin{table}\centering
+% \caption{This is the first table}\label{tab:tab1}
+% \begin{tabular}{l} \hline
+% table 1\\ \hline
+% \end{tabular}
+% \end{table}
+% %
+% \begin{table}\centering
+% \caption{This is the second table}\label{tab:tab2}
+% \begin{tabular}{l} \hline
+% table 2\\ \hline
+% \end{tabular}
+% \end{table}
+% %
+% \end{subtables}
+%
+% The environment names |subfigures| and |subtables| were
+% chosen to be similar to the |subequations| environment of the
+% amsmath package. But what is to do when both environments have to be
+% nested? This case is handled in the next section.
+%
+% \subsection{Using the macros}
+% \DescribeMacro{\subfiguresbegin}
+% \DescribeMacro{\subfiguresend}
+% \DescribeMacro{\subtablesbegin}
+% \DescribeMacro{\subtablesend}
+% The usage of the macros is shown in the example below:
+% \begin{verbatim}
+% \subfiguresbegin
+% \begin{figure}
+% [...]
+% \begin{table}
+% [...]
+% \subtablesbegin
+% \begin{table}
+% [...]
+% \begin{figure}
+% [...]
+% \subfiguresend
+% \begin{figure}
+% [...]
+% \begin{table}
+% [...]
+% \subtablesend
+% \end{verbatim}
+% %
+% \subfiguresbegin
+% %
+% \begin{figure}\centering
+% \fbox{fig. 3}
+% \caption{This is the third figure}\label{fig:fig3}
+% \end{figure}
+% %
+% \begin{table}\centering
+% \caption{This is the third table}\label{tab:tab3}
+% \begin{tabular}{l} \hline
+% table 3\\ \hline
+% \end{tabular}
+% \end{table}
+%
+% \subtablesbegin
+% %
+% \begin{table}\centering
+% \caption{This is the forth table}\label{tab:tab4}
+% \begin{tabular}{l} \hline
+% table 4\\ \hline
+% \end{tabular}
+% \end{table}
+% %
+% \begin{figure}\centering
+% \fbox{fig. 4}
+% \caption{This is the forth figure}\label{fig:fig4}
+% \end{figure}
+% %
+% \subfiguresend
+% %
+% \begin{figure}\centering
+% \fbox{fig. 5}
+% \caption{This is the fifth figure}\label{fig:fig5}
+% \end{figure}
+% %
+% \begin{table}\centering
+% \caption{This is the fifth table}\label{tab:tab5}
+% \begin{tabular}{l} \hline
+% table 5\\ \hline
+% \end{tabular}
+% \end{table}
+% %
+% \subtablesend
+%
+% With these macros it is possible to realise nested subnumbers of
+% figures and tables. Even nested subnumbers of figures or tables and
+% equations made with the subequations environment of the amsmath
+% package are possible.
+%
+% \section{Change the label format}
+%
+% The standard label format is the global float number followed by a
+% lowercase alphanumerical subfloat number.
+% This can be changed by redefining the commands |\thesubfloatfigure|
+% and |\thesubfloattable|.
+% Both define the whole float number including the main number.
+% The main number is referred by |\themainfigure| resp.\
+% |\themaintable|.
+% The counters of the subfloats are |subfloatfigure| resp.\
+% |subfloattable|.
+% The default values are:
+% \begin{verbatim}
+% \newcommand*\thesubfloatfigure{\themainfigure\alph{subfloatfigure}}
+% \newcommand*\thesubfloattable{\themaintable\alph{subfloattable}}
+% \end{verbatim}
+% If you want to print the subnumber of figures in brackets, you may
+% define this:
+% \begin{verbatim}
+% \renewcommand*\thesubfloatfigure{\themainfigure(\alph{subfloatfigure})}
+% \end{verbatim}
+% If you want a sublabel in the format 1--1, 1--2, \dots\ you can
+% get it by the following command sequence:
+% \begin{verbatim}
+% \renewcommand*\thesubfloatfigure{\themainfigure--\arabic{subfloatfigure}}
+% \end{verbatim}
+%
+% Since it is done the same for tables this it not described again.
+%
+% \section{Count subfloats}%
+% \label{sec:count}%
+% \changes{2.10}{2002/09/06}{Add counting of subfloats}%
+%
+% If the package option |countmax| is used the package counts the
+% number of all subfloats with the same main float number. This number
+% is stored in the counters |subfloatfiguremax| resp.\
+% |subfloattablemax| and can be used for changeing the labels, e.g.:
+% \begin{verbatim}
+% \renewcommand*\thesubfloatfigure{%
+% \themainfigure(\arabic{subfloatfigure}/\arabic{subfloatfiguremax})}
+% \end{verbatim}
+% \changes{2.13}{2002/12/16}{Remove generation of error message
+% because of incompatibility with tabularx}%
+% If the package option is not set but |subfloatfiguremax| used an
+% error messages is produced by \LaTeX. Normally there should be an
+% error message of the following types:
+% \begin{verbatim}
+% ! Missing number, treated as zero.
+% <to be read again>
+% \c@subfloatfiguremax
+% l.64 }
+%
+% ?
+% \end{verbatim}
+% or
+% \begin{verbatim}
+% ! Undefined control sequence.
+% <write> ...abel{ressim2}{{I(b/\c@subfloattablemax
+% )}{\thepage }{Estimation o...
+% l.105 \end{document}
+%
+% ?
+% \end{verbatim}
+% There may be |\c@subfloatfiguremax| or |\c@subfloattablemax|.
+% In a former version, |subfloat| has generated a nice error
+% message. But unfortunately this code has been incompatible to
+% |tabularx|.
+%
+% In order to get the numbers right \LaTeX\ has to be run twice or
+% three times.\footnote{Internally, this is implemented using labels.
+% After the first \LaTeX\ run, the counter is zero end thus not
+% displayed for alpha or roman numbering.}
+%
+% \section{Command reference}
+% This sections gives a short list of the main commands and environments
+% of this package.
+%
+% \begin{longtable}[l]{@{}p{0.3\linewidth}@{}p{0.7\linewidth}@{}}
+% \hline
+% \textbf{environment}&\textbf{description}\\
+% \hline
+% \texttt{subfigures}&Increases the figure number by one and starts
+% subnumbering by appending a, b, c, \dots to the fixed figure number\\
+% \texttt{subtables}&Increases the table number by one and starts
+% subnumbering by appending a, b, c, \dots to the fixed table number\\
+% \hline
+% \end{longtable}
+% \begin{longtable}[l]{@{}p{0.3\linewidth}@{}p{0.7\linewidth}@{}}
+% \hline
+% \textbf{macro}&\textbf{description}\\
+% \hline
+% \texttt{\bslash subfiguresbegin}&Increases the figure number by one
+% and starts subnumbering by appending a, b, c, \dots to the fixed figure
+% number\\
+% \texttt{\bslash subfiguresend}&Returns to ordinary figure numbering\\
+% \texttt{\bslash subtablesbegin}&Increases the table number by one and starts
+% subnumbering by appending a, b, c, \dots to the fixed table number\\
+% \texttt{\bslash subtablesend}&Returns to ordinary table numbering\\
+% \hline
+% \texttt{\bslash thesubfloatfigure}& Defines the output format of the
+% main and subfigure number.\\
+% \texttt{\bslash themainfigure}& Number of the main figure\\
+% \texttt{\bslash thesubfloattable}& Defines the output format of the
+% main and subtable number.\\
+% \texttt{\bslash themaintable}& Number of the main table\\
+% \hline
+% \end{longtable}
+%
+%
+% \section*{To do}
+%
+% At the moment, I don't know anything.
+%
+% \section*{Acknowledgements}
+%
+% Thanks to Frank Mittelbach who had the idea to make the label
+% changeable. Furthermore, he helped to develop a user friendly
+% interface to do this.
+%
+% \StopEventually{\PrintChanges \PrintIndex}
+%
+% \section{The implementation}
+% \iffalse
+%<*package>
+% \fi
+% Heading of the package:
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{subfloat}
+ [\filedate\space version \fileversion]
+\message{Package `subfloat', Version \fileversion\space of \filedate.}
+% \end{macrocode}
+%
+% \subsection{Options}%
+% \changes{2.10}{2002/09/06}{Add counting of subfloats}%
+%
+% \begin{macrocode}
+\newif\ifsubfloat@countmax
+% \end{macrocode}
+% Option to count the floats.
+% \changes{2.13}{2002/12/16}{Remove generation of error message
+% because of incompatibility with tabularx}%
+% \changes{2.14}{2003/08/21}{Moved warning outside options}%
+% \begin{macrocode}
+\DeclareOption{countmax}{\subfloat@countmaxtrue}
+\DeclareOption{nocountmax}{\subfloat@countmaxfalse}%
+% \end{macrocode}
+% \begin{macrocode}
+\ExecuteOptions{nocountmax}
+% \end{macrocode}
+% \begin{macrocode}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+% \subsection{Figures}
+%
+% \begin{macro}{\thesubfloatfigure}%
+% Defining the output format of captions:
+% \begin{macrocode}
+\newcommand*\thesubfloatfigure{\themainfigure\alph{subfloatfigure}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{subfigures}%
+% Defining the environment |subfigures|:
+% \begin{macrocode}
+\newenvironment{subfigures}{%
+% \end{macrocode}
+% Call start command for subnumbering:
+% \begin{macrocode}
+ \subfiguresbegin
+}{%
+% \end{macrocode}
+% Call end command for subnumbering:
+% \begin{macrocode}
+ \subfiguresend
+ \global\@ignoretrue
+}
+% \end{macrocode}
+% \end{environment}
+%
+% Make a copy of |\c@figure| in |\c@subfloatfigure| in order to be
+% able to use the counter |subfloatfigure| in the defintion of
+% |\thesubfloatfigure|:
+% \begin{macrocode}
+\let\c@subfloatfigure=\c@figure
+% \end{macrocode}
+% Define the boolean |\ifinsubfloatfigures| to determine if we are
+% inside a subfloatfigures area:
+% \changes{2.11}{2002/09/10}{Test for nesting of subfloatfigure areas}%
+% \begin{macrocode}
+\newif\ifinsubfloatfigures
+% \end{macrocode}
+% \begin{macro}{\thefiguresbegin}%
+% Defining the macro |\thefiguresbegin|:
+% \begin{macrocode}
+\newcommand{\subfiguresbegin}{%
+% \end{macrocode}
+% Check if |\subfiguresbegin| may be called here:
+% \changes{2.11}{2002/09/10}{Test for nesting of subfloatfigure areas}%
+% \begin{macrocode}
+\ifinsubfloatfigures
+ \PackageError{subfloat}{Cannot start subfloatfigures inside
+ a\MessageBreak subfloatfigure area}{You probably have used
+ \string\subfiguresbegin\space or \string\begin{subfigures} inside
+ the^^Jsame environment or after \string\subfiguresbegin.}%
+\fi
+% \end{macrocode}
+% Set testing boolean to true:
+% \changes{2.11}{2002/09/10}{Test for nesting of subfloatfigure areas}%
+% \begin{macrocode}
+\global\insubfloatfigurestrue
+% \end{macrocode}
+% Increase figure number:
+% \begin{macrocode}
+ \refstepcounter{figure}%
+% \end{macrocode}
+% Save value of counter |figure|:
+% \begin{macrocode}
+ \protected@xdef\figure@value{\the\c@figure}%
+% \end{macrocode}
+% Save counter |figure| in printed format:
+% \begin{macrocode}
+ \protected@xdef\themainfigure{\thefigure}%
+% \end{macrocode}
+% Save the original macro |\thefigure|:
+% \begin{macrocode}
+ \global\let\thefigure@original=\thefigure
+% \end{macrocode}
+% Reset counter |figure| to zero.
+% It functions as subfloat counter until |\subfiguresend|.
+% \begin{macrocode}
+ \setcounter{figure}{0}%
+% \end{macrocode}
+% Redefine macro |\thefigure| to use subnumbering:
+% \begin{macrocode}
+ \gdef\thefigure{\thesubfloatfigure}%
+% \end{macrocode}
+% Set counter to maximal number of subfloatfigures. Therefore local
+% redefinition of |\@setref| in order to change the warning and to set
+% the counter |subfloatfiguremax| correct. Thereafter call |\@setref|
+% using the |\ref| command:
+% \changes{2.10}{2002/09/06}{Add counting of subfloats}%
+% \begin{macrocode}
+ \ifsubfloat@countmax
+ {\def\@setref##1##2##3{%
+ \ifx##1\relax
+ \protect\G@refundefinedtrue
+ \setcounter{subfloatfiguremax}{0}%
+ \PackageWarningNoLine{subfloat}{Reference `##3' on page
+ \thepage \space undefined\MessageBreak
+ (count subfloatfigures)}%
+ \else
+ \setcounter{subfloatfiguremax}{\expandafter\@firstoftwo##1}%
+ \fi}%
+ \ref{subfloat@@figure\figure@value}}%
+ \fi
+% \end{macrocode}
+% Redefine the macro |\p@subfigure| (from |subfigure.sty|) in order to
+% generate correct labels for subfigures:
+% \changes{2.01}{2002/09/06}{Add support for subfigure.sty}%
+% \begin{macrocode}
+%% \@ifpackageloaded{subfigure}{%
+ \let\p@subfigure=\thesubfloatfigure
+%% }{}%
+% \end{macrocode}
+% Ignore spaces:
+% \begin{macrocode}
+ \ignorespaces
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\thefiguresend}
+% Defining the macro |\thefiguresend|:
+% \begin{macrocode}
+\newcommand{\subfiguresend}{%
+% \end{macrocode}
+% Check if |\subfiguresend| may be called here:
+% \changes{2.11}{2002/09/10}{Test for nesting of subfloatfigure areas}%
+% \begin{macrocode}
+\ifinsubfloatfigures
+\else
+ \PackageError{subfloat}{Cannot stop subfloatfigures outside
+ a\MessageBreak subfloatfigure area}{You probably have used
+ \string\subfiguresend\space or \string\end{subfigures} without
+ starting a^^Jsubfloatfigure area using the same environment or
+ \string\subfiguresbegin.}%
+\fi
+% \end{macrocode}
+% Set testing boolean to false:
+% \changes{2.11}{2002/09/10}{Test for nesting of subfloatfigure areas}%
+% \begin{macrocode}
+\global\insubfloatfiguresfalse
+% \end{macrocode}
+% Write the number of subfloatfigures into the |aux| file:
+% \changes{2.10}{2002/09/06}{Add counting of subfloats}%
+% \begin{macrocode}
+ \ifsubfloat@countmax
+ \subfloat@figurelabel{subfloat@@figure\figure@value}%
+ \fi
+% \end{macrocode}
+% Set counter |figure| back to original value:
+% \begin{macrocode}
+ \setcounter{figure}{\figure@value}%
+% \end{macrocode}
+% Restore the original macro |\thefigure|:
+% \begin{macrocode}
+ \global\let\thefigure=\thefigure@original
+% \end{macrocode}
+% Restore the original macro |\p@subfigure| (from |subfigure.sty|):
+% \changes{2.01}{2002/09/06}{Add support for subfigure.sty}%
+% \begin{macrocode}
+%% \@ifpackageloaded{subfigure}{%
+ \let\p@subfigure=\thefigure
+%% }{}%
+% \end{macrocode}
+% Ignore spaces:
+% \begin{macrocode}
+ \ignorespaces
+}
+%%
+% \end{macrocode}
+% \end{macro}
+%
+% Introduce the counter for the number of subfloatfigures.
+% If both the option |countmax| is not used and this counter is tried
+% to be used, an not understandable error message is generated (e.g.\
+% ``! Missing number, treated as zero''. There has been code that
+% produced a nice error message, but it was incompatible to tabularx
+% (namely the command |\cl@@ckpt|).
+% \changes{2.10}{2002/09/06}{Add counting of subfloats}%
+% \changes{2.13}{2002/12/16}{Remove generation of error message
+% because of incompatibility with tabularx}%
+% \begin{macrocode}
+\ifsubfloat@countmax
+ \newcounter{subfloatfiguremax}
+\else
+% \end{macrocode}
+% \changes{2.14}{2003/08/21}{Moved warning outside options}%
+% Warning if countmax is off.
+% \begin{macrocode}
+ \PackageWarningNoLine{subfloat}{Numbers of floats not
+ counted:\MessageBreak
+ If you use one of the counters subfloatfiguremax or\MessageBreak
+ subfloattablemax you will get strange error messages\MessageBreak
+ containing \string\c@subfloatfiguremax\space or\MessageBreak
+ \string\c@subfloattablemax:\MessageBreak
+ Please switch on countmax or
+ remove the code using\MessageBreak
+ the counter then.}
+\fi
+% \end{macrocode}
+% \begin{macro}{\subfloat@figurelabel}
+% This command makes a label for the current figure, always with an
+% arabic number:
+% \changes{2.10}{2002/09/06}{Add counting of subfloats}%
+% \begin{macrocode}
+\ifsubfloat@countmax
+ \newcommand*\subfloat@figurelabel[1]{\@bsphack
+ \protected@write\@auxout{}%
+ {\string\newlabel{#1}{{\the\c@figure}{\thepage}}}%
+ \@esphack}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Tables}
+%
+% \begin{macro}{\thesubfloattable}%
+% Defining the output format of captions:
+% \begin{macrocode}
+\newcommand*\thesubfloattable{\themaintable\alph{subfloattable}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{subtables}%
+% Defining the environment |subtables|:
+% \begin{macrocode}
+\newenvironment{subtables}{%
+% \end{macrocode}
+% Call start command for subnumbering:
+% \begin{macrocode}
+ \subtablesbegin
+}{%
+% \end{macrocode}
+% Call end command for subnumbering:
+% \begin{macrocode}
+ \subtablesend
+ \global\@ignoretrue
+}
+% \end{macrocode}
+% \end{environment}
+%
+% Make a copy of |\c@table| in |\c@subfloattable| in order to be
+% able to use the counter |subfloattable| in the defintion of
+% |\thesubfloattable|:
+% \begin{macrocode}
+\let\c@subfloattable=\c@table
+% \end{macrocode}
+% Define the boolean |\ifinsubfloattables| to determine if we are
+% inside a subfloattables area:
+% \changes{2.11}{2002/09/10}{Test for nesting of subfloattable areas}%
+% \begin{macrocode}
+\newif\ifinsubfloattables
+% \end{macrocode}
+% \begin{macro}{\thetablesbegin}%
+% Defining the macro |\thetablesbegin|:
+% \begin{macrocode}
+\newcommand{\subtablesbegin}{%
+% \end{macrocode}
+% Check if |\subtablesbegin| may be called here:
+% \changes{2.11}{2002/09/10}{Test for nesting of subfloattable areas}%
+% \begin{macrocode}
+\ifinsubfloattables
+ \PackageError{subfloat}{Cannot start subfloattables inside
+ a\MessageBreak subfloatfigure area}{You probably have used
+ \string\subtablesbegin\space or \string\begin{subtables} inside
+ the^^Jsame environment or after \string\subtablesbegin.}%
+\fi
+% \end{macrocode}
+% Set testing boolean to true:
+% \changes{2.11}{2002/09/10}{Test for nesting of subfloattable areas}%
+% \begin{macrocode}
+\global\insubfloattablestrue
+% \end{macrocode}
+% Increase table number:
+% \begin{macrocode}
+ \refstepcounter{table}%
+% \end{macrocode}
+% Save value of counter |table|:
+% \begin{macrocode}
+ \protected@xdef\table@value{\the\c@table}%
+% \end{macrocode}
+% Save counter |table| in printed format:
+% \begin{macrocode}
+ \protected@xdef\themaintable{\thetable}%
+% \end{macrocode}
+% Save the original macro |\thetable|:
+% \begin{macrocode}
+ \global\let\thetable@original=\thetable
+% \end{macrocode}
+% Reset counter |table| to zero. It functions as subfloat counter
+% until |\subtablesend|.
+% \begin{macrocode}
+ \setcounter{table}{0}%
+% \end{macrocode}
+% Redefine macro |\thetable| to use subnumbering:
+% \begin{macrocode}
+ \gdef\thetable{\thesubfloattable}%
+% \end{macrocode}
+% Set counter to maximal number of subfloattables. Therefore local
+% redefinition of |\@setref| in order to change the warning and to set
+% the counter |subfloattablemax| correct. Thereafter call |\@setref|
+% using the |\ref| command:
+% \changes{2.10}{2002/09/06}{Add counting of subfloats}%
+% \begin{macrocode}
+ \ifsubfloat@countmax
+ {\def\@setref##1##2##3{%
+ \ifx##1\relax
+ \protect\G@refundefinedtrue
+ \setcounter{subfloattablemax}{0}%
+ \PackageWarningNoLine{subfloat}{Reference `##3' on page
+ \thepage \space undefined\MessageBreak
+ (count subfloattables)}%
+ \else
+ \setcounter{subfloattablemax}{\expandafter\@firstoftwo##1}%
+ \fi}%
+ \ref{subfloat@@table\table@value}}%
+ \fi
+% \end{macrocode}
+% Redefine the macro |\p@subtable| (from |subfigure.sty|) in order to
+% generate correct labels for subtables:
+% \changes{2.01}{2002/09/06}{Add support for subfigure.sty}%
+% \begin{macrocode}
+%% \@ifpackageloaded{subfigure}{%
+ \let\p@subtable=\thesubfloattable
+%% }{}%
+% \end{macrocode}
+% Ignore spaces:
+% \begin{macrocode}
+ \ignorespaces
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\subtablesend}
+% \changes{2.12}{2002/10/30}{Remove the corrupt greater sign}%
+% Defining the macro |\thetablesend|:
+% \begin{macrocode}
+\newcommand{\subtablesend}{%
+% \end{macrocode}
+% Check if |\subtablesend| may be called here:
+% \changes{2.11}{2002/09/10}{Test for nesting of subfloatfigure areas}%
+% \begin{macrocode}
+\ifinsubfloattables
+\else
+ \PackageError{subfloat}{Cannot stop subfloattables outside
+ a\MessageBreak subfloatfigure area}{You probably have used
+ \string\subtablesend\space or \string\end{subtables} without
+ starting a^^Jsubfloatfigure area using the same environment or
+ \string\subtablesbegin.}%
+\fi
+% \end{macrocode}
+% Set testing boolean to false:
+% \changes{2.11}{2002/09/10}{Test for nesting of subfloatfigure areas}%
+% \begin{macrocode}
+\global\insubfloattablesfalse
+% \end{macrocode}
+% Write the number of subfloattables into the |aux| file:
+% \changes{2.10}{2002/09/06}{Add counting of subfloats}%
+% \begin{macrocode}
+ \ifsubfloat@countmax
+ \subfloat@tablelabel{subfloat@@table\table@value}%
+ \fi
+% \end{macrocode}
+% Set counter |table| back to original value:
+% \begin{macrocode}
+ \setcounter{table}{\table@value}%
+% \end{macrocode}
+% Restore the original macro |\thetable|:
+% \begin{macrocode}
+ \global\let\thetable=\thetable@original
+% \end{macrocode}
+% Restore the original macro |\p@subtable| (from |subfigure.sty|):
+% \changes{2.01}{2002/09/06}{Add support for subfigure.sty}%
+% \begin{macrocode}
+%% \@ifpackageloaded{subfigure}{%
+ \let\p@subtable=\thetable
+%% }{}%
+% \end{macrocode}
+% Ignore spaces:
+% \begin{macrocode}
+ \ignorespaces
+}
+%%
+% \end{macrocode}
+% \end{macro}
+%
+% Introduce the counter for the number of subfloattables.
+% If both the option |countmax| is not used and this counter is tried
+% to be used, an not understandable error message is generated (e.g.\
+% ``! Missing number, treated as zero''. There has been code that
+% produced a nice error message, but it was incompatible to tabularx
+% (namely the command |\cl@@ckpt|).
+% \changes{2.10}{2002/09/06}{Add counting of subfloats}%
+% \changes{2.13}{2002/12/16}{Remove generation of error message
+% because of incompatibility with tabularx}%
+% \begin{macrocode}
+\ifsubfloat@countmax
+ \newcounter{subfloattablemax}
+%\else
+% \newcounter{subfloattablemax}
+% \let\orig@c@subfloattablemax=\c@subfloattablemax
+% \def\c@subfloattablemax{\orig@c@subfloattablemax
+% \PackageError{subfloat}{Counter subfloattablemax used
+% without\MessageBreak
+% package option countmax}{The counter subfloattablemax may
+% only be used with the package option\MessageBreak
+% countmax. Normally this error happens when
+% \string\thesubfloattable\space is redefined.}}
+\fi
+% \end{macrocode}
+% \begin{macro}{\subfloat@tablelabel}
+% This command makes a label for the current table, always with an
+% arabic number:
+% \changes{2.10}{2002/09/06}{Add counting of subfloats}%
+% \begin{macrocode}
+\ifsubfloat@countmax
+ \newcommand*\subfloat@tablelabel[1]{\@bsphack
+ \protected@write\@auxout{}%
+ {\string\newlabel{#1}{{\the\c@table}{\thepage}}}%
+ \@esphack}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% The end of the package:
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+% \iffalse
+%</package>
+% \fi
+% \Finale
+
diff --git a/macros/latex/contrib/subfloat/subfloat.ins b/macros/latex/contrib/subfloat/subfloat.ins
new file mode 100644
index 0000000000..e1048f2a21
--- /dev/null
+++ b/macros/latex/contrib/subfloat/subfloat.ins
@@ -0,0 +1,21 @@
+\def\batchfile{subfloat.ins}
+\input docstrip.tex
+\preamble
+
+ subfloat package
+
+ Copyright 1999, 2002 Harald Harders
+
+ This program can be redistributed and/or modified under the terms
+ of the LaTeX Project Public License Distributed from CTAN
+ archives in directory macros/latex/base/lppl.txt; either
+ version 1 of the License, or any later version.
+
+ h.harders@tu-bs.de
+
+\endpreamble
+% Files
+%%%%%%%%%%%%%%%%%%%%%%
+\generateFile{subfloat.sty}{f}{\from{subfloat.dtx}{package}}
+
+\Msg{* Ready}
diff --git a/macros/latex/contrib/subfloat/subfloat.pdf b/macros/latex/contrib/subfloat/subfloat.pdf
new file mode 100644
index 0000000000..fdb0fb171c
--- /dev/null
+++ b/macros/latex/contrib/subfloat/subfloat.pdf
Binary files differ