【发布时间】:2015-05-21 08:00:53
【问题描述】:
我正在编写一个 R 包并使用 roxygen2 创建文档。我使用 RStudio 中的按钮 Build & Reload 构建包和文档。根据 RStudio 的输出,它使用devtools::document(roclets=c('rd', 'namespace')) 编译文档。
我想使用@family 标记将文档中的许多函数链接在一起,这就是我的问题所在。这一行
#' @family functions returning some object
在.Rd文件中转换为如下
\seealso{
Other functions.returning.some.object: \code{\link{test2}}
}
我不想要单词之间的点。我有一个较旧的包,即使我以与编译新包完全相同的设置重新编译文档,也不会发生这种情况。我看不出这个旧包和我的新尝试之间没有根本区别。
我写了一个非常简单的测试包,问题也出现了。它包含一个 R 文件 (testpackage.R):
#' Test function 1
#'
#' @param x a number
#'
#' @family functions returning some object
#' @family aggregate functions
#'
#' @export
test1 <- function(x) {
x*x
}
#' Test function 2
#'
#' @param x a number
#'
#' @family functions returning some object
#' @family aggregate functions
#'
#' @export
test2 <- function(x) {
x*x*x
}
描述文件是
Package: testpackage
Type: Package
Title: Package for testing purposes
Version: 1.0
Date: 2015-05-21
Author: Me
Maintainer: Me <me@somewhere.com>
Description: Package for testing purposes
License: GPL-3
NAMESPACE 由 roxygen 生成。对于文档test1.Rd,我得到:
% Generated by roxygen2 (4.1.1): do not edit by hand
% Please edit documentation in R/testpackage.R
\name{test1}
\alias{test1}
\title{Test function 1}
\usage{
test1(x)
}
\arguments{
\item{x}{a number}
}
\description{
Test function 1
}
\seealso{
Other aggregate.functions: \code{\link{test2}}
Other functions.returning.some.object: \code{\link{test2}}
}
在\seealso 部分中带有不需要的点。显然,@family 标签中的字数似乎无关紧要。我试过用引号、各种括号等将文本括起来,但没有任何积极作用。当然,我可以编辑 Rd 文件,但这会错过使用 roxygen2 的意义。
R CMD check 在testpackage 上运行时不会出现警告或错误。
为什么会出现这些点?我怎样才能摆脱它们?
【问题讨论】:
-
实际上,我发现@family 在我的 .Rd 文件中没有输出,在 R-3.2.3 上使用 Roxygen2-4.1.1;可能这只是尚未发布的 Roxygen2 版本的功能。
-
但它确实为我产生了输出,所以不可能不支持此功能。我认为,您需要将相同的
@family标签添加到至少两个函数中,才能有输出。 -
对不起,@Stibu,你是对的。我现在得到了家庭信息,但有那些丑陋的点,就像你得到的那样。