2009-09-04 27 views
18

Szukam usprawnienia mojego tworzenia dokumentów Sweave i chcę poznać bieżące ustawienia użytkowników. Czuję się jak Święty Graal wychodzi coś takiego:Zalecenia dotyczące rozwijania dokumentów Sweave

kodu
  • Montaż RNW na jednej połowie ekranu
  • pojedyncze kombinacja klawiszy kompiluje Sweave dokument i biegnie pdfLaTeX
  • Zobacz PDF na drugą połowę ekran; raz skompilowany, PDF jest odświeżony i wokół części dokumentu edytowania
  • Jeśli kompilacja zawiera błędy, wymienić PDF z wynikami kompilacji (np lateksowe błędów lub błędów Sweave)

Zgaduję/mam nadzieję, że rozwiązaniem jest część Emacs/ESS w połączeniu z pewnym kodem dla profilu Emacs i/lub ładnym Makefile. Ale naprawdę chciałbym usłyszeć o preferowanym sposobie tworzenia dokumentów Sweave i/lub Latex.

Odpowiedz

9

Kilka innych użytkowników R, z którymi rozmawiałem, używa konfiguracji "jeden katalog dla każdego projektu" i zwykłego pliku Makefile. Jak podejrzewasz, działa to dobrze z Emacs/ESS.

Zwykle nazywam prostym skryptem powłoki sweave, który napisałem wcześniej przed dodaniem "R CMD Sweave" (ponieważ znajduję ponowne tworzenie lub kopiowanie Makefile nieprzyjemnego, YMMV). Używam również Emacsa i automatycznie odświeżającej przeglądarki pdf (jak okular lub kpdf). Emacs23 może również wyświetlać podgląd plików PDF bezpośrednio, ale muszę jeszcze zmienić mój przepływ pracy.

[email protected]:~$ cat bin/sweave 
#!/bin/bash -e 

function errorexit() { 
    echo "Error: $1" 
    exit 1 
} 

function filetest() { 
    if [ ! -f $1 ]; then 
     errorexit "File $1 not found" 
    fi 
    return 0 
} 


if [ "$#" -lt 1 ]; then 
    errorexit "Need to specify argument file" 
fi 


BASENAME=$(basename $1 .Rnw) 

RNWFILE=$BASENAME.Rnw 
filetest $RNWFILE 
echo "library(tools); Sweave(\"$RNWFILE\")" \ 
     | R --no-save --no-restore --slave 

LATEXFILE=$BASENAME.tex 
filetest $LATEXFILE && pdflatex $LATEXFILE 
6

Możesz zrobić wszystko, co sugerujesz, dzięki wtyczce StatET dla Eclipse. Właśnie tego używam do rozwoju Sweave; Rozumie dobrze zarówno lateks, jak i R, w tym podświetlanie składni, itp.

Możesz go pobrać tutaj: http://www.walware.de/goto/statet.

Longhow Lam napisał ładny przewodnik: http://www.splusbook.com/Rintro/R_Eclipse_StatET.pdf.

http://www.statalgo.com/?p=93

+2

Zgadzam się. Sweave, StatET i Eclipse działają dobrze razem. Napisałem post opisujący jeden ze sposobów konfigurowania Sweave za pomocą Eclipse http://bit.ly/adfhZ1 –

+0

