Когда я использую 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