2012-12-26 11 views
17

Ich verwende \deqn{}{} mit roxygen2, um Gleichungen für eine Funktion in einem Paket zu dokumentieren. Das LaTeX (das erste Argument zu deqn) wird gut dargestellt, weil Leerraum in LaTeX-Gleichungen ignoriert wird, aber ich habe ein Problem mit der ASCII-Darstellung (das zweite Argument zu deqn).Dokumentieren von Gleichungen mit deqn und roxygen

Das Problem ist, dass meine Formatierung zerstört wird (es scheint, dass roxygen setzt den gesamten deqn Befehl auf eine "einzelne Zeile" und dann umschließt diese Zeile bei ~ 60 Spalten oder so). Gibt es eine Möglichkeit, roxygen2 zu zwingen, die Leerraumformatierung in meinen roxygen-Befehlen/-Kommentaren in der .R-Datei beizubehalten?

Ich habe den folgenden Code in einer Datei, 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) { 
} 

Und ich benutze den folgenden R-Code für die example.Rd-Datei zu generieren:

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

Sie können erzeugen die Textdarstellung der example.Rd-Datei mit diesem Befehl in der Befehlszeile:

Der Einzelheiten Abschnitt der Ausgabe aus dem obigen Befehl wie folgt aussieht:

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

während ich es möchte aussehen:

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

Siehe [meine Antwort auf eine verwandte Frage] (http://Stackoverflow.com/a/17655069/946850) für einen experimentellen Ansatz für das Problem. – krlmlr

Antwort

13

According to Hadley Wickham, Zeilenumbruch wird in zukünftigen Versionen von entfernt werden Roxygen. Daher besteht die Lösung für roxygen2 darin, die Datei (oder das Paket) zu roxygenisieren und dann die Textgleichung in den betroffenen .Rd Datei (en) manuell zu aktualisieren.

+0

+1 für @hadley, um über Twitter zu antworten – Andrie

+0

Sie müssen den Like-Button drücken, wenn Sie ein großes Lob geben möchten. – StingyJack