Roxygen文档中的任意部分

97
Roxygen似乎是这样工作的:第一行是\title,剩下的全部在\details中,而且任何@foo指令都会处理这些内容。但R文档比这更丰富。我可以在.Rd文件中使用"\section{Llamas}{Are they ungulates?}"
但是我无法让Roxygen做除了将所有内容包裹在\details中以外的任何事情。我错过了什么吗?
我有一个笨拙的解决方案,就是在我的\section之前插入一个不匹配的}。这样就结束了\details部分。然后我不能放一个结尾的},因为Roxygen会插入一个,认为它正在关闭\details。非常麻烦。

2
非常好的问题。我猜测你是正确的,目前似乎无法做到这一点。但是,Hadley Wickham最近提到他掌握了roxygen未来发展的关键,所以我希望在不久的将来会出现一些令人惊奇的东西。 - Andrie
4
根据您想要了解的深度,您可以提出帮助Hadley完成他正在做的事情。我知道他的工作很棒,但毕竟,“威尔,他只是一个普通人,你知道吗?” 您可以查看Hadley在GitHub上发布的代码 https://github.com/hadley/roxygen ,也许给他发送一封电子邮件并询问他... - PaulHurleyuk
1
当然。我也看到过哈德利在这里,所以他可能已经知道了。起初我以为我在文档中漏掉了什么,比如“@section Llamas”之类的指令。 - Spacedman
6
我非常喜欢羊驼。就这样。 - JD Long
3
请参考roxygen2中的@section标签。 - hadley
1个回答

27

这个支持已经被添加了(至少在roxygen2中)。你只需要添加@section Llamas:,然后在遇到新指令之前的任何内容都将位于Llamas部分。以下是一个例子

#' Llama llama llama
#' 
#' More about llamas
#' 
#' @section Llamas:
#' Are they ungulates?
#' 
#' @section Not llamas:
#' This section is not about llamas.  It is not very interesting.
#' 
#' @param notused A parameter that isn't used at all!
#' @export
llama <- function(notused){
    return("LLAMA LLAMA LLAMA")
}

以下是.Rd文件的内容:
\name{llama}
\alias{llama}
\title{Llama llama llama}
\usage{
  llama(notused)
}
\arguments{
  \item{notused}{A parameter that isn't used at all!}
}
\description{
  More about llamas
}
\section{Llamas}{
  Are they ungulates?
}

\section{Not llamas}{
  This section is not about llamas.  It is not very
  interesting.
}

请注意,部分标题不能包含任何冒号“:”。 - Dan Chaltiel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接