r - 与 Rstudio 合作以 .Rnw 编写论文章节

标签 r knitr rstudio rnw

我从我的大学获得了 2 个文件,用于使用 LaTeX 撰写论文。一个是 .sty 文件,另一个是 .TeX 文件。为了在 R Studio 中工作,我决定为每一章创建单独的 .Rnw 文件,并用一个文件来组合所有章节。我认为 .TeX 文件是我可以组合所有章节的文件,因为它在输出中提供了示例章节。在 R studio 的网站上有一个标题为“使用多个 Rnw 文件”的页面,它描述了这个过程(我猜),但我不清楚。它谈到了“子”文件,我认为这是我案例中的章节。所以我的简单问题是,如果我创建不同的 .Rnw 文件,每一章一个,我如何让 R 将它们组合成一个大学提供给我的 TeX 文件?请忍受我的无知,因为我是可重复研究的新手。

最佳答案

假设您正在使用 knitr(我强烈推荐 knitr 而不是 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

然后你可以编译chap1.Rnw像任何常规的 .Rnw 文件一样,它将采用 thesis.Rnw 的序言在运行您使用的任何 TeX 后端之前(通常是 pdflatex 或 xelatex)。尤其是knitr会打\documentclass{article}\usepackage{thesisStyle} chapt1.tex 顶部的线条.

提醒一句,我发现 knitr 中的 child - parent 模型对空白敏感。因此,请确保块上方没有空间
<<echo=FALSE, cache=FALSE>>=
set_parent('thesis.Rnw')
@

关于r - 与 Rstudio 合作以 .Rnw 编写论文章节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22716088/

相关文章:

Rstudio 无法识别 MacTeX MacOSx 10.7.5,无法预览 pdf

r - 相当于 RStudio 的 Knit HTML 的简洁命令行是什么?

r - Beamer 演示 RStudio 更改 block 的字体大小

r - 无法安装 'RCurl' (Rcurl.h :4:23: fatal error: curl/curl. h: No such file or directory)

r - 使用 rmarkdown/knitr 将所有代码保存到最后

html - Gitbook章节引用书目不按字母顺序排列

r - 如何使用 Knitr 将 .Rmd 文件中的每个 block 提取到多个 .R 文件

html - 我们可以在 rmarkdown 的 html 输出中将标题保留在 plotly 对象的顶部吗?

r - 绘图新方法 - 如何导出?

r - R的ASCII绘图功能