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

时间:2015-03-28 00:48:03

标签: r knitr

我在knitr中使用code externalization。我有一个包含代码的myRcode.R文件,我有两种我想要生成的报告。一个乳胶文件(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中有这样的功能吗?

1 个答案:

答案 0 :(得分:1)

in an answer to a similar questionknitr 1.18 introduced所述,以下功能

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...")
}