emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [new exporter] no \caption and \label upon export of #+BEGIN_LAT


From: Myles English
Subject: Re: [O] [new exporter] no \caption and \label upon export of #+BEGIN_LATEX block
Date: Tue, 13 Nov 2012 14:59:12 +0000
User-agent: mu4e 0.9.9.5-dev1; emacs 24.2.1

Hi Nicolas,

Thanks for your help.  I am responding with a couple of points just to
complete this thread, in case someone else is wondering about the same
thing.

Nicolas Goaziou writes:

> Myles English <address@hidden> writes:
>
>> I'd like to use a tikz snippet in a few different documents and it would
>> be convenient to be able to include it in a latex document like so:
>>
>> #+CAPTION: a fine figure
>> #+NAME:   figure:fine_figure
>> #+ATTR_LaTeX: width=5cm
>> #+BEGIN_LATEX
>> \input{/home/myles/tex/tikz_figure.tex}
>> #+END_LATEX
>>
>> What is exported is just the \input line, with no \label or \caption, i.e.:
>>
>> \input{/home/myles/tex/tikz_figure.tex}
>
> Well, IMO, it doesn't make much sense to add a caption or a label to an
> export block. Just write whatever you want within the block. I.e.:
>
>     #+BEGIN_LATEX
>     \caption{\label{figure:fine_figure}a fine figure}
>     \input{/home/myles/tex/tikz_figure.tex}
>     #+END_LATEX
>
> Is there any downside to it?

One downside is that I can't then refer to it using org label syntax
[[figure:fine_figure]] and have to use the latex syntax
\autoref{figure:fine_figure}.  So it is not a problem really.  The other
downside is that it is for latex export only.  That too is not a problem
in this case.

>> I believe this was possible with current (old) exporter, based on this
>> thread:
>>
>> http://lists.gnu.org/archive/html/emacs-orgmode/2012-10/msg00267.html
>
> This thread is about src blocks. Adding a label or a caption is fine for
> them.

I also found this thread which dicusses the same thing:

http://lists.gnu.org/archive/html/emacs-orgmode/2011-10/msg00232.html

For anyone else wondering what the best way is, I think that, basically,
you have to decide whether you are going to export to latex only or to
other formats as well.  If exporting to other formats then compile the
figure in a source block, convert to png if necessary, and have the
label, caption and other attributes as org markup on a link to the
graphics file.  This takes (comparatively) a lot of marking up and
option tweaking.  If only exporting to latex then the tikz snippet,
label, caption, sizing etc are best contained in a latex block (as
Nicolas says).

>> On second thoughts, perhaps another way to do it would be to have a
>> source block make the tikz graphic as a standalone pdf/eps and then
>> insert it as a link to the file.  The disadvantage of that would be that
>> the tikz .tex file would need to be expanded to have it's own
>> \begin/end{document} and would loose some flexibility.

The latex package 'standalone' overcomes this disadvantage because you
can *both* compile the tikz figs as, well, standalone pdfs *and* include
them in the latex block using \includestandalone (which works like
\includegraphics), and the advantage is that the tikz file does not need
to be changed at all for the different uses.

>> Any thoughts on that route?
>
> I don't know. for my graphics, I use Asymptote src-blocks generating
> links to pdf files. E.g.:
>
>   #+NAME: app
>   #+BEGIN_SRC asymptote :file application.pdf
>   import graph;
>   defaultpen(fontsize(10pt));
>   unitsize(2cm);
>   pen p=blue;
>   real f(real x) { return x**2; }
>   real g(real x) { return -x + 2; }
>   draw(graph(f,0,1),p);
>   draw(graph(g,1,2),p);
>   xaxis(xmax=2.3,Ticks(Size=1mm,NoZero),Arrow(6pt));
>   yaxis(ymax=1.3,Ticks(step=.5,Step=1,Size=1mm,NoZero),Arrow(6pt));
>   label("$O$",(0,0),SW);
>   label("$C_f$",(1.5,g(1.5)),2N,p);
>   #+END_SRC
>
>   #+BEGIN_CENTER
>   #+RESULTS: app
>   [[file:application.pdf]]
>   #+END_CENTER

Thanks for this example I will surely find a use for it.

Myles



reply via email to

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