Nick Dokos <ndo...@gmail.com> writes: > Julien Cubizolles <j.cubizol...@free.fr> writes: > >> I'm using the following elisp source block in my org files to choose the >> publication options. >> >> (setq org-publish-project-alist >> '(("TeX" >> :base-directory "./" >> :publishing-directory "./" >> :publishing-function org-beamer-publish-to-latex >> :exclude ".*" >> :latex-class "mpsi_beamer" >> :include ("test.org")) >> )) >> >> I'd like to define it once and for all in my emacs >> configuration files but I'd need to replace the >> >> :include ("test.org") >> >> line with the result of (buffer-name). Is it possible ? >> > > Do you mean buffer-file-name?
Yes that's better. > When you publish a project, it does not matter what your current buffer > is. So why would you want to include the random file that you just > happen to be visiting? And what if the buffer is not associated with a > file at all (so buffer-file-name returns nil)? > Can you explain what exactly you are trying to do? I need to export the same org file with different latex classes and package options. I do so by using different projects for the same file. > The usual method of splicing in a variable into a list is with > backquote - see e.g. > > http://thread.gmane.org/gmane.emacs.orgmode/9583/focus=9603 > > but I don't think that would work here in any case. Thanks for the pointer, it works: --8<---------------cut here---------------start------------->8--- (defun jc-org-publish-project-options () (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)) ) ( several other projects...) ))) (add-hook 'org-mode-hook 'jc-org-publish-project-options) (add-hook 'org-export-before-processing-hook 'jc-org-publish-project-options) --8<---------------cut here---------------end--------------->8--- I'm not sure file-name-nondirectory is necessary. As you can see I need to hook this function twice: - the org-mode-hook is so that the project names are available in any org file - the org-export-before-processing-hook is to adapt the :include option to each org file before export. That's not very elegant, if someone has any idea. Julien.