emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Tikz-->LaTeX/HTML


From: Steve Hafner
Subject: Re: [O] Tikz-->LaTeX/HTML
Date: Mon, 26 Mar 2012 09:11:50 -0600

On Mon, Mar 26, 2012 at 3:48 AM, Andreas Leha
<address@hidden> wrote:
> Andreas Leha <address@hidden> writes:
>
> Sorry, sent with wrong version, see below:
>
>> Steve Hafner <address@hidden> 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}")
>
> here it should have been :results org
>
>> |     <<contents>>
>> |   #+end_src
>> `----
>>
>> Regards,
>> Andreas
>
>
> Best,
> Andreas
>
>
>
> PS: BTW, it requires tons of header arguments.  These can be split over
> several lines:
> ,----
> | * Tikz test
> | #+name: contents
> | #+header: :exports (if (and (boundp 'org-export-current-backend) (eq 
> org-export-current-backend 'latex)) "results" "none")
> | #+header: :results latex
> | #+begin_src latex
> |   \begin{tikzpicture}
> |     \node[red!50!black] (a) {A};
> |     \node (b) [right of=a] {B};
> |     \draw[->] (a) -- (b);
> |   \end{tikzpicture}
> | #+end_src
> |
> | #+header: :exports (if (and (boundp 'org-export-current-backend) (eq 
> org-export-current-backend 'latex)) "none" "results")
> | #+header: :results org :file test.png
> | #+header: :imagemagick yes :iminoptions -density 600 :imoutoptions 
> -geometry 400
> | #+header: :fit yes :noweb yes :headers '("\\usepackage{tikz}")
> | #+begin_src latex
> |   <<contents>>
> | #+end_src
> `----
>
>

Thank you, Andreas. It now works as expected. I don't have any
problems that I can see with repect to this ORG-ORG-START issue; the
exported files I get look clean.

For any in-the-dark readers coming across this thread, I needed to put

#+LATEX_HEADER: \usepackage{tikz}

in my file.

Steve



reply via email to

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