TTS*_*TTS 5 pdf r knitr r-markdown kableextra
我有一些 Rmarkdown 文档我正在尝试knit/render作为PDF文件。我想要render正常工作,因为我将在具有多个 Rmd 文件以及许多其他进程(例如数据抓取和处理)的脚本中运行它。
使用该knit按钮会产生所需的结果。如果我使用rmarkdown::render表格布局就会变得古怪(参见示例)。这是重现我的问题的最小示例。
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.')
```
Run Code Online (Sandbox Code Playgroud)
使成为
rmarkdown::render(input = 'test.Rmd', output_format = "pdf_document")
Run Code Online (Sandbox Code Playgroud)
版本
R version 4.0.0 (2020-04-24)
Rmarkdown v 1.1
kableExtra v 1.1.0
Run Code Online (Sandbox Code Playgroud)
期望的结果:获得render与按钮相同的输出knit,特别是表格格式。任何帮助表示赞赏。如果有任何其他信息有帮助,请告诉我。干杯!
截图
新的奇怪行为
通过退出并重新启动 RStudio 来重新启动 R 会话后,我能够render以所需的格式成功运行。render返回错误消息后立即尝试再次运行:! LaTeX Error: Environment landscape undefined.
但是,如果我使用.rs.restartR(),render会产生错误的格式。之后运行render会产生相同的结果:生成格式不正确的 PDF。
注意:我今天早上重新安装了tinytex,以确保这不是问题。
小智 2
尝试在 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
---
Run Code Online (Sandbox Code Playgroud)