Sie sind hier

Kann man analog zur Bezeichnung einer Gleitumgebung mit \caption auch eine Legende angeben?

Manche Benutzer hätten gerne einen Befehl, der sich prinzipiell wie \caption verhält, aber keine Nummer erzeugt und unabhängig von der Gleitumgebung, in der er verwendet wird, lediglich den Präfix »Legende:« voranstellt.

Mit Hilfe der tocbasic-Anweisung \DeclareNewTOC ist eine entsprechende Definition eine Sache von drei Zeilen:

\documentclass[ngerman,captions=tableabove]{scrartcl}
\usepackage{booktabs}
\usepackage{babel,blindtext}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß},
  Euro={€},
}
 
% Hier die erwähnten drei Zeilen:
\DeclareNewTOC[name={Legende},type=legend,nonfloat]{lgd}
\renewcommand{\legendformat}{\legendname}
\newcommand*{\legend}{\captionbelowof{legend}}
 
\begin{document}
\blindtext
 
\begin{table}
  \centering
  \caption{Eine Beispieltabelle}
  \begin{tabular}{lllll}
    \toprule
    1 & 2 & 3 & 4 & 5 \\
    \midrule
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    \bottomrule
  \end{tabular}
  \legend{Dies ist die Legende zur der Tabelle, die auch
    mehrzeilig sein kann und sich dann entsprechend verhält.}
  \label{tab:example}
\end{table}
\end{document}

Als Abwandlung könnte man beispielsweise auch noch den Präfix »Legende:« beseitigen und die Schrift ändern:

\documentclass[ngerman,captions=tableabove]{scrartcl}
\usepackage{booktabs}
\usepackage{babel,blindtext}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß},
  Euro={},
}
 
\DeclareNewTOC[type=legend,nonfloat]{lgd}
\renewcommand{\legendformat}{}% Keine Nummer o. ä.
\newcommand*{\legend}[1]{%
  \begingroup
    \setkomafont{caption}{\footnotesize}% Schrift ändern
    \let\captionformat\relax% kein »: «
    \captionbelowof{legend}{#1}% Text setzen
  \endgroup
}
 
\begin{document}
\blindtext
 
\begin{table}
  \centering
  \caption{Eine Beispieltabelle}
  \begin{tabular}{lllll}
    \toprule
    1 & 2 & 3 & 4 & 5 \\
    \midrule
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    \bottomrule
  \end{tabular}
  \legend{Dies ist die Legende zur der Tabelle, die auch
    mehrzeilig sein kann und sich dann entsprechend verhält.}
  \label{tab:example}
\end{table}
\end{document}

Auch hier bleibt der Vorteil, dass einzeilige Legenden ggf. automatisch zentriert werden:

\documentclass[ngerman,captions=tableabove]{scrartcl}
\usepackage{booktabs}
\usepackage{babel,blindtext}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß},
  Euro={},
}
 
\DeclareNewTOC[type=legend,nonfloat]{lgd}
\renewcommand{\legendformat}{}% Keine Nummer o. ä.
\newcommand*{\legend}[1]{%
  \begingroup
    \setkomafont{caption}{\footnotesize}% Schrift ändern
    \let\captionformat\relax% kein »: «
    \captionbelowof{legend}{#1}% Text setzen
  \endgroup
}
 
\begin{document}
\blindtext
 
\begin{table}
  \centering
  \caption{Eine Beispieltabelle}
  \begin{tabular}{lllll}
    \toprule
    1 & 2 & 3 & 4 & 5 \\
    \midrule
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    \bottomrule
  \end{tabular}
  \legend{Dies ist die einzeilige Legende zur der Tabelle.}
  \label{tab:example}
\end{table}
\end{document}

Bei all diesen Lösungen wird übrigens zusätzlich eine Datei mit den Legenden angelegt, die man ggf. auch als Verzeichnis verwenden kann. Näheres dazu ist dem Kapitel über tocbasic in der KOMA-Script-Anleitung zu entnehmen.

Will man hingegen einfach nur linksbündig Text unter die Tabelle klatschen, kann man sich den Aufwand sparen:

\documentclass[ngerman,captions=tableabove]{scrartcl}
\usepackage{booktabs}
\usepackage{babel,blindtext}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß},
  Euro={€},
}
 
\makeatletter% Wir verwenden eine Anweisung mit @ im Namen …
\newcommand*{\legend}[1]{%
  \par\medskip
  \noindent\parbox{\linewidth}{%
    \footnotesize
    \@hangfrom{\textbf{Legende: }}#1
  }\par
}
\makeatother% Wegen \makeatletter oben.
 
\begin{document}
\blindtext
 
\begin{table}
  \centering
  \caption{Eine Beispieltabelle}
  \begin{tabular}{lllll}
    \toprule
    % Und weil das häufig nachgefragt wird, zentrieren wir hier die Spaltenüberschriften
    \multicolumn1c1 & 
    \multicolumn1c2 & 
    \multicolumn1c3 & 
    \multicolumn1c4 & 
    \multicolumn1c{Spalte 5} \\
    \midrule
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    eine & Tabelle & mit & 5 & Spalten\\
    \bottomrule
  \end{tabular}
  \legend{Dies ist die mehrzeilige Legende zur der Tabelle, die mit Hilfe von
    \texttt{\string\@hangfrom} in ähnlicher Weise hängend gesetzt wurde, wie
    das für die Tabellenüberschriften voreingestellt ist.}
  \label{tab:example}
\end{table}
\end{document}

Die zusätzliche \parbox wird in diesem Beispiel übrigens verwendet, damit sich ein \centering innerhalb der Gleitumgebung nicht auf die Legende auswirkt. Statt \medskip kann man natürlich auch einen anderen vertikalen Abstand verwenden, beispielsweise \smallskip oder \bigskip oder eine explizite Angabe mit \vspace{}.

Comments for "Kann man analog zur Bezeichnung einer Gleitumgebung mit \caption auch eine Legende angeben?" abonnieren