【问题标题】:Using unbalanced brace in Roxygen/Rd code example在 Roxygen/Rd 代码示例中使用不平衡大括号
【发布时间】:2015-10-08 16:18:55
【问题描述】:

以下 MWE 编译失败(通过devtools::document()):

#' MWE
#'
#' @examples
#' format('{}') # Works
#' format('{')  # Nope
#' format('\{') # Nope
#' format('\\{')# Nope
format = function (str) {}

无论我包含哪些“否”行,它总是会失败并显示错误

roxygen 块开始失败 mwe.r:1
大括号不匹配……

根据我对Rd documentation 的阅读,这应该通过转义大括号来工作。但是,如上所示,这 不起作用。我做错了什么还是这是 Roxygen 中的错误?

当我使用单转义版本 (format('\{')) 时,完整的错误消息提示这可能是 Roxygen 错误:

大括号不匹配:"@example format('{}') # Works format('\\{') # Nope"

请注意,输入中的单个反斜杠在输出中已加倍。

【问题讨论】:

  • @Josh 您(现已删除)的答案使这个编译但是 - 正如您可能已经注意到的那样,考虑到删除 - 它会导致 Rd 文件损坏,当尝试在 R 中显示帮助时会显示错误. 那么我们可以断定这是一个 roxygen 错误吗?
  • 它确实看起来像一个错误。我删除是因为我意识到(duh)额外的右大括号只是用来关闭\examples{} 部分
  • 也许你现在可以结束这个问题了?
  • @KarlForner 实际上,如果您查看错误报告,您会发现即使修复了错误(至少表面上如此),问题仍然存在。我不确定这是一个错误还是我做错了什么。无论如何,最初的问题已经演变为基本上没有答案。

标签: r roxygen2 rd


【解决方案1】:

不确定何时解决此问题,但 roxygen2 version 6.0.1 似乎已解决此问题。

MWE 上的devtools::document() 产生一个有效的 Rd:

\examples{
format('{}') 
format('{')  
format('\\{') 
format('\\\\{')
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多