Писать большие документы с помощью свитера. Можно ли сделать так же, как с латексом?
Я только открываю Sweave
и R
. Я видел несколько примеров документов Sweave
и также начал писать один или два самостоятельно. Я впечатлен способностью выполнять вычисления в R
и выводить результаты непосредственно в документе LaTeX
.
LaTeX
), которые состоят из нескольких страниц и нескольких частей. С помощью LaTeX
(я использую WinEdt) я устанавливаю основной документ (например, main.tex
), а затем имею другие вспомогательные документы как будто introduction.tex
, discussion.tex
и т.д.
Мой вопрос: Можем ли мы сделать это и с Sweave
? Теперь я работаю с одним документом Sweave
(.Rnw) один. Можем ли мы иметь несколько документов Sweave
(с одним основным и второстепенными), как мы обычно делаем с LaTeX
?
Обходной путь состоял бы в том, чтобы иметь отдельные Sweave
файлы, а затем использовать их для создания R
LaTeX
куски, которые можно скопировать в документ LaTeX
, но тогда вся идея кажется довольно неэффективной и трудоемкой.
Большое спасибо...
3 ответа:
Вот что очень хорошо работает для меня:
У меня есть один мастер-файл ("master.Rnw"), который не имеет текста, а служит только для сбора файлов (глав, разделов), которые в конечном итоге образуют документ.
Затем у меня есть один файл с кодом R, который повторно используется в различных других файлах ("func.Rnw"). Здесь у меня много именованных кусков
<<my_fun_1,eval=FALSE,echo=FALSE>>= # code: c <- a * b @
В Мастере.Rnw, первое, что я делаю после \begin{document}, это
\SweaveInput{func.Rnw}
И оттуда у меня есть мои именованные куски. В файле "chap1.Rnw" теперь я могу иметь
<<echo=FALSE>>= a <- 10 b <- 25 <<my_fun_1>> c @
Конечно, я должен
\SweaveInput{chap1.Rnw})
В мастера.РНВ.
Мне нужно только
Я просто пишу статью из 60 + страниц с примерно 25 таблицами и цифрами, и пока все работает отлично.\Sweave{master.Rnw}
, а затем pdflatex результирующий мастер.tex-файл, без копирования / вставки или обработки нескольких файлов.Надеюсь, это поможет, Райнер
Я использую Sweave, чтобы написать книгу примерно из 16 глав. Я согласен, что использование makefile с несколькими файлами Rnw-хорошая идея. Еще одна приятная вещь, связанная с этим подходом, заключается в том, что make можно запускать параллельно (-p Я думаю), поэтому в зависимости от того, как объекты главы зависят друг от друга, вы можете запускать много кода одновременно.
Единственное, что изменило меня, - это кэширование. Некоторые из моих фрагментов кода могут работать в течение нескольких дней, но не изменились за время написания книги. Есть несколько пакетов, которые позволяют сохранять результаты при запуске и повторно запускать фрагмент только в том случае, если объекты, от которых зависит фрагмент, изменились.
Для этого существует несколько пакетов. Смотрите:
Http://cran.r-project.org/web/views/ReproducibleResearch.html
Я использую форму пакета weaver Bioconductor.
Пока я на свалке мозгов... если у вас есть более одного автора, я обнаружил, что общий аккаунт Dropbox является отличным способом поддержания проект.
Макс
Я рекомендую использовать RStudio (http://www.rstudio.com/ide/) вместо WinEdt. Sweave хорошо интегрирован в эту IDE, и, как и в WinEdt, вы можете установить один файл в качестве главного файла. Из главного файла вы можете включить дочерние файлы, используя
\SweaveInput{Child.Rnw}
Вы можете связать дочерний файл с главным файлом, включив директиву
% !Rnw root = Master.Rnw
В дочернем файле. Таким образом, работая над дочерним файлом и набирая его, RStudio знает, как набирать главный файл.
В подробности описаны в документации RStudio по адресу http://www.rstudio.com/ide/docs/authoring/multiple_rnw_files
Самая приятная особенность заключается в том, что навигация по журналам ошибок Synctex и TeX все еще работает даже при работе с многофайловыми документами.