获取编织在knitr中的文档类型

获取编织在knitr中的文档类型,r,knitr,R,Knitr,我正在使用knitr。我有一个包含代码的myRcode.R文件,我想生成两种类型的报告。一个latex文件(myLatexFile.RNW)和一个html文件(myHtmlFile.RMD)。两者都在调用myRcode.R文件中的块。我希望根据调用区块的扩展名获得不同的输出 现在,我的解决方案是这样的: library(stringr) if (str_sub(current_input(),-3,-1) == "Rmd") { cat("HTML file...") } else if (

我正在使用
knitr
。我有一个包含代码的
myRcode.R
文件,我想生成两种类型的报告。一个latex文件(
myLatexFile.RNW
)和一个html文件(
myHtmlFile.RMD
)。两者都在调用
myRcode.R
文件中的块。我希望根据调用区块的扩展名获得不同的输出

现在,我的解决方案是这样的:

library(stringr)
if (str_sub(current_input(),-3,-1) == "Rmd") {
  cat("HTML file...")
} else if (str_sub(current_input(),-3,-1) == "Rnw") 
  cat("LATEX file...")
但是应该有一个本机函数来获取knitr中的文件类型。我找不到它。knitr中是否有这样的功能?

如前所述,
knitr
1.18以下功能

knitr::is_html_output()
knitr::is_latex_output()
在编译时检查输出是HTML还是LaTeX,并返回TRUE/FALSE。类似于以下内容的操作将起作用:

if (knitr::is_html_output()) {
  cat("HTML file...")
} else if (knitr::is_latex_output()) { 
  cat("LATEX file...")
}

我认为这是有用的:理论上,我想要的是
knitr::opts_knit$get(“rmarkdown.pandoc.to”)
。但是当我编织一个latex文档时,它返回
NULL
。但对于html文件,它可以工作。可能是