emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Weirdness re: inclusion of figures
@ 2012-02-16  3:42 Paul Magwene
  2012-02-16  3:45 ` Paul
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Paul Magwene @ 2012-02-16  3:42 UTC (permalink / raw)
  To: emacs-orgmode

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

* 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: Paul @ 2012-02-16  3:45 UTC (permalink / raw)
  To: emacs-orgmode

Paul Magwene <pmmagic <at> gmail.com> writes:

> 
> 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.
> 
>

Oh, and I forgot to mention, my setup is:

Org version 7.8.03 with Emacs version 24

^ 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: 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

end of thread, other threads:[~2012-02-16 13:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).