2012-01-23 37 views
12

我剛剛開始使用org-mode,至今我很喜歡它。我已經看到可以在組織模式文件中插入R並在導出時執行它。但是在獲取org-babel(代碼嵌入)以生成我感興趣的繪圖並嵌入結果圖像而不是代碼或運行代碼的輸出方面,我遇到了一些麻煩。通過org-mode在乳膠中嵌入R圖

到目前爲止,我得到這個工作:

#+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} 

但它不是一樣好,因爲它可以。首先,它總是提示我是否要執行R代碼,其次我想消除\includegraphics指令。

這可能嗎?

+1

你可以嘗試在R端使用'tikzDevice'和在LaTeX端使用'\ usepackage {tikz}'這樣可以至少消除對'\ includegraphics'的需求。 OTOH TikZ圖形可能非常緩慢,特別是如果你的情節有很多點。 – zwol

回答

14

幾件事情:1)最近組織模式發生了很大變化,特別是w.r.t. Babel和src塊 - 從他們的git倉庫獲取最新版本(查看常見問題了解詳細信息)。 2)我們不再使用#+BABEL行,那些行現在用#+PROPERTY行完成,3)包含圖形自動完成。一個人根本不需要做一個\includegraphics{}(除非你想調整默認行爲,比如標題放置)。

舉例來說,這裏是你的榜樣的簡單版本會是什麼樣下一個新版本的組織模式:

#+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 

我只是測試我的機器上,它就像一個魅力。最後一件事 - 我強烈建議你訂閱Org模式郵件列表,因爲這是這個地方你會看到關於BABEL,PROPERTY和一大堆其他東西的討論。

順便說一句,#+PROPERTY: results output線路並不重要,這正是我通常所做的,因爲它更像我期待的Sweave。

+0

我再次讀你的問題,看起來你不希望'hist(rnorm(100))'被回顯。而不是':出口都'只是':出口結果'。 –

+1

另外,是的,「要求評估代碼」很煩人。他們在組織手冊中討論這個問題,但簡單的答案是做'C-h v org-confirm-babel-evaluate'。你想把它設置爲'nil'。 –

+0

你當然是對的。我遵循了http://orgmode.org/worg/org-faq.html#sec-4-2上的描述以獲得最大的優勢,現在它正如我所料。 – cdecker