%%
%% This is file `anleitung.tex',
%%
%% Copyright (C) 1994-2004 Axel Sommerfeldt (caption@sommerfeldt.net)
%% 
%% --------------------------------------------------------------------------
%% 
%% 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, caption.xml, and anleitung.tex and the derived files
%% caption.sty, caption2.sty, and manual.tex.
%% 
\ProvidesFile{anleitung.tex}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\documentclass[a4paper]{ltxdoc}
\setlength\parindent{0pt}
\setlength\parskip{\medskipamount}

\newcommand\NEWfeature{\NEW{Neues Feature}}
\newcommand\NEWdescription{\NEW{Neue Beschreibung}}
\newcommand\NEW[2]{%
  \hskip 1sp \marginpar{\footnotesize\sffamily\raggedleft
    #1\\#2}}

%%%\usepackage[T1]{fontenc}
\ifx\pdfoutput\undefined\else
  \ifcase\pdfoutput\else
    \usepackage{mathptmx,courier}
    \usepackage[scaled=0.90]{helvet}
  \fi
\fi

\usepackage[german]{babel}

\usepackage{caption}[2003/12/20]
%\usepackage{float}
\usepackage{longtable}
%\usepackage[raggedright]{sidecap}

\DeclareCaptionLabelSeparator{period-newline}{. \newline}
\DeclareCaptionStyle{period-newline}[labelsep=period]{labelsep=period-newline}
\DeclareCaptionStyle{period-newline2}[labelsep=period,justification=centering]{labelsep=period-newline}
\DeclareCaptionFormat{reverse}{#3#2#1}
\DeclareCaptionFormat{llap}{\llap{#1#2}#3\par}
\DeclareCaptionLabelFormat{fullparens}{(\bothIfFirst{#1}{ }#2)}
\DeclareCaptionLabelSeparator{fill}{\hfill}

\DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em%
    M\kern.05em A\kern.1em-\kern.1em Script}}

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

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

\newenvironment{Example}%
  {\ifvmode\else\unskip\par\fi
   \minipage{\linewidth}\smallskip}%
  {\smallskip\endminipage}
\newcommand\example[3][figure]{%
  \begingroup
    \captionsetup{#2}%
    \captionof{#1}[]{#3}%
  \endgroup}

\begin{document}

\GetFileInfo{caption.sty}
\title{Setzen von Abbildungs- und Tabellenbeschriftungen mit dem
       \thispackage-Paket\thanks{Dieses Paket hat die Versionsnummer
       \fileversion, zuletzt ge"andert am \filedate.}}
\author{Axel Sommerfeldt\\\texttt{caption@sommerfeldt.net}}
\date{16. Juli 2004}
\maketitle


\begin{abstract}
Das \thispackage\ Paket bietet einem Mittel und Wege das Erscheinungsbild der
Bildunterschriften und Tabellen"uberschriften den eigenen W"unschen
bzw.\ bestimmten Vorgaben anzupassen.
Hierbei wurde viel Wert auf die reibungslose Zusammenarbeit und in die
Integration anderer Dokumentenklassen und Pakete gelegt.\footnote{F"ur die
aktuelle Version 3.0 dieses Paketes wurde die Benutzerschnittstelle zusammen
mit Steven D. Cochran und Frank Mittelbach komplett "uberarbeitet.}
\end{abstract}

%\tableofcontents


\section{Einleitung}

\newcommand\figuretext{%
  Die auf die Rotationsfrequenz des Innenzylinders normierten Eigenfrequenzen
  der gefundenen Grundmoden der Taylor"=Str"omung f"ur \mbox{$\eta = 0.5$}. %\\
  (Die azimutale Wellenzahl ist mit $m$ bezeichnet.)}

Mit |\caption| gesetzte Bildunterschriften und Tabellen"uberschriften werden
von den Standard"=Dokumentenklassen eher stiefm"utterlich behandelt.
In der Regel schlicht als ganz normaler Absatz gesetzt, ergibt sich keine
signifikante optische Abgrenzung vom eigentlichen Text, wie z.B. hier:

\example{belowskip=\abovecaptionskip}{\figuretext}

Es sollte aber eine M"oglichkeit geben, diesem Umstand abzuhelfen. Es w"are
zum Beispiel nett, wenn man den Text der Unterschrift etwas kleiner gestalten,
extra R"ander festlegen oder den Zeichensatz des Bezeichners dem der
Kapitel"uberschriften anpassen k"onnte. So in etwa:

\example{belowskip=\abovecaptionskip,size=small,margin=10pt,labelfont=bf}{\figuretext}

Mit Hilfe dieses Paketes k"onnen Sie dies leicht bewerkstelligen; es sind viele
vorgegebene Parameter einstellbar, Sie k"onnen aber auch eigene
Gestaltungsmerkmale einflie"sen lassen.


\pagebreak[4]
\section{Verwendung des Paketes}
\label{usage}

\DescribeMacro{\usepackage}
Mittels
\begin{quote}
  |\usepackage|\oarg{Optionen}|{caption}[|\texttt{\filedate}|]|
\end{quote}
in dem Vorspann des Dokumentes wird das \thispackage\ Paket eingebunden, die
Optionen legen hierbei das Aussehen der "Uber- und Unterschriften fest. So
w"urde z.B.
\begin{quote}
  |\usepackage[margin=10pt,font=small,labelfont=bf]{caption}|%[|\texttt{\filedate}|]|
\end{quote}
zu dem obrigen Ergebnis mit Rand, kleinerem Zeichensatz und fetter Bezeichnung
f"uhren.

\DescribeMacro{\captionsetup}
Eine "Anderung der Parameter ist auch zu einem sp"ateren Zeitpunkt jederzeit
mittels des Befehls
\begin{quote}
  |\captionsetup|\oarg{Typ}\marg{Optionen}
\end{quote}
m"oglich. So sind z.B. die Befehlssequenzen
\begin{quote}
  |\usepackage[margin=10pt,font=small,labelfont=bf]{caption}|%[|\texttt{\filedate}|]|
\end{quote}
und
\begin{quote}
  |\usepackage{caption}|\\%[|\texttt{\filedate}|]|
  |\captionsetup{margin=10pt,font=small,labelfont=bf}|
\end{quote}
in ihrer Wirkung identisch.

Weiterhin gilt zu beachten, da"s sich die Verwendung von |\captionsetup|
innerhalb von Umgebungen nur auf die Umgebung selber auswirkt, nicht aber auf
den Rest des Dokumentes. M"ochte man also z.B. die automatische Zentrierung der
Abbildungsunterschrift nur in einem konkreten Falle ausschalten, so kann dies
mit
\begin{quote}
  |\begin{figure}|\\
  |  |\ldots\\
  |  \captionsetup{singlelinecheck=off}|\\
  |  \caption{|\ldots|}|\\
  |\end{figure}|
\end{quote}
geschehen, ohne da"s die restlichen Abbildungsunterschriften hiervon
beeintr"achtigt werden.

(Der optionale Parameter \meta{Typ} wird in Abschnitt
 \ref{misc}: \textit{"`N"utzliches"'} behandelt.)

\section{Beschreibung der Optionen}
\def\OptionLabel{RaggedRight}


\subsection{Formatierung}

