From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg Minshall Subject: Re: parameterizing keyword values during a #+call Date: Tue, 30 Apr 2013 10:40:02 -0400 Message-ID: <11889.1367332802@greg-minshalls-mbp.local> References: <87ehdw53b1.fsf@gmail.com> Return-path: Received: from eggs.gnu.org ([208.118.235.92]:40153) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UXBj0-00050E-Si for emacs-orgmode@gnu.org; Tue, 30 Apr 2013 10:40:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UXBit-0007DB-Ig for emacs-orgmode@gnu.org; Tue, 30 Apr 2013 10:40:10 -0400 Received: from relay01.pair.com ([209.68.5.15]:4885) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1UXBit-0007CC-BO for emacs-orgmode@gnu.org; Tue, 30 Apr 2013 10:40:03 -0400 In-reply-to: Your message of "Fri, 26 Apr 2013 16:34:42 -0600." <87ehdw53b1.fsf@gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eric Schulte Cc: emacs-orgmode@gnu.org Eric, just for completeness, and in case this may be of use to other people, below is the result of my question + your suggestions. the following illustrates org-mode plus asymptote producing a .svg file during html export, and a pdf file during any other (presumably, latex) export. thanks again, Greg ---- # trying to get graphics that works for both latex/beamer and for html # here's a suggestion from Eric Schulte # http://article.gmane.org/gmane.emacs.orgmode/71301 # with this clarification # http://article.gmane.org/gmane.emacs.orgmode/71393 # which produced the following # we define an emacs lisp macro ext that produces a file extension # of "svg" or "pdf" depending on whether we are exporting to html or # to some other source. this macro is called when computing the # output file name argument in a call to an asymptote routine as in: # # #+call: rectangle[:file (ext twod-1)](TSIZE=1.0) :results file # # which calls an asymptote routine (defined in our file) called # rectangle to produce a file called twod-1.svg or twod-1.pdf. # define the ext emacs lisp macro (i think in the following you *need* # ":exports results" -- instead of ":exports none" -- to make sure the # code is executed during export; the ":results silent" keeps any # output -- or nil -- from showing up in the output file.) #+begin_src emacs-lisp :exports results :results silent (defmacro ext (base) (format "%s.%s" base (if (and (boundp 'backend) (equal backend 'html)) "svg" "pdf"))) #+end_src # follows an example use of the above macro # first, define a asymptote function (org-named "rectangle") that # draws a rectangle #+name: rectangle #+begin_src asymptote :var TSIZE=1.0 :exports none import trembling; size(100); int off = 2, width = 100, height = 30; string tsize = format("%g", TSIZE); tremble tr0=tremble(angle=0); // no trembling tremble tr10=tremble(angle=10,frequency=0.1,random=50,fuzz=1); picture rectangle(pair sw, pair ne, int offset, string text, tremble tr) { picture pic; path g = (sw.x+offset,sw.y+offset)--(ne.x-offset,sw.y+offset)--(ne.x-offset,ne.y-offset)--(sw.x+offset,ne.y-offset)--cycle; label(pic, text, ((sw.x+ne.x)/2, (sw.y+ne.y)/2)); draw(pic, tr.deform(g)); return pic; } add(rectangle((0,0),(width,height),0, "", tr0)); add(rectangle((0,0),(width,height),off, tsize, tr10)); #+end_src # now, invoke the above asymptote function, producing a file called # either twod-1.svg or twod-1.pdf: #+call: rectangle[:file (ext twod-1)](TSIZE=1.0) :results file # now, you can C-c C-e l o or C-c C-e h o and see the image in the # two formats # $Id: parameterizing.org,v 1.2 2013/04/30 14:37:29 minshall Exp $