【问题标题】:Dollar sign causes error in colored rows美元符号导致彩色行出现错误
【发布时间】:2018-07-13 10:50:03
【问题描述】:

我有一张表格,我正在尝试使用 R Markdown 将其放入 pdf 中。

dt <- c(name = c("a", "b", "c"),
        money = c("$1", "$10", "$100")

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

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

stri_replace_first_regex 中的错误(字符串、模式、 fix_replacement(replacement), : 试图访问出的索引 的界限。 (U_INDEX_OUTOFBOUNDS_ERROR) 调用:... row_spec_latex -> str_replace -> stri_replace_first_regex ->.打电话

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

有什么办法可以使这项工作发挥作用,还是我注定要拥有一张纯白的桌子?

【问题讨论】:

  • $ 有一个含义,您应该用反斜杠“转义”它。试试\$\\$ 甚至更多的反斜杠。
  • 我已经尝试过了,但并没有太大变化。我相信kable 会自动将 \ 放入以逃避它。
  • 也许使用 HTML 代码可以。尝试&amp;dollar;&amp;#36; 而不是$
  • 这两个只是显示为&amp;dollar;&amp;#36; 而没有更改为$
  • kable(format = "latex", escape = TRUE) 呢?

标签: r r-markdown kable kableextra


【解决方案1】:

我们可以使用乳胶代码\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")
```

【讨论】:

  • 问题不在于无法打印表格,而在于无法打印彩色。我需要能够为报表突出显示不同颜色的行。如问题所述,如果我删除 row_spec 行,表格打印得很好。
  • 在我的代码中我有dt &lt;- data.frame,而你使用dt &lt;- c。如果您将 row_spec 号码更改​​为 4,您将收到与我相同的错误。我可以突出显示其中没有 $ 的行,但没有。
猜你喜欢
  • 2016-02-09
  • 2019-05-31
  • 1970-01-01
  • 1970-01-01
  • 2021-07-18
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多