Knit & rmarkdown::render() 产生不同的结果(kable 格式;PDF)

Knit & rmarkdown::render() producing different results (kable format; PDF)

我有一些 Rmarkdown 文档,我正在尝试 knit/render 作为 PDF 文件。我想让 render 正常工作,因为我要 运行 在一个脚本中使用多个 Rmd 文件以及许多其他进程(例如数据抓取和处理)。

使用 knit 按钮可产生所需的结果。如果我使用 rmarkdown::render,table 布局就会变得古怪(参见示例)。这是重现我的问题的最小示例。

RMD

---
title: "RmdTest"
author: "TTS"
date: '`r format(Sys.time(), "%d %B, %Y")`'
output: pdf_document
always_allow_html: true
---

```{r Rmd-Setup, include=FALSE}
options(knitr.kable.NA = '')

library(kableExtra)

# Dummy Data
df <- structure(list(Location = c("Farm", "Farm", "Farm", "Farm"), 
    Animal = c("dog", "cat", "cat", "cat"), Age = c("Adult", 
    "Juvenile", "Adult", "Total"), Abundance = c(27269L, 62308L, 
    34904L, 97212L)), row.names = c(NA, -4L), class = "data.frame")
```


## Why?

The 'Knit' button is producing the desired result, while running rmarkdown::render is producing a different (undesirable) result.

```{r Table-1, echo=FALSE}
kable(df, caption = 'This data does not make sense.', booktabs = TRUE) %>%
  kable_styling(latex_options = 'scale_down') %>%
  landscape() %>%
  add_footnote(label = 'Here is a footnote.') 
```

渲染

  rmarkdown::render(input = 'test.Rmd', output_format = "pdf_document")

版本

R version 4.0.0 (2020-04-24)
Rmarkdown v 1.1
kableExtra v 1.1.0

预期结果: 使 render 具有与 knit 按钮相同的输出,特别是 table 格式。任何帮助表示赞赏。如果有任何其他信息有帮助,请告诉我。干杯!

截图

新的奇怪行为

通过退出并重新启动 RStudio 重新启动我的 R 会话后,我能够 运行 render 成功,具有所需的格式。返回错误消息后立即再次尝试 运行 render! LaTeX Error: Environment landscape undefined.

但是,如果我使用 .rs.restartR()render 会产生不正确的格式。 运行 render 之后产生相同的结果:产生格式不正确的 PDF。

注意:我今天早上重新安装了 tinytex 以确保这不是问题所在。

尝试在 YAML 序言中包含正确的 Latex 包。我不确定为什么在 Rstudio UI 中选择 Knit 按钮和使用 render 函数的工作方式不同;但他们这样做了。我发现包含 Latex 软件包通常可以解决问题。

---
title: "RmdTest"
author: "TTS"
date: '`r format(Sys.time(), "%d %B, %Y")`'
header-includes:
- \usepackage{pdflscape}
- \usepackage{booktabs}
output: pdf_document
always_allow_html: true
---