emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] [babel] FEATURE REQUEST: send results into file


From: Eric Schulte
Subject: Re: [Orgmode] [babel] FEATURE REQUEST: send results into file
Date: Wed, 29 Sep 2010 10:22:55 -0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.90 (gnu/linux)

"Thomas S. Dye" <address@hidden> writes:

> Aloha Rainer,
>
> Perhaps this will work?  Eric Schulte wrote a function to make a LaTeX
> table out of an Org-mode table.

Ah, thanks for suggesting this Tom, I'd forgotten about that function.

If you'll indulge me, I'd like to expound upon the library of babel
(lob) as I sometimes feel that it is underutilized among Babel features.
The function below is distributed in the lob in the contrib directory of
Org-mode, and by putting something like

(org-babel-lob-ingest "~/src/org/contrib/babel/library-of-babel.org")

into your Emacs initialization all of the many library of Babel
functions -- I'd recommend browsing the file as there are some
interesting functions -- will be available from any Org-mode file to be
called using call lines

#+call: booktabs(table=...)

or executable noweb references in source blocks as Tom suggests below.
This file lives in the contrib directory to ease the process of adding
user-contributed functions without the authors having to go through the
Emacs assignment process.

Best -- Eric

> You should be able to call it from within a LaTeX source block that
> tangles to a suitably named file.  There is an added benefit in the
> support for booktabs rules, so you'll need to have the booktabs
> package installed.
>
> hth,
> Tom
>
>> --8<---------------cut here---------------start------------->8---
>> *** booktabs
>> This block can be used to wrap a table in the latex =booktabs=
>> environment, it takes the following arguments -- all but the first two
>> are optional.
>> | arg   | description                                |
>> |-------+--------------------------------------------|
>> | table | a reference to the table                   |
>> | align | optional alignment string                  |
>> | env   | optional environment, default to "tabular" |
>> | width | optional width specification string        |
>>
>> #+srcname: booktabs
>> #+begin_src emacs-lisp :var table='((:head) hline (:body)) :var
>> align='() :var env="tabular" :var width='() :noweb yes :results
>> latex
>> (flet ((to-tab (tab)
>>                (orgtbl-to-generic
>>                 (mapcar (lambda (lis)
>>                           (if (listp lis)
>>                               (mapcar (lambda (el)
>>                                         (if (stringp el)
>>                                             el
>>                                           (format "%S" el))) lis)
>>                             lis)) tab)
>>                 (list :lend " \\\\" :sep " & " :hline "\\hline"))))
>>   (org-fill-template
>>    "
>> \\begin{%env}%width%align
>> \\toprule
>> %table
>> \\bottomrule
>> \\end{%env}\n"
>>    (list
>>     (cons "env"       (or env "table"))
>>     (cons "width"     (if width (format "{%s}" width) ""))
>>     (cons "align"     (if align (format "{%s}" align) ""))
>>     (cons "table"
>>           ;; only use \midrule if it looks like there are column
>> headers
>>           (if (equal 'hline (second table))
>>               (concat (to-tab (list (first table)))
>>                       "\n\\midrule\n"
>>                       (to-tab (cddr table)))
>>             (to-tab table))))))
>> #+end_src
>> --8<---------------cut here---------------end--------------->8---
>>
>> once loaded it can be applied as here
>>
>> --8<---------------cut here---------------start------------->8---
>> ** booktabs
>> #+tblname: months
>> | num | Abbrev. |
>> |-----+---------|
>> |   1 | Jan.    |
>> |   2 | Feb.    |
>> |   3 | Mar.    |
>>
>> #+call: booktabs(table=months, align="r|l") :results latex :exports
>> results
>> --8<---------------cut here---------------end--------------->8---
>
> On Sep 28, 2010, at 10:58 PM, Rainer M Krug wrote:
>
>> Hi
>>
>> Based on a discussion in the thread "Problem with PROPERTIES
>> :OPTIONS: when exporting subtree", The idea came ub by  Mathew
>> Lundin to be able to "send the results or a source code block
>> (either executed code or exported org snippets) via babel to a
>> target in an external file.".
>>
>> The scenario or context in which the idea came up:
>>
>> I am using org babel for literate programming and I document my
>> parameters for simulations in a table in org. Now when writing a
>> paper, for which I use a different program (I use LyX), but I still
>> would like to include the tables from my original org file in them.
>> Therefore I was looking for a possibility to export ONLY the table
>> into a .tex file, so that it can be included in the LyX / LaTeX via
>> \input{theTable.tex} . Therefore I would need an export of the table
>> in LaTeX format, but no preamble or anything. As far as I was told,
>> this possibility does not exist in org.
>>
>> So Mathew's / my question is if it would be possible to include a
>> functionality to "send the results or a source code block (either
>> executed code or exported org snippets) via babel to a target in an
>> external file.".
>>
>>
>> Cheers,
>>
>> Rainer
>>
>>
>> --
>> NEW GERMAN FAX NUMBER!!!
>>
>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
>> Biology, UCT), Dipl. Phys. (Germany)
>>
>> Centre of Excellence for Invasion Biology
>> Natural Sciences Building
>> Office Suite 2039
>> Stellenbosch University
>> Main Campus, Merriman Avenue
>> Stellenbosch
>> South Africa
>>
>> Cell:           +27 - (0)83 9479 042
>> Fax:            +27 - (0)86 516 2782
>> Fax:            +49 - (0)321 2125 2244
>> email:          address@hidden
>>
>> Skype:          RMkrug
>> Google:         address@hidden
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Please use `Reply All' to send replies to the list.
>> address@hidden
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode



reply via email to

[Prev in Thread] Current Thread [Next in Thread]