Seite 1 von 1
Warum ist eine Caption über und eine unter den Objekten?
Verfasst: Fr 18. Aug 2017, 18:32
von roibot
Hallo zusammen,
ich schreibe gerade an einem Dokument und da beobachte ich folgendes Verhalten, was ich mir nicht erklären kann. Ich habe mit
floatrow eine Tabelle und eine Grafik nebeneinandergesetzt. Die Caption der Tabelle ist über dem Objekt, die Caption der Grafik unter dem Objekt. Ich habe absolut keine Ahnung warum und wie ich das so verändern kann, dass beine Captions unter den Objekten sind. Eine Option aus dem
floatrow-Paket verändert nichts.
Mein Beispiel
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{floatrow}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage[font=small,labelfont=bf]{caption}
\floatsetup[table]{capposition=bottom}
\begin{document}
\begin{figure}[htb!]
\centering
\begin{floatrow}[2]
\ttabbox[\linewidth]
{\begin{tabular}{lllllll}
\toprule
& \multicolumn{2}{c}{Farbe} & \multicolumn{2}{c}{Regen} \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
& $M$ & $SD$ & $M$ & $SD$ \\
\midrule
\emph{gut} & 2.12 & 1.60 & 1.08 & 1.39 \\
\emph{besser} & 2.31 & 1.56 & 0.40 & 1.48 \\
\bottomrule
\end{tabular}}
{\caption{Deskriptivstatistische Auswertung der überprüften Variablen. Es sind jeweils Mittelwert ($M$) und Standardabweichung ($SD$) für die Bedingungen \emph{gut} und \emph{besser} angegeben.}
\label{tab:daten3}}
\ffigbox[\linewidth]
{\includegraphics[width=\linewidth]{example-image}}
{\caption{Histogramm der Differenzvariablen (\emph{gut} $-$ \emph{besser}) mit Passung zu einer Normalverteilung.}
\label{fig:verteilung3}}
\end{floatrow}
\end{figure}
\end{document}
Weiß jemand, wo das Problem liegt?
Viele Grüße
Re: Warum ist eine Caption über und eine unter den Objekten?
Verfasst: Fr 18. Aug 2017, 20:02
von esdd
roibot hat geschrieben:Die Caption der Tabelle ist über dem Objekt, die Caption der Grafik unter dem Objekt. Ich habe absolut keine Ahnung warum und wie ich das so verändern kann, dass beine Captions unter den Objekten sind. Eine Option aus dem floatrow-Paket verändert nichts.
Aus der Doku, 1.1.1 Float Box Commands
One of the first macros of this package for creation of float boxes is a macro which builds contents of the table environment with caption above (\ttabbox).
Das ist also das vom Paket für diese Box vorgegebene Verhalten. Definiert wird der Boxbefehl mit
\newfloatcommand{ttabbox}{table}[\captop][\FBwidth]
Das findet man genauso in der Doku wie die Definition von \ffigbox. Du kannst Dir nun analog eine \ftabbox definieren mit
\newfloatcommand{ftabbox}{table}[\nocapbeside][\FBwidth]
Prinzipiell könnte man mit \renewfloatcommand auch \ttabbox umdefinieren.
Verfasst: Sa 19. Aug 2017, 13:30
von roibot
Hallo, danke für deine Antwort. Leider hat mir dein Vorschlag nicht weitergeholfen. Eigentlich müsste es laut Doku, 3.1.3 Position of Caption, möglich sein, die Caption-Position zu bestimmen. Seltsamerweise funktioniert dies nur für
table nicht, für
figure funktioniert es, siehe im Beispiel.
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{floatrow}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage[font=small,labelfont=bf]{caption}
\begin{document}
\floatsetup[figure]{capposition=bottom}
\floatsetup[table]{capposition=bottom}
\begin{figure}[htb!]
\TopFloatBoxes
\begin{floatrow}[2]
\ttabbox[\linewidth]
{\begin{tabular}{lllllll}
\toprule
& \multicolumn{2}{c}{Farbe} & \multicolumn{2}{c}{Regen} \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
& $M$ & $SD$ & $M$ & $SD$ \\
\midrule
\emph{gut} & 2.12 & 1.60 & 1.08 & 1.39 \\
\emph{besser} & 2.31 & 1.56 & 0.40 & 1.48 \\
\bottomrule
\end{tabular}}
{\caption{Deskriptivstatistische Auswertung der überprüften Variablen. Es sind jeweils Mittelwert ($M$) und Standardabweichung ($SD$) für die Bedingungen \emph{gut} und \emph{besser} angegeben.}
\label{tab:daten3}}
\ffigbox[\linewidth]
{\includegraphics[width=\linewidth]{example-image}}
{\caption{Histogramm der Differenzvariablen (\emph{gut} $-$ \emph{besser}) mit Passung zu einer Normalverteilung.}
\label{fig:verteilung3}}
\end{floatrow}
\end{figure}
%%%%%%%%%%%%%%
\floatsetup[figure]{capposition=top}
\floatsetup[table]{capposition=top}
\begin{figure}[htb!]
\TopFloatBoxes
\begin{floatrow}[2]
\ttabbox[\linewidth]
{\begin{tabular}{lllllll}
\toprule
& \multicolumn{2}{c}{Farbe} & \multicolumn{2}{c}{Regen} \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
& $M$ & $SD$ & $M$ & $SD$ \\
\midrule
\emph{gut} & 2.12 & 1.60 & 1.08 & 1.39 \\
\emph{besser} & 2.31 & 1.56 & 0.40 & 1.48 \\
\bottomrule
\end{tabular}}
{\caption{Deskriptivstatistische Auswertung der überprüften Variablen. Es sind jeweils Mittelwert ($M$) und Standardabweichung ($SD$) für die Bedingungen \emph{gut} und \emph{besser} angegeben.}
\label{tab:daten4}}
\ffigbox[\linewidth]
{\includegraphics[width=\linewidth]{example-image}}
{\caption{Histogramm der Differenzvariablen (\emph{gut} $-$ \emph{besser}) mit Passung zu einer Normalverteilung.}
\label{fig:verteilung4}}
\end{floatrow}
\end{figure}
\end{document}
Dieses Paket macht mich fertig. Ich habe es auch schon mit Minipage probiert, aber da habe ich nicht herausgefunden, wie eine Caption "Tabelle" und eine "Abbildung" heißen kann, wenn beides über figure oder table eingebunden wird.
Verfasst: Sa 19. Aug 2017, 13:40
von esdd
Wie ich schon geschrieben habe - und es auch eindeutig in der Doku steht - ist für \ttabbox explizit festgelegt, dass die Beschriftung
immer oberhalb erfolgt. Für \ffigbox ist dagegen mittels \nocapbeside festgelegt, dass sich die Positionierung der Beschriftung nach den globalen Vorgaben richtet. Deshalb übernimmt \ffigbox die Vorgaben von \floatsetup.
Hast Du meinen Vorschlag wirklich getestet?
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{floatrow}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage[font=small,labelfont=bf]{caption}
\floatsetup[table]{capposition=bottom}
\newfloatcommand{ftabbox}{table}[\nocapbeside][\FBwidth]
\begin{document}
\begin{figure}[htb!]
\centering
\begin{floatrow}[2]
\ftabbox[\linewidth]
{\begin{tabular}{lllllll}
\toprule
& \multicolumn{2}{c}{Farbe} & \multicolumn{2}{c}{Regen} \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
& $M$ & $SD$ & $M$ & $SD$ \\
\midrule
\emph{gut} & 2.12 & 1.60 & 1.08 & 1.39 \\
\emph{besser} & 2.31 & 1.56 & 0.40 & 1.48 \\
\bottomrule
\end{tabular}}
{\caption{Deskriptivstatistische Auswertung der überprüften Variablen. Es sind jeweils Mittelwert ($M$) und Standardabweichung ($SD$) für die Bedingungen \emph{gut} und \emph{besser} angegeben.}
\label{tab:daten3}}
\ffigbox[\linewidth]
{\includegraphics[width=\linewidth]{example-image}}
{\caption{Histogramm der Differenzvariablen (\emph{gut} $-$ \emph{besser}) mit Passung zu einer Normalverteilung.}
\label{fig:verteilung3}}
\end{floatrow}
\end{figure}
\end{document}
Verfasst: Sa 19. Aug 2017, 14:14
von roibot
Ja, ich habe ihn getestet, aber das war falsch. Jetzt habe ich deinen Vorschlag richtig verstanden und es funktioniert. Vielen Dank für deine Hilfe.