为什么Sweave会在已注释掉的LaTeX代码上抛出错误?

时间:2011-09-21 01:16:41

标签: r sweave

扫描以下内容:

\documentclass{article}
\begin{document}
<<>>=
x <- 5
y <- 10
@
The value of $z$ is \\
%\Sexpr{z}
\end{document}

生成以下错误:

Error in eval(expr, envir, enclos) : object 'z' not found
Calls: <Anonymous> -> Sweave -> <Anonymous> -> eval -> eval
Execution halted

如果\Sexpr{z}被注释掉,为什么会导致错误?

1 个答案:

答案 0 :(得分:6)

这个答案是一个占位符来记录我自己学到的东西。我很乐意接受一个更好的...

Sweave不会解析LaTeX,因此它会评估任何\Sexpr,即使它被注释掉了。因此,如果您在代码块中为z分配了值,%\Sexpr{z}将打印z的值。有趣的是,\Sexpr{#z}会禁止打印z的值。

我还在邮件列表中跟踪了this(相当旧)对此问题的讨论。