【问题标题】:Why does Sweave throw an error on LaTeX code that has been commented out?为什么 Sweave 会在已注释掉的 LaTeX 代码上抛出错误?
【发布时间】:2011-09-21 01:16:40
【问题描述】:

编织以下内容:

\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}被注释掉,为什么会报错?

【问题讨论】:

    标签: r sweave


    【解决方案1】:

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

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

    我还在邮件列表中找到了this(相当老的)对此问题的讨论。

    【讨论】:

    • % 是 Tex 的注释字符,而不是 Sweave。 # 是 R 的注释字符,但只能在 Sweave 环境中解析的表达式中被理解,即在 &lt;&lt;&gt;&gt;== ... @\Sexpr{}
    猜你喜欢
    • 2017-09-21
    • 1970-01-01
    • 2021-09-17
    • 2023-02-03
    • 1970-01-01
    • 2019-05-13
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多