我想旋转表格,当我使用侧向表格环境时,表格会从文档中消失,也会从表格列表中消失。我尝试了很多不同的可能的软件包,如下所示。我需要旋转整个表格环境(标签、标题等)。
\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'.
然而,当浮动包被加载时,虽然H
在可选参数中允许使用它,但实际上却不起作用,sidewaystable
这会导致文本被默默删除,这是不理想的。
rotating
有人可能会争论这是否是或包的一个缺陷float
,但由于我只有写入权限,所以rotating
我会说这是的问题float
。我会 ping 它的维护者....
答案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]
解决方案:使用with没有意义sidewaystable
。
我还要说:sidewaystable
应尽可能避免使用 a ,并且它应始终是页面浮动。例如,将其设置为顶部浮动会迫使读者做出尴尬的动作来查看表格;此外,如果 asidewaystable
适合作为顶部浮动,则它很可能适合作为标准(未旋转)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}