2012-12-26 12 views
17

Używam \deqn{}{} z roxygen2 do dokumentowania równań dla funkcji w pakiecie. LaTeX (pierwszy argument do deqn) daje się dobrze, ponieważ białe spacje są ignorowane w równaniach LaTeXa, ale mam problem z reprezentacją ASCII (drugi argument na deqn).Dokumentowanie równań z deqn i roxygen

Problem polega na tym, że moje formatowanie zostało zniszczone (wygląda na to, że parametr "rxgen" umieszcza całe polecenie deqn na "pojedynczej linii", a następnie owija tę linię na około 60 kolumn). Czy istnieje sposób na zmusić roxygen2 do zachowania formatowania białej przestrzeni w moich komendach/komentarzach z roxygenu w pliku .R?

Mam następujący kod w pliku, 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) { 
} 

I użyć następującego kodu R, aby wygenerować plik 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", ".") 

można generować reprezentację tekstu plik example.Rd za pomocą tego polecenia w wierszu polecenia:

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

Szczegóły odcinek wyjściu z powyższego polecenia wygląda następująco:

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

natomiast chciałbym go wyglądać:

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

Zobacz [moja odpowiedź na powiązane pytanie] (http://stackoverflow.com/a/17655069/946850) dla eksperymentalnego podejścia do problemu. – krlmlr

Odpowiedz

13

According to Hadley Wickham, owijanie linia zostanie usunięta w przyszłych wersjach rtęć. Zatem rozwiązaniem dla roxygen2 jest zapisanie pliku (lub pakietu), a następnie ręczna aktualizacja równania tekstu w pliku (plikach) dotkniętych problemem.

+0

+1 za otrzymanie @hadley, aby odpowiedzieć za pomocą Twittera – Andrie

+0

Musisz nacisnąć przycisk Lubię, jeśli chcesz dać uznanie. – StingyJack