2011-10-06 9 views
5

Recibo un error de roxygenize() que no puedo entender. Tengo un paquete de mis funciones misceláneas en el que los archivos .Rd se generan a través de roxygen. El error es Error: titlerequires a value, que sugiere que no hay @title etiqueta. Sin embargo, hay una etiqueta @title en el archivo kmmisc-package.R, por lo que no estoy seguro de cuál es el problema.roxygen2 "Error: titlerequires a value"

kmmisc-package.R contiene:

##' 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 

estoy usando R 2.13.2 con roxygen2 2.1 acaba de instalar desde CRAN. La completa sessionInfo() es en lo esencial en https://gist.github.com/1268056

Editar

A sugerencia de @ Andrie, ahora tengo

#' 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 

que se sigue generando el mismo error.

+0

acabo descubierto que 'maintainer' no tiene un' '@. ¿Esto hace la diferencia? – Andrie

+0

No lo creo. Puede que esté pasando por alto algo, pero, por lo que puedo decir, tengo la misma estructura básica que los documentos roxygen: https://github.com/klutometis/roxygen/blob/master/R/roxygen.RI no tener ejemplos o ver también, pero no puedo creer que eso importe. – kmm

+0

Una sugerencia más: actualice a 'roxygen2'. Descubrí que esto es más indulgente y útil en sus pistas cuando encuentra errores en las líneas roxygen. – Andrie

Respuesta

2

No pude replicar el error de su primer código ... ¿Está recibiendo el mismo mensaje de error de roxygenize() al siguiente ejemplo simple?

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

una información adicional:

El código por @Andrie, #' @aliases kmmisc package-kmmisc, tiene una @aliases problem. En roxygen2 2.1, #' @aliases a-b, que tiene un guión, genera la etiqueta entrecomillada Rd \alias{"a-b"}. En este caso, el código no tiene ningún problema, pero en otro caso requiere un poco de atención. Por supuesto, si necesita etiquetas citadas, agregue #' @aliases a-b.

Así que creo que es mejor sustituir #' @aliases kmmisc package-kmmisc con #' @aliases kmmisc en este caso:

#' 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

Esto es lo que quería arreglar: https://github.com/klutometis/roxygen/pull/29 Pero aquí no veo ninguna razón por la cual el título se rompió debido a alias incorrectos. –

+0

Perdón por la digresión. Revisé mi publicación. Estoy deseando arreglarlo: # 29. –

1

intente lo siguiente:

  • Descomente sus declaraciones roxygen. (Esto podría ser un SO artefacto, pero cada línea roxygen debe comenzar con # ', es decir, una sola #)

  • Realiza los siguientes cambios en la documentación

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

En otras palabras:

  • Cambiar el valor de @name
  • Añadir un alias llamado kmmisc

Estas son las únicas diferencias entre su ejemplo y mi propio paquete de documentación.

+0

Todavía obtengo el mismo error con estas ediciones (ver edición arriba). En general, sin embargo, es ## 'realmente un problema? Eso es lo que ESS hace por defecto (al menos creo que tengo la configuración predeterminada). – kmm

+0

Si '##' funciona para ti, es genial y he aprendido algo. Yo uso Eclipse y el código de Roxygen resaltando solo funciona con un solo '#' – Andrie

+0

Puedo confirmar que '## '' ciertamente funciona. Como dijo Kevin, este es el prefijo predeterminado en Emacs. No veo ningún problema obvio en el código, y en realidad puedo ejecutar roxygen2 con él sin ningún error (R 2.13.2 en Ubuntu). –