【问题标题】:How do you escape "}" using roxygen2?如何使用 roxygen2 转义“}”?
【发布时间】:2016-05-21 08:23:38
【问题描述】:

我正在使用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 日

official response 来自 Hadley 的问题

解决这个问题非常困难(据我所知,这需要编写一个相当复杂的 Rd 解析器),而且这种情况很少发生,所以实际上这永远不会在我的待办事项列表中占据足够高的位置来解决它。

【问题讨论】:

    标签: r roxygen2


    【解决方案1】:

    TLDR:长期修复:文件an issue

    你“幸运”了这个构建,因为你有足够的 } 来克服一些 Rd 安装错误。

    我什至尝试使用 @example inst/examples/ex.r 并放置代码(使用 \dontrun{} 包装器,因为它在那里受支持)并且该方法也会发生同样的事情,因为相同的 roxygen 解析/翻译代码似乎也在其中.

    • 短期修复 #1:手动编辑生成的 Rd 文件,为每个 } 执行单个 \}。为了避免意外覆盖,请生成一次,进行修复,然后对该函数进行除氧,直到修复为止。

    • 短期修复 #2:对于那段代码,字符串分配可能发生在 \dontrun{} 块之外(这确实是造成这种情况的原因)。将其移出,您可以继续进行氧合。

    • 长期修复:向上述 URL 提交问题。

    【讨论】:

    • 也许#3:将字符串中的} 替换为\u007d。没试过,但应该可以。
    • 我已经扩展了 #2 并删除了 \dontrun{ }。该示例可以愉快地运行:)
    • @lukeA - 是的,这似乎也有效,谢谢。但是,我想保持字符串“原样”,所以我也提交了一个问题。
    • 我已经用 Hadley 的回复更新了我的问题 - 这个问题不太可能得到解决。
    猜你喜欢
    • 1970-01-01
    • 2012-08-15
    • 2022-09-30
    • 2015-06-25
    • 2011-11-13
    • 1970-01-01
    • 2011-11-14
    • 2022-01-02
    相关资源
    最近更新 更多