我正在使用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")
发布于 2019-02-18 00:55:30
这有点棘手,因为在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的例子,可能会对你有所帮助。
编辑后添加:kable_styling
的table.envir
参数是一个非常新的参数;您应该确保安装了最新版本的kableExtra
。
https://stackoverflow.com/questions/54720299
复制相似问题