2012-01-23 5 views
12

Po prostu zaczynam od trybu org i do tej pory go uwielbiam. Widziałem, że możliwe jest wstawienie R w pliku trybu org i wykonanie go podczas eksportu. Ale mam problem z uzyskaniem org-babel (osadzanie kodu), aby wygenerować interesujący mnie wątek i osadzić wynikowy obraz zamiast kodu lub wyjścia z uruchomienia kodu.Osadzanie wykresów R w Latexie w trybie org.

Do tej pory mam to do pracy:

#+BABEL: :session *R* :results output graphics :exports both 
#+begin_src R :file img.pdf :results output graphics :session *R* 
hist(rnorm(100)) 
#+end_src 

#\includegraphics{img.pdf} 

Ale to nie jest tak przyjemne, jak mogłoby być. Najpierw zawsze podpowiada mi, czy chcę wykonać kod R, a po drugie, chciałbym wyeliminować instrukcję \includegraphics.

Czy to w ogóle możliwe?

+1

Możesz spróbować użyć 'tikzDevice' po stronie R i' \ usepackage {tikz} 'po stronie LaTeX ... co wyeliminuje potrzebę przynajmniej' \ includegraphics'. Grafika OTOH TikZ może być bardzo powolna, szczególnie jeśli twoja fabuła ma wiele punktów. – zwol

Odpowiedz

14

Kilka rzeczy: 1) Tryb Org bardzo się zmienił ostatnio, szczególnie w.r.t. Bloki Babel i src - pobierz najnowszą wersję z repozytorium git (sprawdź FAQ, aby dowiedzieć się, jak to zrobić). 2) Nie używamy już linii #+BABEL, teraz są one wykonywane liniami #+PROPERTY, 3) Włączenie grafiki odbywa się automatycznie. Osoba nie powinna w ogóle robić wcale (chyba że chcesz poprawić domyślne zachowanie, np. Umieszczanie napisów).

Na przykład, oto co prosta wersja swoim przykładzie będzie wyglądać pod najnowszą wersją trybie Org:

#+TITLE: tester.org 
#+PROPERTY: session *R* 
#+PROPERTY: results output 

* Headline here 

Here is some text. 

#+begin_src R :exports both :results graphics :file img.pdf 
hist(rnorm(100)) 
#+end_src 

właśnie testowane na moim komputerze i działa jak czar. Ostatnia rzecz - bardzo polecam zasubskrybowanie listy mailingowej w trybie Org, ponieważ to miejsce, w którym zobaczysz toczące się dyskusje na temat BABEL, PROPERTY i całej gamy innych rzeczy.

Nawiasem mówiąc, linia #+PROPERTY: results output nie jest krytyczna, tak właśnie robię, ponieważ jest bardziej podobna do tego, czego oczekuję od Sweave.

+0

Znowu czytam twoje pytanie i wygląda na to, że nie chcesz aby echo "hist (rnorm (100))" zostało powtórzone. Zamiast ': export both' po prostu wykonaj': export results'. –

+1

Ponadto, tak, "zapytaj o ocenę kodu" jest denerwujące. Omawiają to w podręczniku Org, ale krótka odpowiedź brzmi: "C-h v org-confirm-babel-assess". Chcesz ustawić go na 'nil'. –

+0

Miałeś oczywiście rację. Postępowałem zgodnie z opisem na http://orgmode.org/worg/org-faq.html#sec-4-2, aby uzyskać przewagę nad innymi, a teraz działa dokładnie tak, jak się spodziewałem. – cdecker