
Tengo una mesa que hay que girar dado su tamaño. Además, en mi documento es la primera tabla del Apéndice y, por lo tanto, debe seguir el encabezado de la sección. Sidewaystable no permite tener tanto el encabezado de la sección como la tabla rotada en la misma página. Por lo tanto, probé los paquetes hvfloat y rotfloat/varwidth, sin embargo, ninguno de los dos conduce a una solución perfecta:
\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}
En ambos casos logro que las tablas estén en la misma página como el encabezado de la sección pero:
En el caso de hvfloat, (1) a pesar de usar la opción, capPos=t
el título permanece siempre en el lado izquierdo de la tabla. He leído la documentación pero no tengo idea de qué estoy haciendo mal aquí. (2) No puedo encontrar una opción para agregar notas de tabla (en el entorno de tabla que usaría, \caption*{Table Notes}
pero eso no funciona aquí). La mesa como tal está colocada vertical y horizontalmente como me gustaría tenerla.
En el caso de la caja giratoria, logro colocar el título en la parte superior de la tabla y las notas de la tabla debajo de la tabla, pero haga lo que haga, la tabla permanece en la parte inferior de la página (aunque debe estar centrada horizontalmente y siguiendo el encabezado de la sección verticalmente). ).
Cualquier sugerencia sería muy apreciada. Gracias.
Respuesta1
Usar capPos=top
en lugar de capPos=t
da como resultado el siguiente resultado:
\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}
Con tabular*
y a \multicolumn
para la mesa 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}
Respuesta2
El principal problema de agregar un \section
encabezado es que reduce el espacio restante (ancho antes de rotar). Además, es más fácil hacer que una minipágina actúe como una tabla (ver \setcaptype
) que hacer que una tabla actúe como una minipágina.
Tenga en cuenta que \centering
afecta la posición vertical (después de rotar), mientras que el tercer argumento opcional de la minipágina afecta el posicionamiento horizontal (después de rotar).
\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}