From: Rainer M Krug <r.m.krug@gmail.com>
To: Frozenlock <frozenlock@gmail.com>
Cc: emacs-orgmode@gnu.org, Eric Schulte <eric.schulte@gmx.com>
Subject: Re: Including source when exporting in PDF
Date: Thu, 12 Jan 2012 14:59:49 +0100 [thread overview]
Message-ID: <CAGhLh6Hn1h_3P=fHupuyjcASiZwtmHGEkf6qFzyryP+9nYV+Eg@mail.gmail.com> (raw)
In-Reply-To: <CACjB3dtKfLJ2CVxYQrWtgc+0mOPU4_egBCtiQvwtom=ZbaOXJQ@mail.gmail.com>
On 12 January 2012 14:54, Frozenlock <frozenlock@gmail.com> wrote:
> The code block I previously sent only require you to specify which
> _extension_ you want or don't want. No need to include any specific
> filename (other than the .zip file in the latex "include" command).
>
> Am I to understand you want something to include *all and only* tangled files?
Yes - and the files do have different extensions (e.g. .R, .sh, .sub,
none) and are not tangled necessarily in a specific directory.
and the original org file, but that is not a problem.
Rainer
>
> --
>
> I tried ":exports result" with no success. I'll try to send a minimum
> working example shortly.
>
> On Thu, Jan 12, 2012 at 4:11 AM, Rainer M Krug <r.m.krug@gmail.com> wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> On 12/01/12 03:06, Frozenlock wrote:
>>> To include multiple files, I export all of the required files
>>> before the PDF creation and zip them. This way, I only need to
>>> include a single zip file.
>>
>> Good idea.
>>
>>>
>>> #+BEGIN_SRC emacs-lisp :exports none ;; various exports
>>> (save-window-excursion (org-export-as-ascii
>>> org-export-headline-levels)) (save-window-excursion
>>> (org-export-as-html org-export-headline-levels))
>>>
>>> ;;zip the required files (let ((filename (file-name-sans-extension
>>> (file-name-nondirectory (buffer-file-name))))) (shell-command
>>> (concat "zip " filename ".zip " (mapconcat '(lambda (arg) arg)
>>> (remove-if '(lambda (filename) (string-match
>>> "\\.$\\|\\.pdf$\\|\\.atfi$\\|#" filename)) (directory-files
>>> (file-name-directory (buffer-file-name)))) " ")))) #+END_SRC
>>>
>>> (I've added this code in a babel block to evaluate just before the
>>> PDF export.)
>>
>> I actually did not want to fiddle with the file names, as it is to
>> easy to forget some: this concerns in my case literate programming of
>> a simulation model in R, resul;ting in several files of different
>> extensions - it is to easy to forget one.
>>
>> If I tangle, I get all the names of the tangled files, but I do not
>> know how I can feed them into the zip file.
>>
>>>
>>> As you can see, I make sure I don't include a previous PDF, or any
>>> other useless file.
>>
>> True.
>>
>>>
>>> If you wish to add only a single type of file, simply replace
>>> "remove-if" by "remove-if-not" and change the value in the
>>> string-match function. For example,
>>> "\\.$\\|\\.pdf$\\|\\.atfi$\\|#" would become "\\.lisp$" to include
>>> all your exported lisp files.
>>>
>>> Hope this helps!
>>>
>>>
>>> By the way, I can't get the code block to be evaluated
>>> automatically when I export to PDF, any clue on how to do that?
>>
>> I assume, it is caused by the :exports none - so no evaluation is done
>> on export. Try changing it to :exports result and then generate an
>> empty result, or a list of files included in the zip file.
>>
>> Cheers,
>>
>> Rainer
>>
>>
>>>
>>>
>>>
>>> On Wed, Jan 11, 2012 at 10:28 AM, Rainer M Krug
>>> <r.m.krug@gmail.com> wrote: On 06/01/12 08:45, Eric Schulte wrote:
>>>>>> Frozenlock <frozenlock@gmail.com> writes:
>>>>>>
>>>>>>> I am a strong advocate in keeping the source of
>>>>>>> everything.
>>>>>>>
>>>>>>> However, Â a source can easily be lost if it doesn't follow
>>>>>>> the document. In LaTeX, there's a package to attach a file
>>>>>>> to a PDF (like when you attach a file to an email). By
>>>>>>> doing so, the source will follow the PDF even if the common
>>>>>>> reader have no clue what it's for, or even how to use it.
>>>>>>>
>>>>>>
>>>>>> This sounds like a great Reproducible Research practice.
>>>>>>
>>>>>>>
>>>>>>> Here is how I attach my org source to every document I
>>>>>>> export to PDF:
>>>>>>>
>>>>>>> ;; Include the source file for every exported PDF
>>>>>>> (org-mode) (eval-after-load "org-exp" '(defadvice
>>>>>>> org-export-as-latex (around org-export-add-source-pdf
>>>>>>> activate) "Add the source (org file) to the resulting pdf
>>>>>>> file" (let ((filename (buffer-name))) ad-do-it ;do the
>>>>>>> function (let ((latex-buffer ad-return-value)) (set-buffer
>>>>>>> latex-buffer) (while (re-search-forward
>>>>>>> "\\\\usepackage{.+}" nil t)); go to the end of packages
>>>>>>> (insert "\n\\usepackage{attachfile2}"); the package needed
>>>>>>> to attach files (when (re-search-forward
>>>>>>> "\\\\end{document}" nil t) (forward-line -1) (insert
>>>>>>> (concat "\\vfill\n" "\\footnotesize\n" "The source of this
>>>>>>> document is an Org-Mode file attached here:"
>>>>>>> "\n\\attachfile" "{" filename "}"))) (save-buffer)))))
>>>>>>>
>>>>>>>
>>>>>>> This is by no mean a patch, but rather a quick hack.
>>>>>>> Perhaps someone with a working knowledge of the org-export
>>>>>>> could find a way to add a source option?
>>>>>>>
>>>>>>
>>>>>> I think this practice may not actually require any changes to
>>>>>> the Org-mode core. Â The attached small Org-mode file will
>>>>>> attach itself to pdf exports using only features already
>>>>>> present in Org-mode.
>>>
>>> Following this idea - how can I easily attach all files created by
>>> tangling? Is there a programmatic way, without having to specify
>>> them manually?
>>>
>>> Thanks,
>>>
>>> Rainer
>>>
>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Thanks for sharing this idea!
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Cheers!
>>>>>>>
>>>>>>
>>>
>>>
>>
>> - --
>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
>> Biology, UCT), Dipl. Phys. (Germany)
>>
>> Centre of Excellence for Invasion Biology
>> Stellenbosch University
>> South Africa
>>
>> Tel : +33 - (0)9 53 10 27 44
>> Cell: +33 - (0)6 85 62 59 98
>> Fax : +33 - (0)9 58 10 27 44
>>
>> Fax (D): +49 - (0)3 21 21 25 22 44
>>
>> email: Rainer@krugs.de
>>
>> Skype: RMkrug
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.11 (GNU/Linux)
>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>>
>> iEUEARECAAYFAk8Oo7UACgkQoYgNqgF2egpg9wCfTq04zAVki+Oh1g97/C3FERf3
>> Ej0Al30dF8xQdyHNOmOK8y7ZolA0dzE=
>> =IUuN
>> -----END PGP SIGNATURE-----
--
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)
Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa
Tel : +33 - (0)9 53 10 27 44
Cell: +33 - (0)6 85 62 59 98
Fax (F): +33 - (0)9 58 10 27 44
Fax (D): +49 - (0)3 21 21 25 22 44
email: Rainer@krugs.de
Skype: RMkrug
next prev parent reply other threads:[~2012-01-12 14:00 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-04 21:29 Including source when exporting in PDF Frozenlock
2012-01-06 7:45 ` Eric Schulte
2012-01-11 15:28 ` Rainer M Krug
2012-01-12 2:06 ` Frozenlock
2012-01-12 9:11 ` Rainer M Krug
2012-01-12 13:54 ` Frozenlock
2012-01-12 13:59 ` Rainer M Krug [this message]
2012-01-15 5:29 ` Frozenlock
2012-01-16 11:21 ` [BUG?][babel] " Rainer M Krug
2012-01-18 0:57 ` Frozenlock
2012-01-18 9:03 ` Rainer M Krug
2012-01-20 18:12 ` Eric Schulte
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='CAGhLh6Hn1h_3P=fHupuyjcASiZwtmHGEkf6qFzyryP+9nYV+Eg@mail.gmail.com' \
--to=r.m.krug@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=eric.schulte@gmx.com \
--cc=frozenlock@gmail.com \
/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).