2012-01-23 11 views
12

Estoy empezando con org-mode y hasta ahora me encanta. He visto que es posible insertar R en el archivo org-mode y ejecutarlo al exportarlo. Pero tengo algunos problemas para obtener org-babel (el incrustado del código) para generar el gráfico que me interesa e incrustar la imagen resultante en lugar del código o la salida de ejecutar el código.Incrustar tramas R en Latex a través de org-mode

Hasta ahora Tengo que esto funcione:

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

pero no es tan agradable como podría ser. Primero, siempre me pregunta si quiero ejecutar el código R y, en segundo lugar, me gustaría eliminar la instrucción \includegraphics.

¿Es esto posible en absoluto?

+1

Podría intentar usar 'tikzDevice' en el lado R y' \ usepackage {tikz} 'en el lado de LaTeX ... eso eliminaría la necesidad de' \ includegraphics' al menos. Los gráficos OTOH TikZ pueden ser muy lentos, especialmente si su trama tiene muchos puntos. – zwol

Respuesta

14

Pocas cosas: 1) El modo Org ha cambiado mucho recientemente, especialmente w.r.t. Bloques Babel y src: obtenga la última versión de su repositorio de git (consulte las preguntas frecuentes para obtener detalles sobre cómo hacerlo). 2) Ya no usamos la línea #+BABEL, ahora se hacen con las líneas #+PROPERTY, 3) La inclusión de gráficos se realiza automáticamente. Una persona no debería necesitar hacer un \includegraphics{} en absoluto (a menos que desee modificar el comportamiento predeterminado, por ejemplo, para la colocación de subtítulos).

Por ejemplo, aquí es lo que una versión simple de su ejemplo se vería bajo una versión reciente de modo 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 

Acabo de probar en mi máquina y funciona como un encanto. Una última cosa: le recomiendo que se suscriba a la lista de correo del modo Org, porque es donde verá las discusiones en curso sobre BABEL, PROPERTY y un montón de cosas más.

Por cierto, la línea #+PROPERTY: results output no es crítica, es justo lo que suelo hacer porque es más de lo que esperaba de Sweave.

+0

Estoy leyendo su pregunta nuevamente y parece que no quería que se repitiera el 'hist (rnorm (100))'. En lugar de ': exports both' just do': exports results'. –

+1

Además, sí, el "preguntar para evaluar el código" es molesto. Discuten esto en el manual de Org, pero la respuesta corta es 'C-h v org-confirm-babel-evaluate'. Quieres configurarlo en 'nil'. –

+0

Usted tenía razón, por supuesto. Seguí la descripción en http://orgmode.org/worg/org-faq.html#sec-4-2 para ponerme al día y ahora funciona como esperaba. – cdecker

Cuestiones relacionadas