【发布时间】:2020-10-08 18:44:14
【问题描述】:
我使用 kableExtra 包在 R Markdown 文档中生成一个长表,该文档编织成 PDF。
使用kableExtra::pack_rows()(以前的kableExtra::group_rows())将表的行集组合在一起
出现两个问题:
-
如果最后一行形成一个集合,如果是一个则不显示其分组
-
设置
longtable = TRUE允许长表跨越多个页面和同时
使用
kable_styling(..., latex_options = c("repeat_header"))在每一页重复表头。
-
我的第一列的某些行中的文本对于列宽来说太长(需要修复)。因此它被包装到下一行。但是,任何换行的文本都不再缩进。 增加列宽,不幸的是,文本在我的用例中不是一个选项。
我尝试了this SO post 中提出的 minipage 解决方案来解决问题 2)。
如果通过column_spec(1, width = "XXXem") 将第一列设置得足够宽,它就可以工作。但是,在我的用例中,我无法将其设置得如此之宽以使其以这种方式工作。
如果没有其他方法可以缩进换行的内容,是否可以将缩进去掉?
下面提供了 MWE 和插图。
longtable = FALSE 或没有 latex_options = c("repeat_header")) ==> Pack-rows 正在工作
longtable = TRUE AND latex_options = c("repeat_header")) ==> Pack-rows 不起作用
---
title: "MWE"
output:
pdf_document: default
html_document: default
---
```{r echo=FALSE}
library(knitr)
library(kableExtra)
dt <- mtcars[1:3, 1:2]
kable(dt,
escape = FALSE, # to be able to include latex commands
booktabs = T,
longtable = TRUE, # allow long table to span multiple pages
) %>%
kable_styling(full_width = F,
latex_options = c(
"repeat_header" # repeat header of long table
)
) %>%
# column characteristics: set widths
column_spec(1, width = "2cm") %>%
# group rows together and give these groups labels
pack_rows("Mazda Cars", 1, 2) %>%
pack_rows("Datsun Cars", 3, 3)
```
【问题讨论】:
-
仅供参考:对于部分问题,其他用户已在GitHub 提交了问题
-
根据
kableExtra包的作者的说法,该错误发生在“当您使用带有repeat_header 的group_rows 作为repeat_header 时,会在最后一行添加一个*。”和has been fixed recently
标签: r r-markdown kable kableextra