我正在用kableExtra()中的表创建一个Rmarkdown PDF报告。有没有一种方法可以根据cell_spec()中设置的条件格式来更改脚注的文本颜色?
我尝试使用paste0(),请参见下面的最低要求(来自kableExtra)。我无法更改PDF输出,并且请求是针对客户端的。
我正在运行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}”时,它会粘贴此文本。我知道粘贴乳胶代码存在问题,但是我无法弄清楚。
答案 0 :(得分:1)
使用四个反斜杠和选项escape = F
:
footnote("MPG > 20 is displayed in \\\\textcolor{red}{red}", escape = F)
如果没有escape = F
,对LaTeX具有特殊含义的字符(如\ & % { }
)将被转义,结果是输出文件中包含字符本身。
在这里,我们手动转义了反斜杠(在生成的tex文档中只有一个)。