RMarkdown - table 中使用 kable 或 huxtable 的不同字体类型,输出为 pdf?

RMarkdown - different font types in table using kable or huxtable, output to pdf?

使用 huxtable,为不同的 cells/rows 使用不同的字体输出到 html 是轻而易举的事。 pdf不是那么多。 这不是一个新问题,而是一个特定版本的 Change font of Kable in Rmarkdown pdf

我已经使用 给出的答案从 rmarkdown(在我的 windows 电脑上)创建下图中的输出。请注意,'environment' 代码将更改 table(整个 table)的字体,但块后的文本使用为 table 指定的字体。 解决这个问题的建议? 此外,我无法让浮动示例在我的计算机上运行,​​这就是它被注释掉的原因。 我喜欢 huxtable,但还没有在网络上看到为 table(与主要字体不同)选择的字体示例。如果绝对必要,可以探索其他 table 软件包。

    ---
title: "Reprex selecting font for kable table output to pdf"
output: 
  pdf_document:
    latex_engine: xelatex
header-includes:
  \usepackage{fontspec}
  \setmainfont[Path=C:/windows/fonts/]{SHOWG.TTF}
  \newfontfamily\arialfont[Path=c:/windows/fonts/]{ARIAL}
  \newenvironment{ctable}{\arialfont }{}
  \newenvironment{capctable}[1][t]{\begin{table}[#1]\centering\arialfont}{\end{table}}
---

here is some text

```{r}
library(knitr)
library(kableExtra)
#This works, though leaves the selected font active for text after the chunk
kable(head(mtcars), booktabs=TRUE, align = "c") %>% 
   kable_styling(table.envir="ctable", font_size=12) %>%
   row_spec(0, bold = T, color = "white", background = "gray")
#This next bit doesn't work
#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")
```


here is some more text

的确,这是在 huxtable 中执行此操作的方法(我是包所有者)。您需要安装 xelatex 和 LaTeX "fontspec" 包。您还需要 huxtable 版本 4.4.0 或更高版本,目前可在 github:

install_github("hughjonesd/huxtable")

在你的 rmarkdown header:

output:
   pdf_document:
     latex_engine: xelatex

在 R 代码块中:

library(dplyr)
library(huxtable)
options(huxtable.latex_use_fontspec = TRUE)

mtcars %>%
      head() %>%
      as_huxtable() %>% 
      set_font("Times New Roman")