* adding attributes to tables in results
@ 2015-11-21 13:55 John Kitchin
2015-11-21 17:40 ` Charles C. Berry
0 siblings, 1 reply; 7+ messages in thread
From: John Kitchin @ 2015-11-21 13:55 UTC (permalink / raw)
To: Org Mode
Hi everyone,
I am trying to figure out a way to automatically add some attributes to
tables generated from code blocks.
These aren't the same all the time, but some typical things I would want
to do is specify some tables to be longtable, or set the placements,
alignments, etc...
I know of http://orgmode.org/manual/post.html#post which works for
non-table output well, but with tables, adding the text makes the output
not render as a table anymore.
For example:
#+name: attr_wrap
#+begin_src sh :var data="" :results output
echo "#+ATTR_LATEX: :environment longtable"
echo $data
#+end_src
#+BEGIN_SRC emacs-lisp :post attr_wrap(*this*)
(list (+ 2 4) 4 5)
#+END_SRC
#+RESULTS:
: #+ATTR_LATEX: :environment longtable
: 6 4 5
Does anyone know a way to have a code block output a table with
attributes (besides printing them as strings with raw output)?
--
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: adding attributes to tables in results
2015-11-21 13:55 adding attributes to tables in results John Kitchin
@ 2015-11-21 17:40 ` Charles C. Berry
2015-11-21 18:04 ` John Kitchin
0 siblings, 1 reply; 7+ messages in thread
From: Charles C. Berry @ 2015-11-21 17:40 UTC (permalink / raw)
To: John Kitchin; +Cc: Org Mode
On Sat, 21 Nov 2015, John Kitchin wrote:
> Hi everyone,
>
> I am trying to figure out a way to automatically add some attributes to
> tables generated from code blocks.
>
With ob-org loaded:
#+BEGIN_SRC emacs-lisp
(require 'ob-org)
#+END_SRC
this src block (n.b. there is a backslash escaped n in the #+HEADER line
just before the #+ATTR - I hope it doesn't linewrap in email or gnus
readers)
--8<---------------cut here---------------start------------->8---
#+HEADER: :wrap "src org :exports results :results replace \n#+ATTR_LATEX: :environment longtable"
#+BEGIN_SRC emacs-lisp :exports results
(list (+ 2 4) 4 5)
#+END_SRC
--8<---------------cut here---------------end--------------->8---
exports as
--8<---------------cut here---------------start------------->8---
\begin{longtable}{rrr}
6 & 4 & 5\\
\end{longtable}
\end{document}
--8<---------------cut here---------------end--------------->8---
HTH,
Chuck
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: adding attributes to tables in results
2015-11-21 17:40 ` Charles C. Berry
@ 2015-11-21 18:04 ` John Kitchin
2015-11-21 18:09 ` Vikas Rawal
0 siblings, 1 reply; 7+ messages in thread
From: John Kitchin @ 2015-11-21 18:04 UTC (permalink / raw)
To: Charles C. Berry; +Cc: Org Mode
Thanks. That gets me pretty close to what I want.
Charles C. Berry writes:
> On Sat, 21 Nov 2015, John Kitchin wrote:
>
>> Hi everyone,
>>
>> I am trying to figure out a way to automatically add some attributes to
>> tables generated from code blocks.
>>
>
> With ob-org loaded:
>
> #+BEGIN_SRC emacs-lisp
> (require 'ob-org)
> #+END_SRC
>
> this src block (n.b. there is a backslash escaped n in the #+HEADER line
> just before the #+ATTR - I hope it doesn't linewrap in email or gnus
> readers)
>
> --8<---------------cut here---------------start------------->8---
> #+HEADER: :wrap "src org :exports results :results replace \n#+ATTR_LATEX: :environment longtable"
> #+BEGIN_SRC emacs-lisp :exports results
> (list (+ 2 4) 4 5)
> #+END_SRC
> --8<---------------cut here---------------end--------------->8---
>
> exports as
>
> --8<---------------cut here---------------start------------->8---
>
> \begin{longtable}{rrr}
> 6 & 4 & 5\\
> \end{longtable}
> \end{document}
>
> --8<---------------cut here---------------end--------------->8---
>
>
> HTH,
>
> Chuck
--
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: adding attributes to tables in results
2015-11-21 18:04 ` John Kitchin
@ 2015-11-21 18:09 ` Vikas Rawal
2015-11-21 18:52 ` John Kitchin
0 siblings, 1 reply; 7+ messages in thread
From: Vikas Rawal @ 2015-11-21 18:09 UTC (permalink / raw)
To: John Kitchin; +Cc: org-mode mailing list, Charles C. Berry
John,
Just curious. What advantage do you see in adding these attributes to the code block, and not directly to the result?
Vikas
> On 21-Nov-2015, at 11:34 pm, John Kitchin <jkitchin@andrew.cmu.edu> wrote:
>
> Thanks. That gets me pretty close to what I want.
>
> Charles C. Berry writes:
>
>> On Sat, 21 Nov 2015, John Kitchin wrote:
>>
>>> Hi everyone,
>>>
>>> I am trying to figure out a way to automatically add some attributes to
>>> tables generated from code blocks.
>>>
>>
>> With ob-org loaded:
>>
>> #+BEGIN_SRC emacs-lisp
>> (require 'ob-org)
>> #+END_SRC
>>
>> this src block (n.b. there is a backslash escaped n in the #+HEADER line
>> just before the #+ATTR - I hope it doesn't linewrap in email or gnus
>> readers)
>>
>> --8<---------------cut here---------------start------------->8---
>> #+HEADER: :wrap "src org :exports results :results replace \n#+ATTR_LATEX: :environment longtable"
>> #+BEGIN_SRC emacs-lisp :exports results
>> (list (+ 2 4) 4 5)
>> #+END_SRC
>> --8<---------------cut here---------------end--------------->8---
>>
>> exports as
>>
>> --8<---------------cut here---------------start------------->8---
>>
>> \begin{longtable}{rrr}
>> 6 & 4 & 5\\
>> \end{longtable}
>> \end{document}
>>
>> --8<---------------cut here---------------end--------------->8---
>>
>>
>> HTH,
>>
>> Chuck
>
> --
> 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
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: adding attributes to tables in results
2015-11-21 18:09 ` Vikas Rawal
@ 2015-11-21 18:52 ` John Kitchin
2015-11-21 20:04 ` Charles C. Berry
0 siblings, 1 reply; 7+ messages in thread
From: John Kitchin @ 2015-11-21 18:52 UTC (permalink / raw)
To: Vikas Rawal; +Cc: org-mode mailing list, Charles C. Berry
I am running a search committee of 5 people. As applications come in, an
org heading is created for each application, and I run a command to send
one of the committee an email with a review rubric in it, and this
command creates a subheading to put their review. We have 275
applications so far, so I am using code to aggregate results into tables.
Now, I am generating reports that show what each person has reviewed. In
the report, I make a table for each person in a code block that
constructs the data for that person. I don't want to manually modify the
results because there will be a lot of tables, and I have to update this
reasonably often.
HEre is what generates the table, it is a function that returns a list
of results which on its own renders as a table just fine.
#+BEGIN_SRC emacs-lisp :exports results
(happ-reviewer-table "jkitchin@andrew.cmu.edu")
#+END_SRC
would ideally output something like:
#+RESULTS:
#+tblname: kitchin-reviews
#+attr_latex: :environment longtable
#+caption: Reviews by Kitchin
| the | table | I | generated|
from a data result from my function that looked like:
(table
'("#+tblname: kitchin-reviews" "#+attr_latex: :environment longtable"
"#+caption: Reviews by Kitchin")
'(the table I generated))
i.e. of the form (table attrs data)
And even better, on rerunning the code it would correctly replace it. I
usually accomplish this with :results raw and some tedious printing to
get what I want. That way is annoying to rerun because of the manual
removal of the output.
I just made up the syntax, and no doubt there are many other ways to
achieve it. That is what I had in mind though.
The tip Charles gave works for export, but the tables do not look too
good for me in the org-document unless I run C-c ' on them to get them
in org, and I also want them functional in the org-buffer too.
Vikas Rawal writes:
> John,
>
> Just curious. What advantage do you see in adding these attributes to the code block, and not directly to the result?
>
> Vikas
>
>
>
>> On 21-Nov-2015, at 11:34 pm, John Kitchin <jkitchin@andrew.cmu.edu> wrote:
>>
>> Thanks. That gets me pretty close to what I want.
>>
>> Charles C. Berry writes:
>>
>>> On Sat, 21 Nov 2015, John Kitchin wrote:
>>>
>>>> Hi everyone,
>>>>
>>>> I am trying to figure out a way to automatically add some attributes to
>>>> tables generated from code blocks.
>>>>
>>>
>>> With ob-org loaded:
>>>
>>> #+BEGIN_SRC emacs-lisp
>>> (require 'ob-org)
>>> #+END_SRC
>>>
>>> this src block (n.b. there is a backslash escaped n in the #+HEADER line
>>> just before the #+ATTR - I hope it doesn't linewrap in email or gnus
>>> readers)
>>>
>>> --8<---------------cut here---------------start------------->8---
>>> #+HEADER: :wrap "src org :exports results :results replace \n#+ATTR_LATEX: :environment longtable"
>>> #+BEGIN_SRC emacs-lisp :exports results
>>> (list (+ 2 4) 4 5)
>>> #+END_SRC
>>> --8<---------------cut here---------------end--------------->8---
>>>
>>> exports as
>>>
>>> --8<---------------cut here---------------start------------->8---
>>>
>>> \begin{longtable}{rrr}
>>> 6 & 4 & 5\\
>>> \end{longtable}
>>> \end{document}
>>>
>>> --8<---------------cut here---------------end--------------->8---
>>>
>>>
>>> HTH,
>>>
>>> Chuck
>>
>> --
>> 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
>>
--
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: adding attributes to tables in results
2015-11-21 18:52 ` John Kitchin
@ 2015-11-21 20:04 ` Charles C. Berry
2015-11-21 21:45 ` John Kitchin
0 siblings, 1 reply; 7+ messages in thread
From: Charles C. Berry @ 2015-11-21 20:04 UTC (permalink / raw)
To: John Kitchin; +Cc: org-mode mailing list, Vikas Rawal
On Sat, 21 Nov 2015, John Kitchin wrote:
> I am running a search committee of 5 people. As applications come in, an
> org heading is created for each application, and I run a command to send
> one of the committee an email with a review rubric in it, and this
> command creates a subheading to put their review. We have 275
> applications so far, so I am using code to aggregate results into tables.
Ouch! That is serious work!
[snip]
>
> The tip Charles gave works for export, but the tables do not look too
> good for me in the org-document unless I run C-c ' on them to get them
> in org, and I also want them functional in the org-buffer too.
>
>
Use a different wrapper for executing src block outside of exports.
Something like this (with suitable tuning) should work:
#+BEGIN_SRC emacs-lisp
(defun ex-aware-wrap ()
(if org-export-current-backend
(concat "src org :exports results "
":results replace "
"\n#+ATTR_LATEX: "
":environment longtable")
"example"))
#+END_SRC
#+BEGIN_SRC emacs-lisp :exports results :wrap (ex-aware-wrap)
(list (+ 1 2) 3 4)
#+END_SRC
HTH,
Chuck
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: adding attributes to tables in results
2015-11-21 20:04 ` Charles C. Berry
@ 2015-11-21 21:45 ` John Kitchin
0 siblings, 0 replies; 7+ messages in thread
From: John Kitchin @ 2015-11-21 21:45 UTC (permalink / raw)
To: Charles C. Berry; +Cc: org-mode mailing list, Vikas Rawal
Also an interesting approach!
I never execute src blocks on export though (old habit of having
expensive blocks, and the desire to know what the export looks like).
This is close to what I want:
#+name: el_attr
#+BEGIN_SRC emacs-lisp :var data='(1 2 3)
(org-babel-format-result
(concat
"#+tblname: test\n"
"#+ATTR_LATEX: :environment longtable\n"
(orgtbl-to-generic (list data) (list :lstart "|" :lend "|" :sep "|" :fmt "%s"))))
#+END_SRC
#+RESULTS: el_attr
: #+tblname: test
: |1|2|3|
#+BEGIN_SRC emacs-lisp :exports results :post el_attr(*this*)
(list (+ 1 2) 3 3)
#+END_SRC
#+RESULTS:
: #+tblname: test
: #+ATTR_LATEX: :environment longtable
: |3|3|3|
But I cannot figure out how to get the results in org format. If I put
:results org or raw in I get this output:
#+RESULTS:
#+tblname: test
#+ATTR_LATEX: :environment longtable
|40|51|32|51|32|51|41|
Charles C. Berry writes:
> On Sat, 21 Nov 2015, John Kitchin wrote:
>
>> I am running a search committee of 5 people. As applications come in, an
>> org heading is created for each application, and I run a command to send
>> one of the committee an email with a review rubric in it, and this
>> command creates a subheading to put their review. We have 275
>> applications so far, so I am using code to aggregate results into tables.
>
> Ouch! That is serious work!
>
> [snip]
>>
>> The tip Charles gave works for export, but the tables do not look too
>> good for me in the org-document unless I run C-c ' on them to get them
>> in org, and I also want them functional in the org-buffer too.
>>
>>
>
> Use a different wrapper for executing src block outside of exports.
>
> Something like this (with suitable tuning) should work:
>
> #+BEGIN_SRC emacs-lisp
> (defun ex-aware-wrap ()
> (if org-export-current-backend
> (concat "src org :exports results "
> ":results replace "
> "\n#+ATTR_LATEX: "
> ":environment longtable")
> "example"))
> #+END_SRC
>
> #+BEGIN_SRC emacs-lisp :exports results :wrap (ex-aware-wrap)
> (list (+ 1 2) 3 4)
> #+END_SRC
>
> HTH,
>
> Chuck
--
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
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-11-21 21:45 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-21 13:55 adding attributes to tables in results John Kitchin
2015-11-21 17:40 ` Charles C. Berry
2015-11-21 18:04 ` John Kitchin
2015-11-21 18:09 ` Vikas Rawal
2015-11-21 18:52 ` John Kitchin
2015-11-21 20:04 ` Charles C. Berry
2015-11-21 21:45 ` John Kitchin
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).