--- Begin Message ---
Subject: |
26.3; reftex and tikz's labels |
Date: |
Sat, 13 Jun 2020 23:26:11 +0200 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 |
It seems reftex mistakes labels in tikz nodes with genuine \label 's in
LaTeX
source.
To reproduce:
1) open a buffer foo.tex in LaTeX mode
2) insert (via cut&paste) the following text
\begin{figure}
\begin{tikzpicture}
\node at (0,0) [label={node 0}] % not a LaTeX label
\end{tikzpicture}
\caption{Figure that!}
\label{myfigure} % only genuine label
\end{figure}
3) M-x reftex-toc
4) in the TOC buffer, hit key l for reftex-toc-toggle-labels
5) now the TOC buffer shows a genuine LaTeX \label and an irrelevant
tikz node "label".
--phs
"Algebraic symbols are used when you do not know what you are talking about"
In GNU Emacs 26.3 (build 1, x86_64-apple-darwin18.2.0, NS appkit-1671.20
Version 10.14.3 (Build 18D109))
of 2019-09-02 built on builder10-14.porkrind.org
Windowing system distributor 'Apple', version 10.3.1894
Configured using:
'configure --with-ns '--enable-locallisppath=/Library/Application
Support/Emacs/${version}/site-lisp:/Library/Application
Support/Emacs/site-lisp' --with-modules'
Configured features:
NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS
Important settings:
value of $LC_ALL: en_US
value of $LANG: en_US
locale-coding-system: utf-8-unix
Major mode: TOC
Minor modes in effect:
cursor-intangible-mode: t
global-magit-file-mode: t
magit-auto-revert-mode: t
global-git-commit-mode: t
async-bytecomp-package-mode: t
shell-dirtrack-mode: t
diff-auto-refine-mode: t
icomplete-mode: t
global-eldoc-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
buffer-read-only: t
line-number-mode: t
transient-mark-mode: t
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#41841: 26.3; reftex and tikz's labels |
Date: |
Sun, 14 Jun 2020 22:17:10 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
phs <phs@lsv.fr> writes:
> It seems reftex mistakes labels in tikz nodes with genuine \label 's
> in LaTeX source.
>
> To reproduce:
>
> 1) open a buffer foo.tex in LaTeX mode
>
> 2) insert (via cut&paste) the following text
>
> \begin{figure}
> \begin{tikzpicture}
> \node at (0,0) [label={node 0}] % not a LaTeX label
> \end{tikzpicture}
> \caption{Figure that!}
> \label{myfigure} % only genuine label
> \end{figure}
Does adding "tikzpicture" to
reftex-label-ignored-macros-and-environments work?
--8<---------------cut here---------------start------------->8---
reftex-label-ignored-macros-and-environments is a variable defined in
‘reftex-vars.el’.
Its value is nil
You can customize this variable.
This variable was introduced, or its default value was changed, in
version 24.4 of Emacs.
Documentation:
List of macros and environments to be ignored when searching for labels.
The purpose is to ignore environments and macros that use keyval
style label=foo arguments, but the label has a different meaning
than a \label{foo}. Standard \label{...} definitions are never
ignored.
E.g., TikZ defines several macros/environments where [label=foo]
defines the label to be printed at some node or edge, but it’s
not a label used for referencing.
Note that this feature is only supported if you are using AUCTeX
and the functions ‘TeX-current-macro’ and
‘LaTeX-current-environment’ are bound. Also note that this
feature might slow down the reftex parsing process for large TeX
files.
--8<---------------cut here---------------end--------------->8---
In what's going to become Emacs 27.1, we are a bit more conservative and
have a whitelist of environments in which we look for label=foo options.
There, the bug doesn't happen anymore, so I'm closing this bug.
Thanks,
Tassilo
--- End Message ---