From mboxrd@z Thu Jan 1 00:00:00 1970 From: Frozenlock Subject: Re: Including source when exporting in PDF Date: Wed, 11 Jan 2012 21:06:41 -0500 Message-ID: References: <8739bt1dhe.fsf@gmx.com> <4F0DAAAC.50607@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([140.186.70.92]:41362) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RlA3y-0008IX-VM for emacs-orgmode@gnu.org; Wed, 11 Jan 2012 21:06:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RlA3u-0003Rc-Jq for emacs-orgmode@gnu.org; Wed, 11 Jan 2012 21:06:46 -0500 Received: from mail-tul01m020-f169.google.com ([209.85.214.169]:42908) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RlA3u-0003RK-Eu for emacs-orgmode@gnu.org; Wed, 11 Jan 2012 21:06:42 -0500 Received: by obbuo9 with SMTP id uo9so110578obb.0 for ; Wed, 11 Jan 2012 18:06:41 -0800 (PST) In-Reply-To: <4F0DAAAC.50607@gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: R.M.Krug@gmail.com Cc: emacs-orgmode@gnu.org, Eric Schulte 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. #+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 expo= rt.) As you can see, I make sure I don't include a previous PDF, or any other useless file. 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? On Wed, Jan 11, 2012 at 10:28 AM, Rainer M Krug wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 06/01/12 08:45, Eric Schulte wrote: >> Frozenlock writes: >> >>> I am a strong advocate in keeping the source of everything. >>> >>> However, =C2=A0a 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. =C2=A0The 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 : =C2=A0 =C2=A0 =C2=A0 +33 - (0)9 53 10 27 44 > Cell: =C2=A0 =C2=A0 =C2=A0 +33 - (0)6 85 62 59 98 > Fax : =C2=A0 =C2=A0 =C2=A0 +33 - (0)9 58 10 27 44 > > Fax (D): =C2=A0 =C2=A0+49 - (0)3 21 21 25 22 44 > > email: =C2=A0 =C2=A0 =C2=A0Rainer@krugs.de > > Skype: =C2=A0 =C2=A0 =C2=A0RMkrug > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.11 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iEYEARECAAYFAk8NqqwACgkQoYgNqgF2egro/wCfTlVxaVNR1/5395UC8wWrL9Ku > jhIAn3f3Lud1aFrHz1uzo7SlFH+CsmFi > =3DwU4r > -----END PGP SIGNATURE-----