GNU bug report logs - #59638
13.0.9; reftex-toc counts incorrectly if section is commented out

Previous Next

Package: auctex;

Reported by: Uwe Brauer <oub <at> mat.ucm.es>

Date: Sun, 27 Nov 2022 17:27:02 UTC

Severity: normal

Found in version 13.0.9

Done: Arash Esbati <arash <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 59638 in the body.
You can then email your comments to 59638 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-auctex <at> gnu.org:
bug#59638; Package auctex. (Sun, 27 Nov 2022 17:27:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Uwe Brauer <oub <at> mat.ucm.es>:
New bug report received and forwarded. Copy sent to bug-auctex <at> gnu.org. (Sun, 27 Nov 2022 17:27:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Uwe Brauer <oub <at> mat.ucm.es>
To: bug-auctex <at> gnu.org
Subject: 13.0.9; reftex-toc counts incorrectly if section is commented out
Date: Sun, 27 Nov 2022 18:26:33 +0100

Hi all

Please consider

\documentclass[12pt]{article}
\begin{document}
\section{First}
%\section{Second}
\section{Third}

\end{document}

reftex-toc

Results in 

TABLE-OF-CONTENTS on ~/ALLES/HGs/tex/vorlesungen/HGBioquim/Folien/Calculo/example-toc.tex
SPC=view TAB=goto RET=goto+hide [q]uit [r]escan [l]abels [f]ollow [x]r [?]Help
------------------------------------------------------------------------------
     1 First
     3 Third

Which is wrong, the counting should give 

1 First
2 Third

It gets worse if the document contains a lot of commented out sections.

Any idea what to do?

Regards

Uwe Brauer 

Emacs  : GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.14.6, Xaw3d scroll bars)
 of 2022-05-02
Package: 13.0.9

