使用kableExtra增加行/列间距

col17t5w  于 2022-12-06  发布在  其他
关注(0)|答案(5)|浏览(170)

有没有办法在r-markdown或bookdown中使用kableExtra增加pdf输出的行距?

library(knitr)
library(kableExtra)
kable(
  head(iris, 5), caption = 'Iris Table',
  booktabs = TRUE) %>%
  kable_styling(latex_options = "striped")

dbf7pr2w

dbf7pr2w1#

您可以使用LaTeX命令\arraystretch来执行此操作:

---
output: pdf_document
---

```{r setup, include=FALSE}
library(kableExtra)
library(tidyverse)

\renewcommand{\arraystretch}{2}

library(knitr)
library(kableExtra)
kable(head(iris, 5), caption = 'Iris Table',booktabs = TRUE) %>%
  kable_styling(latex_options = "striped")

请注意,以下所有表格将使用相同的间距。

![](https://i.stack.imgur.com/miGOh.png)
tvmytwxo

tvmytwxo2#

在CL.的答案here的基础上,你也可以使用kablelinesep参数和'\addlinespace'(或者来自Latex的booktabs的类似参数)。
linesep = "\\addlinespace"
您的示例:

kable(head(iris, 5),
  "latex",
  caption = 'Iris Table',
  booktabs = T,
  linesep = "\\addlinespace") %>%
  kable_styling(latex_options = "striped")

我认为\arraystretch改变了整个表格的行距,包括标题、注解等,而linesep只控制表格体的行距。这样你也不必在Rmarkdown文档中引入自定义的Latex代码。

uklbhaso

uklbhaso3#

除了Martin的答案之外,您还可以将标记\renewcommand{\arraystretch}{2}放入保存_kable函数中,如下所示(如果您和我一样,只想在不使用R Markdown的情况下导出pdf表格):

save_kable(tableName, file="FileName.pdf", latex_header_includes = c("\\renewcommand{\\arraystretch}{2}"))
pgccezyw

pgccezyw4#

这只是对Martin Schmelzer答案的补充(我是stackoverflow的新手,不允许发表评论)。问题是你可以在chunck中添加数组拉伸。当一个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...)
vh0rcniy

vh0rcniy5#

padding参数可以做到这一点

row_spec(1:nrow(yourdata),
           extra_css = "padding: 10px")

相关问题