Создать таблицу с индексами и цветными строками, используя Bookdown - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь сгенерировать PDF-файл из сценария Bookdown, который содержит сложную таблицу.В таблицу включены некоторые имена параметров, в которых есть подписки.Я также хотел бы покрасить некоторые строки.Пример скрипта показан ниже:

---
title: "Example problem"
author: "Frida Gomam"
site: bookdown::bookdown_site
documentclass: book
output:
  #bookdown::gitbook: default
  bookdown::pdf_book: default
always_allow_html: yes  
---
This is a test example for the problem.

```{r}
library(magrittr)
library(knitr)
library(kableExtra)
df <- data.frame(Parameter = c("NO~x~ emissions", "SO~2~ emissions", "CO~2~     emissions"), "Value mg/Nm^3^" = c(800,900,1000),check.names=F)

knitr::kable(df,escape = F, caption = 'Example table!',  booktabs = TRUE, format = "latex") %>% #
  row_spec(0, bold = T, color = "white", background = "#045a8d") %>%
  row_spec(c(2), bold = T, color = "white", background = "#3690c0")
```
blah blah

Я могу запустить скрипт, используя формат kable как 'format = "html"', и результат выглядит хорошо, включая цветные строки и индексы.Когда я изменяю формат на Latex, подписи не отображаются должным образом в созданном PDF.

Я попытался добавить аргумент escape = F в kable, но процесс сборки завершился неудачей.

Quitting from lines 14-23 (_main.Rmd) 
Error in kable_latex(x = c("$NO_{x}$ emissions", "SO2 emissions", "CO2 emissions",  : 
  unused argument (example = FALSE)
Calls: <Anonymous> ... eval -> %>% -> eval -> eval -> <Anonymous> -> do.call

Может кто-нибудь помочь решить эту проблему?

1 Ответ

0 голосов
/ 06 июня 2018

Для меня это работает, если я использую (экранированный) синтаксис LaTeX:

---
title: "Example problem"
author: "Frida Gomam"
site: bookdown::bookdown_site
documentclass: book
output:
  bookdown::pdf_book: default
  #bookdown::gitbook: default
always_allow_html: yes  
---
This is a test example for the problem.

```{r}
library(magrittr)
library(knitr)
library(kableExtra)
df <- data.frame(Parameter = c("NO\\textsubscript{x} emissions", "SO\\textsubscript{2} emissions", "CO\\textsubscript{2}     emissions"),
                 "Value mg/Nm\\textsuperscript{3}" = c(800,900,1000),
                 check.names = F)

knitr::kable(df,escape = F, caption = 'Example table!',  booktabs = TRUE, format = "latex") %>% #
  row_spec(0, bold = T, color = "white", background = "#045a8d") %>%
  row_spec(c(2), bold = T, color = "white", background = "#3690c0")
```
blah blah
...