使用kable如何调整表格以适应pdf页面?

5

我目前正在处理一份Markdown文件(带有LaTeX),在其中使用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上搜索了,但还是不知道哪里出了问题。谢谢。

编辑:以下是在评论中要求的工作代码:

  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
1
@r2evans谢谢你的回答。我通过减小表格内的字体大小基本上解决了这个问题。不过我仍然不知道为什么“scale_down”不能正常工作。 - Gainz
这可能是维护者们需要解决的一个好问题。你知道吗,它是否允许使用LaTeX的“longtable”包?我可以看到未来需要处理多页表格的工作。(如果您有时间的话)能否请您发布您的工作代码以及之前/之后页面的截图? - r2evans
大多数我的表需要kableExtra包中的“longtable”功能。您也可以使用LaTeX的“longtable”包,它具有类似于多个页面上的列的功能。我可以发布我的一个大表的工作代码,但是由于我正在处理包含私人信息的数据,因此无法发布真正的前/后屏幕截图。这是我的新代码更改的示例:https://i.imgur.com/Zod850l.png - Gainz
1
所以,虽然这是同一张表格,但减小字体大小和列规范化对于将表格适应整个页面非常有帮助。对于长表格也可以采用相同的方法。我会在我的初始问题中发布我的工作代码供您参考。 - Gainz
1个回答

4
这不是一个答案,更像是一种澄清。因为scale_down使用了graphicx包中的resizebox,而longtable和这两个latex包不兼容,所以scale_down仅适用于普通表格。
实际上,你应该在控制台看到一个提示,说明"scale_down"与longtable不兼容。
源代码见:kableExtra
if (table_info$tabular == "longtable") {
    warning("Longtable cannot be resized.")
    return(x)
}

1
首先,感谢您的回答!是的,我在提问后注意到使用scale_down的longtable出了一些问题。虽然我在R控制台中没有收到任何错误信息。无论如何,我会点赞您的回答,以便将来可能有人受益。此外,对于任何寻求有关R Markdown中kable和LaTeX的信息的人,请阅读以下内容:https://www.google.com/url?sa=t&source=web&rct=j&url=https://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf&ved=2ahUKEwiM3qil7PTfAhUnTt8KHfgKCToQFjABegQIBBAB&usg=AOvVaw1KUfrGaz2bDPo-9bmnbFlw - Gainz
2
哈哈,我会在PDF文档的某个地方添加一条注释。这段代码是我大约两年前写的。感谢你提出这个问题!:D - Hao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接