Subject: bug#69404: Loss of latex-mode fontification when loading libraries in latex-mode-hook that require json-mode

From: Gabriele Nicolardi <[email-masked]>
Date: Mon, 26 Feb 2024 10:27:53 +0100

Hi,

my actual scenario involves using |latex-mode-hook| to load some 
libraries that require |json-mode|.

I replicated my issue in a MWE:

I have a |LaTeX| file:

|\documentclass{article} \usepackage{mwe} \begin{document} \blindtext 
\noindent \includegraphics[width=.4\textwidth]{example-image-a}\hfill 
\includegraphics[width=.4\textwidth]{example-image-b} \blindtext 
\end{document} |

If I load it like this:

|emacs -Q test.tex |

I get this “correct” |latex-mode| fontification:

enter image description here <https://i.stack.imgur.com/J2nvW.png>

I have also a config file (I simplified it to obtain the feature):

|(add-hook 'latex-mode-hook #'(lambda () (package-initialize) (require 
'json-mode))) |

If I load my |.tex| file like this:

|emacs -Q --eval "(load-file \"/tmp/config.el\")" test.tex |

I lose |latex-mode| fontification:

enter image description here <https://i.stack.imgur.com/pCKy8.png>

 1. In the last case, to restore correct |latex-mode| fontification I
    need to do |M-x latex-mode|
 2. This problem does not happen with other packages or custom libraries
    but, in my experience, it happens only for the |json-mode| package.
 3. If I load |json-mode| “before” |latex-mode| I have no problem. E.g.
    if I modify the |config.el| file this way:

|(package-initialize) (require 'json-mode) |

and I do:

|emacs -Q --eval "(load-file \"/tmp/config.el\")" test.tex |

I get the correct |latex-mode| fontification.

Am I doing something wrong or is it some kind of bug in |json-mode| or 
in |Emacs|?

*Important note.* This didn’t happen with previous versions of |Emacs|. 
Before upgrading to version 29.2, I was using version 27 and never 
encountered this issue prior to the upgrade.

(I opened an issue on StackExchange where you can find the formatted 
version, with figures, of this message: 
https://emacs.stackexchange.com/q/80447/15606)

Best regards,

Gabriele Nicolardi

​