【问题标题】:How to adjust table to a pdf page with kable?如何使用 kable 将表格调整为 pdf 页面?
【发布时间】:2019-06-02 07:41:20
【问题描述】:

我目前正在处理一个 Markdown 文件(带有乳胶),我在其中使用 kable()kableExtra 作为我的表格。问题是我的一些表格太大并且不适合 pdf 页面(即使是横向)。

我尝试使用来自 kableExtra 的latex_options = "scale_down",但由于某些原因它不起作用,它不会改变任何东西。这是我正在运行的代码示例:

kable(dt, "latex", longtable = T, caption = "SampleCaption") %>% 
  add_header_above(c("","Mens" = 3, "Womens" = 3))  %>%  
  kable_styling(latex_options = c("striped", "scale_down", "repeat_header"),repeat_header_text = "",
                full_width = F) %>%
  column_spec(1, width = "10cm")    

我已经看过 Google 和 stackoverflow。任何人都知道我做错了什么?谢谢

编辑,这里是 cmets 中要求的工作代码:

  kable(dt, "latex", longtable = T, caption = "SampleCaption") %>% 
 add_header_above(c("","Mens" = 3, "Womens" = 3, "Total" = 2))  %>%  
 kable_styling(font_size = 7, latex_options = c("striped", "repeat_header"),repeat_header_text = "",
               full_width = F) %>%
 column_spec(1, width = "5cm") 

【问题讨论】:

  • 如果您可以提供一个完整的工作降价文件,其中包含足够大的数据来执行此操作,这可能会有所帮助。当然,我也可以使用 irisggplot2::diamonds 来做到这一点,但是您提供一个完整且可重复的示例确实很有帮助。
  • @r2evans 感谢您的回答。我实际上通过减小表格内的字体大小来解决这个问题。我仍然不知道为什么“scale_down”不能正常工作。
  • 这对维护者来说可能是个好问题。你知道吗,它允许使用 LaTeX 的“longtable”包吗?我可以看到我未来的一些工作涉及一个表格的多个页面。 (能否请您发布您的工作代码,如果您有时间,请发布页面之前/之后的屏幕截图?)
  • 我的大多数表格都需要 kableExtra 包中的“longtable”功能。您也可以使用 LaTeX 的“longtable”包,它为多个页面上的列共享类似的功能。我可以发布我的一张大桌子的工作代码,但我无法发布真正的前后截图,因为我正在处理的数据包含私人信息。这是我的新代码更改的示例:i.imgur.com/Zod850l.png
  • 因此,虽然这是同一张表格,但减小字体大小和列规格有助于使表格适合整个页面。对于长表也可以这样做。我会在我最初的问题中为您发布我的工作代码。

标签: r knitr kable kableextra


【解决方案1】:

这不是一个答案,而更像是一个澄清,因为 scale_down 正在使用 resizeboxgraphicx 而 longtable 是 longtable 并且这两个乳胶包不会相互交谈, scale_down 仅适用于普通表。

事实上,您应该会在控制台中看到“scale_down”不适用于longtable

Source in kableExtra

if (table_info$tabular == "longtable") {
    warning("Longtable cannot be resized.")
    return(x)
}

【讨论】:

  • 首先,感谢您的回答!是的,我在提出问题后注意到,由于某种原因,使用带有 scale_down 的 longtable 不起作用。我在 R 控制台中没有收到任何错误。无论如何,我都会赞成你的答案,所以也许它可以在未来帮助别人。对于任何在 R Markdown 中寻求 kable 和 LaTeX 信息的人,请阅读以下内容:google.com/url?sa=t&source=web&rct=j&url=https://…
  • 哈哈,我会在PDF文档的某处添加注释。大约 2 年前,我编写了这段代码。感谢您提出这个问题! :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
  • 2016-04-27
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多