Subject: 13.0.8; subscripts and superscripts not parsed correctly if there are underscores outside of math mode
From: Todor Tsankov <[email-masked]>
To: [email-masked]
Date: Sun, 25 Apr 2021 10:47:57 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Dear Maintainers,

I am using font-latex-fontify-script set to invisible in order to hide _
and ^ in math expressions. Unfortunately, AucTeX fails to correctly
parse the file if there are underscores in the document outside of math
mode (for example, in labels or comments). Here are two examples:

\documentclass{article}
\begin{document}
\begin{equation}
  \label{eq_1}
  x_0  \end{equation}
\end{document}

\documentclass{article}
\begin{document}
\begin{equation}
  % y_0
  x_0  \end{equation}
\end{document}

For me, AucTeX displays the underscore in x_0 despite the
font-latex-fontify-script option. The second one is more problematic
because it is quite common to comment out LaTeX code with a lot of
subscripts and superscripts. This also leads to inconsistent
fontification in large files.

Thank you for maintaining AucTeX.

Best wishes,
Todor

Emacs  : GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.24, cairo version 1.16.0)
 of 2021-03-28, modified by Debian
Package: 13.0.8

current state:
==============
(setq
 AUCTeX-date "2021-04-18"
 window-system 'x
 LaTeX-version "2e"
 TeX-style-path '("~/.emacs.d/auctex"
"/home/todor/.emacs.d/elpa/auctex-13.0.8/style"
                  "/home/todor/.emacs.d/auctex/auto"
"/home/todor/.emacs.d/auctex/style"
                  "auto" "style")
 TeX-auto-save nil
 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 %s %(output-dir)" TeX-run-Biber nil
                     (plain-tex-mode latex-mode doctex-mode ams-tex-mode
texinfo-mode)
                     :help "Run Biber")
                    ("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 %d -o %(O?pdf)"
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 %(O?aux)"
TeX-run-command nil
                     (plain-tex-mode latex-mode doctex-mode ams-tex-mode
texinfo-mode)
                     :help "Run makeglossaries to create glossary\n
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"))
 )