* Re: Weirdness re: inclusion of figures
2012-02-16 3:42 Weirdness re: inclusion of figures Paul Magwene
2012-02-16 3:45 ` Paul
@ 2012-02-16 4:44 ` Nick Dokos
2012-02-16 12:59 ` Yu
2 siblings, 0 replies; 4+ messages in thread
From: Nick Dokos @ 2012-02-16 4:44 UTC (permalink / raw)
To: Paul Magwene; +Cc: nicholas.dokos, emacs-orgmode
Paul Magwene <pmmagic@gmail.com> wrote:
> Hi All,
>
> I'm trying to get up to speed with org-mode and babel for doing
> reproducible computational research. I'm just starting to play around
> with simple examples, and I'm baffled by the following.
>
> This first example, when exported to HTML or LaTeX produces the
> expected result -- a simply code block with one embedded figure.
>
> # Example 1.
>
> This is my R example:
>
> #+begin_src R :file z.png :results output graphics
> plot(matrix(rnorm(100), ncol=2), type="l")
> #+end_src
>
> Some intervening text...
>
> #+results:
> [[file:z.png]]
>
>
> However, this almost identical example, minus the intervening text
> between the code and the results, doesn't include the figure:
>
> # Example 2
>
> This is my R example:
>
> #+begin_src R :file z.png :results output graphics
> plot(matrix(rnorm(100), ncol=2), type="l")
> #+end_src
>
> #+results:
> [[file:z.png]]
>
>
> What gives here? Do I always need to have intervening text between the
> source code and results in order to get a figure in the exported
> document?
>
You need an :exports both header:
#+begin_src R :file z.png :results output graphics :exports both
plot(matrix(rnorm(100), ncol=2), type="l")
#+end_src
I don't know how or why the intervening text affects anything, but
it just smells like a red herring to me...
Nick :-)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Weirdness re: inclusion of figures
2012-02-16 3:42 Weirdness re: inclusion of figures Paul Magwene
2012-02-16 3:45 ` Paul
2012-02-16 4:44 ` Nick Dokos
@ 2012-02-16 12:59 ` Yu
2 siblings, 0 replies; 4+ messages in thread
From: Yu @ 2012-02-16 12:59 UTC (permalink / raw)
To: Paul Magwene; +Cc: emacs-orgmode
Hello!
The behaviour is actually as expected. To understand this, you have to
consider, that org-mode currently only seems to recognize the relation
between source block and #+result paragraph if one of these two
conditions holds:
o The "#+result:" line follows the source code without any text in between.
o Both code block and "#+result:" line are labeled with the same name.
Also consider, as said by Nick Dokos, the significance of the
":exports" header argument:
o By default the result is computed but not exported.
o If the (unnamed) result is delimited from the source code by
intervening text, it is no longer considered any source blocks result:
The exporter just ignores the "#+result:" line and includes the image
into the exported file.
Labelling a source code block can be done with a "#+NAME:" line
preceding the code block. When evaluating the code block, the
"#+results"-line automatically gets named too. When reevaluating a
code block then the contents of this "#+results" entry is correctly
refreshed even after intervening code.
What you want thus probably is:
: #+name: code-block
: #+begin_src R :file z.png :results output graphics
: plot(matrix(rnorm(100), ncol=2), type="l")
: #+end_src
:
: Intervening text
:
: #+results: code-block
: [[file:z.png]]
I did some tests to verify I'm right about this though, having
installed a recent version from git (at most 2 days since the last
pull):
o No intervening text, no ":exports": Image is not exported.
o No intervening text, ":exports both": Image is exported once; When
exporting the code is rerun.
o Intevening text, no ":exports": The image is exported once. The
code block is not rerun on export.
o Intervening text, ":exports both": The code is run twice (!), the
image is exported both before and after the text.
king regards, Yu
2012/2/16 Paul Magwene <pmmagic@gmail.com>:
> Hi All,
>
> I'm trying to get up to speed with org-mode and babel for doing
> reproducible computational research. I'm just starting to play around
> with simple examples, and I'm baffled by the following.
>
> This first example, when exported to HTML or LaTeX produces the
> expected result -- a simply code block with one embedded figure.
>
> # Example 1.
>
> This is my R example:
>
> #+begin_src R :file z.png :results output graphics
> plot(matrix(rnorm(100), ncol=2), type="l")
> #+end_src
>
> Some intervening text...
>
> #+results:
> [[file:z.png]]
>
>
> However, this almost identical example, minus the intervening text
> between the code and the results, doesn't include the figure:
>
> # Example 2
>
> This is my R example:
>
> #+begin_src R :file z.png :results output graphics
> plot(matrix(rnorm(100), ncol=2), type="l")
> #+end_src
>
> #+results:
> [[file:z.png]]
>
>
> What gives here? Do I always need to have intervening text between the
> source code and results in order to get a figure in the exported
> document?
>
> Thanks,
> Paul
>
^ permalink raw reply [flat|nested] 4+ messages in thread