如何更改 RMarkdown PDF 中 kableExtra()-脚注的文本颜色?

How to change textcolor for kableExtra()-footnote in RMarkdown PDF?

我正在用 kableExtra() 中的表格创建一个 Rmarkdown PDF 报告。有没有办法根据 cell_spec()?

中设置的条件格式更改脚注的文本颜色

我尝试使用 paste0(),请参阅下面的最小 reprex(来自 kableExtra)。我无法更改 PDF 输出,请求是针对客户的。

Im 运行 R 版本 3.5.1 (2018-07-02),平台:x86_64-apple-darwin15.6.0(64 位),运行 下:macOS 10.14.2和 kableExtra_0.9.0.

---
title: "Minimal Reprex"
output: pdf_document
---

```{r setup, include=FALSE}

knitr::opts_chunk$set(echo = TRUE)

# packages
library(dplyr)
library(kableExtra)
```


```{r reprex}
mtcars[1:10, 1:2] %>%
   mutate(
    car = row.names(.),
    # You don't need format = "latex" if you have ever defined 
      options(knitr.table.format)
    mpg = cell_spec(mpg, "latex", color = ifelse(mpg > 20, "red", 
     "black")),
    cyl = cell_spec(cyl, "latex", color = "white", align = "c", 
     angle = 45,
    background = factor(cyl, c(4, 6, 8),
    c("#666666", "#999999", "#BBBBBB")))) %>%
    select(car, mpg, cyl) %>%
    kable("latex", escape = F, booktabs = T, linesep = "") %>% 
    footnote(paste0("MPG > 20 is displayed in", "\textcolor{red} 
    {red}"))

  ```

我希望 "red" 这个词是红色的,因为我得到“\textcolor{red}{red}” - 它只是粘贴了这段文字。我知道粘贴乳胶代码有问题,但我无法弄明白。

使用四个反斜杠和选项 escape = F:

footnote("MPG > 20 is displayed in \\textcolor{red}{red}", escape = F)

如果没有 escape = F,对 LaTeX 具有特殊意义的字符(如 \ & % { })将被转义,结果是您在输出文档中包含该字符本身。 这里我们手动转义反斜杠(在生成的 tex 文档中将只有一个)。