Предупреждение пакета R: Файлы в каталоге ‘vignettes’ новее, чем все файлы в ‘inst / doc’

#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 доволен.