我正在用sweave写一份报告。我必须放入一张很宽的桌子:
来自R
dim(myData)
> 50 60
我编写的用于生成LaTex表的R代码是:
print(xtable(myData, caption="my wide table", label="tab:myTab", digits=3),
tabular.environment="longtable", caption.placement="top",
## floating.environment="sidewaystable", ## a trial
size="\\tiny", table.placement="", floating=FALSE)
问题是该表对于页面的维度来说太宽了,所以,有没有办法将表分成不同的页面,例如LaTeX longtable环境,但是,宽度?
我希望我能够解释我的问题。
此致
的Riccardo
答案 0 :(得分:2)
另一种有用的方法是使用resizebox
函数来缩放表格以适合页面宽度。我发现这比使用\small
或\tiny
的钝工具要好得多:
\begin{table}[t]
\resizebox{\textwidth}{!}{%
\centering
\begin{tabular}{lllll}
% Some stuff
\end{tabular}}%Closing bracket
%Don't scale the caption!
\caption{A table caption.}\label{T1.1}
\end{table}
我怀疑你的桌子仍然需要分成两部分,但是resizebox
可以与@PaulHurleyuk的答案结合使用。
答案 1 :(得分:1)
如果您可以在横向模式下将列装入一个页面,那么longtable环境将为您处理溢出的行,包括正确的字幕。
如果无法重新排列表格以使其适合您当前的横向页面,则可以始终将页面放大(请参阅geometry
包)。
由于您使用的是Sweave,我建议您查看我的previous TeX.SX answer on the same subject,它以一种正确行为的方式定义longtable标题。
答案 2 :(得分:1)
您可以通过对数据进行分项来手动创建多个表
表1(假设前三列应该同时存在
print(xtable(myData[,c(1:3,4:25)], caption="my wide table", label="tab:myTab", digits=3),
tabular.environment="longtable", caption.placement="top",
size="\\tiny", table.placement="", floating=FALSE)
表2
print(xtable(myData[,c(1:3,25:50)], caption="my wide table", label="tab:myTab", digits=3),
tabular.environment="longtable", caption.placement="top",
size="\\tiny", table.placement="", floating=FALSE)