|
From: | Gustavo Barros |
Subject: | bug#38258: 12.2.0; reftex-view-crossref on citation pre- and postnotes |
Date: | Tue, 25 Aug 2020 17:42:46 -0300 |
User-agent: | mu4e 1.4.13; emacs 27.1 |
Hi Arash, On Tue, 25 Aug 2020 at 17:11, Arash Esbati <arash@gnu.org> wrote:
The point is that the command will do a bibfile search when it is not on the key argument, and on top of that, gives the user the wrongerror message of "no such database argument", when it should be giving"Not on a crossref macro argument".If I take your example and put point on the optional argument [45] and hit `C-c &', RefTeX says: No BibTeX entry with citation key \cite[45] which makes sense.Besides, one does not even need to call it to get the spurious echo of "no such database entry", by just leaving point on a prenote/postnote.True. You can disable this by setting the variable `reftex-auto-view-crossref':
I know, Arash... I like `reftex-auto-view-crossref' and enable it, but the problem is not with the intended behavior, but with the not useful and annoying echo which comes when point is idle *outside* a key argument, if it happens to be in a pre/postnote. And why should `reftex-view-crossref' behave differently when point is between "4" and "5", in the MWE, and when it is in the following line, outside the citation macro altogether? Why run `reftex-view-cr-cite' when we already know we are not in a citation key, but in a postnote?
To be very explicit, the command in question is `reftex-view-crossref`, and it is also called by `reftex-view-crossref-when-idle' which is responsible for the echo message. `reftex-view-crossref` checks if point is within a macro with `(car (reftex-what-macro-safe 1))', and later checks if it is a citation macro with `(string-match "\\`\\\\cite\\|cite\\([s*]\\|texts?\\)?\\'\\|bibentry" macro)'. My suggestion is just to add a further check to see if we are indeed in a mandatory argument (a citation key).
Best, Gustavo.
[Prev in Thread] | Current Thread | [Next in Thread] |