From: cberry@tajo.ucsd.edu
To: emacs-orgmode@gnu.org
Subject: Re: conditional export based on babel result
Date: Thu, 06 Sep 2012 12:07:53 -0700 [thread overview]
Message-ID: <87vcfr3r7a.fsf@tajo.ucsd.edu> (raw)
In-Reply-To: 87wr08b8bc.fsf@med.uni-goettingen.de
Andreas Leha <andreas.leha@med.uni-goettingen.de> writes:
I am a bit late to the thread, but two possibilities come to mind:
1) write a brew template as
#+name: brewtemp
#+begin_src latex
...
#end_src block
then call it as
#+begin_src R :noweb yes :results output latex
brew(text=
<<brewtemp>>
)
#+end_src
Brew allows loops and conditionals over both markup and code, which
allows you to choose or skip a sub-document as the R code dictates. If
the sub-document is of modest size and complexity, this is reasonably
easy and the brew markup will be easy to read.
2) Use ravel (at https://github.com/chasberry/orgmode-accessories/) to
export an org subtree as a knitr parent document in Rnw format (akin to
Sweave) and another org subtree as a knitr child document. The parent
document must call the child from within a code block to allow loops and
conditionals. Then run knitr. For more complicated sub-documents, this
might work better than building brew templates in latex src blocks as
editting the org structure and retooling R src blocks is easier (for me
at least) than re-organizing a lengthy latex src block with embedded
brew calls.
HTH,
Chuck
> Eric Schulte <eric.schulte@gmx.com> writes:
>
>> Andreas Leha <andreas.leha@med.uni-goettingen.de> writes:
>>
>>> Hi all,
>>>
>>> is there a possibility to exclude (or include) parts of the document
>>> based on some babel source block result?
>>>
>>> First some use case:
>>> Say, I am doing a statistical test. And only if the test turns out to be
>>> significant, a follow-up analysis is carried out.
>>>
>>> Is that possible?
>>>
>>> One thinkable and ugly option would be to allow lisp-generated tags like
>>> in this dummy example:
>>>
>>> #+begin_org
>>>
>>> * The Test
>>> #+name: sometest
>>> #+begin_src R
>>> test_result <- 0.03
>>> #+end_src
>>>
>>>
>>> ** export maybe (if (< (string-to-number (sbe sometest)) 0.05) ":export:" ":noexport:")
>>> The follow-up
>>>
>>> #+end_org
>>>
>>>
>>> Regards,
>>> Andreas
>>>
>>>
>>
>> Hi Andreas,
>>
>> When doing something this complex you may just want to write your own
>> function which could say... take a subtree ID and a boolean flag as
>> arguments and then set the export flag on that subtree as appropriate.
>>
>> The org-id-goto and org-toggle-comment functions may help in
>> implementing this function.
>>
>> Best,
>
> Hi Eric,
>
> in my opinion, there are more complex things in org-mode already ;-)
>
> I agree, that such functionality doesn't need to be provided in org
> itself.
> Thanks a lot for the pointers to possible entry-points for an
> implementation. I hope, I'll find time to to go for it. Would be good
> for my elisp, anyway...
>
> Regards,
> Andreas
>
>
>
--
Charles C. Berry Dept of Family/Preventive Medicine
cberry at ucsd edu UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901
prev parent reply other threads:[~2012-09-06 19:08 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-05 12:36 conditional export based on babel result Andreas Leha
2012-09-05 16:09 ` Thomas S. Dye
2012-09-05 18:57 ` Andreas Leha
2012-09-05 18:08 ` Eric Schulte
2012-09-05 19:04 ` Andreas Leha
2012-09-06 19:07 ` cberry [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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87vcfr3r7a.fsf@tajo.ucsd.edu \
--to=cberry@tajo.ucsd.edu \
--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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.