2012-02-21 17 views
12

Sono in procinto di documentare alcune delle mie funzioni per un pacchetto R che sto facendo.Come riferimento incrociato un'equazione in un file di aiuto R/roxygen2

Uso il markup del roxygen, sebbene ciò sia in gran parte irrilevante per la mia domanda.

Ho messo equazioni nella mia documentazione usando \deqn{...}. La mia domanda è: C'è un modo per fare un riferimento incrociato a questa equazione in seguito?

Per esempio, nel mio file Rd:

\deqn{\label{test} 
y = mx + b 
} 

Posso poi fare qualcosa di simile:

riferimento all'equazione \ ref {test}, ...

ho provato \eqref{test}, \ref{test} (che sia ottenere "macro sconosciuto" e non farsi linked), e anche \link{test} (che comp non può trovare la funzione test perché è davvero solo per il collegamento ad altre funzioni).

altrimenti temo che possa avere a che fare qualcosa di hacky e aggiungere nella risposta generale -- (1) e Refer to equation (1)manualmente all'interno della \deqn etc nel file Rd ...

Aggiornamento

sembra essere " no". (awww ...)

Tuttavia, posso scrivere una vignetta e utilizzare "normali" latex/pacchetti lì. In ogni caso, ho appena notato che le equazioni matriciali che ho passato invecchiando nel mio file roxygen/Rd appaiono orribili nella versione ?myFunction dell'aiuto (si presentano come fonti letterali di lattice di tipo just-about). Il che è un peccato, perché sono belli nella versione pdf dell'aiuto.

@Iterator ha sottolineato l'esistenza di conditional text, quindi dovrò fare la matematica ASCII nei file .rd, ma la matematica lattice nel pdf manuale/vignetta.

+0

La domanda interessante e, in effetti, il riferimento manuale dell'equazione #s non è sostenibile. Dato che il formato '.Rd' è il LaTeX più basilare e non supporta le estensioni AMS, non sono sicuro che sia fattibile. Potrebbe essere che devi usare una vignetta per questo. – Iterator

+0

Al momento ho un sacco di "Nell'equazione sopra ..." "Nella grande equazione della matrice ..." - è un po 'imbarazzante! (Non ho troppe equazioni per file Rd però - potrei abbassarmi ad hackerare un "- (1)" nel 'deqn' e poi dire" Riferisci all'equazione 1 "nel testo..ma si sente così sbagliato!) –

+1

Forse una vignetta è un modo migliore per andare? Non sono ancora particolarmente familiare con il formato .Rd, ma non sono particolarmente attratto da un formato di documentazione che sembra essere un sottoinsieme di LaTeX. La tua domanda è buona, ma, IMO, è perché indica un difetto nell'approccio .Rd o un difetto nella documentazione per l'approccio .Rd. (Sto anche iniziando a documentare un sacco di codice ed equazioni, quindi ho una domanda simile nella mia coda di domande da indagare.) – Iterator

risposta

5

Sto compilando i miei commenti sopra in una risposta, per il bene degli altri.

In primo luogo, in realtà non so se .Rd supporta o meno la codifica delle equazioni. Tuttavia, il formato .Rd è un sottoinsieme così ristretto di LaTeX e produce un output di testo molto primitivo, che risolvendo le equazioni estese nel suo formato potrebbe essere un'impresa dolorosa senza troppi benefici per l'utente.

L'alternativa è quella di utilizzare package vignettes, o anche la documentazione ospitato esternamente (come è fatto da Hadley Wickham, per alcuni dei suoi pacchetti). Ciò ti consentirà di utilizzare PDF o altra documentazione, a tuo piacimento. In questo modo, puoi includere screenshot, grafici, tutte le estensioni LaTeX più divertenti che hai solo tu e, soprattutto, le estensioni AMS che tutti conosciamo e amiamo.

Tuttavia, è possibile specificare il rendering diverso di una determinata sezione di documentazione (in .Rd) in base all'interfaccia, ad esempio testo per la console, caratteri carini per HTML, ecc. E supporta questo tipo di variazione di formato .

È una buona domanda.Non conosco la risposta relativa alla fattibilità, ma ho avuto domande simili sulla documentazione di funzioni ed equazioni insieme, e questa ricerca su ciò che è fattibile con i file .Rd mi ha convinto a usare vignette PDF piuttosto che file .Rd.

+0

Ah, mi hai battuto - vedo che l'aggiornamento ha le stesse conclusioni. :) – Iterator

+0

Anche se adoro la documentazione stessa di Hadley, non sono un fan del fatto che tutti i suoi file di aiuto dicano "rimandi al sito web" - mi infastidisce fino alla fine quando vado in "qualche funzione" e poi devo apri un browser web e copia/incolla l'URL in. Nel caso di 'ggplot2' penso che questo sia giustificato, dato il modo in cui la documentazione è dipendente dalla grafica, ma non è un percorso che mi piacerebbe andare giù. –

+1

Ne sono d'accordo anche per la documentazione elementare. Tuttavia, attualmente sto utilizzando wiki con tecnologia LaTeX per la documentazione del software, con supporto per forum, bug tracking e altro ancora, quindi anche un PDF statico è un passo indietro. :) C'è qualcosa da dire sull'avere documentazione che si evolve separatamente dal codice, come essere in grado di offrire nuovi esempi di utilizzo o revisioni della documentazione basata sul feedback. C'è un equilibrio tra l'offerta di un riferimento rapido e il supporto di una documentazione completa. – Iterator