是否有办法用kableExtra来增加r-markdown或bookdown中pdf输出的行距?
library(knitr)
library(kableExtra)
kable(
head(iris, 5), caption = 'Iris Table',
booktabs = TRUE) %>%
kable_styling(latex_options = "striped")
答案 0 :(得分:3)
您可以使用LaTeX命令\arraystretch
来完成此操作:
---
output: pdf_document
---
```{r setup, include=FALSE}
library(kableExtra)
library(tidyverse)
```
\renewcommand{\arraystretch}{2}
```{r, echo=FALSE}
library(knitr)
library(kableExtra)
kable(head(iris, 5), caption = 'Iris Table',booktabs = TRUE) %>%
kable_styling(latex_options = "striped")
```
请注意,以下所有表格将使用相同的间距。但是您可以使用\renewcommand{\arraystretch}{1}
答案 1 :(得分:0)
在Martin的回答中,您还可以像这样将标记\ renewcommand {\ arraystretch} {2}放入save_kable函数中(以防您像我一样只想导出pdf表而不使用R Markdown):
save_kable(tableName, file="FileName.pdf", latex_header_includes = c("\\renewcommand{\\arraystretch}{2}"))
答案 2 :(得分:0)
基于CL的答案here,您还可以将kable
的{{1}}参数与'\ addlinespace'(或Latex'linesep
的类似参数)一起使用。像这样:
booktabs
您的示例:
linesep = "\\addlinespace"
我认为kable(head(iris, 5),
"latex",
caption = 'Iris Table',
booktabs = T,
linesep = "\\addlinespace") %>%
kable_styling(latex_options = "striped")
会更改整个表的行距,包括标题,注释等,而\arraystretch
仅控制表主体的行距。这样,您也不必在Rmarkdown文档中引入自定义的Latex代码。
答案 3 :(得分:0)
这只是 Martin Schmelzer 答案的补充(我是 stackoverflow 的新手,不允许发表评论)。问题是您可以在 chunck 中添加数组拉伸。当一个块中有多个表时就派上用场了。
```{r, echo=FALSE}
#array stretch increases row height
cat("\\renewcommand{\\arraystretch}{2} \n")
#This is the table
kable(head(iris, 5), caption = 'Iris Table',booktabs = TRUE) %>%
kable_styling(latex_options = "striped")
#array stretch sets row height back
cat("\\renewcommand{\\arraystretch}{1} \n")
kable(....another table in chunck that is unaffected...)
```