emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
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 10:11:17 +0100	[thread overview]
Message-ID: <4F0EA3B5.6080903@gmail.com> (raw)
In-Reply-To: <CACjB3ds0M142_3PVs0p8Nu0nhO2wKQz11ZmAyMv9uvgATB7hHg@mail.gmail.com>

-----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-----

  reply	other threads:[~2012-01-12  9:11 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 [this message]
2012-01-12 13:54         ` Frozenlock
2012-01-12 13:59           ` Rainer M Krug
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=4F0EA3B5.6080903@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).