% 
% This is file `caption-eng.tex'.
% 
% Copyright (C) 1994-2007 Axel Sommerfeldt (caption@sommerfee.de)
% 
% --------------------------------------------------------------------------
% 
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
% 
% This work has the LPPL maintenance status "maintained".
% 
% This Current Maintainer of this work is Axel Sommerfeldt.
% 
% This work consists of the files caption.ins, caption.dtx, caption2.dtx,
% ltcaption.dtx, and subcaption.dtx, the derived files caption.sty,
% caption2.sty, caption3.sty, ltcaption.sty, and subcaption.sty, and the
% user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex.
% 
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesFile{caption-eng.tex}[2007/12/23 v3.1f The caption package]
\hbadness=9999 \newcount\hbadness \hfuzz=20pt % Make TeX shut up.
%\errorcontextlines=3

\documentclass{ltxdoc}
\setlength\parindent{0pt}
\setlength\parskip{\smallskipamount}
\setlength\leftmargini{2em}% default = 2.5em

\usepackage{ifpdf}
\ifpdf
  \usepackage{mathptmx,courier}
  \usepackage[scaled=0.90]{helvet}
  \addtolength\marginparwidth{15pt}
\fi

\usepackage[USenglish]{babel}
\usepackage{longtable,setspace}
\IfFileExists{cat.eps}%
  {\usepackage{graphicx}}%
  {\IfFileExists{test/tlc2/cat.eps}%
    {\usepackage{graphicx}\graphicspath{{test/tlc2/}}}%
    {\usepackage[demo]{graphicx}}}

\usepackage{hypdoc}
\ifpdf\usepackage{hypdestopt}\fi
\hypersetup{pdfkeywords={LaTeX, package, caption},pdfstartpage={},pdfstartview={}}
\hypersetup{breaklinks=true}
\usepackage[listof=0,hypcap=false]{caption}[2007/09/01]

\DeclareRobustCommand*\eTeX{\texorpdfstring
  {\leavevmode\hbox{$\varepsilon$}-\TeX}%
  {e-TeX}}
\DeclareRobustCommand*\AmS{\texorpdfstring
  {{\protect\usefont{OMS}{cmsy}{m}{n}A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}%
  {AMS}}
\DeclareRobustCommand*\KOMAScript{\texorpdfstring
  {\textsf{K\kern.05em O\kern.05em M\kern.05em A\kern.1em-\kern.1em Script}}%
  {KOMA-Script}}
\DeclareRobustCommand*\NTG{NTG}
\DeclareRobustCommand*\SmF{SMF}

\newcommand\NEW[2]{}%\hskip 1sp \marginpar{\footnotesize\sffamily\raggedleft#1\\#2}}

\usepackage{marvosym}
\makeatletter
\newcommand*\INFO{\@ifstar{\@INFO{}}{\@INFO{\vbox to \ht\strutbox}}}
\newcommand*\@INFO[1]{\MARGINSYM{#1{\LARGE\Info}}}
\makeatother
\font\manual=manfnt
\newcommand*\DANGER{\MARGINSYM{\manual\char127}}
\newcommand*\MARGINSYM[1]{\hskip 1sp \marginpar{\raggedleft\textcolor{blue}{{#1}}}}

% \ContinuedFloat
\DeclareCaptionLabelFormat{continued}{Continued #1~#2}
% \DeclareCaptionLabelFormat
\DeclareCaptionLabelFormat{bf-parens}{(\textbf{#2})}
% \DeclareCaptionStyle
\DeclareCaptionStyle{mystyle}[margin=5mm,justification=centering]%
                    {font=footnotesize,labelfont=sc,margin={10mm,0mm}}
% Example 1
\DeclareCaptionFormat{myformat1}{#1#2\\#3}
\newlength\myindention
\DeclareCaptionFormat{myformat2}{#1#2\\\hspace*\myindention#3}
\DeclareCaptionOption{myindention}{\setlength\myindention{#1}}
% Example 2
\DeclareCaptionFormat{reverse}{#3#2#1}
\DeclareCaptionLabelFormat{fullparens}{(\bothIfFirst{#1}{~}#2)}
\DeclareCaptionLabelSeparator{fill}{\hfill}
% Example 3
\DeclareCaptionFormat{llap}{\llap{#1#2}#3\par}
\DeclareCaptionFormat{llapx}{\llap{\makebox[5em][l]{#1}}#3\par}
% Example 4
\DeclareCaptionLabelFormat{andtable}{#1~#2 \& \tablename~\thetable}

\newcommand*\purerm[1]{{\upshape\mdseries\rmfamily #1}}
\newcommand*\puresf[1]{{\upshape\mdseries\sffamily #1}}
\newcommand*\purett[1]{{\upshape\mdseries\ttfamily #1}}
\let\class\puresf \let\package\puresf
\let\env\purett \let\opt\purett

\newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
\newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
\newcommand*\version[2][]{$v#2$}
\newcommand*\x{\discretionary{-}{}{}}
\newcommand*\xx{\discretionary{}{}{}}

\newenvironment{Options}[1]%
  {\list{}{\renewcommand\makelabel[1]{\texttt{##1}\hfil}%
   \settowidth\labelwidth{\texttt{#1\space}}%
   \setlength\leftmargin{10pt}%
   \addtolength\leftmargin{\labelwidth}%
   \addtolength\leftmargin{\labelsep}}}%
  {\endlist}

\newenvironment{Example}%
  {\ifvmode\else\unskip\par\fi
   \minipage{\linewidth}\smallskip}%
  {\smallskip\endminipage\par}

\newenvironment{Expert}%
  {\footnotesize\ignorespaces}{\par}

\makeatletter
\newcommand\example{\@ifstar
  {\@example{belowskip=\abovecaptionskip}}%
  {\@example{}}}
\def\@example#1{%
  \@testopt{\@@example{#1}}{figure}}
\long\def\@@example#1[#2]#3#4{%
  \begingroup
    \captionsetup{#1,size=small,margin={\leftmargini,10pt},#3}%
    \captionof{#2}[]{#4}%
  \endgroup}
\makeatother

\begin{document}
\let\subsectionautorefname\sectionautorefname
\let\subsubsectionautorefname\sectionautorefname

\def\thispackage{the \package{caption} package}
\def\Thispackage{The \package{caption} package}

\newcommand\NEWfeature{\NEW{New feature}}
\newcommand\NEWdescription{\NEW{New description}}

\makeatletter
\newcommand*\Ref{\@ifstar{\@Ref\ref}{\@Ref\autoref}}
\newcommand*\@Ref[2]{#1{#2}: \textit{\nameref{#2}}}
\makeatother
\newcommand*\See[1]{\nopagebreak{\small(See #1)}}
\newcommand*\SeeUserDefined[1][]{\See{\Ref{declare}#1}}

% --------------------------------------------------------------------------- %

\GetFileInfo{caption-eng.tex}
\let\docdate\filedate
\GetFileInfo{caption.sty}

\title{Customizing captions in floating environments\texorpdfstring{\thanks{%
         This package has version number \fileversion,
         last revised \filedate.}}{}}
\author{Axel Sommerfeldt\\
        \href{mailto:caption@sommerfee.de}{\texttt{caption@sommerfee.de}}}
\date{\docdate}
\maketitle

% --------------------------------------------------------------------------- %

\begin{abstract}
\Thispackage\ offers customization of captions
in floating environments such |figure| and |table| and cooperates with
many other packages.
\end{abstract}

\newcommand\exampletext{%
  White sand beaches. The pink smoothness of the conch shell. A sea abundant
  with possibilities. Duty-free shops filled with Europe's finest gifts and
  perfumes. Play your favorite game of golf amidst the tropical greens on one
  of the many championship courses.}

% --------------------------------------------------------------------------- %

\section*{Introduction}

Within the standard \LaTeX\ document classes captions haven't received the
attention they deserve. Simply typeset as an ordinary paragraph there is no
remarkable visual difference from the rest of the text, like here:

\example*{size=normalsize,margin=0pt}{\exampletext}

There should be possibilities to change this; for example, it would be nice
to make the text of the caption a little bit smaller as the normal
text, add an extra margin, typeset the caption label with the same font
family and shape as your headings etc. Just like this one:

\example*{size=small,margin=10pt,labelfont=bf,labelsep=endash}{\exampletext}

You can do this easily with this package as there are many ready-to-use
caption formatting options, but you are free to define your very own stuff, too.

\bigskip

\INFO
Please note that \thispackage\ is only controlling the look \& feel of the
captions. It does \emph{not} control the placement of the captions.

% --------------------------------------------------------------------------- %

\iffalse
\section*{PRELIMINARY DOCUMENTATION}
Please note that this document is inconsistent and not finished yet.
It'll try to update it within the next months; the actual version can always be found
\href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/caption/caption-eng.pdf}%
{here}.\par\bigskip
\fi

% --------------------------------------------------------------------------- %

\vfill\clearpage
\tableofcontents

% --------------------------------------------------------------------------- %

\vfill\clearpage
\section{Using this package}
\label{usage}

\DescribeMacro{\usepackage}
Insert
\begin{quote}
  |\usepackage|\oarg{options}|{caption}[|\texttt{\filedate}|]|
\end{quote}
into the preamble of your document, i.e.~the part of your document
between |\document|\x|class| and |\begin{doc|\x|u|\x|ment}|.
The options control how your captions will look like; e.g.,
\begin{quote}
  |\usepackage[margin=10pt,font=small,labelfont=bf,|\\
  |            labelsep=endash]{caption}|%
  %|[|\texttt{\filedate}|]|
\end{quote}
would result in captions looking like the second one in the introduction.

\DescribeMacro{\captionsetup}
For a later change of options \thispackage\ provides the command
\begin{quote}
  |\captionsetup|\oarg{float type}\marg{options}\quad.
\end{quote}
So
\begin{quote}
  |\usepackage[margin=10pt,font=small,labelfont=bf]{caption}|
\end{quote}
and
\begin{quote}
  |\usepackage{caption}|\\
  |\captionsetup{margin=10pt,font=small,labelfont=bf}|
\end{quote}
are equal in their results.

It's good to know that |\captionsetup| has an effect on the current
environment only. So if you want to change settings for the
current |figure| or |table| only, just place the |\captionsetup| command
inside the |figure| or |table| right before the |\caption| command.
For example
\begin{quote}
  |\begin{figure}|\\
  |  |\ldots\\
  |  \captionsetup{singlelinecheck=off}|\\
  |  \caption{|\ldots|}|\\
  |\end{figure}|
\end{quote}
switches the single-line-check off, but only for this |figure|,
so all the other captions remain untouched.

\smallskip

{\small(For a detailed description of |\captionsetup| see \Ref{captionsetup}.)}

% --------------------------------------------------------------------------- %

\vfill\clearpage
\section{Options}
\label{options}

\def\OptionLabel{RaggedRight}
\def\UserDefined{\ldots}

% --------------------------------------------------------------------------- %

\subsection{Formatting}
\label{formats}

\DescribeMacro{format=}
A figure or table caption mainly consists of three parts: the caption label,
which says if this object is a `Figure' or `Table' and what number is
associated with it, the caption text itself, which is normally a short
description of contents, and the caption separator which separates the text
from the label.

The \textit{caption format} determines how this information will be presented;
it is specified with the option
\begin{quote}
  |format=|\meta{format name}\quad,
\end{quote}
having the name of the caption format as its argument.

There are two standard caption formats:
%\footnote{You have the option to
%define your own ones, too. See section \ref{declare}:
%\textit{``Do it yourself!''} for details.}

