Cuando uso Sweave
con R
, puedo evitar nombrar explícitamente los archivos de trazado simplemente encerrando los comandos de trazado dentro de un fragmento de código como <<fig=TRUE>> ... @
. El conductor Sweave
genera automáticamente archivos de trazado numerada como fig1.pdf
, fig2.pdf
, etc.Modo R + Org: ¿cómo evitar nombrar archivos de trazado?
Sin embargo, en org-mode
, parece que tengo que indicar el nombre de archivo de la figura usando un :file [...].pdf
en la cabecera, por ejemplo,
#+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
¿Hay alguna manera de evitar de manera explícita el nombre del archivo trama, y haga que el motor de exportación de látex-org modo de generar estos nombres de archivo?
Actualización: Estoy incluyendo la solución que G. Jay Kerns señaló aquí para una fácil referencia: todo lo que necesita hacer es incluir una temp-file-generación de la función Emacs Lisp en la cabecera, como :file (org-babel-temp-file "./figure-" ".pdf")
. Esto crea un archivo de figura temporal en el directorio actual (debido al ./
). Si desea que la figura de archivo temporal en un directorio temporal mundial (definida por la variable org-babel-temporary-directory
), a continuación, sólo decir ".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
¡Gracias, funcionó muy bien! –