GNU bug report logs -
#57720
13.1.4; renumbering simple labels doesn't work with tcolorbox From: "Wierdl Máté" <wierdlmate@gmail.com>
Previous Next
Reported by: Wierdl Máté <wierdlmate <at> gmail.com>
Date: Sat, 10 Sep 2022 19:44:01 UTC
Severity: normal
Found in version 13.1.4
Done: Arash Esbati <arash <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
It now seems to work perfectly. I tried it not only on the test file but
also on the book I have been working on which loads quite a few .tex files.
Should I put this "defun" into my .emacs for the time being, till it gets
incorporated into reftex?
Thx,
Máté
Arash Esbati <arash <at> gnu.org> ezt írta (időpont: 2022. szept. 11., V, 5:14):
> Wierdl Máté <wierdlmate <at> gmail.com> writes:
>
> > I do not know if this is a reftex or AUCTeX bug.
>
> RefTeX.
>
> > When using theoremlike environments from the tcolorbox, the function
> > reftex-renumber-simple-labels messes up. It renumbers the labels in
> > references but does nothing to the labels themselves.
>
> The issue is more in the function `reftex-translate' which is called
> inside `reftex-renumber-simple-labels': The former is not prepared to
> deal with labels inside arguments of environments. Can you try this
> change by copying to scratch buffer, opening your .tex file, eval'ing
> this function and then running `reftex-renumber-simple-labels' and see
> if it works?
>
> --8<---------------cut here---------------start------------->8---
> (defun reftex-translate (files search-re translate-alist error-fmt test)
> ;; In FILES, look for SEARCH-RE and replace match 1 of it with
> ;; its association in TRANSLATE-ALIST.
> ;; If we do not find an association and TEST is non-nil, query
> ;; to ignore the problematic string.
> ;; If TEST is nil, it is ignored without query.
> ;; Return the number of replacements.
> (let ((n 0) file label match-data buf macro pos cell)
> (while (setq file (pop files))
> (setq buf (reftex-get-file-buffer-force file))
> (unless buf
> (error "No such file %s" file))
> (set-buffer buf)
> (save-excursion
> (save-restriction
> (widen)
> (goto-char (point-min))
> (while (re-search-forward search-re nil t)
> (backward-char)
> (save-excursion
> (setq label (reftex-match-string 1)
> cell (assoc label translate-alist)
> match-data (match-data)
> macro (reftex-what-macro 1)
> pos (cdr macro))
> (goto-char (or pos (point)))
> (when (and macro
> (or (looking-at "\\\\ref")
> (looking-at
> "\\\\[a-zA-Z]*ref\\(range\\)?[^a-zA-Z]")
> (looking-at "\\\\ref[a-zA-Z]*[^a-zA-Z]")
> (looking-at (format
> reftex-find-label-regexp-format
> (regexp-quote label)))
> ;; In case the label-keyval is inside an
> ;; optional argument to \begin{env}
> (looking-at (concat
> "\\\\begin[[:space:]]*{[^}]+}"
> "[[:space:]]*"
> "\\[[^][]*"
> (format
> reftex-find-label-regexp-format
> (regexp-quote label))
> "[^][]*\\]"))
> ;; In case the label-keyval is inside the
> ;; first mandatory argument to \begin{env}
> (looking-at (concat
> "\\\\begin[[:space:]]*{[^}]+}"
> "[[:space:]]*"
> "{[^}{]*"
> (format
> reftex-find-label-regexp-format
> (regexp-quote label))
> "[^}{]*}"))))
> ;; OK, we should replace it.
> (set-match-data match-data)
> (cond
> ((and test (not cell))
> ;; We've got a problem
> (unwind-protect
> (progn
> (reftex-highlight 1 (match-beginning 0) (match-end
> 0))
> (ding)
> (or (y-or-n-p (format error-fmt label))
> (error "Abort")))
> (reftex-unhighlight 1)))
> ((and test cell)
> (cl-incf n))
> ((and (not test) cell)
> ;; Replace
> (goto-char (match-beginning 1))
> (delete-region (match-beginning 1) (match-end 1))
> (insert (cdr cell)))
> (t nil))))))))
> n))
> --8<---------------cut here---------------end--------------->8---
>
> TIA. Best, Arash
>
[Message part 2 (text/html, inline)]
This bug report was last modified 2 years and 249 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.