On Wednesday, 23 Sep 2015 at 14:27, Ista Zahn wrote:
> On Wed, Sep 23, 2015 at 2:16 PM, Eric S Fraga <[email protected]> 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