美元符号导致彩色行出错

Dollar sign causes error in colored rows

我有一个 table,我想用 R Markdown 将其放入 pdf 中。

dt <- c(name = c("a", "b", "c"),
        money = c("", "", "0")

dt %>%
kable(format = "latex") %>%
row_spec(1, background = "blue")

以上代码不起作用,产生以下错误:

Error in stri_replace_first_regex(string, pattern, fix_replacement(replacement), : Trying to access the index that is out of bounds. (U_INDEX_OUTOFBOUNDS_ERROR) Calls: ... row_spec_latex -> str_replace -> stri_replace_first_regex ->. Call

如果我删除 row_spec 部分,它会起作用。如果我删除美元符号,它会起作用。如果我将行更改为第 0 行而不是第 1 行,它就可以工作。但我无法更改其中带有美元符号的行的颜色。我知道 $ 是乳胶中的保留字符,但作为实验,我查找了所有保留字符并尝试用它们代替美元符号,一切正常。美元符号是唯一给我带来麻烦的符号。

有什么办法可以做到这一点,还是我注定要有一个鲜明的白色table?

我们可以使用乳胶代码 \textdollar 作为美元符号并将其转义。额外使用 kable() 选项 escape=FALSE.

---
title: "Untitled"
author: "C.garner"
date: "2 Februar 2018"
output: 
  pdf_document: 
    keep_tex: yes
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r table1, message=FALSE}
library(dplyr)
library(kableExtra)
library(knitr)
dt <- c(name = c("a", "b", "c"),
        money = c("\textdollar 1", "\textdollar 10", "\textdollar 100"))

dt %>%
kable(format = "latex", escape = FALSE) %>%
row_spec(4, background = "blue")
```