[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] [org-babel] suggestions for using tikz() graphic device with o

From: Austin Frank
Subject: [Orgmode] [org-babel] suggestions for using tikz() graphic device with org-babel-R
Date: Wed, 14 Apr 2010 02:07:11 -0400
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/24.0.50 (darwin)

Hi all--

I'm very excited about a relatively new R package, tikzDevice.  This
takes R graphics and generates LaTeX code inside a tikzpicture
environment that reproduces the desired graphic.  This allows, among
other things, for all text in a figure to use the same fonts as the rest
of your document, and for graph annotations to use latex math markup.

I have attached an example org file that has embedded R code that
generates figures using the tikz() device.[fn:1]

The output from a call to tikz() is a .tex file, which is intended to be
included in a larger LaTeX file using the \input{} command.

How would the org-babel gurus suggest that I automate the process of
embedding these TeX-based graphics in an org file?  What is the right
combination of :file, :exports, and :results arguments to have the
generated file automatically included by a LaTeX \input{} command?

Thanks for any advice!


[fn:1] If requested, I can send the generated tex and pdf files as well

#+TITLE:     Generating PGF graphics from R in org-babel
#+AUTHOR:    Austin F. Frank
#+EMAIL:     address@hidden
#+DATE:      2009-12-11 Fri
#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
#+LATEX_HEADER:  \usepackage{tikz} 

Recently a new =R= package, =pgfSweave=, was announced.[fn:1]  This
package boasts a fascinating capability:  generating all R graphics as
\{LaTeX} code that will be typeset using the tikz package and included
as PGF graphics.[fn:2]  This is an appealing option for several
  1.  Scaling of size and adjustments of position should be handled
      seamlessly and without loss of resolution
  2.  Colors can be specified identically for graphics and any other
      markup in the $\LaTeX$ document
  3.  Since they're just more $\LaTeX$ code, graphics can be manually
      edited in emacs
  4.  Same fonts will be used for text in figures as are used in the
      text of the document
  5.  $\LaTeX$ markup can be used in figure text
  6.  tikz integrates nicely with Beamer

Given this list of features, I decided to see whether I could get
similar functionality in org-babel.
* R code
** Load =tikzDevice=
   First, we need to load the packages required for producing tikz
   output in =R=.  If all goes well, you should get a message about
   the paths to the various programs required to generate $\LaTeX$
   markup from within =R=.

#+source: load_tikzDevice
#+BEGIN_SRC R :results output :exports both :cache
## I want to show the messages that are generated when the package is
## loaded.  These are printed to the equivalent of stderr, so I have
## to rewrite the `message' function to produce output that I can
## print back later.
tikz.message <-
                                     message =
                                     function (m) cat(m$message)))

cat(tikz.message, sep="\n")

** R example
#+source: lmer_example
#+BEGIN_SRC R :results output :exports both :cache :session
## I use this library all the time

## here's the standard example
m <- lmer(Reaction ~ Days + (1 | Subject), sleepstudy)

** Graphics creation
#+source: tikz_example
#+BEGIN_SRC R :results file :exports code :cache :session
ranef.m <- ranef(m, postVar = TRUE)
tikz(file = "ranef.tex", width=4, height=4)

#+CAPTION:  sample graphics

* Footnotes

[fn:1] http://thread.gmane.org/gmane.comp.lang.r.packages/351

[fn:2] http://sourceforge.net/projects/pgf/

Austin Frank
GPG Public Key (D7398C2F): http://aufrank.net/personal.asc

Attachment: pgp4dSDxQ9aEu.pgp
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]