4

我有一个小的 Rnw 文件。使用 knitr 编译时,它会在 pdf 中显示导入注释。如何删除这些评论?这是文件a.Rnw:

\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}
Hi, this is an example!
<<setup, echo=FALSE, cache=TRUE>>==
library(earth, warn.conflicts=FALSE)
a <- rnorm(100); b<- 0.05*rnorm(100) - .2*a
model <- lm(a~b)
plot(model)
@
\end{document}

当我用 knitr 编译时

$ Rscript -e "library(knitr); knit('a.Rnw')"

我在 tex 文件中得到了这个无关的位:

\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe}
{\ttfamily\noindent\itshape\color{messagecolor}{\#\# Loading required package: plotmo\\\#\# Loading required package: plotrix}}\end{kframe} 

显示为 在此处输入图像描述

这是正常的吗?如何删除这些评论?

4

1 回答 1

6

最简单的做法是放入message=FALSE您的块选项,无论是在本地为该块还是通过library(knitr); opts_chunk$set(message=FALSE)靠近文档的头部。

这比@rawr 在上面的评论中链接到的问题要简单一些,因为它指的是一个行为不良的包,它使用cat()而不是message()它的启动消息。 message=FALSE将抑制该块产生的所有消息;如果你想更精确一点

suppressPackageStartupMessages(library(earth))

应该可以,但我发现这message=FALSE通常是无害的,而且看起来更漂亮(例如,如果你想要的话echo=TRUE)。

于 2014-05-29T17:41:30.317 回答