我从大学获得了两个使用LaTeX撰写论文的文件。一个是.sty文件,另一个是.TeX文件。为了在R studio中工作,我决定为每个章节分别使用.Rnw文件和一个用于组合所有章节的文件。我认为.TeX文件是我可以组合所有章节的文件,因为它提供了输出中的示例章节。在R studio的网站上有一个标题为“使用多个Rnw文件”的页面,它描述了这个过程(我猜),但我不清楚。它讨论了'儿童'文件,我认为这是我案例中的章节。所以我的简单问题是,如果我创建不同的.Rnw文件,每章一个,我怎么能要求R将它们合并到一个大学提供给我的TeX文件中?因为我不熟悉可重复的研究内容,请承担我的无知。
答案 0 :(得分:4)
假设你正在使用knitr(我强烈推荐knitr over sweave),使用child
chunk option的简单方法就是这样做。
例如,假设您有2个章节,保存在文件chap1.Rnw
和chap2.Rnw
以及主文档thesis.Rnw
(大学样式文件名为thesisStyle
)中。您可以将这些全部放在thesis.Rnw
内 - 假设这些都在同一目录中 - 通过:
\documentclass{article}
\usepackage{thesisStyle}
\begin{document}
% "include" chapter 1
<<chap1, child='chapt1.Rnw'>>=
@
% again with chapter 2
<<chap2, child='chap2.Rnw'>>=
@
\end{document}
然后让RStudio编译thesis.Rnw
并且它会吐出thesis.tex
,它会将所有内容捆绑在一起。
chap1.Rnw
而无需为其提供自己的序言。也就是说,如果chap1.Rnw
的内容是
<<echo=FALSE, cache=FALSE>>=
set_parent('thesis.Rnw')
@
\chapter{In a world where...}
\section{Great voice actors in movie trailer history}
ANYTHING YOU'D NORMALLY PUT IN AN .Rnw FILE
然后您可以像任何常规.Rnw文件一样编译chap1.Rnw
,并且在运行您正在使用的任何TeX后端之前从thesis.Rnw
获取序言(通常是pdflatex或xelatex) 。特别是,knitr会拍打\documentclass{article}
顶部的\usepackage{thesisStyle}
和chapt1.tex
行。
提醒一句,我发现knitr中的亲子模型对白空间敏感。所以,确保块上方没有空间
<<echo=FALSE, cache=FALSE>>=
set_parent('thesis.Rnw')
@
答案 1 :(得分:3)
你有几个选择。
一种选择是手工处理每个章节。每个章节都有一个.Rnw文件,然后在Rstudio(或R)中你从knitr包运行knit
函数(可能有一个Rstudio按钮或菜单直接执行此操作)来转换你的.Rnw文件到.tex文件。然后在父LaTeX文档中,您只需使用\include
包含每章的.tex文件。这意味着你自己处理每一章,并且必须在你改变任何东西的时候回去重做它。
另一个选项是创建一个父编辑和子文档,编织者将自动理解并处理这些文档(Rstudio使用knitr对.tex和最终的.pdf文件进行处理)。这个page有以这种方式创建父文档和子文档的演示,只需修改给你的.tex文件,在演示中包含重要内容(并可能将名称更改为.Rnw)。确保文档类与给出的.sty文件匹配,并保留.tex文件中的重要选项,但包括knitr demo中显示的子文档。通过这种方式,您可以整体处理文档,而不是每个章节。