Peşinde \Sexpr
değerlendirmesini erteleme basit bir çözüm görmüyorum: Örneğin
Bu işleri kod parçalarının değerlendirilmesi, ancak daha sonra tanımlanan değerler ile \Sexp
kullanımı hala kolaydır, örneğin, bir özet: Özet için ayrı bir dosya (myabstract.Rnw
) kullanın, \input{myabstract}
özet özetidir sed dahil ve ana belgenin en sonuna knit
myabstract.Rnw
edilecek:
document.Rnw
:
\documentclass{article}
\begin{document}
\begin{abstract}
\input{myabstract}
\end{abstract}
Main text.
<<>>=
answer <- 42
@
\end{document}
<<include = FALSE>>=
knit("myabstract.Rnw")
@
myabstract.Rnw
:
The answer is \Sexpr{answer}.
Anahtar bu etmektir nasıl çalıştığını anlamak için knitr
'un LaTeX'in yapacağı belgeyi işlediğini fark edin. Bu nedenle, \input{myabstract}
LaTeX komutunun myabstract.tex
"önce" (zamana değil, satır numarasına atıfta bulunarak) içermesi önemli değildir, knit("myabstract.Rnw")
myabstract.tex
'u üretir. Daha karmaşık senaryolar, değerlendirme ve çıkış için
ayrılmış olabilir: Erken parçalar halinde tüm hesaplamaları yapın ve ait oldukları sonuçlarını yazdırabilirsiniz. Kaynak kodunu göstermek için reuse parçaları (ayar eval = FALSE
). bu bir hata atar mantıklı bakış sezgisel açıdan
\documentclass{article}
\begin{document}
<<calculation, include = FALSE>>=
answer <- 42
@
\begin{abstract}
The answer is \Sexpr{answer}.
\end{abstract}
Main text.
<<calculation, eval = FALSE>>=
@
\end{document}
görmektir Daha sonra hesaplamalar yapmak ve başlangıçta geri yüklemek. –
Normal. İlk örneğinizde, \ Sexpr {}; Böylece iş yerinizde var ve çağrılabilir. Ve ikinci örneğinizde varolmayan değişken diyorsunuz; Bu yüzden önce onu tanımlamanız veya var olan bir çalışma alanını yüklemeniz gerekir. –