【问题标题】:R-LaTeX Wide tableR-LaTeX 宽桌
【发布时间】:2012-04-10 17:49:18
【问题描述】:

我正在用 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环境但是,按宽度?

我希望我能够解释我的问题。

问候

里卡多

【问题讨论】:

标签: r latex


【解决方案1】:

另一个有用的方法是使用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 答案结合使用。

【讨论】:

    【解决方案2】:

    您可以通过对数据进行子集化来手动创建多个表

    表 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)
    

    【讨论】:

    • 最后我用了你建议的方式:把宽桌子分成小桌子。我希望找到一些 R/LaTeX 技巧来使表格适应不同的页面...... :(
    【解决方案3】:

    如果您可以在横向模式下将列放入一页中,longtable 环境将为您处理溢出的行,包括正确的字幕。

    如果无法重新排列表格以使其适合您当前的横向页面,您始终可以将页面放大(请参阅geometry 包)。

    由于您使用的是 Sweave,我建议您查看我的 previous TeX.SX answer on the same subject,它以正确行为的方式定义了 longtable 标题。

    【讨论】:

    • 我无法将列或行放在一个页面中。我阅读了您的链接,发现它非常有趣!
    • 好吧,如果无法按原样调整表格内容,您将不得不重新考虑表格的布局。很高兴你找到了我的 Sweave 价值代码。
    • 刚刚注意到您在子集答案中的评论。不要忘记接受这个答案。祝织布好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多