emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Myles English <mylesenglish@gmail.com>
To: Nicolas Goaziou <n.goaziou@gmail.com>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: [new exporter] no \caption and \label upon export of #+BEGIN_LATEX block
Date: Tue, 13 Nov 2012 14:59:12 +0000	[thread overview]
Message-ID: <87bof1r1kv.fsf@gmail.com> (raw)
In-Reply-To: <87zk2p840l.fsf@gmail.com>


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 <mylesenglish@gmail.com> 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	other threads:[~2012-11-13 14:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-10 22:02 [new exporter] no \caption and \label upon export of #+BEGIN_LATEX block Myles English
2012-11-10 22:09 ` Myles English
2012-11-10 22:52 ` Nicolas Goaziou
2012-11-13 14:59   ` Myles English [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87bof1r1kv.fsf@gmail.com \
    --to=mylesenglish@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=n.goaziou@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).