[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] header arguments, inheritance, and noweb expansion Was: «Macro» expa
From: |
Rainer M Krug |
Subject: |
[O] header arguments, inheritance, and noweb expansion Was: «Macro» expansion in source blocks; code-sharing between blocks |
Date: |
Fri, 19 Sep 2014 12:59:56 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (darwin) |
Andreas Kiermeier <address@hidden> writes:
> Thanks Rainer,
>
> but unfortunately this isn't working. I'm sure I'm doing something
> wrong ... somewhere.
>
> In case this makes any difference I have in the document header:
>
> #+PROPERTY: header-args:R :session *R*
> #+PROPERTY: header-args :results output graphics :exports results
>
> I've now changed the source block header to ":exports none :eval no"
> but now there really is nothing in the output.
>
> In fact, the corresponding .tex file now contains:
>
> \begin{table}[h]
> \label{tbl:refyear}
> \caption{Separation outcomes (death or any type of discharge) by
> reference year.}
> nil
> \end{table}
>
> and in the *Message* buffer I now have:
>
> Evaluation of this R code-block (tbl-refyear) is disabled.
> org-babel-exp processing...
> Evaluation of this R code-block (tbl-refyear) is disabled.
> executing Latex code block...
>
> So, this source block really doesn't evaluated at all.
This boils down to the question I asked earlier about header-args and
+header args, inheritance of header arguments and this in contrast to
normal header args.
Based on this discussion, I thought that the header arguments count
*where the code is executed* and not where it is defined - well -
surprise for me.
You could try and put the code block with the definition of the code
into a subtree where you set
,----
| :PROPERTIES:
| :headser-args+: eval no
| :END:
`----
This might work?
Rainer
>
> Thanks
>
> Andreas
>
> On 19 September 2014 18:34, Rainer M Krug <address@hidden> wrote:
>> 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
>
>
--
Rainer M. Krug
email: Rainer<at>krugs<dot>de
PGP: 0x0F52F982
pgpUSIheiua1c.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, 2014/09/19
- 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 <=
- 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