【问题标题】:RMarkdown - different font types in table using kable?RMarkdown - 使用 kable 的表格中的不同字体类型?
【发布时间】:2019-07-10 05:52:13
【问题描述】:

我正在使用 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")

【问题讨论】:

  • 你想要什么样的改变?
  • 以将字体更改为 Segoe UI 为例。这可能吗?

标签: r-markdown kable kableextra


【解决方案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 上的示例,可能会有所帮助。

编辑添加:kable_stylingtable.envir 参数是一个相当新的添加;你应该确保你安装了最新版本的kableExtra

【讨论】:

  • table.envir 参数似乎不再出现在最新版本的kableExtra 中。你现在如何回答这个问题?
  • @MarkDavies:有一个名为latex_table_env 的参数可能会做同样的事情。如果没有,您应该发布一个新问题。
猜你喜欢
  • 2019-08-12
  • 1970-01-01
  • 2019-07-07
  • 2019-04-24
  • 2016-04-03
  • 2017-06-13
  • 1970-01-01
  • 2021-08-10
  • 1970-01-01
相关资源
最近更新 更多