【问题标题】:Why does the @family tag add dots between words in roxygen2?为什么@family 标签会在 roxygen2 中的单词之间添加点?
【发布时间】: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 checktestpackage 上运行时不会出现警告或错误。

为什么会出现这些点?我怎样才能摆脱它们?

【问题讨论】:

  • 实际上,我发现@family 在我的 .Rd 文件中没有输出,在 R-3.2.3 上使用 Roxygen2-4.1.1;可能这只是尚未发布的 Roxygen2 版本的功能。
  • 但它确实为我产生了输出,所以不可能不支持此功能。我认为,您需要将相同的@family 标签添加到至少两个函数中,才能有输出。
  • 对不起,@Stibu,你是对的。我现在得到了家庭信息,但有那些丑陋的点,就像你得到的那样。

标签: r roxygen2 r-package


【解决方案1】:

这是roxygen2 中的一个错误——我已经记录了一个问题here。它实际上是由于使用了unstack(),它执行了一些不需要的转换。

【讨论】:

  • 谢谢,我很高兴终于有了对此的解释。您介意在此处添加错误报告中的解释吗?我认为它会很有用。
【解决方案2】:

我升级到 Roxygen 5.0.0(现在是 CRAN 版本),发现问题消失了。

【讨论】:

  • 我现在有 roxygen 5.0.1,不幸的是,问题仍然存在。你确定只有 roxygen 版本发生了变化吗?
  • 很抱歉,但我不能确定其他事情是否发生了变化。四天的时间从某种意义上来说不算太久,但对于一个正在积极发展的项目来说,已经是相当长的时间了。你和我也可能有完全不同的设置。我只能说,我很确定更新 roxygen 修复了它。
猜你喜欢
  • 2014-12-10
  • 2022-08-16
  • 1970-01-01
  • 2014-11-26
  • 2021-09-12
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多