
Eu tenho uma mesa que precisa ser girada de acordo com seu tamanho. Além disso, no meu documento é a primeira tabela do Apêndice e, portanto, deve seguir o cabeçalho da seção. Sidewaystable não permite ter o cabeçalho da seção e a tabela girada na mesma página. Por isso, tentei os pacotes hvfloat e também rotfloat/varwidth, porém ambos não levam a uma solução perfeita:
\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}
Em ambos os casos consigo que as tabelas estejam na mesma página que o cabeçalho da seção, mas:
No caso do hvfloat, (1) apesar de utilizar a opção capPos=t
a legenda permanece sempre no lado esquerdo da tabela. Eu li a documentação, mas não tenho ideia do que estou fazendo de errado aqui. (2) Não consigo encontrar uma opção para adicionar notas de tabela (no ambiente de tabela que eu usaria, \caption*{Table Notes}
mas isso não funciona aqui). A mesa como tal está posicionada verticalmente e horizontalmente como eu gostaria.
No caso do rotatebox, consigo colocar a legenda no topo da tabela e as notas da tabela abaixo da tabela, mas faça o que fizer, a tabela permanece na parte inferior da página (embora deva ser centralizada horizontalmente e seguindo o cabeçalho da seção verticalmente ).
Qualquer sugestão seria muito apreciada. Obrigado.
Responder1
Usar capPos=top
em vez de capPos=t
resulta na seguinte saída:
\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}
Com tabular*
e um \multicolumn
para a 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}
Responder2
O principal problema de adicionar um \section
título é que ele reduz o espaço restante (largura antes de girar). Além disso, é mais fácil fazer uma minipágina funcionar como uma tabela (consulte Recursos \setcaptype
) do que fazer uma tabela funcionar como uma minipágina.
Observe que isso \centering
afeta a posição vertical (após a rotação), enquanto o terceiro argumento opcional da minipágina afeta o posicionamento horizontal (após a rotação).
\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}