emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Eric Schulte" <schulte.eric@gmail.com>
To: Erik Iverson <eriki@ccbr.umn.edu>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: [babel] strategies for generating multiple graphics files from same code block
Date: Tue, 10 Aug 2010 12:21:52 -0600	[thread overview]
Message-ID: <87ocdatgdk.fsf@gmail.com> (raw)
In-Reply-To: 4C60913F.2040508@ccbr.umn.edu

Hi Erik,

Given that arbitrary lisp forms can be used to assign header arguments,
the following can be used to achieve this functionality under the
current setup.

--8<---------------cut here---------------start------------->8---
#+Title: Export Target Conditional Header Arguments

The following generates an =.eps= image for LaTeX export and a =.png=
image for html export.
#+begin_src gnuplot :term (if (and (boundp 'latexp) latexp) "postscript" "png") :file (if (and (boundp 'latexp) latexp) "sin.eps" "sin.png")
  plot sin(x)
#+end_src
--8<---------------cut here---------------end--------------->8---

So, given that maybe the next development push for babel should focus on
the ability to break header arguments over multiple lines, rather than
on syntactic sugar for the above.

Cheers -- Eric

Erik Iverson <eriki@ccbr.umn.edu> writes:

> Sounds good, and perhaps another 'export' target could be tangling of the code.
>

The above does not address tangling, however this could be fixed by
having ob-tangle could set a tanglep global variable in the spirit of
htmlp and latexp.

>
>
> On 08/09/2010 06:00 PM, Eric Schulte wrote:
>> Hi Erik,
>>
>> There is a planned feature for Org-babel which should subsume these use
>> cases, namely backend-conditional header arguments.  These would allow
>> you to specify different header arguments (including file) depending on
>> the export target, be that html, latex, or none if you are just
>> interactively evaluating inside of an Org-mode buffer.
>>
>> This is still in the early stages, and is waiting until I have a
>> reasonable amount of free time.
>>
>> Cheers -- Eric
>>
>> Erik Iverson<eriki@ccbr.umn.edu>  writes:
>>
>>> Hello,
>>>
>>> I'm using org-mode to write R code and generate figures.
>>>
>>> I have multiple files generated per code block, one png and one PDF.
>>> This is so that I can display the graphic:
>>>
>>> 1) Inline in my org-mode buffer (png)
>>> 2) Upon export to HTML, viewable in the browser (png)
>>> 3) Included in a separate PDF, *not* from exporting my org-mode
>>> file.  For this, I would like a PDF version of the graphic to be
>>> generated, and pdflatex can use it (pdf)
>>>
>>> So, for points 1 and 2 above, no problem.
>>>
>>> * Figure 1
>>> Here is the first figure.
>>>
>>> #+begin_src R :file figure1.png :width 960 :exports both :tangle fig1.R
>>>    plot(1,1)
>>> #+end_src
>>>
>>> For point 3, I use tangling to write the source code to a file.  I
>>> notice that the graphical code is wrapped by the export process by a
>>> call to png() and dev.off().
>>>
>>> My question, is there any facility to have the tangled code generate a
>>> PDF, instead of PNG?  I still need the png for goals 1 and 2, but the
>>> pdf for goal 3.  Anyone else have any other strategies for realizing
>>> all 3 of my goals?
>>>
>>> I suppose one would be to define a named code block, and use the noweb
>>> syntax:
>>>
>>> Define the plot
>>> #+srcname: fig-test
>>> #+begin_src R
>>>    plot(1,1)
>>> #+end_src
>>>
>>> Tangle, but don't export
>>> #+begin_src R :file figure1.pdf :exports none :tangle fig1.R :noweb yes
>>>   <<fig-test>>
>>> #+end_src
>>>
>>> Export, but don't tangle
>>> #+begin_src R :file figure1.png :exports both :noweb yes
>>>   <<fig-test>>
>>> #+end_src
>>>
>>> This is not too bad, but maybe there's an alternative approach?
>>>
>>> Thanks!
>>> Erik Iverson
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Please use `Reply All' to send replies to the list.
>>> Emacs-orgmode@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  reply	other threads:[~2010-08-10 19:30 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-09 21:04 [babel] strategies for generating multiple graphics files from same code block Erik Iverson
2010-08-09 23:00 ` Eric Schulte
2010-08-09 23:37   ` Erik Iverson
2010-08-10 18:21     ` Eric Schulte [this message]
2010-08-10 21:51       ` Dan Davison

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

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ocdatgdk.fsf@gmail.com \
    --to=schulte.eric@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=eriki@ccbr.umn.edu \
    /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 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).