【问题标题】:Generate items with multiple arguments in an R documentation via roxygen2通过 roxygen2 在 R 文档中生成具有多个参数的项目
【发布时间】:2014-10-08 02:31:49
【问题描述】:

要生成 R 文档文件 (.Rd),我将 RStudio/Document 选项包与 R 3.0.2、Linux 3.11、devtools 1.5、roxygen2 4.0.1 一起使用。

目标

我想在文档文件中描述一个函数的多个参数,例如在这个例子中:

\arguments{
  \item{arg1, arg2}{Description}
}

这里,参数arg1arg2 由空格字符分隔。这会导致 HTML 版本中自动换行。

问题

使用 RStudio/Document 选项,两个参数之间的空格将第二个参数放在“描述”部分,例如:

#' @param arg1, arg2 Description

会变成

\arguments{
  \item{arg1,}{arg2 Description}
}

不适当的解决方案

我想将两个参数都保留在“参数”部分中的唯一方法是不要用空格分隔,例如:

#' @param arg1,arg2 Description

会变成

\arguments{
  \item{arg1,arg2}{Description}
}

这是不想要的,因为带有更多参数的“列”会占用大量空间。我尝试使用\\\ 转义空间,并使用\code{...} 包含所有参数,但都没有按预期工作。

问题

有没有办法像我的Objective那样创建输出?也许是一些引入空格的转义字符?

谢谢。
斯文

【问题讨论】:

  • 生成手册页的是 roxygen2 包,而不是 devtools
  • 所以devtools 使用roxygen2?
  • 是的。如果您查看packageDescription("devtools"),您会看到roxygen2 在“建议”部分中。这意味着使用了roxygen2,但使用了devtools,但不是强制使用它。 (例如,您可以使用devtools,但手动编写文档,在这种情况下,您将不需要roxygen2。)
  • 谢谢,在我的问题中澄清了这一点。

标签: r devtools roxygen2 roxygen rd


【解决方案1】:

我还没有找到方法来说服roxygen2 让您在参数之间生成带有空格的行,但是您始终可以在调用roxygenize 后手动更新Rd 文件。

library(stringr)
filename <- "your package root/man/your_function.Rd"
lines <- readLines(filename)
lines <- str_replace(lines, fixed("\item{arg1,arg2}"), "\item{arg1, arg2}")
writeLines(lines, filename)

当然,一次记录几件事可能会让读者感到困惑。坚持每行一个参数描述的约定几乎总是更好,因为这是读者所期望的。

【讨论】:

  • 有这方面的消息吗?你有没有在 roxygen2 github 提出问题?
  • @Henrik 我没有提交问题,但您可以自己提交。
【解决方案2】:

它现在似乎可以与 roxygen2 6.0.1 一起使用:

#' @param arg1,arg2 Description

(逗号后没有空格)给出

\arguments{
  \item{arg1, arg2}{Description}
}

(逗号后有空格)。

【讨论】:

    猜你喜欢
    • 2017-02-07
    • 2013-09-24
    • 2019-11-22
    • 2018-04-17
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 2015-07-06
    • 2022-08-23
    相关资源
    最近更新 更多