R + Org-mode: как избежать именования файлов графиков?

Когда я использую Sweave с R, я могу избежать явного именования файлов с графиками, просто заключив команды с графиками в кусок кода типа <> ... @. Драйвер Sweave автоматически генерирует пронумерованные файлы сюжетов типа fig1.pdf, fig2.pdf и т.д.

Однако в org-mode, похоже, мне нужно явно назвать файл рисунка, используя :file [...].pdf в заголовке, например

#+attr_latex: width=8cm placement=[htbp]
#+begin_src R :results output graphics :exports results :file fig.pdf                                                                                                                                                                                                 
    require(ggplot2)                                                                                                                           
    a <- rnorm(100)                                                                                                                            
    b <- 2*a + rnorm(100)                                                                                                                      
    d <- data.frame(a,b)                                                                                                                       
    ggplot(d,aes(a,b)) + geom_point()                                                                                                          
#+end_src                                     

Есть ли способ избежать явного именования файла рисунка и заставить механизм экспорта латекса org-mode генерировать эти имена файлов?

Обновление: Я включаю решение, на которое указал Г. Джей Кернс, сюда для удобства: все, что вам нужно сделать, это включить в заголовок функцию emacs-lisp, генерирующую временные файлы, например :file (org-babel-temp-file "./figure-" ".pdf"). Это создаст временный figure-файл в текущем каталоге (из-за ./). Если вам нужен временный файл в глобальном временном каталоге (определяемом переменной org-babel-temporary-directory), то просто скажите ".figure":

#+attr_latex: width=8cm placement=[htbp]
#+begin_src R :results output graphics :exports results :file (org-babel-temp-file "./figure-" ".pdf")                                                                                                                                                                                                 
    require(ggplot2)                                                                                                                           
    a <- rnorm(100)                                                                                                                            
    b <- 2*a + rnorm(100)                                                                                                                      
    d <- data.frame(a,b)                                                                                                                       
    ggplot(d,aes(a,b)) + geom_point()                                                                                                          
#+end_src                                     
19
задан Prasad Chalasani 1 December 2011 в 14:29
поделиться