
Ich habe eine Tabelle, die aufgrund ihrer Größe gedreht werden muss. Außerdem ist sie in meinem Dokument die erste Tabelle im Anhang und muss daher hinter der Abschnittsüberschrift stehen. Sidewaystable erlaubt es nicht, sowohl die Abschnittsüberschrift als auch die gedrehte Tabelle auf derselben Seite zu haben. Daher habe ich die Pakete hvfloat sowie rotfloat / varwidth ausprobiert, beide führen jedoch nicht zu einer perfekten Lösung:
\documentclass[12pt,a4paper]{article}
\usepackage{hvfloat}
\usepackage{rotfloat}
\usepackage{varwidth}
\begin{document}
\section{Test Section 1}
\begin{center}
\hvFloat[nonFloat=true, capPos=t, rotAngle=90, objectPos=c]%
{table}%
{\begin{tabular}{lll}
column 1a & column 2a & column 3a \\
column 1b & column 2b & column 3b \\
column 1c & column 2c & column 3c \\
\end{tabular}}
{A rotated table}
{tab:test1}
\end{center}
\newpage
\section{Test Section 2}
\begin{table}[H]
\begin{center}
\rotatebox{90}{%
\begin{varwidth}{\textheight}
\caption{Another rotated table}\label{tab:test2}
\begin{tabular}{lll}
column 1a & column 2a & column 3a \\
column 1b & column 2b & column 3b \\
column 1c & column 2c & column 3c \\
\end{tabular}
\captionsetup{font=footnotesize}
\caption*{This table is just a test.}
\end{varwidth}}
\end{center}
\end{table}
\end{document}
In beiden Fällen erreiche ich, dass die Tabellen auf derselben Seite stehen wie die Abschnittsüberschrift, aber:
Im Fall von hvfloat (1) capPos=t
bleibt die Überschrift trotz Verwendung der Option immer auf der linken Seite der Tabelle. Ich habe die Dokumentation gelesen, weiß aber nicht, was ich hier falsch mache. (2) Ich kann keine Option zum Hinzufügen von Tabellennotizen finden (in der Tabellenumgebung würde ich Folgendes verwenden:\caption*{Table Notes}
aber das funktioniert hier nicht). Die Tabelle als solche ist vertikal und horizontal positioniert, wie ich es gerne hätte.
Im Fall der Rotatebox gelingt es mir, die Überschrift über die Tabelle und die Tabellennotizen unter die Tabelle zu bekommen, aber was auch immer ich mache, die Tabelle bleibt unten auf der Seite (obwohl sie horizontal zentriert sein und vertikal der Abschnittsüberschrift folgen sollte).
Ich bin für jeden Hinweis sehr dankbar. Vielen Dank.
Antwort1
Die Verwendung capPos=top
von anstelle von capPos=t
führt zu folgender Ausgabe:
\documentclass[12pt,a4paper]{article}
\usepackage{hvfloat}
\usepackage{rotfloat}
\usepackage{varwidth}
\begin{document}
\section{Test Section 1}
\begin{center}
\hvFloat[nonFloat=true, capPos=top, rotAngle=90, objectPos=c]%
{table}%
{\begin{tabular}{lll}
column 1a & column 2a & column 3a \\
column 1b & column 2b & column 3b \\
column 1c & column 2c & column 3c \\
\end{tabular}}
{A rotated table}
{tab:test1}
\end{center}
\end{document}
Mit tabular*
und a \multicolumn
für die Tabelle ntes:
\documentclass[12pt,a4paper]{article}
\usepackage{hvfloat}
\usepackage{booktabs}
\begin{document}
\section{Test Section 1}
\begin{center}
\hvFloat[nonFloat=true, capPos=top, rotAngle=90, objectPos=c]%
{table}%
{\begin{tabular*}{7cm}{@{\extracolsep{\fill}}lll@{}}
\toprule
column 1a & column 2a & column 3a \\
column 1b & column 2b & column 3b \\
column 1c & column 2c & column 3c \\
\bottomrule
\multicolumn{3}{@{}p{7cm}@{}}{these are some table notes these are some table notes these are some table notes these are some table notes these are some table notes}\\
\end{tabular*}}
{A rotated table}
{tab:test1}
\end{center}
\end{document}
Antwort2
Das Hauptproblem beim Hinzufügen einer \section
Überschrift ist, dass dadurch der verbleibende Platz (Breite vor der Drehung) reduziert wird. Außerdem ist es einfacher, eine Miniseite wie eine Tabelle zu verwenden (siehe\setcaptype
), als eine Tabelle wie eine Miniseite.
Beachten Sie, dass dies \centering
die vertikale Position (nach dem Drehen) beeinflusst, während das dritte optionale Argument der Miniseite die horizontale Positionierung (nach dem Drehen) beeinflusst.
\documentclass[12pt,a4paper]{article}
\usepackage{adjustbox}
\usepackage{threeparttable}
\usepackage{showframe}% MWE only
\newsavebox{\tempbox}
\newcommand{\setcaptype}[1]% #1 = figure or table
{\expandafter\def\csname @captype\endcsname{#1}\ignorespaces}
\begin{document}
\setbox\tempbox=\vbox{\section{Test Section 2}}% measure size of section title
\usebox\tempbox
\rotatebox{90}{\begin{minipage}[c][\textwidth][c]{\dimexpr \textheight-\ht\tempbox-\dp\tempbox-\baselineskip-\parskip}
\setcaptype{table}\centering
\begin{threeparttable}
\caption{Another rotated table}\label{tab:test2}
\begin{tabular}{lll}
column 1a & column 2a & column 3a \\
column 1b & column 2b & column 3b \\
column 1c & column 2c & column 3c \\
\end{tabular}
\begin{tablenotes}
\item The first note.
\end{tablenotes}
\end{threeparttable}
\end{minipage}}
\end{document}