Hello
>
> Putting together a macro seems like the best option. Recall that you
> can use elisp in macros by placing it between `(eval’ and `)', so the
> following emits “def’ in all but latex exports and “abc” for latex.
>
Yes I found this nice piece of code
It switches to svg if backend is html and to raw latex if backend is
latex. You only have to tweak it your needs.
#+header: :file (by-backend (html "tree.svg") (t 'nil))
#+header: :imagemagick
#+header: :results (by-backend (pdf "latex") (t "raw"))
#+begin_src latex
\usetikzlibrary{trees}
\begin{tikzpicture}
\node [circle, draw, fill=red!20] at (0,0) {1}
child { node [circle, draw, fill=blue!30] {2}
child { node [circle, draw, fill=green!30] {3} }
child { node [circle, draw, fill=yellow!30] {4} }};
\end{tikzpicture}
#+end_src
* COMMENT setup
#+begin_src emacs-lisp :results silent
(setq org-babel-latex-htlatex "htlatex")
(defmacro by-backend (&rest body)
`(case (if (boundp 'backend) (org-export-backend-name backend) nil) ,@body))
#+end_src
The reference
http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-LaTeX.html
Best regards
Jeremie