GNU bug report logs -
#68827
29.1; Latex mode: tex-verbatim face has priority on font-lock-comment-face
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 68827 in the body.
You can then email your comments to 68827 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#68827
; Package
emacs
.
(Tue, 30 Jan 2024 18:18:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Gabriele Nicolardi <gabriele <at> medialab.sissa.it>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Tue, 30 Jan 2024 18:18:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi,
I switched to Emacs 29.1 recently.
I noticed that the tex-verbatim face used in latex-mode to highlight the
\href argument has priority on font-lock-comment-face.
The tex-verbatim face is defined in tex-mode.el:
(defface tex-verbatim
'((t :inherit fixed-pitch-serif))
"Face used to highlight TeX verbatim environments."
:group 'tex)
I think that this is a bug or, at least, very annoying.
This is a fragment of LaTeX code that contains the issue:
ibitem{Zhang:1992fs}
%
%X.-m. Zhang,
%mph{Operators analysis for Higgs potential and cosmological bound on
Higgs mass},
%\href{https://doi.org/10.1103/PhysRevD.47.3065}{mph{Phys. Rev. D}
{fseries 47} (1993) 3065--3067},
%[\href{https://arxiv.org/abs/hep-ph/9301277}{{ tfamily hep-ph/9301277}}].
%
X.-M.~Zhang,
mph{Operators analysis for Higgs potential and cosmological bound on
Higgs mass},
\href{https://doi.org/10.1103/PhysRevD.47.3065}{mph{Phys. Rev. D}
{fseries 47} (1993) 3065}
[\uniarXiv{hep-ph/9301277}]
[\uninspire{literature/340299}].
ibitem{Ham:2004zs}
%
%S.~W. Ham and S.~K. Oh,
%mph{Electroweak phase transition in the standard model with a
dimension-six Higgs operator at one-loop level},
%\href{https://doi.org/10.1103/PhysRevD.70.093007}{mph{Phys. Rev. D}
{fseries 70} (2004) 093007},
%[\href{https://arxiv.org/abs/hep-ph/0408324}{{ tfamily hep-ph/0408324}}].
%
S.W.~Ham and S.K.~Oh,
mph{Electroweak phase transition in the standard model with a
dimension-six Higgs operator at one-loop level},
\href{https://doi.org/10.1103/PhysRevD.70.093007}{mph{Phys. Rev. D}
{fseries 70} (2004) 093007}
[\uniarXiv{hep-ph/0408324}]
[\uninspire{literature/657708}].
I have attached a figure to better illustrate the issue.
I also opened an issue on StackExchange:
https://emacs.stackexchange.com/q/80201/15606
Best,
Gabriel Nicolardi
In GNU Emacs 29.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.20,
cairo version 1.16.0) of 2023-12-10 built on lcy02-amd64-098
Repository revision: 28fb02492c2444c5976eb53fd6f9badfe54f4ea1
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12013000
System Description: Ubuntu 20.04.6 LTS
Configured using:
'configure --prefix=/snap/emacs/current/usr --with-x-toolkit=gtk3
--without-xaw3d --with-modules --with-cairo
--with-native-compilation=aot --with-xinput2 --with-tree-sitter
--with-json
'CFLAGS=-isystem/build/emacs/parts/emacs/install/usr/include
-isystem/build/emacs/parts/emacs/install/usr/include/x86_64-linux-gnu
-isystem/build/emacs/stage/usr/include -O2'
'CPPFLAGS=-isystem/build/emacs/parts/emacs/install/usr/include
-isystem/build/emacs/parts/emacs/install/usr/include/x86_64-linux-gnu
-isystem/build/emacs/stage/usr/include'
'LDFLAGS=-L/build/emacs/parts/emacs/install/lib
-L/build/emacs/parts/emacs/install/usr/lib
-L/build/emacs/parts/emacs/install/lib/x86_64-linux-gnu
-L/build/emacs/parts/emacs/install/usr/lib/x86_64-linux-gnu
-L/build/emacs/stage/usr/lib''
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM XINPUT2 XPM
GTK3 ZLIB
Important settings:
value of $LANG: it_IT.UTF-8
locale-coding-system: utf-8-unix
Major mode: LaTeX
Minor modes in effect:
shell-dirtrack-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
line-number-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils vc-git diff-mode easy-mmode
vc-dispatcher cl-loaddefs comp comp-cstr warnings icons rx cl-seq
cl-macs gv cl-extra help-mode bytecomp byte-compile cl-lib tex-mode
compile text-property-search shell subr-x pcomplete comint ansi-osc
ansi-color ring latexenc rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
native-compile emacs)
Memory information:
((conses 16 102004 9296)
(symbols 48 8726 0)
(strings 32 25838 1504)
(string-bytes 1 806567)
(vectors 16 18509)
(vector-slots 8 370440 15774)
(floats 8 41 82)
(intervals 56 903 0)
(buffers 984 12))
[Message part 2 (text/html, inline)]
[Selezione_112.png (image/png, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#68827
; Package
emacs
.
(Wed, 31 Jan 2024 19:57:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 68827 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi,
I checked the value of the font-lock-keywords variable and found:
```lang-el
("\\\(ProvidesFile\|href\|nolinkurl\|path\|url\) \(\[[^]]\]
\){\(\(?:[^{}\]\|\\.\|{[^}]}\)+\)" 3 'tex-verbatim t)
```
If I use this command to add fontification:
```lang-el
(font-lock-add-keywords nil
'(("\\\(ProvidesFile\|href\|nolinkurl\|path\|url\) \(\[[^]]\]
\){\(\(?:[^{}\]\|\\.\|{[^}]}\)+\)" 3 'tex-verbatim keep)))
```
the problem disappears.
From the manual, I read:
The last two values in subexp-highlighter, override and laxmatch, are
optional flags. If override is |t|, this element can override existing
fontification made by previous elements of |font-lock-keywords|. If it
is |keep|, then each character is fontified if it has not been fontified
already by some other element. If it is |prepend|, the face specified by
facespec is added to the beginning of the |font-lock-face| property. If
it is |append|, the face is added to the end of the |font-lock-face|
property.
So I think that "keep" should be the right choice.
[Message part 2 (text/html, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#68827
; Package
emacs
.
(Sat, 10 Feb 2024 08:56:03 GMT)
Full text and
rfc822 format available.
Message #11 received at 68827 <at> debbugs.gnu.org (full text, mbox):
> Date: Wed, 31 Jan 2024 20:56:12 +0100
> From: Gabriele Nicolardi <gabriele <at> medialab.sissa.it>
>
> I checked the value of the font-lock-keywords variable and found:
>
> ```lang-el
>
> ("\\\(ProvidesFile\|href\|nolinkurl\|path\|url\) \(\[[^]]\] \){\(\(?:[^{}\]\|\\.\|{[^}]}\)+\)" 3 'tex-verbatim t)
>
> ```
>
> If I use this command to add fontification:
>
> ```lang-el
>
> (font-lock-add-keywords nil '(("\\\(ProvidesFile\|href\|nolinkurl\|path\|url\) \(\[[^]]\] \){\(\(?:[^{}\]\|\\.\|{[^}]}\)+\)" 3
> 'tex-verbatim keep)))
>
> ```
>
> the problem disappears.
>
> From the manual, I read:
>
> The last two values in subexp-highlighter, override and laxmatch, are optional flags. If override is t, this
> element can override existing fontification made by previous elements of font-lock-keywords. If it is
> keep, then each character is fontified if it has not been fontified already by some other element. If it is
> prepend, the face specified by facespec is added to the beginning of the font-lock-face property. If it
> is append, the face is added to the end of the font-lock-face property.
>
> So I think that "keep" should be the right choice.
Stefan, any comments to this proposed solution?
Reply sent
to
Stefan Monnier <monnier <at> iro.umontreal.ca>
:
You have taken responsibility.
(Thu, 15 Feb 2024 20:13:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Gabriele Nicolardi <gabriele <at> medialab.sissa.it>
:
bug acknowledged by developer.
(Thu, 15 Feb 2024 20:13:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 68827-done <at> debbugs.gnu.org (full text, mbox):
> I noticed that the tex-verbatim face used in latex-mode to highlight the
> \href argument has priority on font-lock-comment-face.
I'm not sure if it should qualify as a bug or as a feature, to be honest.
> (font-lock-add-keywords nil
> '(("\\\(ProvidesFile\|href\|nolinkurl\|path\|url\) \(\[[^]]\]
> \){\(\(?:[^{}\]\|\\.\|{[^}]}\)+\)" 3 'tex-verbatim keep)))
Thanks. `keep` seems right for the case where the match is inside
a comment, as in your case, but there are other cases where we want
to override the previously applied face (e.g. $math$).
I pushed a patch which re-arranges the rules to avoid that
other problem.
Stefan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#68827
; Package
emacs
.
(Tue, 20 Feb 2024 13:47:01 GMT)
Full text and
rfc822 format available.
Message #19 received at 68827 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
I updated to Emacs 29.2 but I still see the problem.
Il 15/02/24 21:13, GNU bug Tracking System ha scritto:
> Your bug report
>
> #68827: 29.1; Latex mode: tex-verbatim face has priority on font-lock-comment-face
>
> which was filed against the emacs package, has been closed.
>
> The explanation is attached below, along with your original report.
> If you require more details, please reply to 68827 <at> debbugs.gnu.org.
>
[Selezione_118.png (image/png, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#68827
; Package
emacs
.
(Tue, 20 Feb 2024 14:44:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 68827 <at> debbugs.gnu.org (full text, mbox):
> Date: Tue, 20 Feb 2024 14:45:22 +0100
> From: Gabriele Nicolardi <gabriele <at> medialab.sissa.it>
>
> I updated to Emacs 29.2 but I still see the problem.
This was solved by Stefan on the master branch, so the solution will
be in Emacs 30.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 20 Mar 2024 11:24:07 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 149 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.