[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] «Macro» expansion in source blocks; code-sharing between blocks
From: |
Rainer M Krug |
Subject: |
Re: [O] «Macro» expansion in source blocks; code-sharing between blocks |
Date: |
Fri, 19 Sep 2014 11:04:26 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (darwin) |
Andreas Kiermeier <address@hidden> 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( <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 <address@hidden> 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
>
>
--
Rainer M. Krug
email: Rainer<at>krugs<dot>de
PGP: 0x0F52F982
pgpWuMoBqlRqN.pgp
Description: PGP signature
- [O] «Macro» expansion in source blocks; code-sharing between blocks, Tobias Getzner, 2014/09/18
- Re: [O] «Macro» expansion in source blocks; code-sharing between blocks, Tobias Getzner, 2014/09/18
- Re: [O] «Macro» expansion in source blocks; code-sharing between blocks, Eric S Fraga, 2014/09/18
- Re: [O] «Macro» expansion in source blocks; code-sharing between blocks, Tobias Getzner, 2014/09/18
- Re: [O] «Macro» expansion in source blocks; code-sharing between blocks, Andreas Kiermeier, 2014/09/18
- Re: [O] «Macro» expansion in source blocks; code-sharing between blocks, Eric S Fraga, 2014/09/19
- Re: [O] «Macro» expansion in source blocks; code-sharing between blocks, Charles Berry, 2014/09/19
- Re: [O] «Macro» expansion in source blocks; code-sharing between blocks, Andreas Kiermeier, 2014/09/19
- Re: [O] «Macro» expansion in source blocks; code-sharing between blocks,
Rainer M Krug <=
- Re: [O] «Macro» expansion in source blocks; code-sharing between blocks, Andreas Kiermeier, 2014/09/19
- [O] header arguments, inheritance, and noweb expansion Was: «Macro» expansion in source blocks; code-sharing between blocks, Rainer M Krug, 2014/09/19
- Re: [O] header arguments, inheritance, and noweb expansion Was: «Macro» expansion in source blocks; code-sharing between blocks, Andreas Kiermeier, 2014/09/20
- Re: [O] header arguments, inheritance, and noweb expansion Was: «Macro» expansion in source blocks; code-sharing between blocks, Charles Berry, 2014/09/20
- Re: [O] header arguments, inheritance, and noweb expansion Was: «Macro» expansion in source blocks; code-sharing between blocks, Andreas Kiermeier, 2014/09/21