Ошибка kableExtra в Markdown при рендеринге в PDF? - PullRequest
2 голосов
/ 01 февраля 2020

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

R ошибка компиляции уценки: https://github.com/rstudio/bookdown/issues/440 https://community.rstudio.com/t/rendering-both-pdf-and-html-is-only-possible-interactively-not-via-script/19520/3 https://github.com/haozhu233/kableExtra/issues/301

Я получу доступ к пакетам из сценария:

library(tidyverse)
library(knitr)
library(rmarkdown)
library(tinytex)

Создайте Rmd-файл:

---
output: pdf_document 
---
{r, comment = NA, echo = FALSE, message = FALSE, warning = FALSE}

tibble(x = 1, y = 2, z = 3) %>%
    kable()

Визуализация Rmd -файл из скрипта, используя:

render('C:/Users/Rasmus/SO/Test.Rmd',
    output_file = "Test.pdf",
    output_format = 'pdf_document',
    output_dir = 'C:/Users/Rasmus/SO')

Это дает мне PDF-файл с таблицей. Но если я начну с запуска library(kableExtra) вместе с другими, а затем приму процедуру рендеринга, я получу PDF с:

x
y
z
1
2
3

После запуска library(kableExtra) я попробовал процедуру рендеринга на следующий Rmd-файл:

---
output: pdf_document 
---
{r, comment = NA, echo = FALSE, message = FALSE, warning = FALSE}

tibble(x = 1, y = 2, z = 3) %>%
    kable() %>%
    kable_styling(latex_options = 'scale_down')

Возвращает:

output file: Test.knit.md

Error: Functions that produce HTML output found in document targeting latex output.
Please change the output type of this document to HTML. Alternatively, you can allow
HTML output in non-HTML formats by adding this option to the YAML front-matter of
your rmarkdown file:

  always_allow_html: true

Note however that the HTML output will not be visible in non-HTML formats.

Что мешает мне использовать kableExtra?

1 Ответ

2 голосов
/ 01 февраля 2020

Вам необходимо явно добавить format="latex" в функцию kable (например, kable(format="latex")) при использовании kableExtra с kable для вывода PDF. См. kableExtra введение для получения дополнительной информации и примеров.

kableExtra Виньетка вывода PDF означает, что вам не нужно устанавливать format="latex" для версии 0.9.0 или более поздней, но я обнаружил (в настоящее время использую версию 1.1.0), что мне все еще нужно установить format="latex", или я получаю html вывод по умолчанию.

Вы можете запустить options(knitr.table.format = "latex") в начале любого скрипта или Rmarkdown документа, чтобы сделать латекс выводом по умолчанию для этого сеанса R и избежать необходимости добавлять format="latex" к каждой отдельной таблице kable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...