From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christopher Witte Subject: Re: orgmode and auctex Date: Mon, 20 Feb 2012 13:57:37 +0100 Message-ID: References: <10922.1328638512@alphaville> <4354.1328818115@alphaville> <14710.1328983889@alphaville> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=f46d04138eb9c045ad04b964d6bb Return-path: Received: from eggs.gnu.org ([140.186.70.92]:38324) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RzSoK-0000TM-LG for emacs-orgmode@gnu.org; Mon, 20 Feb 2012 07:57:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RzSoF-00083a-Hb for emacs-orgmode@gnu.org; Mon, 20 Feb 2012 07:57:44 -0500 Received: from mail-pz0-f41.google.com ([209.85.210.41]:50635) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RzSoF-00083Q-63 for emacs-orgmode@gnu.org; Mon, 20 Feb 2012 07:57:39 -0500 Received: by dadv6 with SMTP id v6so6027050dad.0 for ; Mon, 20 Feb 2012 04:57:37 -0800 (PST) In-Reply-To: <14710.1328983889@alphaville> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: nicholas.dokos@hp.com Cc: Thomas Alexander Gerds , Org Mode , Carsten Dominik --f46d04138eb9c045ad04b964d6bb Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 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 wrote: > Carsten Dominik wrote: > > > > > On 9.2.2012, at 21:08, Nick Dokos wrote: > > > > > Thomas Alexander Gerds 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 tri= ed > > > 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(# "~/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 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 fin= e. > > >>> 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 gi= t > > >>> today. > > >>> Is there any more information I could provide to help diagnose this > > >>> problem? > > >>> > > >>> Cheers > > >>> Chris. > > >>> > > >>> On 7 February 2012 19:15, Nick Dokos wrote: > > >>> > > >>>> Christopher Witte 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, =D8ster Farimagsgade 5, 1014 Copenhagen, > Denmark > > >> Office: CSS-15.2.07 (Gamle Kommunehospital) > > >> tel: 35327914 (sec: 35327901) > > >> > > > > > > > > --f46d04138eb9c045ad04b964d6bb Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi all,

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

(defun org-mode-reftex-setup ()
=A0 (setq TeX-master t)
=A0 (load-lib= rary "reftex")
=A0 (and (buffer-file-name)
=A0=A0=A0=A0=A0= =A0 (file-exists-p (buffer-file-name))
=A0=A0=A0=A0=A0=A0 (progn
=A0= =A0=A0 =A0(reftex-parse-all)
=A0=A0=A0 =A0(reftex-set-cite-format "= [[cite:%l][%l]]")))
=A0 (define-key org-mode-map (kbd "C-c )") 'reftex-citation)<= br>=A0 (define-key org-mode-map (kbd "C-c (") 'org-mode-refte= x-search))
(add-hook 'org-mode-hook 'org-mode-reftex-setup)
<= br> This appears to work for me.=A0 This should make the buffer local version o= f TeX-master "t" for all org buffer and keep it the default other= wise.=A0 Is this a good way to work around this problem?

Cheers,
Chris.



On 11 February 2012 19:11,= Nick Dokos <nicholas.dokos@hp.com> wrote:
Carsten Dominik <carsten.dominik@gmail.com> wrote:

>
> On 9.2.2012, at 21:08, Nick Dokos wrote:
>
> > Thomas Alexander Gerds <tagteam@sund.ku.dk> 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= 9;.
>

Indeed - the backtrace is as follows:

=A0...
=A0completing-read-default("Master file: " read-file-name-intern= al file-exists-p t "~/src/org/" file-name-history "~/src/org= /foo.org" nil)
=A0completing-read("Master file: " read-file-name-internal file-= exists-p t "~/src/org/" file-name-history "~/src/org/foo.org")
=A0read-file-name-default("Master file: " nil nil t nil nil)
=A0read-file-name("Master file: " nil nil t nil)
=A0reftex-TeX-master-file()
=A0reftex-tie-multifile-symbols()
=A0reftex-access-scan-info((16))
=A0reftex-parse-all()
=A0(and (buffer-file-name) (file-exists-p (buffer-file-name)) (reftex= -parse-all))
=A0org-mode-reftex-setup()
=A0run-hooks(change-major-mode-after-body-hook text-mode-hook outline-mode= -hook org-mode-hook)
=A0apply(run-hooks (change-major-mode-after-body-hook text-mode-hook outli= ne-mode-hook org-mode-hook))
=A0run-mode-hooks(org-mode-hook)
=A0org-mode()
=A0set-auto-mode-0(org-mode nil)
=A0set-auto-mode()
=A0normal-mode(t)
=A0after-find-file(nil t)
=A0find-file-noselect-1(#<buffer foo.org> "~/src/org/foo.org" nil nil "~/src/org/foo.org" (3018153 2055))
=A0find-file-noselect("~/src/org/foo.org" nil nil t)
=A0find-file("~/src/org/= foo.org" t)
=A0call-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 (i= n
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 s= etting
> >> (setq-default TeX-master t).
> >>
> >> Cheers
> >> Tomy
> >>
> >>
> >>
> >> Christopher Witte <chris@witte.net.au> writes:
> >>
> >>> OK so using the setq-default inside a hook is probably no= t a good
> >>> idea.
> >>> But I can reliably reproduce this problem, I'm surpri= sed you couldn't.
> >>> If
> >>> I start emacs using emacs -Q and open an org file everyth= ing is fine.
> >>> If I
> >>> then evaluate this
> >>>
> >>> (setq-default TeX-master nil)
> >>>
> >>> (defun org-mode-reftex-setup ()
> >>> =A0(load-library "reftex")
> >>> =A0(and (buffer-file-name)
> >>> =A0 =A0 =A0 (file-exists-p (buffer-file-name))
> >>> =A0 =A0 =A0 (reftex-parse-all))
> >>> =A0(define-key org-mode-map (kbd "C-c )") '= reftex-citation))
> >>> (add-hook 'org-mode-hook 'org-mode-reftex-setup)<= br> > >>>
> >>> and try to open an org file I get prompted "Master f= ile: ~/". =A0I'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 pull= ed from git
> >>> today.
> >>> Is there any more information I could provide to help dia= gnose this
> >>> problem?
> >>>
> >>> Cheers
> >>> Chris.
> >>>
> >>> On 7 February 2012 19:15, Nick Dokos <nicholas.dokos@hp.com> wr= ote:
> >>>
> >>>> Christopher Witte <chris@witte.net.au> wrote:
> >>>>
> >>>>> I've had a small problem with orgmode and auc= tex. =A0Follwing 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 ()
> >>>>> =A0(load-library "reftex")
> >>>>> =A0(and (buffer-file-name)
> >>>>> =A0 =A0 =A0 (file-exists-p (buffer-file-name)) > >>>>> =A0 =A0 =A0 (reftex-parse-all))
> >>>>> =A0(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. =A0If I comment
> >>>>> out the setq-default I don't get the behaviou= r I would like with
> >>>> mulitfile tex files. =A0My solution
> >>>>> was to change
> >>>>>
> >>>>> (setq-default TeX-master nil)
> >>>>>
> >>>>> to
> >>>>>
> >>>>> (add-hook 'TeX-mode-hook (lambda ()
> >>>>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 (setq-default TeX-mas= ter nil)))
> >>>>>
> >>>>> I then appear to get the behaviour I desire. =A0I= s this a good way
> >>> to do
> >>>> this? =A0If 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 i= n order to
> >>> override
> >>>> the default value: setting the default value from a h= ook seems
> >>> backwards
> >>>> to me.
> >>>>
> >>>> Actually, I added the above code (*without* the TeX-m= ode-hook mod)
> >>> to my
> >>>> minimal .emacs and opening org files does not generat= e any
> >>> questions. Are
> >>>> you sure you have diagnosed the problem correctly? > >>>>
> >>>> Nick
> >>>>
> >> --
> >> Thomas A. Gerds -- Assoc. Prof. Department of Biostatistics > >> University of Copenhagen, =D8ster Farimagsgade 5, 1014 Copenh= agen, Denmark
> >> Office: CSS-15.2.07 (Gamle Kommunehospital)
> >> tel: 35327914 (sec: 35327901)
> >>
> >
>
>

--f46d04138eb9c045ad04b964d6bb--