emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] orgmode and auctex


From: Christopher Witte
Subject: Re: [O] orgmode and auctex
Date: Mon, 20 Feb 2012 13:57:37 +0100

Hi all,

(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)
(make-variable-buffer-local 'TeX-master) ;; I think this is need because the variable is not buffer local until Auctex is active

(defun org-mode-reftex-setup ()
  (setq TeX-master t)
  (load-library "reftex")
  (and (buffer-file-name)
       (file-exists-p (buffer-file-name))
       (progn
     (reftex-parse-all)
     (reftex-set-cite-format "[[cite:%l][%l]]")))
  (define-key org-mode-map (kbd "C-c )") 'reftex-citation)
  (define-key org-mode-map (kbd "C-c (") 'org-mode-reftex-search))
(add-hook 'org-mode-hook 'org-mode-reftex-setup)

This appears to work for me.  This should make the buffer local version of TeX-master "t" for all org buffer and keep it the default otherwise.  Is this a good way to work around this problem?

Cheers,
Chris.



On 11 February 2012 19:11, Nick Dokos <address@hidden> wrote:
Carsten Dominik <address@hidden> wrote:

>
> On 9.2.2012, at 21:08, Nick Dokos wrote:
>
> > Thomas Alexander Gerds <address@hidden> wrote:
> >
> >>
> >> Hi Chris,
> >>
> >> maybe I cannot follow exactly what you are trying to do, but when I
> >> start emacs -q and evaluate (setq-default TeX-master nil) and then open
> >> a new file test.tex, then I get the same prompt "Master file:".
> >>
> >
> > I think Chris means that he gets the prompt when he opens a .org file.
> > I couldn't reproduce that behavior when I tried it but I have not tried
> > it again yet.
>
> I think this prompt comes from the function `reftex-TeX-master-file'.
>

Indeed - the backtrace is as follows:

 ...
 completing-read-default("Master file: " read-file-name-internal file-exists-p t "~/src/org/" file-name-history "~/src/org/foo.org" nil)
 completing-read("Master file: " read-file-name-internal file-exists-p t "~/src/org/" file-name-history "~/src/org/foo.org")
 read-file-name-default("Master file: " nil nil t nil nil)
 read-file-name("Master file: " nil nil t nil)
 reftex-TeX-master-file()
 reftex-tie-multifile-symbols()
 reftex-access-scan-info((16))
 reftex-parse-all()
 (and (buffer-file-name) (file-exists-p (buffer-file-name)) (reftex-parse-all))
 org-mode-reftex-setup()
 run-hooks(change-major-mode-after-body-hook text-mode-hook outline-mode-hook org-mode-hook)
 apply(run-hooks (change-major-mode-after-body-hook text-mode-hook outline-mode-hook org-mode-hook))
 run-mode-hooks(org-mode-hook)
 org-mode()
 set-auto-mode-0(org-mode nil)
 set-auto-mode()
 normal-mode(t)
 after-find-file(nil t)
 find-file-noselect-1(#<buffer foo.org> "~/src/org/foo.org" nil nil "~/src/org/foo.org" (3018153 2055))
 find-file-noselect("~/src/org/foo.org" nil nil t)
 find-file("~/src/org/foo.org" t)
 call-interactively(find-file nil nil)


> The user is prompted when TeX-master is an existing variable
> (i.e. AUCTeX is loaded), and when its value is nil or `shared'.

It's actually a bit more complicated than that: it checks if
TeX-master-file is defined as a function (i.e. AUCTEX is loaded) and if
so calls it. It then checks if tex-main-file is defined as a function
(i.e. Emacs LaTeX mode is loaded) and if so calls it. Then it check if
TeX-master is t (in which case (buffer-file-name) is called to set the
master, or 'shared (in which case it reads the file name) or non-nil (in
which case it is used verbatim) or nil (in which case it reads the file
name - the operative case here).

I'll leave it here for now: I've been sick for a couple of days and I
can't think straight right now (or ever...)

Nick


> Greetings
>
> - Carsten
>
> >
> > Nick
> >
> >
> >> so maybe, if you do not want to get prompted, you could try setting
> >> (setq-default TeX-master t).
> >>
> >> Cheers
> >> Tomy
> >>
> >>
> >>
> >> Christopher Witte <address@hidden> writes:
> >>
> >>> OK so using the setq-default inside a hook is probably not a good
> >>> idea.
> >>> But I can reliably reproduce this problem, I'm surprised you couldn't.
> >>> If
> >>> I start emacs using emacs -Q and open an org file everything is fine.
> >>> If I
> >>> then evaluate this
> >>>
> >>> (setq-default TeX-master nil)
> >>>
> >>> (defun org-mode-reftex-setup ()
> >>>  (load-library "reftex")
> >>>  (and (buffer-file-name)
> >>>       (file-exists-p (buffer-file-name))
> >>>       (reftex-parse-all))
> >>>  (define-key org-mode-map (kbd "C-c )") 'reftex-citation))
> >>> (add-hook 'org-mode-hook 'org-mode-reftex-setup)
> >>>
> >>> and try to open an org file I get prompted "Master file: ~/".  I'm
> >>> running
> >>> Ubuntu 11.10 and the emacs-snapshot package: GNU Emacs 23.3.1
> >>> (i686-pc-linux-gnu, GTK+ Version 2.24.5), latest org pulled from git
> >>> today.
> >>> Is there any more information I could provide to help diagnose this
> >>> problem?
> >>>
> >>> Cheers
> >>> Chris.
> >>>
> >>> On 7 February 2012 19:15, Nick Dokos <address@hidden> wrote:
> >>>
> >>>> Christopher Witte <address@hidden> wrote:
> >>>>
> >>>>> I've had a small problem with orgmode and auctex.  Follwing the
> >>> auctex
> >>>> quickstart I added the
> >>>>> following to my .emacs
> >>>>>
> >>>>> (setq-default TeX-master nil)
> >>>>>
> >>>>> and then from the orgmode FAQ to setup reftex in orgmode I added
> >>> the
> >>>> following
> >>>>>
> >>>>> (defun org-mode-reftex-setup ()
> >>>>>  (load-library "reftex")
> >>>>>  (and (buffer-file-name)
> >>>>>       (file-exists-p (buffer-file-name))
> >>>>>       (reftex-parse-all))
> >>>>>  (define-key org-mode-map (kbd "C-c )") 'reftex-citation))
> >>>>> (add-hook 'org-mode-hook 'org-mode-reftex-setup)
> >>>>>
> >>>>> With both of these, whenever I opened an org file I was asked to
> >>> name
> >>>> the master file.  If I comment
> >>>>> out the setq-default I don't get the behaviour I would like with
> >>>> mulitfile tex files.  My solution
> >>>>> was to change
> >>>>>
> >>>>> (setq-default TeX-master nil)
> >>>>>
> >>>>> to
> >>>>>
> >>>>> (add-hook 'TeX-mode-hook (lambda ()
> >>>>>               (setq-default TeX-master nil)))
> >>>>>
> >>>>> I then appear to get the behaviour I desire.  Is this a good way
> >>> to do
> >>>> this?  If so I might add it
> >>>>> to the FAQ.
> >>>>>
> >>>>
> >>>> Probably not. setq-default sets the default value of the variable
> >>>> whereas the hook is supposed to set the local value in order to
> >>> override
> >>>> the default value: setting the default value from a hook seems
> >>> backwards
> >>>> to me.
> >>>>
> >>>> Actually, I added the above code (*without* the TeX-mode-hook mod)
> >>> to my
> >>>> minimal .emacs and opening org files does not generate any
> >>> questions. Are
> >>>> you sure you have diagnosed the problem correctly?
> >>>>
> >>>> Nick
> >>>>
> >> --
> >> Thomas A. Gerds -- Assoc. Prof. Department of Biostatistics
> >> University of Copenhagen, Øster Farimagsgade 5, 1014 Copenhagen, Denmark
> >> Office: CSS-15.2.07 (Gamle Kommunehospital)
> >> tel: 35327914 (sec: 35327901)
> >>
> >
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]