有没有办法像 Jupyter/iPython 笔记本一样使用 LyX?添加代码字段并获取输出?
基本上,在理想情况下,我会有一个新的 LyX 代码环境。每当我执行代码时,我都会得到下面的图形。就像 Jupyter/iPython 笔记本一样……
答案1
LyX 完美支持“R noweb”编程,使用模块 Rnw(knitr)
(参见 en Document> Setttings...),该knitr
模块使用 R 中的包来生成动态报告。然后转到菜单Insert> Custom Insets>S\E expression以内联方式插入 R 代码并Chunk 插入带有选项的 R 块。在 LyX 屏幕和 PDF 预览中,您将看到类似以下内容:
在 中Code Preview Pane,第一个输入会产生一个\Sexpr{2+3}
代码,而最后一个输入将产生:
<<fooname,echo=TRUE>>=
2+3; pi+3 # Two sums in R, below the results
@
该源是“R noweb”格式,导出为带有.Rnw
扩展名的文件,基本上是 LaTeX 加上这种 R 代码,然后调用 R 将其转换为纯 LaTeX 代码(版本.tex
),其中 R 代码由输出更改(这里是一个简单的数字,但它可能是一个完整的统计报告,或一个复杂的表格或一个漂亮的图表),最后像往常一样编译以生成最终的 PDF。
我的建议:(1)首先了解它在 .Rnw 文件(或 Overleaf 中的 .Rtex)中的工作原理。我发布了大约一百个例子,足以大致了解各种可能性,但如果这还不够的话,现在有 340 个问题针织标签以及那里的大量信息。(2)使用 Rstudio 或 Overleaf 编辑并轻松编译这些文件。(3)一旦您掌握了概念,使用 LyX 模块就变得轻而易举了。
或者,您可以使用 LyX 模块Sweave
来实现完全相同的功能:允许使用统计语言 R 作为文学编程工具,但通过较旧且Sweave()
功能较有限。建议您查看该模块 sweave.lyx
以了解更多信息。
最后,为了完整性,knitr
还限制了对其他语言的支持,例如Python 还有一个Noweb
用于使用其他语言进行文学编程的模块。noweb 的简单示例在 Wikipedia 中使用 C,但我没有谈论这个模块的经验。