【问题标题】:kableExtra stops evaluating latex code in tablekableExtra 停止评估表中的乳胶代码
【发布时间】:2018-10-09 14:22:14
【问题描述】:

我有一列的每个单元格中都有一个带有 \rule{1cm}{0.4pt} LaTeX 命令的 R Markdown 表。如果我不包含kableExtra 包,则表格格式与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)
```

结果

【问题讨论】:

    标签: r r-markdown kable kableextra


    【解决方案1】:

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

    【讨论】:

    • 我认为我必须遗漏一些东西。我正在寻找一个影响整个表格的选项,而不是特定的单元格。如果我能在不做任何假设的情况下度过一生!
    猜你喜欢
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多