在knitr中抑制错误消息

时间:2014-07-27 06:18:04

标签: r latex knitr sweave

我想知道如何在knitr中抑制错误消息。我的MWE如下:

\documentclass{article} 
\begin{document}
<< Test >>=
1:10
X
@ 
\end{document}

被修改

对象X不存在。我想在我的代码块中显示X并想要评估它,即使这会引发错误。但是,我不希望在.tex文档中显示任何错误,因为我们可以通过设置warning=FALSE来抑制警告。

1 个答案:

答案 0 :(得分:6)

错误有自己的专用钩子函数,存储在knit_hooks$get()访问的环境中。在这里,您的启示是这些功能的完整列表:

names(knit_hooks$get())
# [1] "source"   "output"   "warning"  "message"  "error"    "plot"    
# [7] "inline"   "chunk"    "document"

要禁止显示警告,只需使用带有所需参数的函数覆盖默认错误挂钩函数,但不会返回任何内容。

\documentclass{article}
\begin{document}

<<setup, include=FALSE, cache=FALSE>>=
muffleError <- function(x,options) {}
knit_hooks$set(error=muffleError)
@

<<Test>>=
1:10
X
@
\end{document}

在编译时,产生以下内容

enter image description here