From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: Using babel to generate org syntax for export Date: Mon, 13 Jan 2014 19:39:49 -0800 Message-ID: <874n579qpm.fsf@gmail.com> References: <948bc8d8-46f3-4923-9ccb-28f1ed8ad299@dewdrop-world.net> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59801) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W2usx-00040b-HH for emacs-orgmode@gnu.org; Mon, 13 Jan 2014 22:41:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W2uss-0003Ge-81 for emacs-orgmode@gnu.org; Mon, 13 Jan 2014 22:41:51 -0500 Received: from mail-pd0-x22a.google.com ([2607:f8b0:400e:c02::22a]:56333) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W2uss-0003GL-1V for emacs-orgmode@gnu.org; Mon, 13 Jan 2014 22:41:46 -0500 Received: by mail-pd0-f170.google.com with SMTP id z10so2938374pdj.29 for ; Mon, 13 Jan 2014 19:41:44 -0800 (PST) In-Reply-To: <948bc8d8-46f3-4923-9ccb-28f1ed8ad299@dewdrop-world.net> (James Harkins's message of "Tue, 14 Jan 2014 11:24:22 +0800") 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: James Harkins Cc: orgmode James Harkins writes: > Hi, > > Got a question that's not easy to search online. > > I want to use an org table to define glossary entries for LaTeX. I have my > table[1], and I have a src block[2] that reads the table and produces the > right syntax[3]. This is already pretty helpful -- I can C-c C-c the source > block and manually copy/paste the generated syntax into the org file that I > will then export. > > But... I want babel to do that for me automatically. I'm almost there, but: > > The resulting string is put into a verbatim environment -- which is not > right for this case. I need the string to be inserted as if it were org > syntax ("#+LATEX_HEADER" and all) that I typed by hand, and then ox-latex > would process it like any other LaTeX header. > > I've tried both ":results value" and ": results output" but the verbatim > environment is always there. > Have you tried ":results raw" or ":results org", take a look at the manual page on the results header argument. Best, > > A quick glance at ob-core.el seems to indicate that this behavior is > hardcoded. That's... frustrating: spend 2-3 hours to get this far and then > find that babel says, "No, you can't do that, actually." > > So, I'm at the end of the energy I have left to test various approaches. > What's the best approach? I'm guessing, apply a filter to remove the > begin/end verbatim lines. But maybe there's a magic switch in babel? > > For reference: > > [1] input file, nearly minimal example > [2] actual result of C-c C-e l L (removing preamble) > [3] desired result > > hjh > > [1] > * UGens :noexport: > #+name: ugens01 > | Type | Term | Description | Arguments | > |------+----------+---------------------+-------------| > | Osc | SinOsc | Sinewave oscillator | freq, phase | > > #+name: makegloss > #+begin_src emacs-lisp :var tbl=ugens01 :exports results :results value > (let ((str "")) > (pop tbl) > (pop tbl) > (while tbl > (let ((item (car tbl))) > (pop item) > (setq str (concat str (format > "\\newglossaryentry{%s}{type=ugen,name={%s},description={%s. Inputs: > (%s)}}\n" > (car item) > (pop item) > (pop item) > (car item)))) > (setq tbl (cdr tbl)))) > str) > #+end_src > > * Test > #+call: makegloss > #+results: makegloss > > [2] > \section{Test} > \label{sec-1} > \begin{verbatim} > \newglossaryentry{SinOsc}{type=ugen,name={SinOsc},description={Sinewave > oscillator. Inputs: (freq, phase)}} > \end{verbatim} > > [3] > \section{Test} > \label{sec-1} > \newglossaryentry{SinOsc}{type=ugen,name={SinOsc},description={Sinewave > oscillator. Inputs: (freq, phase)}} > > -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D