Hi Arash, >>>>> Arash Esbati writes: > Thanks, and no worries. I've installed the change with commit > db11f39d. I'm closing this report, we can reopen once you have a closer > look and something is off. I found out the origin of this bug. The culprit is that font lock is turned on too early. 1. Let me begin the discussion with quote of the comment in tex.el for `find-file-hook': ,---- | ;; Let `TeX-master-file' be called after a new file was opened and | ;; call `TeX-update-style' on any file opened. [...] | ;; | ;; `TeX-update-style' has to be called before | ;; `global-font-lock-mode', which may also be specified in | ;; `find-file-hook', gets called. Otherwise style-based | ;; fontification will break (in XEmacs). That means, `add-hook' | ;; cannot be called with a non-nil value of the APPEND argument. | ;; | ;; `(TeX-master-file nil nil t)' has to be called *before* | ;; `TeX-update-style' as the latter will call `TeX-master-file' | ;; without the `ask' bit set. `---- As this rather old comment implies, AUCTeX assumes that `TeX-update-style' runs _before_ font lock is turned on and style files are written under that assumption. If this assumtion holds, `font-lock-syntax-table' would be initialized after "expl3" style hook sets the syntax table by (set-syntax-table LaTeX-expl3-syntax-table) and fontification would be done as expected. However, modern emacsens actually don't satisfy that assumption. Major mode functions run `global-font-lock-mode-enable-in-buffer' (registered in `after-change-major-mode-hook'), which eventually runs `font-lock-set-defaults' which set `font-lock-syntax-table' at that time, copied from `docTeX-mode-syntax-table', not `LaTeX-expl3-syntax-table'. Thus the fontification was broken. 2. I think that there are two approaches to this bug. A: To move the call to `TeX-master-file' and `TeX-update-style' from `find-file-hook' to somewhere run _before_ `after-change-major-mode-hook' and _after_ major mode hook and local variables entries are applied. B: To abandon the assumption in question and make a new AUCTeX policy to write style files assuming that style hooks are run after font lock is enabled. In my view, A isn't satisfactory: o It wouldn't be robust. The detail of the interaction between major mode function and turning on of font lock can be subject to further changes in future. o There is no suitable place for such "somewhere". Looking at the definition of `run-mode-hooks', the only possibility is to register the calls as local hook of `after-change-major-mode-hook' but I'm afraid that such treatment can break in future as described in the previous item. (On the other hand, there is a good aspect that we can merge call to `TeX-update-sytle' for non-file buffer in `TeX-mode-cleanup'.) If we take approach B, I think the proper solution is to use `font-latex-add-to-syntax-alist' instead of re-calling `font-lock-set-defaults' in expl3.el. See the attached patch. Additionally, we would have to revise similarly existing style files which install their own syntax tables. I expect this doesn't require much work; Here is the output of "grep -E set-syntax-table *.el" under style/ subdirectory: brazilian.el: (set-syntax-table LaTeX-brazilian-mode-syntax-table) bulgarian.el: (set-syntax-table LaTeX-bulgarian-mode-syntax-table) expl3.el: (set-syntax-table LaTeX-expl3-syntax-table) german.el: (set-syntax-table LaTeX-german-mode-syntax-table) icelandic.el: (set-syntax-table LaTeX-icelandic-mode-syntax-table) ngerman.el: (set-syntax-table LaTeX-german-mode-syntax-table) plfonts.el: (set-syntax-table LaTeX-plfonts-mode-syntax-table) plhb.el: (set-syntax-table LaTeX-plhb-mode-syntax-table) polish.el: (set-syntax-table LaTeX-polish-mode-syntax-table) portuguese.el: (set-syntax-table LaTeX-portuguese-mode-syntax-table) What do you think about this? Regards, Ikumi Keita #StandWithUkraine #StopWarInUkraine #Gaza #StopMassiveKilling #CeasefireNOW