2013-03-15 26 views
3

LYX文件F包含knitr Sexpr {}無法找到緩存值

knitr chunk caches a value for x 
then text A contains several Sexpr{} calls, including Sexpr{x} 

編譯F到PDF LyX的子文檔工作正常

現在我將文字一到一個單獨的LyX的文件C,使下與F A子文件,主文件

重寫的F - 應產生 「文本A」 兩次

knitr chunk caches a value for x 
text A 
\include(C) 

每件事情都能正常工作,彙編產生兩次「文本A」,除了包含的部分中的\Sexpr{x}找不到緩存的值。我已經回顧了knitr和knitr/LyX文檔以及衆多的幫助網站,但無法弄清楚在這種情況下緩存的工作原理(或失敗)。

回答

3

這不是緩存問題,而是LyX的問題,或者還沒有實現的功能。目前,LyX子文檔被視爲獨立文件,這意味着它們被編譯在單獨的R會話中,因此變量不能在文檔間共享。您可以向LyX開發人員提交feature request。關鍵是,當LyX包含knitrSweave模塊並且作爲另一個文檔的子文檔包含時,不應該單獨編譯(將此作業交給knitrSweave)。

無論如何,我個人並不覺得這是一個大問題 - 我總是把所有內容放在一個LyX文檔中。

+0

謝謝。非常清楚,並且符合我的預期。有許多明顯的解決方法,但是在一個帶有許多R圖形的大型knitr-lyx文檔中,將測試編譯限制爲一個部分會很好。感謝您的及時迴應。 – user2174495 2013-03-17 15:01:59