all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Eric Schulte" <schulte.eric@gmail.com>
To: "Thomas S. Dye" <tsd@tsdye.com>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>,
	Rainer M Krug <r.m.krug@gmail.com>
Subject: Re: [babel] FEATURE REQUEST: send results into file
Date: Wed, 29 Sep 2010 10:22:55 -0600	[thread overview]
Message-ID: <87r5gcfrj4.fsf@gmail.com> (raw)
In-Reply-To: <5AEB6EE1-152E-4DDC-BAB7-5897FE774E51@tsdye.com> (Thomas S. Dye's message of "Wed, 29 Sep 2010 06:02:29 -1000")

"Thomas S. Dye" <tsd@tsdye.com> 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:          Rainer@krugs.de
>>
>> Skype:          RMkrug
>> Google:         R.M.Krug@gmail.com
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Please use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

      reply	other threads:[~2010-09-29 16:34 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-29  8:58 [babel] FEATURE REQUEST: send results into file Rainer M Krug
2010-09-29  9:21 ` Sébastien Vauban
2010-09-29 10:24   ` Rainer M Krug
2010-09-29 10:59     ` Sébastien Vauban
2010-09-29 11:54       ` Rainer M Krug
2010-09-29 15:53 ` Eric Schulte
2010-09-29 16:02 ` Thomas S. Dye
2010-09-29 16:22   ` Eric Schulte [this message]

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:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87r5gcfrj4.fsf@gmail.com \
    --to=schulte.eric@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=r.m.krug@gmail.com \
    --cc=tsd@tsdye.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* 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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.