John Kitchin wrote:
Hi everyone,
I have an idea for putting links in a pdf that would open python code
blocks in an editor. To do that, I need to modify what happens when an
org-file is published to latex.
Hello John,
Few days ago, I did some research on the general problem:
- not python specific (code agnostic)
- not latex specific (export back-end agnostic)
Unfortunately I ended up only for specific parts, but hope that can be
useful starting points.
I think that the ability to attach code blocks in a easy and general
way can be a nice improvement.
Essentially I want it to do exactly what it already does in terms of
running pygments, and making nicely formatted and syntax highlighted
code blocks and output.
After that though, I want to tangle the code block to a file in a
directory, and insert a new link after the rendered code block. I
would prefer not to have to put :tangle headings in each code block
because there are many (e.g. hundreds) of them in course notes.
sufficient if they were just sequentially numbered as dir/1.py,
dir/2.py, etc... and it is fine if these get overwritten on each
export.
If can live with a different file per section instead of per code
block you can group the common setting, eg:
:PROPERTIES:
:header-args: octave :session *octave-sess* :exports both :results output
:tangle lab1-ex1.m
:END:
the link that would go after the code block in the latex export would
be something like: \LaunchPython{dir/1.py}{Open code}
Then clicking on it would open dir/1.py in whatever editor your
system is configured for. \LaunchPython is a newcommand I have
defined that works already.
My hack with limited use to latex and html (and probably will not copy
the tangled file with html publish) is:
#+LATEX_HEADER: \usepackage{attachfile}
#+MACRO: embed-matlab @@latex:\textattachfile[mimetype=text/x-matlab,color=0 0 0.5]{$1}{$1}@@
@@html:<a href="$1">$1</a>@@
#+NAME: code:2
#+BEGIN_SRC octave
x = 1:10
#+END_SRC
Snippets of octave source code for this exercise
{{{embed-matlab(lab1-ex1.m)}}}
It seems like the new export engine should make this easy to do, but
I am not sure where to start. Could anyone point me to a starting
place? Thanks!
I only have limited lisp knowledge, but I am interested as well in
pointers for a general solution.
Regards,
Daniele