On Wednesday, 23 Sep 2015 at 14:27, Ista Zahn wrote: > On Wed, Sep 23, 2015 at 2:16 PM, Eric S Fraga <e.fr...@ucl.ac.uk> wrote:
[...] >> One solution, but not an ideal one, is to use file local variables to >> define org-latex-classes (and any other variables) as appropriate for >> the document. It's not ideal because unfortunately most of org's >> variables (as well as many of emacs's own) are "global" and hence affect >> the functionality of org visiting other buffers. I find myself having >> separate emacs instances for some org files for this reason. > > Doesn't "setq-local" solve this problem? Seems to! Thanks. I have done the following: #+begin_src org ,#+title: Testing setq-loccal ,#+latex_class: esftest ,* settings :noexport: ,#+name: startup ,#+begin_src emacs-lisp :results none (setq-local org-latex-classes '(("esftest" "\\documentclass{scrartcl}" ("\\section*{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}") ("\\paragraph{%s}" . "\\paragraph*{%s}") ("\\subparagraph{%s}" . "\\subparagraph*{%s}")))) ,#+end_src # Local Variables: # eval: (esf/execute-startup-block) # End: #+end_src where esf/execute-startup-block executes the src block named "startup". The issue is complicated by the fact that exporters generate a new buffer which has its own variables (hence the use of #+bind:) so some variables should be set using bind but others potentially using setq-local. Thanks again, eric -- : Eric S Fraga (0xFFFCF67D), Emacs 24.5.1, Org release_8.3.1-203-g4ca3d3