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

发布于 2024-12-05 18:36:28 字数 420 浏览 0 评论 0原文

摆动以下:

\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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

土豪我们做朋友吧 2024-12-12 18:36:28

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

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 to z in the code chunk, %\Sexpr{z} would print the value of z. Amusingly, \Sexpr{#z} will suppress the printing of the value of z.

I also tracked down this (rather old) discussion of this issue in a mailing list.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文