Подтвердить что ты не робот

Написание больших документов с Sweave. Возможно ли это сделать с LaTeX?

Я просто открываю Sweave и R. Я видел несколько примеров документов Sweave и также начал писать один или два сам по себе. Я впечатлен способностью вычислений в R и вывода результатов непосредственно в документе LaTeX.

Теперь я думаю о больших документах (как обычно у нас с LaTeX), которые состоят из нескольких страниц и нескольких частей. С помощью LaTeX (я использую WinEdt) я устанавливаю основной документ (например, main.tex), а затем другие вспомогательные документы, такие как introduction.tex, discussion.tex и т.д.

Мой вопрос: можем ли мы сделать это с помощью Sweave? Теперь я работаю с единственным документом Sweave (.Rnw). Можем ли мы иметь несколько документов Sweave (с одним основным и вторичным), как обычно, с LaTeX?

Обходной путь состоял бы в том, чтобы иметь отдельные файлы Sweave, а затем sweave их для создания фрагментов R LaTeX, которые можно скопировать в документ LaTeX, но тогда вся идея кажется довольно неэффективной и трудоемкой.

Пожалуйста, дайте понять, какие предложения и решения у вас есть.

Спасибо большое...

4b9b3361

Ответ 1

Вот что мне очень хорошо работает:

У меня есть один главный файл ( "master.Rnw" ), который не имеет текста, но служит только для сбора файлов (разделов, разделов), которые образуют документ в конце.

Затем у меня есть один файл с R-кодом, который повторно используется в других файлах ( "func.Rnw" ). Здесь у меня много названных фрагментов

<<my_fun_1,eval=FALSE,echo=FALSE>>=
# code:
c <- a * b
@

В master.Rnw первое, что после \begin {document}, я делаю

\SweaveInput{func.Rnw}

и оттуда, у меня есть мои названные куски. В файле "chap1.Rnw" теперь у меня есть

<<echo=FALSE>>=
a <- 10
b <- 25
<<my_fun_1>>
c
@

Конечно, я должен

\SweaveInput{chap1.Rnw})

в master.Rnw.

Мне нужно только \Sweave{master.Rnw}, а затем pdflatex получить файл master.tex, не копировать/вставлять или обрабатывать несколько файлов.

Я просто пишу бумагу из 60 + страниц с примерно 25 таблицами и цифрами, и до сих пор все работает отлично.

Надеюсь, это поможет, Rainer

Ответ 2

Я использую Sweave, чтобы написать книгу с примерно 16 главами. Я согласен с тем, что использование make файла с несколькими Rnw файлами - хорошая идея. Еще одна приятная вещь заключается в том, что make можно запускать параллельно (-p, я думаю), поэтому в зависимости от того, как объекты главы зависят друг от друга, вы можете запускать много кода одновременно.

То, что изменило для меня, - это кеширование. Несколько моих кодовых блоков могут работать в течение нескольких дней, но не изменились в процессе написания книги. Есть несколько пакетов, которые позволяют сохранять результаты при его запуске и повторно перезапускать фрагмент, если объекты, на которые зависит фрагмент, были изменены.

Для этого есть несколько пакетов. См:

http://cran.r-project.org/web/views/ReproducibleResearch.html

Я использую форму тканевой формы Bioconductor.

Пока я на дампе мозга... если у вас более одного автора, я обнаружил, что общая учетная запись Dropbox - отличный способ поддерживать проект.

Max

Ответ 3

Я рекомендую использовать RStudio (http://www.rstudio.com/ide/) вместо WinEdt. Sweave хорошо интегрирован в эту среду разработки, и, как и в WinEdt, вы можете установить один файл в качестве основного файла. Из основного файла вы можете включить дочерние файлы, используя

\SweaveInput{Child.Rnw}

Вы можете связать дочерний файл с основным файлом, указав директиву

% !Rnw root = Master.Rnw

в дочернем файле. Таким образом, когда вы работаете над дочерним файлом и набираете его, RStudio знает, как набирать мастер файл.

Подробности объясняются в документации RStudio по адресу http://www.rstudio.com/ide/docs/authoring/multiple_rnw_files

Самая приятная особенность заключается в том, что навигационная запись журнала Synctex и TeX по-прежнему работает даже при работе с документами с несколькими файлами.