#r #pdf #sweave #vignette
#r #PDF #sweave #виньетка
Вопрос:
В пакете R у меня есть две устаревшие виньетки Sweave в виде .Rnw
файлов. Когда я проверяю пакет локально (в R Studio: Сборка -> Проверить), ошибок или предупреждений нет, и то же самое происходит, когда мой пакет проверяется на R-Forge с использованием исправленной версии R 3.3.1 (2016-10-17 r71531).
Однако, когда я отправляю пакет в Win-builder (через devtools::build_win()
) для проверки в R devel (нестабильный) (2016-10-16 r71524)), я получаю следующие предупреждения, которые я не могу разрешить:
Files in the 'vignettes' directory newer than all files in 'inst/doc':
'fig/plot-Ortho-fm1.pdf', 'fig/plot-Ortho-fm3.pdf',
'fig/plot-grades-can-class.pdf', 'fig/plot-grades-can-gpa.pdf',
'fig/plot-grades-can-sex.pdf', 'fig/plot-grades-pairs.pdf',
'fig/plot-hern-can-age.pdf', 'fig/plot-hern-can-build.pdf',
'fig/plot-hern-can-cardiac.pdf', 'fig/plot-hern-can-pstat.pdf',
'fig/plot-hern-pairs.pdf', 'fig/plot-jury-can1.pdf',
...
Структура каталога моего пакета включает виньетки в vignettes/
и результат devtools::build_vignettes()
in inst/doc/
, следующим образом:
...
man/
inst/
doc/HE-examples.{pdf,R,Rnw}
doc/repeated.{pdf,R,Rnw}
R/
vignettes/HE-examples.Rnw
/repeated.Rnw
/fig/ # all generated fig files
Причина, по которой я включаю сгенерированные .pdf
файлы в inst/doc/
, заключается в том, что в противном случае я получаю предупреждение о том, что .pdf
файлы необходимо сжать с помощью qpdf
, и единственный способ, которым я могу это сделать, — открыть их в Acrobat Pro и повторно сохранить как сжатый PDF.
Я пытался добавить inst/doc
в .Rbuildignore
, но это выдает ошибку. Я также пытался добавить inst/doc/*.pdf
в .Rbuildignore
, но это не дало никакого эффекта.
Предупреждение не позволяет мне отправить обновление в CRAN. Я не понимаю, почему новые файлы в vignettes/
должны быть проблемой, но как я могу исправить предупреждение?
Комментарии:
1. Просто команда: вы можете использовать команду
tools::compactPDF()
для уменьшения ваших виньеток.2. Я пробовал это, но по какой-то причине это не влияет на файлы PDF, хотя у меня есть
qpdf
иgs
установлено.3. Новые файлы в
vignettes/
являются проблемой, потому что те, что вinst/doc
, вероятно, из какой-то предыдущей версии виньетки. Возможно, вы проделали некоторую работу над виньеткой, и она не будет показана пользователям.
Ответ №1:
Я публикую ответ на случай, если кто-то еще столкнется с этой проблемой.
Эта проблема упоминается в этом выпуске devtools # 1348. Решением было просто удалить все файлы виньеток в inst/doc
. В моем случае для одного файла vignette PDF потребовалось ручное сжатие, чтобы избежать жалоб на qpdf
.
После удаления всех файлов в inst/doc/
я повторно скопировал сжатый PDF-файл, так что теперь он был новее файлов в vignettes/
Обе проблемы решены, и демон CRAN доволен.