current state:
==============
(setq
 AUCTeX-date "2021-04-25"
 window-system 'x
 LaTeX-version "2e"
 TeX-style-path '("/home/oub/emacs/site-lisp/packages/auctex-git/auctex/style" "auto" "style"
                  "/home/oub/ALLES/emacs/site-lisp/auctex-private-style")
 TeX-auto-save t
 TeX-parse-self t
 TeX-master t
 TeX-command-list '(("TeX" "%(PDF)%(tex) %(file-line-error) %`%(extraopts) %S%(PDFout)%(mode)%' %(output-dir) %t" TeX-run-TeX nil
                     (plain-tex-mode ams-tex-mode texinfo-mode) :help "Run plain TeX")
                    ("LaTeX" "%`%l%(mode)%' %T" TeX-run-TeX nil (latex-mode doctex-mode) :help "Run LaTeX")
                    ("Makeinfo" "makeinfo %(extraopts) %(o-dir) %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with Info output")
                    ("Makeinfo HTML" "makeinfo %(extraopts) %(o-dir) --html %t" TeX-run-compile nil (texinfo-mode) :help
                     "Run Makeinfo with HTML output")
                    ("AmSTeX" "amstex %(PDFout) %`%(extraopts) %S%(mode)%' %(output-dir) %t" TeX-run-TeX nil (ams-tex-mode) :help
                     "Run AMSTeX")
                    ("ConTeXt" "%(cntxcom) --once --texutil %(extraopts) %(execopts)%t" TeX-run-TeX nil (context-mode) :help
                     "Run ConTeXt once")
                    ("ConTeXt Full" "%(cntxcom) %(extraopts) %(execopts)%t" TeX-run-TeX nil (context-mode) :help
                     "Run ConTeXt until completion")
                    ("BibTeX" "bibtex %(O?aux)" TeX-run-BibTeX nil
                     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode context-mode) :help "Run BibTeX")
                    ("Biber" "biber %(output-dir) %s" TeX-run-Biber nil (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode)
                     :help "Run Biber")
                    ("Texindex" "texindex %s.??" TeX-run-command nil (texinfo-mode) :help "Run Texindex")
                    ("Texi2dvi" "%(PDF)texi2dvi %t" TeX-run-command nil (texinfo-mode) :help "Run Texi2dvi or Texi2pdf")
                    ("View" "%V" TeX-run-discard-or-function t t :help "Run Viewer")
                    ("Print" "%p" TeX-run-command t t :help "Print the file")
                    ("Queue" "%q" TeX-run-background nil t :help "View the printer queue" :visible TeX-queue-command)
                    ("File" "%(o?)dvips %d -o %f " TeX-run-dvips t (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                     "Generate PostScript file")
                    ("Dvips" "%(o?)dvips %d -o %f " TeX-run-dvips nil (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                     "Convert DVI file to PostScript")
                    ("Dvipdfmx" "dvipdfmx -o %(O?pdf) %d" TeX-run-dvipdfmx nil
                     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help "Convert DVI file to PDF with dvipdfmx")
                    ("Ps2pdf" "ps2pdf %f %(O?pdf)" TeX-run-ps2pdf nil (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                     "Convert PostScript file to PDF")
                    ("Glossaries" "makeglossaries %(d-dir) %s" TeX-run-command nil
                     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help "Run makeglossaries to create glossary file")
                    ("Index" "makeindex %(O?idx)" TeX-run-index nil (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                     "Run makeindex to create index file")
                    ("upMendex" "upmendex %(O?idx)" TeX-run-index t (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                     "Run upmendex to create index file")
                    ("Xindy" "texindy %s" TeX-run-command nil (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                     "Run xindy to create index file")
                    ("Check" "lacheck %s" TeX-run-compile nil (latex-mode) :help "Check LaTeX file for correctness")
                    ("ChkTeX" "chktex -v6 %s" TeX-run-compile nil (latex-mode) :help "Check LaTeX file for common mistakes")
                    ("Spell" "(TeX-ispell-document \"\")" TeX-run-function nil t :help "Spell-check the document")
                    ("Clean" "TeX-clean" TeX-run-function nil t :help "Delete generated intermediate files")
                    ("Clean All" "(TeX-clean t)" TeX-run-function nil t :help "Delete generated intermediate and output files")
                    ("Other" "" TeX-run-command t t :help "Run an arbitrary command"))
 )
-- 
Warning: Content may be disturbing to some audiences
I strongly condemn Putin's war of aggression against the Ukraine.
I support to deliver weapons to Ukraine's military. 
I support the ban of Russia from SWIFT.
I support the EU membership of the Ukraine. 
https://addons.thunderbird.net/en-US/thunderbird/addon/gmail-conversation-view/




Information forwarded to bug-auctex <at> gnu.org:
bug#59638; Package auctex. (Mon, 28 Nov 2022 06:06:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Tassilo Horn <tsdh <at> gnu.org>
To: Uwe Brauer <oub <at> mat.ucm.es>
Cc: bug-auctex <at> gnu.org, 59638 <at> debbugs.gnu.org
Subject: Re: bug#59638: 13.0.9; reftex-toc counts incorrectly if section is
 commented out
Date: Mon, 28 Nov 2022 07:00:22 +0100
Uwe Brauer <oub <at> mat.ucm.es> writes:

Hi Uwe,

> \section{First}
> %\section{Second}
> \section{Third}
>
> \end{document}
>
> reftex-toc
>
> Results in 
>
>      1 First
>      3 Third
>
> Which is wrong, the counting should give 
>
> 1 First
> 2 Third
>
> It gets worse if the document contains a lot of commented out sections.
> Any idea what to do?

I'd call it a feature.  I mean, when you have commented out sections,
you'll most probably intend to uncomment them again.  Otherwise, you
could just delete them, no?

Anyway, you could also try to change reftex-section-pre-regexp from
"\\\\" to "[^%]+[ \t]*\\\\" which might do the trick.

Bye,
Tassilo




Information forwarded to bug-auctex <at> gnu.org:
bug#59638; Package auctex. (Mon, 28 Nov 2022 06:06:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-auctex <at> gnu.org:
bug#59638; Package auctex. (Mon, 28 Nov 2022 08:14:02 GMT) Full text and rfc822 format available.

Message #14 received at 59638 <at> debbugs.gnu.org (full text, mbox):

From: Arash Esbati <arash <at> gnu.org>
To: Tassilo Horn <tsdh <at> gnu.org>
Cc: Uwe Brauer <oub <at> mat.ucm.es>, 59638 <at> debbugs.gnu.org
Subject: Re: bug#59638: 13.0.9; reftex-toc counts incorrectly if section is
 commented out
Date: Mon, 28 Nov 2022 09:13:13 +0100
Hi Tassilo,

Tassilo Horn <tsdh <at> gnu.org> writes:

> I'd call it a feature.  I mean, when you have commented out sections,
> you'll most probably intend to uncomment them again.  Otherwise, you
> could just delete them, no?

This feature was introduced with commit 1e8bb313ea in reftex.el.  The
change was good to make RefTeX recognize sectioning macros in .dtx file,
but I'd consider the behavior in regular .tex files as wrong.  What do
you think about this change:

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
index e72576cdc7..c72dd5fa07 100644
--- a/lisp/textmodes/reftex.el
+++ b/lisp/textmodes/reftex.el
@@ -1005,9 +1005,13 @@ reftex-compile-variables

     ;; Calculate the regular expressions
     (let* (
-;          (wbol "\\(\\`\\|[\n\r]\\)[ \t]*")
-           (wbol "\\(^\\)%?[ \t]*") ; Need to keep the empty group because
-                                    ; match numbers are hard coded
+           ;; (wbol "\\(\\`\\|[\n\r]\\)[ \t]*")
+           ;; Need to keep the empty group because match numbers are
+           ;; hard coded
+           (wbol (concat "\\(^\\)"
+                         (when (string-suffix-p ".dtx" (buffer-file-name) t)
+                           "%")
+                         "[ \t]*"))
            (label-re (concat "\\(?:"
                             (mapconcat #'identity reftex-label-regexps "\\|")
                             "\\)"))
--8<---------------cut here---------------end--------------->8---

@Uwe: Meanwhile, you can try to comment out your sections like this:

%% \section{foo}

and you should get a correct TOC.

Best, Arash




Information forwarded to bug-auctex <at> gnu.org:
bug#59638; Package auctex. (Mon, 28 Nov 2022 17:13:01 GMT) Full text and rfc822 format available.

Message #17 received at 59638 <at> debbugs.gnu.org (full text, mbox):

From: Uwe Brauer <oub <at> mat.ucm.es>
To: Arash Esbati <arash <at> gnu.org>
Cc: Uwe Brauer <oub <at> mat.ucm.es>, 59638 <at> debbugs.gnu.org,
 Tassilo Horn <tsdh <at> gnu.org>
Subject: Re: bug#59638: 13.0.9; reftex-toc counts incorrectly if section is
 commented out
Date: Mon, 28 Nov 2022 18:12:47 +0100
[Message part 1 (text/plain, inline)]
>>> "AE" == Arash Esbati <arash <at> gnu.org> writes:

> Hi Tassilo,
> Tassilo Horn <tsdh <at> gnu.org> writes:

>> I'd call it a feature.  I mean, when you have commented out sections,
>> you'll most probably intend to uncomment them again.  Otherwise, you
>> could just delete them, no?

Not really. Sometimes these constructions are the product of certain
converters.

So 

\section{Theorem 1: Global existence}
instead of 
\begin{thm}[Global existence]
\end{thm}

I end up quicker commenting this stuff out.....

> This feature was introduced with commit 1e8bb313ea in reftex.el.  The
> change was good to make RefTeX recognize sectioning macros in .dtx file,
> but I'd consider the behavior in regular .tex files as wrong.  What do
> you think about this change:

> diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
> index e72576cdc7..c72dd5fa07 100644
> --- a/lisp/textmodes/reftex.el
> +++ b/lisp/textmodes/reftex.el
> @@ -1005,9 +1005,13 @@ reftex-compile-variables

>      ;; Calculate the regular expressions
>      (let* (
> -;          (wbol "\\(\\`\\|[\n\r]\\)[ \t]*")
> -           (wbol "\\(^\\)%?[ \t]*") ; Need to keep the empty group because
> -                                    ; match numbers are hard coded
> +           ;; (wbol "\\(\\`\\|[\n\r]\\)[ \t]*")
> +           ;; Need to keep the empty group because match numbers are
> +           ;; hard coded
> +           (wbol (concat "\\(^\\)"
> +                         (when (string-suffix-p ".dtx" (buffer-file-name) t)
> +                           "%")
> +                         "[ \t]*"))
>             (label-re (concat "\\(?:"
>                              (mapconcat #'identity reftex-label-regexps "\\|")
>                              "\\)"))

I can try to test this later

> @Uwe: Meanwhile, you can try to comment out your sections like this:

> %% \section{foo}

> and you should get a correct TOC.

Confirmed thanks

Uwe 


-- 
Warning: Content may be disturbing to some audiences
I strongly condemn Putin's war of aggression against the Ukraine.
I support to deliver weapons to Ukraine's military. 
I support the ban of Russia from SWIFT.
I support the EU membership of the Ukraine. 
https://addons.thunderbird.net/en-US/thunderbird/addon/gmail-conversation-view/
[smime.p7s (application/pkcs7-signature, attachment)]

Information forwarded to bug-auctex <at> gnu.org:
bug#59638; Package auctex. (Tue, 06 Dec 2022 09:23:01 GMT) Full text and rfc822 format available.

Message #20 received at 59638 <at> debbugs.gnu.org (full text, mbox):

From: Arash Esbati <arash <at> gnu.org>
To: Uwe Brauer <oub <at> mat.ucm.es>
Cc: 59638 <at> debbugs.gnu.org, Tassilo Horn <tsdh <at> gnu.org>
Subject: Re: bug#59638: 13.0.9; reftex-toc counts incorrectly if section is
 commented out
Date: Tue, 06 Dec 2022 10:21:53 +0100
Uwe Brauer <oub <at> mat.ucm.es> writes:

>>>> "AE" == Arash Esbati <arash <at> gnu.org> writes:
>
>> diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
>> index e72576cdc7..c72dd5fa07 100644
>> --- a/lisp/textmodes/reftex.el
>> +++ b/lisp/textmodes/reftex.el
>> @@ -1005,9 +1005,13 @@ reftex-compile-variables
>
>>      ;; Calculate the regular expressions
>>      (let* (
>> -;          (wbol "\\(\\`\\|[\n\r]\\)[ \t]*")
>> -           (wbol "\\(^\\)%?[ \t]*") ; Need to keep the empty group because
>> -                                    ; match numbers are hard coded
>> +           ;; (wbol "\\(\\`\\|[\n\r]\\)[ \t]*")
>> +           ;; Need to keep the empty group because match numbers are
>> +           ;; hard coded
>> +           (wbol (concat "\\(^\\)"
>> +                         (when (string-suffix-p ".dtx" (buffer-file-name) t)
>> +                           "%")
>> +                         "[ \t]*"))
>>             (label-re (concat "\\(?:"
>>                              (mapconcat #'identity reftex-label-regexps "\\|")
>>                              "\\)"))
>
> I can try to test this later

Ping!  Gentlemen, any comment on this proposal?

Best, Arash




Information forwarded to bug-auctex <at> gnu.org:
bug#59638; Package auctex. (Tue, 06 Dec 2022 09:25:01 GMT) Full text and rfc822 format available.

Message #23 received at 59638 <at> debbugs.gnu.org (full text, mbox):

From: Uwe Brauer <oub <at> mat.ucm.es>
To: Arash Esbati <arash <at> gnu.org>
Cc: Uwe Brauer <oub <at> mat.ucm.es>, 59638 <at> debbugs.gnu.org,
 Tassilo Horn <tsdh <at> gnu.org>
Subject: Re: bug#59638: 13.0.9; reftex-toc counts incorrectly if section is
 commented out
Date: Tue, 06 Dec 2022 10:23:52 +0100
[Message part 1 (text/plain, inline)]
>>> "AE" == Arash Esbati <arash <at> gnu.org> writes:

> Uwe Brauer <oub <at> mat.ucm.es> writes:
>>>>> "AE" == Arash Esbati <arash <at> gnu.org> writes:
>> 
>>> diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
>>> index e72576cdc7..c72dd5fa07 100644
>>> --- a/lisp/textmodes/reftex.el
>>> +++ b/lisp/textmodes/reftex.el
>>> @@ -1005,9 +1005,13 @@ reftex-compile-variables
>> 
>>> ;; Calculate the regular expressions
>>> (let* (
>>> -;          (wbol "\\(\\`\\|[\n\r]\\)[ \t]*")
>>> -           (wbol "\\(^\\)%?[ \t]*") ; Need to keep the empty group because
>>> -                                    ; match numbers are hard coded
>>> +           ;; (wbol "\\(\\`\\|[\n\r]\\)[ \t]*")
>>> +           ;; Need to keep the empty group because match numbers are
>>> +           ;; hard coded
>>> +           (wbol (concat "\\(^\\)"
>>> +                         (when (string-suffix-p ".dtx" (buffer-file-name) t)
>>> +                           "%")
>>> +                         "[ \t]*"))
>>> (label-re (concat "\\(?:"
>>> (mapconcat #'identity reftex-label-regexps "\\|")
>>> "\\)"))
>> 
>> I can try to test this later

> Ping!  Gentlemen, any comment on this proposal?

Sorry, unexpected increase in my workload, I hope to test it in the afternoon, sorry.
[smime.p7s (application/pkcs7-signature, attachment)]

Reply sent to Arash Esbati <arash <at> gnu.org>:
You have taken responsibility. (Fri, 16 Dec 2022 15:09:01 GMT) Full text and rfc822 format available.

Notification sent to Uwe Brauer <oub <at> mat.ucm.es>:
bug acknowledged by developer. (Fri, 16 Dec 2022 15:09:01 GMT) Full text and rfc822 format available.

Message #28 received at 59638-done <at> debbugs.gnu.org (full text, mbox):

From: Arash Esbati <arash <at> gnu.org>
To: Uwe Brauer <oub <at> mat.ucm.es>
Cc: 59638-done <at> debbugs.gnu.org, Tassilo Horn <tsdh <at> gnu.org>
Subject: Re: bug#59638: 13.0.9; reftex-toc counts incorrectly if section is
 commented out
Date: Fri, 16 Dec 2022 16:08:00 +0100
Uwe Brauer <oub <at> mat.ucm.es> writes:

> Sorry, unexpected increase in my workload, I hope to test it in the
> afternoon, sorry.

This issue should be fixed now with commit 622838b957 to emacs-29
branch.  Therefore I'm closing this report.

Best, Arash




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 14 Jan 2023 12:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 100 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.