R-LaTeX宽桌

时间:2012-03-30 20:21:37

标签: r latex

我正在用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

3 个答案:

答案 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)