[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] input data for babel blocks
From: |
Charles Berry |
Subject: |
Re: [O] input data for babel blocks |
Date: |
Tue, 1 Oct 2013 15:29:57 +0000 (UTC) |
User-agent: |
Loom/3.14 (http://gmane.org/) |
Alan Schmitt <alan.schmitt <at> polytechnique.org> writes:
>
> Hi Charles,
>
> ccberry <at> ucsd.edu writes:
>
> > Lacking that, another alternative to the approach you have crafted is to
> > use elisp src blocks to set up the commands needed to create the
> > objects,
> > and then place the results of executing the elisp src block in the src
> > block of your favored language using noweb, for example
> >
> > #+BEGIN_SRC mylang :noweb yes
> > <<elisp-conversion-to-mylang("arg1","arg2")>>
> > #+END_SRC
> >
> > might convert 'arg2' to an object of the desired type named 'arg1' in a
> > 'mylang' src block.
>
> This looks like a very powerful approach, but it's a bit beyond my
> understanding of babel (which is limited) and noweb (whose existence I
> just discovered after reading http://orgmode.org/manual/noweb.html).
>
Sorry if it was a bit obtuse. The examples given by others seem to have
helped. And I will give one more.
[deleted]
> If you have an example that uses different languages, I'd love to look
> at it. I'll then try to write an example for ocaml.
>
Here is what I use for LaTeX thru elisp to R:
* Quote Blocks
quote-blks takes two args:
- blk :: a string of comma separated src block names
- sep :: an optional separator for use when there is more than one
block
I usually save it in a file and load it in with
(org-babel-lob-ingest file). But you can copy and paste and the example
below will still work.
#+name: quote-blks
#+BEGIN_SRC emacs-lisp :var blk="abc" :var sep="\"\n\""
(save-excursion
(replace-regexp-in-string "\"\"" ""
(mapconcat
(lambda (x)
(org-babel-goto-named-src-block x)
(format "%S" (cadr (org-babel-get-src-block-info t))))
(split-string blk "," t)
sep)
t t))
#+END_SRC
* example of use
The LaTeX here can be editted via C-c '
(i.e. org-edit-special --> org-edit-src-code).
#+name: lstuff
#+BEGIN_SRC latex :eval never :exports none
Here is a \backslash. And an unmatched quote: '.
#+END_SRC
Here is an example using it on the above block.
The cat statement prints a formatted version. The str statement shows
what R sees (but the outer quotes are not part of the string).
#+BEGIN_SRC R :noweb yes :results output
some.latex <-
<<quote-blks("lstuff")>>
cat(some.latex,"\n")
str(some.latex)
#+END_SRC
#+RESULTS:
: Here is a \backslash. And an unmatched quote: '.
: chr "Here is a \\backslash. And an unmatched quote: '."
HTH,
Chuck