我在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中有这样的功能吗?
答案 0 :(得分:1)
如in an answer to a similar question,knitr
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...")
}