3

lyx 文件 F

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

将 F 编译为 pdf 工作正常

现在我将文本 A 移动到单独的 LyX 文件 C 中,使 C 成为子文件,F 为主文件

重写 F——应该产生两次“文本 A”

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

一切正常,编译产生“文本A”两次,除了\Sexpr{x}包含部分找不到缓存值。我查看了 knitr 和 knitr/LyX 文档以及众多帮助站点,但无法弄清楚在这种情况下缓存如何工作(或无法工作)。

4

1 回答 1

3

那不是缓存的问题,而是LyX的问题,或者说是没有实现的功能。目前,LyX 子文档被视为独立文件,这意味着它们在单独的 R 会话中编译,因此变量不能跨文档共享。您可以向 LyX 开发人员提出功能请求。关键是,当 LyX 包含knitrorSweave模块并作为另一个文档的子文档包含时,它不应该单独编译(将此工作交给knitror Sweave)。

无论如何,我个人认为这不是一个大问题——我总是将所有内容都放在一个 LyX 文档中。

于 2013-03-15T18:52:57.813 回答