如何检测当前正在执行的 knitr 中的输出格式?

问题描述 投票:0回答:2

我有一个生成表格的函数。我希望人们能够在 RMarkdown/Quarto 文档中使用此代码。我还想美化这张表,这将有助于了解该表的标题是 HTML、PDF 还是 Word。

有没有办法用代码来检测要构建什么样的文档?

我知道可以使用代码来检测一个人是否在 knitr 中,根据this question.

我也知道

knitr::opts_knit$get("out.format")
,但这只会返回 HTML、PDF 和 Word 输出的“降价”,至少对于标准 RMarkdown 或 Quarto 用法是这样。

r r-markdown knitr quarto
2个回答
0
投票

在header中,“---”之间有一个叫做“output:”的东西,在那里你可以知道它!


0
投票

尝试使用

knitr::is_latex_output
knitr::is_html_output()

test.qmd

---
title: "Output Format"
format: pdf
---

```{r}
library(knitr)

if(is_latex_output()) {
  
  print("Output format is pdf")
  # and other codes intended for pdf output

} else if(is_html_output()) {
  
  print("Output format is html")
  # and other codes intended for html output
  
} else {
  
  print("Output format is docx")
  # and other codes intended for word output
}
```

您可能还想查看 Quarto Docs 中的 Conditional Content

© www.soinside.com 2019 - 2024. All rights reserved.