emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Andreas Kiermeier <andreas.kiermeier@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: «Macro» expansion in source blocks; code-sharing between blocks
Date: Fri, 19 Sep 2014 09:14:46 +0930	[thread overview]
Message-ID: <CAN7vk5RmQ_ysxMdOZ6s0o4R=wOwr0wEg57GA2uR34sfVj-7NZw@mail.gmail.com> (raw)
In-Reply-To: <87bnqdqb7i.fsf@ucl.ac.uk>

I don't think you need the ":noweb yes" as part of the setup_fu
header, as this block is not pulling in other materials.

Having used this type of setup only over the last couple of days, I've
come up with another question. It appears that the setup_fu is
executed twice ... once as it's own source block (though by itself not
need) and once as part of the second noweb block. This isn't a problem
if the execution time is small, but I'm trying to create a summary
table in Latex format from 2 million records - so the time is
considerable.

My two blocks (with some code removed for simplicity) are as follow:

#+NAME: tbl-refyear
#+BEGIN_SRC R :results silent :exports none
  latex(tabular( <code remove>  ))
#+END_SRC

#+BEGIN_SRC latex :noweb yes
\begin{table}[h]
\label{tbl:refyear}
\caption{Separation outcomes (death or any type of discharge) by
reference year.}
<<tbl-refyear()>>
\end{table}
#+END_SRC

I've tried :cache yes as part of the tbl-refyear source block, but
that didn't stop if from being run twice. Am I missing a suitable
header argument?

This is the only way I could find to wrap the latex table (which has
some complex formatting and hence why I've used it over just producing
a table) in a float with a caption (though I still can't properly
reference the label when I export to a PDF file).

Any thought would be greatly appreciated. TIA!

Andreas

On 18 September 2014 23:31, Eric S Fraga <e.fraga@ucl.ac.uk> wrote:
>
> On Thursday, 18 Sep 2014 at 13:26, Tobias Getzner wrote:
> > On Thu, 18 Sep 2014 13:17:14 +0000, Tobias Getzner wrote:
> >
> >> Are there any convenient inline-expansion methods I might have
> >> overlooked?
> >
> > To illustrate, I was wondering if any of the following is feasible
> > somehow:
>
> Yes, and you almost got it right with your syntactic expansion:
>
> #+begin_src org
>
>   ,* Syntactic expansion
>
>   ,#+name: setup_fu
>   ,#+begin_src sh :noweb yes
>     echo 2
>   ,#+end_src
>
>   ,#+begin_src sh :results raw :noweb yes
>     echo 1
>     <<setup_fu>>
>     echo 3
>   ,#+end_src
>
>   ,#+results:
>   1
>   2
>   3
>
> #+end_src
>
> Org src blocks can reference other src blocks.  Note the ":noweb yes"
> option and the use of <<...>>.
>
>
> --
> : Eric S Fraga (0xFFFCF67D), Emacs 24.4.50.1, Org release_8.3beta-366-gb2fca7

  parent reply	other threads:[~2014-09-18 23:45 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-18 13:17 «Macro» expansion in source blocks; code-sharing between blocks Tobias Getzner
2014-09-18 13:26 ` Tobias Getzner
2014-09-18 14:01   ` Eric S Fraga
2014-09-18 14:40     ` Tobias Getzner
2014-09-18 23:44     ` Andreas Kiermeier [this message]
2014-09-19  2:59       ` Charles Berry
2014-09-19 10:18         ` Andreas Kiermeier
2014-09-19  7:44       ` Eric S Fraga
2014-09-19  9:04       ` Rainer M Krug
2014-09-19 10:19         ` Andreas Kiermeier
2014-09-19 10:59           ` header arguments, inheritance, and noweb expansion Was: " Rainer M Krug
2014-09-20  6:57             ` Andreas Kiermeier
2014-09-20 16:06               ` Charles Berry
2014-09-21  4:19                 ` Andreas Kiermeier

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='CAN7vk5RmQ_ysxMdOZ6s0o4R=wOwr0wEg57GA2uR34sfVj-7NZw@mail.gmail.com' \
    --to=andreas.kiermeier@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /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).