(link do splusbook jest uszkodzony, jednak googlowałem, a następująca, pozornie równoważna, alternatywa, zadziałała dla mnie: http: // www .splusbook.com/RIntro/R_Eclipse_StatET.pdf) – isomorphismes

1

Używam "projekt jeden katalog-per-" i podejście Makefile, jak również. Mam również polecenia do tworzenia danych wyjściowych w HTML, które można następnie przekonwertować na OOo i MS Word, używając tth. Jest to dla mnie ważne, ponieważ wielu moich współpracowników to użytkownicy MS Office i są odporni na używanie plików PDF. Wiele się nauczyłem, jak to zrobić z twiki Franka Harrella w Vanderbilt.

Osobiście używam gvima jako mojego edytora wyboru i działa make od tam jest dość prosty, jak to jest z Emacs.

6

Używam TeXShop na OS X do tworzenia wszystkich moich raportów LaTeX i Sweave. Dla mnie nowa kompilacja rurociąg jest tak proste jak dodanie pliku o nazwie Sweave.engine do ~/Library/TeXShop/Engines/ który zawiera następujące elementy:

#!/usr/bin/env Rscript 
args <- commandArgs(T) 

fname <- strsplit(args[1],'\\.')[[1]][2] 

Sweave(paste(fname,'Rnw',sep='.')) 

system(paste('pdflatex',paste(fname,'tex',sep='.'))) 

Sweave obecnie jest wybierana metoda kompilacji dokumentu wewnątrz TeXShop.Mogę ustawić go jako domyślny dla danego dokumentu poprzez dodanie następującego skrótu TeX-bang na początku pliku:

% !TEX TS-program = Sweave 

Hitting CMD-T będzie przygotowana utrwalali pdf automatycznie pojawia się w oddzielnym okno. TeXShop zawiera również technologię SyncTeX, więc Cmd-Click w źródle Rnw podświetli odpowiednie dane wyjściowe w oknie PDF, a Cmd-Click w oknie PDF podświetli odpowiednie wejście w źródle Rnw.

TeXShop jest tylko mac ale wielki klon Qt/poppler oparte, TeXworks, jest dostępny dla systemów Linux, Windows i Mac i obsługuje wiele z tego samego features-- tym TeX haszowe grzywką i SyncTeX. TeXworks osiągnął poziom dojrzałości, jeśli jest zawarty w wersji 2.8 pakietu MikTeX dla systemu Windows.

+0

Podoba mi się bezpośrednie użycie Rscript! Tak wiele rozwiązań wywołuje powłokę, która wywołuje R ... Dla zapisu, 'strsplit' i' paste' dla obsługi rozszerzeń nazw plików nie są konieczne - zarówno 'Sweave' i' pdflatex' automatycznie dodają rozszerzenie. –

+0

Myślę, że było to konieczne w momencie, gdy pisałem ten post, ponieważ TeX Shop przekazał do silnika całą nazwę pliku, 'File.Rnw'. 'Sweave' będzie z tym w porządku, ale' pdflatex' będzie się dusić. – Sharpie

+0

A więc - mówisz, że masz kliknięcie cmd pomiędzy plikami .Rnw i .pdf. Musiałeś też przeskoczyć przez te obręcze: http://cameron.bracken.bz/synctex-with-sweavepgfsweave-in-texshoptexworks –

2

Jedną z rzeczy, która zaoszczędziła mi trochę czasu, jest tryb "automatycznego wstawiania" w emacs. Mam go tak skonfigurowany, że za każdym razem, gdy otworzę nowy plik .rnw, emacs automatycznie skonfiguruje podstawowy szablon dokumentu i wszystko, co muszę zrobić, to zacząć pisać mój raport.

Aktualizacja: Wyłączyłem automatyczne wstawianie. Teraz używam podejścia "template.el".

3

Wypróbuj RStudio.

Byłem fanem Emacs i TeXShop jak wspomniano w poprzednich odpowiedziach.

Jednak Rstudio zaczyna mnie zdobywać. Jest to szybko ulepszone dedykowane IDE dla R. Zdecydowanie warte sprawdzenia.

Nadal uwielbiam wykonywać niektóre zadania programistyczne tylko R w standard R IDE dla mac. Ale w przypadku dokumentów Sweave i niektórych związanych z R devel w tym samym czasie, RStudio wygrywa. Działa z praktycznie zerowym dopasowaniem. Nie jestem pewien co do funkcji związanych z PDFem w drugiej połowie pierwotnego pytania.

Powiązane problemy