我正在使用RMarkdown生成pdf文档。是否可以使用kable_styling更改表中的字体类型?如果没有,您可以建议其他任何包装吗?
library(dplyr)
library(kableExtra)
kable(mtcars, align = "c", booktabs = TRUE) %>%
kable_styling(font_size = 12) %>%
row_spec(0, bold = T, color = "white", background = "gray")
答案 0 :(得分:1)
这有点棘手,因为在LaTeX中更改字体是棘手的。我没有Segoe UI字体(那是Windows字体,对吗?),但是在MacOS中使用不同的字体更改后,这对我有用。
首先,您需要使用xelatex
LaTeX引擎。 (您可能可以使用pdflatex
来执行此操作,但是命令会有所不同,但我不知道。)
第二,您需要定义一个命令以切换到所需的字体。在下面的代码中,我将其命名为\comicfont
,并将其设置为切换到Comic Sans MS。
第三和第四,您需要定义环境以生成这种字体的表。您需要两种环境,具体取决于您是要对表进行内联(ctable
)还是对标题进行浮动(capctable
)。
然后,当您希望表格采用新字体时,请将table.envir
设置为适当环境的名称。内联表在kable_styling()
中设置,浮动表在kable
中设置。这是一个对我有用的示例:
---
title: 'Untitled'
output:
pdf_document:
latex_engine: xelatex
header-includes:
- \newfontfamily\comicfont[Path=/Library/Fonts/]{Comic Sans MS}
- \newenvironment{ctable}{\comicfont }{}
- \newenvironment{capctable}[1][t]{\begin{table}[#1]\centering\comicfont}{\end{table}}
---
```{r}
library(knitr)
library(kableExtra)
kable(head(mtcars), booktabs=TRUE, align = "c") %>%
kable_styling(table.envir="ctable", font_size=12) %>%
row_spec(0, bold = T, color = "white", background = "gray")
kable(head(mtcars), booktabs=TRUE, align = "c",
caption = "This table floats", table.envir = "capctable") %>%
kable_styling(font_size=12) %>%
row_spec(0, bold = T, color = "white", background = "gray")
```
这篇帖子https://tex.stackexchange.com/a/63975提供了一个在Windows上可能有用的示例。
编辑后添加:table.envir
的{{1}}参数是一个相当新的添加;您应该确保已安装最新版本的kable_styling
。