Работа с Rstudio для написания тезисов глав в.Rnw
Я получил 2 файла из моего университета для написания диссертации с использованием LaTeX. Один - это файл.sty, а другой - файл.TeX. Чтобы работать в R studio, я решил иметь отдельные файлы.Rnw для каждой главы и один файл для объединения всех глав. Я думаю, что.TeX-файл - это тот, где я могу объединить все главы, потому что он дает примеры глав в выводе. На веб-сайте R studio есть страница под названием "Работа с несколькими файлами Rnw", которая описывает этот процесс (я полагаю), но мне не совсем понятна. В нем говорится о "дочерних" файлах, которые, я думаю, являются главами в моем случае. Поэтому мой простой вопрос заключается в том, что, если я создаю разные файлы.Rnw, по одному для каждой главы, как я могу попросить R объединить их в один файл TeX, предоставленный мне университетом? Пожалуйста, имейте мое невежество, поскольку я новичок в воспроизводимых исследованиях.
2 ответа
Предполагая, что вы используете knitr (и я настоятельно рекомендую knitr over sweave), простой способ сделать это с помощью child
вариант куска.
В качестве примера, скажем, у вас было 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). В частности, Книтр будет шлепать \documentclass{article}
а также \usepackage{thesisStyle}
линии в верхней части chapt1.tex
,
Одним словом, я обнаружил, что модель "ребенок-родитель" в knitr чувствительна к пробелам. Таким образом, убедитесь, что нет места над блоком
<<echo=FALSE, cache=FALSE>>=
set_parent('thesis.Rnw')
@
У вас есть несколько вариантов.
Один из вариантов - просто обработать каждую из ваших глав вручную. У вас будет файл.Rnw для каждой главы, затем в Rstudio (или R) вы запустите knit
функция из пакета knitr (может быть кнопка или меню Rstudio, чтобы сделать это напрямую), чтобы преобразовать ваш файл.Rnw в файл.tex. Тогда в родительском документе LaTeX вы просто используете \include
включить.tex файлы для каждой главы. Это означает, что нужно обрабатывать каждую главу самостоятельно и возвращаться к ней каждый раз, когда вы что-то меняете.
Другой вариант - создать родительские и дочерние документы, которые knitr будет понимать и обрабатывать автоматически для вас (Rstudio использует knitr для обработки.tex и, в конечном итоге, файлов.pdf). На этой странице демонстрируются способы создания родительских и дочерних документов таким образом, просто измените предоставленный вам файл.tex, чтобы включить важные элементы в демонстрационные версии (и, возможно, измените имя на.Rnw). Убедитесь, что класс документа соответствует предоставленному вам файлу.sty, а важные параметры из файла.tex остаются, но включайте дочерние документы, как показано в демонстрационной версии knitr. Таким образом, вы можете обрабатывать документ целиком, а не каждую отдельную главу.