kableExtra 在 table 中停止评估乳胶代码

kableExtra stops evaluating latex code in table

我在一列的每个单元格中有一个 R Markdown table 和这个 \rule{1cm}{0.4pt} LaTeX 命令。如果我不包含 kableExtra 包,table 格式就可以与 kable 一起使用。如果我确实包含 kabelExtra,,则不再解释 LaTeX 命令。结果如下所示,不使用和使用 kableExtra。没有进行其他更改。最上面的例子是我想要的结果。

我检查了 .tex 输出。 kableExtra 似乎将 LaTeX 命令格式化为文字文本:\textbackslash{}rule\{1cm\}\{0.4pt\} 而不是上面显示的命令。

我想将 kableExtra 用于设置列宽等其他功能,但我需要它来解释 LaTeX 命令。我没有在手册或小插图中找到任何似乎解决包含的 LateX 命令的内容。我错过了什么吗?

编辑

我尝试在使用 kableExtra 时将 format = "latex" 添加到 kable 调用,但仍然出现不希望的结果。

MWE

---
title: "Without kableExtra"
output: 
  pdf_document: 
    keep_tex: TRUE
---

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

```{r}
library(tibble)
library(knitr)
#library(kableExtra)

a = seq(1:3)
b = seq(4:6)
tab <- as.tibble(cbind(a,b))
tab <- add_column(tab, c = "\rule{1cm}{0.4pt}")
```

```{r}
kable(tab,
      booktabs = TRUE, 
      longtable = TRUE)
```

结果

使用 kableExtra 时,您应该将参数 escape = FALSE 添加到 kable() 调用中。 escape 参数允许您在 table.

中使用 LaTeX 命令

以下作品:

---
title: "Without kableExtra"
output: 
  pdf_document: 
    keep_tex: TRUE
---

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

```{r}
library(tibble)
library(knitr)
library(kableExtra)

a = seq(1:3)
b = seq(4:6)
tab <- as.tibble(cbind(a,b))
tab <- add_column(tab, c = "\rule{1cm}{0.4pt}")
```

```{r}
kable(tab,
      booktabs = TRUE, 
      longtable = TRUE,
      escape = FALSE)
```