如何在ShareLaTeX项目中通过input/include引入.Rtex文件?
我之前在ShareLaTeX(现在的Overleaf)里处理动态RTeX文档时,也碰到过完全一样的问题——把R代码块直接写在主.Rtex文件里能正常编译,用\input{file}或\include{file}引入外部.Rtex文件就报错。结合我踩过的坑,给你几个靠谱的解决办法:
优先用
\input替代\include\include命令会强制开启新页面,而且在knitr处理动态文档的流程中,它对外部代码块的兼容性不如\input稳定。直接把引入命令改成:\input{your-file.Rtex}检查外部.Rtex文件的代码格式
确保外部文件里的R代码块没有多余的干扰内容:比如不要在代码块前后加TeX注释、多余的空行,你的代码块格式是对的,但要确认没有在
<<>>=和@前后加不必要的符号。
正确的外部文件内容应该就是纯代码块(可以加必要的TeX文本,但Rchunk本身要干净):<<>>= # Create a sequence of numbers X = 2:10 # Display basic statistical measures summary(X) @确认项目的编译设置
在ShareLaTeX的项目设置里,把编译器改成XeLaTeX或者PDFLaTeX,并且确保启用了knitr编译流程(ShareLaTeX会自动识别.Rtex文件,但有时候需要手动确认)。检查文件路径与命名
确保外部.Rtex文件和主文件在同一个目录下,文件名不要包含空格、特殊字符(比如中文、下划线以外的符号),避免路径解析出错。
如果以上方法都试过还是不行,可以试试在主文件开头添加\usepackage{knitr}并显式设置knitr的输入路径:
\usepackage{knitr} \knit{main.Rtex}
内容的提问来源于stack exchange,提问作者Matthias Adriaens
相关产品推荐
相关产品推荐

