Centrar una tabla larga de varias páginas en páginas horizontales

Centrar una tabla larga de varias páginas en páginas horizontales

Estoy intentando centrar verticalmente una tabla larga de varias páginas (con algunas celdas con texto largo) en el landscapemodo. Yo uso xltabulary threeparttablexpara hacer esta mesa. Aunque la tabla se puede generar correctamente (búsquela debajo del MWE), no aparece centrada verticalmente en las páginas (capturas de pantalla adjuntas).

He probado \centering, \begin{center}, \vfilly \vspace*{\fill}, como se mencionó en otras publicaciones, pero obviamente ninguno de estos funciona para este propósito. Estaría muy agradecido por cualquier consejo o solución a este problema.

Aquí está el 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}

Aquí están las imágenes que muestran que la tabla no está en el centro de las páginas: ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Respuesta1

Dado que el centrado vertical de los fragmentos de la mesa parece ser de suma importancia, es posible que deba renunciar a producir la mesa basándose en un único xltabularentorno. En su lugar, es posible que desee considerar la posibilidad de emplear el rotatingpaquete y su sidewaystableentorno: un sidewaystableentorno por página y un tabularxentorno por entorno lateralmente estable. Presumiblemente, querrás solo un tablenotesentorno para las tres (?) tablas; Si es así, probablemente querrás colocar este tablennotesentorno en la página final.

Y considere emplear el captionpaquete y su \ContinuedFloatdirectiva para generar un número de tabla común en todos los entornos de estabilidad lateral.

Con suerte, las siguientes capturas de pantalla demuestran que los tres fragmentos de la tabla están centrados verticalmente dentro de una página.

ingrese la descripción de la imagen aquí


ingrese la descripción de la imagen aquí


ingrese la descripción de la imagen aquí

\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}

Apéndicepara abordar la pregunta de seguimiento del OP, sobre no solo componer las tablas en modo horizontal sino también tener el visor de PDFmostrarlas páginas en modo horizontal.

El sidewaystablemétodo coloca su contenido en modo horizontal. Sin embargo, como habrá descubierto, tampoco le indica al visor de PDF que cambie elvisualización en pantallade la tabla del modo horizontal del modo vertical al modo horizontal.

Si ese es un efecto que desea lograr, le sugiero que proceda de la siguiente manera. Primero, en el preámbulo, cambie \usepackage{rotating}a \usepackage{pdflscape}. En segundo lugar, cambie las tres instancias de \begin{tabularx}{\textwidth}a `\begin{tabularx}{\linewidth}. En tercer lugar, cambie el diseño general de

% first page
\begin{sidewaystable}
...
\end{sidewaystable}

% second page
\begin{sidewaystable}
...
\end{sidewaystable}

% third page
\begin{sidewaystable}
...
\end{sidewaystable}

a

\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}

Dicho de otra manera, necesitará cambiar el diseño general de usar 3 sidewaystableentornos a usar 3 table[p]entornos, encerrados en un solo landscapeentorno.

información relacionada