Как изменить цвет текста для kableExtra () - сноска в RMarkdown PDF? - PullRequest
0 голосов
/ 07 января 2019

Я создаю Rmarkdown PDF-отчет с таблицами в kableExtra (). Есть ли способ изменить цвет текста сносок в соответствии с условным форматированием, установленным в 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}"))

  ```

Я ожидаю, что слово "красный" будет окрашено в красный цвет, где, когда я получаю "\ textcolor {red} {red}" - оно просто вставляет этот текст. Я знаю, что есть проблема с вставкой латексного кода, но я не могу понять это.

1 Ответ

0 голосов
/ 07 января 2019

Используйте четыре обратной косой черты и параметр escape = F:

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

Без escape = F символы со специальным значением для LaTeX (например, \ & % { }) будут экранированы, и в результате вы получите сам символ в выходном документе. Здесь мы вручную экранируем обратную косую черту (в полученном текстовом документе будет только один).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...