Sie sind hier

subcaption erzeugt falsche Tabellennummerierung

Hallo,

ich verwende das Paket subcaption zusammen mit scrartcl. Der Counter für die aktuelle Tabellennummer springt um zwei, wenn ich subcaption verwende. In dem folgenden Beispiel kommt zuerst "Tabelle 1" und dann "Tabelle 3".

\documentclass{scrartcl}
 
\usepackage{subcaption}
 
\begin{document}
 
\begin{table}
	\caption{T1}
	\begin{minipage}[b]{.45\textwidth}
		F1
		\subcaption{F1}
	\end{minipage}
	\begin{minipage}[b]{.45\textwidth}
		F2
		\subcaption{F2}
	\end{minipage}
\end{table}
 
\begin{table}
	\caption{T2}
	T2
\end{table}
 
\end{document}

Verwende ich die Klasse "article", so ist alles OK.

\documentclass{article}
 
\usepackage{subcaption}
 
\begin{document}
 
\begin{table}
	\caption{T1}
	\begin{minipage}article[b]{.45\textwidth}
		F1
		\subcaption{F1}
	\end{minipage}
	\begin{minipage}[b]{.45\textwidth}
		F2
		\subcaption{F2}
	\end{minipage}
\end{table}
 
\begin{table}
	T2
	\caption{T2}
\end{table}
 
\end{document}

Wird die caption UNTER die Subcaption gelegt, so ist auch alles OK:

\documentclass{scrartcl}
 
\usepackage{subcaption}
 
\begin{document}
 
\begin{table}
	\begin{minipage}[b]{.45\textwidth}
		F1
		\subcaption{F1}
	\end{minipage}
	\begin{minipage}[b]{.45\textwidth}
		F2
		\subcaption{F2}
	\end{minipage}
	\caption{T1}
\end{table}
 
\begin{table}
	T2
	\caption{T2}
\end{table}
 
\begin{table}
	\begin{minipage}[b]{.45\textwidth}
		F3
		\subcaption{F3}
	\end{minipage}
	\begin{minipage}[b]{.45\textwidth}
		F4
		\subcaption{F4}
	\end{minipage}
	\caption{T3}
\end{table}
 
\end{document}

Lösung für mich. Ich ändere den Counter "table" nach jeder Nutzung von subcaption.

\addtocounter{table}{-1}

Das scheint mir nicht allzu sauber, vor allem, weil man dieses bei der "article"-Klasse nicht braucht.

Viele Grüße

Oliver

Wenn Du eine Tabellenbeschriftung vor der Tabelle einfügst und sie damit eine Überschrift ist, dann verwende den Befehl \captionabove

\documentclass{scrartcl}
\usepackage{subcaption}
\begin{document}
\begin{table}
  \captionabove{T1}% <- Tabellenüberschrift
  \begin{minipage}[b]{.45\textwidth}
    \centering
    F1
    \subcaption{F1}
  \end{minipage}
  \begin{minipage}[b]{.45\textwidth}
    \centering
    F2
    \subcaption{F2}
  \end{minipage}
\end{table}
 
\begin{table}
  \centering
  \captionabove{T2}% <- Tabellenüberschrift
  T2
\end{table}
\end{document}

oder, wenn alle Tabellen die Beschriftung oberhalb statt unterhalb erhalten sollen, die Option captions=tableheading

\documentclass[
    captions=tableheading% <- generell Tabellenüberschriften
  ]{scrartcl}
\usepackage{subcaption}
\begin{document}
\begin{table}
  \caption{T1}
  \begin{minipage}[b]{.45\textwidth}
    \centering
    F1
    \subcaption{F1}
  \end{minipage}
  \begin{minipage}[b]{.45\textwidth}
    \centering
    F2
    \subcaption{F2}
  \end{minipage}
\end{table}
 
\begin{table}
  \centering
  \caption{T2}
  T2
\end{table}
\end{document}

Dann wird zum einen der Abstand Tabelle - Beschriftung unterhalb der Beschriftung statt oberhalb eingefügt und zum anderen weiß subcaption, dass die Teilbeschriftungen den Tabellenzähler nicht erhöhen müssen, weil die dazu gehörende und davor stehende Tabellenüberschrift das schon erledigt hat.

Ist bei Verwendung einer KOMA-Script Klasse keine Option für Tabellenüberschriften gesetzt, dann entspricht \caption einem \captionbelow und subcaption geht davon aus, dass die Teilbeschriftungen das Erhöhen des Tabellenzählers schon für die später folgende Tabellenunterschrift übernehmen können und müssen. Deshalb haben in Deinem Beispiel sowohl der \caption Befehl als auch die erst Teilbeschriftung den Zähler erhöht.

Mit anderen Worten subcaption geht bei einer KOMA-Script Klasse davon aus, dass deren Einstellungsmöglichkeiten auch genutzt werden.

Comments for "subcaption erzeugt falsche Tabellennummerierung" abonnieren