Roxygen2如何删除用法(usage)声明语句之间的自动空行?
roxygen2用法段空行自定义问题解答
roxygen2本身没有内置的配置项可以自定义同@rdname绑定的多个函数用法之间的空行规则,默认行为就是每个函数的用法语句之间都插入空行,不过你不需要手动修改生成的Rd文件,有两种成熟的替代方案可以实现你需要的格式:
方案1:手动指定@usage标签覆盖自动生成内容
你可以在第一个绑定到同一份文档的roxygen注释块里,直接按照你想要的格式写完整的用法声明,roxygen2会优先使用你手动写的@usage内容,不再自动拼接各个函数的用法生成空行,示例如下:
#' @rdname name #' @usage #' fun1(x, y) #' fun2(x, y) #' #' fun3(x, y) #' fun4(x, y) #' @export fun1 <- function(x, y) { ... } #' @rdname name #' @export fun2 <- function(x, y) { ... } #' @rdname name #' @export fun3 <- function(x, y) { ... } #' @rdname name #' @export fun4 <- function(x, y) { ... }
该方案的优势是灵活度极高,完全可以自定义用法段的格式;劣势是后续如果函数参数发生变更,需要同步更新@usage里的声明,避免和实际函数参数不一致。
方案2:构建流程加自动处理脚本
如果你不想手动维护@usage内容,可以在包的构建流程里加入一段轻量的处理脚本:遍历生成的man目录下的所有.Rd文件,匹配到\usage{}块后按照你需要的规则删除多余空行即可,全程自动运行不需要人工干预。
内容的提问来源于stack exchange,提问作者Karolis Koncevičius
相关产品推荐
相关产品推荐

