kableExtra перестает оценивать латексный код в таблице - PullRequest
0 голосов
/ 09 октября 2018

У меня есть таблица R Markdown с этой \rule{1cm}{0.4pt} командой LaTeX в каждой ячейке одного столбца.Таблицы форматируются просто отлично с kable, если я не включаю пакет kableExtra.Если я включу kabelExtra,, команда LaTeX больше не будет интерпретироваться.Результаты показаны ниже, без и с 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 голосов
/ 09 октября 2018

При использовании 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)
```
...