LaTeX を使用して論文を書くために大学から 2 つのファイルを受け取りました。1 つは .sty ファイルで、もう 1 つは .TeX ファイルです。R スタジオで作業するために、章ごとに個別の .Rnw ファイルと、すべての章を結合するための 1 つのファイルを用意することにしました。.TeX ファイルは、出力にサンプルの章が含まれているため、すべての章を結合できるファイルだと思います。Rスタジオのウェブサイトには、このプロセスを説明している「複数のRnwファイルを操作する」というタイトルのページがあります(私は推測します)が、私には明確ではありません。私の場合の章であると思う「子」ファイルについて話します。そこで私の簡単な質問は、章ごとに 1 つずつ異なる .Rnw ファイルを作成する場合、大学が提供してくれた 1 つの TeX ファイルにそれらを結合するように R に依頼するにはどうすればよいかということです。私は再現可能な研究に慣れていないので、私の無知をご容赦ください。
2 に答える
Knitr を使用していると仮定すると (そして、sweave よりも Knitr を強くお勧めします)、これを行う簡単な方法は、child
chunk オプションを使用することです。
例として、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 の子親モデルは空白に敏感であることがわかりました。したがって、ブロックの上にスペースがないようにしてください
<<echo=FALSE, cache=FALSE>>=
set_parent('thesis.Rnw')
@
いくつかのオプションがあります。
1 つのオプションは、各チャプターを手作業で処理することです。章ごとに .Rnw ファイルが作成されます。次に、Rstudio (または R)knit
で、knitr パッケージから関数を実行し (これを直接行うための Rstudio ボタンまたはメニューがある場合があります)、.Rnw ファイルを .tex に変換します。ファイル。次に、親の LaTeX ドキュメントで\include
、各章の .tex ファイルを含めるために使用します。これは、各章を自分で処理し、何かを変更するたびに戻ってやり直す必要があることを意味します.
もう 1 つのオプションは、knitr が自動的に理解して処理する親ドキュメントと子ドキュメントを作成することです (Rstudio は、knitr を使用して .tex ファイルと最終的には .pdf ファイルの処理を行います)。このページには、この方法で親ドキュメントと子ドキュメントを作成するデモがあります。提供された .tex ファイルを変更して、デモに重要なものを含めます (おそらく名前を .Rnw に変更します)。ドキュメント クラスが与えられた .sty ファイルと一致し、.tex ファイルの重要なオプションが残っていることを確認しますが、knitr デモに示されているように子ドキュメントを含めます。このようにして、個々の章ではなくドキュメント全体を処理できます。