2011-10-06 2 views
5

Я получаю ошибку от roxygenize(), которую я не могу понять. У меня есть пакет моих разных функций, в которых файлы .Rd генерируются через roxygen.roxygen2 «Ошибка: titlerequires a value»

Ошибка Error: titlerequires a value, что свидетельствует о том, что нет метки @title. Однако в файле kmmisc-package.R есть тег @title, поэтому я не уверен, в чем проблема.

kmmisc-package.R содержит:

##' Miscellaneous Functions 
##' 
##' \tabular{ll}{ 
##' Package: \tab kmmisc\cr 
##' Type: \tab Package\cr 
##' Version: \tab 0.1-2\cr 
##' Date: \tab 2011-10-06\cr  
##' License: \tab GPL-2\cr 
##' LazyLoad: \tab yes\cr 
##' LazyData: \tab yes\cr 
##' } 
##' 
##' @author Me \email{[email protected]@email} 
##' 
##' Maintainer: Me \email{[email protected]@email} 
##' 
##' @name kmmisc-package 
##' @docType package 
##' @title KM Misc 
##' @keywords package 
##' 
NULL 

Я использую R 2.13.2 с roxygen2 2.1 просто переустановил из CRAN. Полный sessionInfo() в сущности в https://gist.github.com/1268056

Edit

В @ Andrie-х внушения, теперь у меня есть

#' Miscellaneous Functions 
#' 
#' \tabular{ll}{ 
#' Package: \tab kmmisc\cr 
#' Type: \tab Package\cr 
#' Version: \tab 0.1-2\cr 
#' Date: \tab 2011-09-14\cr  
#' License: \tab GPL-2\cr 
#' LazyLoad: \tab yes\cr 
#' LazyData: \tab yes\cr 
#' } 
#' 
#' @author Me \email{[email protected]@email} 
#' 
#' Maintainer: Me \email{[email protected]@email} 
#' @name package-kmmisc 
#' @docType package 
#' @title KM Misc 
#' @keywords package 
#' @aliases kmmisc package-kmmisc 
#' 
#' 
NULL 

, который до сих пор порождающий ту же ошибку.

+0

Я просто заметил, что 'maintainer' не имеет' @ '. Это имеет значение? – Andrie

+0

Я так не думаю. Я мог бы что-то игнорировать, но, насколько я могу судить, у меня такая же базовая структура, как и у приложений roxygen: https://github.com/klutometis/roxygen/blob/master/R/roxygen.RI нет есть примеры или также, но я не могу думать, что это важно. – kmm

+0

Еще одно предложение: перейти на «roxygen2'. Я нашел это более немного более прощающим и полезным в своих подсказках, когда он сталкивается с ошибками в линиях roxygen. – Andrie

ответ

2

Я не смог реплицировать форму ошибки с вашего первого кода ... Получаете ли вы такое же сообщение об ошибке от roxygenize() к следующему простому примеру?

#' A test function 
#' 
#' Description 
#' 
#' Details 
#' 
#' @param x numeric number 
f1 <- function(x) { 
    x 
} 

Дополнительная информация:

Код по @Andrie, #' @aliases kmmisc package-kmmisc, имеет @aliases problem. В roxygen2 2.1, #' @aliases a-b, который имеет дефис, генерирует тег Rd, процитированный \alias{"a-b"}. В этом случае код не имеет проблем, но в другом случае требует некоторого внимания. Конечно, если вам нужны процитированные теги, вы добавляете #' @aliases a-b.

Так что я думаю, что лучше заменить #' @aliases kmmisc package-kmmisc с #' @aliases kmmisc в этом случае:

#' Miscellaneous Functions 
#' 
#' \tabular{ll}{ 
#' Package: \tab kmmisc\cr 
#' Type: \tab Package\cr 
#' Version: \tab 0.1-2\cr 
#' Date: \tab 2011-09-14\cr 
#' License: \tab GPL-2\cr 
#' LazyLoad: \tab yes\cr 
#' LazyData: \tab yes\cr 
#' } 
#' 
#' @author Me \email{[email protected]@email} 
#' 
#' Maintainer: Me \email{[email protected]@email} 
#' @name package-kmmisc 
#' @aliases kmmisc 
#' @docType package 
#' @title KM Misc 
#' @keywords package 
NULL 
+0

Вот что я хотел исправить: https://github.com/klutometis/roxygen/pull/29 Но здесь я не вижу причин, по которым заголовок был сломан из-за неправильных псевдонимов. –

+0

Извините за отступление. Я пересмотрел свой пост. Я с нетерпением жду исправления: # 29. –

1

Попробуйте следующее:

  • Раскомментируйте ваши заявления roxygen. (Это может быть SO артефактом, но каждая roxygen линия должна начинаться с # ', т.е. один #)

  • Внести следующие изменения в документации

 
    #' @name package-kmmisc 
    #' @aliases kmmisc package-kmmisc 

Другими словами:

  • @name
  • Добавить псевдоним под названием kmmisc

Это единственные отличия между вашим примером и моей собственной документации пакета.

+0

Я по-прежнему получаю ту же ошибку с этими изменениями (см. Выше). Вообще, хотя, ## 'действительно проблема? Это то, что ESS делает по умолчанию (по крайней мере, я думаю, что у меня есть настройки по умолчанию). – kmm

+0

Если '##' работает для вас, это здорово, и я чему-то научился. Я использую Eclipse, а выделение кода Roxygen работает только с одним '#' – Andrie

+0

, который я могу подтвердить '## '', безусловно, работает. Как сказал Кевин, это префикс по умолчанию в Emacs. Я не вижу в коде очевидных проблем, и на самом деле я могу запустить с ним roxygen2 без каких-либо ошибок (R 2.13.2 под Ubuntu). –

 Смежные вопросы

  • Нет связанных вопросов^_^