\begin{Options}{\OptionLabel}
  \item[plain]%\NEWdescription{v3.0h}
  Typesets the captions as a normal paragraph.

  \item[hang]
  Indents the caption text, so it will `hang' under the first line of the text.

  \item[\UserDefined]
  Own formats can be defined using |\Declare|\x|Caption|\x|Format|.\\
  \SeeUserDefined
\end{Options}

\begin{Example}
  An example: Specifying the option
  \begin{quote}
    |format=hang|
  \end{quote}
  yields captions like this:
  \example{format=hang}{\exampletext}
\end{Example}

\pagebreak[3]
\DescribeMacro{indention=}
For both formats (\texttt{plain} and \texttt{hang}) you can setup an extra
indention starting at the second line of the caption. You do this with the
option
\begin{quote}
  |indention=|\meta{amount}\quad.
\end{quote}

Two examples:

\begin{Example}
  \begin{quote}
    |format=plain,indention=.5cm|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{format=plain,indention=.5cm}{\exampletext}
\end{Example}

\begin{Example}
  \begin{quote}
    |format=hang,indention=-0.5cm|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{format=hang,indention=-0.5cm}{\exampletext}
\end{Example}

\bigskip

\pagebreak[3]
\DescribeMacro{labelformat=}
With the option
\nopagebreak[3]
\begin{quote}
  |labelformat=|\meta{label format name}
\end{quote}
\nopagebreak[3]
%\NEWdescription{v3.0e}
you specify how the caption label will be typeset.
There are five standard caption label formats:

\begin{Options}{\OptionLabel}
  \item[default]
  The caption label will be typeset as specified by the document class,
  usually this means the name and the number (like \texttt{simple}).
  (This is the default behaviour.)

  \item[empty]
  The caption label will be empty.
\iffalse
  (This option makes sense when used together with other options like
   \texttt{labelsep=none}.)
\fi

  \item[simple]
  The caption label will be typeset as a name and a number.

  \item[brace]\NEWfeature{v3.1f}
  The caption label will be closed with a single (right) brace.

  \item[parens]
  The number of the caption label will be typeset in parentheses.

  \item[\UserDefined]
  Own label formats can be defined using |\Declare|\x|Caption|\x|Label|\x|Format|.
  \SeeUserDefined
\end{Options}

\begin{Example}
  An example: Using the options
  \begin{quote}
    |format=plain,labelformat=parens,labelsep=quad|
  \end{quote}
  gives captions like this one:
  \example{format=plain,labelformat=parens,labelsep=quad}{\exampletext}
\end{Example}

\medskip

\emph{Note:} Some environments, e.g.~the \env{algorithm} environment offered
by the \package{algorithm2e} package, might react allergic to a change of the
caption label format.

\bigskip

\pagebreak[3]
\DescribeMacro{labelsep=}
With the option
\begin{quote}
  |labelsep=|\meta{label separator name}
\end{quote}
you specify what caption separator will be used.
You can choose one of the following:

\begin{Options}{\OptionLabel}
  \item[none]
  There is no caption separator.
\iffalse
  (This option makes sense when used together with other options like
   \texttt{labelformat=empty}.)
\fi

  \item[colon]
  The caption label and text will be separated by a colon and a space.

  \item[period]
  The caption label and text will be separated by a period and a space.

  \item[space]
  The caption label and text will be separated by a single space.

  \item[quad]
  The caption label and text will be separated by a |\quad|.

  \item[newline]
  The caption label and text will be separated by a line break (|\\|).
  Please note that this separator does not work with all caption
  formats (e.g.~|format=|\xx|hang|), and you'll get an error message
  trying such combination of options.

  \item[endash]\NEWfeature{v3.0h}
  The caption label and text will be separated by an en-dash,
  surrounded by spaces (\verb*| -- |).

%\showhyphens{separator}
  \item[\UserDefined]
  Own separators can be defined using |\Declare|\x|Caption|\x|Label|\x|Sep|\x|a|\x|ra|\x|tor|.
  \SeeUserDefined
\end{Options}

Three examples:
\begin{Example}
  \begin{quote}
    |format=plain,labelsep=period|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{format=plain,labelsep=period}{\exampletext}
\end{Example}

\begin{Example}
  \begin{quote}
    |format=plain,labelsep=newline,singlelinecheck=false|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{format=plain,labelsep=newline,singlelinecheck=false}{\exampletext}
\end{Example}

\begin{Example}
  \begin{quote}
    |format=plain,labelsep=endash|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{format=plain,labelsep=endash}{\exampletext}
\end{Example}

\bigskip

\pagebreak[3]
\DescribeMacro{textformat=}\NEWfeature{v3.0l}
With the option
\nopagebreak[3]
\begin{quote}
  |textformat=|\meta{text format name}
\end{quote}
\nopagebreak[3]
%\NEWdescription{v3.0e}
you specify how the caption text will be typeset.
There are two standard caption text formats:

\begin{Options}{\OptionLabel}
  \item[simple]
  The caption text will be typeset as it is.

  \item[period]
  The caption text will be followed by a period.

  \item[\UserDefined]
  Own label formats can be defined using |\Declare|\x|Caption|\x|Text|\x|Format|.
  \SeeUserDefined
\end{Options}

% --------------------------------------------------------------------------- %

\pagebreak[4]
\subsection{Justification}
\label{justification}

\DescribeMacro{justification=}
As addition to the caption format you could also specify a
\emph{caption justification}; it is specified with the option
\begin{quote}
  |justification=|\meta{justification name}\quad.
\end{quote}

You can choose one of the following:

\begin{Options}{\OptionLabel}
  \item[justified]
  Typesets the caption as a normal paragraph.

  \item[centering]
  Each line of the caption will be centered.

%  \item[Centering]

  \item[centerlast]
  The last line of each paragraph of the caption text will be centered.

  \item[centerfirst]
  Only the first line of the caption will be centered.

  \item[raggedright]
  Each line of the caption will be moved to the left margin.

\iffalse
  \item[RaggedRight]
  Each line of the caption will be moved to the left margin using
  the command |\RaggedRight| from the \package{ragged2e} package.
\else
  \item[RaggedRight]
  Each line of the caption will be moved to the left margin, too.
  But this time the command |\RaggedRight| of the \package{ragged2e}
  package will be used to achieve this.\footnote{%
    The need for the \package{ragged2e} package will be detected at
    run-time, therefore you maybe need a second \LaTeX\ run if this
    option is used.}
  The main difference to |raggedright| is that the word breaking
  algorithm of \TeX\ will work inside captions.
\fi

  \item[raggedleft]
  Each line of the caption will be moved to the right margin.

%  \item[RaggedLeft]
%  Each line of the caption will be moved to the right margin using
%  the command |\RaggedLeft| from the \package{ragged2e} package.

%\showhyphens{justification}
  \item[\UserDefined]
  Own justifications can be defined using |\Declare|\x|Caption|\x|Jus|\x|ti|\x|fi|\x|ca|\x|tion|.
  \SeeUserDefined
\end{Options}

Three examples:
\begin{Example}
  \begin{quote}
    |format=plain,justification=centerlast|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{format=plain,justification=centerlast}{\exampletext}
\end{Example}

\begin{Example}
  \begin{quote}
    |format=hang,justification=raggedright|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{format=hang,justification=raggedright}{\exampletext}
\end{Example}

\begin{Example}
  \begin{quote}
    |format=plain,labelsep=newline,justification=centering|
  \end{quote}
  \captionsetup{skip=0pt}
  \example*{format=plain,labelsep=newline,justification=centering}{\exampletext}
\end{Example}

\smallskip

\pagebreak[3]
\DescribeMacro{singlelinecheck=}
The standard \LaTeX\ document classes (\class{article}, \class{report}, and
\class{book}) automatically center a caption if it fits in one single line:

\example*{}{A short caption.}

\INFO
\Thispackage\ adapts this behavior and therefore usually ignores the
justification \& indention you have set with |justification=| \&
|indention=| in such case.
But you can switch this special treatment of such short captions off
with the option
\begin{quote}
  |singlelinecheck=|\meta{bool}\quad.
\end{quote}
Using |false|, |no|, |off| or |0| for \meta{bool} switches the
extra centering off:
\begin{quote}
  |singlelinecheck=false|
\end{quote}
Doing so the above short caption would look like

\begingroup
  \captionsetup{type=figure}
  \ContinuedFloat
  \example*{singlelinecheck=false}{A short caption.}
\endgroup

You switch the extra centering on again by using |true|, |yes|, |on| or |1|
for \meta{bool}. (The default is on.)

% --------------------------------------------------------------------------- %

\subsection{Fonts}
\label{fonts}

\DescribeMacro{font=}
\DescribeMacro{labelfont=}
\DescribeMacro{textfont=}
There are three font options which affects different parts of the caption:
One affecting the whole caption (|font|), one which only affects the caption
label and separator (|labelfont|) and at least one which only affects the
caption text (|textfont|).
You set them up using the options
\begin{quote}\begin{tabular}{@{}r@{}ll}
  |font=|      & \marg{font options} & ,\\
  |labelfont=| & \marg{font options} & , and\\
  |textfont=|  & \marg{font options} & .\\
\end{tabular}\end{quote}

And these are the available font options:

\begin{Options}{stretch=\meta{amount}}
  \item[scriptsize]   {\scriptsize Very small size}
  \item[footnotesize] {\footnotesize The size usually used for footnotes}
  \item[small]        {\small Small size}
  \item[normalsize]   {\normalsize Normal size}
  \item[large]        {\large Large size}
  \item[Large]        {\Large Even larger size}
\end{Options}
\vspace{0pt}\pagebreak[3]
\begin{Options}{stretch=\meta{amount}}
  \item[normalfont]   {\normalfont Normal shape \& series \& family}

  \item[up]           {\upshape Upright shape}
  \item[it]           {\itshape Italic shape}
  \item[sl]           {\slshape Slanted shape}
  \item[sc]           {\scshape Small Caps shape}

  \item[md]           {\mdseries Medium series}
  \item[bf]           {\bfseries Bold series}

  \item[rm]           {\rmfamily Roman family}
  \item[sf]           {\sffamily Sans Serif family}
  \item[tt]           {\ttfamily Typewriter family}
\end{Options}
\vspace{0pt}\pagebreak[3]
\begin{Options}{stretch=\meta{amount}}
  \item[singlespacing]  Single spacing \See{\Ref{setspace}}
  \item[onehalfspacing] One-and-a-half spacing \See{\Ref{setspace}}
  \item[doublespacing]  Double spacing \See{\Ref{setspace}}
  \item[stretch=\meta{amount}] |\setstretch|\marg{amount} \See{\Ref{setspace}}
\end{Options}
\vspace{0pt}\pagebreak[3]
\begin{Options}{stretch=\meta{amount}}
  \item[normalcolor]          |\normalcolor|
  \item[color=\meta{colour}]  |\color|\marg{colour}
       {\small(If the \package{color} or \package{xcolor} package is loaded,
        see \Ref{declare} for an example)}
\end{Options}
\vspace{0pt}\pagebreak[3]
\begin{Options}{stretch=\meta{amount}}
  \item[normal] The combination of the options \opt{normalcolor},
                \opt{normalfont}, \opt{normalsize}, and \opt{singlespacing}

  \item[\UserDefined]
  Own font options can be defined using |\DeclareCaptionFont|.\\
  \SeeUserDefined
\end{Options}

If you use only one of these options you can omit the braces;
e.g., the options
%\begin{quote}
  |font={small}|
%\end{quote}
and
%\begin{quote}
  |font=small|
%\end{quote}
will give the same result.

Three examples:
\begin{Example}
  \begin{quote}
    |font=it,labelfont=bf|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{font=it,labelfont=bf}{\exampletext}
\end{Example}

\begin{Example}
  \begin{quote}
    |labelfont=bf,textfont=it|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{labelfont=bf,textfont=it}{\exampletext}
\end{Example}

\begin{Example}
  \begin{quote}
    |font={small,stretch=0.80}|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{font={small,stretch=0.80}}{\exampletext}
\end{Example}

% --------------------------------------------------------------------------- %

\subsection{Margins and further paragraph options}
\label{margins}

\DescribeMacro{margin=}
\DescribeMacro{width=}
For all captions you can specify \emph{either} an extra margin \emph{or}
a fixed width:~\footnote{Only fixed widths are supported here; if you are
looking for a way to limit the width of the caption to the width of the
figure or table, please take a look at the \package{floatrow}\cite{floatrow}
or \package{threeparttable}\cite{threeparttable} package.}
\begin{quote}\begin{tabular}{@{}r@{}ll}
  |margin=| & \meta{amount} & \emph{--or--}\\
  |margin=| & |{|\meta{left amount}|,|\meta{right amount}|}| & \emph{--or--}\\
  |width=|  & \meta{amount} & \\
\end{tabular}\end{quote}
\NEWfeature{v3.1}
If you specify just one \meta{amount} for the margin, it will be used for both,
the left and right margin, e.g.~|margin=10pt| is equivalent to |margin={10pt,10pt}|.
In two-side documents the left and right margin will be swapped on even pages.
\DescribeMacro{oneside}
\DescribeMacro{twoside}
To prevent this you can specify the option |oneside| additionally,
e.g.~|\caption|\x|setup|\xx|{margin=|\xx|{0pt,10pt},|\xx|oneside}|.\par
If you are specifying a width, then both, the left and the right margin, will
have the same amount.

Three examples will illustrating this:
\begin{Example}
  \begin{quote}
    |margin=10pt|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{margin=10pt}{\exampletext}
\end{Example}

\begin{Example}
  \begin{quote}
    |margin={1cm,0cm}|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{margin={1cm,0cm}}{\exampletext}
\end{Example}

\begin{Example}
  \begin{quote}
    |width=.75\textwidth|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{width=.75\textwidth}{\exampletext}
\end{Example}

\emph{Note:} When the caption is placed beside the contents (for example in
a |SCfigure| environment offered by the \package{sidecap} package\cite{sidecap})
or the caption is an in-text caption (for example in a |wrapfigure| environment
offered by the \package{wrapfig} package\cite{wrapfig}), the margin setting
will be usually reset to |0pt| at the very beginning of the environment.
But if you really want to setup an extra margin for these environments, you can
do so by setting this margin either inside the environment itself, of by
specifying a margin for this particular environment,
e.g.~|\captionsetup[SCfigure]{margin=10pt}|.

\pagebreak[3]
\DescribeMacro{margin*=}\NEWfeature{v3.1}
\begin{Expert}
There is also a starred variant of the |margin=| option, |margin*=|, which only
changes the margin if no width was set.
\end{Expert}

\pagebreak[3]
\DescribeMacro{minmargin=}
\DescribeMacro{maxmargin=}\NEWfeature{v3.1}
\begin{Expert}
You can also set a minimum or maximum margin amount. This can be useful for
limiting the margin amount in smaller environments, e.g.~|minipage|s.
For example the \SmF\ document classes limit the margin amount to
|maxmargin=.1\linewidth|. (See \Ref{SMF})
\end{Expert}

\medskip

\pagebreak[3]
\DescribeMacro{parskip=}
This option is useful for captions containing more than one paragraph.
It specifies the extra vertical space inserted between them:
\begin{quote}
  |parskip=|\meta{amount}
\end{quote}
One example:
\begin{Example}
  \begin{quote}
    |margin=10pt,parskip=5pt|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{margin=10pt,parskip=5pt}{%
    First paragraph of the caption. This one contains some test, just to
    show how these options affect the layout of the caption.\par
    Second paragraph of the caption. This one contains some text, too, to
    show how these options affect the layout of the caption.}
\end{Example}

\pagebreak[3]
\DescribeMacro{hangindent=}
The option
\begin{quote}
  |hangindent=|\meta{amount}
\end{quote}
is for setting up a hanging indention starting from the second line of each
paragraph. If the caption contains just a single paragraph, using this option
leads to the same result as the option |indention=| you already know about.
But if the caption contains multiple paragraphs you will notice the difference:

\begin{Example}
  \begin{quote}
    |format=hang,indention=-.5cm|
  \end{quote}
  \captionsetup{skip=0pt}
  \example{format=hang,indention=-.5cm}{%
    First paragraph of the caption. This one contains some test, just to
    show how these options affect the layout of the caption.\par
    Second paragraph of the caption. This one contains some text, too, to
    show how these options affect the layout of the caption.}
\end{Example}

\begin{Example}
  \begin{quote}
    |format=hang,hangindent=-.5cm|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{format=hang,hangindent=-.5cm}{%
    First paragraph of the caption. This one contains some test, just to
    show how these options affect the layout of the caption.\par
    Second paragraph of the caption. This one contains some text, too, to
    show how these options affect the layout of the caption.}
\end{Example}

\emph{Note:} If your caption contains more than one paragraph, you have
to specify an alternative caption for the list-of-figures using the
optional argument of |\caption| or |\captionof|, otherwise you will get
an error message.

% --------------------------------------------------------------------------- %

\pagebreak[4]
\subsection{Styles}
\label{style}

\DescribeMacro{style=}
A suitable combination of caption options is called \emph{caption style}.
You can compare them more or less to page styles which you set up with
|\pagestyle|; the caption style provides all settings for a whole caption
layout.

You switch to an already defined caption style with the option
\begin{quote}
  |style=|\meta{style name}\quad.
\end{quote}
\Thispackage\ pre-defines two styles: |base| and |default|.

\NEWfeature{v3.1}
The |base| style puts all options you already know about to values reflecting
the look of the captions when using one of the base \LaTeX\ document classes
\class{article}, \class{report}, and \class{book}.
This means that specifying the option
\begin{quote}
  |style=base|
\end{quote}
has the same effect as specifying all these options:
\begin{quote}
  |format=plain,labelformat=default,labelsep=colon,|\\
  |justification=justified,font={},labelfont={},|\\
  |textfont={},margin=0pt,indention=0pt|\\
  |parindent=0pt,hangindent=0pt,singlelinecheck=true|
\end{quote}
{\small(But |justification=centering,indention=0pt| will be set if
 the caption fits into a single line.)}

In contrast the |default| style follows the default values, reflecting
the look of the captions given by the document class you actually use.
This style is selected by default and represents these options:
\begin{quote}
  |format=default,labelformat=default,labelsep=default,|\\
  |justification=default,font=default,labelfont=default,|\\
  |textfont=default,margin=0pt,indention=0pt|\\
  |parindent=0pt,hangindent=0pt,singlelinecheck=true|
\end{quote}
{\small(But again |justification=centering,indention=0pt| will be set if
 the caption fits into a single line.)}

So if you use one of the base \LaTeX\ document classes \class{article},
\class{report}, or \class{book}, both |base| and |default| point to nearly
the same settings.

{\small\emph{Note:} Own caption styles can be defined using
 |\DeclareCaptionStyle|. \SeeUserDefined}

% --------------------------------------------------------------------------- %

\subsection{Skips}
\label{skips}

\DescribeMacro{skip=}\NEWfeature{v3.0d}
The vertical space between the caption and the figure or table contents is
controlled by the option
\begin{quote}
  |skip=|\meta{amount}\quad.
\end{quote}
The standard \LaTeX\ document classes \class{article}, \class{report} and
\class{book} preset it to |skip=10pt|, but other document classes may use
a different amount.

\bigskip

\pagebreak[3]
\DescribeMacro{position=}
The |\caption| command offered by |\LaTeX| has a design flaw:
The command does not know if it stands on the beginning of the figure or
table, or at the end. Therefore it does not know where to put the space
separating the caption from the content of the figure or table.
While the standard implementation always puts the space above the caption
in floating environments (and inconsistently below the caption in
|longtable|s), the implementation offered by this package is more
flexible.
By giving the option
\begin{quote}
  |position=top|\quad or\quad |position=above|
\end{quote}
it's assumed that the caption is standing at the \emph{top} of the
environment and therefore the space setup with |skip=|\meta{amount} is
placed below the caption.
(Please note that |position=top| does \emph{NOT} mean that the
caption is actually placed at the top of the figure or table.
Instead the caption is usually placed where you place the |\caption|
command.)
But with
\begin{quote}
  |position=bottom|\quad or\quad |position=below|
\end{quote}
it's assumed that the caption is standing at the \emph{bottom} of the
environment and therefore the space is placed above the caption.
And finally with
\begin{quote}
  |position=auto|\quad {\small(which is the default setting)}
\end{quote}
the caption package tries its best to determine the actual position of
the caption on its own. Please note that while this is successfully in
most cases, it could give wrong results under rare circumstances.

\medskip

\pagebreak[3]
\DescribeMacro{figureposition=}%\NEWfeature{v3.0a}
\DescribeMacro{tableposition=}%\NEWfeature{v3.0a}
The |position| option is especially useful when used together with the
optional argument of the |\captionsetup| command.
\See{\Ref{captionsetup} for details}\par
For example
\begin{quote}
  |\captionsetup[table]{position=above}|
\end{quote}
causes all captions within tables to be treated as captions \emph{above}
the table (regarding spacing around it).
Because this is a very common setting, \thispackage\ offers
the abbreviating options |figure|\x|position=|\xx\meta{pos} and
|table|\x|position=|\xx\meta{pos}, e.g.
\begin{quote}
  |\usepackage[|\ldots|,tableposition=top]{caption}|
\end{quote}
is equivalent to
\begin{quote}
  |\usepackage[|\ldots|]{caption}|\\
  |\captionsetup[table]{position=top}|
\end{quote}
\DANGER
{\small Please note that the options \opt{skip=}, \opt{position=},
 \opt{figureposition=}, and \opt{tableposition=} do not always have an effect.
 Since it's a matter of the document class to supply the environments
 \env{figure} and \env{table}, it could use its very own spacing, and could
 decide for itself if the caption will be typeset as ``top'' or ``bottom''
 caption.
 For example the \KOMAScript\ document classes support the \opt{skip}
 setting, but will always typeset \env{figure} captions as ``bottom'' captions,
 and \env{table} captions are dependent on the global option
 \opt{tablecaptionsabove} resp.\ \opt{tablecaptionsbelow}.
 \See{\Ref{KOMA}}

 Furthermore some packages control the behavior of the spacing above and
 below the caption for themself, e.g.~the \package{float}, the
 \package{floatrow}, and the \package{supertabular} package.}

\bigskip

\begin{Expert}
Internally the skip between caption and contents is represented by
|\above|\x|caption|\x|skip| (which is always set above the caption in
\LaTeX{}s implementation).
But there is a second value |\below|\x|caption|\x|skip| (usually set to
|0pt| by default) which is set below the caption in \LaTeX{}s implementation,
but on the other side than |\above|\x|caption|\x|skip| by this package.
So technically speaking, this package swaps the meaning of these two skips
when |position=top| is set.
Please note that there are several packages around which do the same trick
(like the \package{ftcap}, the \package{nonfloat}, and the \package{topcap}
package) which usage should be avoided when this package is used.
\end{Expert}

% --------------------------------------------------------------------------- %

\subsection{Lists}
\label{lists}

\DescribeMacro{list=}\NEWfeature{v3.1}
The |\caption| command usually places an entry in the List of Figures
resp.~List of Tables. You can either suppress that individually by giving an
empty optional argument to |\caption| {\small(see \Ref{caption})}, or
programmatically by saying
\begin{quote}
  |list=no|\quad(or any other boolean value instead of |no|)\quad.~\footnote{%
  Please note that the \package{subfig} package\cite{subfig} is not supporting
  this option, it uses the counters \texttt{lofdepth} \& \texttt{lotdepth} for
  this purpose instead.}
\end{quote}

\pagebreak[3]
\DescribeMacro{listformat=}\NEWfeature{v3.1}
With the option
\nopagebreak[3]
\begin{quote}
  |listformat=|\meta{list format name}
\end{quote}
\nopagebreak[3]
you can specify how the |figure| or |table| number will be typeset within
the List of Figures resp.~List of Tables.
There are five standard caption list formats:

\begin{Options}{\OptionLabel}
  \item[empty]
  No number will be typeset.

  \item[simple]
  The number will be typeset with label prefix.

  \item[parens]
  The number will be typeset in parentheses, with label prefix.

  \item[subsimple]
  Same as |simple|, but without label prefix. (default)

  \item[subparens]
  Same as |parens|, but without label prefix.

  \item[\UserDefined]
  Own label formats can be defined using |\Declare|\x|Caption|\x|List|\x|Format|.
  \SeeUserDefined
\end{Options}

The label prefix ($=$|\p@figure| resp.~|\p@table|) is usually empty,
so |simple| and |subsimple| gives equal results, same with |parens| and
|subparens|. But this can be different for sub-figures or sub-tables
listed in the List of Figures resp.~List of Tables, or when the label prefix
is redefined for a different purpose.

% --------------------------------------------------------------------------- %

\subsection{Names \& Numbering}
\label{names}\label{numbering}

\DescribeMacro{figurename=}
\DescribeMacro{tablename=}\NEWfeature{v3.0l}
You can change the name of the figures \& tables with the options
\begin{quote}\begin{tabular}{@{}r@{}l@{\quad}l@{}}
  |figurename=| & \meta{name} & and\\
  |tablename=|  & \meta{name} & .\\
\end{tabular}\end{quote}
The document class usually sets them to ``Figure'' \& ``Table', but for
example with
\begin{quote}
  |figurename=Fig.|
\end{quote}
you can change the figure name to ``Fig''.

\INFO*
If you use the \package{babel} package, please load \thispackage\ \emph{after}
the \package{babel} package.

\bigskip

\pagebreak[3]
\DescribeMacro{name=}\NEWfeature{v3.1f}
Similar to |figurename=| \& |tablename=| you can change the name of the
\emph{current} environment with the option
\begin{quote}
  |name=|\meta{name}\quad.
\end{quote}
This could be useful in conjunction with the optional argument of
|\captionsetup|, e.g.
\begin{quote}
  |\captionsetup[wrapfigure]{name=Fig.}|
\end{quote}
changes the name to ``Fig.'' for all |wrapfigure|s (while all the other
figure captions will still have ``Figure'' as name).

\bigskip

\pagebreak[3]
\DescribeMacro{figurewithin=}
\DescribeMacro{tablewithin=}\NEWfeature{v3.1f}
If a document class providing |\chapter| is used (e.g.~\package{report} or
\package{book}), usually the \env{figure} and \env{table} caption counters
are dependent on the |chapter| counter. Otherwise usually the \env{figure} and
\env{table} counters are continuous throughout the document.

This can be changed with the options
\begin{quote}\begin{tabular}{r@{}l}
  |figurewithin=| & \meta{figure ``within'' counter} \emph{or} \texttt{none}\quad and\\
  |tablewithin=|  & \meta{table ``within'' counter} \emph{or} \texttt{none}\quad .\\
\end{tabular}\end{quote}
If ``|none|'' is given as value, the numbering of figures resp. tables will
be continuous throughout the document.
Otherwise the numbering will be dependent on the given counter,
e.g.~|figurewithin=section| gives figures a section-dependent numbering scheme.

\bigskip

\begin{Expert}
The name \& numbering is internally done by the commands |\|\meta{type}|name|
\& |\the|\meta{type}, e.g.~|\figurename| \& |\thefigure| for figures.
While usually using the above options are sufficient, sometimes a direct
re-definition of these two macros is necessary. For example:
\begin{quote}
  |\captionsetup{figurewithin=section}|\\
  |\renewcommand\thefigure{\arabic{section}\alph{figure}}|
\end{quote}
gives you a section-dependent numbering scheme \meta{section}\meta{figure}
with a numerical section counter and a alphanumerical figure counter,
e.g.~``|Figure 2b|''.
\end{Expert}

% --------------------------------------------------------------------------- %

\subsection{Types}
\label{types}

\DescribeMacro{type=}\NEWfeature{v3.0d}
The |\caption| command can typeset captions for different types,
e.g.~|figure| and |table|. If you try to use the |\caption| command outside
these environments you will get an error message, because it does not know what
kind of caption do you want to have here. But in such situations you can set
the caption type manually with
\begin{quote}
  |type=|\meta{float type}
\end{quote}
prior to the usage of the |\caption| command (and other commands like
|\Continued|\x|Float| or |\subfloat| offered by the \package{subfig}
package\cite{subfig}), for example within an non-floating environment like
|minipage|:
\begin{quote}
  |\noindent\begin{minipage}{\textwidth}|\\
  |  \captionsetup{type=figure}|\\
  |  \subfloat{|\ldots|}|\\
  |  |\ldots\\
  |  \caption{|\ldots|}|\\
  |\end{minipage}|
\end{quote}

\begin{Expert}
There is also a starred variant of this option, |type*=|\meta{float type},
which behaves different than |type=|\meta{float type} if the
\package{hyperref} package\cite{hyperref} is loaded: While |type=| sets an
hyperlink anchor (if |hypcap=true| is set), |type*=| does not.
(See also \Ref{hyperref})
\end{Expert}

\medskip

Own float types can be defined with |\Declare|\x|Caption|\x|Type| offered by
this package, |\new|\x|float| offered by the \package{float}
package\cite{float}, or |\Declare|\x|New|\x|Float|\x|Type| offered by the
\package{floatrow} package\cite{float}.

\medskip

\DANGER % \NEWdescription{v3.1}
Please note that you should use the option |type=| only
\emph{inside} boxes or environments (like |\parbox| or |minipage|),
at best one where no page break could happen between contents and caption.
Furthermore some visual side-effects (e.g.~mixed-up figure and table settings
regarding captions) could occur without using a box or environment,
therefore a warning message will be issued if you try to do so.\footnote{%
You only get this warning message if you use \eTeX\ as underlying \TeX\ engine.}

\vfill

% --------------------------------------------------------------------------- %

\pagebreak[4]
\section{Commands}

\subsection{Typesetting captions}
\label{caption}
\label{captionlistentry}

\DescribeMacro{\caption}
The command
\begin{quote}
  |\caption|\oarg{list entry}\marg{heading}
\end{quote}
typesets the caption inside a floating environment like |figure| or |table|.
Well, you already know this, but \thispackage\ offers an extension:
If you leave the argument \meta{list entry} empty, no entry in the list of
figures or tables will be made. For example:
\begin{quote}
  |\caption[]{A figure without list entry.}|
\end{quote}

\begin{Expert}
Please remember that the \meta{heading} is a so-called \emph{moving} argument,
if no \meta{list entry} has been given. If a \meta{list entry} is given,
this argument is moving instead. ``\emph{Moving} argument''
means that the argument will be written to the list-of file, make it
appearing in the ``List of Figures'' resp. ``List of Tables'', too.
\emph{Moving} arguments are not allowed to contain \emph{fragile} commands,
everything must be \emph{robust}, otherwise the argument could get
\emph{broken}, resulting in strange \LaTeX\ errors. Some \emph{fragile}
commands could be \emph{protected} by a leading |\protect|, own definitions
could get defined with |\DeclareRobustCommand| instead of |\newcommand| to
make them \emph{robust}.

An example: |\caption{${}^{137}_{\phantom{1}55}$Cs}| will cause errors since
|\phantom| is \emph{fragile}. So we have either have to use the optional
argument \meta{list entry}
(e.g.~|\caption[${}^|\xx|{137}_|\xx|{55}$|\xx|Cs]|\xx|{${}^|\xx|{137}_|\xx|{\phantom{1}55}$|\xx|Cs}|)
or add |\robust| to prevent the |\phantom| command from getting \emph{broken}:
|\caption{${}^|\xx|{137}_|\xx|{|\textcolor{blue}{\cs{protect}}|\phantom{1}55}$|\xx|Cs}|.

But sometimes even this is not sufficient. The reason behind is the so-called
single-line-check: It puts the \meta{heading} into a horizontal box to determine
the width of the caption, and this could cause error messages, too. An example:
|\caption{A| |schematic.| |\[V_{C}| |\sim| |\left| |\{| |\begin{array}{cc}|
|E_{g}| |&| |\textrm{p-n}| |\\| |e\phi_{B}| |&| |\textrm{M-S}| |\end{array}|
|\right.| |\]}|.
Using |\caption[A| |schematic]{|\ldots|}| is not sufficient here, it's still
leading to errors. (``\texttt{Missing \$ inserted.}'') So we have to put
a |\captionsetup{singlelinecheck=off}| just in front of the |\caption|
command additionally.

For more information about \emph{moving} arguments and \emph{fragile} \&
\emph{robust} commands, take a closer look at your \LaTeX\ manual or visit
\url{http://www-h.eng.cam.ac.uk/help/tpl/textprocessing/teTeX/latex/latex2e-html/fragile.html}.
\end{Expert}

\medskip

\pagebreak[3]
\DescribeMacro{\caption*}
The \package{longtable} package defines the command |\caption*| which
typesets the caption without label and without entry in the list of tables.
An example:
\begin{quote}
  |\begin{longtable}{|\ldots|}|\\
  |  \caption*{A table}\\|\\
  |  |\ldots\\
  |\end{longtable}|
\end{quote}
looks like
\DeleteShortVerb{\|}
\begin{longtable}{r|rr}
  \caption*{A table}\\
    & x & y \\\hline
  a & 1 & 2 \\
  b & 3 & 4 \\
\end{longtable}
\MakeShortVerb{\|}
This package offers this feature, too, so you can use this command now within
every floating environment like |figure| or |table|, like:
\begin{quote}
  |\begin{table}|\\
  |  \caption*{A table}|\\
% |  \begin{tabular}{|\ldots|}|\\
% |    |\ldots\\
% |  \end{tabular}|\\
  |  |\ldots\\
  |\end{table}|
\end{quote}

\pagebreak[3]
\DescribeMacro{\captionof}
\DescribeMacro{\captionof*}
Sometimes you want to typeset a caption \emph{outside} a floating environment,
putting a figure within a non-floating |minipage| for instance. For this purpose
\thispackage\ offers the command
\begin{quote}
  |\captionof|\marg{float type}\oarg{list entry}\marg{heading}\quad.
\end{quote}
Note that the first argument, the \meta{float type}, is mandatory here, because
the |\captionof| command needs to know which name to put into the caption label
(e.g. ``Figure'' or ``Table'') and in which list to put the contents entry.
An example:
\begin{quote}
  |\captionof{figure}{A figure}|\\
  |\captionof{table}{A table}|
\end{quote}
typesets captions like this:
\begin{Example}
  \begingroup
    \captionof{figure}{A figure}
  \endgroup
  \captionsetup{position=top}
  \begingroup
    \captionof{table}{A table}
  \endgroup
\end{Example}

The star variant |\captionof*| has the same behavior as the |\caption*| command:
it typesets the caption without label and without entry to the list of figures
or tables.

\DANGER % \NEWdescription{v3.1}
Since |\captionof| uses the |type*=| option internally, the same restrictions
as for the |type=| option apply here, so you should use both |\captionof|
and |\captionof*| only \emph{inside} boxes or environments, too.
\See{\Ref{types}}

\bigskip

\pagebreak[3]
\DescribeMacro{\captionlistentry}\NEWfeature{v3.1}
Under certain circumstances it could be useful to make a list-of-figure
(or table) entry on its own.
This could be achieved with
\begin{quote}
  |\captionlistentry|\oarg{float type}\marg{list entry}\quad.
\end{quote}
One example: It's quite easy to have a |longtable| with captions above the
contents and a single list entry which points to the first page of the table:
\begin{quote}
  |\begin{longtable}{|\ldots|}|\\
  |  \caption{|\ldots|}\\|\\
  |\endfirsthead|\\
  |  \caption[]{|\ldots|}\\|\\
  |\endhead|\\
  |  |\ldots
\end{quote}
But since the \package{longtable} package does not offer an |\endfirstfoot|
command, you cannot easily have captions \emph{below} the table
contents and a single list entry which points to the first page of the table.
Here is were the |\captionlistentry| command could be used:
\begin{quote}
  |\begin{longtable}{|\ldots|}|\\
  |  \caption[]{|\ldots|}\\|\\
  |\endfoot|\\
  |  \captionlistentry{|\ldots|}|\\
  |  |\ldots
\end{quote}
{\small(Another example can be found in \Ref{examples}.)}

\smallskip

\begin{Expert}
Please note that \meta{list entry} is a \emph{moving} argument, so everything
it contains must be \emph{robust}. (See also explanation of |\caption|)
\end{Expert}

\subsection{Setting options}
\label{captionsetup}

\DescribeMacro{\captionsetup}
We already know the |\captionsetup| command (see \Ref{usage}),
but this time we get enlighten about its optional argument
\meta{float type}.

Remember, the syntax of this command is
\begin{quote}
  |\captionsetup|\oarg{float type}\marg{options}\quad.
\end{quote}

If a \meta{float type} gets specified, all the \meta{options} don't
change anything at this time. Instead they only get marked for a later use,
when a caption inside of a floating environment of the particular type
\meta{float type} gets typeset.
For example
\begin{quote}
  |\captionsetup[figure]|\marg{options}
\end{quote}
forces captions within a |figure| environment to use the given \meta{options}.

Here comes an example to illustrate this:
\begin{quote}
  |\captionsetup{font=small}|\\
  |\captionsetup[figure]{labelfont=bf,textfont=it}|
\end{quote}
gives captions like this:
\begin{Example}
  \captionsetup{font=small}
  \captionsetup[figure]{labelfont=bf,textfont=it}
  \begingroup
    \captionof{figure}{A figure}
  \endgroup
  \captionsetup{position=top}
  \begingroup
    \captionof{table}{A table}
  \endgroup
\end{Example}

As you see the command |\captionsetup[figure]{|\ldots|}| only changes
the look of the |figure| caption labels, not touching the other ones.

As \meta{float type} you can usually give one of these two only:
|figure| or |table|.
But as we will see later some \LaTeX\ packages (like the \package{floatrow},
\package{longtable}, and \package{sidecap} package for example) and also
this package offer additional environments with captions and these two
commands can also be used with them.
\See{\Ref{declare} and \Ref{packages}}

\smallskip

\pagebreak[3]
\NEWfeature{v3.1}
\begin{Expert}
There is also a starred variant of |\captionsetup|:
\begin{quote}
  |\captionsetup*|\oarg{float type}\marg{options}
\end{quote}
While the non-starred variant gives you a warning if the \meta{options} are
actually not used throughout the document (e.g.~a |\captionsetup[table]{font=sf}|
without a |table|), the starred variant will not.
This is quite useful when setting generic options which are independent of a
specific document.
\end{Expert}

\medskip

\pagebreak[3]
\DescribeMacro{\clearcaptionsetup}
If you want to get rid of these parameters marked for an automatic use within
a particular environment you can use the command
\begin{quote}
  |\clearcaptionsetup|\oarg{option}\marg{float type}\quad.
\end{quote}

For example |\clearcaptionsetup{figure}| would clear all the extra handling
for figures in the example above:
\begin{quote}
  |\captionsetup{font=small}|\\
  |\captionsetup[figure]{labelfont=bf,textfont=it}|\\
  \ldots\\
  |  \caption{A figure}|\\
  \ldots\\
  |\clearcaptionsetup{figure}|\\
  \ldots\\
  |  \caption{A figure}|\\
  \ldots\\
\end{quote}
\pagebreak[3]
\begin{Example}
  \captionsetup{font=small}
  \captionsetup[figure]{labelfont=bf,textfont=it}
  \begingroup
    \captionof{figure}{A figure}
  \endgroup
  \captionsetup{position=top}
  \clearcaptionsetup{figure}
  \begingroup
    \captionof{figure}{A figure}
  \endgroup
\end{Example}

\pagebreak[3]
\NEWfeature{v3.1}
If an optional argument \meta{option} is given, only the settings regarding
this particular \meta{option} are cleared.\footnote{You can only specify
\emph{one} option here, not a list of options.
If you want to clean more than one option, you need to use more than one
\cs{clearcaptionsetup}s.}
While the example above not only clears the options |labelfont=bf,textfont=it|
for figures (but all options for figures instead),
this one would only clear the |labelfont=bf| setting, leaving all other
settings for figures intact:
\begin{quote}
  |\captionsetup{font=small}|\\
  |\captionsetup[figure]{labelfont=bf,textfont=it}|\\
  \ldots\\
  |  \caption{A figure}|\\
  \ldots\\
  |\clearcaptionsetup[labelfont]{figure}|\\
  \ldots\\
  |  \caption{A figure}|\\
  \ldots\\
\end{quote}
\begin{Example}
  \captionsetup{font=small}
  \captionsetup[figure]{labelfont=bf,textfont=it}
  \begingroup
    \captionof{figure}{A figure}
  \endgroup
  \captionsetup{position=top}
  \clearcaptionsetup[labelfont]{figure}
  \begingroup
    \captionof{figure}{A figure}
  \endgroup
\end{Example}
\begin{Expert}
Analogous to |\captionsetup*| there is also a starred form
|\clearcaptionsetup*| which suppresses warnings if the given \meta{option}
was not setup for the specified \meta{float type}.
\end{Expert}

\medskip

\vfill\pagebreak[4]
\DescribeMacro{\showcaptionsetup}
For debugging purposes the command\nopagebreak
\begin{quote}
  |\showcaptionsetup|\marg{float type}
\end{quote}
is offered. It generates a log file entry, showing the given options
for the specified \meta{float type}. For example
\begin{quote}
  |\captionsetup[figure]{labelfont=bf,textfont=it}|\\
  |\showcaptionsetup{figure}|
\end{quote}
gives the info:
\begin{quote}\small
  |Caption Info: Option list on `figure'|\\
  |Caption Data: {labelfont=bf,textfont=it} on input line 5.|
