Ich habe 2 Dateien von meiner Universität für das Schreiben von These mit LaTeX bekommen. Eine ist eine .sty-Datei und eine andere ist die .TeX-Datei. Um in R Studio zu arbeiten, habe ich beschlossen, separate. Rnw-Dateien für jedes Kapitel und eine Datei für die Kombination aller Kapitel zu haben. Ich denke .TeX-Datei ist die eine, wo ich alle Kapitel kombinieren kann, weil es Beispielkapitel in der Ausgabe gibt. Auf der Website von R studio gibt es eine Seite mit dem Titel "Arbeiten mit mehreren RNW-Dateien", die diesen Prozess beschreibt (ich denke), aber mir nicht klar ist. Es handelt von "Kinder" -Dateien, die ich in meinem Fall für die Kapitel halte. Meine einfache Frage ist also, dass ich, wenn ich für jedes Kapitel verschiedene .RNW-Dateien erstelle, wie kann ich R bitten, sie in einer TeX-Datei zu kombinieren, die mir von der Universität zur Verfügung gestellt wurde? Bitte trage meine Unwissenheit, denn ich bin neu in reproduzierbarem Forschungsmaterial.Arbeiten mit Rstudio für das Schreiben von Thesis-Kapiteln in .Rnw
Antwort
Angenommen, Sie verwenden Knitr (und ich empfehle Knitr über Sweave) die einfache Möglichkeit, dies zu tun ist mit der child
chunk option.
Als Beispiel sagen Sie 2 Kapitel haben, hielten in Dateien chap1.Rnw
und chap2.Rnw
und ein Master-Dokument thesis.Rnw
(mit Datei-Hochschulart thesisStyle
genannt). Sie können diese alle zusammen, innerhalb thesis.Rnw
setzen - vorausgesetzt, diese sind alle im gleichen Verzeichnis sind - über:
\documentclass{article}
\usepackage{thesisStyle}
\begin{document}
% "include" chapter 1
<<chap1, child='chapt1.Rnw'>>=
@
% again with chapter 2
<<chap2, child='chap2.Rnw'>>=
@
\end{document}
Dann haben RStudio nur thesis.Rnw
kompilieren und es wird thesis.tex
ausspucken, die alles richtig zusammen gebündelt werden haben .
Das ist aber nicht alles! Sie können chap1.Rnw
entwickeln, ohne dass Sie ihm eine eigene Präambel geben müssen. Das heißt, wenn der Gehalt an chap1.Rnw
ist
<<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
dann Sie chap1.Rnw
wie jede normale .Rnw Datei kompilieren und es wird die Präambel von thesis.Rnw
nehmen vor dem Ausführen von was auch immer TeX-Backend Sie verwenden (normalerweise pdflatex oder xelatex). Insbesondere wird knitr die \documentclass{article}
und \usepackage{thesisStyle}
Zeilen an der Spitze chapt1.tex
schlagen.
Ein Wort der Vorsicht, ich habe das Kind-Eltern-Modell in Knitr als weiß-Raum-empfindlich gefunden.Also, lesen Sie den Block keinen Platz haben
<<echo=FALSE, cache=FALSE>>=
set_parent('thesis.Rnw')
@
Sie haben ein paar Optionen.
Eine Möglichkeit besteht darin, jedes Ihrer Kapitel nur von Hand zu bearbeiten. Sie werden für jedes Kapitel eine .RNW-Datei haben, dann in Rstudio (oder R) die Funktion knit
aus dem knitr-Paket ausführen (möglicherweise gibt es dazu eine Rstudio-Schaltfläche oder ein Menü), um Ihre .RNW-Datei in a zu konvertieren. Textdatei Dann verwenden Sie im übergeordneten LaTeX-Dokument einfach \include
, um die .tex-Dateien für jedes Kapitel einzufügen. Dies bedeutet, dass Sie jedes Kapitel selbst bearbeiten müssen und es jedes Mal neu machen müssen, wenn Sie etwas ändern. Die andere Option besteht darin, Eltern- und Kinddokumente zu erstellen, die knitr automatisch verstehen und für Sie automatisch verarbeiten wird (Rstudio verwendet knitr, um die Verarbeitung von .tex- und eventuell .pdf-Dateien durchzuführen). Diese page verfügt über Demonstrationen zum Erstellen der Eltern- und Kinddokumente auf diese Weise, ändern Sie einfach die .tex-Datei, die Ihnen gegeben wurde, um die wichtigen Dinge in die Demos aufzunehmen (und wahrscheinlich den Namen in .RNW ändern). Stellen Sie sicher, dass die Dokumentklasse mit der angegebenen .sty-Datei übereinstimmt und die wichtigen Optionen aus der .tex-Datei erhalten bleiben, aber die untergeordneten Dokumente wie in der knitr-Demo angezeigt werden. Auf diese Weise können Sie das Dokument als Ganzes und nicht jedes einzelne Kapitel bearbeiten.
@Tyler, wenn Sie 'ein Dokument knit' es geht nur durch die Nicht-R-Teile und ersetzt die R Teile mit dem Ausgang. LaTeX oder andere Programme werden nicht ausgeführt, daher wird die Präambel usw. nicht benötigt. Das Ausführen von "stricken" durch Klicken auf eine Schaltfläche in Rstudio kann die zusätzlichen Programme ausführen, aber das direkte Verwenden von "stricken" (und das Angeben von .tex-Ausgabe) nicht. –
Sie haben Recht, tut mir leid. Ich habe zwei verschiedene Arbeitsabläufe verwechselt. Pandoc fügt Header für Rmd hinzu -> md -> pdf, aber das ist ein ganz anderer Kontext. – Tyler