Я хочу повернуть таблицу. Когда я использую среду sideways table, таблица исчезает из документа, а также из списка таблиц. Я много пробовал с различными возможными пакетами, как показано ниже. Мне нужно, чтобы вся среда таблицы (метка, заголовок и т. д.) вращалась.
\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}
решение1
Вы не показываете, что вы сделали, поэтому невозможно сказать, что в этом не так, но если вы измените \begin{table}[H]
на \begin{sidewaystable}
и измените \end{table}
на \end{sidewaystable}
, то вы получите
Если вы используете [H]
наsidewaystable
безиспользуя float
пакет, то вы получаете ошибку
! LaTeX Error: Unknown float option `H'.
Однако при загрузке пакета float H
он допускается в необязательном аргументе, но на самом деле не работает, sidewaystable
из-за чего текст беззвучно удаляется, что не идеально.
Можно поспорить, является ли это ошибкой в пакете rotating
или float
, но поскольку у меня есть доступ только на запись, rotating
я скажу, что это проблема с float
. Я отправлю пинг его сопровождающему...
решение2
Происходит примерно следующее:
sidewaystable
по сути похож наtable
, с той разницей, что вместо выполнения\@float{table}[<pref>]
он делает\@float{table}[<pref>]\begin{lrbox}{\rot@float@box}
когда
\end{sidewaystable}
будет найден,\end{lrbox}
будет выполнено, за которым последуют некоторые работы по техническому обслуживанию и в конечном итоге\end@float
.
В приведенном выше коде <pref>
обозначает явные предпочтения позиционирования или предпочтения по умолчанию.
В случае \begin{sidewaystable}[H]
TeX найдет
\@float{table}[H]\begin{lrbox}{\rot@float@box}
и теперь float
включается. Он изменяется \@float
, чтобы проверить варианты; если H
найден, он делает
\@float@HH{sidewaystable}[H]
который пожирает [H]
, выполняет некоторые работы по обслуживанию, среди которых переопределение \endsidewaystable
быть \float@endH
и начинает устанавливать \vbox
в регистре \@currbox
.
В данный момент \end{sidewaystable}
сканируется, формируются два ящика: \rot@float@box
и \@currbox
. Поскольку \begin{lrbox}
делает хитрые трюки с группировкой, ящик завершается и после него также \@currbox
. Но код стандарта \endsidewaystable
, который должен вращать ящик, никогда не выполняется (и в любом случае не имел бы никакого эффекта, поскольку при закрытии \@currbox
ящик, сохраненный в , \rot@float@box
теряется, поскольку содержимое регистра восстанавливается до того, что он содержал до начала \vbox\@currbox
(то есть пустым).
Решение: не имеет смысла использовать [H]
с sidewaystable
.
Я бы сказал даже больше: sidewaystable
следует избегать a как можно дольше, и он всегда должен быть плавающим элементом страницы. Например, установка его в качестве верхнего плавающего элемента заставит читателя делать неловкие движения, чтобы посмотреть на таблицу; кроме того, если a sidewaystable
подходит в качестве верхнего плавающего элемента, он, скорее всего, подойдет и в качестве стандартного (неповернутого) table
.
решение3
У меня работает. Я воспользовался возможностью использовать siunitx
для выравнивания числовых томов по десятичной точке и загрузить подпись для правильного вертикального интервала между подписью и таблицей без указания \vspace{2mm}
, и исправил некоторые ошибки/несоответствия. В частности, как указал @David Carlisle, спецификатор [H]
не следует использовать с 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}