r - 从 rmarkdown::render as variable 捕获 'output_format'

标签 r knitr r-markdown

我正在将 RStudio 与 knitr 一起使用等,以制作可重复的报告,并希望为 Word 文档和 PDF 提供最佳版本 - 我更喜欢使用 LaTeX,但最终用户往往更喜欢可编辑 Word 文档的灵活性。

我写了一个 ifelse声明基本上说'如果这是render编辑成word文档,创建kable Markdown 表,否则创建 kable LaTeX 中的表格,然后进行操作以使表格看起来更好(阴影行等)'。

我不明白 rmarkdown::render ing 过程用于捕获 output_format ,但是有没有办法将它存储为变量并在 ifelse 中使用陈述?

一个最小的例子是将此代码保存为 test.Rmd :

format <- output_format #(somehow captured as a variable)

printTable <- function(data = df, format = format){

if (format %in% 'pdf_document') {

    # create nice latex table

} else {

    # create markdown table

}
}

然后,在运行此代码时:
rmarkdown::render(input = "test.Rmd", output_format = c("word_document", "pdf_document"))

不同版本的报告将包含正确的表格。

最佳答案

您可以通过 knitr::opts_knit$get("rmarkdown.pandoc.to") 访问输出格式.这将返回一个具有目标输出格式的字符串。下面是一个例子:

---
title: "Untitled"
output: html_document
---

```{r}
library(knitr)
opts_knit$get("rmarkdown.pandoc.to")
```

这将为 html_document 返回“html”,为 word_document 返回“docx”,为 pdf_document 返回“latex”。

关于r - 从 rmarkdown::render as variable 捕获 'output_format',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29881473/

相关文章:

r - 在 rmarkdown ioslides 中缺少 kableExtra 格式

r - 自定义R markdown pdf文档

r - 如何消除用DiagrammeR制作的流程图下方的空白并编织成pdf?

r - 如何在 R Markdown 中嵌入本地视频?

R Markdown : datable within collapsible section

r - 如何在 rmarkdown 文档中的 Latex 表输出中对回归系数进行小数对齐

r - 我如何 'efficiently' 在大型文本语料库中用另一个(成对)替换字符串向量

r - dplyr::if_else - 检查条件并插入 NA 作为评估的一部分

r - 如何在gganimate中显示y轴的当前值?

rpivotTable:删除不必要的聚合器