r - Knit & rmarkdown::render() 产生不同的结果(kable 格式;PDF)
问题描述
我有一些 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.')
```
使成为
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
,特别是表格格式。任何帮助表示赞赏。请让我知道是否有任何其他信息会有所帮助。干杯!
截图
新的奇怪行为
通过退出并重新启动 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
---
推荐阅读
- php - Laravel 队列,当它存在时作业不存在
- flutter - 颤振本地通知默认声音不起作用
- ios - swift中的三重问号(“???”)运算符?
- javascript - 使用 Javascript 函数访问 JSON 元素以动态加载内容
- javascript - 如何制作下拉类型菜单?
- android - 使用 wikipedia api 获取我的 android 应用程序的随机文章
- linux - 以非root用户身份在linux中列出目录内容
- flutter - 颤动多行文本字段光标移动到键盘下方
- css - CSS选择具有可变div ID的二等孩子
- jquery - 如何根据表格操作列中的用户角色使编辑和删除按钮可见或不可见?