Создание элементов с несколькими аргументами в документации 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{...}, но ни один из них не работал должным образом.

Вопрос

Есть ли способ создать вывод, как в моей Цели? Может быть, какой-нибудь escape-символ, который вводит пробел?

Спасибо.
Свен


person setempler    schedule 14.08.2014    source источник
comment
Это пакет roxygen2, который генерирует справочные страницы, а не devtools.   -  person Richie Cotton    schedule 14.08.2014
comment
Итак, devtools использует roxygen2?   -  person setempler    schedule 14.08.2014
comment
да. Если вы посмотрите на packageDescription("devtools"), вы увидите, что roxygen2 находится в разделе «Предложения». Это означает, что используется roxygen2, но devtools, но это не обязательно для его использования. (Например, вы можете использовать devtools, но вручную написать документацию, и в этом случае вам не понадобится roxygen2.)   -  person Richie Cotton    schedule 14.08.2014
comment
Спасибо, пояснил это в моем вопросе.   -  person setempler    schedule 14.08.2014


Ответы (2)


Теперь он работает с roxygen2 6.0.1:

#' @param arg1,arg2 Description

(без пробела после запятой) дает

\arguments{
  \item{arg1, arg2}{Description}
}

(с пробелом после запятой).

person jarauh    schedule 14.05.2018

Я не нашел способа убедить 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)

Конечно, документирование нескольких вещей за один раз может сбить читателя с толку. Почти всегда лучше придерживаться соглашения об одном описании аргумента в строке, поскольку именно этого ожидает читатель.

person Richie Cotton    schedule 14.08.2014
comment
Есть новости по этому поводу? Вы случайно не подали заявку на roxygen2 github? - person Henrik; 27.10.2014
comment
@ Хенрик Я не заявлял о проблеме, но не стесняйтесь отправлять ее самостоятельно. - person Richie Cotton; 27.10.2014