Seite 1 von 1

Mehrere captionsetups in einer minipage? Warnung

Verfasst: Di 29. Jul 2014, 16:45
von Ghast
Hallo,

ich habe ein ungewöhnliches Problem mit meinen Captions.

Hintergrund:
Ich habe eine minipage erstellt. Auf der rechten Seite der minipage wird ein großes, vertikal langes Bild dargestellt. Links daneben ist eine Tabelle und unter der Tabelle ein weiteres kleines Bild. Bild und Tabelle sind etwa so hoch, wie das große Bild auf der rechten Seite.

Problem:
Es kommt folgende Warnung:
The caption type was already set to `figure'
Das hängt sicherlich damit zusammen, dass ich den type von captionsetup innerhalb der minipage ändere. Lasse ich alle captionsetups weg, funktioniert es auch, gibt aber die Warnung
Package caption Warning: The option `hypcap=true' will be ignored for this
(caption) particular \caption on input line ...
Package caption Warning: The caption type was already set to `table'
(caption) on input line ...
See the caption package documentation for explanation.
Package caption Warning: The option `hypcap=true' will be ignored for this
(caption) particular \caption on input line ...
Package caption Warning: The option `hypcap=true' will be ignored for this
(caption) particular \caption on input line ...
In beiden Fällen funktioniert alles korrekt und auch im Verzeichnis wird alles vernünftig angezeigt. Daher meine Frage: Wie bekomme ich die Warnung weg?

Mein Minimalbeispiel:
\documentclass[a4paper,11pt,DIV12]{scrartcl}
\usepackage{caption}			 
\usepackage{subcaption}
\usepackage[section]{placeins}
\usepackage{varwidth}
%
\begin{document}%
%

\begin{minipage}[t]{8cm}
\vspace{0pt}
\captionsetup{type=table}
\begin{tabular}[b]{|rl|}\hline%
1 & Eins\\
2 & Zwei\\ \hline%
\end{tabular}
\captionof{table}{Tabelle links}
\label{tab:Tabelle_links}

\begin{center}
\captionsetup{type=figure}
\boxed{\includegraphics[width=0.97\linewidth]{kleines_Bild}}%
\captionof{figure}{kleines_Bild}%
\label{fig:kleines_Bild}
\end{center}

\end{minipage}
\begin{minipage}[t]{7.5cm}
\vspace{0pt}
\centering
\captionsetup{type=figure}
\boxed{\includegraphics[width=0.95\linewidth]{grosses_Bild}}%
\captionof{figure}{grosses_Bild}%
\label{fig:grosses_Bild}
\end{minipage}

%
\end{document}%

Verfasst: Di 29. Jul 2014, 17:05
von Noch so einer
Da Dein Code mehrere Fehler produziert, darf ich wohl davon ausgehen, dass Du dieses Beispiel nie getestet hast. Das ist schon relativ unverschämt! Bitte beachte künftig die VM-Anleitung.

Wenn ich Dein Beispiel lauffähig mache, bleibt nur eine Warnung, die man leicht durch eine zusätzliche minipage oder schlicht durch eine Gruppe los werden kann. Ob das ist, was Du willst, weiß ich natürlich nicht, da ich das Beispiel ja erst einmal ändern musste, damit es überhaupt funktioniert:
\documentclass[a4paper,11pt,DIV12]{scrartcl}
\usepackage{caption}          
\usepackage{subcaption}
\usepackage[section]{placeins}
\usepackage{varwidth}
\usepackage[demo]{graphicx}
%
\begin{document}%
%

\begin{minipage}[t]{8cm}
\vspace{0pt}
\begingroup
\captionsetup{hypcap=false}
\begin{tabular}[b]{|rl|}\hline%
1 & Eins\\
2 & Zwei\\ \hline%
\end{tabular}
\captionof{table}{Tabelle links}
\label{tab:Tabelle_links}
\endgroup

\begin{center}
\captionsetup{hypcap=false}
\frame{\includegraphics[width=0.97\linewidth]{kleines_Bild}}%
\captionof{figure}{kleines Bild}%
\label{fig:kleines_Bild}
\end{center}

\end{minipage}
\begin{minipage}[t]{7.5cm}
\vspace{0pt}
\centering
\captionsetup{hypcap=false}
\frame{\includegraphics[width=0.95\linewidth]{grosses_Bild}}%
\captionof{figure}{grosses Bild}%
\label{fig:grosses_Bild}
\end{minipage}

%
\end{document}%

Verfasst: Di 29. Jul 2014, 17:07
von Johannes_B
Warum testest du dein Beispiel nicht?
\documentclass[a4paper,11pt,DIV12]{scrartcl}
\usepackage{subcaption}
\usepackage{graphicx}
\usepackage{hyperref}
\begin{document}%
\begin{minipage}[t]{8cm}
	\vspace{0pt}
%\captionsetup{type=table}
\begin{tabular}[b]{|rl|}\hline%
1 & Eins\\
2 & Zwei\\ \hline%
\end{tabular}
\captionof{table}{Tabelle links}
\label{tab:Tabelle_links}

\begin{center}
%\captionsetup{type=figure}
\includegraphics[width=0.97\linewidth]{example-image-a}
\captionof{figure}{kleines Bild}%
\label{fig:kleines_Bild}
\end{center}

\end{minipage}
\begin{minipage}[t]{7.5cm}
	\vspace{0pt}
\centering
%\captionsetup{type=figure}
\includegraphics[width=0.95\linewidth]{example-image-10x16}%
\captionof{figure}{grosses Bild}%
\label{fig:grosses_Bild}
\end{minipage}

\end{document}% 
Die Warnung sagt lediglich, dass Links nicht richtig gesetzt werden. Du kannst die Warnung rausfiltern, oder aber viel besser:
Setze deine Objekte in ordentliche gleitende Umgebungen.


Wann sollte ich Gleitumgebungen für Tabellen und Abbildungen verwenden?
Wie funktionieren Gleitobjekte, und wie kann ich ihre Positionierung beeinflussen?

Verfasst: Mi 30. Jul 2014, 12:53
von Ghast
Noch so einer hat geschrieben: Da Dein Code mehrere Fehler produziert, darf ich wohl davon ausgehen, dass Du dieses Beispiel nie getestet hast. Das ist schon relativ unverschämt!
Noch so einer hat geschrieben: Warum testest du dein Beispiel nicht?
Entschuldigung, so wie ich es geschrieben habe, war es tatsächlich nicht getestet. Das tut mir Leid. Danke, dass ihr es trotzdem versucht habt.

Ich probier es nochmal, diesmal 100%--ig getestet.

Minimalbeispiel:
\documentclass[a4paper,11pt,DIV12]{scrartcl}
\usepackage{caption}          
\usepackage{subcaption}
\usepackage[section]{placeins}
\usepackage{amsmath}
\usepackage{graphicx}
%
\begin{document}%
%

\begin{minipage}[t]{7.5cm}
\vspace{0pt}
\captionsetup{type=table}
\begin{tabular}[b]{|rl|}\hline%
1 & Eins Eins Eins Eins Eins Eins Eins\\
2 & Zwei zwei Zwei Zwei Zwei Zwei Zwei\\ 
3 & Drei Drei Drei Drei Drei Drei Drei\\ 
4 & Vier Vier Vier Vier Vier Vier Vier\\ 
5 & F"unf  F"unf  F"unf  F"unf  F"unf  F"unf  F"unf\\
6 & Sechs Sechs Sechs Sechs Sechs Sechs\\
7 & Sieben Sieben Sieben Sieben Sieben\\
8 & Acht Acht Acht Acht Acht Acht Acht\\
9 & Neun Neun Neun Neun Neun Neun\\ \hline%
\end{tabular}
\captionof{table}{Tabelle links oben}
\label{tab:Tabelle_links}

\begin{center}
\captionsetup{type=figure}
\boxed{\includegraphics[width=0.97\linewidth]{example-image-a}}%
\captionof{figure}{Kleines Bild links}%
\label{fig:kleines_Bild}
\end{center}

\end{minipage}
\begin{minipage}[t]{7.5cm}
\vspace{0pt}
\centering
\captionsetup{type=figure}
\boxed{\includegraphics[width=0.95\linewidth]{example-image-golden-upright}}%
\captionof{figure}{Grosses Bild rechts}%
\label{fig:grosses_Bild}
\end{minipage}

\begin{figure}[hb]
\centering%
\captionsetup{type=tabular}
\begin{tabular}[b]{|r|l|}\hline%
1 & Eins Eins Eins Eins Eins Eins Eins\\ \hline%
2 & Zwei zwei Zwei Zwei Zwei Zwei Zwei\\ \hline%
3 & Drei Drei Drei Drei Drei Drei Drei\\ \hline%
4 & Vier Vier Vier Vier Vier Vier Vier\\ \hline%
5 & F"unf  F"unf  F"unf  F"unf  F"unf  F"unf  F"unf\\ \hline%
\end{tabular}
\captionof{table}{Zweite Tabelle}
\label{tab:zweite_Tabelle}
\end{figure}

\listoffigures%
\listoftables%
%
\end{document}% 
Die folgende Warnung (zur zweiten Tabelle) tritt auf:
Package caption Warning: The caption type was already set to `figure'
(caption) on input line 47.
wenn ich \captionsetup{type=tabular} asukomentiere, gibt es diese Warnung:
Package caption Warning: The caption type was already set to `figure'
(caption) on input line 55.
Ich weiß nicht, wodurch genau die Warnung hervorgerufen wird. Zur Not gebe ich mich mit dem Ausblenden der Warnung zufrieden, bin aber in erster Linie an der Lösung interressiert.

Verfasst: Mi 30. Jul 2014, 14:25
von esdd
Es reicht innerhalb der minipage Umgebungen entweder \captionsetup{type=<typ>} und dann \caption{<Beschriftung>} zu nehmen oder kürzer nur \captionof{<typ>}{<Beschriftung>} zu verwenden. Die Angabe beider Befehle bringt aber so lange keine Warnung, wie in beiden der gleiche <typ> angegeben ist.

Die Warnung bekommst Du bei der Tabelle, weil diese innerhalb einer figure (Versehen oder Absicht?) Umgebung steht und Du dann mit den Befehlen den durch die Gleitumgebung eingestellten <typ> von figure auf table änderst.

Wenn die Tabelle in einer Gleitumgebung als Tabelle stehen soll, dann verwende doch einfach die table Umgebung.
\begin{table}[hb] 
\centering% 
\begin{tabular}[b]{|r|l|}\hline% 
1 & Eins Eins Eins Eins Eins Eins Eins\\ \hline% 
2 & Zwei zwei Zwei Zwei Zwei Zwei Zwei\\ \hline% 
3 & Drei Drei Drei Drei Drei Drei Drei\\ \hline% 
4 & Vier Vier Vier Vier Vier Vier Vier\\ \hline% 
5 & F\"unf  F\"unf  F\"unf  F\"unf  F\"unf  F\"unf  F\"unf\\ \hline% 
\end{tabular} 
\caption{Zweite Tabelle} 
\label{tab:zweite_Tabelle} 
\end{table}
Nimm also die Gleitumgebung table statt figure. Dafür kannst Du dann \captionsetup{...} weglassen und \caption{Zweite Tabelle} statt \captionof{...}{...} verwenden.

Außerdem gibt es, zumindest bei mir, den Typ tabular nicht. Vermutlich ist das ein Tippfehler und Du meinst table.

Gruß
Elke

Verfasst: Mi 30. Jul 2014, 14:45
von Ghast
esdd hat geschrieben: Die Warnung bekommst Du bei der Tabelle, weil diese innerhalb einer figure (Versehen oder Absicht?) Umgebung steht [...]
Das war Absicht, aber aus Unwissenheit. Schonmal den ersten dicken Fehler gefunden, prima.
esdd hat geschrieben: Nimm also die Gleitumgebung table statt figure.
[...]
Dafür kannst Du dann \captionsetup{...} weglassen und \caption{Zweite Tabelle} statt \captionof{...}{...} verwenden.
Hab ich gemacht, klappt wunderbar. Es klappt sogar, wenn ich \captionof{...}{...} weiterhin verwende. Das hat dann vermutlich auch damit zu tun, was du vorher geschrieben hast: dass sich mehrere Befehle nicht im Weg stehen, wenn sie nicht gegensinnig sind. Ich hab es trotzdem geändert.
esdd hat geschrieben: Außerdem gibt es, zumindest bei mir, den Typ tabular nicht. Vermutlich ist das ein Tippfehler und Du meinst table.
Richtig. Typ tabular gibt es auch bei mir nicht. Mit Typ table geht es hingegen wunderbar. Zweiter Fehler gefunden, das ist ja schon fast peinlich...



Mein Problem ist hiermit gelöst. Ich danke allen für die freundliche Hilfe und besonders Elke für die höchst erfolgreiche Lösung meines Problems.

Dankbarer Gast