kableExtra停止评估表中的乳胶代码

时间:2018-10-09 14:22:15

标签: r r-markdown kable kableextra

我在每一列的每个单元格中都有一个带有\rule{1cm}{0.4pt} LaTeX命令的R Markdown表。如果我不包括kable包,则表格格式可以使用kableExtra很好。如果我确实包含kabelExtra,,则不会解释LaTeX命令。不带kableExtra和带kableExtra的结果如下所示。没有其他更改。最好的例子是我想要的结果。

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

我想将kableExtra用于设置列宽等其他功能,但是我需要它来解释LaTeX命令。我在手册中没有发现任何似乎解决了LateX命令的问题。我想念什么吗?

编辑

在使用format = "latex"时,我尝试将kable添加到kableExtra调用中,但结果仍然不理想。

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)
```

结果

without and with kableExtra

1 个答案:

答案 0 :(得分:3)

使用kableExtra时,应将参数escape = FALSE添加到kable()调用中。 escape参数可让您在表中使用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)
```