使用 kableExtra 增加 line/row 间距
Increase line/row spacing with kableExtra
对于 r-markdown 或 bookdown 中的 pdf 输出,有没有办法使用 kableExtra 增加行间距?
library(knitr)
library(kableExtra)
kable(
head(iris, 5), caption = 'Iris Table',
booktabs = TRUE) %>%
kable_styling(latex_options = "striped")
你可以使用 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}
重置它
除了 Martin 的回答之外,您还可以像这样将标签 \renewcommand{\arraystretch}{2} 放入 save_kable 函数中(以防您像我一样只想导出 pdf table 不使用 R Markdown):
save_kable(tableName, file="FileName.pdf", latex_header_includes = c("\renewcommand{\arraystretch}{2}"))
基于 CL. 的回答 here,您还可以使用 kable
's linesep
argument with '\addlinespace'(或来自 Latex'booktabs
的类似参数)。像这样:
linesep = "\addlinespace"
你的例子:
kable(head(iris, 5),
"latex",
caption = 'Iris Table',
booktabs = T,
linesep = "\addlinespace") %>%
kable_styling(latex_options = "striped")
我认为 \arraystretch
改变整个 table 的行间距,包括 headers、注释等,而 linesep
只控制 [=29] 的行间距=] body。这样您也不必在 Rmarkdown 文档中引入自定义 Latex 代码。
这只是对 Martin Schmelzer 回答的补充(我是 Whosebug 的新手,不允许发表评论)。事情是你可以在 chunck 中添加数组 stretch 。当一个chunk中有多个表时就派上用场了。
```{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...)
```
对于 r-markdown 或 bookdown 中的 pdf 输出,有没有办法使用 kableExtra 增加行间距?
library(knitr)
library(kableExtra)
kable(
head(iris, 5), caption = 'Iris Table',
booktabs = TRUE) %>%
kable_styling(latex_options = "striped")
你可以使用 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}
除了 Martin 的回答之外,您还可以像这样将标签 \renewcommand{\arraystretch}{2} 放入 save_kable 函数中(以防您像我一样只想导出 pdf table 不使用 R Markdown):
save_kable(tableName, file="FileName.pdf", latex_header_includes = c("\renewcommand{\arraystretch}{2}"))
基于 CL. 的回答 here,您还可以使用 kable
's linesep
argument with '\addlinespace'(或来自 Latex'booktabs
的类似参数)。像这样:
linesep = "\addlinespace"
你的例子:
kable(head(iris, 5),
"latex",
caption = 'Iris Table',
booktabs = T,
linesep = "\addlinespace") %>%
kable_styling(latex_options = "striped")
我认为 \arraystretch
改变整个 table 的行间距,包括 headers、注释等,而 linesep
只控制 [=29] 的行间距=] body。这样您也不必在 Rmarkdown 文档中引入自定义 Latex 代码。
这只是对 Martin Schmelzer 回答的补充(我是 Whosebug 的新手,不允许发表评论)。事情是你可以在 chunck 中添加数组 stretch 。当一个chunk中有多个表时就派上用场了。
```{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...)
```