I would guess it could. I don't do anything asynchronous, and I am not sure when org-babel-after-execute-hook runs, if it is immediately there is no table to clean up I suppose. It is not necessary to run on a subtree, but on a very large document you probably don't want to do org-element-parse often. John ----------------------------------- Professor John Kitchin (he/him/his) Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu On Wed, May 18, 2022 at 4:57 PM Richard Stanton wrote: > Thanks for the suggestion, John. I’ve tried playing around with this, and > am I right that it seems to have trouble when execution is asynchronous? > > On May 18, 2022, at 1:16 PM, John Kitchin wrote: > > I use a function in an after execute hook for this: > https://github.com/jkitchin/scimax/blob/master/scimax-org.el#L205 > > This works on a subtree, which has been fine for me. You could adapt it to > only work in the results section. > > John > > ----------------------------------- > Professor John Kitchin (he/him/his) > Doherty Hall A207F > Department of Chemical Engineering > Carnegie Mellon University > Pittsburgh, PA 15213 > 412-268-7803 > @johnkitchin > http://kitchingroup.cheme.cmu.edu > > > > On Wed, May 18, 2022 at 4:07 PM Richard Stanton > wrote: > >> I’m running Emacs 28.1 under macOS 12.4 and want to create tables from >> Python code blocks that can be exported to either LaTeX or HTML. The >> simplest way to do this seems to be to generate the output as an org table, >> and using the built-in version of org (9.4.6 >> (9.4.6-798-g738759.dirty-elpaplus @ >> /Users/stanton/.emacs.d/elpa/org-plus-contrib-20210929/)), this works fine >> using either a python or emacs-jupyter code block: >> >> #+begin_src jupyter-python >> [ >> ["Wide a", "b", "c"], >> None, >> [1, 2, 3], >> [4, 5, 6], >> None, >> [7, 8, 9] >> ] >> #+end_src >> >> #+RESULTS: >> | Wide a | b | c | >> |--------+---+---| >> | 1 | 2 | 3 | >> | 4 | 5 | 6 | >> |--------+---+---| >> | 7 | 8 | 9 | >> >> #+begin_src python >> return [ >> ["Wide a", "b", "c"], >> None, >> [1, 2, 3], >> [4, 5, 6], >> None, >> [7, 8, 9] >> ] >> #+end_src >> >> #+RESULTS: >> | Wide a | b | c | >> |--------+---+---| >> | 1 | 2 | 3 | >> | 4 | 5 | 6 | >> |--------+---+---| >> | 7 | 8 | 9 | >> >> >> To use the latest version of org, I change just two lines in my init.el >> from >> >> (straight-use-package '(org :type built-in)) >> (straight-use-package '(org-contrib :type built-in)) >> >> to >> >> (straight-use-package '(org :type git :repo " >> https://code.orgmode.org/bzg/org-mode.git")) >> (straight-use-package '(org-contrib :type git :repo " >> https://git.sr.ht/~bzg/org-contrib”)) >> >> Having done this, the python block still works fine, but the horizontal >> lines in the jupyter-python block are no longer properly aligned with the >> text: >> >> #+begin_src jupyter-python >> [ >> ["Wide a", "b", "c"], >> None, >> [1, 2, 3], >> [4, 5, 6], >> None, >> [7, 8, 9] >> ] >> #+end_src >> >> #+RESULTS: >> | Wide a | b | c | >> |---+---+---| >> | 1 | 2 | 3 | >> | 4 | 5 | 6 | >> |---+---+---| >> | 7 | 8 | 9 | >> >> #+begin_src python >> return [ >> ["Wide a", "b", "c"], >> None, >> [1, 2, 3], >> [4, 5, 6], >> None, >> [7, 8, 9] >> ] >> #+end_src >> >> #+RESULTS: >> | Wide a | b | c | >> |--------+---+---| >> | 1 | 2 | 3 | >> | 4 | 5 | 6 | >> |--------+---+---| >> | 7 | 8 | 9 | >> >> By the way, the org version loaded this time is 9.5.3 (9.5.3-g277897 @ >> /Users/stanton/.emacs.d/straight/build/org/). >> >> The table exports OK, but isn’t much fun to look at in the org file >> itself. >> >> Since I like to use emacs-jupyter, any suggestions would be appreciated. >> I know this worked fine just a few weeks ago. >> >> Thanks! >> >> Richard Stanton >> >> >> >> >> >> >