Re: [O] Adding export option for babel language
Ken Mankoff mankoff at gmail.com writes: I'd like to add support for PythonTeX to Org Babel https://github.com/gpoore/pythontex The motivation is that PythonTeX is a better literate environment than just Org + Babel, because it can print results inline just like an interactive Python session, instead of all the code followed by all the results. This is just a modification to the existing LaTeX export for python, it is not support for a new language. I'm new to Org development and seek advice how to begin approaching the solution. I'd like the python code blocks to behave just as they do now, but if I have set (setq org-latex-listings 'pythontex) instead of (setq org-latex-listings 'minted), then instead of wrapping python code blocks with: \begin{minted}[]{python} x+2 print x \end{minted} It should wrap them with \begin{pyconsole} x+2 print x \end{pyconsole} A quick-and-dirty approach to do just that much would be to write an export filter for `src-block' and maybe `inline-src-block', see (info (org) Advanced configuration) http://orgmode.org/worg/dev/org-export-reference.html#filter-system and http://orgmode.org/worg/exporters/filter-markup.html Also, `C-h f org--filter TAB' should give you a buffer of such filter functions (and a couple of false positives) that you might browse. HTH, Chuck
Re: [O] Adding export option for babel language
Hi Chuck, On 2014-05-08 at 12:17, Charles Berry ccbe...@ucsd.edu wrote: I'd like the python code blocks to behave just as they do now, but if I have set (setq org-latex-listings 'pythontex) instead of (setq org-latex-listings 'minted), then instead of wrapping python code blocks with: \begin{minted}[]{python} x+2 print x \end{minted} It should wrap them with \begin{pyconsole} x+2 print x \end{pyconsole} A quick-and-dirty approach to do just that much would be to write an export filter for `src-block' and maybe `inline-src-block', see (info (org) Advanced configuration) http://orgmode.org/worg/dev/org-export-reference.html#filter-system and http://orgmode.org/worg/exporters/filter-markup.html Also, `C-h f org--filter TAB' should give you a buffer of such filter functions (and a couple of false positives) that you might browse. I've briefly looked at the filters. Yes, it seems like that might be one way to do this. But I have a hunch it is already implemented, and that I just don't know how to access it or what variable to set. See: http://orgmode.org/cgit.cgi/org-mode.git/tree/lisp/ox-latex.el#n2280 Where Case 1 is no fontification, Case 3 is minted, and Case 2 is custom. I can see that if `custom-env` is set correctly, it wraps the code exactly as I want above: (custom-env (format \\begin{%s}\n%s\\end{%s}\n custom-env (org-export-format-code-default src-block info) custom-env)) But I'm not sure where to set custom-env, although I know I want to set it to `pyconsole`. -k.
Re: [O] Adding export option for babel language
I figured it out: (setq org-latex-custom-lang-environments '((python pyconsole))) And of course \usepackage{pythontex} somewhere. This is really nice. Now the Org buffer behaves as before, but the exported LaTeX has the python code appear as if it were run right there in an interactive session. I set :export code so the Org results are not shown in the PDF, and PythonTeX re-generates the results and puts them inline! -k. On 2014-05-08 at 15:53, Ken Mankoff mank...@gmail.com wrote: Hi Chuck, On 2014-05-08 at 12:17, Charles Berry ccbe...@ucsd.edu wrote: I'd like the python code blocks to behave just as they do now, but if I have set (setq org-latex-listings 'pythontex) instead of (setq org-latex-listings 'minted), then instead of wrapping python code blocks with: \begin{minted}[]{python} x+2 print x \end{minted} It should wrap them with \begin{pyconsole} x+2 print x \end{pyconsole} A quick-and-dirty approach to do just that much would be to write an export filter for `src-block' and maybe `inline-src-block', see (info (org) Advanced configuration) http://orgmode.org/worg/dev/org-export-reference.html#filter-system and http://orgmode.org/worg/exporters/filter-markup.html Also, `C-h f org--filter TAB' should give you a buffer of such filter functions (and a couple of false positives) that you might browse. I've briefly looked at the filters. Yes, it seems like that might be one way to do this. But I have a hunch it is already implemented, and that I just don't know how to access it or what variable to set. See: http://orgmode.org/cgit.cgi/org-mode.git/tree/lisp/ox-latex.el#n2280 Where Case 1 is no fontification, Case 3 is minted, and Case 2 is custom. I can see that if `custom-env` is set correctly, it wraps the code exactly as I want above: (custom-env (format \\begin{%s}\n%s\\end{%s}\n custom-env (org-export-format-code-default src-block info) custom-env)) But I'm not sure where to set custom-env, although I know I want to set it to `pyconsole`. -k.
[O] Adding export option for babel language
I'd like to add support for PythonTeX to Org Babel https://github.com/gpoore/pythontex The motivation is that PythonTeX is a better literate environment than just Org + Babel, because it can print results inline just like an interactive Python session, instead of all the code followed by all the results. This is just a modification to the existing LaTeX export for python, it is not support for a new language. I'm new to Org development and seek advice how to begin approaching the solution. I'd like the python code blocks to behave just as they do now, but if I have set (setq org-latex-listings 'pythontex) instead of (setq org-latex-listings 'minted), then instead of wrapping python code blocks with: \begin{minted}[]{python} x+2 print x \end{minted} It should wrap them with \begin{pyconsole} x+2 print x \end{pyconsole} I found out that the minted export is handled in ox-latex.el, and I assume I could get pythontex support by going through that file and tearing it down and building it back up with pythontex in place of minted, but I also noticed this: ;; Case 2. Custom environment. (custom-env (format \\begin{%s}\n%s\\end{%s}\n custom-env (org-export-format-code-default src-block info) custom-env)) Can I take advantage of this code? It seems like this might be the support for Special Blocks http://orgmode.org/worg/org-contrib/org-special-blocks.html But that page says that the code is obsolete. And a special block won't be treated as a python org babel block in the Org file, which is important. Any advice where I should start digging to add pythontex support will be much appreciated. Thanks, -k.