2011-09-21 10 views
7

Sweaving aşağıdaki: dışarı yorumNeden Sweave, yorumlanmış olan LaTeX kodunda bir hata yapıyor?

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

\Sexpr{z}, niçin bir hataya neden olan:

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

aşağıdaki hata üretir?

cevap

6

Bu cevap, öğrendiklerimi kendi başıma kaydetmek için bir yer tutucudur. Memnuniyetle kabul edeceğim daha iyi bir ...

Sweave, LaTeX'i ayrıştırmıyor, dolayısıyla yorumlanmış olsa bile \Sexpr'u değerlendirecektir. Bu nedenle, kod yığınında z için bir değer atadıysanız, %\Sexpr{z}, z değerini yazdıracaktır. Eğlenceli bir şekilde, \Sexpr{#z}, z değerinin yazdırılmasını bastırır.

Ayrıca bu sorunun bir posta listesinde this (eski model) tartışmasını da izledim.

+2

'%', Tex için değil, Sweave için yorum karakteridir. '#, R için yorum karakteridir, ancak sadece Sweave ortamındaki ayrıştırılmış ifadelerde, yani' <<>> == ... @ 'veya' \ Sexpr {} – James