summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/caption/caption2.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-05-31 16:48:45 +0000
committerKarl Berry <karl@freefriends.org>2006-05-31 16:48:45 +0000
commit5183558ea817194c76ec71a3c8310ae6f06f5a69 (patch)
tree93072135851a0cd8583735dc3807752e76c65f3b /Master/texmf-dist/source/latex/caption/caption2.dtx
parent96d66bf64706ae450b1d2f7993ccfbff038c232d (diff)
caption 3.0j
git-svn-id: svn://tug.org/texlive/trunk@1627 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/caption/caption2.dtx')
-rw-r--r--Master/texmf-dist/source/latex/caption/caption2.dtx829
1 files changed, 808 insertions, 21 deletions
diff --git a/Master/texmf-dist/source/latex/caption/caption2.dtx b/Master/texmf-dist/source/latex/caption/caption2.dtx
index c96a7635a23..4ac3b7c8ed6 100644
--- a/Master/texmf-dist/source/latex/caption/caption2.dtx
+++ b/Master/texmf-dist/source/latex/caption/caption2.dtx
@@ -2,7 +2,7 @@
%
% This is file `caption2.dtx'.
%
-% Copyright (C) 1994-2004 Axel Sommerfeldt (caption@sommerfeldt.net)
+% Copyright (C) 1994-2005 Axel Sommerfeldt (caption@sommerfee.de)
%
% --------------------------------------------------------------------------
%
@@ -27,6 +27,7 @@
%
% \iffalse
%<*driver>
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\documentclass{ltxdoc}
\setlength\parindent{0pt}
\setlength\parskip{\smallskipamount}
@@ -40,6 +41,8 @@
%
\usepackage{caption2}[2004/04/16]
%
+%<+driver>\OnlyDescription
+%
\begin{document}
\DocInput{caption2.dtx}
\end{document}
@@ -55,8 +58,8 @@
% \GetFileInfo{caption2.sty}
% \title{The \thispackage\ package\thanks{This package has version number
% \fileversion, last revised \filedate.}}
-% \author{Axel Sommerfeldt\\\texttt{caption@sommerfeldt.net}}
-% \date{2004/08/17}
+% \author{Axel Sommerfeldt\\\texttt{caption@sommerfee.de}}
+% \date{2005/11/02}
% \maketitle
%
% \changes{v2.0}{ 9 Oct 95}{New experimental version: Many new commands and features}
@@ -66,30 +69,62 @@
% \changes{v2.1a}{12 Nov 03}{Some minor bug fixes and improved compatibility to v2.0}
% \changes{v2.1b}{16 Apr 04}{Some minor bug fixes and improved compatibility to v2.0}
% \changes{v2.1c}{10 May 04}{Some minor bug fixes and improved compatibility to v2.0}
+% \changes{v2.1d}{ 3 Oct 05}{Some superfluous brackets removed; warning added}
%
% \providecommand\LaTeXcomp{The \LaTeX{} Companion}
%
% \section*{This package is obsolete!}
%
% The \package{caption2} package used to be an experimental side-version of
-% the regular \package{caption} package and has been superseed by the new
-% release of the regular \package{caption} package version \mbox{3.0} in
-% December 2003.
+% the regular \package{caption} package. It was made public as beta test version
+% without documentation in 1995 because of the demand for new features and
+% adaptations to other packages like the \package{longtable} and
+% \package{subfigure} package.
+%
+% Even in the next seven years I found no time to reintegrate some of the
+% well-tried features into the regular \package{caption} package. So I
+% decided to release a version $2.1$ of the \package{caption2} package in 2002
+% instead, which included some minor bug fixes and adaptations to the new
+% version $2.1$ of the \package{subfigure} package. Furthermore I started
+% to write a documentation for this package, but unfortunately did not get
+% very far with this\ldots
%
-% \package{caption2} is still some kind of supported, that means it will be
-% part of future releases and bugs will still be fixed, so existing documents
-% using this package will still compile. But I will \emph{not} answer
-% questions about this package anymore except questions on migrating to the
-% regular version of the \package{caption} package. And it will \emph{not} be
-% adapted or enhanced in the future.
+% In 2003 I finally found some (more) time, so a new regular release $3.0$
+% of the \package{caption} package could be build with massive help from
+% Frank Mittelbach\cite{A-W:GMS94} and Steven Cochran\cite{subfigure}.
+% It was released in December 2003 and superseded the neglected
+% \package{caption2} package.
+%
+% {\small (In parallel, Steven Cochran released the \package{subfig} package which
+% superseded the \package{subfigure} package.)}
%
% So please don't use this package for new documents. It's old, it's obsolete
% and it starts to begin smell bad!
-%
% Please ignore all hints in books or other documents which try to tell you
% that the \package{caption2} package should be used instead of the
% \package{caption} package -- these hints are outdated since December 2003.
%
+% \section*{How to migrate to the regular \package{caption} package?}
+%
+% Usually replacing \package{caption2} by \package{caption} is sufficient
+% because the \package{caption} package emulates most of the options and
+% commands of the \package{caption2} package.
+% If you get some errors or wired results afterwards, please take a closer
+% look at the \package{caption} package documentation which will hopefully
+% help you clearing these problems.
+% If all this should fail you can write me an e-mail asking for help.
+%
+% \section*{What will happen to this package?}
+%
+% The \package{caption2} package is still some kind of supported, that means
+% it will be part of future releases and bugs will still be fixed so existing
+% documents using this package will still compile.
+% But it will \emph{not} be enhanced in the future or adapted to future versions
+% of foreign packages.
+%
+% This means migrating to the actual \package{caption} package should not be
+% necessary for old documents.
+%
% \StopEventually{}
%
% \DoNotIndex{\\,\_,\ ,\@@par}
@@ -135,33 +170,114 @@
% \clearpage
%
% \section{The Implementation}
-% (not documented anymore)
% \iffalse
%<*package>
% \fi
%
+% \subsection{Identificaton}
+%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{caption2}[2004/05/10 v2.1c Customising captions (AS)]
-%\PackageWarning{caption2}{THIS PACKAGE IS OBSOLETE, USE caption INSTEAD!}
+\ProvidesPackage{caption2}[2005/10/03 v2.1d Customising captions (AS)]
+\PackageWarning{caption2}{%
+ THIS PACKAGE IS OBSOLETE, PLEASE USE caption INSTEAD}
+% \end{macrocode}
+%
+% \subsection{Preliminary declarations}
+%
+% \begin{macro}{\captionfont}
+% \begin{macro}{\captionlabelfont}
+% \cs{captionfont} and \cs{captionlabelfont} will hold the font specifications for the caption.
+% \begin{macrocode}
\newcommand*\captionfont{}
\newcommand*\captionlabelfont{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\captionlabeldelim}
+% \begin{macro}{\captionlabelsep}
+% \cs{captionlabeldelim} \& \cs{captionlabelsep} will hold the iterim
+% space between caption label and text.
+% (\cs{captionlabeldelim} will be typeset within \cs{captionlabelfont},
+% \cs{captionlabelsep} not.)
+% \begin{macrocode}
\newcommand*\captionlabeldelim{}
\newcommand*\captionlabelsep{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\captionsize}
+% The macro \cs{captionsize} is obsolete since v1.4 of the \textsf{caption} package,
+% but we still support it to provide backward compatibility.
+% \begin{macrocode}
\newcommand*\captionsize{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\captionmargin}
+% \begin{macro}{\captionwidth}
+% \begin{macro}{\ifcaptionwidth}
+% Either \cs{captionmargin} (with specifies an extra margin) or \cs{captionwidth}
+% (with specifies an explicit width) can be set, therefore we need the flag \cs{ifcaptionwidth}
+% to determine with parameter we should pay attention to.
+% \begin{macrocode}
\newdimen\captionmargin
\newdimen\captionwidth
\newif\ifcaptionwidth
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\captionindent}
+% \cs{captionindent} will be used in caption style \texttt{indent} and specifies the indention
+% after the first line.
+% \begin{macrocode}
\newdimen\captionindent
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifcaptionlabel}
+% \begin{macro}{\ifonelinecaptions}
+% \begin{macro}{\ifignoreLTcapwidth}
+% More flags. If \cs{ifcaptionlabel} is not set the caption label should be suppressed;
+% we need this flag to support the \cs{caption*} command.
+% If \cs{ifonelinecaptions} is set we support the \LaTeX\ base style 'one line captions',
+% that means the caption will be typeset centered if it fits to one line.
+% If \cs{ifignoreLTcapwidth} is set we ignore the \cs{LTcapwidth} of \textsf{longtable}.
+% \changes{v2.1}{20 Feb 02}{New ifs \cs{ifcaptionlabel} and \cs{ifignoreLTcapwidth}}
+% \begin{macrocode}
\newif\ifcaptionlabel\captionlabeltrue
\newif\ifonelinecaptions
\newif\ifignoreLTcapwidth
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\setcaptionmargin}
+% \begin{macro}{\setcaptionwidth}
+% User-friendly commands to set the caption margin resp.\ width.
+% Note that they additionally set the \cs{ifcaptionwidth} flag.
+% \begin{macrocode}
\newcommand*\setcaptionmargin{%
\captionwidthfalse
\setlength\captionmargin}
\newcommand*\setcaptionwidth{%
\captionwidthtrue
\setlength\captionwidth}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\normalcaptionparams}
+% \cs{normalcaptionparams} resets all caption related parameters to it's normal default values.
+% \cs{captionfont} will be set to \cs{captionsize} so setting the obsolete \cs{captionsize} will still work.
+% Same story with \cs{captiondelim} and the obsolete \cs{captionlabeldelim}.
+% \changes{v2.1}{29 Jan 02}{New command \cs{normalcaptionparams}}
+% \begin{macrocode}
\newcommand*\normalcaptionparams{%
\let\captionsize\@empty
\renewcommand*\captionfont{\captionsize}%
@@ -170,12 +286,28 @@
\renewcommand*\captionlabelsep{\space}%
\setcaptionmargin\z@\setlength\captionindent\z@
\onelinecaptionstrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@eh}
+% Some commands will produce an error message, use this as help text.
+% \begin{macrocode}
\newcommand*\caption@eh{%
If you do not understand this error, please take a closer look\MessageBreak
at the documentation of the `caption2' package.\MessageBreak
\@ehc}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\defcaptionstyle}
+% \begin{macro}{\newcaptionstyle}
+% \begin{macro}{\renewcaptionstyle}
+% These macros will define a new caption style. \cs{newcaptionstyle} and \cs{renewcaptionstyle}
+% will additionally check if the caption style already exists or not.
+% \begin{macrocode}
\newcommand*\defcaptionstyle[1]{%
\@namedef{caption@@#1}}
+%
\newcommand*\newcaptionstyle[1]{%
\expandafter\ifx\csname caption@@#1\endcsname\relax
\expandafter\defcaptionstyle
@@ -184,6 +316,7 @@
\expandafter\@gobbletwo
\fi
{#1}}
+%
\newcommand*\renewcaptionstyle[1]{%
\expandafter\ifx\csname caption@@#1\endcsname\relax
\PackageError{caption2}{Caption style `#1' undefined}{\caption@eh}%
@@ -192,6 +325,16 @@
\expandafter\defcaptionstyle
\fi
{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dummycaptionstyle}
+% This macro will also define a new caption style, but a one which is based on the
+% actual set caption style. Therefore you can't set a caption style made with this
+% command with \cs{captionstyle} -- we check this to avoid an endless recursion.
+% \begin{macrocode}
\newcommand*\dummycaptionstyle[2]{%
\defcaptionstyle{#1}{%
\expandafter\ifx\csname caption@@\caption@style\expandafter\endcsname%
@@ -202,14 +345,35 @@
before you can select\MessageBreak it with \protect\captionstyle.
\space\caption@eh}%
\else
- #2\usecaptionstyle{\caption@style}%
+ #2\usecaptionstyle\caption@style
\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\captionstyle}
+% \cs{captionstyle} sets the actual caption style. It includes a check if the given caption
+% style is defined or not.
+% \begin{macrocode}
\newcommand*\captionstyle[1]{%
\expandafter\ifx\csname caption@@#1\endcsname\relax
\PackageError{caption2}{Undefined caption style `#1'}{\caption@eh}%
\else
\def\caption@style{#1}%
\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{style `normal'}
+% \begin{macro}{style `center'}
+% \begin{macro}{style `centerlast'}
+% \begin{macro}{style `flushleft'}
+% \begin{macro}{style `flushright'}
+% \begin{macro}{style `hang'}
+% \begin{macro}{style `indent'}
+% The predefined caption styles `normal', `center', `flushleft', `flushright', `centerlast',
+% `hang', `hang+X', and `indent'. Because they are quite similar they all are based on the macro
+% \cs{caption@make}.
+% \begin{macrocode}
\newcaptionstyle{normal}{\caption@make{normal}}
\newcaptionstyle{center}{\caption@make{center}}
\newcaptionstyle{centerlast}{\caption@make{centerlast}}
@@ -220,47 +384,155 @@
\newcaptionstyle{hang+centerlast}{\caption@make{hang@centerlast}}
\newcaptionstyle{hang+flushleft}{\caption@make{hang@flushleft}}
\newcaptionstyle{indent}{\caption@make{indent}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\caption@makecaption}
+% Our predefined caption styles. \cs{caption@makecaption} takes the style
+% name as parameter, it does the common stuff and calls a macro
+% (build out of the style name) to do the uncommon stuff if neccessary.
+% \changes{v2.1}{26 Feb 02}{Renamed from \cs{caption@make} to \cs{caption@makecaption}}
+% \changes{v2.1b}{16 Apr 04}{We offer and use \cs{caption@make}, again}
+% \changes{v2.1c}{10 May 04}{Bugfix: Extra \cs{par} added}
+% \begin{macrocode}
\newcommand*\caption@makecaption[1]{%
\usecaptionmargin
+%
\ifcaptionlabel
\def\caption@label{%
{\captionlabelfont\captionlabel\captionlabeldelim}\captionlabelsep}%
\else
\let\caption@label\@empty
\fi
+%
\captionfont
\onelinecaption
{\caption@label\captiontext}%
{\parbox[b]\captionlinewidth{\strut\@nameuse{caption@@@#1}\par}\par}}
\newcommand*\caption@make{\caption@makecaption}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.1}{26 Feb 02}{Removed all extra parboxes from caption styles}
+% \changes{v2.1a}{12 Nov 03}{\ldots and put the parbox into \cs{caption@makecaption} instead}
+%
+% \begin{macro}{\caption@@@normal}
+% The `normal' caption style. Just typeset caption (label \& text) as paragraph.
+% \begin{macrocode}
\newcommand*\caption@@@normal{%
\caption@label\captiontext}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@@@center}
+% The `center' caption style. Typeset the caption centered within a parbox.
+% \begin{macrocode}
\newcommand*\caption@@@center{%
\centering\caption@label\captiontext}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@@@centerlast}
+% The `centerlast' caption style.
+% The idea how to do this was taken from Br\"uggemann-Klein\cite{Anne},
+% it is also mentioned in Kopka\cite[p227]{Kopka-E}.
+% \begin{macrocode}
\newcommand*\caption@centerlast{%
\advance\leftskip by 0pt plus 1fil%
\advance\rightskip by 0pt plus -1fil%
\parfillskip0pt plus 2fil\relax}
+%
\newcommand*\caption@@@centerlast{%
\caption@centerlast\caption@label\captiontext}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@@@flushleft}
+% The `flushleft' caption style. Typeset the caption raggedright within a parbox.
+% \begin{macrocode}
\newcommand*\caption@@@flushleft{%
\raggedright\caption@label\captiontext}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@@@flushright}
+% The `flushright' caption style. Typeset the caption raggedleft within a parbox.
+% \begin{macrocode}
\newcommand*\caption@@@flushright{%
\raggedleft\caption@label\captiontext}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@@@hang}
+% \begin{macro}{\caption@hangplus}
+% The `hang' caption style.
+% This code was taken from \LaTeXcomp\cite[p155]{A-W:GMS94} and modified.
+% \begin{macrocode}
\newcommand*\caption@@@hang{%
\sbox\@tempboxa{\caption@label}%
\hangindent\wd\@tempboxa\noindent
\usebox\@tempboxa\caption@hangplus\captiontext}
+%
\newcommand*\caption@hangplus{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\caption@@@hang@center}
+% The `hang+flushleft' caption style.
+% \begin{macrocode}
\newcommand*\caption@@@hang@center{%
\let\caption@hangplus\centering\caption@@@hang}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@@@hang@centerlast}
+% The `hang+flushleft' caption style.
+% \begin{macrocode}
\newcommand*\caption@@@hang@centerlast{%
\let\caption@hangplus\caption@centerlast\caption@@@hang}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@@@hang@flushleft}
+% The `hang+flushleft' caption style.
+% \begin{macrocode}
\newcommand*\caption@@@hang@flushleft{%
\let\caption@hangplus\raggedright\caption@@@hang}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@@@indent}
+% The `indent' caption style. Is is quite like the `hang' style but the
+% indention is given as \cs{captionindent}.
+% \begin{macrocode}
\newcommand*\caption@@@indent{%
\hangindent\captionindent\noindent
\caption@label\captiontext}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Options}
+%
+% \begin{macro}{normal}
+% \begin{macro}{center}
+% \begin{macro}{centerlast,anne}
+% \begin{macro}{flushleft}
+% \begin{macro}{flushright}
+% \begin{macro}{hang,isu}
+% \begin{macro}{indent}
+% These options will set the caption style.
+% (`normal' is the default one.)
+%
+% The options `anne' and `isu' are for
+% backward compatibility only.
+% \begin{macrocode}
\DeclareOption{normal}{\captionstyle{normal}}
\DeclareOption{center}{\captionstyle{center}}
\DeclareOption{centerlast}{\captionstyle{centerlast}}
@@ -273,12 +545,41 @@
\DeclareOption{hang+flushleft}{\captionstyle{hang+flushleft}}
\DeclareOption{isu}{\ExecuteOptions{hang}}
\DeclareOption{indent}{\captionstyle{indent}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{scriptsize}
+% \begin{macro}{footnotesize}
+% \begin{macro}{small}
+% \begin{macro}{normalsize}
+% \begin{macro}{large,Large}
+% These options will set the caption size. We use \cs{g@addto@macro} so more that one
+% option can be set.
+% \begin{macrocode}
\DeclareOption{scriptsize}{\g@addto@macro\captionsize\scriptsize}
\DeclareOption{footnotesize}{\g@addto@macro\captionsize\footnotesize}
\DeclareOption{small}{\g@addto@macro\captionsize\small}
\DeclareOption{normalsize}{\g@addto@macro\captionsize\normalsize}
\DeclareOption{large}{\g@addto@macro\captionsize\large}
\DeclareOption{Large}{\g@addto@macro\captionsize\Large}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{up,it,sl,sc}
+% \begin{macro}{md,bf}
+% \begin{macro}{rm,sf,tt}
+% These options will set the caption label.
+% \begin{macrocode}
\DeclareOption{up}{\g@addto@macro\captionlabelfont\upshape}
\DeclareOption{it}{\g@addto@macro\captionlabelfont\itshape}
\DeclareOption{sl}{\g@addto@macro\captionlabelfont\slshape}
@@ -288,21 +589,91 @@
\DeclareOption{rm}{\g@addto@macro\captionlabelfont\rmfamily}
\DeclareOption{sf}{\g@addto@macro\captionlabelfont\sffamily}
\DeclareOption{tt}{\g@addto@macro\captionlabelfont\ttfamily}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{oneline}
+% \begin{macro}{nooneline}
+% These options will set the `oneline' flag.
+% (`oneline' is the default.)
+% \begin{macrocode}
\DeclareOption{oneline}{\onelinecaptionstrue}
\DeclareOption{nooneline}{\onelinecaptionsfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\caption@package}
+% A helper macro, a value of 1 within parameter \#2 will activate the support
+% of the package given in parameter \#1, a value of 0 will deactivate it.
+% \begin{macrocode}
\newcommand*\caption@package[1]{\@namedef{caption@pkt@#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{float}
+% \begin{macro}{longtable}
+% \begin{macro}{subfigure}
+% \changes{v2.1}{19 Feb 02}{New options for interaction with other packages}
+% These options will enable or suppress the support of the packages
+% \textsf{float}, \textsf{longtable}, and \textsf{subfigure}.
+% \begin{macrocode}
\DeclareOption{float}{\caption@twozerofalse\caption@package{float}{1}}
\DeclareOption{longtable}{\caption@twozerofalse\caption@package{longtable}{1}}
\DeclareOption{subfigure}{\caption@twozerofalse\caption@package{subfigure}{1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{none}
+% \begin{macro}{all}
+% These options will enable or suppress the support of all the above packages.
+% \begin{macrocode}
\DeclareOption{none}{\caption@twozerofalse
\caption@package{float}{0}\caption@package{longtable}{0}%
\caption@package{subfigure}{0}}
\DeclareOption{all}{\ExecuteOptions{float,longtable,subfigure}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{ruled}
+% \begin{macro}{boxed}
+% The option `ruled' introduced in \textsf{caption} v1.2 is obsolete now, but
+% we will still support it. The option `boxed' was introduced in version 2.0
+% and is obsolete now, too.
+% \begin{macrocode}
\newif\ifcaption@ruled
\DeclareOption{ruled}{\caption@ruledtrue}
\DeclareOption{boxed}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{ignoreLTcapwidth}
+% This option will make the caption code ignore the setting of \cs{LTcapwidth}
+% and use the setting of \cs{setcaptionmargin} or \cs{setcaptionwidth} instead.
+% \begin{macrocode}
\DeclareOption{ignoreLTcapwidth}{\ignoreLTcapwidthtrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{debug}
+% This option will put additional debug information in the log file.
+% \begin{macrocode}
\DeclareOption{debug}{\caption@debugtrue}
+% \end{macrocode}
+% \end{macro}
+%
+% That's it! Now set the default values and start processing the options.
+% (If \cs{caption@twozero} is set to true (default) we will emulate the package
+% load algorithm of \textsf{caption} v2.0: If the package is already loaded
+% patch it, otherwise do nothing.)
+% \changes{v2.1}{19 Feb 02}{\cs{ProcessOptions} changed to \cs{ProcessOptions*}}
+% \begin{macrocode}
\newif\ifcaption@debug
\newif\ifcaption@twozero
\normalcaptionparams
@@ -312,14 +683,65 @@
\ifcaption@twozero
\PackageInfo{caption2}{Running in caption2 v2.0 compatibility mode}
\fi
+% \end{macrocode}
+%
+% \subsection{More declarations}
+%
+% \begin{macro}{\captionof}
+% \begin{macro}{\captionof*}
+% \cs{captionof} resp.\ \cs{captionof*} will just set \cs{@captype} and do the normal
+% \cs{caption} resp.\ \cs{caption*}, so we can also typeset captions outside floating
+% environments.
+% \changes{v2.1}{19 Feb 02}{New commands \cs{captionof} and \cs{captionof*}}
+% \begin{macrocode}
\def\captionof{\@ifstar{\caption@of{\caption*}}{\caption@of\caption}}
\newcommand*\caption@of[2]{\def\@captype{#2}#1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\abovecaptionskip}
+% \begin{macro}{\belowcaptionskip}
+% Not all document classes define \cs{abovecaptionskip} and \cs{belowcaptionskip}
+% (like \textsf{ucthesis}), so we do it here if not already done.
+% \changes{v2.1}{19 Feb 02}{\cs{abovecaptionskip} and \cs{belowcaptionskip} will be defined if neccessary}
+% \begin{macrocode}
\@ifundefined{abovecaptionskip}{%
\newlength\abovecaptionskip\setlength\abovecaptionskip{10\p@}}{}
\@ifundefined{belowcaptionskip}{%
\newlength\belowcaptionskip\setlength\belowcaptionskip{0\p@}}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\captionlinewidth}
+% \changes{v2.1}{26 Feb 02}{Renamed from \cs{realcaptionwidth} to \cs{captionlinewidth}}
+% \changes{v2.1a}{12 Nov 03}{We offer \cs{realcaptionwidth}, again}
+% \begin{macro}{\captionlabel}
+% \begin{macro}{\captiontext}
+% These values are only set and used within the caption code itself.
+% \cs{captionlinewidth} will be set to the given vertical space for the caption,
+% normally this is \cs{linewidth}. (This value was called \cs{realcaptionwidth}
+% within \thispackage\ \mbox{2.0}, so we will offer this, too.)
+%
+% \cs{captionlabel} and \cs{captiontext} will be set to the caption label
+% resp.\ the caption text.
+% (Because \cs{captionlabel} and \cs{captiontext} will be locally defined with
+% \cs{def} we do not need to define them here.)
+% \begin{macrocode}
\newdimen\captionlinewidth
\newdimen\realcaptionwidth
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\usecaptionmargin}
+% A helper macro for caption style authors:
+% It calculates \cs{leftskip} and \cs{rightskip} out of
+% \cs{captionlinewidth} and \cs{captionmargin} resp.\ \cs{captionwidth}.
+% Also \cs{captionlinewidth} will be corrected to the appropriate value.
+% \begin{macrocode}
\newcommand*\usecaptionmargin{%
\ifcaptionwidth
\leftskip\captionlinewidth
@@ -333,15 +755,33 @@
\advance\captionlinewidth by -2\captionmargin
\fi
\realcaptionwidth\captionlinewidth}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\onelinecaption}
+% This macro definition helps setting captions the \LaTeX\ base classes way:
+% If \cs{ifonelinecaptions} is set and the 1st argument fits within \cs{captionlinewidth},
+% we typeset it centered -- otherway we typeset the 2nd argument.
+% (We use the savebox \cs{@tempboxa} as helper for this.)
+% \begin{macrocode}
\newcommand\onelinecaption[1]{%
\let\next\@firstofone
\ifonelinecaptions
\sbox\@tempboxa{#1}%
\ifdim\wd\@tempboxa >\captionlinewidth
\else
- \def\next{{\centering\usebox{\@tempboxa}\par}\@gobble}%
+ \def\next{{\centering\usebox\@tempboxa\par}\@gobble}%
\fi
\fi\next}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\usecaptionstyle}
+% First we check if we are inside a caption -- if \cs{captiontext} is undefined we are not.
+% If we are we call the appropriate caption definition.
+%
+% \changes{v2.1b}{16 Apr 04}{Missing percent added (and extra space removed)}
+% \begin{macrocode}
\newcommand*\usecaptionstyle[1]{%
\@ifundefined{captiontext}{%
\PackageError{caption2}{You can't use \protect#1
@@ -354,14 +794,39 @@
{\PackageError{caption2}{Caption style `#1' undefined}{\caption@eh}}%
{\@nameuse{caption@@#1}}%
}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makecaption}
+% This is the heart of the \thispackage\ package -- the redefinition of the
+% core caption code. It was taken from the \LaTeXe\ standard classes and modified.
+% It's very easy -- apart from using \cs{abovecaptionskip} and \cs{belowcaptionskip}
+% we just set \cs{captionlinewidth}, \cs{captionlabel} and \cs{captiontext}
+% to its appropriate values and using the code of the actual caption style via
+% \cs{usecaptionstyle}.
+% \begin{macrocode}
\renewcommand\@makecaption[2]{%
\vskip\abovecaptionskip
\captionlinewidth\hsize
\realcaptionwidth\hsize
\def\captionlabel{#1}%
\def\captiontext{#2}%
- \usecaptionstyle{\caption@style}%
+ \usecaptionstyle\caption@style
\vskip\belowcaptionskip}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Support of other packages}
+%
+% \begin{macro}{\caption@package}
+% This macro will execute the code needed to support the package
+% named within argument \#1. The parameter \#2 is the command
+% which shows if the package is loaded -- it is defined, it is
+% already loaded, otherwise not. The parameter \#3 contains code
+% which will be executed if no support is required -- this is for
+% cleanup purposes. The final parameter \#4 contains the code itself.
+% \changes{v2.1c}{9 May 04}{Compatibility warning removed}
+% \begin{macrocode}
\renewcommand*\caption@package[3]{%
\if1\@nameuse{caption@pkt@#1}%
\@ifundefined{#2}%
@@ -382,12 +847,33 @@
\fi\fi\fi
\fi
\next}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Support of the \puresf{float} package}
+%
+% \begin{macrocode}
\caption@package{float}{floatc@plain}{}{%
\ifx\floatc@plain\relax
\PackageWarning{caption2}{%
Option `float' was set but there is no float package loaded}
\else
\PackageInfo{caption2}{float package v1.2 (or newer) detected}
+% \end{macrocode}
+%
+% \begin{macro}{\caption@floatc}
+% First we define a helper macro to typeset the caption via \cs{usecaptionstyle},
+% the 1st parameter is the caption style name,
+% the 2nd and 3rd are the caption label and text.
+%
+% \textsf{caption2} has the goal not to modify the output just by
+% loading it (without options), therefore we have to be tricky here to
+% support \cs{@fs@cfont} which is in fact the same as our \cs{captionlabelfont}.
+% So we test if a \cs{captionlabelfont} has been set by the user -- if not
+% \cs{@fs@cfont} will be used, otherwise \cs{captionlabelfont}.
+%
+% \changes{v2.1b}{19 Mar 04}{\cs{realcaptionwidth}$=$\cs{hsize} was missing here}
+% \begin{macrocode}
\newcommand\caption@floatc[3]{%
\ifx\captionlabelfont\@empty
\let\captionlabelfont\@fs@cfont
@@ -397,7 +883,29 @@
\def\captionlabel{#2}%
\def\captiontext{#3}%
\usecaptionstyle{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\floatc@plain}
+% Now we can redefine the caption code of the \textsf{float} package.
+% Here we redefine \cs{floatc@plain} to use our caption code, so
+% \texttt{plain} and \texttt{boxed} float types will use the actual
+% caption style set by the user.
+% \begin{macrocode}
\renewcommand*\floatc@plain{\caption@floatc{\caption@style}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\floatc@ruled}
+% The support of the \texttt{ruled} float type is a little
+% more complex. First we define a caption style `ruled' so the end-user
+% can change this caption style afterwards. If the (obsolete) option
+% `ruled' is set, we define it in a \textsf{caption} v1.x compatible way,
+% otherwise we define it in a \textsf{float} compatible way.
+%
+% Then we redefine \cs{floatc@ruled} so the caption style `ruled' will
+% be used.
+% \begin{macrocode}
\ifcaption@ruled
\dummycaptionstyle{ruled}{\onelinecaptionsfalse\setcaptionmargin{\z@}}%
\else
@@ -406,7 +914,34 @@
{\@fs@cfont\captionlabel}\space%
\fi\captiontext\par}%
\fi
+%
\renewcommand*\floatc@ruled{\caption@floatc{ruled}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@of}
+% Typesetting captions outside floats is not so easy with redefined floats,
+% because
+% \begin{itemize}
+% \item The caption code of the \textsf{float} package needs not only
+% \cs{@captype} defined, but \cs{@fs@capt} (the command which will typeset the
+% caption itself) either.
+% \item The caption is only saved within a \cs{vbox}, so the \textsf{float}
+% package can typeset the caption later at it's float style specific place
+% (that means at top or at the bottom of the float).
+% \end{itemize}
+%
+% Here is the new code: First we check if it's a restyled float by checking if
+% \cs{fst@<floattype>} is defined. If yes, we use this command (it will define
+% \cs{@fs@capt}).
+% Then we execute \cs{@float@setevery}, if it exists (that means we are
+% dealing with the \textsf{float} package 1.3 or newer here).
+% Now comes the basic trick:
+% We redefine the caption typesetting command \cs{@fs@capt}, so it will close
+% the \cs{vbox}, typeset the caption outside the vbox and finally start the
+% group again so the original \cs{@fs@capt} is happy with closing the group.
+%
+% \begin{macrocode}
\renewcommand*\caption@of[2]{\def\@captype{#2}%
\@ifundefined{fst@#2}{}{%
\@nameuse{fst@#2}%
@@ -414,19 +949,54 @@
\let\caption@fs@capt\@fs@capt
\let\@fs@capt\caption@of@float}%
#1}
+% \end{macrocode}
+%
+% \begin{macrocode}
\newcommand\caption@of@float[2]{\egroup
\vskip\abovecaptionskip
\normalsize\caption@fs@capt{#1}{#2}%
\vskip\belowcaptionskip
\bgroup}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
\fi}
+% \end{macrocode}
+%
+% \subsubsection{Support of the \puresf{longtable} package}
+%
+% \begin{macrocode}
\caption@package{longtable}{LT@makecaption}{}{%
\ifx\LT@makecaption\relax
\PackageWarning{caption2}{%
Option `longtable' was set but there is no longtable package loaded}
\else
\PackageInfo{caption2}{longtable package v3.15 (or newer) detected}
+% \end{macrocode}
+%
+% \begin{macro}{\LT@makecaption}
+% David Carlisle was so kind to introduce a macro called
+% \cs{LT@makecaption} in version 3.15 of the \textsf{longtable}
+% package which typeset the caption and can be easily redefined.
+%
+% This is the original definition:
+% \begin{quote}
+% |\def\LT@makecaption#1#2#3{%|\\
+% | \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%|\\
+% | |$\langle$\textit{typeset} |#1{#2: }#3| \textit{as caption}$\rangle$\\
+% | \endgraf\vskip\baselineskip}%|\\
+% | \hss}}}|
+% \end{quote}
+%
+% So we do here:
+% First we define a new (dummy) caption style `longtable',
+% than we redefine \cs{LT@makecaption} so this style will be used.
+% (Remember: |#1| is |\@gobble| in star form of |\caption|,
+% and |\@firstofone| otherwise.)
+% \begin{macrocode}
\dummycaptionstyle{longtable}{}
+%
\renewcommand\LT@makecaption[3]{%
\LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\hsize{%
\ifignoreLTcapwidth
@@ -441,7 +1011,26 @@
\usecaptionstyle{longtable}%
\endgraf\vskip\baselineskip}%
\hss}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
\fi}
+% \end{macrocode}
+%
+% \subsubsection{Support of the \puresf{subfigure} package}
+%
+% Some of the following code will not work within \cs{if},
+% because of the (yet) undefined \cs{if}\textit{xxx}s. So we simply define
+% the critical code within the helper commands \cs{setsubcapstyle}
+% and \cs{caption@makesubcaption} already here.
+%
+% \begin{macro}{\setsubcapstyle}
+% This sets the subcaptionstyle to a appropriate value.
+%
+% If \cs{ifsubcapraggedright} is undefined (it was introduced
+% into v2.1 of the \textsf{subfigure} package) we define it first.
+% \begin{macrocode}
\newcommand*\setsubcapstyle{%
\@ifundefined{subcapraggedrightfalse}{%
\newif\ifsubcapraggedright}{}%
@@ -464,6 +1053,42 @@
\else
\subcapstyle{normal}%
\fi\fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@makesubcaption}
+% This will typeset the subcaption.
+% We just set all our \cs{caption}\textit{xxx} values to
+% the values of \cs{subcap}\textit{xxx} and typeset the
+% caption like \textsf{subfigure} within a \cs{hbox},
+% but with the help of \cs{usecaptionstyle}.
+%
+% But this is not as easy as it seems. We typeset the caption like this:
+% \begin{quote}
+% |\captionfont|\\
+% | {\capionlabelfont\captionlabel\captionlabeldelim}%|\\
+% |\captionlabelsep\captiontext|
+% \end{quote}
+% Within \textsf{subfigure} 2.0 the caption will be set quite similar to:
+% \begin{quote}
+% |\subcapsize|\\
+% | {\subcaplabelfont\captionlabel}%|\\
+% |\space\captiontext|
+% \end{quote}
+% But within \textsf{subfigure} 2.1 this has changed to:
+% \begin{quote}
+% |\subcapsize|\\
+% | {\subcaplabelfont\captionlabel}%|\\
+% |\hskip\subfiglabelskip|\\
+% | {\subcapfont\captiontext}}|
+% \end{quote}
+% So we have to be tricky here: We set \cs{captionlabelfont} to \cs{normalfont} plus
+% \cs{subcapsize} \& \cs{subcaplabelfont}, so the font setting in \cs{captionfont}
+% will not affect the caption label in subfigure captions.
+%
+% Note that \cs{hfil} has changed to \cs{hss} from subfigure 2.0 to 2.1,
+% so we use \cs{caption@subfig@hss} instead. (We will define this later on.)
+% \begin{macrocode}
\newcommand\caption@makesubcaption[2]{%
\renewcommand*\captionfont{\subcapsize\subcapfont}%
\renewcommand*\captionlabelfont{\normalfont\subcapsize\subcaplabelfont}%
@@ -475,14 +1100,21 @@
\captionindent\subcapindent
\ifsubcapnooneline\onelinecaptionsfalse\else\onelinecaptionstrue\fi
\hbox to\@tempdima{%
- \caption@subfig@hss\parbox[t]{\@tempdima}{%
+ \caption@subfig@hss\parbox[t]\@tempdima{%
\captionlinewidth\@tempdima
\realcaptionwidth\@tempdima
\captionlabeltrue
\def\captionlabel{#1}%
\def\captiontext{\ignorespaces #2}%
- \usecaptionstyle{\caption@substyle}}%
+ \usecaptionstyle\caption@substyle}%
\caption@subfig@hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% If the subfigure support is not needed, we throw
+% the helper macros in the garbage can.
+%
+% \begin{macrocode}
\caption@package{subfigure}{@makesubfigurecaption}{%
\let\setsubcapstyle\undefined
\let\caption@makesubcaption\undefined}{%
@@ -492,9 +1124,36 @@
\let\setsubcapstyle\undefined
\let\caption@makesubcaption\undefined
\else
+% \end{macrocode}
+%
+% Some stuff has changed from version 2.0 to 2.1 of the
+% \textsf{subfigure} package, so we make a branch here.
+% If \cs{subcapfont} is undefined we assume v2.0,
+% otherwise we assume v2.1 or newer.
+%
+% \begin{macrocode}
\ifx\subcapfont\undefined
\PackageInfo{caption2}{subfigure package v2.0 detected}
+% \end{macrocode}
+%
+% \begin{macro}{\subcapfont}
+% We define \cs{subcapfont} here so we can use it later
+% in common code for \textsf{subfigure} v2.0 and v2.1 (or newer).
+% \begin{macrocode}
\let\subcapfont\@empty
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\subfigcapwidth}
+% \begin{macro}{\setsubcapmargin}
+% \begin{macro}{\setsubcapwidth}
+% Analogous to \cs{captionwidth}, \cs{setcaptionmargin}, and
+% \cs{setcaptionwidth} we define \cs{subfigcapwidth},
+% \cs{setsubcapmargin}, and \cs{setsubcapwidth}.
+%
+% Note: \cs{subfigcapmargin} is a command in v2.0 of \textsf{subfigure}.
+% So we make \cs{subfigcapwidth} a command, too.
+% \begin{macrocode}
\newcommand*\subfigcapwidth{\z@}
\newcommand*\setsubcapmargin{%
\subfigcapwidthfalse
@@ -502,10 +1161,40 @@
\newcommand*\setsubcapwidth{%
\subfigcapwidthtrue
\renewcommand*\subfigcapwidth}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\subcaplabelsep}
+% Analogous to \cs{captionlabelsep} we define \cs{subcaplabelsep}.
+% \begin{macrocode}
\newcommand*\subcaplabelsep{\space}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@subfig@hss}
+% This will be uses within the caption code itself.
+% \begin{macrocode}
\let\caption@subfig@hss\hfil
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
\else
\PackageInfo{caption2}{subfigure package v2.1 (or newer) detected}
+% \end{macrocode}
+%
+% \begin{macro}{\subfigcapwidth}
+% \begin{macro}{\setsubcapmargin}
+% \begin{macro}{\setsubcapwidth}
+% Analogous to \cs{captionwidth}, \cs{setcaptionmargin}, and
+% \cs{setcaptionwidth} we define \cs{subfigcapwidth},
+% \cs{setsubcapmargin}, and \cs{setsubcapwidth}.
+%
+% Note: \cs{subfigcapmargin} is a length in v2.1 of \textsf{subfigure}.
+% So we make \cs{subfigcapwidth} a length, too.
+% \begin{macrocode}
\newdimen\subfigcapwidth
\newcommand*\setsubcapmargin{%
\subfigcapwidthfalse
@@ -513,12 +1202,49 @@
\newcommand*\setsubcapwidth{%
\subfigcapwidthtrue
\setlength\subfigcapwidth}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\subcaplabelsep}
+% Analogous to \cs{captionlabelsep} we define \cs{subcaplabelsep}.
+% \begin{macrocode}
\newcommand*\subcaplabelsep{\hskip\subfiglabelskip}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption@subfig@hss}
+% This will be uses within the caption code itself.
+% \begin{macrocode}
\let\caption@subfig@hss\hss
+% \end{macrocode}
+%
+% \end{macro}
+% \begin{macrocode}
\fi
+% \end{macrocode}
+%
+% Here starts the common code for \textsf{subfigure} v2.0 and v2.1.
+%
+% \begin{macro}{\ifsubfigcapwidth}
+% \begin{macro}{\subcapindent}
+% \begin{macro}{\subcaplabeldelim}
+% Analogous to \cs{ifcaptionwidth}, \cs{captionindent} \& \cs{captionlabeldelim}
+% we define \cs{ifsubfigcapwidth}, \cs{subcapindent} \& \cs{subcaplabeldelim}
+% \begin{macrocode}
\newif\ifsubfigcapwidth
\newdimen\subcapindent
\newcommand*\subcaplabeldelim{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\subcapstyle}
+% Analogous to \cs{captionstyle} we define \cs{subcapstyle}
+% and set it (via \cs{setsubcapstyle}) to a appropriate value.
+% \begin{macrocode}
\newcommand*\subcapstyle[1]{%
\expandafter\ifx\csname caption@@#1\endcsname\relax
\PackageError{caption2}{Undefined caption style `#1'}{\caption@eh}%
@@ -526,11 +1252,41 @@
\def\caption@substyle{#1}%
\fi}
\setsubcapstyle
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@thesubfigure}
+% \begin{macro}{\@thesubtable}
+% The \textsf{subfigure} package makes use of \cs{subcaplabelfont} and
+% \cs{subfiglabelskip} within its \cs{@thesub}\textit{xxx} macros.
+% This is totally in contrast to the way the \textsf{caption2} package
+% handle these settings. So we redefine the \cs{@thesub}\textit{xxx}
+% to be just the plain label and nothing else.
+%
+% \begin{macrocode}
\renewcommand*\@thesubfigure{\thesubfigure}
\renewcommand*\@thesubtable{\thesubtable}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@makesubfigurecaption}
+% \begin{macro}{\@makesubtablecaption}
+% Now we are ready to redefine \cs{@makesubfigurecaption}.
+% \begin{macrocode}
\let\@makesubfigurecaption\caption@makesubcaption
\let\@makesubtablecaption\caption@makesubcaption
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
\fi}
+% \end{macrocode}
+%
+% That's all folks!
+%
+% \begin{macrocode}
\let\caption@package\undefined
% \end{macrocode}
%
@@ -538,6 +1294,37 @@
%</package>
% \fi
%
+% \begin{thebibliography}{9}
+% \bibitem{float}
+% Anselm Lingnau:
+% \textsl{An Improved Environment for Floats},
+% 2001/11/08
+% \bibitem{longtable}
+% David Carlisle:
+% \textsl{The longtable package},
+% 2000/10/22
+% \bibitem{rotating}
+% Sebastian Rahtz and Leonor Barroca:
+% \textsl{A style option for rotated objects in \LaTeX},
+% 1997/09/26
+% \bibitem{subfigure}
+% Steven Douglas Cochran:
+% \textsl{The subfigure package},
+% 2002/02/14
+% \bibitem{A-W:GMS94}
+% Michel Goossens, Frank Mittelbach and Alexander Samarin:
+% \newblock \textsl{The {\LaTeX} Companion},
+% \newblock Addison-Wesley, Reading, Massachusetts, 1994.
+% \bibitem{Anne}
+% Anne Br\"uggemann-Klein:
+% \textsl{Einf\"uhrung in die Dokumentverarbeitung},
+% B.G. Teubner, Stuttgart, 1989
+% \bibitem{Kopka-E}
+% Helmut Kopka:
+% \textsl{\LaTeX -- Erweiterungsm\"oglichkeiten},
+% 3. \"uberarbeitete Auf\/lage, Addison-Wesley, Bonn, 1991
+% \end{thebibliography}
+%
% \Finale
%
\endinput