\end{quote}

\pagebreak[3]
\subsection{Continued floats}
\label{ContinuedFloat}

\DescribeMacro{\ContinuedFloat}
Sometimes you want to split figures or tables without giving them
their own reference number. This is what the command
\begin{quote}
  |\ContinuedFloat|
\end{quote}
is for; it should be used as first command inside the floating environment.
It prevents the incrementation of the relevant counter (usually done by
|\caption|), so a figure or table with a |\ContinuedFloat| in it gets the
same reference number as the figure or table before. An example:
\begin{quote}
  |\begin{table}|\\
  |  \caption{A table}|\\
  |  |\ldots\\
  |\end{table}|\\
  \ldots\\
  |\begin{table}\ContinuedFloat|\\
  |  \caption{A table (cont.)}|\\
  |  |\ldots\\
  |\end{table}|
\end{quote}
gives the following result:
\begin{Example}
  \captionsetup{type=table,position=b,skip=0pt}
  \caption{A table}
  \centerline{\ldots}
  \ContinuedFloat
  \caption{A table (cont.)}
  \centerline{\ldots}
\end{Example}

\bigskip

\NEWfeature{v3.1}
Furthermore the |\ContinuedFloat| command executes options associated with
the type name ``|ContinuedFloat|''. For example this can be used to switch
to a different label format for continued figures or tables, as shown here:
\begin{quote}
  |\DeclareCaptionLabelFormat{continued}{Continued #1~#2}|\\
  |\captionsetup[ContinuedFloat]{labelformat=continued}|\\
  \ldots\\
  |\begin{table}\ContinuedFloat|\\
  |  \caption{A table}|\\
  |  |\ldots\\
  |\end{table}|
\end{quote}
\begin{Example}
  \captionsetup{type=table,position=b,skip=0pt}
  \captionsetup[ContinuedFloat]{labelformat=continued}
  \ContinuedFloat
  \caption{A table}
  \centerline{\ldots}
\end{Example}
\medskip
\See{\Ref{declare} for an explanation of \cs{DeclareCaptionLabelFormat}.}

\bigskip

If you want to have a different caption label in |longtable|s after
a page break, this can \emph{not} be archived by using |\ContinuedFloat|,
but you could write something like:
\begin{quote}
  |\DeclareCaptionLabelFormat{continued}{Continued #1~#2}|\\
  \ldots\\
  |\begin{longtable}{|\ldots|}|\\
  |  \caption{A longtable}\\|\\
  |\endfirsthead|\\
  |  \captionsetup{labelformat=continued}|\\
  |  \caption[]{A longtable}\\|\\
  |\endhead|\\
  |  |\ldots\\
  |\end{longtable}|
\end{quote}
{\small\emph{Note:} |\ContinuedFloat| is not available for |longtable|s.}

\vfill

% --------------------------------------------------------------------------- %

\pagebreak[4]
\section{Own enhancements}
\label{declare}

A family of commands is provided to allow users to define their own formats
etc.
This enables information on separators, justification, fonts, and styles to
be associated with a name and kept in one place.
(These commands need to appear in the document preamble,
this is the part between |\documentclass| and |\begin{document}|.)

\pagebreak[3]
\DescribeMacro{\DeclareCaptionFormat}
You can define your own caption formats using the command
\begin{quote}
  |\DeclareCaptionFormat|\marg{name}\marg{code using \#1, \#2 and \#3}\mbox{\quad.}
\end{quote}
At usage the system replaces \#1 with the caption label, \#2 with the
separator and \#3 with the text. So the standard format |plain| is
pre-defined by \thispackage\ as
\begin{quote}
  |\DeclareCaptionFormat{plain}{#1#2#3\par}|\quad.
\end{quote}
\begin{Expert}
There is also a starred variant, |\DeclareCaptionFormat*|, which causes
the code being typeset in \TeX s vertical (instead of horizontal) mode,
but does not support the |indention=| option.
\end{Expert}

\pagebreak[3]
\DescribeMacro{\DeclareCaption-\\LabelFormat}
Likewise you can define your own caption label formats:
\begin{quote}
  |\DeclareCaptionLabelFormat|\marg{name}\marg{code using \#1 and \#2}
\end{quote}
At usage \#1 gets replaced with the name (e.g. ``figure'') and \#2
gets replaced with the reference number (e.g. ``12'').
An example:
\begin{quote}
  |\DeclareCaptionLabelFormat{bf-parens}{(\textbf{#2})}|\\
  |\captionsetup{labelformat=bf-parens,labelsep=quad}|
\end{quote}
\example*{labelformat=bf-parens,labelsep=quad}{\exampletext}

\pagebreak[3]
\DescribeMacro{\bothIfFirst}
\DescribeMacro{\bothIfSecond}
If you define your own caption label formats and use the
\package{subfig}\cite{subfig} or \package{subcaption} package,
you should take care of empty caption label names.
For this purpose the commands
\begin{quote}
  |\bothIfFirst|\marg{first arg}\marg{second arg}\quad and\\
  |\bothIfSecond|\marg{first arg}\marg{second arg}
\end{quote}
are offered. |\bothIfFirst| tests if the first argument exists (means: is
not empty), |\bothIfSecond| tests if the second argument exists. If yes,
both arguments get typeset, otherwise none of them.

\smallskip

\pagebreak[3]
For example the standard label format |simple| is \emph{not} defined as
\begin{quote}
  |\DeclareCaptionLabelFormat{simple}{#1~#2}|\mbox{\quad,}
\end{quote}
because this could cause an extra space if \#1 is empty. Instead |simple|
is defined as
\begin{quote}
  |\DeclareCaptionLabelFormat{simple}%|\\
  |                  {\bothIfFirst{#1}{~}#2}|\mbox{\quad,}
\end{quote}
causing the space to appear only if the label name is present.

\smallskip

\pagebreak[3]
\DescribeMacro{\DeclareCaption-\\TextFormat}\NEWfeature{v3.0l}
Likewise you can define your own caption text formats:
\begin{quote}
  |\DeclareCaptionTextFormat|\marg{name}\marg{code using \#1}
\end{quote}
At usage \#1 gets replaced with the caption text.

\bigskip

\pagebreak[3]
\DescribeMacro{\DeclareCaption-\\LabelSeparator}
You can define your own caption label separators with
\begin{quote}
  |\DeclareCaptionLabelSeparator|\marg{name}\marg{code}\mbox{\quad.}
\end{quote}
Again an easy example taken from \thispackage\ itself:
\begin{quote}
  |\DeclareCaptionLabelSeparator{colon}{: }|
\end{quote}
\begin{Expert}
There is also a starred variant, |\DeclareCaptionLabelSeparator*|, which
causes the code being typeset without using the |labelfont=| setting.
So for example the label separators |quad|, |newline|, and |endash|
are defined in this way.
\end{Expert}

\bigskip

\pagebreak[3]
\DescribeMacro{\DeclareCaption-\\Justification}
You can define your own caption justifications with
\begin{quote}
  |\DeclareCaptionJustification|\marg{name}\marg{code}\mbox{\quad.}
\end{quote}
The \meta{code} simply gets typeset just before the caption.
E.g.~using the justification |raggedright|, which is defined as
\begin{quote}
  |\DeclareCaptionJustification{raggedright}{\raggedright}|\mbox{\quad,}
\end{quote}
typesets captions with all lines moved to the left margin.

\bigskip

\pagebreak[3]
\DescribeMacro{\DeclareCaptionFont}
You can define your own caption fonts with
\begin{quote}
  |\DeclareCaptionFont|\marg{name}\marg{code}\quad.
\end{quote}
For example this package defines the options |small| and |bf| as
\begin{quote}
  |\DeclareCaptionFont{small}{\small}|\quad and\\
  |\DeclareCaptionFont{bf}{\bfseries}|\quad.
\end{quote}
\iffalse
The line spacing could be customized using the \package{setspace} package,
for example:%\NEWdescription{v3.0h}
\begin{quote}
  |\usepackage{setspace}|\\
  |\DeclareCaptionFont{singlespacing}{\setstretch{1}}|\quad\footnote{%
  \emph{Note:} Using \cs{singlespacing} does not work here since it contains
  a \cs{vskip} command.}\\
  |\DeclareCaptionFont{onehalfspacing}{\onehalfspacing}|\\
  |\DeclareCaptionFont{doublespacing}{\doublespacing}|\\
  |\captionsetup{font={onehalfspacing,small},labelfont=bf}|
\end{quote}
\example{font={onehalfspacing,small},labelfont=bf,singlelinecheck=off}{\exampletext}
\fi
An example which brings color into life:
\begin{quote}
  |\usepackage{color}|\\
  |\DeclareCaptionFont{red}{\color{red}}|\\
  |\DeclareCaptionFont{green}{\color{green}}|\\
  |\DeclareCaptionFont{blue}{\color{blue}}|\\
  |\captionsetup{labelfont={blue,bf},textfont=green}|
\end{quote}
\example*{labelfont={color=blue,bf},textfont={color=green},singlelinecheck=off}{\exampletext}
But since \thispackage\ already includes the tricky definition
\begin{quote}
  |\DeclareCaptionFont{color}{\color{#1}}|
\end{quote}
you can get the same result simply with
\begin{quote}
  |\usepackage{color}|\\
  |\captionsetup{labelfont={color=blue,bf},|\\
  |               textfont={color=green}}|\quad.
\end{quote}

\medskip

\pagebreak[3]
\DescribeMacro{\DeclareCaptionStyle}
You can define your own caption styles with
\begin{quote}
  |\DeclareCaptionStyle|\marg{name}\oarg{additional options}\marg{options}\mbox{\quad.}
\end{quote}
Remember, caption styles are just a collection of suitable options, saved
under a given name. You can wake up these options at any time with the
option |style=|\meta{style name}.

All caption styles are based on the |base| set of options. (See \Ref{style}
for a complete list.) So you only need to specify options which are different
to them.

If you specify \meta{additional options} they get used in addition when
the caption fits into a single line and this check was not disabled with
the option |singlelinecheck=off|.

Again a very easy example taken from the core of this package: The
caption style |base| is pre-defined as
\begin{quote}
  |\DeclareCaptionStyle{base}%|\\
  |       [justification=centering,indention=0pt]{}|\quad.
\end{quote}

Something more exciting:
\begin{quote}
  |\DeclareCaptionStyle{mystyle}%|\\
  |       [margin=5mm,justification=centering]%|\\
  |       {font=footnotesize,labelfont=sc,margin={10mm,0mm}}|\\
  |\captionsetup{style=mystyle}|
\end{quote}
gives you caption like these ones:
\begin{Example}
  \captionsetup{type=figure,style=mystyle,position=b}
  \caption{A short caption.}
  \caption{A long long long long long long long long long
             long long long long long long long long long
             long long long long long long long long long caption.}
\end{Example}

\bigskip

\pagebreak[3]
\DescribeMacro{\DeclareCaption-\\ListFormat}\NEWfeature{v3.1}
You can define your own caption list formats with
\begin{quote}
  |\DeclareCaptionListFormat|\marg{name}\marg{code using \#1 and \#2}\mbox{\quad.}
\end{quote}
At usage \#1 gets replaced with the label prefix (e.g.~|\p@figure|) and \#2
gets replaced with the reference number (e.g.~|\thefigure|).

\bigskip

\pagebreak[3]
\DescribeMacro{\DeclareCaptionType}\NEWfeature{v3.1f}
You can define your own floating environments \& caption types with
\begin{quote}
  |\DeclareCaptionType|\oarg{options}\marg{type}\oarg{name}\oarg{list name}
\end{quote}
where \meta{options} are one or more of
\begin{quote}\begin{tabular}{r@{}l@{\qquad}l}
  |fileext=| & \meta{file extension}
    & {\small(e.g.~|fileext=lod|)}\\
% |listname=|\meta{list name}\\
% |name=|\meta{prosa name}\\
  |placement=| & \meta{combination of \,\purett{htbp}}
    & {\small(e.g.~|placement=tbp|)}\\
  |within=| & \meta{``within'' counter} \emph{or} \texttt{none}\quad.
    & {\small(e.g.~|within=section|)}
\end{tabular}\end{quote}
If no \meta{options} are given, ``lo\meta{type}'' will be used as \meta{file
extension} for the list, ``|tbp|'' as \meta{placement} specifier,
and ``|chapter|'' resp. ``|none|'' as \meta{``within'' counter},
i.e., the counter which resets the numbering.
(If ``|none|'' was specified as value, the numbering of the new
type will be continuous throughout the document.)

If no \meta{name} is given, the name of the newly created type will be set
to \meta{type}, but with an uppercase first letter.
If no \meta{list name} is given, the list name will be set to ``List of
\meta{name}s''.

The list will be typeset using the command |\listof|\meta{type}|s|.
If the \package{fltpage} package is loaded, an environment called
|FP|\meta{type} will be defined, same for |sideways|\meta{type}
(\package{rotating} package), |SC|\meta{type} (\package{sidecap} package),
and |wrap|\meta{type} (\package{wrapfig} package).

\smallskip

So for example
\begin{quote}
  |\DeclareCaptionType{diagram}|
\end{quote}
will define a new caption type and floating environment called |diagram|,
the list will be stored in a file with the extension |lodiagram|, the name
(used for the caption) will be ``|Diagram|'' and the list name
``|List of Diagrams|''. The list could be typeset with |\listofdiagrams|.
Dependent on which packages are loaded, the environments |FPdiagram|,
|sidewaysdiagram|, |SCdiagram|, and |wrapdiagram| will be defined additionally.

% --------------------------------------------------------------------------- %

\subsection{Further examples}
\label{examples}

\subsubsection*{Example 1}

%\NEWdescription{v3.1}
If you would like to have a line break between caption label and text
you could define it this way:
\begin{quote}
  |\DeclareCaptionFormat{myformat}{#1#2\\#3}|
\end{quote}
If you select this format with |\captionsetup{format=myformat}|
you get captions like this:
%\begin{Example}
%  \captionsetup{skip=0pt}
  \example{format=myformat1,labelfont=bf}{\exampletext}
%\end{Example}
You could even use an indention with this caption format:
\begin{quote}
  |\captionsetup{format=myformat,indention=1cm}|
\end{quote}
This would look like this:
%\begin{Example}
%  \captionsetup{skip=0pt}
  \example{format=myformat1,indention=1cm,labelfont=bf}{\exampletext}
%\end{Example}
Instead, you would like to have an indention only of the first line of
the caption text? No problem, e.g.
\begin{quote}
  |\newlength\myindention|\\
  |\DeclareCaptionFormat{myformat}%|\\
  |       {#1#2\\\hspace*{\myindention}#3}|\\
  \ldots\\
  |\setlength\myindention{1cm}|\\
  |\captionsetup{format=myformat}|
\end{quote}
would give you captions like
%\begin{Example}
%  \captionsetup{skip=0pt}
  \example{format=myformat2,myindention=1cm,labelfont=bf}{\exampletext}
%\end{Example}
But you want to have an caption option for this indention, so you can use
it for example with |\captionsetup|\xx|[figure]|\xx|{myindention=|\ldots|}|?
This could be done, too:
\begin{quote}
  |\newlength\myindention|\\
  |\DeclareCaptionOption{myindention}%|\\
  |       {\setlength\myindention{#1}}|\\
  |\DeclareCaptionFormat{myformat}%|\\
  |       {#1#2\\\hspace\myindention #3}|\\
  \ldots\\
  |\captionsetup{format=myformat,myindention=1cm}|
\end{quote}
would give the same result as the example above.

\subsubsection*{Example 2}

You want captions to look like this:
%\begin{Example}
%  \captionsetup{skip=0pt}
  \example{format=reverse,labelformat=fullparens,labelsep=fill,labelfont=it}{\exampletext}
%\end{Example}
\pagebreak[2]
You could do it this way:
\nopagebreak[3]
\begin{quote}
  |\DeclareCaptionFormat{reverse}{#3#2#1}|\\
  |\DeclareCaptionLabelFormat{fullparens}%|\\
  |       {(\bothIfFirst{#1}{~}#2)}|\\
  |\DeclareCaptionLabelSeparator{fill}{\hfill}|\\
  |\captionsetup{format=reverse,labelformat=fullparens,|\\
  |              labelsep=fill,font=small,labelfont=it}|
\end{quote}

\subsubsection*{Example 3}

The caption text should go into the left margin? A possible solution would be:
\begin{quote}
  |\DeclareCaptionFormat{llap}{\llap{#1#2}#3\par}|\\
  |\captionsetup{format=llap,labelsep=quad,singlelinecheck=no}|
\end{quote}
As a result you would get captions like this:
\example{format=llap,labelsep=quad,singlelinecheck=no,margin=0pt}{\exampletext}

\medskip

If the indention into the margin shall be fixed, you could use a combination
of |\llap| and |\makebox|, for example:
\begin{quote}
  |\DeclareCaptionFormat{llapx}%|\\
  |            {\llap{\makebox[5em][l]{#1}}#3\par}|\\
  |\captionsetup{format=llapx,singlelinecheck=off}|
\end{quote}
\example{format=llapx,singlelinecheck=off,skip=0pt,margin=0pt}{\exampletext}

\subsubsection*{Example 4}

This example puts a figure aside a table, but uses only one common caption for both.
This will be achieved by a combination of
|\Declare|\x|Caption|\x|Label|\x|Format| and |\caption|\x|list|\x|entry|:
\begin{quote}
  |\DeclareCaptionLabelFormat{andtable}%|\\
  |            {#1~#2 \& \tablename~\thetable}|\\
  \ldots\\
  |\begin{figure}|\\
  |  \centering|\\
  |  \includegraphics{|\ldots|}%|\\
  |  \qquad|\\
  |  \begin{tabular}[b]{\ldots}|\\
  |    |\ldots\\
  |  \end{tabular}|\\
  |  \captionlistentry[table]{|\ldots|}|\\
  |  \captionsetup{labelformat=andtable}|\\
  |  \caption{|\ldots|}|\\
  |\end{figure}|
\end{quote}
\DeleteShortVerb{\|}%
\noindent\begin{minipage}{\linewidth}
  \captionsetup{type=figure}
  \centering
  \includegraphics[width=30pt]{cat}%
  \qquad
  \begin{tabular}[b]{r|rr}
      & x & y \\\hline
    a & 1 & 2 \\
    b & 3 & 4 \\
  \end{tabular}
  \captionlistentry[table]{A figure and a table with a common caption}
  \captionsetup{labelformat=andtable}
  \caption{A figure and a table with a common caption~\footnotemark}
\end{minipage}
\footnotetext{The picture was taken with permission from the
  \LaTeX\ Companion\cite{TLC2} examples.}
\MakeShortVerb{\|}

\vfill

% --------------------------------------------------------------------------- %

\pagebreak[4]
\section{Document classes \& Babel support}
\label{classes}

%\NEWdescription{v3.1}
{\small\emph{Please note:} Many document classes already have build-in options and
commands for customizing captions. If these possibilities are sufficient for
you, there is usually no need for you to use the \package{caption} package
at all. And if you are just interested in using the command \cs{captionof},
loading of the very small \package{capt-of} package is usually sufficient.}

\medskip

This section will give you an overview of the document classes the
\package{caption} supports, what do they already offer regarding captions,
what side effects will occur when using the \package{caption} package with
them, and what are the `default' settings for them.

\NEWfeature{v3.1}
The `default' settings depend on the document class you use; they represent
how the class author wanted the captions to look like. So for example
setting |format=default| can give you different visual designs when used
with different document classes.

\DANGER
If you don't find the document class you use in this section, you usually
don't have to worry: Many document classes are derived from one of the
standard document classes \class{article}, \class{report}, or \class{book},
and behave the same regarding captions.
\Thispackage\ automatically does a compatibility check against the document
class used and will give you a clear warning if a incompatibility was detected.
If you don't get such warning everything is fine, but if you get it the usage of
\thispackage\ is not recommended and especially not supported.

{\small(If you get such a compatibility warning but decide to use \thispackage{}
 anyway, you should watch carefully what side-effects occur, usually the
 look and feel of your captions will change by just including \thispackage{}
 without options, meaning they do not look like as intended by the author
 of the document class.
 If this is fine for you, you should first specify the option |style=base|
 via |\usepackage[style=base]{caption}| or |\captionsetup{style=base}|
 to set \thispackage\ into a well-defined state.
 Afterwards you can start setting your own options additionally and
 keep your fingers crossed.)}

\newcommand*\Option{Option}
\newcommand*\defaultvalue{\texttt{default} value}
\newcommand*\use{\textit{use}}
\newcommand*\settings{\textit{settings}}
\newcommand*\nofont{\textit{none}}

\subsection{Standard \LaTeX: article, report, and book}

\begin{tabular}{ll}
\Option          & \defaultvalue \\\hline
|format=|        & |plain| \\
|labelformat=|   & |simple| \\
|labelsep=|      & |colon| \\
|justification=| & |justified| \\
|font=|          & \nofont \\
|labelfont=|     & \nofont \\
|textfont=|      & \nofont \\
\end{tabular}

\noindent{\small(\emph{Note:} This also applies to document classes derived from them.)}

\subsection{\AmS: amsart, amsproc, and amsbook}
\label{AMS}

\begin{tabular}{ll}
\Option          & \defaultvalue \\\hline
|format=|        & |plain| \\
|labelformat=|   & |simple| \\
|labelsep=|      & a period $+$ |\enspace| \\
|justification=| & |justified| \\
|font=|          & |\@captionfont| \\
|labelfont=|     & |\@captionheadfont| \\
|textfont=|      & |\@captionfont\upshape| \\
\end{tabular}

{\small(|\@captionfont| will be set to |\normalfont|, and |\@captionheadfont| to |\scshape|
 by the \AmS\ document classes.)}

Furthermore the margin will be set to |\captionindent| for more-than-one-line captions
(which will be set to |3pc| by the \AmS\ classes),
the margin for single-line captions will be set to the half of it instead.
If you want to use a common margin for both, insert |\clearcaptionsetup[margin*]{singleline}|
into the preamble of your document, after loading \thispackage.

Additionally the options |figureposition=b,tableposition=t| will be set.
You can override these settings by specifying other values for
|figureposition=| or |tableposition=| in the option list while loading \thispackage.

\subsection{beamer}
\label{beamer}

\begin{tabular}{ll}
\Option          & \defaultvalue \\\hline
|format=|        & |plain| \\
|labelformat=|   & \textit{not numbered} \\
|labelsep=|      & |colon| \\
|justification=| & |raggedright| \\
|font=|          & \use\ \class{beamer} |caption| \settings \\
|labelfont=|     & \use\ \class{beamer} |caption name| \settings \\
|textfont=|      & \nofont \\
\end{tabular}

\textbf{Build-in features and side-effects:}\\
You can setup font and color settings with
|\setbeamerfont|\xx|{caption}|\xx\marg{options} and
|\setbeamerfont|\xx|{caption name}|\xx\marg{options}.
This will still work, unless you set a different font with
|\captionsetup|\xx|{font=|\xx\meta{options}|}| or
|\captionsetup|\xx|{labelfont=|\xx\meta{options}|}|.\par
Furthermore the \class{beamer} classes offer different caption templates
which can be chosen with
|\set|\x|beamter|\x|template|\xx|{caption}|\xx|[|\meta{template}|]|.
Since \thispackage\ replaces this caption template mechanism,
|\def|\x|beamer|\x|template*|\xx|{caption}|\xx\marg{template code}
and
|\set|\x|beamer|\x|template|\xx|{caption}|\xx|[|\meta{template}|]|
will have no effect when \thispackage\ is used.

\subsection{\KOMAScript: scrartcl, scrreprt, and scrbook}
\label{KOMA}

\begin{tabular}{ll}
\Option          & \defaultvalue \\\hline
|format=|        & \use\ |\setcapindent| \textit{\&} |\setcaphanging| \settings \\
|labelformat=|   & |simple| \\
|labelsep=|      & \use\ |\captionformat| \\
|justification=| & |justified| \\
|font=|          & \use\ |\setkomafont{caption}| \settings \\
|labelfont=|     & \use\ |\setkomafont{captionlabel}| \settings \\
|textfont=|      & \nofont \\
\end{tabular}

\textbf{Build-in features:}\\
The \KOMAScript\ document classes offer many ways to customize the look and
feel of the captions. For an overview and a full description please take a
look at the \KOMAScript\ documentation, section `Tables and Figures'.

\textbf{Side effects:}\\
The optional argument of |\setcapwidth| is not supported (yet) and will be
ignored if used in conjunction with the \package{caption} package.
Furthermore the \KOMAScript\ options |tablecaptionabove| \&
|tablecaptionbelow| and the commands |\captionabove| \& |\captionbelow|
are stronger than the |position=| setting offered by the \package{caption}
package.

\subsection{\NTG: artikel, rapport, and boek}
\label{NTG}

\begin{tabular}{ll}
\Option          & \defaultvalue \\\hline
|format=|        & |plain| \\
|labelformat=|   & |simple| \\
|labelsep=|      & |colon| \\
|justification=| & |justified| \\
|font=|          & \nofont \\
|labelfont=|     & \use\ |\CaptionLabelFont| \\
|textfont=|      & \use\ |\CaptionTextFont| \\
\end{tabular}

\textbf{Build-in features and side-effects:}\\
|\CaptionLabelFont| and |\CaptionTextFont| can be set either directly or
by using |\CaptionFonts|. Both is still supported unless you use
one of the two options |labelfont=| or |textfont=| offered by \thispackage.

\subsection{\SmF{} classes: smfart and smfbook}
\label{SMF}

Since the \SmF\ document classes are derived from the \AmS\ document classes
the same default values are valid here.

Additionally the margin is limited up to the tenth of the |\linewidth|.
If you don't like this limitation, you can switch it off with the option
|maxmargin=off| or |maxmargin=false| (which both means the same).

\pagebreak[4]
\subsection{The frenchb Babel option}
\label{frenchb}

If you use the \package{frenchb} option of the \package{babel} package
with one of the three standard \LaTeX{} classes (or a one derived from them)
the default |labelsep=| will be set to \cs{CaptionSeparator} (offered by
\package{frenchb}), overriding the default value set by the document class.
So redefining \cs{CaptionSeparator} will still work, unless you don't
select a different |labelsep=| than the default one.

\INFO*
Please load \thispackage\ \emph{after} the \package{babel} package.

\subsection{The frenchle and frenchpro packages}
\label{frenchpro}

If you use the \package{frenchle} or \package{frenchpro} package,
the default |labelsep=| will be set to \cs{captionseparator} (offered by
\package{frenchle/pro}) plus \cs{space}, overriding the default value set
by the document class.
So redefining \cs{captionseparator} will still work, unless you don't
select a different |labelsep=| than the default one.

Furthermore the default |textfont=| will be set to |textfont=it|,
since this emulates the default setting of |\captionfont| defined by the
\package{frenchle} or \package{frenchpro} package.
%If you redefine |\captionfont| after loading the \package{frenchle} or
%\package{frenchpro} package, this redefinition gets lost.
Please note that the command \cs{captionfont} is used by the
\package{caption} package internally for a different purpose,
so you should not change it (anymore).

The command \cs{unnumberedcaptions}\marg{figure or table} will still work,
but only unless you don't select a different |labelformat=| than the default
one.

\INFO*
Please load \thispackage\ \emph{after} the \package{frenchle}
or \package{frenchpro} package.

% --------------------------------------------------------------------------- %

\pagebreak[4]
\section{Package support}
\label{packages}

%\NEWdescription{v3.1}
\Thispackage\ was adapted to the following packages which deals with
captions, too:
\begin{quote}
  \package{float}, \package{floatflt}, \package{fltpage},
  \package{hyperref}, \package{hypcap}, \package{listings},
  \package{longtable}, \package{picinpar}, \package{picins},
  \package{rotating}, \package{setspace}, \package{sidecap},
  \package{subfigure}, \package{supertabular}, \package{threeparttable},
  and \package{wrapfig}
\end{quote}

Furthermore the \package{floatrow} and the \package{subfig} package
supports \thispackage\ and use its |\captionsetup| interface.

\newcommand\packagedescription[1]{%
  \ifvmode\else\par\fi
  \nopagebreak
  \parbox[b]{\linewidth}{\footnotesize\leftskip=10pt\rightskip=10pt\relax#1}\par
  \nopagebreak\smallskip\nopagebreak}
\newcommand\Note{\smallskip\emph{Note:}~}

\pagebreak[3]
\subsection{algorithms}
\label{algorithms}
\packagedescription{%
The \package{algorithms} bundle\cite{algorithms} provides two environments:
The \texttt{algorithmic} environment provides an environment for describing
algorithms, and the \texttt{algorithm} environment provides a ``float''
wrapper for algorithms.}

Since the \texttt{algorithm} environment is implemented via |\newfloat|
provided by the \package{float} package\cite{float}, please see \Ref{float}.

\iffalse
\pagebreak[3]
\subsection{algorithm2e}
\label{algorithm2e}
\packagedescription{%
The \package{algorithm2e} package\cite{algorithm2e} offers an environment for
writing algorithms in LaTeX2e.}

Since the \package{algorithm2e} package does not use some kind of standard
interface for defining its floating environment (e.g.~|\newfloat| of the
\package{float} package) and typesetting its caption,
this package is \emph{not} supported by \thispackage, and never will be.
Unfortunately it does not offer a simple, non-floating environment, too.
But you can define it on your own, for example:
\begin{quote}
  |\usepackage{algorithm2e}|\\
  |% save the "algorithm" environment from the algorithm2e package|\\
  |\let\ORIGalgorithm\algorithm|\\
  |\let\ORIGendalgorithm\endalgorithm|\\
  |% define the algorithmic environment|\\ % , based on the saved environment
  |\newenvironment{algorithmic}%|\\
  |  {\renewenvironment{algocf}[1][h]{}{}% pass over floating stuff|\\
  |   \ORIGalgorithm}%|\\
  |  {\ORIGendalgorithm}|\\
  \ldots
\end{quote}
Having defined this non-floating \texttt{algorithmic} environment,
you can define your own new floating environment with |\newfloat| of the
\package{float} package (or |\DeclareNewFloatType| of the \package{floatrow}
package), and use the combination of this floating environment
and \texttt{algorithmic} in its body, just like you would do when you use the
\package{algorithm}/\package{algorithmic} package tandem.

You could even use the \package{algorithm} package for this purpose, for example:
\begin{quote}
  \ldots\\
  |% load the algorithm package to re-define the|\\
  |% floating environment "algorithm" and \listofalgorithms|\\
  |\let\listofalgorithms\undefined|\\
  |\usepackage{algorithm}|\\
  \ldots\\
  |% Example usage:|\\
  |\begin{algorithm}|\\
  |\caption{An algorithm}|\\
  |\begin{algorithmic}|\\
  |  \SetVline|\\
  |  \eIf{cond1}{|\\
  |    a line\;|\\
  |  }{|\\
  |    another line\;|\\
  |  }|\\
  |\end{algorithmic}|
\end{quote}
Now you are finally able to customize the float and caption layout like every
other floating environment defined with the \package{float} package\cite{float},
please see \Ref{float}.

%{\small(An alternative would be using the \package{algorithmicx} package.)}
\fi

\pagebreak[3]
\subsection{float}
\label{float}
\packagedescription{%
The \package{float} package\cite{float} introduces the commands
\cs{restylefloat} to give existing floating environments a new look \& feel
and \cs{newfloat} to define new floating environments.
It also provides the \texttt{H} float placement option of the obsolete
\package{here} package.}

For floating environments defined with \cs{newfloat} or \cs{restylefloat} the
|po|\x|si|\x|tion| option has no effect on the main caption anymore, since its
placement and spacing will be controlled by the selected float style instead.

Furthermore a caption style and options defined with the name of the float
style will be executed additionally to the regular ones.
Using this mechanism \thispackage\ emulates the default look \& feel of the
|ruled| captions: It defines the caption style
\begin{quote}
  |\DeclareCaptionStyle{ruled}%|\\
  |       {labelfont=bf,labelsep=space,strut=off}|\mbox{\quad.}
\end{quote}
So to change this you need either define your own caption style called
|ruled| or use |\captionsetup[ruled]|\marg{options} to specify additional
options.%,
%e.g.~|\captionsetup[ruled]{labelsep=colon}|.

Also by using this mechanism the skip between a |boxed| float and its caption
is specified, overriding its global value:
\begin{quote}
  |\captionsetup[boxed]{skip=2pt}|
\end{quote}
For changing this, just use |\captionsetup[boxed]{skip=|\meta{value}|}|
with an appropriate value. Or if you want to use the global |skip| setting
instead, you can remove the usage of the local setting for these floats with
|\clearcaptionsetup[skip]{boxed}|.

\Note
Only one single caption can be typeset inside environments defined with
|\new|\x|float| or |\re|\x|style|\x|float|, furthermore these environments
are not behaving exactly like the pre-defined floats |figure| \& |table|.
As a consequence many packages do not cooperate well with these.
Furthermore the float package has some caveats \& limitations, so if you
just want to define a new simple floating environment---behaving like
|figure| or |table|---I recommend using \cs{DeclareCaptionType}
instead.
And for defining non-simple floating environments and customization I
recommend using |\DeclareNewFloatType| offered by the \package{floatrow}
package\cite{floatrow}.

\iffalse
Please also note that you \emph{don't} need a |\restylefloat| for using
the |H| float placement specifier. Some docs say so, but they are
wrong.
And |\restylefloat{table}| is a very good method to shoot yourself
in the foot, since many packages using |table| internally are not working
correctly afterwards.
\fi

\pagebreak[4]
\subsection{floatflt}
\label{floatflt}
\packagedescription{%
The \package{floatflt} package\cite{floatflt} offers figures and tables
which do not span the full width of a page and are float around by text.}

\NEWfeature{v3.1}
If you want to setup special options for the |floatingfigure| \& |floatingtable|
environments you can use
\begin{quote}
  |\captionsetup[floatingfigure]|\marg{options}\\
  |\captionsetup[floatingtable]|\marg{options}\quad.
\end{quote}
These options will be executed additionally to the regular ones for
|figure| or |table|.

\Note
The |margin| resp.~|width| setting will not be used for these figures \& tables,
unless you set it explicit with |\captionsetup[floatingfigure]{|\ldots|}| or
|\captionsetup[floatingtable]{|\ldots|}|.

\pagebreak[3]
\subsection{fltpage}
\label{fltpage}
\packagedescription{%
The \package{fltpage} package\cite{fltpage} offers the outhouse of the
caption for |figure|s or |table|s which needs the whole page
for its contents. This will be done by placing the caption on the bottom
of the previous or next page.}

\NEWfeature{v3.1}
Two options control the links to the |FPfigure| and |FPtable|:
\begin{description}
\item{\texttt{FPlist=caption} or \texttt{FPlist=figure}}\\[\smallskipamount]
If set to |caption|, the list entry will link to the caption; if set to
|figure|, it will link to the figure contents.
(The default setting is |FPlist=caption|.)
\item{\texttt{FPref=caption} or \texttt{FPref=figure}}\\[\smallskipamount]
If set to |caption|, a \cs{ref}, \cs{pageref}, \cs{autoref}, or \cs{nameref}
will link to the caption; if set to |figure|, it will link to the figure contents.
(The default setting is |FPref=figure|.)
\end{description}

If you want to setup special options for the |FPfigure| \& |FPtable|
environments you can use
\begin{quote}
  |\captionsetup[FPfigure]|\marg{options}\\
  |\captionsetup[FPtable]|\marg{options}\quad.
\end{quote}
These options will be executed additionally to the regular ones for
|figure| or |table|.

Furthermore \cs{DeclareCaptionType}\marg{name} will also define
an environment called |FP|\meta{name} which behaves like |FPfigure| and
|FPtable|.

\pagebreak[4]
\subsection{hyperref}
\label{hyperref}
\packagedescription{%
The hyperref package\cite{hyperref} is used to handle cross-referencing
commands in LaTeX to produce hypertext links in the document.}

\NEWfeature{v3.1}
There are two options available to control the placement of hyperlink anchors:
\begin{description}
\item{\texttt{hypcap=true} or \texttt{hypcap=false}}\\[\smallskipamount]
If set to |true| all hyperlink anchors -- where entries in the
List of Figures, |\ref|, and |\autoref| will link to -- are placed at
the beginning of the (floating) environment.\par
If set to |false| the hyperlink anchor is (usually) placed at the caption.\par
(The default setting is |hypcap=true|.)
\item{\texttt{hypcapspace=}\meta{amount}}\\[\smallskipamount]
Because it looks poor if the hyperlink points exactly at the top of
the figure or table, you can specify a vertical distance between
the hyperlink anchor and the (floating) environment itself,
e.g.~|hypcapspace=0pt| removes this distance.\par
(The default setting is |hypcapspace=0.5\baselineskip|.)
\end{description}

Both settings have no effect in |lstlisting|s (provided by the
\package{listings} package), |longtable|s (provided by the
\package{longtable} package), and |supertabular|s (provided by the
\package{supertabular} package), within these environments hyperlink
anchors will always be placed as if |hypcap=true| \& |hypcapspace=0pt|
would be set.

\pagebreak[3]Please note:\nopagebreak
\begin{description}
\item{\cs{captionof}\marg{type}\csmarg\ldots\ vs.
      \cs{captionsetup}\csmarg{type=\textrm{\meta{type}}}$+$\cs{caption}\csmarg\ldots}\\[\smallskipamount]
Without \package{hyperref} loaded, both will give you identical results.
But with \package{hyperref} loaded, and with |hypcap=true| requested, the
hyperlink anchor will be placed different.
For example:
\begin{quote}
|\begin{minipage}{\linewidth}|\\
|  |\ldots\\
|  \captionof{figure}{A figure}|\\
|\end{minipage}|
\end{quote}
will place the hyperlink anchor at the caption.
(And if |hypcap=true| is set, you will get a warning about this.)
But
\begin{quote}
|\begin{minipage}{\linewidth}|\\
|  \captionsetup{type=figure}|\\
|  |\ldots\\
|  \caption{A figure}|\\
|\end{minipage}|
\end{quote}
will place the hyperlink anchor at the beginning of the |minipage|,
since |\caption|\x|setup|\xx|{type=|\xx|figure}| does not only set the caption type
to ``figure'' but does place a hyperlink anchor, too.

\item{\cs{caption}\csoarg{}\csmarg\ldots\ vs.
      \cs{captionsetup}\csmarg{list=false}$+$\cs{caption}\csmarg\ldots}\\[\smallskipamount]
Again, without \package{hyperref} loaded, both will give you identical results.
But with \package{hyperref} loaded, the difference is in the nuances.
So for example the optional argument of \cs{caption} will also be written to
the |aux| file, and will be used by the \cs{nameref} command.
So if you choose to use \cs{caption} with empty optional argument,
\cs{nameref} will also give you an empty result.
So it's better to use \cs{captionsetup}\csmarg{list=false} if you don't
want an entry in the List of Figures or List of Tables.
\end{description}

\pagebreak[3]
\subsection{hypcap}
\label{hypcap}
\packagedescription{%
The \package{hypcap} package\cite{hypcap} offers a solution to the problem
that links to a float using \package{hyperref} may anchors to the caption
rather than the beginning of the float.
Since \thispackage\ \version{3.1} already solves this problem for itself,
the \package{hypcap} package is usually not needed, at least when you use
\thispackage.}

If the \package{hypcap} package is loaded additionally to the \package{hyperref}
package, it takes over the control of the hyperlink anchor placement from \thispackage,
overriding the options |hypcap=| \& |hypcapspace=|.

So for a manual placement of hyperlink anchors |\captionsetup{type=|\meta{type}|}|
is not sufficient anymore, instead you need to use |\capstart|
(provided by the \package{hypcap} package) for this.

Regarding the automatically placement the \package{hypcap} package offers good
placement of hyperlink anchors for the floating environments |figure| and
|table| only. In contrast the |hypcap=true| option of \thispackage\ also
offers good placements of hyperlink anchors for
|floatingfigure|s (provided by the \package{floatflt} package),
|FPfigure|s \& |FPtable|s (provided by the \package{fltpage} package),
|figwindow|s (provided by the \package{picinpar} package),
|parpic|s (provided by the \package{picins} package),
|SCfigure|s (provided by the \package{sidecap} package),
|threeparttable|s (provided by the \package{threeparttable} package,
and |wrapfigure|s (provided by the \package{wrapfig} package).%---%
%so by loading the \package{hypcap} package additionally you will
%loose that.

\pagebreak[3]
\subsection{listings}
\label{listings}
\packagedescription{%
The \package{listings} package\cite{listings} typesets programming code.}

If you want to setup special options for the |lstlinsting| environment
you can use
\begin{quote}
  |\captionsetup[lstlisting]|\marg{options}\quad.
\end{quote}

\pagebreak[3]
\subsection{longtable}
\label{longtable}
\packagedescription{%
The \package{longtable} package\cite{longtable} offers an environment
which behaves similar to the |tabular| environment, but the table
itself can span multiple pages.}

If you want to setup special options for the |longtable| environment
you can use
\begin{quote}
  |\captionsetup[longtable]|\marg{options}\quad.
\end{quote}
These options will be executed additionally to the regular ones for
|table|.

The |margin| \& |width| settings usually override |\LTcapwidth|, so
you get an equal look \& feel of the captions in |table|s and
|longtable|s. But if you set |\LTcapwidth| to a value different from
its default $=$ |4in|, \thispackage\ will follow that.
(But |\LTcapwidth| will be overwritten by
|\captionsetup[longtable]{width=|\meta{value}|}|, even if it is set
to a value different than |4in|.)

\Note
\cs{captionof} and \cs{ContinuedFloat} do not work for |longtable|s.
\NEWfeature{v3.1}
If you need a |longtable| which does not increment the |table| counter
please use the |longtable*| environment offered by the \package{ltcaption}
package which is part of \thispackage\ bundle and will be loaded
automatically.

\pagebreak[3]
\subsection{picinpar}
\label{picinpar}
\packagedescription{%
Similar to the \package{floatflt} package the \package{picinpar}
package\cite{picinpar} offers figures and tables which do not span the full
width of a page and are float around by text.
For a detailed discussion about the differences between these packages
please take a look at The \LaTeX\ Companion\cite{TLC2}.}

\NEWfeature{v3.1}
If you want to setup special options for the |figwindow| \& |tabwindow|
environments you can use
\begin{quote}
  |\captionsetup[figwindow]|\marg{options}\\
  |\captionsetup[tabwindow]|\marg{options}\quad.
\end{quote}
These options will be executed additionally to the regular ones for
|figure| or |table|.

\Note
The |margin| resp.~|width| setting will not be used for these figures \& tables,
unless you set it explicit with |\caption|\x|setup|\xx|[figwindow]{|\ldots|}| or
|\caption|\x|setup|\xx|[figtable]{|\ldots|}|.

\pagebreak[3]
\subsection{picins}
\label{picins}
\packagedescription{%
Similar to the \package{floatflt} and \package{picinpar} package the
\package{picins} package\cite{picins} offers figures and tables which do not
span the full width of a page and are float around by text.
For a detailed discussion about the differences between these packages
please take a look at The \LaTeX\ Companion\cite{TLC2}.}

\NEWfeature{v3.1}
If you want to setup special options for the |parpic| environment you can use
\begin{quote}
  |\captionsetup[parpic]|\marg{options}\quad.
\end{quote}
These options will be executed additionally to the regular ones for
|figure| or |table|.\par
Furthermore |\piccaption[]{|\ldots|}| produce no entry in the List of Figures,
and |\piccaption*{|\ldots|}| gives an unlabeled \& unnumbered caption.

\Note
The |margin| resp.~|width| setting will not be used for these figures \& tables
if \cs{piccaptionside} or \cs{piccaptiontopside} is used.
The |width| setting will not be used (but the |margin| setting will) if
\cs{piccaptionoutside} or \cs{piccaptioninside} is used.
But you can override this by setting it explicit with
|\captionsetup[parpic]{|\ldots|}|.

\Note
If you want to have a |\piccaption| of another type as |figure|, please do
\emph{not} re-define |\@captype| as suggested by the \package{picins}
documentation. Please use the |\piccaptiontype|\marg{type} command which is
offered by \thispackage\ instead, e.g.:
\begin{quote}
  |\piccaptiontype{table}|\\
  |\piccaption{An example table}|\\
  |\parpic(50mm,10mm)[s]{|\ldots|}|
\end{quote}

\pagebreak[3]
\subsection{rotating}
\label{rotating}
\packagedescription{%
The \package{rotating} package\cite{rotating} offers the floating
environments \texttt{sideways\-figure} and \texttt{sideways\-table}
which are just like normal figures and tables but rotated by 90 degree.
Furthermore a command \cs{rotcaption} is offered for rotated captions only.}

\iffalse % No, we don't do that
If you want to setup special options for the |sidewaysfigure| \& |sidewaystable|
environments you can use
\begin{quote}
  |\captionsetup[sidewaysfigure]|\marg{options}\\
  |\captionsetup[sidewaystable]|\marg{options}\quad.
\end{quote}
These options will be executed additionally to the regular ones for
|figure| or |table|.
\fi

The command \cs{rotcaption} will be extended by \thispackage, so
|\rotcaption*| or |\rotcaptionof| can be used analogous to |\caption| and
|\captionof|.

\NEWfeature{v3.1}
Furthermore \cs{DeclareCaptionType}\marg{name} will also define
an environment called |sideways|\meta{name} which behaves like
|sideways|\x|figure| and |sideways|\x|table|.

\pagebreak[3]
\subsection{setspace}
\label{setspace}
\packagedescription{%
The \package{setspace} package\cite{setspace} offers options and commands
to change the spacing,
e.g.\ \cs{usepackage}\xx\csoarg{one\x half\x spacing}\xx\csmarg{set\x space}
causes the document to be typeset in one-and-a-half spacing.}

If the \package{setspace} package is used in conjunction with \thispackage,
the caption will be typeset with single spacing as default. This can be changed
by specifying either |font=onehalfspacing|, |font=doublespacing|, or
|font={stretch=|\meta{amount}|}|. \See{\Ref{fonts}}

\pagebreak[3]
\subsection{sidecap}
\label{sidecap}
\packagedescription{%
The \package{sidecap} package\cite{sidecap} offers the floating
environments |SCfigure| and |SCtable| which are like usual figures
and tables but the caption will be put \emph{beside} the contents.}

If you want to setup special options for the |SCfigure| \& |SCtable|
environments you can use
\begin{quote}
  |\captionsetup[SCfigure]|\marg{options}\\
  |\captionsetup[SCtable]|\marg{options}\quad.
\end{quote}
These options will be executed additionally to the regular ones for
|figure| or |table|.

\pagebreak[3]
\NEWfeature{v3.1}
Furthermore \cs{DeclareCaptionType}\marg{name} will also define
an environment called |SC|\meta{name} which behaves like |SCfigure| and
|SCtable|.

\pagebreak[3]
\Note
The \package{sidecap} package offers its own options for justification.
If set, they will override the one specified with the caption option
|justification=| for captions beside their contents.

\pagebreak[3]
\Note
The |margin| resp.~|width| setting will not be used for these figures \& tables,
unless you set it explicit with |\captionsetup|\xx|[SCfigure]|\xx|{|\ldots|}|
or |\captionsetup|\xx|[SCtable]|\xx|{|\ldots|}|.

\medskip{\small(Instead of using the \package{sidecap} package you can also use
the more powerful \package{floatrow} package\cite{floatrow} for this purpose.)}

\pagebreak[3]
\subsubsection*{Undocumented features}
The \package{sidecap} package \version{1.6} has some undocumented package
options and commands which allow further customization of the side-captions:

\pagebreak[3]
\DescribeMacro{margincaption}
The package option
\begin{quote}
  |margincaption|\qquad{\small(e.g.~|\usepackage[margincaption]{sidecap}|)}
\end{quote}
causes all side-captions to be placed into the margin.

\pagebreak[3]
\DescribeMacro{\sidecaptionvpos}
The command
\begin{quote}
  |\sidecaptionvpos|\marg{float type}\marg{pos}
\end{quote}
sets the vertical position of the side-caption. \meta{pos} can be either `|t|'
(for top alignment), `|b|' (for bottom alignment), or `|c|' (for center alignment).
The default setting for \env{table} is `|t|', for \env{figure} and all other
ones defined with |\Declare|\x|Caption|\x|Type| it's `|b|'.

\pagebreak[3]
\subsection{subfigure}
\label{subfigure}
\packagedescription{%
The \package{subfigure} package\cite{subfigure} provides support for small or
`sub' figures and tables within a single figure or table environment.
This package is obsolete, new users should use \package{subfig} instead.}

Since the \package{subfigure} package is obsolete it will only be supported in
a way that old documents (which have used \thispackage\ \version{1.x} during
development) should still compile as expected.

Please use the \package{subfig} package instead with supports \thispackage\
\version{3.x}.

\See{the \package{subfig} package\cite{subfig} documentation for details.}

\pagebreak[3]
\subsection{supertabular}
\label{supertabular}
\packagedescription{%
The \package{supertabular} package\cite{supertabular} offers an environment
which is quite similar to the |longtable| environment provided
by the \package{longtable} package\cite{longtable}:
Both offers the typesetting of tables which can span multiple pages.
For a detailed discussion about the differences between these two powerful
packages please take a look at The \LaTeX\ Companion\cite{TLC2}.}

If you want to setup special options for the |supertabular| environment
you can use
\begin{quote}
  |\captionsetup[supertabular]|\marg{options}\quad.
\end{quote}
These options will be executed additionally to the regular ones for
|table|.

\Note
\cs{ContinuedFloat} does not work for |supertabular|s.

\pagebreak[3]
\subsection{threeparttable}
\label{threeparttable}
\packagedescription{%
Provides a scheme for tables that have a structured note section after the
table contents and the caption.
This scheme provides an answer to the old problem of putting footnotes in
tables---by making footnotes entirely unnecessary.}

\NEWfeature{v3.1}
If you want to setup special options for the |threeparttable| \&
|measuredfigure| environments you can use
\begin{quote}
  |\captionsetup[threeparttable]|\marg{options}\\
  |\captionsetup[measuredfigure]|\marg{options}\quad.
\end{quote}
These options will be executed additionally to the regular ones for
|table| or |figure|.

\Note
Since the caption will have the same width as the contents here,
the |margin| resp.~|width| setting will not be used for these figures \& tables,
at least unless you set it explicit with
|\caption|\x|setup|\xx|[threeparttable]|\xx|{|\ldots|}|
or |\caption|\x|setup|\xx|[measuredfigure]|\xx|{|\ldots|}|.

\medskip{\small(Instead of using the \package{sidecap} package you can also use
the \package{floatrow} package\cite{floatrow} for this purpose.)}

\pagebreak[3]
\subsection{wrapfig}
\label{wrapfig}
\packagedescription{%
Similar to the \package{floatflt}, the \package{picinpar}, and the
\package{picins} package the \package{wrapfig} package\cite{wrapfig} offers
figures and tables which do not span the full width of a page and are float
around by text.
For a detailed discussion about the differences between these packages
please take a look at The \LaTeX\ Companion\cite{TLC2}.}

\NEWfeature{v3.1}
If you want to setup special options for the |wrapfigure| \& |wraptable|
environments you can use
\begin{quote}
  |\captionsetup[wrapfigure]|\marg{options}\\
  |\captionsetup[wraptable]|\marg{options}\quad.
\end{quote}
These options will be executed additionally to the regular ones for
|figure| or |table|.

Furthermore \cs{DeclareCaptionType}\marg{name} will also define
an environment called |wrap|\meta{name} which behaves like |wrapfigure| and
|wraptable|.

\Note
The |margin| resp.~|width| setting will not be used for these figures \& tables,
unless you set it explicit with |\caption|\x|setup|\xx|[wrapfigure]|\xx|{|\ldots|}|
or |\caption|\x|setup|\xx|[wraptable]|\xx|{|\ldots|}|.

\Note
If the \package{wrapfig} package should be used in coorperation with the
\package{float} package, it needs to be loaded \emph{after} the
\package{float} package. Furthermore \cs{newfloat} or \cs{restylefloat}
commands \emph{must} be placed after \emph{both} packages have been loaded.

% --------------------------------------------------------------------------- %

\pagebreak[4]
\section{History}
\label{history}

The version $1.0$ was written in 1994 and was offering a handful of options
to customize the look \& feel of the captions. Version $1.2$ added the
support of the \package{float} package.
(The other versions $1.x$ were mainly bugfix-releases.)

The \package{caption2} package $2.0$ was an experimental side-version of
the regular \package{caption} package. It was made public as beta test version
without proper documentation in 1995 because of the strong demand for new
features and adaptations to additional packages like the \package{longtable}
package.
Furthermore it offered a revised support of the \package{subfigure} package.
(A version $2.1$ was offered as bugfix-release in 2002.)

In 2003 I finally found some time, so a new regular release $3.0$
of the \package{caption} package could be build in cooperation with
Frank Mittelbach and Steven Cochran.
It was released in December 2003 and superseded the neglected
\package{caption2} package.
Main parts were re-written and it provided a complete re-work of
the user interface.
Furthermore it supported the \package{hyperref}, \package{hypcap},
\package{listings}, \package{sidecap}, and \package{supertabular} packages
additionally.

While all the previous versions were designed for usage with the standard
\LaTeX\ document classes \class{article}, \class{report}, and \class{book},
the current version $3.1$ released in 2007 also supports the \AmS,
\KOMAScript, \NTG, and \SmF\ document classes, and the \class{beamer} class
as well.
Furthermore it was adapted to the \package{frenchb} Babel option,
the \package{frenchle} \& \package{frenchpro} packages,
and the \package{floatflt}, \package{fltpage}, \package{picinpar},
\package{picins}, \package{setspace}, \package{threeparttable},
and \package{wrapfig} packages.
New commands and options were introduced as well, for example
|\caption|\x|list|\x|entry|, |\Declare|\x|Caption|\x|List|\x|Format|,
|\Declare|\x|Caption|\x|Type|, \opt{figurewithin=} \& \opt{tablewithin=},
\opt{list=} \& \opt{listformat=}, and \opt{maxmargin=} \& \opt{minmargin=}.
Another benefit are the new hypcap and sub-caption features.
\See{\Ref{hyperref} and the \package{subcaption} package documentation}

\pagebreak[4]
\section{Compatibility to older versions}
\label{compatibility}

\subsection{caption v\texorpdfstring{$1.x$}{1.x}}
\label{caption1}

This version of \thispackage\ still supports the old options
and commands provided by the version $1.x$ of this package. So there
shouldn't occur any problems compiling old documents, but please don't mix
old options and commands with the new ones. This isn't supported and can
cause ugly side effects.

Here comes a short oversight of the obsolete options and how
they have been replaced within this version of \thispackage:

{\small\begin{longtable}{ll}
\package{caption} \version{1.x} & \package{caption} \version{3.x}\\
\hline
\endhead
|normal|        & |format=plain|\\
|hang|          & |format=hang|\\
|isu|           & |format=hang|\\
|center|        & |justification=centering|\\
|centerlast|    & |justification=centerlast|\\
%|anne|         & |justification=centerlast|\\
|nooneline|     & |singlelinecheck=off|\\
|scriptsize|    & |font=scriptsize|\\
|footnotesize|  & |font=footnotesize|\\
|small|         & |font=small|\\
|normalsize|    & |font=normalsize|\\
|large|         & |font=large|\\
|Large|         & |font=Large|\\
|up|            & |labelfont=up|\\
|it|            & |labelfont=it|\\
|sl|            & |labelfont=sl|\\
|sc|            & |labelfont=sc|\\
|md|            & |labelfont=md|\\
|bf|            & |labelfont=bf|\\
|rm|            & |labelfont=rm|\\
|sf|            & |labelfont=sf|\\
|tt|            & |labelfont=tt|\\
\end{longtable}}

Beside the options for setting up the desired font there were also
the commands |\captionsize| resp.~|\captionfont| and |\captionlabelfont|
who could be redefined with |\renewcommand| and allowed an alternate and
more flexible way to change the font used for captions.
This mechanism was replaced by the commands
\begin{quote}
  |\DeclareCaptionFont{|\ldots|}{|\ldots|}|\qquad and\\
  |\captionsetup{font=|\ldots|,labelfont=|\ldots|}|\qquad.
\end{quote}\SeeUserDefined

Setting the margin for captions was done in \version{1.x} with
\begin{quote}
  |\setlength{\captionmargin}{|\ldots|}|\quad.
\end{quote}
This was replaced by
\begin{quote}
  |\captionsetup{margin=|\ldots|}|\qquad.
\end{quote}
\See{\Ref{margins}}

For example the old-style code
\begin{quote}
|\usepackage[hang,bf]{caption}|\\
|\renewcommand\captionfont{\small\sffamily}|\\
|\setlength\captionmargin{10pt}|
\end{quote}
will still work fine, but should be written today as
\begin{quote}
|\usepackage[format=hang,labelfont=bf,font={small,sf},|\\
|            margin=10pt]{caption}|
\end{quote}
or
\begin{quote}
|\usepackage{caption}|\\
|\captionsetup{format=hang,labelfont=bf,font={small,sf},|\\
|              margin=10pt}|\qquad.
\end{quote}

The quite exotic option |ruled| which allowed a partial usage of
the caption settings for |ruled| floats defined with the
\package{float} package will be emulated by this version of the
caption package, too.
But using this option is not recommended anymore since this
version of \thispackage\ offers a more flexible way
for changing the captions of these floating environments:
\begin{quote}
  |\DeclareCaptionStyle{ruled}{|\ldots|}|
\end{quote}
resp.
\begin{quote}
  |\captionsetup[ruled]{|\ldots|}|\qquad.
\end{quote}
\SeeUserDefined[, \Ref{captionsetup}, and \Ref{float}]

\subsection{caption2 v\texorpdfstring{$2.x$}{2.x}}
\label{caption2}

Although they do very similar stuff, the packages \package{caption} and
its experimental and now obsolete variant \package{caption2} have a
very different implementation design.
Therefore a full compatibility could not be offered.
For that reason you will still find a file called |caption2.sty| in
this package distribution, so old documents using the \package{caption2}
package will still compile fine.

Newly created documents should use the actual version of
\thispackage\ instead. In most cases it's sufficient to replace the command
\begin{quote}
  |\usepackage[...]{caption2}|
\end{quote}
by
\begin{quote}
  |\usepackage[...]{caption}|\qquad.
\end{quote}
But some options and commands will not be emulated, so you can get
error messages afterwards. This section will hopefully help you removing
these errors. If you have problems migrating from \package{caption2}
to \package{caption} please don't hesitate to send me an e-mail asking
for help.

In addition to the obsolete options shown in the last section
these ones will be emulated, too:

{\small\begin{longtable}{ll}
\package{caption2} \version{2.x} & \package{caption} \version{3.x}\\
\hline
\endhead
|flushleft|   & |justification=raggedright|\\
|flushright|  & |justification=raggedleft|\\
|oneline|     & |singlelinecheck=on|\\
\end{longtable}}

Setting the margin for captions was done in \version{2.x} with
\begin{quote}\leavevmode\hbox{%
  |\setcaptionmargin{|\ldots|}| resp.
  |\setcaptionwidth{|\ldots|}|\quad.
}\end{quote}
This was replaced by
\begin{quote}\leavevmode\hbox{%
  |\captionsetup{margin=|\ldots|}| resp.
  |\captionsetup{width=|\ldots|}|\quad.
}\end{quote}
\See{\Ref{margins}}

Setting an indention was done in \version{2.x} with
\begin{quote}
  |\captionstyle{indent}|\\
  |\setlength\captionindent{|\ldots|}|\quad.
\end{quote}
This is now done with
\begin{quote}
  |\captionsetup{format=plain,indention=|\ldots|}|\quad.
\end{quote}

The so-called single-line-check was controlled by the commands
|\oneline|\-|captions|\-|false| (for switching the check off) and
|\oneline|\-|captions|\-|true| (for switching the check on).
This was replaced by
|\captionsetup{|\xx|singlelinecheck=|\xx|off}|
resp.
|\captionsetup{|\xx|singlelinecheck=|\xx|on}|.
\See{\Ref{justification}}

The commands
\begin{quote}
  |\captionlabeldelim|, |\captionlabelsep|, |\captionstyle|,\\
  |\defcaptionstyle|, |\newcaptionstyle|, and |\renewcaptionstyle|
\end{quote}
do not have a simple replacement and therefore will not be emulated
by this version of \thispackage. (So using them will
cause error messages.) Rewriting such code is not always easy and
straight-ahead, but by conscientious reading of this manual you should
find appropriate options and commands instead.

\iffalse
... (some examples)
\fi

The \version{2.x} option |ignoreLTcapwidth| do not have a replacement, too.
But in most cases you can simply drop using that option because
in this version of \thispackage\ the value of |\LTcapwidth|
will be ignored anyway (unless you set it to a different value than the
default one which is |4in|).
\See{\Ref{longtable}}

\subsection{caption v\texorpdfstring{$3.0$}{3.0}}
\label{caption3}

%\NEWdescription{v3.1}
\Thispackage\ \version{3.0} did not support any document classes
other than the standard \LaTeX\ ones: \class{article}, \class{report},
and \class{book}.
Therefore the default settings used to be fixed, but now \thispackage{}
supports more classes, therefore they are now set in dependence on the
document class used.

For example: While in \version{3.0} the default caption |justification| used
to be always |justified|, it's now still |justified| when using one of the
standard document classes, but |raggedright| will be used as default format
when when used with the \class{beamer} document class.

%An easy way to select the `old' defaults---if desired---is using the option
An easy way to select the `old' defaults is using the option
|style=base| when loading \thispackage\ (or later on using |\captionsetup|).

Another new feature is the automatic check for compatibility; if an
incompatibility will be found, a warning message will be issued and if a strong
incompatibility was found some features of \thispackage\ will be disabled.
Please note that only this check was added to \thispackage, so if you get
such warning message, the previous versions of \thispackage\ were incompatible
as well, but did not issued such warning, they were ``only'' having
side-effects or causing problems.
So these warnings only say that some bad side effects or problems could
happen, but not that they actually will happen.
Anyway, if you use \thispackage\ in such circumstances,
you should use it with care.

\bigskip

\emph{Note:} The option |caption=false|, which used to be a workaround for
not using the whole \package{caption} package (leaving the caption stuff
offered by the document class or other packages intact), but keeping the
\package{subfig} package working. This mechanism is obsolete and not offered
anymore, please pass this option to the \package{subfig} package instead and
do not load \thispackage\ anymore.
%\par\See{the \package{subfig} package\cite{subfig} documentation}

% --------------------------------------------------------------------------- %

\pagebreak[4]
\section{Alphabetical Reference}

%\newenvironment{Warnings}%
% {\begin{trivlist}%
%   \def\Message{\pagebreak[3]\leftskip=0pt\relax\item[]\color{blue}}%
%   \def\Description{\nopagebreak\par\nopagebreak\color{black}\leftskip=1.5em\nopagebreak}%
% }%
% {\color{black}\end{trivlist}}
\makeatletter
\newenvironment{Warnings}{%
  \newif\ifMessage
  \def\Message{%
    \ifMessage\end{minipage}\par\vspace\itemsep\pagebreak[3]\fi
    \begin{minipage}{\linewidth}%
    \setlength\parindent{0pt}%
    \setlength\parskip{\smallskipamount}%
    \setlength\leftskip{0pt}%
    \color{blue}%
    \Messagetrue}%
  \def\Description{%
    \par\color{black}\leftskip=1.5em}%
  \def\Or{\@testopt\@Or{or}}%
  \def\@Or[##1]{%
    \\{\small\color{black}\hspace{1.5em}\textit{-- ##1 --}}\\}%
}{%
  \ifMessage\end{minipage}\par\fi
}
\makeatother

\subsection{Commands}

\begin{longtable}{lll}
Command                          & & Section \\
\hline
\endhead
|\abovecaptionskip|              & & \ref{skips} \\
%|\AtBeginCaption|               & & \ref{hooks} \\
%|\AtEndCaption|                 & & \ref{hooks} \\
|\belowcaptionskip|              & & \ref{skips} \\
|\caption|                       & & \ref{caption} \\
|\caption*|                      & & \ref{caption} \\
|\captionlistentry|              & & \ref{captionlistentry} \\
|\captionof|                     & & \ref{caption} \\
|\captionof*|                    & & \ref{caption} \\
|\captionsetup|                  & & \ref{captionsetup} \\
|\captionsetup*|                 & & \ref{captionsetup} \\
|\centerfirst|                   & & \ref{justification} \\
|\centerlast|                    & & \ref{justification} \\
|\clearcaptionsetup|             & & \ref{captionsetup} \\
|\clearcaptionsetup*|            & & \ref{captionsetup} \\
|\ContinuedFloat|                & & \ref{ContinuedFloat} \\
|\DeclareCaptionFont|            & & \ref{declare} \\
|\DeclareCaptionFormat|          & & \ref{declare} \\
|\DeclareCaptionFormat*|         & & \ref{declare} \\
|\DeclareCaptionJustification|   & & \ref{declare} \\
|\DeclareCaptionLabelFormat|     & & \ref{declare} \\
|\DeclareCaptionLabelSeparator|  & & \ref{declare} \\
|\DeclareCaptionLabelSeparator*| & & \ref{declare} \\
|\DeclareCaptionListFormat|      & & \ref{declare} \\
|\DeclareCaptionOption|          & & \ref{declare} \\
|\DeclareCaptionStyle|           & & \ref{declare} \\
|\DeclareCaptionSubType|         & & --~\footnotemark \\
|\DeclareCaptionTextFormat|      & & \ref{declare} \\
|\DeclareCaptionType|            & & \ref{declare} \\
|\showcaptionsetup|              & & \ref{captionsetup} \\
\end{longtable}
\footnotetext{\cs{DeclareCaptionSubType} is explained in the
  \package{subcaption} package documentation.}

\vfill\pagebreak[4]
\subsection{Options}
\newcommand\preambleoption{~%
  \begingroup\def\thefootnote{\fnsymbol{footnote}}%
    \footnotemark[2]%
  \endgroup}
\newcommand\preambleoptiontext{%
  \begingroup\def\thefootnote{\fnsymbol{footnote}}%
    \footnotetext[2]{These options are only available in the preamble of the document.}%
  \endgroup}

\begingroup
\small
\begin{longtable}{lll}
Option & Short description & Section \\
\hline
\endhead
|aboveskip|       & sets the skip above caption & \ref{skips} \\
|belowskip|       & sets the skip below caption & \ref{skips} \\
|compatibility|\preambleoption & force (non-)compatibility & \ref{classes} \\
%|config| &       & \ref{x} \\
|figurename|\preambleoption & sets the figure name & \ref{names} \\
|figureposition|\preambleoption & gives a hint about the figure caption position & \ref{skips} \\
|figurewithin|\preambleoption & sets the figure ``within'' counter & \ref{numbering} \\
|font|            & sets the font & \ref{fonts} \\
|format|          & sets the format & \ref{formats} \\
|FPlist|          & to where the list entry of a FPfigure should link? & \ref{fltpage} \\
|FPref|           & to where a |\ref| to a FPfigure should link? & \ref{fltpage} \\
|hangindent|      & sets the hang indention & \ref{margins} \\
|hypcap|          & select `hypcap' feature & \ref{hyperref} \\
|hypcapspace|     & sets the distance between hyperlink \& contents & \ref{hyperref} \\
|indention|       & sets the indention & \ref{margins} \\
|justification|   & sets the justification & \ref{justification} \\
|labelfont|       & sets the font of the caption label & \ref{fonts} \\
|labelformat|     & sets the format of the caption label & \ref{formats} \\
|labelsep|        & sets the label separator & \ref{formats} \\
|labelseparator|  & sets the label separator & \ref{formats} \\
|list|            & switches the entries in the `List of' on or off & \ref{lists} \\
|listformat|      & sets the `List of' entry format & \ref{lists} \\
|margin|          & sets the margin & \ref{margins} \\
|margin*|         & sets the margin, but only if no width is set & \ref{margins} \\
|maxmargin|       & sets the max. margin & \ref{margins} \\
|minmargin|       & sets the min. margin & \ref{margins} \\
|name|            & sets the name of the current environment & \ref{names} \\
|oneside|         & selects the one-side mode & \ref{margins} \\
%|options|        & executes the given option list & \ref{x} \\
|parindent|       & sets the paragraph indention & \ref{margins} \\
|parskip|         & sets the skip between paragraphs & \ref{margins} \\
|position|        & gives a hint about the caption position & \ref{skips} \\
|singlelinecheck| & switches the single-line-check on or off & \ref{justification} \\
%|size|           & sets the size of font & \ref{x} \\
|skip|            & sets the skip between content \& caption & \ref{skips} \\
|strut|           & switches the usage of |\strut|s on or off & \ref{formats} \\
|style|           & sets the caption style & \ref{style} \\
|subtype|         & sets the sub-caption type & \phantom{t}--~\footnotemark \\
|tablename|\preambleoption & sets the table name & \ref{names} \\
|tableposition|\preambleoption & gives a hint about the table caption position & \ref{skips} \\
|tablewithin|\preambleoption & sets the table ``within'' counter & \ref{numbering} \\
|textfont|        & sets the font of the caption text & \ref{fonts} \\
|textformat|      & sets the format of the caption text & \ref{formats} \\
|twoside|         & selects the two-side mode & \ref{margins} \\
|type|            & sets the caption type \& places a hyperlink anchor & \ref{types} \\
|type*|           & sets the caption type only & \ref{types} \\
|width|           & sets a fixed caption width & \ref{margins} \\
\end{longtable}
\endgroup
\preambleoptiontext
\footnotetext{The option \opt{subtype} is explained in the
  \package{subcaption} package documentation.}

\nopagebreak\parbox[t]{\linewidth}{\small\emph{Note:}
  Obsolete options are not listed here. See
  \Ref{caption1} and
  \Ref{caption2} for a list of these options.}

\vfill\pagebreak[4]
\subsection{Warnings}

\begin{Warnings}

\Message
  |\caption outside box or environment.|
\Or
  |\captionsetup{type=...} outside box or environment.|
\Or
  |\captionsetup{type*=...} or \captionof outside box or environment.|
\Description
  You have placed a |\caption|, |\caption|\x|of|, or
  |\caption|\x|setup{type=|\xx\meta{type}|}| command outside an box, group,
  or environment.
  You should not do this since it could cause some bad side-effects.
  \par\See{\Ref{types} and \Ref{caption}}

\Message
  |\caption will not be redefined since it's already|\\
  |redefined by a document class or package which is|\\
  |unknown to the caption package.|
\Description
  If \thispackage\ detects that some (unknown) document class or
  package has enhanced |\caption|, it will not redefine
  |\caption|, too, since this would simply kill the enhancement.
  As a result some features, like |\caption*|, |\ContinuedFloat|,
  using the optional argument of |\captionsetup|,
  or the options |list=| and |hypcap=| will not be available.\par
  If you don't care about the original enhancements but would
  like to use the full range of features of \thispackage\ instead
  you can give the unsupported(!) option |compatibility=false|
  a try and keep your fingers crossed.
  (But you will get the next warning instead.)
  \par\See{\Ref{classes}}

\Message
  |Forced redefinition of \caption since the|\\
  |unsupported(!) package option `compatibility=false'|\\
  |was given.|
\Description
  Since you were so keen to specify the option |compatibility=false|
  \thispackage\ will try to do its best to fulfill your wishes.
  But depending on the document class or other packages you use that
  can end in non-functional features or even errors. So keep your
  fingers crossed!
  \par\See{\Ref{classes}}

\Message
  |Hyperref support is turned off because hyperref has|\\
  |stopped early.|
\Description
  If the \package{hyperref} package stops early during loading
  (because of what-ever reason), the \package{hyperref} support of
  \thispackage\ will not be available. As a result you could get
  \package{hyperref} warnings and non-functional hyperlinks to figures
  or tables.
  \par\See{\Ref{hyperref}}

\Message
  |Ignoring optional argument [|\meta{pos}|] of \setcapwidth.|
\Description
  \Thispackage\ tries to emulate the \KOMAScript\ commands regarding
  captions as best as it can. But the optional argument of the
  \KOMAScript\ command |\setcapwidth| is not (yet) working if you use
  this package, so if you try to use it anyway, you will get this warning.
  \par\See{\Ref{KOMA}}

\Message
  |Internal Warning: |\meta{warning message}|.|
\Description
% \Thispackage\ can only set hyperlink anchors in \TeX s vertical mode.\par
  You should never see this warning, either you use a package which redefines
  |figure| or |table| and which is unknown to \thispackage, or this is a bug
  in \thispackage.
  Please send me an e-mail reporting this issue.

\Message
  |\label before \caption ignored|
\Description
  Regarding |\label| the floating environments behave differently than its
  non-floating counterparts: The internal reference will not be generated
  at the beginning of the environment, but at |\caption| instead.
  So you have to place the |\label| command either \emph{after} the
  |\caption| command or inside the caption text.

\Message
  |Option `|\meta{option}|' was not in list `|\meta{option list}|'.|
\Description
  If you try to remove a specific option of an option list,
  for example with\linebreak|\clearcaptionsetup[position]{table}|,
  and this option can not be found inside the option list, you will
  get this warning. If this is not because of a typo and you would like
  to suppress this warning, use |\clearcaptionsetup*| instead of
  |\clearcaptionsetup|.
  \par\See{\Ref{captionsetup}}

\Message
  |Option list `|\meta{option list}|' undefined.|
\Description
  If you try to remove a specific option of an option list,
  for example with\linebreak|\clearcaptionsetup[format]{figure}|,
  and this option list is not defined (yet), you will
  get this warning. If this is not because of a typo and you would like
  to suppress this warning, use |\clearcaptionsetup*| instead of
  |\clearcaptionsetup|.
  \par\See{\Ref{captionsetup}}

\iffalse
\Message
  |Possibly superfluous \restylefloat{|\meta{type}|} detected.|\\
  |If you think that this warning is unjustified,|\\
  |you can switch it off using the caption package|\\
  |option `restylefloatcheck=off'.|
\Description
  \TODO
\fi

\Message
  |`ragged2e' package not loaded, therefore|\\
  |substituting \raggedright for \RaggedRight.|
\Description
  The caption option |justification=|\xx|RaggedRight| is only full functional
  if you have the \package{ragged2e} package installed in your \TeX\ system.
  If not, you will get this warning, and |justification=|\xx|RaggedRight|
  will be treated as |justification=|\xx|raggedright|.
  \par\See{\Ref{justification}}

\Message
  |Obsolete option `ignoreLTcapwidth' ignored.|
\Description
  The \package{caption2} package option |ignoreLTcapwidth| will not be
  emulated by this version of \thispackage, usually you can simply wipe it
  away.
  \par\See{\Ref{caption2} and \Ref{longtable}}

\Message
  |`ragged2e' support has been changed. Rerun to get|\\
  |captions right.|
\Description
  The \package{ragged2e} package will only be loaded by \thispackage\ if it
  is actually needed.
  At least two \LaTeX\ runs are needed for that, so on the first run you could
  get this warning.
  Just compile your document again and this warning should go away.
  \par\See{\Ref{justification}}

\Message
  |Reference on page |\meta{page no.}| undefined.|
\Description
  If you use a |twoside| page layout, \thispackage\ needs to track the
  page numbers to get the margins right.
  At least two \LaTeX\ runs are needed for that, on the first run you could get
  this warning.
  Just compile your document again and this warning should go away.
  \par\See{\Ref{margins}}

\Message
  |The caption type was already set to `|\meta{type}|'.|
\Description
  This warning informs you about mixed caption options. For example if
  you use a |\captionof{table}{|\ldots|}| inside a |figure| environment,
  this would result in using both option sets for that specific caption,
  the ones for |figure| (specified with |\captionsetup[figure]{|\ldots|}|)
  and the one for |table| (specified with |\captionsetup[table]{|\ldots|}|)
  as well.
  \par\See{\Ref{captionsetup}}

\Message
  |The option `hypcap=true' will be ignored for this|\\
  |particular \caption.|
\Description
  \Thispackage\ hasn't found a proper hyperlink anchor for this particular
  caption, so it decides to ignore the setting |hypcap=true| (which is set by
  default). As a result a link to this caption (e.g.~in the List of Figures,
  or set by |\ref| or |\autoref|) will link you to the caption of the figure
  or table, not to the figure or table itself.\par
  This can happen if you use |\captionof| inside a non-floating environment,
  but also if you use some package which redefines |figure| or |table|, and
  which is unknown to \thispackage.\par
  If this is ok for you but you want to suppress this warning, simply place a
  |\captionsetup{|\xx|hypcap=|\xx|false}| just before the |\caption| or
  |\captionof| command which is causing the warning.
  If this is not ok for you you can try to set a hyperlink anchor with
  |\captionsetup{|\xx|type=|\xx\meta{float type}|}| for yourself.
  \par\See{\Ref{hyperref}}

\Message
  |Unsupported document class (or package) detected,|\\
  |usage of the caption package is not recommended.|
\Description
  Either the document class you use is unknown to \thispackage, or you
  have included a package in your document which redefines |\@makecaption|
  (which is responsible for typesetting the caption) as well.
  This means \thispackage\ will either change the design of captions in an
  unwanted way, or it even refuses to work correctly at all.
  \par\See{\Ref{classes}}

\Message
  |Unused \captionsetup[|\meta{type}|].|
\Description
  You have specified options with |\captionsetup[|\meta{type}|]| which are
  not used later on.
  This can be because of a typo in \meta{type},
  or because you use a package which redefines |figure| or |table| and
  which is unknown to \thispackage, or simply because you don't have any usage
  of the environment \meta{type} after this line.\par
  If you want to suppress this warning you can use |\captionsetup*| instead of
  |\captionsetup|.
  \par\See{\Ref{captionsetup}}

\Message
  |Usage of the |\meta{package}| package together with the|\\
  |caption package is strongly not recommended.|\\
  |Instead of loading the |\meta{package}| package you should|\\
  |use the caption package option `tableposition=top'.|
\Description
  The package \meta{package} is dealing with caption skips as well.
  Please decide which one do you actually want to use, \thispackage\ or the
  other one, using both can lead to wrong skips above or below the caption.
  \par\See{\Ref{skips}}

\end{Warnings}

\pagebreak[3]
\subsection{Errors}

\begin{Warnings}

\Message
  |Argument of \@caption has an extra }.|
\Or
  |Paragraph ended before \@caption was complete.|
\Description
  If you want to typeset something special (like a tabular) as caption,
  you need to give an optional argument to |\caption| resp.~|\captionof|
  for the List of Figures resp.~List of Tables, too, even if you don't
  use such list.
  \par\See{\Ref{caption}, \Ref{lists}, and \Ref{hyperref}\,}

\Message
  |\caption outside float.|
\Description
  You have placed a |\caption| command outside a floating environment or
  a |longtable|. If this is what you want to, please use either
  |\captionsetup{|\xx|type=|\xx\meta{type}|}| $+$ |\caption| or |\captionof|.
  \par\See{\Ref{caption}}

\Message
  |\ContinuedFloat outside float.|
\Description
  You have placed a |\ContinuedFloat| command outside a floating environment.
%  or |longtable|.
  If this is what you want to, please use the combination
  |\captionsetup{|\xx|type=|\xx\meta{type}|}| $+$ |\ContinuedFloat|.\par
  Please note that |\ContinuedFloat| inside a |longtable| is not working (yet),
  but maybe using the |longtable*| environment, which typesets a \env{longtable}
  without incrementing the |table| counter, if sufficient for you.
  \par\See{\Ref{ContinuedFloat} and \Ref{longtable}}

\Message
  |Continued `|\meta{type}|' after `|\meta{type}|'.|
\Description
  At the moment continued figures or tables are not allowed to be interrupted
  by a floating environment of another type, e.g.~a table between a figure and a
  continued figure.
  \par\See{\Ref{ContinuedFloat}}

\Message
  |For a successful cooperation of the `wrapfig' package|\\
  |with the `float' package you should load the `wrapfig'|\\
  |package *(right) after* the `float' package.|
\Description
  Please take care of the load order of packages
  if you use the \package{wrapfig} package in cooperation with the
  \package{float} package.
  \par\See{\Ref{wrapfig}}

\Message
  |For a successful cooperation of the `wrapfig' package|\\
  |with the `float' package you should use at least|\\
  |`wrapfig' version 3.6.|
\Description
  Please take care of the version of the \package{wrapfig} package
  if you use the \package{wrapfig} package in cooperation with the
  \package{float} package.
  \par\See{\Ref{wrapfig}}

\Message
  |For a successful cooperation we need at least version|\\
  |`|\meta{date}|' of package |\meta{package}|, but only version|\\
  |`|\meta{old-date}|' is available.|
\Description
  \Thispackage\ does not work with such an outdated package, please update it
  to a more recent version, at least to the one requested.

\Message
  |Internal Error: |\meta{error message}|.|
\Description
  You should never see this error.
  Please send me an e-mail reporting this issue.

\Message
  |No float type '|\meta{type}|' defined.|
\Description
  The \meta{type} you have specified in |\captionsetup{type=|\meta{type}|}|,
  |\captionof|\marg{type}, or |\DeclareCaptionSubType| is not defined.
  \meta{type} should be either `\texttt{figure}' or `\texttt{table}', or
  any other floating environment defined with |\DeclareCaptionType|,
  |\newfloat| offered by the \package{float} package\cite{float},
  or |\DeclareNewFloatType| offered by the \package{floatrow}
  package\cite{floatrow}.

\Message
  |Not allowed in longtable* environment.|
\Description
  The usage of |\caption| is not allowed inside the |longtable*| environment.
  Please use either |\caption*| for a caption without label or use the regular
  |longtable| environment instead.

\Message
  |Not available in compatibility mode.|
\Description
  The feature required is not supported in compatibility mode.
  `compatibility mode' means that \thispackage\ has detected either an
  incompatible document class or an incompatible package which also
  extents the |\caption| command. Leaving the original extension intact,
  some features of \thispackage\ are not supported.
  \par\See{\Ref{compatibility}}

\Message
  |Only one \caption can be placed in this environment.|
\Description
  Inside the environments offered by the \package{fltpage} and \package{sidecap}
  package only one caption can be placed. (This is due implementation design.)

\Message
  |Option clash for package caption.|
\Or[but sometimes also]
  |Missing \begin{document}.|
\Description
  \Thispackage\ has already been loaded by some other \LaTeX\ package,
  so you can't do that again specifying different options.
  A candidate causing this could be the \package{subfig} package; if this is
  the case, please load \thispackage\ \emph{before} the \package{subfig}
  package or specify the option |caption=false| while loading the
  \package{subfig} package.
  \par\See{the \package{subfig} package\cite{subfig} documentation}

\Message
  |Paragraph ended before \caption@makecurrent was complete.|
\Description
  If you want to typeset multi-paragraph captions, you need to give an
  optional argument to |\caption| resp.~|\captionof| for the List of
  Figures resp.~List of Tables, too, even if you don't use such list.
  \par\See{\Ref{caption}, \Ref{lists}, and \Ref{hyperref}\,}

\iffalse % was removed in v3.1b
\Message
  |Something is going wrong here...|\\
  |For a removal of this problem please consult the|\\
  |caption package documentation, especially the sections|\\
  |about the `float' and the `wrapfig' package.|
\Description
  Please take care of the load order of packages
  if you use the \package{wrapfig} package in cooperation with the
  \package{float} package. But maybe a different package tried to extent
  the \package{float} package in a manner which is incompatible to
  \thispackage!?
  \par\See{\Ref{float} and \Ref{wrapfig}}
\fi

\iffalse
\Message
  |Something's wrong--perhaps a missing \caption|\\
  |in the last figure or table.|
\Description
  It seems that you have used a |\subcaption| command without a
  corresponding |\caption| command. This is not supported.
\fi

\Message
  |The option `labelsep=|\meta{name}|' does not work|\\
  |with `format=hang'.|
\Or
  |The option `labelsep=|\meta{name}|' does not work|\\
  |with \setcaphanging (which is set by default).|
\Description
  A caption label separator which contains a |\\| command (like
  |labelsep=|\xx|newline|) can not be combined with a hanging caption format
  (like |format=|\xx|hang|).
  Please select either another caption label separator
  (e.g.~|labelsep=|\xx|colon|) or another caption format
  (e.g.~|format=|\xx|plain|).
  \par\See{\Ref{formats} resp.~\Ref{KOMA}}

\Message
  |The package option `caption=false' is obsolete.|\\
  |Please pass this option to the subfig package instead|\\
  |and do *not* load the caption package anymore.|
\Description
  You have specified the option |caption=false|. This used to be a workaround
  for not using the whole \package{caption} package (leaving the caption stuff
  offered by the document class or other packages intact), but keeping the
  \package{subfig} package working. This mechanism is obsolete and not offered
  anymore, please pass this option to the \package{subfig} package instead and
  do not load \thispackage\ anymore.
  \par\See{the \package{subfig} package\cite{subfig} documentation}

\Message
  |Undefined boolean value `|\meta{value}|'.|
\Description
  You tried to set a boolean option (like |singlelinecheck=| or |hypcap=|)
  with an improper value. Only |false|, |no|, |off|, |0| or |true|, |yes|,
  |on|, |1| is allowed here.

\Message
  |Undefined format `|\meta{name}|'.|
\Description
  You tried to set a caption format which does not exists.
  Maybe a typo!?
  \par\See{\Ref{formats}}

\Message
  |Undefined label format `|\meta{name}|'.|
\Description
  You tried to set a caption label format which does not exists.
  Maybe a typo!?
  \par\See{\Ref{formats}}

\Message
  |Undefined label separator `|\meta{name}|'.|
\Description
  You tried to set a caption label separator which does not exists.
  Maybe a typo!?
  \par\See{\Ref{formats}}

\Message
  |Undefined list format `|\meta{name}|'.|
\Description
  You tried to set a caption list-of format which does not exists.
  Maybe a typo!?
  \par\See{\Ref{lists}}

\Message
  |Undefined position `|\meta{name}|'.|
\Description
  You tried to set a caption position with an improper value.
  Maybe a typo!?
  \par\See{\Ref{skips}}

\Message
  |Undefined style `|\meta{name}|'.|
\Description
  You tried to set a caption style which does not exists.
  Maybe a typo!?
  \par\See{\Ref{style}}

\Message
  |Undefined text format `|\meta{name}|'.|
\Description
  You tried to set a caption text format which does not exists.
  Maybe a typo!?
  \par\See{\Ref{formats}}

\Message
  |You can't use both, the (obsolete) caption2 *and*|\\
  |the (current) caption package.|
\Description
  This error message says it all, you simply can't do that.
  Please use only \thispackage.
  \par\See{\Ref{caption2}}

\Message
  |You can't use the caption package option|\\
  |  `tableposition=|\meta{position}|'|\\
  |and use the |\meta{package}| package, too.|
\Or
  |You can't use the global option|\\
  |  `tablecaptionabove'|\\
  |and use the |\meta{package}| package, too.|
\Description
% (ftcap,nonfloat,topcapt)
  The package \meta{package} is dealing with caption skips as well.
  Please decide which one do you actually want to use, \thispackage\ or the
  other one, using both this way will lead to wrong skips above or below the
  caption.
  \par\See{\Ref{skips}}

\end{Warnings}

% --------------------------------------------------------------------------- %

\pagebreak[4]
\section{Further reading}

I recommend the following documents for further reading:

\begin{itemize}
\item
  The \TeX\ FAQ -- Frequently asked questions about \TeX\ and \LaTeX:
  \begin{quote}\url{http://faq.tug.org/}\end{quote}

\item
  A French FAQ can be found at
  \begin{quote}\url{http://www.grappa.univ-lille3.fr/FAQ-LaTeX/}\end{quote}

\item
  ``What is a minimal working example?'' from Christian Faulhammer and Ulrich Schwarz:
  \begin{quote}\url{http://www.minimalbeispiel.de/mini-en.html}\end{quote}

\item
  \textsf{epslatex} from Keith Reckdahl contains many tips around
  including graphics in \LaTeXe\ documents.
  You will find this document in the directory
  \begin{quote}\url{ftp://tug.ctan.org/pub/tex/info/epslatex/}\end{quote}
\end{itemize}

% --------------------------------------------------------------------------- %

\pagebreak[2]
\section{Thanks}

I would like to thank Katja Melzner,
Steven D. Cochran, Frank Mittelbach, Olga Lapko,
David Carlisle, Carsten Heinz, and Keith Reckdahl.
Thanks a lot for all your help, ideas, patience, spirit, and support!

Also I would like to thank
Harald Harders,
Peter L\"offler,
Peng Yu,
Alexander Zimmermann,
Matthias Pospiech,
J\"urgen Wieferink,
Christoph Bartoschek,
Uwe St\"ohr,
Ralf Stubner,
Geoff Vallis,
Florian Keiler,
J\"urgen G\"obel,
Uwe Siart,
Sang-Heon Shim,
Henrik Lundell,
David Byers,
William Asquith,
Prof.~Dr.~Dirk Hoffmann,
Frank Martini,
and
Danie Els
who all helped to make this package a better one.

% --------------------------------------------------------------------------- %

\pagebreak[4]
\begin{thebibliography}{99}
  \bibitem{TLC2}
  Frank Mittelbach and Michel Goossens:\\
  \newblock {\em The {\LaTeX} Companion (2nd.~Ed.)},\\
  \newblock Addison-Wesley, 2004.

  \bibitem{algorithms}
  Rogério Brito:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/algorithms/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/algorithms/algorithms.pdf}%
       {\emph{Algorithms}},\\
  June 2, 2006

\iffalse
  \bibitem{algorithm2e}
  Christophe Fiorio:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/algorithm2e/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/algorithm2e/algorithm2e.pdf}%
       {\emph{algorithm2e.sty -- package for algorithms}},\\
  March 11, 2007
\fi

  \bibitem{beamer}
  Till Tantau:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/beamer/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/beamer/doc/beameruserguide.pdf}%
       {\emph{User Guide to the Beamer Class, Version 3.07}},\\
  March 11, 2007

  \bibitem{KOMAScript}
  Markus Kohm \& Jens-Uwe-Morawski:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/koma-script/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/koma-script/scrguien.pdf}%
       {\emph{KOMA-Script -- a versatile \LaTeXe\ bundle}},\\
  2007-01-09

  \bibitem{NTG}
  Victor Eijkhout:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/ntgclass/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/ntgclass/classdoc.pdf}%
       {\emph{An introduction to the Dutch \LaTeX\ document classes}},\\
  3 September 1989

  \bibitem{float}
  Anselm Lingnau:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/float/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/float/float.pdf}%
       {\emph{An Improved Environment for Floats}},\\
  2001/11/08

  \bibitem{floatflt}
  Mats Dahlgren:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/floatflt/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/floatflt/floatflt.pdf}%
       {\emph{Welcome to the floatflt package}},\\
  1998/06/05

  \bibitem{floatrow}
  Olga Lapko:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/floatrow/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/floatrow/floatrow.pdf}%
       {\emph{The floatrow package documentation}},\\
  2007/08/24

  \bibitem{fltpage}
  Sebastian Gross:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/fltpage/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/fltpage/fltpage.pdf}%
       {\emph{Welcome to the beta test of fltpage package!}},\\
  1998/11/13

  \bibitem{hyperref}
  Sebastian Rahtz \& Heiko Oberdiek:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/hyperref/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/hyperref/hyperref.pdf}%
       {\emph{Hypertext marks in \LaTeX}},\\
  November 12, 2007

  \bibitem{hypcap}
  Heiko Oberdiek:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/oberdiek/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/oberdiek/hypcap.pdf}%
       {\emph{The hypcap package -- Adjusting anchors of captions}},\\
  2007/04/09

  \bibitem{listings}
  Carsten Heinz \& Brooks Moses:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/listings/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/listings/listings.pdf}%
       {\emph{The Listings Package}},\\
  2007/02/22

  \bibitem{longtable}
  David Carlisle:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/required/tools/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/required/tools/longtable.pdf}%
       {\emph{The longtable package}},\\
  2004/02/01

  \bibitem{picinpar}
  Friedhelm Sowa:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex209/contrib/picinpar/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex209/contrib/picinpar/}%
       {\emph{Pictures in Paragraphs}},\\
  July 13, 1993

  \bibitem{picins}
  Joachim Bleser and Edmund Lang:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex209/contrib/picins/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex209/contrib/picins/mpic.dvi}%
       {\emph{PicIns-Benutzerhandbuch Version 3.0}},\\
  September~1992

  \bibitem{rotating}
  Sebastian Rahtz and Leonor Barroca:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/rotating/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/rotating/}%
       {\emph{A style option for rotated objects in \LaTeX}},\\
  1997/09/26

  \bibitem{setspace}
  Erica M. S. Harris \& Geoffrey Tobin:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/setspace/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/setspace/}%
       {\emph{LaTeX Document Package ``setspace''}},\\
  1 December 2000

  \bibitem{sidecap}
  Rolf Niepraschk \& Hubert G\"a\ss lein:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/sidecap/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/sidecap/sidecap.pdf}%
       {\emph{The sidecap package}},\\
  2003/06/06

  \bibitem{subfigure}
  Steven D. Cochran:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/subfigure/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/subfigure/subfigure.pdf}%
       {\emph{The subfigure package}},\\
  2002/07/02

  \bibitem{subfig}
  Steven D. Cochran:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/subfig/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/subfig/subfig.pdf}%
       {\emph{The subfig package}},\\
  2005/07/05

  \bibitem{supertabular}
  Johannes Braams and Theo Jurriens:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/supertabular/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/supertabular/supertabular.pdf}%
       {\emph{The supertabular environment}},\\
  2002/07/19

  \bibitem{threeparttable}
  Donald Arseneau:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/misc/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/misc/threeparttable.sty}%
       {\emph{Three part tables: title, tabular environment, notes}},\\
  2003/06/13

  \bibitem{wrapfig}
  Donald Arseneau:\\
  \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/wrapfig/}%
% \href{ftp://tug.ctan.org/tex-archive/macros/latex/contrib/wrapfig/wrapfig.sty}%
       {\emph{WRAPFIG.STY ver 3.6}},\\
  2003/01/31
\end{thebibliography}

% --------------------------------------------------------------------------- %

\end{document}
