2012-12-26 14 views
17

Sto usando \deqn{}{} con roxygen2 per documentare le equazioni per una funzione in un pacchetto. Il LaTeX (il primo argomento a deqn) viene visualizzato correttamente perché lo spazio bianco viene ignorato nelle equazioni di LaTeX, ma ho un problema con la rappresentazione ASCII (il secondo argomento a deqn).Documentazione delle equazioni con deqn e roxygen

Il problema è che la mia formattazione viene distrutta (sembra che roxygen inserisca l'intero comando deqn su una "riga singola" e quindi avvolga quella riga a ~ 60 colonne o giù di lì). C'è un modo per forzare roxygen2 a preservare la formattazione dello spazio bianco nei miei comandi/commenti di roxygen nel file .R?

Ho il seguente codice in un file, 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) { 
} 

E io uso il seguente codice R per generare il file 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", ".") 

è possibile generare la rappresentazione del testo della esempio.Rd file utilizzando questo comando nella riga di comando:

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

La Dettagli sezione del output del comando sopra appare come:

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

mentre io vorrei per assomigliare:

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

Vedere [la mia risposta a una domanda correlata] (http://stackoverflow.com/a/17655069/946850) per un approccio sperimentale al problema. – krlmlr

risposta

13

According to Hadley Wickham, linea di confezionamento verrà rimossa nelle future versioni di roxygen. Quindi la soluzione per roxygen2 è di eseguire il roxygenize del file (o del pacchetto), quindi aggiornare manualmente l'equazione del testo nei file interessati .Rd.

+0

+1 per ricevere @hadley per rispondere via twitter – Andrie

+0

Devi premere il pulsante Mi piace se vuoi dare i miei complimenti. – StingyJack