Steve Hafner <steve.b.haf...@gmail.com> writes: > I'm trying to get a LaTeX scr block with Tikz code either to go native > into LaTeX or to be converted into a PNG file and included in HTML, as > described in > http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-LaTeX.html. > That document refers to a thread on this list in which two example > were given: > http://lists.gnu.org/archive/html/emacs-orgmode/2011-02/msg01297.html > and http://lists.gnu.org/archive/html/emacs-orgmode/2011-02/msg01302.html. > Both examples behave in a similar way for me on Org-7.8.06, but not in > the way I expected. If I export to PDF then I just get > "[[file:test.png]]" in the PDF where I expected the image to be > visible, and if I export to HTML then nothing is visible in the HTML > file. Either way I export, the file test.png is indeed generated. > > So I wonder if these examples are valid with respect to 7.8.06 or > maybe my expectations are off. I would not think that the PNG file > should be generated for the PDF export, but would expect the image to > be visible when viewing either document. Reading the manual, it seems > that maybe the behavior has changed in the last year with respect to > these examples. > > So I've tried to figure it out with the manual. If I don't worry about > the HTML export, I'm able to set up the document so that the Tikz code > is included into LaTeX in the correct way; not too difficult. On the > other hand, if I don't worry about the LaTeX export, I can get the PNG > file to generate but can't get it automatically included into the > HTML. If I could get this second part figured out, then the plan would > be to have an elisp conditional testing on "backend" (if this is still > a valid symbol to test on) that would determine whether on not to > include :file etc. in the header for the src block. Any thoughts? > > --Steve
Hi Steve, the examples are indeed out-dated. 1) 'backend is now 'org-export-current-backend (though I am not sure, I think there was also 'latexp at some time). 2) If the latex block is evaluated at all and a file argument is present, this will be used. So the block meant to go the latex->PDF route should not contain the :file argument. 3) Even if ":results graphics" or ":results file" is specified, the results of a latex block seem to be wrapped in #+begin_latex...#+end_latex. So for the block meant to go to the html, one way is to specify ":results org". But here I get a spurious ORG-ORG-START ... Anyway, besides that ORG-ORG-START thing, this seems to work on my side: ,---- | * Tikz test | #+name: contents | #+begin_src latex :exports (if (and (boundp 'org-export-current-backend) (eq org-export-current-backend 'latex)) "results" "none") :results latex | \begin{tikzpicture} | \node[red!50!black] (a) {A}; | \node (b) [right of=a] {B}; | \draw[->] (a) -- (b); | \end{tikzpicture} | #+end_src | | #+begin_src latex :exports (if (and (boundp 'org-export-current-backend) (eq org-export-current-backend 'latex)) "none" "results") :results file :file test.png :imagemagick yes :iminoptions -density 600 :imoutoptions -geometry 400 :fit yes :noweb yes :headers '("\\usepackage{tikz}") | <<contents>> | #+end_src `---- Regards, Andreas