emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nick Dokos <nicholas.dokos@hp.com>
To: mailinglists@nawaz.org
Cc: emacs-orgmode@gnu.org
Subject: Re: SageTeX in export
Date: Fri, 17 Aug 2012 02:30:18 -0400	[thread overview]
Message-ID: <21716.1345185018@alphaville> (raw)
In-Reply-To: Message from mailinglists@nawaz.org of "Thu, 16 Aug 2012 21:33:47 PDT." <87a9xuqgr8.fsf@fester.com>

mailinglists@nawaz.org wrote:

> Hi,
> Some background for the interested:
> Sage (http://www.sagemath.org/) is a free open source mathematics
> system. It essentially takes a number of well known open source math
> packages (Pari/GP, Maxima, etc) and provides it all to you under one
> interface, all glued together with Python. 
> I highly recommend it. There was even a post here a few days ago
> regarding including Sage into Org-Babel.
> I want to talk about SageTeX. It's a package that allows you to call
> Sage code from within your LaTeX document. You insert a Sage command
> (e.g. plotting some data) and it returns the result - either an image or
> relevant LaTeX code. Kind of like literate programming.
> Here's how it works. If your document is file.tex and it uses the
> SageTeX package, you run pdflatex on the .tex file. This will then
> produce a sage script called "file.sagetex.sage". You then manually run
> this sage script using Sage. Then you run pdflatex again and it will
> include the results from your sage script into the document.
> I'm finding myself embedding Sage code into a document I'm writing which
> is meant for a LaTeX export. My problem is that Org mode's LaTeX export
> can't handle the steps in my previous paragraph. I'm sure it's trivial
> to do via some hook, but I'm no good at Elisp.
> All I need is a way for the export to:
> 1. After running pdflatex, check if there is a file called
>    "<org_file_name>.sagetex.sage".
> 2. If it's present, run sage on it, and then rerun pdflatex.
> 3. If it's not, nothing more is left to do.
> I'd really appreciate if someone could tell me how to enable this with
> Org mode's export.

All you have to do is set the variable org-latex-to-pdf-process,
something like this [fn:1]

(setq org-latex-to-pdf-process 
      '("pdflatex %f"
        "if [ -f %b.sagetex.sage ] ;then sage %b.sagetex.sage ;fi"
 	"pdflatex %f"
	"pdflatex %f"))

although as Achim Gratz pointed out in this thread:


it's probably better to use the Customization interface, particularly if
one is an elisp beginner - do C-h v org-latex-to-pdf-process RET, read the
documentation for the variable and then click the customize link at the bottom
to get to the customization page.



[fn:1] Note that the default setting for this variable is three invocations of
       pdflatex, so I'm just interpolating a call to sage.

  reply	other threads:[~2012-08-17  6:30 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-17  4:33 SageTeX in export mailinglists
2012-08-17  6:30 ` Nick Dokos [this message]
2012-08-19 17:10   ` Ivan Andrus
2012-08-23  2:04   ` mailinglists

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:

  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=21716.1345185018@alphaville \
    --to=nicholas.dokos@hp.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=mailinglists@nawaz.org \


* 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


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