![重新定义 LaTeX 中的 knitr 代码块分隔符,将 .Rnw 文件编译为 .tex 文件](https://linux22.com/image/315814/%E9%87%8D%E6%96%B0%E5%AE%9A%E4%B9%89%20LaTeX%20%E4%B8%AD%E7%9A%84%20knitr%20%E4%BB%A3%E7%A0%81%E5%9D%97%E5%88%86%E9%9A%94%E7%AC%A6%EF%BC%8C%E5%B0%86%20.Rnw%20%E6%96%87%E4%BB%B6%E7%BC%96%E8%AF%91%E4%B8%BA%20.tex%20%E6%96%87%E4%BB%B6.png)
我正在尝试定义一些 LaTeX 命令/环境来处理 Rnw 文件(使用 R 包编译的 R + LaTeX 文档knitr
)中的原始文本。目标是允许某人将 .Rnw 文件重命名为 .tex 文件,并能够编译文档,以便 LaTeX 为代码块放置占位符。这是针对在如何将 .tex 文件中的更改导出回源 .Rnw 文件。
有两件事需要发生:\Sexpr{}
需要重新定义和代码块序列
<< chunk-name, option1 = TRUE, option2 = FALSE, ...>>=
... R code ...
@
需要重新定义。重新定义\Sexpr{}
很容易:
\newcommand{\Sexpr}[1]{\textbf{\#\#}}
然而,我正在努力如何定义一个控制序列(扩展?)来处理<<
块名称,选项>>
R 代码@
。
从技术上讲,我可以跳过所有错误,最终得到一个包含纯文本代码块的 LaTeX 文档。我可以接受这一点,但最好输出一个占位符,例如一个包含块名称但绝对不包含 R 代码的框。
编辑这看起来是正确的方向,但我无法理解发生了什么:https://tex.stackexchange.com/a/80370/82573
编辑 编辑因此,实际上主要问题似乎是_
R 代码中的下划线(例如函数名称中的下划线)实际上导致了错误,因此verbatim
需要某种方法来忽略代码或将其包装在环境中。