11

要生成 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一样创建输出?也许是一些引入空格的转义字符?

谢谢你。
斯文

4

2 回答 2

9

它现在似乎适用于 roxygen2 6.0.1:

#' @param arg1,arg2 Description

(逗号后没有空格)给出

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

(逗号后有空格)。

于 2018-05-14T09:18:15.290 回答
5

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

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)

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

于 2014-08-14T12:45:00.510 回答