* macro expansion in source code
@ 2013-08-29 11:52 Johannes Rainer
2013-08-29 15:15 ` Charles Berry
0 siblings, 1 reply; 3+ messages in thread
From: Johannes Rainer @ 2013-08-29 11:52 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 727 bytes --]
hi,
I was just wondering if there is a way to use macro expansion also in
source code blocks or headers. I tried this, but the macro was never
expanded, but rather the {{{image_width}}} was exported. could the
expansion be done by calling the macro expansion before export (e.g. using
a hook)?
something like this:
#+MACRO: image_width 16
#+BEGIN_SRC R :results silent :exports code
IMAGE <- "test.png"
WIDTH <- {{{image_width}}}
HEIGHT <- 6
png( file=IMAGE, width=WIDTH, height=HEIGHT, units="cm", res=600,
pointsize=6 )
library( RColorBrewer )
display.brewer.all()
dev.off()
#+END_SRC
or
#+BEGIN_SRC R :results file :exports results :width {{{image_width}}}
display.brewer.all()
#+END_SRC
cheers, jo
[-- Attachment #2: Type: text/html, Size: 962 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: macro expansion in source code
2013-08-29 11:52 macro expansion in source code Johannes Rainer
@ 2013-08-29 15:15 ` Charles Berry
2013-08-29 19:22 ` Johannes Rainer
0 siblings, 1 reply; 3+ messages in thread
From: Charles Berry @ 2013-08-29 15:15 UTC (permalink / raw)
To: emacs-orgmode
Johannes Rainer <johannes.rainer <at> gmail.com> writes:
>
>
> hi,
> I was just wondering if there is a way to use macro expansion also in
> source code blocks or headers. I tried this, but the macro was never
> expanded, but rather the {{{image_width}}} was exported. could the
> expansion be done by calling the macro expansion before export
> (e.g. using a hook)?
>
> something like this:
[snip]
I think the answer is no. But you can accomplish much the same thing with
properties and/or noweb references. Like this
* header
:PROPERTIES:
:image_width: 16
:END:
#+NAME: imwide
#+HEADER: :var iw=(org-entry-get (point) "image_width")
#+BEGIN_SRC R :results value
iw
#+END_SRC
#+RESULTS: imwide
: 16
#+BEGIN_SRC R :noweb yes :results output
image.width <-
<<imwide()>>
image.width
#+END_SRC
#+RESULTS:
: [1] 16
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: macro expansion in source code
2013-08-29 15:15 ` Charles Berry
@ 2013-08-29 19:22 ` Johannes Rainer
0 siblings, 0 replies; 3+ messages in thread
From: Johannes Rainer @ 2013-08-29 19:22 UTC (permalink / raw)
To: Charles Berry; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 1425 bytes --]
thanks for that solution! I will give it a try!
On Thu, Aug 29, 2013 at 5:15 PM, Charles Berry <ccberry@ucsd.edu> wrote:
> Johannes Rainer <johannes.rainer <at> gmail.com> writes:
>
> >
> >
> > hi,
> > I was just wondering if there is a way to use macro expansion also in
> > source code blocks or headers. I tried this, but the macro was never
> > expanded, but rather the {{{image_width}}} was exported. could the
> > expansion be done by calling the macro expansion before export
> > (e.g. using a hook)?
> >
> > something like this:
>
> [snip]
>
> I think the answer is no. But you can accomplish much the same thing with
> properties and/or noweb references. Like this
>
> * header
> :PROPERTIES:
> :image_width: 16
> :END:
>
> #+NAME: imwide
> #+HEADER: :var iw=(org-entry-get (point) "image_width")
> #+BEGIN_SRC R :results value
> iw
> #+END_SRC
>
> #+RESULTS: imwide
> : 16
>
>
> #+BEGIN_SRC R :noweb yes :results output
> image.width <-
> <<imwide()>>
> image.width
> #+END_SRC
>
> #+RESULTS:
> : [1] 16
>
>
>
>
>
--
Johannes Rainer, PhD
Applied Bioinformatics Group,
Division Molecular Pathophysiology,
Biocenter, Medical University Innsbruck,
Innrain 80/82 II, 6020 Innsbruck, Austria
and
Tyrolean Cancer Research Institute
Innrain 66, 6020 Innsbruck, Austria
Tel.: +43 (0)512 9003 70961
Email: johannes.rainer@i-med.ac.at
johannes.rainer@tcri.at
URL: http://bioinfo.i-med.ac.at
[-- Attachment #2: Type: text/html, Size: 2266 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-08-29 19:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-29 11:52 macro expansion in source code Johannes Rainer
2013-08-29 15:15 ` Charles Berry
2013-08-29 19:22 ` Johannes Rainer
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.