On 2015-11-09, at 21:49, Nick Dokos <ndo...@gmail.com> wrote: > Marcin Borkowski <mb...@mbork.pl> writes: > >> On 2015-11-09, at 19:54, Martin Steffen <mstef...@ifi.uio.no> wrote: >> >>> Hi, >>> >>> Perhaps it's not really a "fault" of org (nor of auctex), but both >>> things interact unfortunate. >>> >>> The reason is: when I export org to LaTeX, and I visit the latex file >>> afterwards, I want that auctex/emacs is instructed about some facts. Thus I >>> like to have some lines such as >>> >>> %%% Local Variables: >>> %%% mode: latex >>> %%% TeX-master: t >>> %%% End: >>> >>> at the end of the latex file. Org allows that, in that I add the >>> "LATEX-only" export at the end of the org-file >>> >>> #+BEGIN_LATEX >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >>> %%% Local Variables: >>> %%% mode: latex >>> %%% TeX-master: t >>> %%% End: >>> #+END_LATEX >>> >>> >>> Doing that produces the desired lines at the end of the generated latex, and >>> if I visit the latex file, emacs/auctex is instructed according to my >>> wishes. >>> >>> >>> Now the problem: If I refresh the /org/ file, emacs/org thinks that actually >>> the file is a latex file (due to the line "mode: latex") and switches from >>> org-mode to latex-mode. >>> >>> >>> It's a minor thing, obviously, but I just wonder if there's an easy >>> workaround. >> >> Note: this is a terrible hack, so use it your own risk, only if there's >> no sane alternative etc. >> >> #+BEGIN_COMMENT >> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >> %%% Local Variables: >> %%% mode: org >> %%% End: >> #+END_COMMENT >> #+BEGIN_LATEX >> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >> %%% Local Variables: >> %%% mode: latex >> %%% TeX-master: t >> %%% End: >> #+END_LATEX >> > > Is there some rule about what happens when emacs sees two local variable > blocks in a file? It seems that the first one is enforced and the second > ignored: the above works in the given order of the two blocks, but not > if the order is reversed.
I guess this is just implementation detail: the last 3000 characters of the last page are scanned, and if a file local variables list is found, it is applied, no matter what happens /after/ it. > In any case, another solution along the same lines is as follows: > local variables are only recognized in the last "page" of the file so > just add a Control-L at the end of the org file: > > --8<---------------cut here---------------start------------->8--- > ... > #+BEGIN_COMMENT > Insert a control-L here to prevent emacs from interpreting the local > variables block above - local variables blocks are recognized only on > the last "page" of the file. > > #+END_COMMENT > --8<---------------cut here---------------end--------------->8--- Still not pretty, but /much/ better than mine! Best, -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Faculty of Mathematics and Computer Science Adam Mickiewicz University