Andreas Kiermeier writes: > 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. > Check out the :eval header argument: if you use ,---- | #+BEGIN_SRC R :eval never :exports none `---- this block is never executed - this should work. There are also other values for :eval. From the help: ,---- | 14.8.2.25 `:eval' | ................. | | The `:eval' header argument can be used to limit the evaluation of | specific code blocks. The `:eval' header argument can be useful for | protecting against the evaluation of dangerous code blocks or to ensure | that evaluation will require a query regardless of the value of the | `org-confirm-babel-evaluate' variable. The possible values of `:eval' | and their effects are shown below. | | `never or no' | The code block will not be evaluated under any circumstances. | | `query' | Evaluation of the code block will require a query. | | `never-export or no-export' | The code block will not be evaluated during export but may still | be called interactively. | | `query-export' | Evaluation of the code block during export will require a query. | | If this header argument is not set then evaluation is determined by | the value of the `org-confirm-babel-evaluate' variable see *Note Code | evaluation security::. `---- Cheers, Rainer > My two blocks (with some code removed for simplicity) are as follow: > > #+NAME: tbl-refyear > #+BEGIN_SRC R :results silent :exports none > latex(tabular( )) > #+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.} > <> > \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 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 >> <> >> 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 > > -- Rainer M. Krug email: Rainerkrugsde PGP: 0x0F52F982