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

Reply via email to