Cabeçalho da seção e tabela girada na mesma página

Cabeçalho da seção e tabela girada na mesma página

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=ta 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=topem vez de capPos=tresulta na seguinte saída:

insira a descrição da imagem aqui

\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 \multicolumnpara a mesa ntes:

insira a descrição da imagem aqui

\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 \sectiontí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 \centeringafeta 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}

informação relacionada