Генерировать элементы с несколькими аргументами в документации R через roxygen2
Создать файл документации R (.Rd
) Я использую опцию пакета RStudio/Document с R 3.0.2, Linux 3.11, devtools 1.5, roxygen2 4.0.1.
Задача
Я хочу описать несколько аргументов функции в файле документации, например, в этом примере:
\arguments{
\item{arg1, arg2}{Description}
}
Здесь аргументы arg1
а также arg2
разделены пробелом Это приводит к автоматическому разрыву строки в HTML-версии.
проблема
Используя опцию RStudio/Document, пробел между двумя аргументами помещает второй в часть "Описание", например:
#' @param arg1, arg2 Description
станет
\arguments{
\item{arg1,}{arg2 Description}
}
Неуместное решение
Единственный способ сохранить оба аргумента внутри части "аргумент" - это не разделять пробелами, например:
#' @param arg1,arg2 Description
станет
\arguments{
\item{arg1,arg2}{Description}
}
Это нежелательно, поскольку при большем количестве аргументов столбец с аргументом занимает много места. Я пытался покинуть пространство с \
или же \\
а также включить все аргументы с \code{...}
, но ничего из этого не сработало так, как хотелось бы.
Вопрос
Есть ли способ создать вывод, как в моей цели? Может быть, какой-нибудь экранирующий символ, который вводит пробел?
Спасибо.
Sven
2 ответа
Теперь кажется, что работает с roxygen2 6.0.1:
#' @param arg1,arg2 Description
(без пробела после запятой) дает
\arguments{
\item{arg1, arg2}{Description}
}
(с пробелом после запятой).
Я не нашел способ убедить roxygen2
чтобы вы могли сгенерировать строку с пробелом между аргументами, но вы всегда можете вручную обновить файл Rd после вызова roxygenize
,
library(stringr)
filename <- "your package root/man/your_function.Rd"
lines <- readLines(filename)
lines <- str_replace(lines, fixed("\item{arg1,arg2}"), "\item{arg1, arg2}")
writeLines(lines, filename)
Конечно, документирование нескольких вещей за один раз может сбить читателя с толку. Почти всегда лучше придерживаться правила описания одного аргумента на строку, поскольку именно этого ожидает читатель.