在 Roxygen/Rd 代码示例中使用不平衡的大括号

7
以下最小工作示例无法编译(通过devtools::document()):
#' MWE
#'
#' @examples
#' format('{}') # Works
#' format('{')  # Nope
#' format('\{') # Nope
#' format('\\{')# Nope
format = function (str) {}

无论我包括哪一行“不”行,它总是失败并出现以下错误:
``` roxygen块开始于mwe.r:1的故障 大括号不匹配... ```
根据我的阅读 Rd文档,通过转义花括号应该可以解决这个问题。但是,如上所述,这并不起作用。我是做错了什么还是Roxygen有bug?
这可能是Roxygen bug的一个提示是当我使用单个转义版本(`format('\{')`)时的完整错误消息:
``` 大括号不匹配:“@example format('{}') # Works format('\\{') # Nope” ```
请注意,输入中的单个反斜杠已在输出中加倍。

@Josh 你的回答(现已删除)使得代码可以编译,但是——正如你可能已经注意到的,考虑到这个回答被删除了——它会导致一个破损的Rd文件,在尝试在R中显示帮助时会显示错误。所以我们可以得出结论,这是一个roxygen的bug吗? - Konrad Rudolph
1
看起来确实像是一个 bug。我删除了它,因为我意识到(傻啦)多余的右括号只是用来关闭 \examples{} 部分的。 - Josh O'Brien
好的,错误已在 https://github.com/klutometis/roxygen/issues/393 上报。 - Konrad Rudolph
也许你现在可以关闭这个问题了吗? - Karl Forner
@KarlForner实际上,如果你查看错误报告,你会发现即使有了修复的错误(至少表面上是这样),问题仍然存在。我不确定这是一个错误还是我做错了什么。无论如何,原始问题已经发展了,但基本上仍然没有得到答案。 - Konrad Rudolph
1个回答

1

我不确定这个问题是何时被解决的,但是使用 roxygen2 版本6.0.1 似乎已经解决了这个问题。

在MWE上运行 devtools::document() 可以生成一个有效的Rd文档:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接