【问题标题】:Table way too wide to fit in Markdown generated PDF表格太宽,无法放入 Markdown 生成的 PDF
【发布时间】:2019-05-22 10:22:10
【问题描述】:

我正在尝试使用 Rmarkdown 将表格从 SQL 查询显示为 pdf。但是,我得到的表格太宽,不适合文档。

有人建议我使用 Pander 包,因此我尝试使用 pandoc.table() 函数,该函数在控制台上运行良好,但由于某种原因它阻止了我的文档在 Rmarkdown 中呈现。

代码看起来有点像这样:

rz = dbSendQuery(mydb, "select result.id result_id, company.id company_id, (...)")
datz = fetch(rz, n=-1)

这是一个很长的查询,但正如我所说,它适用于 MySQL 和 R 控制台(适用于 RStudio)。

所以,当我这样做时

kable(datz, "latex", col.names = c(colnames(datz)), caption=paste('This is a sample table')) %>% kable_styling(latex_options = "striped") %>% column_spec(1, bold = T, color = "red"))

打印的结果太宽,无法放入 PDF。

我不知道我该如何解决这个问题。我尝试使用 pander 包中的 pandoc.tables(),但与我在 kable 中的选项相比,结果的格式似乎非常简陋。

【问题讨论】:

  • @JAQuent 我像他们说的那样尝试过,但是将格式更改为 Markdown 会压缩表格,以至于所有内容都被折叠了。我需要更多的东西,比如把桌子分成不同的部分,这样它就适合了。

标签: mysql r markdown r-markdown kable


【解决方案1】:

您必须使用 kableExtra 中的 scale_down 选项。当表格太宽时,scale_down 选项将适合您的表格在一页上。警察字体也会缩小。

这是您可以使用的代码示例:

kable(your_dt, "latex", booktabs = T) %>%
kable_styling(latex_options = c("striped", "scale_down"))

【讨论】:

  • “警察”字体是什么意思?我想这是一个错字?
  • 另外,我不认为 kable 命令“latex”是必要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
  • 2019-08-28
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
  • 2011-08-10
相关资源
最近更新 更多