\DescribeMacro{format=}
Eine Abbildungs- oder Tabellenbeschriftung besteht im wesentlichen aus drei
Teilen:
Dem Bezeichner (etwa "`Abbildung 3"'), dem Trenner
(etwa "`:\textvisiblespace"') und dem eigentlichen Text.
Mittels der Option
\begin{quote}
  |format=|\meta{Name}
\end{quote}
wird festgelegt, wie diese drei Teile zusammengesetzt werden.
F"ur \meta{Name} sind folgende M"oglichkeiten verf"ugbar:\footnote{Es gibt hier
wie auch bei vielen anderen Optionen die M"oglichkeit, auch eigene Formate,
Zeichens"atze etc.\ zu definieren.
Wie dies geht wird in
Abschnitt \ref{declare}: \textit{"`Eigene Erweiterungen"'} dargelegt.}

\begin{Options}{\OptionLabel}
  \item[default]
  Die Beschriftung wird als normaler Abschnitt gesetzt.
  (Dies ist das Standardverhalten.)

  \item[hang]
  Der Text wird so gesetzt, da"s er an dem Bezeichner "`h"angt"', d.h.~der Platz unter
  dem Bezeichner und dem Trenner bleibt leer.
\end{Options}

\begin{Example}
  Ein Beispiel: Die Angabe der Option
  \begin{quote}
    |format=hang|
  \end{quote}
  f"uhrt zu Abbildungsunterschriften der Art
  \example{format=hang}{\figuretext}
\end{Example}

\DescribeMacro{indention=}
Bei beiden Formaten (\texttt{default} und \texttt{hang}) kann der Einzug der Beschriftung
ab der zweiten Textzeile angepasst werden, dies geschieht mit Hilfe der Option
\begin{quote}
  |indention=|\meta{Einzug}\quad,
\end{quote}
wobei anstelle von \meta{Einzug} jedes beliebige feste Ma"s angegeben werden kann.

Zwei Beispiele:

\begin{Example}
  \begin{quote}
    |format=default,indention=.5cm|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{format=default,indention=.5cm}{\figuretext}
\end{Example}

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

\pagebreak[3]
\DescribeMacro{labelformat=}
Mittels der Option
\nopagebreak[3]
\begin{quote}
  |labelformat=|\meta{Name}
\end{quote}
\nopagebreak[3]
wird die Zusammensetzung des Bezeichners festgelegt.
F"ur \meta{Name} sind folgende M"oglichkeiten verf"ugbar:

\begin{Options}{\OptionLabel}
  \item[empty]
  Der Bezeichner ist leer. Diese Option macht nur in Verbindung mit anderen
  Optionen (wie etwa \texttt{labelsep=none}) Sinn.

  \item[simple]
  Der Bezeichner ist aus dem Namen und der Nummer zusammengesetzt.
  (Dies ist das Standardverhalten.)

  \item[parens]
  Die Nummer des Bezeichners wird in runde Klammern gesetzt.
\end{Options}

\begin{Example}
  Ein Beispiel: Die Optionen
  \begin{quote}
    |labelformat=parens,labelsep=quad|
  \end{quote}
  f"uhren zu Abbildungsunterschriften der Art
  \example{labelformat=parens,labelsep=quad}{\figuretext}
\end{Example}

\DescribeMacro{labelsep=}
Mittels der Option
\begin{quote}
  |labelsep=|\meta{Name}
\end{quote}
wird die Zusammensetzung des Trenners festgelegt.
F"ur \meta{Name} sind folgende M"oglichkeiten verf"ugbar:

\begin{Options}{\OptionLabel}
  \item[none]
  Der Trenner ist leer. Diese Option macht nur in Verbindung mit anderen
  Optionen (wie etwa \texttt{labelformat=empty}) Sinn.

  \item[colon]
  Der Trenner besteht aus einem Doppelpunkt und einem Leerzeichen.
  (Dies ist das Standardverhalten.)

  \item[period]
  Der Trenner besteht aus einem Punkt und einem Leerzeichen.

  \item[space]
  Der Trenner besteht lediglich aus einem einzelnen Leerzeichen.

  \item[quad]
  Der Trenner besteht aus einem |\quad|.

  \item[newline]
  Als Trenner wird ein Zeilenumbruch verwendet.
\end{Options}

Zwei Beispiele:
\begin{Example}
  \begin{quote}
    |labelsep=period|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{labelsep=period}{\figuretext}
\end{Example}

\begin{Example}
  \begin{quote}
    |labelsep=newline,singlelinecheck=false|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{labelsep=newline,singlelinecheck=false}{\figuretext}
\end{Example}


\subsection{Textausrichtung}

\DescribeMacro{justification=}
Mittels der Option
\begin{quote}
  |justification=|\meta{Name}
\end{quote}
wird die Ausrichtung des Textes festgelegt.
F"ur \meta{Name} sind folgende M"oglichkeiten verf"ugbar:

\begin{Options}{\OptionLabel}
  \item[justified]
  Der Text wird als Blocksatz gesetzt.
  (Dies ist das Standardverhalten.)

  \item[centering]
  Der Text wird zentriert gesetzt.

%  \item[Centering]
%  Der Text wird zentriert gesetzt. Hierf"ur wird jedoch im Gegensatz
%  zu \texttt{centering} der Befehl |\Centering| des \package{ragged2e}-Paketes
%  verwendet, der \LaTeX\ das Trennen der Worte erlaubt.

  \item[centerlast]
  Lediglich die letzte Zeile des Textes wird zentriert gesetzt.

  \item[centerfirst]
  Lediglich die erste Zeile des Textes wird zentriert gesetzt.

  \item[raggedright]
  Der Text wird linksb"undig gesetzt.

%  \item[RaggedRight]
%  Der Text wird linksb"undig mit Hilfe des \package{ragged2e}-Paketes gesetzt.
  \item[RaggedRight]
  Der Text wird ebenfalls linksb"undig gesetzt. Hierf"ur wird jedoch im Gegensatz
  zu \texttt{raggedright} der Befehl |\RaggedRight| des \package{ragged2e}-Paketes
  verwendet, der \LaTeX\ das Trennen der Worte erlaubt.

  \item[raggedleft]
  Der Text wird rechtsb"undig gesetzt.

%  \item[RaggedLeft]
%  Der Text wird rechtsb"undig mit Hilfe des \package{ragged2e}-Paketes gesetzt.
\end{Options}

Einige Beispiele:
\begin{Example}
  \begin{quote}
    |justification=centerlast|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{justification=centerlast}{\figuretext}
\end{Example}

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

\begin{Example}
  \begin{quote}
    |format=hang,justification=RaggedRight|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{belowskip=\abovecaptionskip,format=hang,justification=RaggedRight}{\figuretext}
\end{Example}

\DescribeMacro{singlelinecheck=}
In den Standard"=Dokumentenclassen |article|, |report| und |book| sind die
Ab\-bildungs- und Tabellenbeschriftungen so realisiert, da"s sie automatisch
zentriert werden, wenn sie lediglich aus einer einzigen Textzeile bestehen:

\example{belowskip=\abovecaptionskip}{Eine kurze Beschriftung.}

%\example{belowskip=\abovecaptionskip}{%
% Eine lange Beschriftung, die gen"ugend Text enth"alt, um l"anger als
% eine einzelne Zeile zu sein.}

Diesen Mechanismus "ubernimmt das \thispackage-Paket und ignoriert damit
bei solch kurzen Beschriftungen die mittels der Option |justification=|
eingestellte Textausrichtung. Dieses Verhalten kann jedoch mit der Option
\begin{quote}
  |singlelinecheck=|\marg{bool}
\end{quote}
reguliert werden. Setzt man f"ur \meta{bool} entweder |false|, |no|, |off|
oder |0| ein, so wird der Zentrierungsmechnismus au"ser Kraft gesetzt.
Die obrige, kurze Abbildungsunterschrift w"urde z.B. nach Angabe der Option
\begin{quote}
  |singlelinecheck=false|
\end{quote}
so aussehen:
\example{belowskip=\abovecaptionskip,singlelinecheck=false}{Eine kurze Beschriftung.}

Setzt man f"ur \meta{bool} hingegen |true|, |yes|, |on| oder |1| ein, so
wird die automatische Zentrierung wieder eingeschaltet. (Standardm"a"sig
ist sie eingeschaltet.)


\subsection{Zeichens"atze}

\DescribeMacro{font=}
\DescribeMacro{labelfont=}
\DescribeMacro{textfont=}
Das \thispackage-Paket kennt 3 Zeichens"atze: Denjenigen f"ur die gesammte Beschriftung
(|font|), denjenigen, der lediglich auf den Bezeichner und den Trenner angewandt wird
(|labelfont|), sowie denjenigen, der lediglich auf den Text wirkt (|textfont|).
So lassen sich die unterschiedlichen Teile der Beschriftung individuell mittels
\begin{quote}\begin{tabular}{@{}r@{}ll}
  |font=|      & \marg{Zeichensatzoptionen} & ,\\
  |labelfont=| & \marg{Zeichensatzoptionen} & und\\
  |textfont=|  & \marg{Zeichensatzoptionen} & \\
\end{tabular}\end{quote}
\nopagebreak[3]
anpassen.
\pagebreak[3]

Als \meta{Zeichensatzoptionen} sind eine Kombination aus folgendem erlaubt:

\begin{Options}{\OptionLabel}
  \item[scriptsize]   {\scriptsize Sehr kleine Schrift}
  \item[footnotesize] {\footnotesize Fu"snotengr"o"se}
  \item[small]        {\small Kleine Schrift}
  \item[normalsize]   {\normalsize Normalgro"se Schrift}
  \item[large]        {\large Gro"se Schrift}
  \item[Large]        {\Large Gr"o"sere Schrift}

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

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

  \item[rm]           {\rmfamily Roman Schriftfamilie}
  \item[sf]           {\sffamily Sans Serif Schriftfamilie}
  \item[tt]           {\ttfamily Typewriter Schriftfamilie}
\end{Options}

Wird lediglich eine einzelne Zeichensatzoption ausgew"ahlt, k"onnen die
geschweiften Klammern entfallen, d.h.~die Optionen
%\begin{quote}
  |font={small}|
%\end{quote}
und
%\begin{quote}
  |font=small|
%\end{quote}
sind in ihrer Wirkung identisch.

Beispiele:
\begin{Example}
  \begin{quote}
    |font={small,it},labelfont=bf|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{font={small,it},labelfont=bf}{\figuretext}
\end{Example}

\begin{Example}
  \begin{quote}
    |font=small,labelfont=bf,textfont=it|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{font=small,labelfont=bf,textfont=it}{\figuretext}
\end{Example}


\subsection{R"ander und Abs"atze}

\DescribeMacro{margin=}
\DescribeMacro{width=}
F"ur die Abbildungs- und Tabellenbeschriftungen kann \emph{entweder} ein extra Rand
\emph{oder} eine feste Breite festgelegt werden. Dies geschieht mit
\begin{quote}\begin{tabular}{@{}r@{}ll}
  |margin=| & \meta{Rand} & \emph{oder}\\
  |width=|  & \meta{Breite} & \\
\end{tabular}\end{quote}
In beiden F"allen wird die Beschriftung zentriert, d.h.~der linke und rechte Rand
sind immer gleich gro"s.

Zwei Beispiele hierzu:
\begin{Example}
  \begin{quote}
    |margin=10pt|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{margin=10pt}{\figuretext}
\end{Example}

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

\DescribeMacro{parskip=}
Diese Option wirkt auf Abbildungs- oder Tabellenbeschriftungen, die
aus mehr als einem Absatz bestehen; sie legt den Abstand zwischen den
Abs"atzen fest.
\begin{quote}
  |parskip=|\meta{Abstand zwischen Abs"atzen}
\end{quote}
Ein Beispiel:
\begin{Example}
  \begin{quote}
    |margin=10pt,parskip=5pt|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{margin=10pt,parskip=5pt}{%
    Erster Absatz der Beschriftung; dieser enth"alt einigen Text, so da"s die
    Auswirkungen der Optionen deutlich werden.

    Zweiter Absatz der Beschriftung; dieser enth"alt ebenfalls einigen Text,
    so da"s die Auswirkungen der Optionen deutlich werden.}
\end{Example}

\DescribeMacro{hangindent=}
Die Option
\begin{quote}
  |hangindent=|\meta{Einzug}
\end{quote}
legt einen Einzug f"ur alle Zeilen au"ser der jeweils ersten des Absatzes fest.
Besteht die Beschriftung lediglich aus einem einzelnen Absatz, so ist die
Wirkung mit der Option |indention=|\meta{Einzug} identisch, bei mehreren
Abs"atzen zeigt sich jedoch der Unterschied:

\begin{Example}
  \begin{quote}
    |format=hang,indention=-.5cm|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{format=hang,indention=-.5cm}{%
    Erster Absatz der Beschriftung; dieser enth"alt einigen Text, so da"s die
    Auswirkungen der Optionen deutlich werden.

    Zweiter Absatz der Beschriftung; dieser enth"alt ebenfalls einigen Text,
    so da"s die Auswirkungen der Optionen deutlich werden.}
\end{Example}

\begin{Example}
  \begin{quote}
    |format=hang,hangindent=-.5cm|
  \end{quote}
  \captionsetup{aboveskip=0pt}
  \example{format=hang,hangindent=-.5cm}{%
    Erster Absatz der Beschriftung; dieser enth"alt einigen Text, so da"s die
    Auswirkungen der Optionen deutlich werden.

    Zweiter Absatz der Beschriftung; dieser enth"alt ebenfalls einigen Text,
    so da"s die Auswirkungen der Optionen deutlich werden.}
\end{Example}


\subsection{Stile}
\label{style}

\DescribeMacro{style=}
Eine geeignete Kombination aus den bisher vorgestellten Optionen wird \textit{Stil}
genannt; dies ist in etwa mit dem Seitenstil vergleichbar, den man bekannterma"sen
mit |\pagestyle| einstellen kann.

Einen vordefinierten Abbildungs- und Tabellenbeschriftungsstil kann man mit der
Option
\begin{quote}
  |style=|\meta{Stil}
\end{quote}
ausw"ahlen. Das \thispackage-Paket definiert in der Regel lediglich den Stil
|default|, der alle vorgehenden Optionen auf die Standardbelegung zur"ucksetzt,
d.h.~die Angabe der Option
\begin{quote}
  |style=default|
\end{quote}
entspricht den Optionen
\begin{quote}
  |format=default,labelformat=simple,labelsep=colon,|\\
  |justification=justified,font=default,labelfont=default,|\\
  |textfont=default,margin=0pt,indention=0pt,parindent=0pt|\\
  |hangindent=0pt,singlelinecheck=true|
\end{quote}


\subsection{Abst"ande}

\DescribeMacro{aboveskip=}
\DescribeMacro{belowskip=}
Die Standard-\LaTeX-Klassen |article|, |report| und |book| definieren
zwei Abst"ande, die in Zusammenhang mit den Abbildungs- und
Tabellenbeschriftungen gebraucht werden: |\abovecaptionskip| wird \emph{vor}
der Beschriftung angewandt und ist auf |10pt| vorbelegt. |\belowcaptionskip|
wird \emph{nach} der Beschriftung angewandt und ist auf |0pt| vorbelegt.

\pagebreak[3]
Beide Abst"ande lassen sich gew"ohnlich mit |\setlength| "andern, aber auch mit den
\thispackage-Optionen
\nopagebreak[3]
\begin{quote}\begin{tabular}{@{}r@{}ll}
  |aboveskip=| & \meta{Abstand nach oben}  & und\\
  |belowskip=| & \meta{Abstand nach unten} & .\\
\end{tabular}\end{quote}

\DescribeMacro{position=}
Die sture Anwendung von |\abovecaptionskip| und |\belowcaptionskip| bei
Beschriftungen birgt einen gro"sen Nachteil: Ist die Beschriftung \emph{"uber}
und nicht \emph{unter} der Abbildung oder Tabelle (wie bei Tabellen durchaus
"ublich), so ist die Vorbelegung dieser beiden Abst"ande nicht mehr sinnvoll,
da hier kein Abstand zwischen der Beschriftung und der Tabelle gesetzt wird.
(Wir erinnern uns: |\belowcaptionskip| ist auf |0pt|, also kein Abstand,
vorbelegt.)

Man vergleiche:
\begin{Example}
  \begin{minipage}[c]{.5\linewidth}%
%   \captionsetup{aboveskip=0pt}%
    \captionof{table}{Eine Tabelle}%
    \centering\begin{tabular}{ll}%
      A & B \\%
      C & D \\%
    \end{tabular}%
  \end{minipage}%
  \begin{minipage}[c]{.5\linewidth}%
    \centering\begin{tabular}{ll}%
      A & B \\%
      C & D \\%
    \end{tabular}%
    \captionof{table}{Eine Tabelle}%
  \end{minipage}%
\end{Example}

Mit Hilfe des Parameters |position| kann man jedoch festlegen, wie
\LaTeX\ die Beschriftung behandeln soll, ob als \mbox{\emph{"Uber}schrift}
oder als \mbox{\emph{Unter}schrift}:
\begin{quote}
  |position=top|\quad(oder |position=above|)
\end{quote}
gibt an, da"s die Abst"ande so gew"ahlt werden, da"s sie f"ur \mbox{\emph{"Uber}schriften}
sinnvoll gew"ahlt sind und
\begin{quote}
  |position=bottom|\quad(oder |position=below|)
\end{quote}
gibt an, da"s die Abst"ande so gew"ahlt werden, da"s sie f"ur \mbox{\emph{"Uber}schriften}
sinnvoll gew"ahlt sind. (Dies ist die Standardeinstellung.)

F"ugt man nun ein |\captionsetup{position=top}| in die linke Tabelle vor dem
|\caption| Befehl ein, so ergeben sich im Vergleich zwischen "Uberschrift und
Unterschrift stimmige Abst"ande:
\begin{Example}
  \begin{minipage}[c]{.5\linewidth}%
    \captionsetup{position=top}%
    \captionof{table}{Eine Tabelle}%
    \centering\begin{tabular}{ll}%
      A & B \\%
      C & D \\%
    \end{tabular}%
  \end{minipage}%
  \begin{minipage}[c]{.5\linewidth}%
    \centering\begin{tabular}{ll}%
      A & B \\%
      C & D \\%
    \end{tabular}%
    \captionof{table}{Eine Tabelle}%
  \end{minipage}%
\end{Example}

(Technisch ist dies so realisiert, da"s bei "Uberschriften die Ab\-st"an\-de
|\abovecaptionskip| und |\belowcaptionskip| vertauscht werden, so da"s
|\abovecaptionskip| immer derjenige Abstand ist, der zwischen Tabelle
und Beschriftung zur Anwendung kommt.)

\DescribeMacro{tableposition=}
Sinnvoll l"a"st sich diese Option insbesondere zusammen mit dem optionalen
Parameter bei |\captionsetup| anwenden (siehe auch Abschnitt
\ref{misc}: \textit{"`N"utzliches"'}):
\begin{quote}
  |\captionsetup[table]{position=top}|
\end{quote}
bewirkt, da"s bei allen Tabellen die Beschriftung bzgl.~der Abst"ande als
"Uberschrift behandelt wird.
\NEWfeature{v3.0a}
Da dies eine sehr gebr"auchliche Einstellung ist,
stellt das \thispackage"=Paket diesen Befehl auch als abk"urzende Option f"ur
|\usepackage| zur Verf"ugung:
\begin{quote}
  |\usepackage[|\ldots|,tableposition=top]{caption}|
\end{quote}
entspricht
\begin{quote}
  |\usepackage[|\ldots|]{caption}|\\
  |\captionsetup[table]{position=top}|
\end{quote}


\pagebreak[3]
\section{N"utzliches}
\label{misc}

\DescribeMacro{\caption}
Der Befehl
\nopagebreak[3]
\begin{quote}
  |\caption|\oarg{Kurzform f"ur das Verzeichnis}\marg{Beschriftung}
\end{quote}
\nopagebreak[3]
erzeugt eine "Uber- bzw.~Unterschrift innerhalb einer gleitenden Umgebung
wie |figure| oder |table|. Dies ist an sich nichts neues, neu ist allerdings,
da"s kein Eintrag ins Abbildungs- oder Tabellenverzeichnis vorgenommen
wird, wenn eine leere Kurzform angegeben wird, etwa so:
\begin{quote}
  |\caption[]{Dies ist eine Abbildung, die nicht ins|\\
  |           Abbildungsverzeichnis aufgenommen wird}|
\end{quote}

\DescribeMacro{\caption*}
Das \package{longtable}-Paket definiert zus"atzlich zum Befehl |\caption| auch
den Befehl |\caption*|, der eine Beschriftung ohne Bezeichner und ohne Eintrag
ins Tabellenverzeichnis erzeugt. So erzeugt z.B. der Code
\begin{quote}
  |\begin{longtable}{cc}|\\
  |  \caption*{Eine Tabelle}\\|\\
  |  A & B \\|\\
  |  C & D \\|\\
  |\end{longtable}|
\end{quote}
diese Tabelle:
\begin{longtable}{cc}
  \caption*{Eine Tabelle}\\
  A & B \\
  C & D \\
\end{longtable}

Das \thispackage-Paket bietet diesen Mechanismus auch f"ur normale Abbildungs-
und Tabellenbeschriftungen an. Ferner kann hier auch abweichend ein
Verzeichniseintrag erzeugt werden, indem dieser explizit in eckigen Klammern
mit angegeben wird. Etwa so:
\begin{quote}
  |\begin{table}|\\
  |  \caption*[Eine Tabelle]{Eine Tabelle}|\\
  |  \begin{tabular}{cc}|\\
  |    A & B \\|\\
  |    C & D \\|\\
  |  \end{longtable}|\\
  |\end{table}|
\end{quote}

\DescribeMacro{\captionof}
\DescribeMacro{\captionof*}
Der Befehl |\caption| funktioniert in der Regel nur innerhalb von gleitenden
Umgebungen, manchmal m"ochte man ihn jedoch auch anderweitig anwenden,
etwa um eine Abbildung in eine nicht-gleitende Umgebung wie |minipage| zu
setzen.

\pagebreak[2]
Hierf"ur stellt das
\thispackage-Paket den Befehl
\begin{quote}
  |\captionof|\marg{Umgebungstyp}\oarg{Kurzform}\marg{Langform}
\end{quote}
zur Verf"ugung. Die Angabe des Umgebungstypen ist hierbei notwendig, damit der
gew"unschte Bezeichner gew"ahlt wird und der Eintrag in das richtige Verzeichnis
vorgenommen wird. Ein Beispiel:
\begin{quote}
  |\captionof{figure}{Abbildung}|\\
  |\captionof{table}{Tabelle}|
\end{quote}
f"uhrt zu folgendem Ergebnis:
\begin{Example}
  \captionof{figure}{Abbildung}
  \captionsetup{belowskip=\abovecaptionskip}
  \captionof{table}{Tabelle}
\end{Example}

Analog zu |\caption*| gibt es auch den Befehl |\captionof*| f"ur Beschriftungen
ohne Bezeichner und ohne Verzeichniseintrag, sofern nicht explizit angegeben.

Beide Befehle, sowohl |\captionof| als auch |\captionof*|, sollten nur
\emph{innerhalb} von Umgebungen (wie |minipage| oder |\parbox|) angewandt werden.
Zum einen kann es sonst passieren, da"s \LaTeX\ zwischen dem Inhalt und der
Beschreibung einen Seitenumbruch setzt; zum anderen kann es bei Mi"sachtung gar
zu seltsamen Effekten (wie falsche Abst"ande um die Beschriftungen herum) kommen!

\DescribeMacro{\ContinuedFloat}
Manchmal m"ochte man Abbildungen oder Tabellen aufteilen, jedoch ohne den einzelnen
Teilen eine eigene Abbildungs- oder Tabellennummer zu geben. Hierf"ur stellt das
\thispackage-Paket den Befehl
\begin{quote}
  |\ContinuedFloat|
\end{quote}
zur Verf"ugung, der gleich als erstes innerhalb der folgenden Teile angewandt
werden sollte. Er verhindert, da"s die Z"ahlung fortgef"uhrt wird; eine Abbildung
oder Tabelle, die ein |\ContinuedFloat| enth"alt, erh"alt also die gleiche Nummer
wie die vorherige Abbildung oder Tabelle.

Ein Beispiel:
\begin{quote}
  |\begin{table}|\\
  |\caption{Eine Tabelle.}|\\
  \ldots\\
  |\end{table}|\\
  \ldots\\
  |\begin{table}\ContinuedFloat|\\
  |\caption{Eine Tabelle. (fortgef"uhrt)}|\\
  \ldots\\
  |\end{table}|
\end{quote}
ergibt als Ergebnis:
\begin{Example}
  \makeatletter\def\@captype{table}\makeatother
  \caption[]{Eine Tabelle.}
  \centerline{\ldots}
  \ContinuedFloat
  \captionsetup{aboveskip=0pt}
  \caption[]{Eine Tabelle. (fortgef"uhrt)}
\end{Example}

\DescribeMacro{\captionsetup}
Den Befehl |\captionsetup| haben wir ja schon im Abschnitt
\ref{usage}: \textit{"`Verwendung des Paketes"'} kennengelernt,
uns dort allerdings die Bedeutung des optionalen Parameters
\meta{Typ} aufgespart. %Dies soll nun nachgeholt werden:

Wir erinnern uns, die Syntax des Befehls lautet
\begin{quote}
  |\captionsetup|\oarg{Typ}\marg{Optionen}
\end{quote}

Wird hierbei ein \meta{Typ} angegeben, so werden die Optionen nicht
unmittelbar umgesetzt, sondern werden lediglich vermerkt und kommen erst dann
zum Einsatz, wenn eine "Uber- bzw.\ Unterschrift innerhalb des passenden
gleitenden Umgebungstyps gesetzt wird. So wirkt sich z.B. die Angabe
\begin{quote}
  |\captionsetup[figure]|\marg{Optionen}
\end{quote}
lediglich auf die Unterschriften aus, die innerhalb einer |figure|"=Umgebung
gesetzt werden.

Ein Beispiel:
\begin{quote}
  |\captionsetup{font=small}|\\
  |\captionsetup[figure]{labelfont=bf}|
\end{quote}
f"uhrt zu Abbildungs- und Tabellenunterschriften der Art:
\begin{Example}
  \captionsetup{font=small}
  \captionsetup[figure]{labelfont=bf}
  \captionof{figure}[]{Eine Abbildung}
  \captionsetup{belowskip=\abovecaptionskip}
  \captionof{table}[]{Eine Tabelle}
\end{Example}

Wie man sieht, f"uhrt das |\captionsetup[figure]{labelfont=bf}| lediglich dazu,
da"s Abbildungsunterschriften mit fettem Bezeichner gesetzt werden, alle anderen
Unter- bzw.\ "Uberschriften werden hiervon nicht beeinflu"st.

\DescribeMacro{\clearcaptionsetup}
Um diese vermerkten, typbezogenen Parameter aus dem Ged"achnis von \LaTeX\ zu
l"oschen, gibt es den Befehl
\begin{quote}
  |\clearcaptionsetup|\marg{Typ}\quad.
\end{quote}

|\clearcaptionsetup{figure}| w"urde z.B. die obrige Sonderbehandlung der
Abbildungsunterschriften wieder aufheben:
\begin{Example}
  \captionsetup{font=small}
   \captionof{figure}[]{Eine Abbildung}
   \captionsetup{belowskip=\abovecaptionskip}
   \captionof{table}[]{Eine Tabelle}
\end{Example}

Als Umgebungstypen mit Unter- bzw.\ "Uberschriften gibt es in der Regel nur
zwei: |figure| und |table|. Wie wir jedoch sp"ater sehen werden, kommen durch die
Verwendung spezieller \LaTeX-Pakete (wie etwa das \package{float}"=Paket)
ggf.~weitere Typen hinzu, deren Beschriftungen ebenfalls derart individuell
angepasst werden k"onnen.


\pagebreak[3]
\section{Eigene Erweiterungen}
\label{declare}

Wem die vorhandenen Formate, Trenner, Textausrichtungen, Zeichens"atze und Stile
nicht ausreichen, der hat die M"oglichkeit, sich eigene zu definieren. Hierzu
gibt es eine Reihe von Befehlen, die in dem Vorspann des Dokumentes (das ist der
Teil vor |\begin{document}|) zum Einsatz kommen.

\pagebreak[2]
\DescribeMacro{\DeclareCaptionFormat}
Eigene Formate k"onnen mit dem Befehl
\begin{quote}
  |\DeclareCaptionFormat|\marg{Name}\marg{Code mit \#1, \#2 und \#3}
\end{quote}
definiert werden. F"ur \#1 wird sp"ater der Bezeichner, f"ur \#2 der Trenner
und f"ur \#3 der Text eingesetzt. So ist z.B. das Standardformat |default|,
welches die Beschriftung als gew"ohnlichen Absatz formatiert, folgenderma"sen
in |caption.sty| definiert:
\begin{quote}
  |\DeclareCaptionFormat{default}{#1#2#3\par}|
\end{quote}

\DescribeMacro{\DeclareCaptionLabelFormat}
"Ahnlich k"onnen auch eigene Bezeichnerformate definiert werden:
\begin{quote}
  |\DeclareCaptionLabelFormat|\marg{Name}\marg{Code mit \#1 und \#2}
\end{quote}
Bei den Bezeichnerformaten wird hierbei f"ur \#1 der Name (also z.B.
"`Abbildung"'), f"ur \#2 die Nummer (also z.B. "`12"') eingesetzt.

\DescribeMacro{\bothIfFirst}
\DescribeMacro{\bothIfSecond}
Hierbei gibt es eine Besonderheit zu beachten: Wird das Bezeichnerformat
auch in Verbindung mit dem \package{subfig}"=Paket\cite{subfig} verwendet,
so kann der Bezeichnername (also \#1) auch leer sein.
Um dies flexibel handhaben zu k"onnen, stellt das \thispackage"=Paket die
Befehle
\begin{quote}
  |\bothIfFirst|\marg{Erstes Argument}\marg{Zweites Argument}\quad und\\
  |\bothIfSecond|\marg{Erstes Argument}\marg{Zweites Argument}
\end{quote}
zur Verf"ugung. |\bothIfFirst| testet, ob das erste Argument leer ist,
|\bothIfSecond|, ob das zweite Argument leer ist. Nur wenn dies nicht der
Fall ist, werden beide Argumente ausgegeben, ansonsten werden beide
unterdr"uckt.

So ist z.B. das Standard"=Bezeichnerformat |simple| nicht, wie man
naiverweise annehmen k"onnte, als
\begin{quote}
  |\DeclareCaptionLabelFormat{simple}{#1 #2}|
\end{quote}
definiert, weil dies zu einem st"orendem f"uhrenden Leerzeichen f"uhren w"urde,
wenn \#1 leer ist. Stattdessen findet sich in |caption.sty| folgende
Definition, die sowohl mit |\caption| als auch mit |\subfloat| harmoniert:
\begin{quote}
  |\DeclareCaptionLabelFormat{simple}{\bothIfFirst{#1}{ }#2}|
\end{quote}
d.h.~das Leerzeichen kommt nur dann zum Einsatz, wenn \#1 nicht leer ist.

\pagebreak[3]
\DescribeMacro{\DeclareCaptionLabelSeparator}
Eigene Trenner werden mit
\nopagebreak[3]
\begin{quote}
  |\DeclareCaptionLabelSeparator|\marg{Name}\marg{Code}
\end{quote}
\nopagebreak[3]
definiert. Auch hier wieder als einfaches Beispiel die Definition des
Standard"=Trenners aus |caption.sty|:
\nopagebreak[3]
\begin{quote}
  |\DeclareCaptionLabelSeparator{colon}{: }|
\end{quote}
\pagebreak[3]

\DescribeMacro{\DeclareCaptionJustification}
Eigene Textausrichtungen k"onnen mit
\begin{quote}
  |\DeclareCaptionJustification|\marg{Name}\marg{Code}
\end{quote}
definiert werden. Der \meta{Code} wird dann der Beschriftung vorangestellt,
so f"uhrt z.B. die Verwendung der Ausrichtung
\begin{quote}
  |\DeclareCaptionJustification{raggedright}{\raggedright}|
\end{quote}
dazu, da"s alle Zeilen der Beschriftung linksb"undig ausgegeben werden.

\DescribeMacro{\DeclareCaptionFont}
Eigene Zeichensatzoptionen k"onnen mit
\begin{quote}
  |\DeclareCaptionFont|\marg{Name}\marg{Code}
\end{quote}
definiert werden. So definiert z.B. das \thispackage"=Paket die Optionen
|small| und |bf| folgenderma"sen:
\begin{quote}
  |\DeclareCaptionFont{small}{\small}|\\
  |\DeclareCaptionFont{bf}{\bfseries}|
\end{quote}

\DescribeMacro{\DeclareCaptionStyle}
Zu guter letzt noch die Definition eigener Stile. Stile sind einfach eine
Ansammlung von geeigneten Einstellungen, die unter einem eigenen Namen
zusammengefasst werden und mit der Paketoption |style=|\meta{Name} ausgew"ahlt
werden k"onnen. Sie werden wie folgt definiert:
\begin{quote}
  |\DeclareCaptionStyle|\marg{Name}\oarg{zus"atzliche Optionen}\marg{Optionen}
\end{quote}
Hierbei ist zu beachten, da"s die \meta{Optionen} immer auf den Standardeinstellungen
basieren (siehe auch Abschnitt \ref{style}: \textit{"`Stile"'}), es brauchen
also nur davon abweichende Optionen angegeben werden.

Sind \meta{zus"atzliche Optionen} angegeben, so kommen diese automatisch
zus"atzlich zum Einsatz, sofern die Beschreibung in eine einzelne Zeile passt
und diese Abfrage nicht mit |singlelinecheck=off| ausgeschaltet wurde.

Als Beispiel mu"s mal wieder eine einfache Definition aus diesem Paket herhalten:
\begin{quote}
  |\DeclareCaptionStyle{default}[justification=centering]{}|
\end{quote}


\subsection{Beispiele}

M"ochte man als Trenner einen Punkt \emph{und} einen Zeilenumbruch haben,
so lie"se sich das wie folgt realisieren:
\begin{quote}
  |\DeclareCaptionLabelSeparator{period-newline}{. \newline}|
\end{quote}
W"ahlt man diesen Trenner mit |\captionsetup{labelsep=period-newline}| aus, so
ergeben sich Beschriftungen der Art
\begin{Example}
  \captionsetup{labelsep=period-newline,labelfont=bf,margin=10pt}
  \captionsetup{aboveskip=0pt}
  \captionof{figure}[]{\figuretext}
\end{Example}

F"ur kurze Beschriftungen, die in eine Zeile passen, mag dieses Erscheinungsbild
jedoch st"orend sein, selbst wenn die automatische Zentrierung (mit
|singlelinecheck=off|) ausgeschaltet ist:
\begin{Example}
  \captionsetup{labelsep=period-newline,labelfont=bf,margin=10pt,singlelinecheck=0}
  \captionsetup{aboveskip=0pt}
  \captionof{figure}[]{Eine Abbildung.}
\end{Example}

Abhilfe schafft ein eigener Stil, der bei solchen Beschriftungen einen anderen
Trenner ohne Zeilenumbruch ausw"ahlt:
\begin{quote}
  |\DeclareCaptionStyle{period-newline}%|\\
  |  [labelsep=period]{labelsep=period-newline}|
\end{quote}
\begin{Example}
  \captionsetup{style=period-newline,labelfont=bf,margin=10pt}
  \captionsetup{aboveskip=0pt}
  \captionof{figure}[]{Eine Abbildung.}
\end{Example}
M"ochte man die automatische Zentrierung ebenfalls implementieren, so w"are
\begin{quote}
  |\DeclareCaptionStyle{period-newline}%|\\
  |  [labelsep=period,justification=centering]%|\\
  |  {labelsep=period-newline}|
\end{quote}
eine geeignete Definition:
\begin{Example}
  \captionsetup{style=period-newline2,labelfont=bf,margin=10pt}
  \captionsetup{aboveskip=0pt}
  \captionof{figure}[]{Eine Abbildung.}
\end{Example}

\pagebreak[3]
Ein anderes Beispiel: Die Beschriftungen sollen wie folgt aussehen:
\begin{Example}
  \captionsetup{format=reverse,labelformat=fullparens,labelsep=fill,font=small,labelfont=it}
  \captionsetup{aboveskip=0pt}
  \captionof{figure}[]{\figuretext}
\end{Example}
\pagebreak[2]
Dies lie"se sich z.B. wie folgt realisieren:
\nopagebreak[3]
{\leftmargini=10pt
 \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}}

\pagebreak[3]
Ein weiteres Beispiel: Der Bezeichner soll in den linken Rand verlagert
werden, so da"s die komplette Absatzbreite der Beschriftung selber zugute kommt:
{\leftmargini=10pt
 \begin{quote}
   |\DeclareCaptionFormat{llap}{\llap{#1#2}#3\par}|\\
   |\captionsetup{format=llap,singlelinecheck=no,|\\
   |              labelsep=quad}|
 \end{quote}}
Das Ergebnis w"aren Beschriftungen wie diese:
\begin{Example}
  \captionsetup{format=llap,singlelinecheck=no,labelsep=quad}
  \captionsetup{aboveskip=0pt}
  \captionof{figure}[]{\figuretext}
\end{Example}


\pagebreak[3]
\section{Verwendung mit speziellen Dokumentenklassen}

\NEWdescription{v3.0c}
Das \thispackage"=Paket ist auf die Verwendung mit den
Standard"=Dokumentenklassen |article|, |report| und |book| ausgelegt, es
sollte jedoch auch mit anderen Dokumentenklassen zusammenarbeiten.
(Falls nicht bitte ich um eine E-Mail an |caption@sommerfeldt.net|. Danke.)

M"ochte man das \thispackage"=Paket mit den \KOMAScript"=Klassen oder der
\package{memoir}"=Klasse verwenden, so ist sorgf"altig abzuw"agen, ob die
in diesen Klassen reichlich enthaltenden M"oglichkeiten zur Anpassung der
Beschriftungen nicht ausreichend sind.
Denn das \thispackage"=Paket funktioniert zwar auch mit den
\KOMAScript"=Klassen und der \package{memoir}"=Klasse, allerdings sollte
darauf geachtet werden, da"s die verschiedenen Anpassungsm"oglichkeiten nicht
im Dokument vermischt werden.
Ist das \thispackage"=Paket erst einmal geladen, verlieren Befehle wie
|\captionabove|, |\captionbelow|, |\captionformat|, |\figureformat|,
|\tableformat|, |\setcapindent|, |\setcaphanging|, |\captionstyle| usw.\ ihre
Wirkung.


\section{Interaktion mit anderen Paketen}
\label{packages}

Das \thispackage"=Paket enth"alt spezielle Anpassungen an andere Pakete, damit
die Beschriftungen dort ebenfalls genauso ausgegeben werden, wie man es mit den oben
genannten Optionen eingestellt hat. Im einzelnen sind dies die folgenden Pakete:

\begin{tabular}{ll}
  |float|        & Erlaubt die Definition eigener gleitenen Umgebungsstile\\
  |listings|     & Setzt Quelltexte diverser Programmiersprachen\\
  |longtable|    & Setzt Tabellen, die sich "uber mehrere Seiten erstrecken k"onnen\\
  |rotating|     & Unterst"utzt rotierende Abbildungen und Tabellen\\
  |sidecap|      & Erlaubt das Setzen von Beschriftungen \emph{neben} Abbildungen\\
  |supertabular| & Setzt Tabellen, die sich "uber mehrere Seiten erstrecken k"onnen\\
\end{tabular}

\NEWfeature{v3.0b}
Wird eines dieser Pakete zusammen mit dem \thispackage"=Paket verwendet, steht
einem zus"atzlich die M"oglichkeit bereit, mittels
\begin{quote}|\captionsetup|\oarg{Umgebung}\marg{Optionen}\end{quote}
Optionen festzulegen, die lediglich f"ur diese Umgebung gelten. So bewirkt z.B.
\begin{quote}|\captionsetup[lstlisting]{labelfont=bf}|\quad,\end{quote}
da"s Beschriftungen innerhalb der |lstlisting|"=Umgebung automatisch mit fettem
Bezeichner gesetzt werden.
(Dies funktioniert allerdings nicht mit den |sideways|"=Umgebungen, die vom
\package{rotating}"=Paket angeboten werden.)

Ist die Unterst"utzung eines dieser Pakete im speziellen Falle nicht erw"unscht,
so kann dies durch Angabe der Option
\begin{quote}
  |\usepackage[|\ldots|,|\meta{Paketname}|=no]{caption}|
\end{quote}
erreicht werden, etwa |float=no|, wenn die Unterst"utzung des
\package{float}"=Paketes nicht erw"unscht wird. (Hinweis: Diese Optionen k"onnen
nur innerhalb des |\usepackage|"=Befehls angegeben werden, also insbesondere
\emph{nicht} nachtr"aglich mit |\captionsetup|.)

N"ahere Informationen zu den einzelnen Paketen entnehmen Sie bitte der
dazugeh"origen Anleitung oder dem \LaTeX-Begleiter\cite{companion}.


\subsection{Das \package{float}-Paket}

Ein sehr n"utzliches Feature stellt das \package{float}"=Paket\cite{float}
mit dem Platzierungsparameter |[H]| bereit:
Anders als beim Parameter |h|, den \LaTeX\ bereitstellt und der lediglich
eine Empfehlung darstellt, die Abbildung oder Tabelle nach M"oglichkeit
"`hier"' zu setzen, ist das |H| viel kompromi"sloser, denn es erzwingt
das Setzen genau an diesem Ort und nirgendwo anders.

Weiterhin definiert es f"ur gleitende Umgebungen die Stile |plain|,
|plaintop|, |ruled| und |boxed|.
F"ur die vorhandenen Umgebungen |figure| und |table| kann hierbei der Stil
ge"andert werden, ferner k"onnen eigene Umgebungstypen definiert werden,
die ggf.~ein eigenes Verzeichnis bekommen.

Kommt das \package{float}"=Paket zusammen mit dem \thispackage"=Paket zum
Einsatz, so wird automatisch der Beschriftungsstil |ruled| definiert, der das
Aussehen der Beschriftungen innerhalb von Abbildungen des Umgebungsstils
|ruled| regelt:
\begin{quote}
  |\DeclareCaptionStyle{ruled}{labelfont=bf,labelsep=space}|
\end{quote}
F"ur den Anwender bedeutet dies, da"s allgemein get"atigte Einstellungen an den
Beschriftungen hier unwirksam sind; stattdessen werden die Beschriftungen genau
so gesetzt, wie vom \package{float}"=Paket stilistisch vorgegeben, n"amlich so:

\ifx\floatstyle\undefined

\begin{Example}
\hrule height.8pt depth0pt \kern2pt
\vbox{\strut{\bfseries Programm \ref{packages}.1}
   Das erste Programm. Dies hat nichts mit dem Paket an sich zu tun,
   dient aber als Beispiel. Man beachte den \texttt{ruled} Stil.}
\kern2pt\hrule\kern2pt
\begin{verbatim}
#include <stdio.h>

int main(int argc, char **argv)
{
       for (int i = 0; i < argc; ++i)
               printf("argv[%d] = %s\n", i, argv[i]);
       return 0;
}
\end{verbatim}
\kern2pt\hrule\relax
\end{Example}

\else

\floatstyle{ruled}
\newfloat{Program}{tbp}{lop}[section]
\floatname{Program}{Programm}

\begin{Program}[H]
\begin{verbatim}
#include <stdio.h>

int main(int argc, char **argv)
{
       for (int i = 0; i < argc; ++i)
               printf("argv[%d] = %s\n", i, argv[i]);
       return 0;
}
\end{verbatim}
\caption{Das erste Programm. Dies hat nichts mit dem Paket an sich zu tun,
   dient aber als Beispiel. Man beachte den \texttt{ruled} Stil.}
\end{Program}

\fi

M"ochte man das Aussehen dieser Beschriftungen "andern, ist der Stil |ruled|
mittels
\begin{quote}
  |\DeclareCaptionStyle{ruled}|\marg{Optionen}
\end{quote}
geeignet zu definieren.

Dieser Mechanismus funktioniert auch bei allen anderen Umgebungsstilen,
d.h.~auch bei Umgebungen des Types |plain| und |boxed| kann ein geeigneter
Beschriftungsstil mit gleichem Namen definiert werden, der dann automatisch bei
gleitenden Umgebungen dieses Types zum Einsatz kommt.


\subsection{Das \package{listings}-Paket}

\NEWdescription{v3.0b}
Das \package{listings}"=Paket\cite{listings} erlaubt die Einbindung von
Quelltexten diverser Programmiersprachen.

\textbf{Achtung:} Die Zusammenarbeit klappt erst ab der Version 1.2 des
\package{listings}"=Paketes. "Altere Versionen verursachen eine Fehlermeldung!


\subsection{Das \package{longtable}-Paket}

Das \package{longtable}"=Paket\cite{longtable} definiert die Umgebung
|longtable|, die sich wie eine Tabelle anwenden l"a"st, aber im Gegensatz zu
|tabular| Seitenumbr"uche innerhalb der Tabelle gestattet.

Zus"atzlich zu den regul"aren Optionen, die f"ur Tabellen festgelegt wurden,
besteht die M"oglichkeit.

\subsection{Das \package{rotating}-Paket}

Das \package{rotating}"=Paket\cite{rotating} stellt u.a.~die
gleitenden Umgebungen \texttt{sideways\-figure} und \texttt{sideways\-table}
bereit, die im Gegensatz zu |figure| und |table| um 90 Grad gedreht werden
und immer eine ganze Seite einnehmen.


\subsection{Das \package{sidecap}-Paket}

\NEWdescription{v3.0b}
Das \package{sidecap}"=Paket\cite{sidecap} definiert die Umgebungen |SCfigure|
und |SCtable|, die analog zu |figure| und |table| funktionieren, aber
Beschriftungen \emph{neben} der Abbildung oder Tabelle erlauben.

Bei der Verwendung des \package{sidecap}"=Paketes ist zu beachten, da"s eine
dort angegebene Option |raggedright|, |raggedleft| oder |ragged| den Parameter
|justification=| des \thispackage"=Paketes f"ur die betreffenen Umgebungen
"uberschreibt, d.h.~bei Beschriftungen \emph{neben} der Abbildung oder Tabelle
erh"alt die Option des \package{sidecap}"=Paketes den Vorzug.

\DescribeMacro{listof=}
%\NEWfeature{v3.0b}
Ferner liegt es im Design des \package{sidecap}"=Paketes begr"undet,
da"s das Unterdr"ucken des Verzeichniseintrages mit |\caption[]{|\ldots|}|
hier nicht klappt. Als Alternative kann in diesen F"allen die Unterdr"uckung
mittels |\captionsetup{listof=false}| innerhalb der Abbildung oder Tabelle
geschehen.

\ifx\SCfigure\undefined

\begin{Example}
  \newsavebox\scbox
  \begin{lrbox}{\scbox}
    \setlength{\unitlength}{.75cm}%
    \setlength{\fboxsep}{0pt}%
    \fbox{\begin{picture}(4,4)%
      \put(1,3){\circle{1}}%
      \put(3,3){\circle{1}}%
      \put(2,2){\circle{1}}%
      \put(1,1){\circle{1}}%
      \put(3,1){\circle{1}}%
    \end{picture}}%
  \end{lrbox}
  \newlength\scboxwidth
  \setlength\scboxwidth{\wd\scbox}
  \makebox[\linewidth][c]{%
    \parbox[b]{\scboxwidth}{\unhbox\scbox}%
    \hspace\marginparsep
    \parbox[b]{1.5\scboxwidth}{%
      \captionsetup{justification=RaggedRight,labelfont=bf}
      \captionof{figure}[]{Ein kleines Beispiel mit Beschriftung neben der Abbildung.}%
    }%
  }
\end{Example}

\else

\captionsetup{labelfont=bf}
\begin{SCfigure}[1.5][!ht]
  \setlength{\unitlength}{.75cm}%
  \setlength{\fboxsep}{0pt}%
  \fbox{\begin{picture}(4,4)%
    \put(1,3){\circle{1}}%
    \put(3,3){\circle{1}}%
    \put(2,2){\circle{1}}%
    \put(1,1){\circle{1}}%
    \put(3,1){\circle{1}}%
  \end{picture}}%
% \captionsetup{labelfont=bf}
  \caption[]{Ein kleines Beispiel mit Beschriftung neben der Abbildung.}
\end{SCfigure}
\captionsetup{labelfont=default}

\fi


\subsection{Das \package{supertabular}-Paket}

Das \package{supertabular}"=Paket\cite{supertabular} definiert, "ahnlich wie
das \package{longtable}"=Paket, eine Umgebung |supertabular|, die sich
ebenfalls wie eine Tabelle anwenden l"a"st, aber im Gegensatz zu |tabular|
Seitenumbr"uche innerhalb der Tabelle gestattet.

Eine ausf"uhrliche Behandlung der Unterschiede zwischen den beiden Paketen
\package{longtable} und \package{supertabular} ist im Buch "`Der \LaTeX-Begleiter"'
\cite{companion} zu finden.


\subsection{Bekannte Inkompatibilit"aten}

\NEWdescription{v3.0b}
Die Verwendung des \thispackage"=Paketes in Verbindung mit folgenden Paketen
ist nicht empfehlenswert, da es in der Regel zu unerw"unschten Seiteneffekten
oder gar Fehlern kommen kann:
\begin{quote}
\package{ccaption}, \package{hvfloat}, \package{nonfloat}
\end{quote}

Ferner m"ussen bei der Verwendung des \package{hypcap}"=Paketes folgende
Einschr"ankungen in Kauf genommen werden: Die Erweiterungen des |\caption|
Befehls funktionieren nicht, die Einstellung |labelformat=| wird nicht
beachtet und lokale Einstellungen mittels |\captionsetup[|\ldots|]{|\ldots|}|
gelingen in der Regel nicht mehr. Dies liegt im Implementationsdesign des
\package{hypcap}"=Paketes begr"undet; der Abschnitt 1.3 "`Limitations"' der
dazugeh"origen Anleitung wei"st auf diesen Umstand explizit hin.


\section{Kompatibilit"at zu "alteren Versionen}

\subsection{\thispackage\ Version $1.x$}

Diese Version des \thispackage"=Paketes ist weitgehend kompatibel zu "alteren
Versionen des Paketes; alte Dokumente sollten sich also in der Regel ohne
Probleme weiterhin "ubersetzen lassen. Jedoch ist zu beachten, da"s eine Mischung
aus alten Befehlen und neueren Optionen bzw.~Befehlen nicht unterst"utzt wird
bzw.~zu unerw"unschten Nebeneffekten f"uhren kann.

Hier eine kurze "Ubersicht "uber die alten Optionen und Befehle und durch was
sie in dieser Version des \thispackage"=Paketes ersetzt wurden:

\begin{small}\begin{longtable}{ll}
\thispackage\ $1.\mathit{x}$ & \thispackage\ $3.\mathit{x}$\\
\hline
\endhead
|normal|                           & |format=default|\\
|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|\\
|\setlength{\captionmargin}|       & |margin=|\meta{Rand}\\
|\renewcommand{\captionfont}|      & |\DeclareCaptionFont|\\
                                   & $+$ |\captionsetup{font=|\meta{Name}|}|\\
|\renewcommand{\captionsize}|      & |\DeclareCaptionFont|\\
                                   & $+$ |\captionsetup{font=|\meta{Name}|}|\\
|\renewcommand{\captionlabelfont}| & |\DeclareCaptionLabelFont|\\
                                   & $+$ |\captionsetup{labelfont=|\meta{Name}|}|\\
\end{longtable}\end{small}


\subsection{\package{caption2} Version $2.x$}

Die Pakete \package{caption} und \package{caption2} sind vom internen Konzept
her zu unterschiedlich, um hier eine Kompatibilit"at gew"ahrleisten zu k"onnen.
Daher liegt diesem Paket weiterhin ein |caption2.sty| bei, so da"s "altere
Dokumente, die |caption2.sty| verwenden, weiterhin "ubersetzt werden k"onnen.
Neue Dokumente sollten jedoch auf dem aktuellen \thispackage"=Paket
aufgesetzt werden, wie es in diesem Dokument beschrieben ist.

% TODO: Übersetzungstabelle wie beim Abschnitt "caption 1.x"


\pagebreak[3]
\section{Weiterf"uhrende Dokumente}

Folgende Dokumente m"ochte ich an dieser Stelle jedem ans Herz legen:

\begin{itemize}
\item
  Die DANTE-FAQ:
  \begin{quote}\texttt{http://www.dante.de/faq/de-tex-faq/}\end{quote}

\item
  \emph{"`Gleitobjekte -- die richtige Schmierung"'} von Axel Reichert
  erl"autert den Umgang mit gleitenden Umgebungen und ist hier im Netz
  zu finden:
  \begin{quote}\texttt{ftp://ftp.dante.de/pub/tex/info/german/gleitobjekte/}\end{quote}

\item
  \textsf{epslatex} von Keith Reckdahl enth"alt viele n"utzliche Tips im
  Zusammenhang mit der Einbindung von Graphiken in \LaTeXe.
  Das Dokument ist unter
  \begin{quote}\texttt{ftp://ftp.dante.de/pub/tex/info/}\end{quote}
  als \texttt{epslatex.ps} bzw. \texttt{epslatex.pdf} zu finden.
\end{itemize}


\section{Danksagungen}

Von ganzem Herzen danke ich Katja Melzner, Steven D. Cochran, Frank Mittelbach,
David Carlisle und Ivor Tiefenbrun.


\begin{thebibliography}{9}
  \bibitem{companion}
  Frank Mittelbach and Michel Goossens:
  \newblock {\em The {\LaTeX} Companion (2nd.~Ed.)},
  \newblock Addison-Wesley, 2004.

  \bibitem{float}
  Anselm Lingnau:
  \emph{An Improved Environment for Floats},
  2001/11/08

  \bibitem{listings}
  Carsten Heinz:
  \emph{The Listings Package},
  2004/02/13

  \bibitem{longtable}
  David Carlisle:
  \emph{The longtable package},
  2000/10/22

  \bibitem{rotating}
  Sebastian Rahtz and Leonor Barroca:
  \emph{A style option for rotated objects in \LaTeX},
  1997/09/26

  \bibitem{sidecap}
  Rolf Niepraschk und Hubert G"a"slein:
  \emph{The sidecap package},
  2003/06/06

  \bibitem{subfig}
  Steven D. Cochran:
  \emph{The subfig package},
  2003/12/01

  \bibitem{supertabular}
  Johannes Braams und Theo Jurriens:
  \emph{The supertabular environment},
  2002/07/19
\end{thebibliography}

\end{document}
