emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: John Kitchin <jkitchin@andrew.cmu.edu>
To: Diogo Ramos <dfsr@riseup.net>
Cc: emacs-orgmode@gnu.org
Subject: Re: How do I format numbers to an exported table to latex, produced by a code block?
Date: Mon, 29 Feb 2016 12:32:07 -0500	[thread overview]
Message-ID: <m2io17fmnc.fsf@Johns-MacBook-Air.local> (raw)
In-Reply-To: <8760x8v18c.fsf@riseup.net>

I am sure this is not the best way to do this, but it more or less does
what you want, which is put the tblfm line at the end (although you
could also format the table in the function.

This is somewhat fragile, i.e. it worked for me as is, and not if I
changed very many things in the headers.


#+name: post-wrapper
#+BEGIN_SRC emacs-lisp :var data="" caption="" attributes="" post-attributes=""
(concat
 (when (not (string= "" attributes))
   (concat (mapconcat 'identity attributes "\n") "\n"))
 (when (not (string= "" caption))
   (format "#+caption: %s" caption))
 (mapconcat
  'identity
  (mapcar (lambda (rs) (concat "|" rs "|"))
          (loop for row in data
                collect
                (mapconcat (lambda (x) (format "%s" x)) row "|")))
  "\n")

 (when post-attributes
   (concat "\n" (mapconcat 'identity post-attributes "\n") "\n")))
#+END_SRC


#+BEGIN_SRC python :results value table raw :post post-wrapper(data=*this*, caption="", attributes="", post-attributes='("#+tblfm: $1=$1;%.3f :: $2=$2;%.3f "))
import numpy as np

return np.matrix([[.123456789, 2], [3, 4]])
#+END_SRC

#+RESULTS:
| 0.12345679 | 2 |
|          3 | 4 |
#+tblfm: $1=$1;%.3f :: $2=$2;%.3f

Diogo Ramos writes:

>>> I have the following org file:
>>>
>>> #+BEGIN_SRC python :exports both
>>>   import numpy as np
>>>
>>>   return np.matrix([[.123456789, 2], [3, 4]])
>>> #+END_SRC
>>>
>>> #+RESULTS:
>>> | 0.12345679 | 2 |
>>> |          3 | 4 |
>>>
>>> I want to export it to latex to produce a pdf but I want to format the
>>> numbers of the table so I get, say
>>>
>>> | 123.456e-3 | 2.000 |
>>> |      3.000 | 4.000 |
>>>
>>> on the exported pdf.
>>>
>>> How can I do it?
>>
>>
>> tblfm allows a printf descriptions.  E.g.
>>
>> | 0.120 | 2.000 |
>> | 3.000 | 4.000 |
>> #+tblfm: $1=$1;%.3f :: $2=$2;%.3f
>>
>> You can attach it via :post.
>
> How do I use `:post'?
>
> In the (info "(org) A LaTeX example") node there is the description of
> `:fmt' and `:efmt' which seem to do what I want but I can't figure out
> how to use them.


--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu

      reply	other threads:[~2016-02-29 17:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-27 22:44 How do I format numbers to an exported table to latex, produced by a code block? Diogo Ramos
2016-02-28 11:51 ` Rasmus
2016-02-28 23:55   ` Diogo Ramos
2016-02-29 17:32     ` John Kitchin [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

  List information: https://www.orgmode.org/

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

  git send-email \
    --in-reply-to=m2io17fmnc.fsf@Johns-MacBook-Air.local \
    --to=jkitchin@andrew.cmu.edu \
    --cc=dfsr@riseup.net \
    --cc=emacs-orgmode@gnu.org \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).