Таблица исчезает, когда я использую команду «вбок»

Таблица исчезает, когда я использую команду «вбок»

Я хочу повернуть таблицу. Когда я использую среду 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

Происходит примерно следующее:

  1. sidewaystableпо сути похож на table, с той разницей, что вместо выполнения \@float{table}[<pref>]он делает

    \@float{table}[<pref>]\begin{lrbox}{\rot@float@box}
    
  2. когда \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} 

введите описание изображения здесь

Связанный контент