Что именно делает R CMD Sweave --pdf?
Я заметил это в изменениях R 2.14:
R CMD Sweave теперь имеет опцию --pdf для создания PDF-версии обработанного документа Sweave.
Попробовав это, я заметил, что он не только выполнил pdfLaTeX в полученном tex, но и правильно включил ссылки bibTeX и впоследствии очистился. Похоже, очень хороший способ использования Sweave (не говоря уже о том, как легко теперь реализовать всю процедуру в редакторах).
Но что именно это сейчас работает? Я больше не мог найти подробностей. Кажется, Sweave → pdflatex → bibtex → pdflatex → pdflatex не менее?
Ответы
Ответ 1
Спасибо за вопрос. Я задавался вопросом о коде, который стоит за этим "автоматическим" процессом.
R CMD Sweave --pdf
в конечном итоге вызывает tools::texi2dvi
, который:
Запустите [s] латекс и бибтекс до тех пор, пока все перекрестные ссылки не будут разрешены и создайте [s] либо файл dvi, либо файл PDF.
(Подробнее см. здесь texi2dvi
).
Вот цепочка событий, приводимых в движение вызовом R CMD Sweave --pdf
:
-
В исходном файле rcmdfn.c
содержится код, который инструктирует R CMD Sweave
выполнить utils:::.Sweave() --args"
через Rterm.exe
.
-
Если --pdf
установлено, utils:::.Sweave()
вызывает tools::texi2pdf()
для обработки файла Sweave.
-
texi2pdf()
в свою очередь вызывает tools::texi2dvi()
.
-
Наконец, texi2dvi()
просматривает среду, чтобы узнать, какие инструменты доступны для нее, и выполняет ли описанную работу файл справки, связанный выше.
Ответ 2
Вы можете попытаться выполнить преобразование из Rnw в pdf вручную, и посмотрите, сколько раз соответствующие шаги необходимы для получения того же результата, что и R CMD Sweave.
Ответ 3
Я не знаю много о внутренних работах, но я знаю, что версия RStudio для разработки позволит вам выбирать между knitr
и Sweave
, а также между pdflatex
и xelatex
и дает bibtex
как вариант.