你如何使用roxygen2转义“}”?

How do you escape "}" using roxygen2?

我正在记录一个使用 roxygen2@example 的函数。

该示例有一个包含 } 符号的字符串。

#' ...
#' @examples
#' \dontrun{
#' ## polyline joining the capital cities of Australian states
#' pl <- "nnseFmpzsZgalNytrXetrG}krKsaif@kivIccvzAvvqfClp~uBlymzA~ocQ}_}iCthxo@srst@"
#'
#' df_polyline <- decodepl(pl)
#' }
#' ...

构建时,示例的文档是

第一个 } 之后的所有内容都被截断了。

如何转义 } 以便它包含在示例中的字符串中?

我试过反斜杠 \{ / \{ 但没有成功。


更新 - 2016 年 9 月 1 日

Hadley official response 我的问题

Fixing this is quite difficult (as far as I can it will require writing a considerably more complicated Rd parser), and it's a rare occurrence, so realistically this is never going to get high up enough on my to do list to fix it.

TLDR:长期修复:文件 an issue.

你 "got lucky" 构建这个是因为你有足够的 } 来克服一些 Rd 安装错误。

我什至尝试使用 @example inst/examples/ex.r 并放置代码(使用 \dontrun{} 包装器,因为那里支持它)并且由于相同的 roxygen parsing/translating,该方法发生了同样的事情代码似乎也在那里发挥作用。

  • 短期修复 #1:手动编辑生成的 Rd 文件,为每个 } 执行单个 \}。为了使它成为您不会意外覆盖的东西,生成它一次,进行修复,然后对该函数进行去氧化处理,直到得到修复。

  • 短期修复 #2:对于那段代码,字符串赋值可能发生在 \dontrun{} 块之外(这正是造成这种情况的原因)。把它搬出去,就可以继续充氧了。

  • 长期修复:向上述 URL.

  • 提交问题