【问题标题】:R to LaTeX - use xtable to produce long table with line wrappingR to LaTeX - 使用 xtable 生成带换行的长表
【发布时间】:2013-07-29 02:41:25
【问题描述】:

我有一个包含大量行 (90) 的表,每行都包含一个名称、一个定义以及另一个文本列。我正在尝试输出到乳胶,这样它可以跨越多个页面并且也适合页面宽度。

library("xtable")
glossary2<-data.frame(names=letters[1:4],definition=c("very long long long text","very long long long long long text","very long long long long long long text","very long long long text"),include=c(NA,"YES",NA,"NO"))
glossaryprint<-xtable(glossary2,label="tab:codebook",caption="glossary")

xtable documentation 之外,我已经能够生成以下内容

使其适合页面宽度:

align(glossaryprint)<-"lXXX"
print(glossaryprint,tabular.environment="tabularx",width="\\textwidth")

使其适合多个页面:

print(glossaryprint,tabular.environment="longtable",floating=FALSE)

但是,将这两种技术结合起来给我带来了困难。我想我可能不得不将表格拆分为每张 20 行的表格并使用 tabularx,但这非常笨拙并且有很多重复代码。

在使用 R 函数输出到 Latex 时,是否有人能够提出一种方法,使长表适合页面宽度和列内换行?

【问题讨论】:

  • 您可能希望在TeX SE 上查看通用解决方案,然后将它们返回到xtable。例如,this 看起来很有帮助。
  • 感谢您的建议。我试图实现tabu 选项,但我在一个没有tlmgrtabu 的ubuntu 无头(非GUI)服务器上无法从包缓存(apt-cache search tabu)中获得并试图手动安装完全超出了我的能力范围!

标签: r export latex


【解决方案1】:

将保留此选项以获得更优雅的解决方案,但是...

添加此行允许对列宽进行硬编码

library("xtable")
glossary2 <- data.frame(names=letters[1:4], definition=c("very long long long text","very long long long long long text","very long long long long long long text","very long long long text"), include=c(NA,"YES",NA,"NO"))
glossaryprint <- xtable(glossary2, label="tab:codebook", caption="glossary")

align(glossaryprint) <- "lp{2in}p{3in}p{1in}" #here is the change
print(glossaryprint, tabular.environment="longtable", floating=FALSE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多