emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Including source when exporting in PDF


From: Frozenlock
Subject: Re: [O] Including source when exporting in PDF
Date: Thu, 12 Jan 2012 08:54:55 -0500

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?

--

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 <address@hidden> 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
>> <address@hidden> wrote: On 06/01/12 08:45, Eric Schulte wrote:
>>>>> Frozenlock <address@hidden> 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:     address@hidden
>
> 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 via email to

[Prev in Thread] Current Thread [Next in Thread]