Re: [O] Switch for exported file types when evaluating code blocks

2013-07-19 Thread Cook, Malcolm
Suvayu,

This is splendid news!  I will try it immediately upon return from "gone 
fishin" in a week...

 (erhm, that is, right after I figure out haw to migrate my orgmode SETUPFILE 
to comport with new export backend I just upgraded to my fancy TOC and 
org-export-html-table-tag javascript have "gone missin")

Future is looking bright!,

~ malcolm_c...@stowers.org


From: emacs-orgmode-bounces+mec=stowers@gnu.org 
[emacs-orgmode-bounces+mec=stowers@gnu.org] on behalf of Suvayu Ali 
[fatkasuvayu+li...@gmail.com]
Sent: Friday, July 19, 2013 5:23 AM
To: emacs-orgmode@gnu.org
Subject: Re: [O] Switch for exported file types when evaluating code blocks

On Thu, Jul 18, 2013 at 09:02:41PM -0400, Nick Dokos wrote:
>
> #+BEGIN_LaTeX
> \includesvg{foo}
> #+END_LaTeX

I believe even this can be integrated with Org using a filter.  How
about something like this:

(defun my-svg-graphics (contents backend info)
  (when (eq backend 'latex)
(replace-regexp-in-string "\\`includegraphics.+\\({.+\.svg}\\)"
   "includesvg\1" contents)))

(add-to-list 'org-export-filter-link-functions 'my-svg-graphics)

Of course the above ignores the options since I do not know if
\includesvg takes the same options.  But that is a detail that can be
fixed by changing the regexp.

What do you think?


--
Suvayu

Open source is the future. It sets us free.




Re: [O] Switch for exported file types when evaluating code blocks

2013-07-19 Thread Cook, Malcolm
Great Example, Nick, Thanks, will push on with this approach

~ malcolm_c...@stowers.org


From: emacs-orgmode-bounces+mec=stowers@gnu.org 
[emacs-orgmode-bounces+mec=stowers@gnu.org] on behalf of Nick Dokos 
[ndo...@gmail.com]
Sent: Thursday, July 18, 2013 8:02 PM
To: emacs-orgmode@gnu.org
Subject: Re: [O] Switch for exported file types when evaluating code blocks

"Cook, Malcolm"  writes:

> Hi Nick, I'm not sure how to use this ctan package in concert with
> orgmode's export to tex->pdf.
>

Here's a simplfied example of what I did with it. The source block uses
dot to produce an SVG file for illustration - if you already have one
then you can ignore it:

--8<---cut here---start->8---
#+LATEX_HEADER: \usepackage{svg}

* foo

#+name: foo
#+BEGIN_SRC dot :file foo.svg :exports results :results none
digraph foo {
  a -> b
}
#+END_SRC

#+BEGIN_LaTeX
\includesvg{foo}
#+END_LaTeX
--8<---cut here---end--->8---

> Perhaps there is a way to use orgmode's export filtering capability to
> swap in a up-to-date png when exporting to tex

PNG is a raster format whereas SVG is a vector format. I was trying to
produce some slides and I did use PNG at first because it's easier to
fit into the pdflatex workflow. But when I made the slides full screen,
the PNG got fuzzy. Sticking with SVG got rid of the fuzzies for me.

>
> Hmmm
>
> Anyone?
>
> Thx!
>
>  >-Original Message-
>  >From: emacs-orgmode-bounces+mec=stowers@gnu.org 
> [mailto:emacs-orgmode-bounces+mec=stowers@gnu.org] On
>  >Behalf Of Nick Dokos
>  >Sent: Wednesday, July 17, 2013 11:02 PM
>  >To: emacs-orgmode@gnu.org
>  >Subject: Re: [O] Switch for exported file types when evaluating code blocks
>  >
>  >Suvayu Ali  writes:
>  >
>  >> Hello again Malcolm,
>  >>
>  >> On Thu, Jul 18, 2013 at 12:45:36AM +, Cook, Malcolm wrote:
>  >>>
>  >>> I tend to work with org-export-babel-evaluate set to nil.  Thus, my
>  >>> code blocks are not evaled in the context of an export.  Thus at
>  >>> eval time there is no way of knowing what the eventual backend is
>  >>> going to be.
>  >>>
>  >>> I think I need an approach that auto converts svg to png 
> on-demand/on-the-fly during export.
>  >>
>  >> In that case just use another source block with shell source.  In that
>  >> block you can call inkscape to do the conversion.  For an example, see
>  >> here:
>  >> 
> <http://ctan.mirrorcatalogs.com/info/svg-inkscape/InkscapePDFLaTeX.pdf#subsubsection.2.3.1>
>  >>
>  >
>  >OT for the OP (say that three times fast!) but maybe of some use to 
> somebody:
>  >
>  >For SVG, there is a latex package that is an evolutionary offshoot of
>  >the above link. It does the inkscape dance so you don't have to:
>  >
>  >   http://www.tex.ac.uk/ctan/graphics/svg/
>  >
>  >--
>  >Nick
>  >
>
>
>

--
Nick





Re: [O] Switch for exported file types when evaluating code blocks

2013-07-19 Thread Suvayu Ali
On Thu, Jul 18, 2013 at 09:02:41PM -0400, Nick Dokos wrote:
> 
> #+BEGIN_LaTeX
> \includesvg{foo}
> #+END_LaTeX

I believe even this can be integrated with Org using a filter.  How
about something like this:

(defun my-svg-graphics (contents backend info)
  (when (eq backend 'latex)
(replace-regexp-in-string "\\`includegraphics.+\\({.+\.svg}\\)"
   "includesvg\1" contents)))

(add-to-list 'org-export-filter-link-functions 'my-svg-graphics)

Of course the above ignores the options since I do not know if
\includesvg takes the same options.  But that is a detail that can be
fixed by changing the regexp.

What do you think?

-- 
Suvayu

Open source is the future. It sets us free.



Re: [O] Switch for exported file types when evaluating code blocks

2013-07-18 Thread Nick Dokos
"Cook, Malcolm"  writes:

> Hi Nick, I'm not sure how to use this ctan package in concert with
> orgmode's export to tex->pdf.
>

Here's a simplfied example of what I did with it. The source block uses
dot to produce an SVG file for illustration - if you already have one
then you can ignore it:

--8<---cut here---start->8---
#+LATEX_HEADER: \usepackage{svg}

* foo

#+name: foo
#+BEGIN_SRC dot :file foo.svg :exports results :results none
digraph foo {
  a -> b
}
#+END_SRC

#+BEGIN_LaTeX
\includesvg{foo}
#+END_LaTeX
--8<---cut here---end--->8---

> Perhaps there is a way to use orgmode's export filtering capability to
> swap in a up-to-date png when exporting to tex

PNG is a raster format whereas SVG is a vector format. I was trying to
produce some slides and I did use PNG at first because it's easier to
fit into the pdflatex workflow. But when I made the slides full screen,
the PNG got fuzzy. Sticking with SVG got rid of the fuzzies for me.

>
> Hmmm
>
> Anyone?
>
> Thx!
>
>  >-Original Message-
>  >From: emacs-orgmode-bounces+mec=stowers@gnu.org 
> [mailto:emacs-orgmode-bounces+mec=stowers@gnu.org] On
>  >Behalf Of Nick Dokos
>  >Sent: Wednesday, July 17, 2013 11:02 PM
>  >To: emacs-orgmode@gnu.org
>  >Subject: Re: [O] Switch for exported file types when evaluating code blocks
>  >
>  >Suvayu Ali  writes:
>  >
>  >> Hello again Malcolm,
>  >>
>  >> On Thu, Jul 18, 2013 at 12:45:36AM +, Cook, Malcolm wrote:
>  >>>
>  >>> I tend to work with org-export-babel-evaluate set to nil.  Thus, my
>  >>> code blocks are not evaled in the context of an export.  Thus at
>  >>> eval time there is no way of knowing what the eventual backend is
>  >>> going to be.
>  >>>
>  >>> I think I need an approach that auto converts svg to png 
> on-demand/on-the-fly during export.
>  >>
>  >> In that case just use another source block with shell source.  In that
>  >> block you can call inkscape to do the conversion.  For an example, see
>  >> here:
>  >> 
> <http://ctan.mirrorcatalogs.com/info/svg-inkscape/InkscapePDFLaTeX.pdf#subsubsection.2.3.1>
>  >>
>  >
>  >OT for the OP (say that three times fast!) but maybe of some use to 
> somebody:
>  >
>  >For SVG, there is a latex package that is an evolutionary offshoot of
>  >the above link. It does the inkscape dance so you don't have to:
>  >
>  >   http://www.tex.ac.uk/ctan/graphics/svg/
>  >
>  >--
>  >Nick
>  >
>
>
>

-- 
Nick




Re: [O] Switch for exported file types when evaluating code blocks

2013-07-18 Thread Cook, Malcolm
Hi Nick,  I'm not sure how to use this ctan package in concert with orgmode's 
export to tex->pdf.  

Perhaps there is a way to use orgmode's export filtering capability to swap in 
a up-to-date png when exporting to tex

Hmmm

Anyone?

Thx!

 >-Original Message-
 >From: emacs-orgmode-bounces+mec=stowers@gnu.org 
 >[mailto:emacs-orgmode-bounces+mec=stowers@gnu.org] On
 >Behalf Of Nick Dokos
 >Sent: Wednesday, July 17, 2013 11:02 PM
 >To: emacs-orgmode@gnu.org
 >Subject: Re: [O] Switch for exported file types when evaluating code blocks
 >
 >Suvayu Ali  writes:
 >
 >> Hello again Malcolm,
 >>
 >> On Thu, Jul 18, 2013 at 12:45:36AM +, Cook, Malcolm wrote:
 >>>
 >>> I tend to work with org-export-babel-evaluate set to nil.  Thus, my
 >>> code blocks are not evaled in the context of an export.  Thus at
 >>> eval time there is no way of knowing what the eventual backend is
 >>> going to be.
 >>>
 >>> I think I need an approach that auto converts svg to png 
 >>> on-demand/on-the-fly during export.
 >>
 >> In that case just use another source block with shell source.  In that
 >> block you can call inkscape to do the conversion.  For an example, see
 >> here:
 >> <http://ctan.mirrorcatalogs.com/info/svg-inkscape/InkscapePDFLaTeX.pdf#subsubsection.2.3.1>
 >>
 >
 >OT for the OP (say that three times fast!) but maybe of some use to somebody:
 >
 >For SVG, there is a latex package that is an evolutionary offshoot of
 >the above link. It does the inkscape dance so you don't have to:
 >
 >   http://www.tex.ac.uk/ctan/graphics/svg/
 >
 >--
 >Nick
 >




Re: [O] Switch for exported file types when evaluating code blocks

2013-07-17 Thread Nick Dokos
Suvayu Ali  writes:

> Hello again Malcolm,
>
> On Thu, Jul 18, 2013 at 12:45:36AM +, Cook, Malcolm wrote:
>> 
>> I tend to work with org-export-babel-evaluate set to nil.  Thus, my
>> code blocks are not evaled in the context of an export.  Thus at
>> eval time there is no way of knowing what the eventual backend is
>> going to be.
>> 
>> I think I need an approach that auto converts svg to png 
>> on-demand/on-the-fly during export.
>
> In that case just use another source block with shell source.  In that
> block you can call inkscape to do the conversion.  For an example, see
> here:
> 
>

OT for the OP (say that three times fast!) but maybe of some use to somebody:

For SVG, there is a latex package that is an evolutionary offshoot of
the above link. It does the inkscape dance so you don't have to:

   http://www.tex.ac.uk/ctan/graphics/svg/

-- 
Nick




Re: [O] Switch for exported file types when evaluating code blocks

2013-07-17 Thread Suvayu Ali
Hello again Malcolm,

On Thu, Jul 18, 2013 at 12:45:36AM +, Cook, Malcolm wrote:
> 
> I tend to work with org-export-babel-evaluate set to nil.  Thus, my code 
> blocks are not evaled in the context of an export.  Thus at eval time there 
> is no way of knowing what the eventual backend is going to be.
> 
> I think I need an approach that auto converts svg to png on-demand/on-the-fly 
> during export.

In that case just use another source block with shell source.  In that
block you can call inkscape to do the conversion.  For an example, see
here:


Hope this helps,

-- 
Suvayu

Open source is the future. It sets us free.



Re: [O] Switch for exported file types when evaluating code blocks

2013-07-17 Thread Cook, Malcolm
>I want graphics files which are exported by evaluated code blocks to be
 >generated in a format best suited to their intended use.  For HTML I
 >want either PNG or SVG.  For LaTeX/PDF I almost always want PDF.  For
 >inline viewing in emacs I want either PNG or SVG.
 >
 >To that end I went a'googling and found this idea:
 >
 >  
 > http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-LaTeX.html#sec-4-3
 >
 >It doesn't work with my copies[1] of emacs and org-mode but I was able
 >to adapt it.  I suck at elisp so this is probably more an accomplishment
 >to me than it appears to most of you!
 >
 >In any case, here is a short org document based on the one I found above
 >in worg which shows what I ended up with:
 >
 >
 >* COMMENT setup
 >#+begin_src emacs-lisp :results silent
 >  (defmacro by-backend (&rest body)
 >`(case (if (boundp 'backend) backend nil) ,@body))
 >#+end_src
 >
 >* A graph
 >#+header: :file (by-backend (html "graph.png") (latex "graph.pdf") (t 
 >"graph.svg"))
 >#+header: :export results
 >#+begin_src dot
 >digraph Name {
 >tail -> head;
 >}
 >#+end_src
[Cook, Malcolm] 

Brett,

Thanks for posting your findings.  They almost help me.

I am looking for a solution to a similar problem.

I tend to work with org-export-babel-evaluate set to nil.  Thus, my code blocks 
are not evaled in the context of an export.  Thus at eval time there is no way 
of knowing what the eventual backend is going to be.

I think I need an approach that auto converts svg to png on-demand/on-the-fly 
during export.

Has anyone come across a variation on this that works as I am suggesting?

Thanks!




[O] Switch for exported file types when evaluating code blocks

2013-07-17 Thread Brett Viren
Hi,

I'm hitting on an old theme in a new way here.  

I want graphics files which are exported by evaluated code blocks to be
generated in a format best suited to their intended use.  For HTML I
want either PNG or SVG.  For LaTeX/PDF I almost always want PDF.  For
inline viewing in emacs I want either PNG or SVG.

To that end I went a'googling and found this idea:

  http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-LaTeX.html#sec-4-3

It doesn't work with my copies[1] of emacs and org-mode but I was able
to adapt it.  I suck at elisp so this is probably more an accomplishment
to me than it appears to most of you!

In any case, here is a short org document based on the one I found above
in worg which shows what I ended up with:


* COMMENT setup
#+begin_src emacs-lisp :results silent
  (defmacro by-backend (&rest body)
`(case (if (boundp 'backend) backend nil) ,@body))
#+end_src

* A graph
#+header: :file (by-backend (html "graph.png") (latex "graph.pdf") (t 
"graph.svg"))
#+header: :export results
#+begin_src dot
digraph Name {
tail -> head;
}
#+end_src


I think the real learning experience for me was that I could put lisp
directly in a header like this!  Now, I just gotta learn elisp
better

Also, I'd certainly be interested to hear of any better ways to
accomplish this.

Thanks,
-Brett.


[1] The versions I'm using are

 - Org-mode version 8.0.3 (8.0.3-elpa @ 
/home/bviren/.emacs.d/elpa/org-20130514/)

 - GNU Emacs 24.1.1 (i486-pc-linux-gnu, GTK+ Version 2.24.10) of 2012-07-20 on 
murphy, modified by Debian


pgpOglEO1Y7O6.pgp
Description: PGP signature