emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Different set of packages for LaTeX export


From: Julien Cubizolles
Subject: Re: [O] Different set of packages for LaTeX export
Date: Tue, 06 Oct 2015 12:17:44 +0200
User-agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.0.50 (gnu/linux)

Manfred Lotz <address@hidden> writes:

> Hi all,
> I have configured LaTeX export for using xelatex. For this I have
> defined a list of packages in org-latex-default-packages-alist. One of
> those packages is hyperref with certain options.
>
> When creating a normal document, e.g. using class article that works
> fine.
>
> When creating slides, i.e using beamer I get an option clash
> during compiling the tex file because beamer did already load hyperref.
>
> How can I solve it? 

The way I do it: I have different classes for different types of export
(beamer, or "normal") and I'm using different projects to choose from at
export time. The following code is at the beginning of the org file and
has to be run (C-c C-c) when you open the org file. The publishing
functions are just here to rename the pdf file.


--8<---------------cut here---------------start------------->8---
#+begin_src emacs-lisp :tangle yes :exports none
  (setq org-publish-project-alist
        `(("TeX"
           :base-directory "./"
           :publishing-directory "./"
           :publishing-function org-beamer-publish-to-latex
           :exclude ".*"
           :latex-class "mpsi_beamer"
           :include ,(list (file-name-nondirectory buffer-file-name))
           )
          ("beamer"
           :base-directory "./"
           :publishing-directory "./"
           :publishing-function org-beamer-publish-to-pdf
           :exclude ".*"
           :latex-class "mpsi_beamer"
           :include ,(list (file-name-nondirectory buffer-file-name))
           :completion-function jc-org-publish-rename-beamer-pdf
           )
          ("notes"
           :base-directory "./"
           :publishing-directory "./"
           :preparation-function jc-org-latex-notes-preparation
           :publishing-function org-beamer-publish-to-latex
           :exclude ".*"
           :latex-class "mpsi-beamerarticle"
           :include ,(list (file-name-nondirectory buffer-file-name))
           :completion-function jc-org-publish-rename-notes-pdf
           )
          ("eleves"
           :base-directory "./"
           :publishing-directory "./"
           :preparation-function jc-org-latex-notes-preparation
           :publishing-function org-beamer-publish-to-pdf
           :exclude ".*"
           :latex-class "mpsi-beamerarticle-eleves"
           :include ,(list (file-name-nondirectory buffer-file-name))
           :select-tags ("eleves")
           :completion-function jc-org-publish-rename-eleves-pdf
           )          
          ("cours" :components ("beamer" "notes" "eleves"))))
#+end_src
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
(defun jc-org-publish-rename-beamer-pdf ()
  "Rename file.pdf to file-beamer.pdf and file.tex to file-beamer.tex when 
buffer is visiting file.org"
  (jc-org-publish-rename '"pdf" '"beamer")
  (jc-org-publish-rename '"tex" '"beamer"))
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
(defun jc-org-publish-rename (suffix version)
    "Rename file.suffix to file-version.suffix when buffer is visiting file.org"
    (let*   ((file-base-name (remove-org-suffix (buffer-file-name)))
             (file-suffix-name (concat file-base-name "." suffix))
             (file-version-suffix-name (concat file-base-name "-" version  "." 
suffix)))
    (if (file-exists-p file-suffix-name)
        (rename-file file-suffix-name file-version-suffix-name t))
    )
    )
--8<---------------cut here---------------end--------------->8---

Julien.




reply via email to

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