2011-10-06 48 views
5

我收到了一个我无法理解的错误roxygenize()。我有一个我通过roxygen生成.Rd文件的杂项功能包。roxygen2“错误:标题需要值”

错误是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

编辑

在@ 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不要有例子或seealso,但我不认为这很重要。 – 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更换#' @aliases kmmisc package-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语句。 (这可能是所谓的假象,但每个roxygen线应与# '开始,如单#

  • 进行以下更改文档

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

换句话说:

  • 更改值@name
  • 添加名称为的别名

这些是你的榜样,我自己包的文档之间的唯一区别。

+0

对于这些编辑,我仍然收到同样的错误(请参阅上面的编辑)。一般来说,##是真的有问题吗?这是ESS默认做的(至少我认为我有默认设置)。 – kmm

+0

如果'##'适合你,那很好,我也学到了一些东西。我使用Eclipse和Roxygen代码突出显示仅适用于单个'#' – Andrie

+0

我可以确认'##''当然可以。正如Kevin所说,这是Emacs中的默认前缀。我没有在代码中看到任何明显的问题,实际上我可以在没有任何错误的情况下运行roxygen2(在Ubuntu下为R 2.13.2)。 –