为什么 Sweave 会对已注释掉的 LaTeX 代码抛出错误?
摆动以下:
\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}
被注释掉,为什么会导致错误?
Sweaving the following:
\documentclass{article}
\begin{document}
<<>>=
x <- 5
y <- 10
@
The value of $z$ is \\
%\Sexpr{z}
\end{document}
generates the following error:
Error in eval(expr, envir, enclos) : object 'z' not found
Calls: <Anonymous> -> Sweave -> <Anonymous> -> eval -> eval
Execution halted
If \Sexpr{z}
is commented out, why is it causing an error?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个答案是一个占位符,记录我自己学到的东西。我很乐意接受更好的...
Sweave 不解析 LaTeX,因此它会评估任何
\Sexpr
,即使它被注释掉了。因此,如果您为代码块中的z
分配了一个值,%\Sexpr{z}
将打印z
的值。有趣的是,\Sexpr{#z}
将禁止打印z
的值。我还追踪到 这个(相当旧的)邮件列表中对此问题的讨论。
This answer is a placeholder to record what I learned on my own. I will gladly accept a better one...
Sweave doesn't parse the LaTeX, so it will evaluate any
\Sexpr
, even if it is commented out. So if you assigned a value toz
in the code chunk,%\Sexpr{z}
would print the value ofz
. Amusingly,\Sexpr{#z}
will suppress the printing of the value ofz
.I also tracked down this (rather old) discussion of this issue in a mailing list.