我用kableExtra
包用于在 R Markdown 文档中生成长表,并将其编织为 PDF。
表的行集使用以下方式分组在一起kableExtra::pack_rows()
(以前kableExtra::group_rows()
)
出现两个问题:
-
如果最后一行形成一个集合,则不会显示其分组
-
sets longtable = TRUE
允许长表跨越多个页面
and同时
uses kable_styling(..., latex_options = c("repeat_header"))
在每页上重复表的标题。
我的第一列的某些行中的文本对于列宽而言太长(需要修复)。因此它被包装到下一行中。但是,任何换行的文本都不再缩进。
不幸的是,增加列宽使得文本在我的用例中不是一个选项。
我尝试了中提出的小型页面解决方案这个帖子解决问题2)。
如果第一列通过设置足够宽,它就可以工作column_spec(1, width = "XXXem")
)。但是,在我的用例中,我无法将其设置得太宽以使其以这种方式工作。
如果没有其他方法可以缩进换行的内容,是否可以选择删除一般的缩进?
下面提供了 MWE 和插图。
Either longtable = FALSE
or no 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)
```