【问题标题】:LyX child document that contains a knitr Sexpr{} cannot find cached value包含 knitr Sexpr{} 的 LyX 子文档找不到缓存值
【发布时间】:2013-03-15 15:31:26
【问题描述】:

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 文档以及众多帮助站点,但无法弄清楚在这种情况下缓存如何工作(或无法工作)。

【问题讨论】:

    标签: r caching parent-child knitr lyx


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。非常清晰,符合我的预期。有许多明显的解决方法,但最好在包含许多 R 图形的大型 knitr-lyx 文档中将测试编译限制为一个部分。感谢您的及时回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2012-09-09
    相关资源
    最近更新 更多