Mehrere captionsetups in einer minipage? Warnung Thema ist als GELÖST markiert

Erstellen von Index, Glossar, Symbolverzeichnis, einer Nomenklatur etc. mit MakeIndex oder Xindy


Ghast

Mehrere captionsetups in einer minipage? Warnung

Beitrag 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}%

Noch so einer

Beitrag 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}%

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag 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?
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Ghast

Beitrag 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.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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

Ghast

Beitrag 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

Antworten