Quero girar uma tabela. Quando uso a tabela lateral, a tabela de ambiente desaparece do documento e também desaparece da lista de tabelas. Eu tentei muito com diferentes pacotes possíveis como abaixo. Preciso que todo o ambiente da tabela (rótulo, legenda etc.) gire.
\documentclass[12pt]{report}
\renewcommand{\baselinestretch}{1.5}
\usepackage[top=1in, bottom=1in, left=1.25in, right=0.75in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{csvsimple}
\usepackage{amssymb}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{adjustbox}
\usepackage{placeins}
\usepackage{float}
\usepackage{wrapfig}
\usepackage{array}
\usepackage{tabularx}
\usepackage{tabu}
\usepackage{setspace}
\usepackage{multirow}
\usepackage{rotating}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{enumitem}
\usepackage{pifont}
\usepackage{natbib}
\usepackage{booktabs}
\usepackage{collcell}
\usepackage{datatool}
\usepackage{pdflscape}
\usepackage{graphics}
\begin{document}
\begin{sidewaystable}[H]
\centering
\caption{Set table like this}
\vspace{2mm}
\begin{tabular}{cccccccccc}\toprule
& & Data set 1 & & & Data set 2 & & & Data set 3 & \\ \cmidrule(lr){2-4} \cmidrule(lr){5-7} \cmidrule(lr){8-10}
Estimators & $ n=10 $ & $ n=15 $ & $ n=20 $ & n=10 & $ n=15 $ & $ n=20 $ & $ n=10 $ & $ n=15 $ & $ n=20 $\\ \midrule
$ \hat{M}_{01} $ & 100.451 & 101.658 & 100.012 & 103.402 & 119.517 & 311.625 & 110.256 & 126.864 & 157.835 \\
$ \hat{M}_{02} $ & 59.146 & 7407.001 & 1508.683 & 448.119 & 326.131 & 788.717 & 189.374 & 153.392 & 285.499 \\
$ \hat{M}_{03} $ & 2896.694 & 2828.759 & 1154.403 & 974.536 & 1931.318 & 12350 & 1150.055 & 2778.052 & 1245.779 \\ \bottomrule
\end{tabular}%
\label{tex table}%
\end{sidewaystable}%
\end{document}
Responder1
Você não mostra o que fez, então não é possível dizer o que há de errado com isso, mas se você mudar \begin{table}[H]
para \begin{sidewaystable}
e mudar \end{table}
para \end{sidewaystable}
então você obtém
Se você usar [H]
emsidewaystable
semusando o float
pacote, você receberá um erro
! LaTeX Error: Unknown float option `H'.
No entanto, quando o pacote float é carregado, H
é permitido no argumento opcional, mas na verdade não funciona, sidewaystable
o que faz com que o texto seja descartado silenciosamente, o que não é o ideal.
Alguém poderia argumentar se isso é uma falha no pacote rotating
or float
, mas como só tenho acesso de gravação, rotating
direi que é um problema com o float
. Vou fazer ping em seu mantenedor ....
Responder2
O que acontece é aproximadamente o seguinte:
sidewaystable
é essencialmente semelhante atable
, com a diferença que em vez de executá\@float{table}[<pref>]
-lo faz\@float{table}[<pref>]\begin{lrbox}{\rot@float@box}
quando
\end{sidewaystable}
for encontrado,\end{lrbox}
estará concluído, seguido por alguns trabalhos de manutenção e, eventualmente, por\end@float
.
No código acima, <pref>
representa as preferências de posicionamento explícitas ou padrão.
No caso de \begin{sidewaystable}[H]
, o TeX encontrará
\@float{table}[H]\begin{lrbox}{\rot@float@box}
e agora float
entra em ação. Ele muda \@float
para examinar as opções; se H
for encontrado, isso acontece
\@float@HH{sidewaystable}[H]
que engole [H]
, faz alguns trabalhos de manutenção entre os quais redefinir \endsidewaystable
ser \float@endH
e começar a colocar um \vbox
no cadastro \@currbox
.
No momento em que \end{sidewaystable}
é digitalizado, existem duas caixas sendo formadas: \rot@float@box
e \@currbox
. Como \begin{lrbox}
faz truques inteligentes com agrupamento, a caixa é finalizada e depois dela também \@currbox
. Mas o código do padrão \endsidewaystable
que deveria girar a caixa nunca é executado (e não teria efeito de qualquer maneira, porque no fechamento de \@currbox
, a caixa salva \rot@float@box
é perdida à medida que o conteúdo do registro é restaurado para o que continha antes do início de \vbox\@currbox
(que está vazia).
Solução: não faz sentido usar [H]
with sidewaystable
.
Eu diria ainda mais: a sidewaystable
deve ser evitado o máximo possível e deve ser sempre uma página flutuante. Defini-lo como top float, por exemplo, forçaria o leitor a fazer movimentos estranhos ao olhar para a mesa; além disso, se a sidewaystable
se encaixar como um flutuador superior, provavelmente caberia como um padrão (não girado) table
.
Responder3
Funciona para mim. Aproveitei para usar siunitx
para um alinhamento de volumes numéricos no ponto decimal, e carregar a legenda para um espaçamento vertical correto entre legenda e tabela sem precisar especificar \vspace{2mm}
, e corrigi alguns erros/inconsistências. Em particular, conforme apontado por @David Carlisle, o [H]
especificador não deve ser usado com sidewaystable
.
\documentclass[12pt]{report}
\renewcommand{\baselinestretch}{1.5}
\usepackage[top=1in, bottom=1in, left=1.25in, right=0.75in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{csvsimple}
\usepackage{amssymb}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{adjustbox}
\usepackage{placeins}
\usepackage{float}
\usepackage{wrapfig}
\usepackage{array}
\usepackage{tabularx}
\usepackage{tabu}
\usepackage{setspace}
\usepackage{multirow}
\usepackage{rotating}
\usepackage{longtable}
\usepackage{enumitem}
\usepackage{pifont}
\usepackage{natbib}
\usepackage{booktabs}
\usepackage{collcell}
\usepackage{datatool}
\usepackage{pdflscape}
\usepackage{graphicx}
\usepackage{siunitx} %
\usepackage{caption} %
\begin{document}
\begin{sidewaystable}%[H]
\centering\sisetup{table-format =4.3, table-number-alignment=center}
\caption{Set table like this}
\begin{tabular}{c*{9}{S}}\toprule
& & {Data set 1} & & & {Data set 2} & & & {Data set 3} & \\ %\cmidrule(lr){2-4} \cmidrule(lr){5-7} \cmidrule(lr){8-10}
Estimators & {$n=10 $} & {$ n=15 $} & {$ n=20 $} & {n=10} & {$ n=15 $} & {$ n=20 $} & {$ n=10 $} & {$ n=15 $} & {$ n=20 $}\\ \midrule
$ \hat{M}_{01} $ & 100.451 & 101.658 & 100.012 & 103.402 & 119.517 & 311.625 & 110.256 & 126.864 & 157.835 \\
$ \hat{M}_{02} $ & 59.146 & 7407.001 & 1508.683 & 448.119 & 326.131 & 788.717 & 189.374 & 153.392 & 285.499 \\
$ \hat{M}_{03} $ & 2896.694 & 2828.759 & 1154.403 & 974.536 & 1931.318 & 12350 & 1150.055 & 2778.052 & 1245.779 \\ \bottomrule
\end{tabular}%
\label{tex table}%
\end{sidewaystable}%
\end{document}