Я использую knitr и rmarkdown написать виньетки для R пакетов. Благодаря магии pandoc эти документы легко превратить в различные форматы. Я хотел бы воспользоваться этим, предлагая виньетки как HTML, так и PDF. Существует поддержка от rmarkdown, чтобы указать параметры для нескольких форматов вывода в блоке метаданных документов. Например, я мог бы что-то вроде этого:Как создать виньетки R в нескольких форматах?
output:
html_document:
standalone: true
smart: true
normalize: true
toc: true
highlight: tango
self-contained: true
theme: cerulean
pdf_document:
toc: true
highlight: tango
geometry: margin=2cm
documentclass: article
classoption: a4paper
Из R командной строки можно использовать rmarkdown::render
построить один или оба выходных документов без трудностей. Однако при создании пакета используется только формат вывода, который указан первым. Я попытался включить Makefile, который строит и включив что-то вдоль линий
all: %.Rmd
$(R_HOME)/bin/Rscript -e "rmarkdown::render('$*.Rmd', 'all')"
и что является успешным в том смысле, что все выходные файлы генерируются, но только один из них признается виньетка на R Чтобы получить дополнительные выходы, включенные в docs/
, они должны быть добавлены к .install_extras. Хотя это гарантирует, что они доступны через индекс HTML, они перечислены отдельно от виньет, и я не думаю, что они могут быть доступны из R (через vignette()
).
Есть ли лучший способ (или любой автоматизированный способ) для этого?
FYI, это тот же вопрос, как https://github.com/yihui/knitr/issues/1051 –
Благодаря @Yihui. Приятно знать, что вы изучаете это. У вас была возможность еще разобраться? В частности, как совместимость с R CMD проверкой кажется важным вопросом относительно осуществимости этого. –
Вы можете попробовать включить строки в свой make, чтобы переключиться с html на pdf. Создайте виньетку, используйте 'sed' для переключения с html на pdf, сгенерируйте и вернитесь назад. – Josh