Документирование уравнений с deqn и roxygen

17

Я использую \deqn{}{} с roxygen2 для документирования уравнений для функции в пакете. LaTeX (первый аргумент deqn ) отлично отображает, потому что пустое пространство игнорируется в уравнениях LaTeX, но у меня есть проблема с представлением ASCII (второй аргумент для deqn ).

Проблема в том, что мое форматирование уничтожено (похоже, roxygen помещает всю команду deqn в «одну строку», а затем обертывает эту строку на ~ 60 столбцов или около того). Есть ли способ заставить roxygen2 сохранить форматирование пробелов в моих командах / комментариях roxygen в .R-файле?

У меня есть следующий код в файле, example.R :

#'Example
#'
#'deqn ASCII example
#'
#'\deqn{ \sigma = \sqrt{ \frac{Z}{n} \sum
#'  \left[ \textstyle\frac{1}{2}\displaystyle
#'    \left( \log \frac{H_i}{L_i} \right)^2  - (2\log 2-1)
#'    \left( \log \frac{C_i}{O_i} \right)^2 \right] }
#'}{sqrt(N/n * runSum(0.5 * log(OHLC[,2]/OHLC[,3])^2 -
#'           (2*log(2)-1) * log(OHLC[,4]/OHLC[,1])^2, n))}
#'
#'@param x An example parameter
#'@return A example result
#'@author Joshua Ulrich
#'@keywords ts
#'@export
"example" <-
function(x) {
}

И я использую следующий код R для создания файла example.Rd :

library(roxygen2)
setwd("dir/containing/example.R/")
dir.create("man",FALSE)
roclet <- rd_roclet()
roc_proc(roclet, "example.R", ".")
roc_out(roclet, "example.R", ".")

Вы можете создать текстовое представление файла example.Rd с помощью этой команды в командной строке:

R CMD Rd2txt dir/containing/example.R/man/example.Rd

Раздел Подробности для вывода из вышеприведенной команды выглядит так:

sqrt(N/n *
  runSum(0.5 * log(OHLC[,2]/OHLC[,3])^2 - (2*log(2)-1) *
  log(OHLC[,4]/OHLC[,1])^2, n))

, тогда как я хотел бы, чтобы он выглядел так:

sqrt(N/n * runSum(0.5 * log(OHLC[,2]/OHLC[,3])^2 -
         (2*log(2)-1) * log(OHLC[,4]/OHLC[,1])^2, n))
    
задан Joshua Ulrich 26.12.2012 в 14:56
источник
  • См. мой ответ на соответствующий вопрос для экспериментального подхода к проблеме. –  krlmlr 15.07.2013 в 15:13

1 ответ

13

Согласно Хэдли Уикхэму , перенос строк будет удален в будущих версиях roxygen. Таким образом, решение для roxygen2 заключается в роксигенизации файла (или пакета), затем вручную обновляет текстовое уравнение в затронутом файле .Rd .

    
ответ дан Joshua Ulrich 09.01.2013 в 18:17
  • +1 за получение @hadley ответа через твиттер –  Andrie 09.01.2013 в 18:19
  • Вы должны нажать кнопку «Like», если хотите дать престиж. –  StingyJack 09.01.2013 в 18:26