Ссылка на метод S4 в файле.rd?

Я пишу пакет с классом S4, и я написал методы для as.POSIXct а также as.POSIXlt для класса. Я написал документацию и все выглядит хорошо, за исключением того, что я хотел бы сослаться на as.POSIXct метод в документации для as.POSIXlt, и наоборот. Я старался \S4method{coerce}{abc, POSIXct}(from, to), (где 'abc' - класс S4), но это должно быть указано только в \usage раздел, который не там, где я хочу. Есть ли способ сделать это? Мне кажется странным, что это не будет разрешено.

Я понимаю, что можно объединить эти RD-файлы и избежать этой проблемы, но я стараюсь узнать как можно больше о классах и пакетах в R, так что в любом случае это меня интересует.

Вот скелет одного из файлов.Rd:

\name{as.POSIXct-methods}
\docType{methods}
\alias{as.POSIXct-methods}
\alias{as.POSIXct,ANY-method}
\alias{as.POSIXct,abc-method}
\title{\code{abc} Method for Function \code{as.POSIXct}}
\description{
\code{as.POSIXct} method to coerce timestamps in \code{abc} objects into 
\code{POSIXct} format.
}
\section{Methods}{
\describe{
~~description here~~

\item{\code{signature(x = "ANY")}}{
default implementation (from base)
}

\item{\code{signature(x = "abc")}}{
implementation for \code{\link{abc}} objects. 
~~more description of function~~
See \code{\linkS4class{abc}} for more about abc objects.
See also \code{\link[abc]{as.POSIXlt}} for the corresponding \code{POSIXlt} method.
}
}}
\keyword{methods}

Четвертая снизу строка вызывает проблемы.

2 ответа

Решение

Основной формат для ссылки

\link{foo}

где foo появляется на некоторой странице справки (в том же пакете) как \alias{foo}, Так что, если ваш другой пакет имеет \alias{as.POSIXlt,abc-метод} (обратите внимание на отсутствие пробелов), тогда

\link{as.POSIXlt,abc-method}

Добавление [abc] необходимо только при связывании с другими пакетами, и тогда семантика сбивает с толку (в \link[abc]{foo}, foo - это имя страницы справки HTML, а не, например, псевдоним). Добавление \code{} является наценкой, поэтому не имеет непосредственного отношения к созданию ссылки. Приведенная выше ссылка вставляет "as.POSIXlt,abc-method" на страницу справки, которая может быть более информативной (или нет), чем произвольный тег \ alias, который может присутствовать.

В разделе " Перекрестные ссылки" расширений Writing R вы можете создавать ссылки на другие страницы справки, например:

\code{\link[base]{as.POSIXct}}

Где "base" - это имя пакета (я не думаю, что [base] необходимо, но если бы это был другой пакет, он был бы)

Другие вопросы по тегам