Ich versuche, eine lange Tabelle mit mehreren Seiten (mit einigen Zellen mit langem Text) im landscape
Modus vertikal zu zentrieren. Ich verwende xltabular
und , threeparttablex
um diese Tabelle zu erstellen. Obwohl die Tabelle erfolgreich generiert werden kann (siehe unten das MWE), wird sie auf den Seiten nicht vertikal zentriert angezeigt (Screenshots beigefügt).
Ich habe \centering
, \begin{center}
, \vfill
, und ausprobiert \vspace*{\fill}
, wie in anderen Beiträgen erwähnt, aber offensichtlich funktioniert keines davon für diesen Zweck. Ich wäre für jeden Rat oder jede Lösung für dieses Problem sehr dankbar.
Hier ist das MWE:
\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{xltabular,threeparttablex}
\usepackage{booktabs}
\usepackage{pdflscape}
\usepackage{lipsum}
\begin{document}
\begin{landscape}
\begin{ThreePartTable}
\begin{TableNotes}
$^*$ \lipsum[1]
\end{TableNotes}
\begin{xltabular}{\linewidth}{p{2cm}XX}
\caption{TableName.} \\
\toprule
Column1 & Column2 & Column3 \\ \midrule
\endfirsthead
\multicolumn{3}{c}{Table \thetable~({\it continued})} \\[1pt]
\toprule
Column1 & Column2 & Column3 \\ \midrule
\endhead
\bottomrule
\multicolumn{6}{r}{\footnotesize ({\it continued on next page})}
\endfoot
\bottomrule
\insertTableNotes
\endlastfoot
Row1 & \lipsum[1] & \lipsum[1] \\
Row2 & \lipsum[2] & \lipsum[2] \\
Row3 & \lipsum[3] & \lipsum[3] \\
Row4 & \lipsum[4] & \lipsum[4]
\end{xltabular}
\end{ThreePartTable}
\end{landscape}
\end{document}
Hier sind die Bilder, die zeigen, dass sich die Tabelle nicht in der Mitte der Seiten befindet:
Antwort1
Da die vertikale Zentrierung der Tabellenfragmente von größter Bedeutung zu sein scheint, müssen Sie möglicherweise auf die Erstellung der Tabelle auf der Grundlage einer einzigen xltabular
Umgebung verzichten. Stattdessen sollten Sie sich überlegen, ob Sie das rotating
Paket und seine sidewaystable
Umgebung verwenden möchten – eine sidewaystable
Umgebung pro Seite und eine tabularx
Umgebung pro seitenstabiler Umgebung. Vermutlich möchten Sie nur eine tablenotes
Umgebung für alle drei (?) Tabellen. Wenn das der Fall ist, möchten Sie diese tablennotes
Umgebung wahrscheinlich auf der letzten Seite platzieren.
Und prüfen Sie, ob Sie das caption
Paket und seine \ContinuedFloat
Direktive einsetzen können, um eine gemeinsame Tabellennummer für alle seitenstabilen Umgebungen zu generieren.
Die folgenden Screenshots zeigen hoffentlich, dass alle drei Tabellenfragmente innerhalb einer Seite vertikal zentriert sind.
\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{tabularx} % for 'tabularx' env. and 'X' col. type
\usepackage{ragged2e} % for '\RaggedRight' macro
\newcolumntype{L}{>{\RaggedRight}X} % suppress full justification
\usepackage{rotating} % for 'sidewaystable' environment
\usepackage{threeparttable}
\usepackage{booktabs}
\usepackage{caption} % for '\ContinuedFloat' macro
\usepackage{lipsum} % for filler text
\begin{document}
% first page
\begin{sidewaystable}
\begin{threeparttable}
\caption{TableName.}
\begin{tabularx}{\textwidth}{@{} p{2cm} LL @{}}
\toprule
Column1 & Column2 & Column3 \\
\midrule
Row1 & \lipsum[1]\tnote{**} & \lipsum[1] \\
\midrule[\heavyrulewidth]
\multicolumn{3}{r@{}}{\footnotesize(continued on next page)}
\end{tabularx}
\end{threeparttable}
\end{sidewaystable}
% second page
\begin{sidewaystable}
\begin{threeparttable}
\ContinuedFloat
\caption{TableName, part 2 of 3.}
\begin{tabularx}{\textwidth}{@{} p{2cm} LL @{}}
\toprule
Column1 & Column2 & Column3 \\
\midrule
Row2 & \lipsum[2]\tnote{$\dagger$} & \lipsum[2] \\
\addlinespace
Row3 & \lipsum[3] & \lipsum[3]\tnote{$\ddagger$} \\
\midrule[\heavyrulewidth]
\multicolumn{3}{r@{}}{\footnotesize(continued on next page)}
\end{tabularx}
\end{threeparttable}
\end{sidewaystable}
% third page
\begin{sidewaystable}
\begin{threeparttable}
\ContinuedFloat
\caption{TableName, part 3 of 3.}
\begin{tabularx}{\textwidth}{@{} p{2cm} LL @{}}
\toprule
Column1 & Column2 & Column3 \\
\midrule
Row4 & \lipsum[4]\tnote{\S} & \lipsum[4] \\
\bottomrule
\end{tabularx}
\bigskip
\footnotesize
\RaggedRight
\begin{tablenotes}[flushleft]
\item[**] \lipsum[1][1-10]
\smallskip
\item[$\dagger$] \lipsum[2][1-10]
\smallskip
\item[$\ddagger$] \lipsum[3][1-10]
\smallskip
\item[\S] \lipsum[4][1-10]
\end{tablenotes}
\end{threeparttable}
\end{sidewaystable}
\end{document}
Nachtragum die Folgefrage des OP zu beantworten, nicht nur die Tabellen im Querformat zu setzen, sondern auch den PDF-Viewer zu habenAnzeigedie Seiten im Querformat.
Die sidewaystable
Methode platziert den Inhalt im Querformat. Wie Sie jedoch festgestellt haben, weist sie den PDF-Viewer nicht an, dieBildschirmanzeigeder Landscape-Tabelle vom Portrait- in den Landscape-Modus.
Wenn Sie diesen Effekt erzielen möchten, schlage ich vor, dass Sie wie folgt vorgehen. Ändern Sie zunächst in der Präambel \usepackage{rotating}
in \usepackage{pdflscape}
. Ändern Sie dann alle drei Instanzen von \begin{tabularx}{\textwidth}
in `\begin{tabularx}{\linewidth}. Ändern Sie drittens das Gesamtlayout von
% first page
\begin{sidewaystable}
...
\end{sidewaystable}
% second page
\begin{sidewaystable}
...
\end{sidewaystable}
% third page
\begin{sidewaystable}
...
\end{sidewaystable}
Zu
\begin{landscape}
% first page
\begin{table}[p]
...
\end{table}
% second page
\begin{table}[p]
...
\end{table}
% third page
\begin{table}[p]
...
\end{table}
\end{landscape}
Anders ausgedrückt: Sie müssen das Gesamtlayout von der Verwendung von drei sidewaystable
Umgebungen auf die Verwendung von drei table[p]
Umgebungen ändern, die in einer einzigen landscape
Umgebung zusammengefasst sind.