branch: main
commit f38b5ac7b1ee1f26fd05dcfbc9b04fa69ca4f765
Merge: a7f2e25f f52eeb28
Author: Arash Esbati <ar...@gnu.org>
Commit: Arash Esbati <ar...@gnu.org>

    Merge remote-tracking branch 'origin/master'
---
 NEWS.org                     |  10 ++
 RELEASE                      |   7 +-
 bib-cite.el                  |  41 ++++----
 context-en.el                |   6 +-
 context.el                   |  35 ++++---
 doc/auctex.texi              |  11 +-
 doc/changes.texi             |   6 ++
 doc/preview-latex.texi       |  12 +--
 font-latex.el                |   6 +-
 latex.el                     |  65 ++++++------
 latex/preview.dtx            |   8 +-
 lpath.el                     |   1 +
 plain-tex.el                 |  16 ++-
 preview.el                   |   5 +-
 style/amsmath.el             |  17 ++--
 style/appendix.el            |   7 +-
 style/array.el               |  14 +--
 style/beamer.el              |  21 ++--
 style/contract.el            | 161 ++++++++++++++++++++++++++++++
 style/dcolumn.el             |   6 +-
 style/diagbox.el             |  93 +++++++++++++++++
 style/epigraph.el            |  11 +-
 style/exam.el                |  19 ++--
 style/hyperref.el            |  13 ++-
 style/l3doc.el               |   8 +-
 style/ltugboat.el            |   4 +-
 style/paracol.el             |   2 +-
 style/plext.el               |  13 +--
 style/preview.el             |  20 ++--
 style/simpleicons.el         | 232 ++++++++++++++++++++++++++++++++++++++++---
 style/siunitx.el             |   6 +-
 style/standalone.el          | 166 +++++++++++++++++++++++++++++++
 style/tabularx.el            |   6 +-
 style/tabulary.el            |   6 +-
 style/tcolorboxlib-raster.el |  11 +-
 style/tex-live.el            |   6 +-
 tex-bar.el                   |   1 +
 tex-font.el                  |  25 +++--
 tex-info.el                  |  52 +++++-----
 tex-jp.el                    |   1 +
 tex-style.el                 |   1 +
 tex-wizard.el                |   3 +-
 tex.el                       |  64 ++++--------
 toolbar-x.el                 |   6 +-
 44 files changed, 932 insertions(+), 292 deletions(-)

diff --git a/NEWS.org b/NEWS.org
index 92c41293..545adce2 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -8,6 +8,12 @@
 
 * [Unreleased]
 
+** Added
+
+- Complete support for in-buffer completion of color support macros.
+- Add new support files =style/contract.el=, =style/diagbox.el= and
+  =style/standalone.el=.
+
 ** Fixed
 
 - Add appropriate ~delete-selection~ properties for
@@ -39,6 +45,10 @@
 ** Removed
 
 - Delete function ~LaTeX-env-contents~.
+- Delete obsolete variables ~TeX-symbol-marker~,
+  ~TeX-symbol-marker-pos~, ~TeX-dollar-sign~, ~TeX-dollar-string~ and
+  ~TeX-dollar-regexp~.
+- Delete obsolete minor-mode ~TeX-Omega-mode~.
 
 * [14.0.5] - 2024-05-19
 
diff --git a/RELEASE b/RELEASE
index 040e72a8..e37ac24b 100644
--- a/RELEASE
+++ b/RELEASE
@@ -78,11 +78,8 @@ Future development and additional information
 
 AUCTeX is proceeding as a GNU project with the long-term intent of
 merging it into Emacs.  For that reason, all new contributors need to
-assign copyright to their contributions to the FSF (the usual
-procedure for Emacs contributors).  The same holds for past
-contributors.  The principal authors and maintainers have already done
-so, but it would require a diligent and diplomatic volunteer to find
-and ask the rest.
+assign copyright to their contributions to the FSF (the usual procedure
+for Emacs contributors).  The same holds for past contributors.
 
 Current AUCTeX managers are Arash Esbati, Mosè Giordano, and Tassilo
 Horn.  Everybody is welcome to contribute to the project by reporting
diff --git a/bib-cite.el b/bib-cite.el
index 7b425cac..5a9f6f83 100644
--- a/bib-cite.el
+++ b/bib-cite.el
@@ -1,8 +1,9 @@
 ;; bib-cite.el - Display \cite, \ref or \label / Extract refs from BiBTeX 
file. -*- lexical-binding: t; -*-
 
-;; Copyright (C) 1994-1999, 2001, 2003-2005, 2014-2022 Free Software 
Foundation, Inc.
+;; Copyright (C) 1994-1999, 2001, 2003-2005, 2014-2024 Free Software 
Foundation, Inc.
 
 ;; Author:    Peter S. Galbraith <p...@debian.org>
+;; Maintainer: auctex-devel@gnu.org
 ;; Created:   06 July 1994
 ;; Version:   3.28  (Feb 23 2005)
 ;; Keywords:  bibtex, cite, auctex, emacs
@@ -724,17 +725,17 @@ When bib-cite mode is enabled, citations, labels and refs 
are highlighted
 when the mouse is over them.  Clicking on these highlights with [mouse-2]
 runs `bib-find', and [mouse-3] runs `bib-display'."
   (interactive "P")
-  (set (make-local-variable 'bib-cite-minor-mode)
-       (if arg
-           (> (prefix-numeric-value arg) 0)
-         (not bib-cite-minor-mode)))
+  (setq-local bib-cite-minor-mode
+              (if arg
+                  (> (prefix-numeric-value arg) 0)
+                (not bib-cite-minor-mode)))
   (cond
    (bib-cite-minor-mode                 ;Setup the minor-mode
     ;; Christoph Wedler's <wed...@fmi.uni-passau.de> suggestion for xemacs
     ;; Added for version 2.19
     (if (boundp 'tags-always-exact)
         (progn
-          (set (make-local-variable 'tags-always-exact) nil)))
+          (setq-local tags-always-exact nil)))
     ;; mouse overlay
     (if bib-highlight-mouse-t
         (progn
@@ -757,17 +758,19 @@ runs `bib-find', and [mouse-3] runs `bib-display'."
 ;; own.
 (defun bib-cite-setup-highlight-mouse-keymap ()
   "Set up the bib-cite text in the current buffer to be clickable."
-  (set (make-local-variable 'bib-highlight-mouse-keymap)
-       ;; First, copy the local keymap so we don't have `disappearing' menus
-       ;; when the mouse is moved over a \ref, \label or \cite command.
-
-       ;; FIXME: Check out (mouse-major-mode-menu) to see how it grabs the 
local
-       ;;        menus to display.  Maybe on `highlighted' commands we could
-       ;;        only display the bib-cite stuff (or a subset of it).
-       (let ((m (copy-keymap (current-local-map))))
-         (define-key m [down-mouse-3] #'bib-display-mouse)
-         (define-key m [mouse-2] #'bib-find-mouse)
-         m)))
+  (setq-local bib-highlight-mouse-keymap
+              ;; First, copy the local keymap so we don't have
+              ;; `disappearing' menus when the mouse is moved over a
+              ;; \ref, \label or \cite command.
+
+              ;; FIXME: Check out (mouse-major-mode-menu) to see how it
+              ;;        grabs the local menus to display.  Maybe on
+              ;;        `highlighted' commands we could only display the
+              ;;        bib-cite stuff (or a subset of it).
+              (let ((m (copy-keymap (current-local-map))))
+                (define-key m [down-mouse-3] #'bib-display-mouse)
+                (define-key m [mouse-2] #'bib-find-mouse)
+                m)))
 
 ;;;###autoload
 (defun turn-on-bib-cite ()
@@ -1159,7 +1162,7 @@ See variables `bib-etags-command' and 
`bib-etags-filename'."
     (or (equal the-tags-file  tags-file-name) ;make sure it's current
         (visit-tags-table the-tags-file))
 
-    ;(set (make-local-variable 'tags-file-name) the-tags-file))
+    ;; (set (make-local-variable 'tags-file-name) the-tags-file))
     ;; above should not be needed
 
     ;; Weird Bug:
@@ -1171,7 +1174,7 @@ See variables `bib-etags-command' and 
`bib-etags-filename'."
     ;; (Changed by Anders Stenman)
     (if (get-file-buffer the-tags-file)
         (with-current-buffer (get-file-buffer the-tags-file)
-          (set (make-local-variable 'tags-file-name) the-tags-file))))
+          (setq-local tags-file-name the-tags-file))))
 
 
   (if bib-document-TeX-files-warnings   ;free variable loose in emacs!
diff --git a/context-en.el b/context-en.el
index c63a4fd1..e5875628 100644
--- a/context-en.el
+++ b/context-en.el
@@ -1,9 +1,9 @@
 ;;; context-en.el --- Support for the ConTeXt english interface. -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2003-2004, 2006, 2008
-;;               2010, 2014, 2020-2023 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2023 Free Software Foundation, Inc.
 
-;; Maintainer: Berend de Boer <ber...@pobox.com>
+;; Author: Berend de Boer <ber...@pobox.com>
+;; Maintainer: auctex-devel@gnu.org
 ;; Keywords: tex
 
 ;; This file is part of AUCTeX.
diff --git a/context.el b/context.el
index 8b0c88ee..84035b31 100644
--- a/context.el
+++ b/context.el
@@ -2,7 +2,9 @@
 
 ;; Copyright (C) 2003-2024  Free Software Foundation, Inc.
 
-;; Maintainer: Berend de Boer <ber...@pobox.com>
+;; Author: Patrick Gundlach <p...@levana.de>
+;;         Berend de Boer <ber...@pobox.com>
+;; Maintainer: auctex-devel@gnu.org
 ;; Keywords: tex
 
 ;; This file is part of AUCTeX.
@@ -1861,11 +1863,18 @@ that is, you do _not_ have to cater for this yourself 
by adding \\\\\\=' or $."
 
 (TeX-abbrev-mode-setup ConTeXt-mode context-mode-abbrev-table)
 
+(defvar semantic-symref-filepattern-alist) ; Silence compiler
+(with-eval-after-load 'semantic/symref/grep
+  ;; This entry is necessary for M-? to work.
+  ;; <URL:https://lists.gnu.org/r/auctex-devel/2023-09/msg00002.html>
+  ;; <URL:https://lists.gnu.org/r/auctex-devel/2023-09/msg00005.html>
+  (push '(ConTeXt-mode "*.[tT]e[xX]") semantic-symref-filepattern-alist))
+
 (defun ConTeXt-mode-common-initialization ()
   "Initialization code that is common for all ConTeXt interfaces."
   (plain-TeX-common-initialization)
 
-  (set (make-local-variable 'TeX-style-hook-dialect) ConTeXt-dialect)
+  (setq-local TeX-style-hook-dialect ConTeXt-dialect)
 
   (require (intern (concat "context-" ConTeXt-current-interface)))
   (dolist (symbol ConTeXt-language-variable-list)
@@ -1882,17 +1891,17 @@ that is, you do _not_ have to cater for this yourself 
by adding \\\\\\=' or $."
       (setq ConTeXt-largest-level 2))
 
   ;; Indenting
-  (set (make-local-variable 'indent-line-function) #'ConTeXt-indent-line)
-  (set (make-local-variable 'fill-indent-according-to-mode) t)
+  (setq-local indent-line-function #'ConTeXt-indent-line)
+  (setq-local fill-indent-according-to-mode t)
 
   ;; Paragraph formatting
-  (set (make-local-variable 'LaTeX-syntactic-comments) nil)
+  (setq-local LaTeX-syntactic-comments nil)
   ;; Moved after `run-mode-hooks'. (bug#65750)
   ;; (set (make-local-variable 'LaTeX-paragraph-commands-regexp)
   ;;      (ConTeXt-paragraph-commands-regexp))
-  (set (make-local-variable 'paragraph-ignore-fill-prefix) t)
-  (set (make-local-variable 'fill-paragraph-function) #'LaTeX-fill-paragraph)
-  (set (make-local-variable 'adaptive-fill-mode) nil)
+  (setq-local paragraph-ignore-fill-prefix t)
+  (setq-local fill-paragraph-function #'LaTeX-fill-paragraph)
+  (setq-local adaptive-fill-mode nil)
   ;; Moved after `run-mode-hooks'. (bug#65750)
   ;; (setq paragraph-start
   ;;       (concat
@@ -1917,18 +1926,18 @@ that is, you do _not_ have to cater for this yourself 
by adding \\\\\\=' or $."
 
   ;; Outline support
   (require 'outline)
-  (set (make-local-variable 'outline-level) #'ConTeXt-outline-level)
-  (set (make-local-variable 'outline-regexp) (ConTeXt-outline-regexp t))
+  (setq-local outline-level #'ConTeXt-outline-level)
+  (setq-local outline-regexp (ConTeXt-outline-regexp t))
   (make-local-variable 'outline-heading-end-regexp)
   (setq TeX-header-end (ConTeXt-header-end)
         TeX-trailer-start (ConTeXt-trailer-start))
 
   ;; font switch support
-  (set (make-local-variable 'TeX-font-list) ConTeXt-font-list)
+  (setq-local TeX-font-list ConTeXt-font-list)
 
   ;; imenu support
-  (set (make-local-variable 'imenu-create-index-function)
-       #'ConTeXt-imenu-create-index-function)
+  (setq-local imenu-create-index-function
+              #'ConTeXt-imenu-create-index-function)
 
   (setq TeX-command-default "ConTeXt")
   (setq TeX-sentinel-default-function #'TeX-ConTeXt-sentinel))
diff --git a/doc/auctex.texi b/doc/auctex.texi
index f57fa752..c79e8c20 100644
--- a/doc/auctex.texi
+++ b/doc/auctex.texi
@@ -2959,10 +2959,13 @@ behaviour however you need to set
 @code{right-edge} which will unprettify the symbol when point moves into
 or near it.
 
-To enable prettification in @AUCTeX{}, simply add
-@code{prettify-symbols-mode} to @code{TeX-mode-hook}.  If you enabled
-prettification globally with @code{global-prettify-symbols-mode}, then
-it's automatically enabled in @AUCTeX{}, too.
+To enable prettification in @AUCTeX{}, simply add this to your init file:
+@lisp
+(add-hook 'TeX-mode-hook #'prettify-symbols-mode)
+@end lisp
+If you enabled prettification globally with
+@code{(global-prettify-symbols-mode)}, then it's automatically enabled in
+@AUCTeX{}, too.
 
 You can also add custom symbol unicode-character pairs for
 prettification by adding to @code{tex--prettify-symbols-alist}.  Note
diff --git a/doc/changes.texi b/doc/changes.texi
index a8de7322..75cdabe9 100644
--- a/doc/changes.texi
+++ b/doc/changes.texi
@@ -245,6 +245,12 @@ inline math (without active region), @kbd{$} inserts two 
dollars, not one
 dollar which just closes the math mode.
 @end itemize
 
+@item
+The following obsolete variables, used for old @key{$} key management,
+were at last removed: @code{TeX-symbol-marker},
+@code{TeX-symbol-marker-pos}, @code{TeX-dollar-sign},
+@code{TeX-dollar-string} and @code{TeX-dollar-regexp}.
+
 @item
 @AUCTeX{} now requires GNU Emacs 27.1 or higher.
 @end itemize
diff --git a/doc/preview-latex.texi b/doc/preview-latex.texi
index 84d80be1..e9e03fd5 100644
--- a/doc/preview-latex.texi
+++ b/doc/preview-latex.texi
@@ -789,12 +789,12 @@ of those previews is goofed up, you will not be able to 
regenerate them
 by clicking on them.  The default behaviour is thus somewhat undesirable.
 
 The solution (like with other preview problems) is to tell the @LaTeX{}
-@samp{preview} package how to tackle this problem (@pxref{The LaTeX
-style file}).  Simply, you don't need @code{\emph} do anything at all
-during previews! You only want the text math previewed, so the solution
-is to use @code{\PreviewMacro*\emph} in the preamble of your document
-which will make @LaTeX{} ignore @code{\emph} completely as long as it is
-not part of a larger preview (in which case it gets typeset as
+@samp{preview} package how to tackle this problem (@pxref{The LaTeX style
+file}).  Simply, you don't need @code{\emph} do anything at all during
+previews! You only want the text math previewed, so the solution is to use
+@code{\AtBeginDocument@{\PreviewMacro*\emph@}} in the preamble of your
+document which will make @LaTeX{} ignore @code{\emph} completely as long
+as it is not part of a larger preview (in which case it gets typeset as
 usual).  Its argument thus becomes ordinary text and gets treated like
 ordinary text.
 
diff --git a/font-latex.el b/font-latex.el
index d814642a..0307cd10 100644
--- a/font-latex.el
+++ b/font-latex.el
@@ -1297,8 +1297,8 @@ The entries are added to `font-latex-syntax-alist' and 
eventually
 end up in `font-lock-defaults'.  Each entry in LIST should be a
 cons pair as expected by `font-lock-defaults'.  The function also
 triggers Font Lock to recognize the change."
-  (set (make-local-variable 'font-latex-syntax-alist)
-       (append font-latex-syntax-alist list))
+  (setq-local font-latex-syntax-alist
+              (append font-latex-syntax-alist list))
   ;; We modify the `font-lock-syntax-table' directly but also call
   ;; `font-latex-setup' in order to have `font-lock-defaults' be in sync.
   (font-latex-setup)
@@ -1321,7 +1321,7 @@ triggers Font Lock to recognize the change."
   (font-latex-set-syntactic-keywords)
 
   ;; Activate multi-line fontification facilities.
-  (set (make-local-variable 'font-lock-multiline) t)
+  (setq-local font-lock-multiline t)
 
   ;; The test for `major-mode' currently only works with docTeX mode
   ;; because `TeX-install-font-lock' is called explicitly in
diff --git a/latex.el b/latex.el
index d0a9ee6f..b9014668 100644
--- a/latex.el
+++ b/latex.el
@@ -2168,9 +2168,8 @@ TYPE is one of the symbols mac or env."
               (add-to-list 'TeX-auto-file elt t)
               ;; Append to `LaTeX-provided-package-options' the name of the
               ;; package and the options provided to it at load time.
-              (unless (equal options '(""))
-                (TeX-add-to-alist 'LaTeX-provided-package-options
-                                  (list (cons elt options)))))
+              (TeX-add-to-alist 'LaTeX-provided-package-options
+                                (list (cons elt options))))
           ;; And a special "art10" style file combining style and size.
           (add-to-list 'TeX-auto-file style t)
           (add-to-list 'TeX-auto-file
@@ -2201,9 +2200,8 @@ TYPE is one of the symbols mac or env."
                               (t
                                "10")))
                        t)
-          (unless (equal options '(""))
-            (TeX-add-to-alist 'LaTeX-provided-class-options
-                              (list (cons style options)))))
+          (TeX-add-to-alist 'LaTeX-provided-class-options
+                            (list (cons style options))))
 
         ;; The third argument if "class" indicates LaTeX2e features.
         (cond ((or (string-equal class "class")
@@ -2326,10 +2324,10 @@ It will setup BibTeX to store keys in an auto file."
   ;; add it before we enter BibTeX mode the first time.
   (add-hook 'write-contents-functions #'TeX-safe-auto-write nil t)
   (TeX-bibtex-set-BibTeX-dialect)
-  (set (make-local-variable 'TeX-auto-untabify) nil)
-  (set (make-local-variable 'TeX-auto-parse-length) 999999)
-  (set (make-local-variable 'TeX-auto-regexp-list) BibTeX-auto-regexp-list)
-  (set (make-local-variable 'TeX-master) t))
+  (setq-local TeX-auto-untabify nil)
+  (setq-local TeX-auto-parse-length 999999)
+  (setq-local TeX-auto-regexp-list BibTeX-auto-regexp-list)
+  (setq-local TeX-master t))
 
 ;;; Macro Argument Hooks
 
@@ -6428,8 +6426,10 @@ Each entry should be a list with upto four elements, 
KEY, VALUE,
 MENU and CHARACTER, see `LaTeX-math-list' for details.")
 
 (defcustom LaTeX-math-menu-unicode
-  (or (string-match "\\<GTK\\>" (emacs-version))
-      (eq window-system 'w32))
+  (if (or (string-match "\\<GTK\\>" (emacs-version))
+          (memq system-type '(darwin windows-nt)))
+      t
+    nil)
   "Whether the LaTeX menu should try using Unicode for effect."
   :type 'boolean
   :group 'LaTeX-math)
@@ -8195,7 +8195,8 @@ This happens when \\left is inserted."
   ;; This entry is necessary for M-? to work.
   ;; <URL:https://lists.gnu.org/r/auctex-devel/2023-09/msg00002.html>
   ;; <URL:https://lists.gnu.org/r/auctex-devel/2023-09/msg00005.html>
-  (push '(LaTeX-mode "*.ltx" "*.sty" "*.cls" "*.clo" "*.bbl" "*.drv" "*.hva")
+  (push '(LaTeX-mode "*.[tT]e[xX]" "*.ltx" "*.sty" "*.cl[so]" "*.bbl"
+                     "*.drv" "*.hva")
         semantic-symref-filepattern-alist))
 
 (declare-function LaTeX-preview-setup "preview")
@@ -8330,8 +8331,8 @@ Run after mode hooks and file local variables 
application."
   "Major mode in AUCTeX for editing .dtx files derived from `LaTeX-mode'.
 Runs `LaTeX-mode', sets a few variables and
 runs the hooks in `docTeX-mode-hook'."
-  (set (make-local-variable 'LaTeX-insert-into-comments) t)
-  (set (make-local-variable 'LaTeX-syntactic-comments) t)
+  (setq-local LaTeX-insert-into-comments t)
+  (setq-local LaTeX-syntactic-comments t)
   (setq TeX-default-extension docTeX-default-extension)
   ;; Make filling and indentation aware of DocStrip guards.
   (setq paragraph-start (concat paragraph-start "\\|%<")
@@ -8397,12 +8398,12 @@ function would return non-nil and `(match-string 1)' 
would return
 
 (defun LaTeX-common-initialization ()
   "Common initialization for LaTeX derived modes."
-  (set (make-local-variable 'indent-line-function) #'LaTeX-indent-line)
+  (setq-local indent-line-function #'LaTeX-indent-line)
 
   ;; Filling
-  (set (make-local-variable 'paragraph-ignore-fill-prefix) t)
-  (set (make-local-variable 'fill-paragraph-function) #'LaTeX-fill-paragraph)
-  (set (make-local-variable 'adaptive-fill-mode) nil)
+  (setq-local paragraph-ignore-fill-prefix t)
+  (setq-local fill-paragraph-function #'LaTeX-fill-paragraph)
+  (setq-local adaptive-fill-mode nil)
   ;; Cater for \verb|...| (and similar) contructs which should not be
   ;; broken.
   (add-to-list (make-local-variable 'fill-nobreak-predicate)
@@ -8413,11 +8414,11 @@ function would return non-nil and `(match-string 1)' 
would return
 
   (setq TeX-header-end LaTeX-header-end
         TeX-trailer-start LaTeX-trailer-start)
-  (set (make-local-variable 'TeX-style-hook-dialect) TeX-dialect)
+  (setq-local TeX-style-hook-dialect TeX-dialect)
 
   (require 'outline)
-  (set (make-local-variable 'outline-level) #'LaTeX-outline-level)
-  (set (make-local-variable 'outline-regexp) (LaTeX-outline-regexp t))
+  (setq-local outline-level #'LaTeX-outline-level)
+  (setq-local outline-regexp (LaTeX-outline-regexp t))
   (when (boundp 'outline-heading-alist)
     (setq outline-heading-alist
           (mapcar (lambda (x)
@@ -8442,8 +8443,7 @@ function would return non-nil and `(match-string 1)' 
would return
   (setq TeX-verbatim-p-function #'LaTeX-verbatim-p)
   (setq TeX-search-forward-comment-start-function
         #'LaTeX-search-forward-comment-start)
-  (set (make-local-variable 'TeX-search-files-type-alist)
-       LaTeX-search-files-type-alist)
+  (setq-local TeX-search-files-type-alist LaTeX-search-files-type-alist)
 
   (setq-local beginning-of-defun-function #'LaTeX-find-matching-begin)
   (setq-local end-of-defun-function       #'LaTeX-find-matching-end)
@@ -8456,11 +8456,11 @@ function would return non-nil and `(match-string 1)' 
would return
   (add-hook 'completion-at-point-functions
             #'LaTeX--arguments-completion-at-point 5 t)
 
-  (set (make-local-variable 'LaTeX-item-list) '(("description" . 
LaTeX-item-argument)
-                                                ("thebibliography" . 
LaTeX-item-bib)
-                                                ("array" . LaTeX-item-array)
-                                                ("tabular" . LaTeX-item-array)
-                                                ("tabular*" . 
LaTeX-item-tabular*)))
+  (setq-local LaTeX-item-list '(("description" . LaTeX-item-argument)
+                                ("thebibliography" . LaTeX-item-bib)
+                                ("array" . LaTeX-item-array)
+                                ("tabular" . LaTeX-item-array)
+                                ("tabular*" . LaTeX-item-tabular*)))
 
   (LaTeX-add-environments
    '("document" LaTeX-env-document)
@@ -9165,12 +9165,11 @@ function would return non-nil and `(match-string 1)' 
would return
   ;; functions will make sure that the default will get used unless the
   ;; user overrode it.
 
-  (set (make-local-variable 'imenu-create-index-function)
-       #'LaTeX-imenu-create-index-function)
+  (setq-local imenu-create-index-function
+              #'LaTeX-imenu-create-index-function)
 
   ;; Initialization of `add-log-current-defun-function':
-  (set (make-local-variable 'add-log-current-defun-function)
-       #'TeX-current-defun-name)
+  (setq-local add-log-current-defun-function #'TeX-current-defun-name)
 
   ;; Set LaTeX-specific help messages for error so that it's available
   ;; in `TeX-help-error'.
diff --git a/latex/preview.dtx b/latex/preview.dtx
index 23f5b2da..23624456 100644
--- a/latex/preview.dtx
+++ b/latex/preview.dtx
@@ -20,7 +20,7 @@
 %     Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 %     Boston, MA 02110-1301  USA
 % \fi
-% \CheckSum{1758}
+% \CheckSum{1770}
 % \GetFileInfo{preview.sty}
 % \date{\filedate}
 % \author{David Kastrup\thanks{\texttt{bug-auc...@gnu.org}}}
@@ -1427,11 +1427,17 @@ Please complain to your document class author}%
 %<auccfg>\PreviewMacro*[?[{@{[]}}{}][#1]\item
 %<auccfg>\PreviewMacro*\emph
 %<auccfg>\PreviewMacro*\textrm
+%<auccfg>\PreviewMacro*\textbf
 %<auccfg>\PreviewMacro*\textit
 %<auccfg>\PreviewMacro*\textsc
 %<auccfg>\PreviewMacro*\textsf
 %<auccfg>\PreviewMacro*\textsl
 %<auccfg>\PreviewMacro*\texttt
+%<auccfg>\PreviewMacro*\textulc
+%<auccfg>\PreviewMacro*\textmd
+%<auccfg>\PreviewMacro*\textnormal
+%<auccfg>\PreviewMacro*\textup
+%<auccfg>\PreviewMacro*\textsw
 %<auccfg>\PreviewMacro*\textcolor
 %<auccfg>\PreviewMacro*\mbox
 %<auccfg>\PreviewMacro*[][#1{}]\author
diff --git a/lpath.el b/lpath.el
index 021ed463..63071029 100644
--- a/lpath.el
+++ b/lpath.el
@@ -1,6 +1,7 @@
 ;;; This file is only used for installing AUCTeX.  -*- lexical-binding: t; -*-
 
 ;; Copyright (C) 2013-2021  Free Software Foundation, Inc.
+;; Maintainer: auctex-devel@gnu.org
 
 ;;; It is not a part of AUCTeX itself.
 
diff --git a/plain-tex.el b/plain-tex.el
index 2b777869..8a92e8a7 100644
--- a/plain-tex.el
+++ b/plain-tex.el
@@ -118,6 +118,14 @@ plain-TeX file, or any mode derived thereof.  See variable
 
 (TeX-abbrev-mode-setup plain-TeX-mode plain-tex-mode-abbrev-table)
 
+(defvar semantic-symref-filepattern-alist) ; Silence compiler
+(with-eval-after-load 'semantic/symref/grep
+  ;; This entry is necessary for M-? to work.
+  ;; <URL:https://lists.gnu.org/r/auctex-devel/2023-09/msg00002.html>
+  ;; <URL:https://lists.gnu.org/r/auctex-devel/2023-09/msg00005.html>
+  (push '(plain-TeX-mode "*.[tT]e[xX]" "*.ins")
+        semantic-symref-filepattern-alist))
+
 ;; Delete alias predefined in tex-mode.el so that AUCTeX autoload
 ;; takes precedence.
 ;;;###autoload (if (eq (symbol-function 'plain-TeX-mode) 'plain-tex-mode)
@@ -164,7 +172,7 @@ Run after mode hooks and file local variables application."
 
 (defun plain-TeX-common-initialization ()
   "Common initialization for plain TeX like modes."
-  (set (make-local-variable 'TeX-style-hook-dialect) plain-TeX-dialect)
+  (setq-local TeX-style-hook-dialect plain-TeX-dialect)
   (setq TeX-sentinel-default-function #'TeX-TeX-sentinel)
   (setq paragraph-start
         (concat
@@ -318,6 +326,12 @@ that is, you do _not_ have to cater for this yourself by 
adding \\\\\\=' or $."
   :type 'hook
   :group 'TeX-misc)
 
+(with-eval-after-load 'semantic/symref/grep
+  ;; This entry is necessary for M-? to work.
+  ;; <URL:https://lists.gnu.org/r/auctex-devel/2023-09/msg00002.html>
+  ;; <URL:https://lists.gnu.org/r/auctex-devel/2023-09/msg00005.html>
+  (push '(AmSTeX-mode "*.[tT]e[xX]") semantic-symref-filepattern-alist))
+
 ;;;###autoload
 (define-derived-mode AmSTeX-mode plain-TeX-mode "AmS-TeX"
   "Major mode in AUCTeX for editing AmSTeX files.
diff --git a/preview.el b/preview.el
index 7f849827..7d5d64f0 100644
--- a/preview.el
+++ b/preview.el
@@ -2881,6 +2881,7 @@ using MML mode."
       (preview-regenerate ov))))
 
 (defun preview-copy-region-as-mml (start end)
+  "Copy into kill ring an MML representation of region from START to END."
   (interactive "r")
   (when (catch 'badcolor
           (let (str lst dont-ask)
@@ -3048,7 +3049,7 @@ changes get properly reflected in the environment."
 ;;;###autoload
 (defun preview-install-styles (dir &optional force-overwrite
                                    force-save)
-  "Installs the TeX style files into a permanent location.
+  "Install the TeX style files into a permanent location DIR.
 This must be in the TeX search path.  If FORCE-OVERWRITE is greater
 than 1, files will get overwritten without query, if it is less
 than 1 or nil, the operation will fail.  The default of 1 for interactive
@@ -3077,7 +3078,7 @@ pp")
                                (> force-overwrite 1))
                               (t force-overwrite))))
   (if (cond ((eq force-save 1)
-             (y-or-n-p "Stop using non-installed styles permanently "))
+             (y-or-n-p "Stop using non-installed styles permanently? "))
             ((numberp force-save)
              (> force-save 1))
             (t force-save))
diff --git a/style/amsmath.el b/style/amsmath.el
index f72f8be8..ff0ebc9c 100644
--- a/style/amsmath.el
+++ b/style/amsmath.el
@@ -1,7 +1,6 @@
 ;;; amsmath.el --- Style hook for the AMS-LaTeX amsmath package.  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2002, 2005-2007, 2012-2014, 2017-2020, 2022
-;;      Free Software Foundation, Inc.
+;; Copyright (C) 2002--2024 Free Software Foundation, Inc.
 ;; FIXME: What about the copyright for <= 2001?
 
 ;; Author: Carsten Dominik <domi...@strw.leidenuniv.nl>
@@ -153,13 +152,13 @@
                    ("flalign"    . LaTeX-amsmath-label)
                    ("gather"     . LaTeX-amsmath-label))))
 
-   (set (make-local-variable 'TeX-braces-association)
-        (append '(("\\lvert" . "\\rvert")
-                  ("\\lVert" . "\\rVert"))
-                TeX-braces-association))
-   (set (make-local-variable 'TeX-left-right-braces)
-        (append '(("\\lvert") ("\\rvert") ("\\lVert") ("\\rVert"))
-                TeX-left-right-braces))
+   (setq-local TeX-braces-association
+               (append '(("\\lvert" . "\\rvert")
+                         ("\\lVert" . "\\rVert"))
+                       TeX-braces-association))
+   (setq-local TeX-left-right-braces
+               (append '(("\\lvert") ("\\rvert") ("\\lVert") ("\\rVert"))
+                       TeX-left-right-braces))
 
    ;; amsmath includes amstext, amsbsy, & amsopn.
    ;; So we run their hooks, too.
diff --git a/style/appendix.el b/style/appendix.el
index 406aef5f..9912f3ce 100644
--- a/style/appendix.el
+++ b/style/appendix.el
@@ -1,6 +1,6 @@
 ;;; appendix.el --- AUCTeX style for `appendix.sty' (v1.2c)  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2020 Free Software Foundation, Inc.
+;; Copyright (C) 2020--2024 Free Software Foundation, Inc.
 
 ;; Author: Arash Esbati <ar...@gnu.org>
 ;; Maintainer: auctex-devel@gnu.org
@@ -68,8 +68,9 @@
 
    ;; Don't indent the content inside \(sub\)?appendices environments:
    (unless (string-match "appendices" LaTeX-document-regexp)
-     (set (make-local-variable 'LaTeX-document-regexp)
-          (concat LaTeX-document-regexp "\\|\\(?:sub\\)?appendices"))))
+     (setq-local LaTeX-document-regexp
+                 (concat LaTeX-document-regexp
+                         "\\|\\(?:sub\\)?appendices"))))
  TeX-dialect)
 
 (defvar LaTeX-appendix-package-options '("toc" "page" "title"
diff --git a/style/array.el b/style/array.el
index 001044ec..3d995aae 100644
--- a/style/array.el
+++ b/style/array.el
@@ -1,6 +1,6 @@
 ;;; array.el --- AUCTeX style for `array.sty'  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2013-2022  Free Software Foundation, Inc.
+;; Copyright (C) 2013-2024  Free Software Foundation, Inc.
 
 ;; Author: Mads Jensen <m...@inducks.org>
 ;; Maintainer: auctex-devel@gnu.org
@@ -57,10 +57,10 @@ package.")
 
 (defun LaTeX-array-update-column-letters ()
   "Update and uniquify the local value of `LaTeX-array-column-letters'."
-  (set (make-local-variable 'LaTeX-array-column-letters)
-       (let* ((newtypes (mapconcat #'car (LaTeX-array-newcolumntype-list) ""))
-              (alltypes (concat LaTeX-array-column-letters newtypes)))
-         (seq-concatenate 'string (seq-uniq alltypes #'=)))))
+  (setq-local LaTeX-array-column-letters
+              (let* ((newtypes (mapconcat #'car 
(LaTeX-array-newcolumntype-list) ""))
+                     (alltypes (concat LaTeX-array-column-letters newtypes)))
+                (seq-concatenate 'string (seq-uniq alltypes #'=)))))
 
 (add-hook 'TeX-auto-prepare-hook #'LaTeX-array-auto-prepare t)
 (add-hook 'TeX-auto-cleanup-hook #'LaTeX-array-auto-cleanup t)
@@ -90,8 +90,8 @@ package.")
    (LaTeX-add-lengths "extratabsurround" "extrarowheight")
 
    ;; `array.sty' adds some new column specification letters.
-   (set (make-local-variable 'LaTeX-array-column-letters)
-        (concat LaTeX-array-column-letters "m" "b" "w" "W"))
+   (setq-local LaTeX-array-column-letters
+               (concat LaTeX-array-column-letters "m" "b" "w" "W"))
 
    ;; Fontification
    (when (and (featurep 'font-latex)
diff --git a/style/beamer.el b/style/beamer.el
index d0d2e627..b241b87c 100644
--- a/style/beamer.el
+++ b/style/beamer.el
@@ -1,6 +1,6 @@
 ;;; beamer.el --- AUCTeX style for the latex-beamer class  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2003-2023  Free Software Foundation, Inc.
+;; Copyright (C) 2003-2024  Free Software Foundation, Inc.
 
 ;; Author: Thomas Baumann <thomas.baum...@ch.tum.de>
 ;; Maintainer: auctex-devel@gnu.org
@@ -500,8 +500,7 @@ also be a string.  Then the length of the string is used."
 (defun LaTeX-beamer-themes-list ()
   "Return a list of beamer themes for completion."
   (cond ((eq LaTeX-beamer-themes 'local)
-         (set (make-local-variable 'LaTeX-beamer-themes)
-              (LaTeX-beamer-search-themes)))
+         (setq-local LaTeX-beamer-themes (LaTeX-beamer-search-themes)))
         ((functionp LaTeX-beamer-themes)
          (funcall LaTeX-beamer-themes))
         ((listp LaTeX-beamer-themes)
@@ -513,8 +512,8 @@ also be a string.  Then the length of the string is used."
 (defun LaTeX-beamer-inner-themes-list ()
   "Return a list of beamer inner themes for completion."
   (cond ((eq LaTeX-beamer-inner-themes 'local)
-         (set (make-local-variable 'LaTeX-beamer-inner-themes)
-              (LaTeX-beamer-search-themes "^beamerinnertheme")))
+         (setq-local LaTeX-beamer-inner-themes
+                     (LaTeX-beamer-search-themes "^beamerinnertheme")))
         ((functionp LaTeX-beamer-inner-themes)
          (funcall LaTeX-beamer-inner-themes))
         ((listp LaTeX-beamer-inner-themes)
@@ -526,8 +525,8 @@ also be a string.  Then the length of the string is used."
 (defun LaTeX-beamer-outer-themes-list ()
   "Return a list of beamer outer themes for completion."
   (cond ((eq LaTeX-beamer-outer-themes 'local)
-         (set (make-local-variable 'LaTeX-beamer-outer-themes)
-              (LaTeX-beamer-search-themes "^beameroutertheme")))
+         (setq-local LaTeX-beamer-outer-themes
+                     (LaTeX-beamer-search-themes "^beameroutertheme")))
         ((functionp LaTeX-beamer-outer-themes)
          (funcall LaTeX-beamer-outer-themes))
         ((listp LaTeX-beamer-outer-themes)
@@ -539,8 +538,8 @@ also be a string.  Then the length of the string is used."
 (defun LaTeX-beamer-color-themes-list ()
   "Return a list of beamer color themes for completion."
   (cond ((eq LaTeX-beamer-color-themes 'local)
-         (set (make-local-variable 'LaTeX-beamer-color-themes)
-              (LaTeX-beamer-search-themes "^beamercolortheme")))
+         (setq-local LaTeX-beamer-color-themes
+                     (LaTeX-beamer-search-themes "^beamercolortheme")))
         ((functionp LaTeX-beamer-color-themes)
          (funcall LaTeX-beamer-color-themes))
         ((listp LaTeX-beamer-color-themes)
@@ -552,8 +551,8 @@ also be a string.  Then the length of the string is used."
 (defun LaTeX-beamer-font-themes-list ()
   "Return a list of beamer font themes for completion."
   (cond ((eq LaTeX-beamer-font-themes 'local)
-         (set (make-local-variable 'LaTeX-beamer-font-themes)
-              (LaTeX-beamer-search-themes "^beamerfonttheme")))
+         (setq-local LaTeX-beamer-font-themes
+                     (LaTeX-beamer-search-themes "^beamerfonttheme")))
         ((functionp LaTeX-beamer-font-themes)
          (funcall LaTeX-beamer-font-themes))
         ((listp LaTeX-beamer-font-themes)
diff --git a/style/contract.el b/style/contract.el
new file mode 100644
index 00000000..1bd90214
--- /dev/null
+++ b/style/contract.el
@@ -0,0 +1,161 @@
+;;; contract.el --- AUCTeX style for `contract.sty' (v0.91)  -*- 
lexical-binding: t; -*-
+
+;; Copyright (C) 2024 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <ar...@gnu.org>
+;; Maintainer: auctex-devel@gnu.org
+;; Created: 2024-06-11
+;; Keywords: tex
+
+;; This file is part of AUCTeX.
+
+;; AUCTeX is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; AUCTeX is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with AUCTeX; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+;; 02110-1301, USA.
+
+;;; Commentary:
+
+;; This file adds support for the contract package.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+                  "font-latex"
+                  (keywords class))
+
+(defconst LaTeX-contract-clause-key-val
+  '(("dummy")
+    ("head")
+    ("nohead")
+    ("notocentry")
+    ("number")
+    ("preskip")
+    ("postskip")
+    ("title")
+    ("tocentry"))
+  "Key=val options for the \\Clause macro.")
+
+(defvar LaTeX-contract-DeclareNewJuraEnvironment-regexp
+  '("\\\\DeclareNewJuraEnvironment{\\([^}]+\\)}"
+    1 LaTeX-auto-environment)
+  "Regexp for matching argument of \\DeclareNewJuraEnvironment.")
+
+(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
+
+(TeX-add-style-hook
+ "contract"
+ (lambda ()
+
+   ;; Add the macro to the parser:
+   (TeX-auto-add-regexp LaTeX-contract-DeclareNewJuraEnvironment-regexp)
+
+   ;; 4 Environment for Contracts
+   (LaTeX-add-environments '("contract"))
+
+   ;; 4.1 Clauses
+   (TeX-add-symbols
+    '("contractSetup"
+      (TeX-arg-key-val (LaTeX-contract-package-options-list)))
+    '("Clause"
+      [TeX-arg-key-val LaTeX-contract-clause-key-val
+                       nil nil ?\s])
+    '("SubClause"
+      [TeX-arg-key-val LaTeX-contract-clause-key-val
+                       nil nil ?\s])
+    "Clauseformat"
+
+    ;; 4.2 Paragraphs
+    "thepar" "parformat" "parformatseparation" "withoutparnumber"
+    '("ellipsispar" ["Number of paragraphs to omit"])
+    "parellipsis"
+
+    ;; 4.3 Sentences
+    "thesentence" "sentencenumberformat" "Sentence"
+
+    ;; 6 Additional Contract Environments
+    '("DeclareNewJuraEnvironment"
+      TeX-arg-define-environment
+      [TeX-arg-key-val (("Clause")
+                        ("ClauseFont")
+                        ("SubClause")
+                        ("Sentence")
+                        ("ClauseNumberFormat"))]
+      2)
+
+    ;; 7 Support for Different Languages
+    "parname"
+    "partshortname"
+    "sentencename"
+    "sentenceshortname")
+
+   ;; 5 Cross References
+   (let ((macs '("refL" "refS" "refN" "refClause" "refClauseN"
+                 "refPar" "refParL" "refParS" "refParN"
+                 "refSentence" "refSentenceL"" refSentenceS" "refSentenceN")))
+     (dolist (mac macs)
+       (TeX-add-symbols `(,mac TeX-arg-ref)))
+     (when (and (featurep 'font-latex)
+                (eq TeX-install-font-lock 'font-latex-setup))
+       (font-latex-add-keywords (mapcar (lambda (x) (list x "{")) macs)
+                                'reference)))
+
+   (LaTeX-paragraph-commands-add-locally '("Clause" "SubClause"))
+
+   (LaTeX-add-counters "par" "sentence")
+
+   ;; Fontification
+   (when (and (featurep 'font-latex)
+              (eq TeX-install-font-lock 'font-latex-setup))
+     (font-latex-add-keywords '(("contractSetup"             "{")
+                                ("ellipsispar"               "[")
+                                ("DeclareNewJuraEnvironment" "{[{{"))
+                              'function)
+     (font-latex-add-keywords '(("Clause" "["))
+                              'sectioning-2)
+     (font-latex-add-keywords '(("SubClause" "["))
+                              'sectioning-3)))
+ TeX-dialect)
+
+(defun LaTeX-contract-package-options-list ()
+  "Return an alist of package options for changes package."
+  (let ((len (mapcar (lambda (x) (concat TeX-esc (car x)))
+                     (LaTeX-length-list))))
+    `(("juratotoc" ("true" "false" "number"))
+      ("juratocindent" ,len)
+      ("juratocnumberwidth" ,len)
+      ("contract")
+      ("juratitlepagebreak" ("true" "false"))
+      ("clausemark" ("both" "false" "forceboth" "forceright" "right"))
+      ("parnumber" ("true" "false" "auto" "manual"))
+      ("ref" ("long" "numeric"
+              "clauseonly" "onlyclause" "ClauseOnly" "OnlyClause"
+              "parlong" "longpar" "ParL"
+              "parnumeric" "numericpar" "ParN"
+              "paroff" "nopar"
+              "parshort" "shortpar" "ParS" "sentencelong" "longsentence"
+              "SentenceL"
+              "sentencenumeric" "numericsentence" "SentenceN"
+              "sentenceoff" "nosentence" "sentenceshort" "shortsentence"
+              "SentenceS"
+              "short")))))
+
+(defun LaTeX-contract-package-options ()
+  "Read the contract package options from the user."
+  (TeX-read-key-val t (LaTeX-contract-package-options-list)))
+
+;;; contract.el ends here
diff --git a/style/dcolumn.el b/style/dcolumn.el
index 8151f590..c168e595 100644
--- a/style/dcolumn.el
+++ b/style/dcolumn.el
@@ -1,6 +1,6 @@
 ;;; dcolumn.el --- AUCTeX style for `dcolumn.sty' (v1.06)  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2016, 2020 Free Software Foundation, Inc.
+;; Copyright (C) 2016--2024 Free Software Foundation, Inc.
 
 ;; Author: Arash Esbati <ar...@gnu.org>
 ;; Maintainer: auctex-devel@gnu.org
@@ -38,8 +38,8 @@
  (lambda ()
 
    ;; `dcolumn.sty' adds one new column specification letter:
-   (set (make-local-variable 'LaTeX-array-column-letters)
-        (concat LaTeX-array-column-letters "D"))
+   (setq-local LaTeX-array-column-letters
+               (concat LaTeX-array-column-letters "D"))
 
    ;; Also run style hook for `array':
    (TeX-run-style-hooks "array"))
diff --git a/style/diagbox.el b/style/diagbox.el
new file mode 100644
index 00000000..3690c262
--- /dev/null
+++ b/style/diagbox.el
@@ -0,0 +1,93 @@
+;;; diagbox.el --- AUCTeX style for `diagbox.sty' (v2.3)  -*- lexical-binding: 
t; -*-
+
+;; Copyright (C) 2024 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <ar...@gnu.org>
+;; Maintainer: auctex-devel@gnu.org
+;; Created: 2024-05-30
+;; Keywords: tex
+
+;; This file is part of AUCTeX.
+
+;; AUCTeX is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; AUCTeX is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with AUCTeX; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+;; 02110-1301, USA.
+
+;;; Commentary:
+
+;; This file adds support for `diagbox.sty' (v2.3) from 2020/02/09.
+;; `diagbox.sty' is part of TeXLive.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+                  "font-latex"
+                  (keywords class))
+
+(defvar LaTeX-diagbox-key-val-options
+  `(("width")
+    ("height" ("\\line"))
+    ("dir" ("NW" "NE" "SW" "SE"))
+    ("innerwidth")
+    ("innerleftsep")
+    ("innerrightsep")
+    ("outerleftsep")
+    ("outerrightsep")
+    ("leftsep")
+    ("rightsep")
+    ("trim" ("l" "r" "lr" "rl"))
+    ("font" ,(mapcar (lambda (x) (concat TeX-esc x))
+                     (append LaTeX-font-size LaTeX-font-shape
+                             LaTeX-font-series)))
+    ("linewidth"))
+  "Key=val options for the \\diagbox macro.")
+
+(defun LaTeX-diagbox-key-val-options ()
+  "Return updated key=val options for the \\diagbox macro."
+  (append
+   `(("linecolor" ,(cond ((and (fboundp 'LaTeX-xcolor-definecolor-list)
+                               (member "xcolor" (TeX-style-list)))
+                          (mapcar #'car (LaTeX-xcolor-definecolor-list)))
+                         ((and (fboundp 'LaTeX-color-definecolor-list)
+                               (member "color" TeX-active-styles))
+                          (mapcar #'car (LaTeX-color-definecolor-list))))))
+   LaTeX-diagbox-key-val-options))
+
+(TeX-add-style-hook
+ "diagbox"
+ (lambda ()
+   (TeX-add-symbols
+    '("diagbox"
+      [TeX-arg-key-val (LaTeX-diagbox-key-val-options)]
+      (TeX-arg-conditional (y-or-n-p "With 2 arguments? ")
+          (2)
+        (3))))
+
+   ;; Fontification
+   (when (and (featurep 'font-latex)
+              (eq TeX-install-font-lock 'font-latex-setup))
+     (font-latex-add-keywords '(("diagbox" "[{{"))
+                              ;; Fontify only 2 args and not 3 since the
+                              ;; last one is somehow optional
+                              'textual)))
+ TeX-dialect)
+
+(defvar LaTeX-diagbox-package-options nil
+  "Package options for the diagbox package.")
+
+;;; diagbox.el ends here
diff --git a/style/epigraph.el b/style/epigraph.el
index 14b276fe..b6087db8 100644
--- a/style/epigraph.el
+++ b/style/epigraph.el
@@ -1,6 +1,6 @@
 ;;; epigraph.el --- AUCTeX style for `epigraph.sty' v1.5c  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2012, 2017, 2018, 2020 Free Software Foundation, Inc.
+;; Copyright (C) 2012--2024 Free Software Foundation, Inc.
 
 ;; Author: Mads Jensen <m...@inducks.org>
 ;; Maintainer: auctex-devel@gnu.org
@@ -74,11 +74,10 @@
 
    ;; Append qitem to `LaTeX-item-regexp':
    (unless (string-match "qitem" LaTeX-item-regexp)
-     (set (make-local-variable 'LaTeX-item-regexp)
-          (concat
-           LaTeX-item-regexp
-           "\\|"
-           "qitem\\b"))
+     (setq-local LaTeX-item-regexp
+                 (concat LaTeX-item-regexp
+                         "\\|"
+                         "qitem\\b"))
      (LaTeX-set-paragraph-start))
 
    ;; Fontification:
diff --git a/style/exam.el b/style/exam.el
index eab9300d..92a6929b 100644
--- a/style/exam.el
+++ b/style/exam.el
@@ -1,6 +1,6 @@
 ;;; exam.el --- AUCTeX style for the (LaTeX) exam class  -*- lexical-binding: 
t; -*-
 
-;; Copyright (C) 2016--2022 Free Software Foundation, Inc.
+;; Copyright (C) 2016--2024 Free Software Foundation, Inc.
 
 ;; Author: Uwe Brauer <o...@mat.ucm.es>
 ;; Created: 2016-03-06
@@ -127,15 +127,14 @@ Arguments NAME and TYPE are the same as for the function
    ;; Append us only once:
    (unless (and (string-match "question" LaTeX-item-regexp)
                 (string-match "sub" LaTeX-item-regexp))
-     (set (make-local-variable 'LaTeX-item-regexp)
-          (concat
-           LaTeX-item-regexp
-           "\\|"
-           "choice\\b"
-           "\\|"
-           "\\(titled\\)?question\\b"
-           "\\|"
-           "\\(sub\\)*part\\b"))
+     (setq-local LaTeX-item-regexp
+                 (concat LaTeX-item-regexp
+                         "\\|"
+                         "choice\\b"
+                         "\\|"
+                         "\\(titled\\)?question\\b"
+                         "\\|"
+                         "\\(sub\\)*part\\b"))
      (LaTeX-set-paragraph-start))
 
    (TeX-add-symbols
diff --git a/style/hyperref.el b/style/hyperref.el
index 7c123a91..75349177 100644
--- a/style/hyperref.el
+++ b/style/hyperref.el
@@ -1,6 +1,6 @@
 ;;; hyperref.el --- AUCTeX style for `hyperref.sty' v6.83m  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2008, 2013-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2024 Free Software Foundation, Inc.
 
 ;; Author: Ralf Angeli <ang...@caeruleus.net>
 ;; Maintainer: auctex-devel@gnu.org
@@ -234,10 +234,9 @@
     '("hyperbaseurl" t)
     '("hyperimage" "Image URL" "Text")
     '("hyperdef" "Category" "Name" "Text")
-    '("hyperref"
-      (TeX-arg-conditional (y-or-n-p "Insert a label and text? ")
-          ([TeX-arg-ref] "Text")
-        ("URL" "Category" "Name" "Text")))
+    '("hyperref" (TeX-arg-conditional (y-or-n-p "Insert a label and text? ")
+                     ([TeX-arg-ref] "Text")
+                   ("URL" "Category" "Name" "Text")))
     '("hyperlink" "Name" "Text")
     '("hypertarget" "Name" "Text")
     '("phantomsection" 0)
@@ -287,8 +286,8 @@
    ;; whole document is indented.  Append it to a local version of
    ;; `LaTeX-document-regexp':
    (unless (string-match-p "Form" LaTeX-document-regexp)
-     (set (make-local-variable 'LaTeX-document-regexp)
-          (concat LaTeX-document-regexp "\\|" "Form")))
+     (setq-local LaTeX-document-regexp
+                 (concat LaTeX-document-regexp "\\|" "Form")))
 
    (add-to-list 'LaTeX-verbatim-macros-with-braces-local "nolinkurl")
    (add-to-list 'LaTeX-verbatim-macros-with-braces-local "hyperbaseurl")
diff --git a/style/l3doc.el b/style/l3doc.el
index a13f2179..53dc0ce6 100644
--- a/style/l3doc.el
+++ b/style/l3doc.el
@@ -1,6 +1,6 @@
 ;;; l3doc.el --- AUCTeX style for `l3doc.cls'  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2022 Free Software Foundation, Inc.
+;; Copyright (C) 2022--2024 Free Software Foundation, Inc.
 
 ;; Author: Arash Esbati <ar...@gnu.org>
 ;; Maintainer: auctex-devel@gnu.org
@@ -209,9 +209,9 @@ For syntax environment from l3doc class."
    ;; document are indented.  Append them to a local version of
    ;; `LaTeX-document-regexp':
    (unless (string-match-p "\\<implementation\\>" LaTeX-document-regexp)
-     (set (make-local-variable 'LaTeX-document-regexp)
-          (concat LaTeX-document-regexp
-                  "\\|documentation\\|implementation")))
+     (setq-local LaTeX-document-regexp
+                 (concat LaTeX-document-regexp
+                         "\\|documentation\\|implementation")))
 
    ;; Append syntax to `LaTeX-item-list' with `LaTeX-item-l3doc-syntax'
    (add-to-list 'LaTeX-item-list '("syntax" . LaTeX-item-l3doc-syntax) t)
diff --git a/style/ltugboat.el b/style/ltugboat.el
index c6eb07d0..8a451add 100644
--- a/style/ltugboat.el
+++ b/style/ltugboat.el
@@ -74,8 +74,8 @@
    (LaTeX-add-environments '("appendix"))
 
    (unless (string-match-p "appendix" LaTeX-document-regexp)
-     (set (make-local-variable 'LaTeX-document-regexp)
-          (concat LaTeX-document-regexp "\\|" "appendix")))
+     (setq-local LaTeX-document-regexp
+                 (concat LaTeX-document-regexp "\\|" "appendix")))
 
    (TeX-add-symbols
     ;; 7 Titles, addresses and so on
diff --git a/style/paracol.el b/style/paracol.el
index bc9b4ded..4781158e 100644
--- a/style/paracol.el
+++ b/style/paracol.el
@@ -65,7 +65,7 @@ If OPTIONAL is non-nil, insert the result in square brackets."
         (TeX-argument-insert col optional)))))
 
 (defun LaTeX-paracol--used-model (&optional xcolor)
-  "Seach for \\backgroundcolor and return the optional used color model.
+  "Search for \\backgroundcolor and return the optional used color model.
 If XCOLOR is non-nil, store the returned value in the variable
 `LaTeX-xcolor-used-type-model', otherwise in the variable
 `LaTeX-color-used-model'."
diff --git a/style/plext.el b/style/plext.el
index 26e564e5..6adae878 100644
--- a/style/plext.el
+++ b/style/plext.el
@@ -1,6 +1,6 @@
 ;;; plext.el --- AUCTeX style for the plext package.  -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2014, 2020, 2022 Free Software Foundation, Inc.
+;; Copyright (C) 2014--2024 Free Software Foundation, Inc.
 
 ;; Author: Ikumi Keita <ik...@ikumi.que.jp>
 ;; Maintainer: auctex-devel@gnu.org
@@ -45,11 +45,12 @@
     '("tabular"  LaTeX-plext-env-array)
     '("tabular*" LaTeX-plext-env-array))
 
-   (set (make-local-variable 'LaTeX-array-skipping-regexp)
-        (concat "\\(?:<[tyz]>\\)?[ \t]*" (regexp-opt '("[t]" "[b]" ""))))
-   (set (make-local-variable 'LaTeX-tabular*-skipping-regexp)
-        (concat "\\(?:<[tyz]>\\)?[ \t]*{[^}]*}[ \t]*"
-                (regexp-opt '("[t]" "[b]" "")))))
+   (setq-local LaTeX-array-skipping-regexp
+               (concat "\\(?:<[tyz]>\\)?[ \t]*"
+                       (regexp-opt '("[t]" "[b]" ""))))
+   (setq-local LaTeX-tabular*-skipping-regexp
+               (concat "\\(?:<[tyz]>\\)?[ \t]*{[^}]*}[ \t]*"
+                       (regexp-opt '("[t]" "[b]" "")))))
  TeX-dialect)
 
 (defun LaTeX-plext-env-array (env)
diff --git a/style/preview.el b/style/preview.el
index 5431c095..c19d2783 100644
--- a/style/preview.el
+++ b/style/preview.el
@@ -1,6 +1,6 @@
 ;;; preview.el --- AUCTeX style for `preview.sty' (v2010/02/14)  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2017, 2018, 2020 Free Software Foundation, Inc.
+;; Copyright (C) 2017--2024 Free Software Foundation, Inc.
 
 ;; Author: Arash Esbati <ar...@gnu.org>
 ;; Maintainer: auctex-devel@gnu.org
@@ -64,23 +64,23 @@ OPTIONAL is ignored."
 
    (TeX-add-symbols
     '("PreviewMacro" (TeX-arg-conditional (y-or-n-p "With optional arguments? 
")
-                                          ( [ t ] [ nil ] )
-                                          ())
+                         ( [ t ] [ nil ] )
+                       ())
       TeX-arg-macro)
 
     '("PreviewMacro*" (TeX-arg-conditional (y-or-n-p "With optional arguments? 
")
-                                           ( [ t ] [ nil ] )
-                                           ())
+                          ( [ t ] [ nil ] )
+                        ())
       TeX-arg-macro)
 
     '("PreviewEnvironment" (TeX-arg-conditional (y-or-n-p "With optional 
arguments? ")
-                                                ( [ t ] [ nil ] )
-                                                ())
+                               ( [ t ] [ nil ] )
+                             ())
       TeX-arg-environment)
 
     '("PreviewEnvironment*" (TeX-arg-conditional (y-or-n-p "With optional 
arguments? ")
-                                                 ( [ t ] [ nil ] )
-                                                 ())
+                                ( [ t ] [ nil ] )
+                              ())
       TeX-arg-environment)
 
     '("PreviewSnarfEnvironment" TeX-arg-environment)
@@ -93,7 +93,7 @@ OPTIONAL is ignored."
    ;; Fontification
    (when (and (featurep 'font-latex)
               (eq TeX-install-font-lock 'font-latex-setup))
-     (font-latex-add-keywords '(("PreviewMacro"            "*[[{")
+     (font-latex-add-keywords '(("PreviewMacro"            "*[[|{\\")
                                 ("PreviewEnvironment"      "*[[{")
                                 ("PreviewSnarfEnvironment" "[{"))
                               'function)))
diff --git a/style/simpleicons.el b/style/simpleicons.el
index c0ad1469..bf32db18 100644
--- a/style/simpleicons.el
+++ b/style/simpleicons.el
@@ -1,4 +1,4 @@
-;;; simpleicons.el --- AUCTeX style for `simpleicons.sty' (v11.1.0)  -*- 
lexical-binding: t; -*-
+;;; simpleicons.el --- AUCTeX style for `simpleicons.sty' (v12.0.0)  -*- 
lexical-binding: t; -*-
 
 ;; Copyright (C) 2023--2024 Free Software Foundation, Inc.
 
@@ -26,8 +26,8 @@
 
 ;;; Commentary:
 
-;; This file adds support for `simpleicons.sty' (v11..0) from
-;; 2024/01/19.  `simpleicons.sty' is part of TeXLive.
+;; This file adds support for `simpleicons.sty' (v12.0.0) from
+;; 2024/05/31.  `simpleicons.sty' is part of TeXLive.
 
 ;;; Code:
 
@@ -42,6 +42,8 @@
 (defvar LaTeX-simpleicons-icons
   '("1001tracklists"
     "1password"
+    "2k"
+    "365datascience"
     "3m"
     "42"
     "4chan"
@@ -55,6 +57,7 @@
     "abbvie"
     "aboutdotme"
     "abstract"
+    "abusedotch"
     "academia"
     "accenture"
     "accusoft"
@@ -63,6 +66,7 @@
     "actigraph"
     "activision"
     "activitypub"
+    "actix"
     "acura"
     "adafruit"
     "adblock"
@@ -108,7 +112,7 @@
     "aiqfome"
     "airasia"
     "airbnb"
-    "airbrakedotio"
+    "airbrake"
     "airbus"
     "airbyte"
     "aircall"
@@ -120,9 +124,11 @@
     "airplayvideo"
     "airtable"
     "airtel"
+    "airtransat"
     "ajv"
     "akamai"
     "akaunting"
+    "akiflow"
     "alacritty"
     "alamy"
     "albertheijn"
@@ -149,16 +155,18 @@
     "alteryx"
     "altiumdesigner"
     "alwaysdata"
+    "alx"
     "amazon"
     "amazonalexa"
     "amazonapigateway"
-    "amazonaws"
     "amazoncloudwatch"
+    "amazoncognito"
     "amazondocumentdb"
     "amazondynamodb"
     "amazonec2"
     "amazonecs"
     "amazoneks"
+    "amazonelasticache"
     "amazonfiretv"
     "amazongames"
     "amazoniam"
@@ -173,6 +181,7 @@
     "amazons3"
     "amazonsimpleemailservice"
     "amazonsqs"
+    "amazonwebservices"
     "amd"
     "ameba"
     "americanairlines"
@@ -189,13 +198,18 @@
     "androidstudio"
     "angular"
     "anilist"
+    "animalplanet"
+    "ankermake"
     "ansible"
     "answer"
     "ansys"
     "anta"
     "antdesign"
     "antena3"
+    "anthropic"
+    "anycubic"
     "anydesk"
+    "anytype"
     "aol"
     "apache"
     "apacheairflow"
@@ -207,6 +221,7 @@
     "apachedruid"
     "apacheecharts"
     "apacheflink"
+    "apachefreemarker"
     "apachegroovy"
     "apacheguacamole"
     "apachehadoop"
@@ -230,6 +245,7 @@
     "apollographql"
     "apostrophe"
     "appian"
+    "appium"
     "apple"
     "applearcade"
     "applemusic"
@@ -282,12 +298,14 @@
     "audacity"
     "audi"
     "audible"
+    "audiobookshelf"
     "audioboom"
     "audiomack"
     "audiotechnica"
     "aurelia"
     "auth0"
     "authelia"
+    "authentik"
     "authy"
     "autocad"
     "autodesk"
@@ -297,6 +315,7 @@
     "autoit"
     "automattic"
     "autoprefixer"
+    "autozone"
     "avajs"
     "avast"
     "avianca"
@@ -304,9 +323,12 @@
     "awesomelists"
     "awesomewm"
     "awsamplify"
+    "awselasticloadbalancing"
     "awsfargate"
     "awslambda"
     "awsorganizations"
+    "awssecretsmanager"
+    "awwwards"
     "axios"
     "azureartifacts"
     "azuredataexplorer"
@@ -334,19 +356,24 @@
     "basecamp"
     "basicattentiontoken"
     "bastyon"
+    "bat"
     "bata"
     "battledotnet"
+    "bazel"
     "beatport"
     "beats"
     "beatsbydre"
+    "beatstars"
     "behance"
     "beijingsubway"
     "bem"
     "bentley"
     "bento"
+    "bentobox"
     "bentoml"
     "bereal"
     "betfair"
+    "betterstack"
     "bevy"
     "bigbasket"
     "bigbluebutton"
@@ -382,11 +409,13 @@
     "bloglovin"
     "blueprint"
     "bluesky"
+    "bluesound"
     "bluetooth"
     "bmcsoftware"
     "bmw"
     "bnbchain"
     "boardgamegeek"
+    "boat"
     "boehringeringelheim"
     "boeing"
     "bombardier"
@@ -407,6 +436,7 @@
     "bower"
     "box"
     "boxysvg"
+    "braintree"
     "brandfolder"
     "brave"
     "breaker"
@@ -426,14 +456,18 @@
     "bugatti"
     "bugcrowd"
     "bugsnag"
+    "buhl"
     "buildkite"
     "bukalapak"
     "bulma"
     "bun"
+    "bungie"
     "bunq"
     "burgerking"
+    "burpsuite"
     "burton"
     "buymeacoffee"
+    "buysellads"
     "buzzfeed"
     "bvg"
     "byjus"
@@ -447,8 +481,11 @@
     "cairographics"
     "cairometro"
     "cakephp"
+    "caldotcom"
     "calendly"
+    "calibreweb"
     "campaignmonitor"
+    "camunda"
     "canonical"
     "canva"
     "canvas"
@@ -488,8 +525,10 @@
     "checkmarx"
     "checkmk"
     "chedraui"
+    "cheerio"
     "chef"
     "chemex"
+    "chessdotcom"
     "chevrolet"
     "chianetwork"
     "chinaeasternairlines"
@@ -528,10 +567,13 @@
     "cloudera"
     "cloudflare"
     "cloudflarepages"
+    "cloudflareworkers"
     "cloudfoundry"
     "cloudinary"
+    "cloudron"
     "cloudsmith"
     "cloudways"
+    "clubforce"
     "clubhouse"
     "clyp"
     "cmake"
@@ -554,6 +596,7 @@
     "codecov"
     "codefactor"
     "codeforces"
+    "codefresh"
     "codeigniter"
     "codeium"
     "codemagic"
@@ -599,13 +642,16 @@
     "contao"
     "contentful"
     "contentstack"
+    "contributorcovenant"
     "conventionalcommits"
     "convertio"
     "cookiecutter"
     "coolermaster"
     "coop"
+    "copaairlines"
     "coppel"
     "cora"
+    "coreldraw"
     "coronaengine"
     "coronarenderer"
     "corsair"
@@ -634,6 +680,7 @@
     "crunchbase"
     "crunchyroll"
     "cryengine"
+    "cryptpad"
     "crystal"
     "csharp"
     "css3"
@@ -678,6 +725,7 @@
     "datocms"
     "datto"
     "davinciresolve"
+    "dazhongdianping"
     "dazn"
     "dbeaver"
     "dblp"
@@ -685,8 +733,10 @@
     "dcentertainment"
     "debian"
     "decapcms"
+    "decentraland"
     "dedge"
     "deepcool"
+    "deepgram"
     "deepin"
     "deepl"
     "deepnote"
@@ -744,6 +794,7 @@
     "doi"
     "dolby"
     "doordash"
+    "dota2"
     "dotenv"
     "dotnet"
     "douban"
@@ -789,6 +840,7 @@
     "eclipsejetty"
     "eclipsemosquitto"
     "eclipsevertdotx"
+    "ecovacs"
     "edeka"
     "edgeimpulse"
     "editorconfig"
@@ -797,6 +849,7 @@
     "edx"
     "egghead"
     "egnyte"
+    "eight"
     "eightsleep"
     "ejs"
     "elastic"
@@ -807,6 +860,7 @@
     "electron"
     "electronbuilder"
     "electronfiddle"
+    "elegoo"
     "element"
     "elementary"
     "elementor"
@@ -824,6 +878,7 @@
     "emirates"
     "emlakjet"
     "empirekred"
+    "endeavouros"
     "engadget"
     "enpass"
     "enterprisedb"
@@ -846,12 +901,14 @@
     "esri"
     "etcd"
     "ethereum"
+    "ethers"
     "ethiopianairlines"
     "etihadairways"
     "etsy"
     "eventbrite"
     "eventstore"
     "evernote"
+    "excalidraw"
     "exercism"
     "exordo"
     "exoscale"
@@ -877,6 +934,7 @@
     "fandom"
     "fanfou"
     "fantom"
+    "farcaster"
     "fareharbor"
     "farfetch"
     "fastapi"
@@ -903,6 +961,7 @@
     "figma"
     "figshare"
     "fila"
+    "filedotio"
     "files"
     "filezilla"
     "fineco"
@@ -915,15 +974,16 @@
     "fireship"
     "firewalla"
     "first"
+    "fishshell"
     "fitbit"
-    "fite"
     "fivem"
     "fiverr"
+    "fizz"
+    "flashforge"
     "flask"
     "flat"
     "flathub"
     "flatpak"
-    "flattr"
     "flickr"
     "flightaware"
     "flipboard"
@@ -944,14 +1004,17 @@
     "fontawesome"
     "fontbase"
     "fontforge"
+    "foobar2000"
     "foodpanda"
     "ford"
     "forgejo"
+    "formspree"
     "formstack"
     "fortinet"
     "fortran"
     "fossa"
     "fossilscm"
+    "foundryvirtualtabletop"
     "foursquare"
     "foursquarecityguide"
     "fox"
@@ -964,9 +1027,11 @@
     "frappe"
     "fraunhofergesellschaft"
     "freebsd"
+    "freecad"
     "freecodecamp"
     "freedesktopdotorg"
     "freelancer"
+    "freelancermap"
     "freenas"
     "freepik"
     "frontendmentor"
@@ -974,24 +1039,29 @@
     "fsecure"
     "fsharp"
     "fubo"
+    "fueler"
     "fugacloud"
     "fujifilm"
     "fujitsu"
     "funimation"
     "furaffinity"
     "furrynetwork"
+    "fusionauth"
     "futurelearn"
     "g2"
     "g2a"
+    "g2g"
     "galaxus"
     "gameandwatch"
     "gamebanana"
     "gamedeveloper"
     "gamejolt"
+    "gameloft"
     "gamemaker"
     "garmin"
     "gatling"
     "gatsby"
+    "gcore"
     "gdal"
     "geant"
     "geeksforgeeks"
@@ -1000,6 +1070,7 @@
     "genius"
     "gentoo"
     "geocaching"
+    "geopandas"
     "gerrit"
     "getx"
     "ghost"
@@ -1009,6 +1080,7 @@
     "giphy"
     "git"
     "gitbook"
+    "gitconnected"
     "gitea"
     "gitee"
     "gitextensions"
@@ -1024,6 +1096,7 @@
     "gitpod"
     "gitter"
     "glassdoor"
+    "glide"
     "glitch"
     "globus"
     "glovo"
@@ -1042,6 +1115,7 @@
     "godotengine"
     "gofundme"
     "gogdotcom"
+    "gojek"
     "goland"
     "goldenline"
     "goldmansachs"
@@ -1053,7 +1127,7 @@
     "googleanalytics"
     "googleappsscript"
     "googleassistant"
-    "googlebard"
+    "googleauthenticator"
     "googlebigquery"
     "googlebigtable"
     "googlecalendar"
@@ -1061,6 +1135,7 @@
     "googlecardboard"
     "googlechat"
     "googlechrome"
+    "googlechronicle"
     "googleclassroom"
     "googlecloud"
     "googlecloudcomposer"
@@ -1071,6 +1146,7 @@
     "googledataflow"
     "googledataproc"
     "googledatastudio"
+    "googledisplayandvideo360"
     "googledocs"
     "googledomains"
     "googledrive"
@@ -1079,6 +1155,7 @@
     "googlefit"
     "googlefonts"
     "googleforms"
+    "googlegemini"
     "googlehangouts"
     "googlehome"
     "googlekeep"
@@ -1183,6 +1260,7 @@
     "here"
     "heroku"
     "hetzner"
+    "hevy"
     "hexlet"
     "hexo"
     "hey"
@@ -1193,11 +1271,14 @@
     "hitachi"
     "hive"
     "hiveblockchain"
+    "hivemq"
+    "homarr"
     "homeadvisor"
     "homeassistant"
     "homeassistantcommunitystore"
     "homebrew"
     "homebridge"
+    "homepage"
     "homify"
     "honda"
     "honey"
@@ -1215,10 +1296,12 @@
     "hsbc"
     "html5"
     "htmlacademy"
+    "htmx"
     "htop"
     "httpie"
     "huawei"
     "hubspot"
+    "huggingface"
     "hugo"
     "humblebundle"
     "hungryjacks"
@@ -1231,6 +1314,7 @@
     "i3"
     "iata"
     "ibeacon"
+    "iberia"
     "ibm"
     "ibmcloud"
     "ibmwatson"
@@ -1251,21 +1335,27 @@
     "ifood"
     "ifttt"
     "igdb"
+    "ign"
     "iheartradio"
     "ikea"
     "iledefrancemobilites"
+    "imagedotsc"
     "imagej"
     "imdb"
+    "imessage"
     "imgur"
     "immer"
     "immich"
     "imou"
     "improvmx"
     "indeed"
+    "indiansuperleague"
+    "indiehackers"
     "indigo"
     "inertia"
     "infiniti"
     "influxdb"
+    "infomaniak"
     "infoq"
     "informatica"
     "infosys"
@@ -1273,6 +1363,7 @@
     "ingress"
     "inkdrop"
     "inkscape"
+    "inoreader"
     "insomnia"
     "inspire"
     "insta360"
@@ -1282,7 +1373,6 @@
     "instatus"
     "instructables"
     "instructure"
-    "integromat"
     "intel"
     "intellijidea"
     "interactiondesignfoundation"
@@ -1304,6 +1394,7 @@
     "iota"
     "ipfs"
     "iris"
+    "irobot"
     "isc2"
     "issuu"
     "istio"
@@ -1333,6 +1424,7 @@
     "jetpackcompose"
     "jfrog"
     "jfrogpipelines"
+    "jhipster"
     "jinja"
     "jira"
     "jirasoftware"
@@ -1342,6 +1434,7 @@
     "joomla"
     "joplin"
     "jordan"
+    "jouav"
     "jovian"
     "jpeg"
     "jquery"
@@ -1350,6 +1443,7 @@
     "jsfiddle"
     "json"
     "jsonwebtokens"
+    "jsr"
     "jss"
     "juce"
     "juejin"
@@ -1363,6 +1457,7 @@
     "k3s"
     "k6"
     "kaggle"
+    "kagi"
     "kahoot"
     "kaios"
     "kakao"
@@ -1380,12 +1475,14 @@
     "kde"
     "kdenlive"
     "kedro"
+    "keenetic"
     "keepachangelog"
     "keepassxc"
     "kentico"
     "keras"
     "keybase"
     "keycdn"
+    "keycloak"
     "keystone"
     "kfc"
     "khanacademy"
@@ -1407,6 +1504,7 @@
     "klook"
     "knative"
     "knexdotjs"
+    "knime"
     "knowledgebase"
     "known"
     "koa"
@@ -1424,10 +1522,13 @@
     "koyeb"
     "krita"
     "ktm"
+    "ktor"
     "kuaishou"
     "kubernetes"
     "kubuntu"
+    "kucoin"
     "kuma"
+    "kununu"
     "kuula"
     "kx"
     "kyocera"
@@ -1454,6 +1555,7 @@
     "legacygames"
     "leica"
     "lemmy"
+    "lemonsqueezy"
     "lenovo"
     "lens"
     "leptos"
@@ -1484,14 +1586,17 @@
     "lightburn"
     "lighthouse"
     "lightning"
+    "limesurvey"
     "line"
     "lineageos"
     "linear"
+    "lining"
     "linkedin"
     "linkerd"
     "linkfire"
     "linksys"
     "linktree"
+    "lintcode"
     "linux"
     "linuxcontainers"
     "linuxfoundation"
@@ -1500,6 +1605,7 @@
     "linuxserver"
     "lionair"
     "liquibase"
+    "listmonk"
     "lit"
     "litecoin"
     "litiengine"
@@ -1525,6 +1631,8 @@
     "ltspice"
     "lua"
     "lubuntu"
+    "lucia"
+    "lucid"
     "ludwig"
     "lufthansa"
     "lumen"
@@ -1538,6 +1646,7 @@
     "macys"
     "magasinsu"
     "magento"
+    "magic"
     "magisk"
     "mahindra"
     "mailchimp"
@@ -1545,9 +1654,12 @@
     "maildotru"
     "mailgun"
     "mailtrap"
+    "mainwp"
     "majorleaguehacking"
     "make"
     "makerbot"
+    "malt"
+    "malwarebytes"
     "mambaui"
     "mamp"
     "man"
@@ -1597,6 +1709,7 @@
     "mega"
     "meilisearch"
     "meituan"
+    "meizu"
     "mendeley"
     "mentorcruise"
     "mercadopago"
@@ -1609,6 +1722,7 @@
     "metabase"
     "metacritic"
     "metafilter"
+    "metasploit"
     "meteor"
     "metro"
     "metrodelaciudaddemexico"
@@ -1643,7 +1757,9 @@
     "microstation"
     "microstrategy"
     "midi"
+    "migadu"
     "mikrotik"
+    "milanote"
     "milvus"
     "minds"
     "minecraft"
@@ -1702,6 +1818,7 @@
     "muller"
     "multisim"
     "mumble"
+    "muo"
     "mural"
     "musescore"
     "musicbrainz"
@@ -1712,11 +1829,16 @@
     "myspace"
     "mysql"
     "n26"
+    "n8n"
     "namebase"
     "namecheap"
+    "namemc"
+    "namesilo"
+    "namuwiki"
     "nano"
     "nasa"
     "nationalgrid"
+    "nationalrail"
     "nativescript"
     "natsdotio"
     "naver"
@@ -1728,10 +1850,12 @@
     "nec"
     "neo4j"
     "neovim"
+    "neptune"
     "nestjs"
     "netapp"
     "netbsd"
     "netcup"
+    "netdata"
     "neteasecloudmusic"
     "netflix"
     "netgear"
@@ -1751,13 +1875,13 @@
     "nextdotjs"
     "nextra"
     "nextui"
+    "nexusmods"
     "nfc"
     "nginx"
     "nginxproxymanager"
     "ngrok"
     "ngrx"
     "nhl"
-    "niantic"
     "niconico"
     "nike"
     "nikon"
@@ -1765,7 +1889,6 @@
     "nintendo"
     "nintendo3ds"
     "nintendogamecube"
-    "nintendonetwork"
     "nintendoswitch"
     "nissan"
     "nixos"
@@ -1796,6 +1919,7 @@
     "numba"
     "numpy"
     "nunjucks"
+    "nushell"
     "nutanix"
     "nuxtdotjs"
     "nvidia"
@@ -1840,7 +1964,9 @@
     "openhab"
     "openid"
     "openjdk"
+    "openjsfoundation"
     "openlayers"
+    "openmediavault"
     "openmined"
     "opennebula"
     "openproject"
@@ -1867,6 +1993,7 @@
     "oppo"
     "opsgenie"
     "opslevel"
+    "optimism"
     "oracle"
     "orange"
     "orcid"
@@ -1905,9 +2032,12 @@
     "pandas"
     "pandora"
     "pantheon"
+    "paperlessngx"
     "paperspace"
+    "paperswithcode"
     "paramountplus"
     "paritysubstrate"
+    "parrotsecurity"
     "parsedotly"
     "passport"
     "pastebin"
@@ -1933,6 +2063,7 @@
     "percy"
     "perforce"
     "perl"
+    "perplexity"
     "persistent"
     "personio"
     "petsathome"
@@ -1946,6 +2077,7 @@
     "phosphoricons"
     "photobucket"
     "photocrowd"
+    "photon"
     "photopea"
     "php"
     "phpmyadmin"
@@ -1971,7 +2103,9 @@
     "piwigo"
     "pix"
     "pixabay"
+    "pixelfed"
     "pixiv"
+    "pixlr"
     "pkgsrc"
     "planet"
     "planetscale"
@@ -2018,9 +2152,11 @@
     "polywork"
     "pond5"
     "popos"
+    "porkbun"
     "porsche"
     "portainer"
     "portswigger"
+    "posit"
     "postcss"
     "postgresql"
     "posthog"
@@ -2051,6 +2187,7 @@
     "printables"
     "prisma"
     "prismic"
+    "privatedivision"
     "privateinternetaccess"
     "probot"
     "processingfoundation"
@@ -2059,6 +2196,7 @@
     "progate"
     "progress"
     "prometheus"
+    "pronounsdotpage"
     "prosieben"
     "proteus"
     "protocolsdotio"
@@ -2084,9 +2222,11 @@
     "purescript"
     "purgecss"
     "purism"
+    "pushbullet"
     "pusher"
     "pwa"
     "pycharm"
+    "pycqa"
     "pydantic"
     "pyg"
     "pypi"
@@ -2101,6 +2241,7 @@
     "qantas"
     "qase"
     "qatarairways"
+    "qbittorrent"
     "qemu"
     "qgis"
     "qi"
@@ -2109,6 +2250,7 @@
     "qiwi"
     "qlik"
     "qmk"
+    "qnap"
     "qt"
     "qualcomm"
     "qualtrics"
@@ -2116,6 +2258,7 @@
     "quantcast"
     "quantconnect"
     "quarkus"
+    "quarto"
     "quasar"
     "qubesos"
     "quest"
@@ -2124,8 +2267,10 @@
     "quicktime"
     "quicktype"
     "quip"
+    "quizlet"
     "quora"
     "qwant"
+    "qwik"
     "qwiklabs"
     "qzone"
     "r"
@@ -2133,6 +2278,7 @@
     "rabbitmq"
     "racket"
     "radar"
+    "radarr"
     "radiopublic"
     "radixui"
     "radstudio"
@@ -2152,6 +2298,7 @@
     "razer"
     "razorpay"
     "react"
+    "reactbootstrap"
     "reacthookform"
     "reactiveresume"
     "reactivex"
@@ -2167,6 +2314,7 @@
     "reasonstudios"
     "recoil"
     "red"
+    "redash"
     "redbubble"
     "redbull"
     "reddit"
@@ -2183,6 +2331,7 @@
     "relay"
     "relianceindustrieslimited"
     "remark"
+    "remedyentertainment"
     "remix"
     "renault"
     "render"
@@ -2209,6 +2358,7 @@
     "rewe"
     "rezgo"
     "rhinoceros"
+    "rich"
     "rider"
     "rimacautomobili"
     "ring"
@@ -2224,13 +2374,17 @@
     "roblox"
     "robloxstudio"
     "robotframework"
+    "rocket"
     "rocketdotchat"
     "rocksdb"
+    "rockstargames"
+    "rockwellautomation"
     "rockylinux"
     "roku"
+    "roll20"
     "rollsroyce"
     "rollupdotjs"
-    "rome"
+    "roon"
     "rootme"
     "roots"
     "rootsbedrock"
@@ -2242,7 +2396,7 @@
     "roundcube"
     "rsocket"
     "rss"
-    "rstudio"
+    "rstudioide"
     "rte"
     "rtl"
     "rtlzwei"
@@ -2250,15 +2404,18 @@
     "rubocop"
     "ruby"
     "rubygems"
+    "rubymine"
     "rubyonrails"
     "rubysinatra"
     "ruff"
+    "rumahweb"
     "rumble"
     "rundeck"
     "runkeeper"
     "runkit"
     "runrundotit"
     "rust"
+    "rustdesk"
     "rxdb"
     "ryanair"
     "rye"
@@ -2270,6 +2427,7 @@
     "sailfishos"
     "sailsdotjs"
     "salesforce"
+    "salla"
     "saltproject"
     "samsclub"
     "samsung"
@@ -2280,16 +2438,19 @@
     "sanity"
     "saopaulometro"
     "sap"
+    "sartorius"
     "sass"
     "sat1"
     "satellite"
     "saturn"
     "saucelabs"
+    "saudia"
     "scala"
     "scaleway"
     "scania"
     "schneiderelectric"
     "scikitlearn"
+    "scilab"
     "scipy"
     "scopus"
     "scpfoundation"
@@ -2347,11 +2508,11 @@
     "shopify"
     "shopware"
     "shortcut"
-    "shotcut"
     "showpad"
     "showtime"
     "showwcase"
     "shutterstock"
+    "sidekiq"
     "sidequest"
     "siemens"
     "sifive"
@@ -2375,7 +2536,6 @@
     "skillshare"
     "skoda"
     "sky"
-    "skynet"
     "skypack"
     "skype"
     "skypeforbusiness"
@@ -2413,6 +2573,7 @@
     "sonarcloud"
     "sonarlint"
     "sonarqube"
+    "sonarr"
     "sonatype"
     "songkick"
     "songoda"
@@ -2428,6 +2589,7 @@
     "sourcetree"
     "southwestairlines"
     "spacemacs"
+    "spaceship"
     "spacex"
     "spacy"
     "sparkar"
@@ -2484,6 +2646,7 @@
     "startrek"
     "starz"
     "statamic"
+    "statista"
     "statuspage"
     "statuspal"
     "steam"
@@ -2495,6 +2658,7 @@
     "steemit"
     "steinberg"
     "stellar"
+    "stencil"
     "stencyl"
     "stimulus"
     "stitcher"
@@ -2525,6 +2689,7 @@
     "subversion"
     "suckless"
     "sumologic"
+    "sunrise"
     "supabase"
     "supercrease"
     "supermicro"
@@ -2549,6 +2714,7 @@
     "symfony"
     "symphony"
     "sympy"
+    "syncthing"
     "synology"
     "system76"
     "tabelog"
@@ -2559,9 +2725,12 @@
     "taichigraphics"
     "taichilang"
     "tails"
+    "tailscale"
     "tailwindcss"
+    "taketwointeractivesoftware"
     "talend"
     "talenthouse"
+    "talos"
     "tamiya"
     "tampermonkey"
     "taobao"
@@ -2573,10 +2742,12 @@
     "tauri"
     "taxbuzz"
     "tcs"
+    "teal"
     "teamcity"
     "teamspeak"
     "teamviewer"
     "ted"
+    "teepublic"
     "teespring"
     "tekton"
     "tele5"
@@ -2601,6 +2772,7 @@
     "tga"
     "thangs"
     "thealgorithms"
+    "theboringcompany"
     "theconversation"
     "thefinals"
     "theirishtimes"
@@ -2615,6 +2787,7 @@
     "thewashingtonpost"
     "thingiverse"
     "thinkpad"
+    "thirdweb"
     "threadless"
     "threads"
     "threedotjs"
@@ -2632,14 +2805,17 @@
     "tidyverse"
     "tietoevry"
     "tiktok"
+    "tildapublishing"
     "tile"
     "timescale"
     "tina"
     "tinder"
     "tindie"
     "tinkercad"
+    "tinygrad"
     "tinyletter"
     "tistory"
+    "tldraw"
     "tmobile"
     "tmux"
     "todoist"
@@ -2651,14 +2827,17 @@
     "tomorrowland"
     "ton"
     "topcoder"
+    "topdotgg"
     "toptal"
     "torbrowser"
     "torproject"
     "toshiba"
+    "totvs"
     "tourbox"
     "toyota"
     "tplink"
     "tqdm"
+    "traccar"
     "tradingview"
     "traefikmesh"
     "traefikproxy"
@@ -2685,6 +2864,7 @@
     "trove"
     "trpc"
     "truenas"
+    "trueup"
     "trulia"
     "trustedshops"
     "trustpilot"
@@ -2701,13 +2881,17 @@
     "turkishairlines"
     "turso"
     "tutanota"
+    "tv4play"
     "tvtime"
     "twilio"
+    "twinkly"
+    "twinmotion"
     "twitch"
-    "twitter"
     "typeform"
+    "typer"
     "typescript"
     "typo3"
+    "typst"
     "uber"
     "ubereats"
     "ubiquiti"
@@ -2719,6 +2903,7 @@
     "udemy"
     "ufc"
     "uikit"
+    "uipath"
     "ulule"
     "umami"
     "umbraco"
@@ -2736,11 +2921,13 @@
     "unity"
     "unlicense"
     "unocss"
+    "unpkg"
     "unraid"
     "unrealengine"
     "unsplash"
     "untappd"
     "upcloud"
+    "uphold"
     "uplabs"
     "upptime"
     "ups"
@@ -2763,6 +2950,7 @@
     "vaultwarden"
     "vauxhall"
     "vbulletin"
+    "vectary"
     "vectorlogozone"
     "vectorworks"
     "veeam"
@@ -2798,12 +2986,14 @@
     "visualstudioappcenter"
     "visualstudiocode"
     "vite"
+    "vitepress"
     "vitess"
     "vitest"
     "vivaldi"
     "vivawallet"
     "vivino"
     "vivint"
+    "vivo"
     "vk"
     "vlcmediaplayer"
     "vmware"
@@ -2840,6 +3030,7 @@
     "wasabi"
     "wasmcloud"
     "wasmer"
+    "watchtower"
     "wattpad"
     "wayland"
     "waze"
@@ -2870,6 +3061,7 @@
     "wellsfargo"
     "wemo"
     "westerndigital"
+    "westernunion"
     "wetransfer"
     "wezterm"
     "whatsapp"
@@ -2880,6 +3072,7 @@
     "wikidotgg"
     "wikidotjs"
     "wikimediacommons"
+    "wikimediafoundation"
     "wikipedia"
     "wikiquote"
     "wikivoyage"
@@ -2902,6 +3095,7 @@
     "wolframlanguage"
     "wolframmathematica"
     "wondershare"
+    "wondersharefilmora"
     "woo"
     "woocommerce"
     "wordpress"
@@ -2925,6 +3119,7 @@
     "xendit"
     "xero"
     "xfce"
+    "xiaohongshu"
     "xiaomi"
     "xing"
     "xmpp"
@@ -2953,15 +3148,19 @@
     "yr"
     "yubico"
     "zabka"
+    "zaim"
     "zalando"
     "zalo"
+    "zap"
     "zapier"
     "zara"
     "zazzle"
     "zcash"
+    "zcool"
     "zdf"
     "zebpay"
     "zebratechnologies"
+    "zedindustries"
     "zelle"
     "zend"
     "zendesk"
@@ -2974,6 +3173,7 @@
     "zhihu"
     "zig"
     "zigbee"
+    "zigbee2mqtt"
     "ziggo"
     "zilch"
     "zillow"
diff --git a/style/siunitx.el b/style/siunitx.el
index cec13b59..c3f4c558 100644
--- a/style/siunitx.el
+++ b/style/siunitx.el
@@ -1,6 +1,6 @@
 ;;; siunitx.el --- AUCTeX style for `siunitx.sty' version 3.3.36.  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2012-2023  Free Software Foundation, Inc.
+;; Copyright (C) 2012-2024  Free Software Foundation, Inc.
 
 ;; Maintainer: auctex-devel@gnu.org
 ;; Author: Mosè Giordano <m...@gnu.org>
@@ -468,8 +468,8 @@ string."
    ;; FIXME: 'siunitx.sty' adds only one new column specification
    ;; letter 'S' in v3 and 's' is removed.  We keep 's' for older
    ;; documents and remove it sometimes later.
-   (set (make-local-variable 'LaTeX-array-column-letters)
-        (concat LaTeX-array-column-letters "S" "s"))
+   (setq-local LaTeX-array-column-letters
+               (concat LaTeX-array-column-letters "S" "s"))
 
    (TeX-run-style-hooks "l3keys2e"
                         "array"
diff --git a/style/standalone.el b/style/standalone.el
new file mode 100644
index 00000000..0f43bc55
--- /dev/null
+++ b/style/standalone.el
@@ -0,0 +1,166 @@
+;;; standalone.el --- AUCTeX style for `standalone.cls|sty'   -*- 
lexical-binding: t; -*-
+
+;; Copyright (C) 2024 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <ar...@gnu.org>
+;; Maintainer: auctex-devel@gnu.org
+;; Created: 2024-02-18
+;; Keywords: tex
+
+;; This file is part of AUCTeX.
+
+;; AUCTeX is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; AUCTeX is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with AUCTeX; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+;; 02110-1301, USA.
+
+;;; Commentary:
+
+;; This file adds support for `standalone.sty' and `standalone.cls'
+;; v1.3b from 2022/10/10.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+                  "font-latex"
+                  (keywords class))
+
+(defun LaTeX-standalone-auto-cleanup ()
+  "Parse the value of \"class\" key and run the appropriate style hook."
+  (let ((cls (TeX-member "\\`class="
+                         (cdr (assoc "standalone" 
LaTeX-provided-class-options))
+                         #'string-match)))
+    (when cls
+      (TeX-run-style-hooks (cadr (split-string cls "=" t))))))
+
+(add-hook 'TeX-auto-cleanup-hook #'LaTeX-standalone-auto-cleanup t)
+
+(TeX-add-style-hook
+ "standalone"
+ (lambda ()
+
+   ;; General macros/env's provided by the class and the package:
+   (TeX-add-symbols
+    '("ifstandalonebeamer" 0)
+    '("ifstandalone" 0))
+
+   ;; Fontification:
+   (when (and (featurep 'font-latex)
+              (eq TeX-install-font-lock 'font-latex-setup))
+     (font-latex-add-keywords '(("standaloneconfig" "{"))
+                              'function))
+
+   ;; standalone.cls:
+   (when (assoc "standalone" LaTeX-provided-class-options)
+     (TeX-add-symbols
+      '("standaloneconfig"
+        (TeX-arg-key-val (LaTeX-standalone-class-options-list)))
+      '("standaloneignore" 0) )
+
+     (LaTeX-add-environments "standalone")
+
+     ;; \standaloneenv is relevant in conjunction with option multi:
+     (when (or (LaTeX-provided-class-options-member "standalone" "multi")
+               (LaTeX-provided-class-options-member "standalone" "multi=true"))
+       (TeX-add-symbols
+        '("standaloneenv"
+          (TeX-arg-completing-read-multiple (LaTeX-environment-list)
+                                            "Enviroment(s)")))
+       ;; Fontification
+       (when (and (featurep 'font-latex)
+                  (eq TeX-install-font-lock 'font-latex-setup))
+         (font-latex-add-keywords '(("standaloneenv" "{"))
+                                  'function)))
+
+     ;; standaloneframe env is relevant in conjunction with option beamer:
+     (when (or (LaTeX-provided-class-options-member "standalone" "beamer")
+               (LaTeX-provided-class-options-member "standalone" 
"beamer=true"))
+       (TeX-run-style-hooks "beamer")
+       (LaTeX-add-environments '("standaloneframe")))
+
+     ;; TikZ class option:
+     (when (or (LaTeX-provided-class-options-member "standalone" "tikz")
+               (LaTeX-provided-class-options-member "standalone" "tikz=true"))
+       (TeX-run-style-hooks "tikz")))
+
+   ;; standalone.sty
+   (when (assoc "standalone" LaTeX-provided-package-options)
+     (TeX-load-style "graphicx")
+     (TeX-add-symbols
+      '("standaloneconfig"
+        (TeX-arg-key-val (("group" ("true" "false"))
+                          ("mode" ("tex" "image" "tex|image" "build"
+                                   "buildmissing" "buildnew"))
+                          ("extension")
+                          ("build"))))
+      '("includestandalone"
+        [TeX-arg-key-val (lambda ()
+                           (append (LaTeX-graphicx-key-val-options)
+                                   '(("group" ("true" "false"))
+                                     ("mode" ("tex" "image" "tex|image" "build"
+                                              "buildmissing" "buildnew"))
+                                     ("extension")
+                                     ("build"))))]
+        TeX-arg-file-name-sans-extension))
+
+     ;; Fontification
+     (when (and (featurep 'font-latex)
+                (eq TeX-install-font-lock 'font-latex-setup))
+       (font-latex-add-keywords '(("includestandalone" "{"))
+                                'reference))) )
+ TeX-dialect)
+
+(defun LaTeX-standalone-class-options-list ()
+  "Return an alist of class options for the standalone class."
+  `(("class" ,LaTeX-global-class-files)
+    ("multi" ,(append '("true" "false")
+                      (mapcar #'car (LaTeX-environment-list))))
+    ("crop" ("true" "false"))
+    ("preview" ("true" "false"))
+    ("border" ("{}"))
+    ("ignorerest" ("true" "false"))
+    ("multido" ("true" "false"))
+    ("varwidth" ("true" "false"))
+    ("tikz" ("true" "false"))
+    ("pstricks" ("true" "false"))
+    ("beamer" ("true" "false"))
+    ("float" ("true" "false"))
+    ("convert" ("true" "false"))
+    ("png")))
+
+(defun LaTeX-standalone-class-options ()
+  "Prompt for the class options for the standalone class."
+  (TeX-read-key-val t (LaTeX-standalone-class-options-list)))
+
+(defvar LaTeX-standalone-package-options-list
+  '(("subpreambles" ("true" "false"))
+    ("sort" ("true" "false"))
+    ("print" ("true" "false"))
+    ("comments" ("true" "false"))
+    ("nocomments")
+    ("group" ("true" "false"))
+    ("mode" ("tex" "image" "tex|image" "build" "buildmissing" "buildnew"))
+    ("obeyclassoptions" ("true" "false"))
+    ("extension")
+    ("build"))
+  "Package options for the standalone package.")
+
+(defun LaTeX-standalone-package-options ()
+  "Prompt for options of the standalone package."
+  (TeX-arg-key-val t LaTeX-standalone-package-options-list))
+
+;;; standalone.el ends here
diff --git a/style/tabularx.el b/style/tabularx.el
index 970f698c..3aa790dd 100644
--- a/style/tabularx.el
+++ b/style/tabularx.el
@@ -1,6 +1,6 @@
 ;;; tabularx.el --- AUCTeX style for the tabularx package.  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2009, 2013-2016, 2020 Free Software Foundation, Inc.
+;; Copyright (C) 2009--2024 Free Software Foundation, Inc.
 
 ;; Author: Ralf Angeli <ang...@caeruleus.net>
 ;; Maintainer: auctex-devel@gnu.org
@@ -66,8 +66,8 @@
    (TeX-run-style-hooks "array")
 
    ;; `tabularx.sty' adds one new column specification letter.
-   (set (make-local-variable 'LaTeX-array-column-letters)
-        (concat LaTeX-array-column-letters "X")))
+   (setq-local LaTeX-array-column-letters
+               (concat LaTeX-array-column-letters "X")))
  TeX-dialect)
 
 ;;; tabularx.el ends here
diff --git a/style/tabulary.el b/style/tabulary.el
index 6b309e0e..a07a238f 100644
--- a/style/tabulary.el
+++ b/style/tabulary.el
@@ -1,6 +1,6 @@
 ;;; tabulary.el --- AUCTeX style for the tabulary package.  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2013-2016, 2020, 2021 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2024 Free Software Foundation, Inc.
 
 ;; Author: Mads Jensen <m...@inducks.org>
 ;; Maintainer: auctex-devel@gnu.org
@@ -66,8 +66,8 @@
    (TeX-run-style-hooks "array")
 
    ;; `tabulary.sty' adds some new column specification letters.
-   (set (make-local-variable 'LaTeX-array-column-letters)
-        (concat LaTeX-array-column-letters "L" "C" "R" "J")))
+   (setq-local LaTeX-array-column-letters
+               (concat LaTeX-array-column-letters "L" "C" "R" "J")))
  TeX-dialect)
 
 ;;; tabulary.el ends here
diff --git a/style/tcolorboxlib-raster.el b/style/tcolorboxlib-raster.el
index 1d67761b..b41e2cd1 100644
--- a/style/tcolorboxlib-raster.el
+++ b/style/tcolorboxlib-raster.el
@@ -1,6 +1,6 @@
 ;;; tcolorboxlib-raster.el --- AUCTeX style for `raster' library from 
tcolorbox  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2016--2022 Free Software Foundation, Inc.
+;; Copyright (C) 2016--2024 Free Software Foundation, Inc.
 
 ;; Author: Arash Esbati <ar...@gnu.org>
 ;; Maintainer: auctex-devel@gnu.org
@@ -138,11 +138,10 @@
 
    ;; Append tcbitem to `LaTeX-item-regexp':
    (unless (string-match "tcbitem" LaTeX-item-regexp)
-     (set (make-local-variable 'LaTeX-item-regexp)
-          (concat
-           LaTeX-item-regexp
-           "\\|"
-           "tcbitem\\b"))
+     (setq-local LaTeX-item-regexp
+                 (concat LaTeX-item-regexp
+                         "\\|"
+                         "tcbitem\\b"))
      (LaTeX-set-paragraph-start))
 
    ;; Fontification
diff --git a/style/tex-live.el b/style/tex-live.el
index 5fdb4eeb..0f347b87 100644
--- a/style/tex-live.el
+++ b/style/tex-live.el
@@ -1,6 +1,6 @@
 ;;; tex-live.el --- AUCTeX style for `tex-live.sty'  -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2020--2022 Free Software Foundation, Inc.
+;; Copyright (C) 2020--2024 Free Software Foundation, Inc.
 
 ;; Author: Arash Esbati <ar...@gnu.org>
 ;; Maintainer: auctex-devel@gnu.org
@@ -138,8 +138,8 @@
     '("lrBox"))
 
    ;; `tex-live.sty' adds one new column specification letter P:
-   (set (make-local-variable 'LaTeX-array-column-letters)
-        (concat LaTeX-array-column-letters "P"))
+   (setq-local LaTeX-array-column-letters
+               (concat LaTeX-array-column-letters "P"))
 
    ;; Custom env's where \item takes an opt. argument:
    (let ((envs '("ttdescription" "cmddescription")))
diff --git a/tex-bar.el b/tex-bar.el
index a0bf9311..07a5cde3 100644
--- a/tex-bar.el
+++ b/tex-bar.el
@@ -18,6 +18,7 @@
 ;; MA 02110-1301 USA
 
 ;; Author: Miguel V. S. Frasson <fras...@math.leidenuniv.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Keywords: tool-bar, tex, latex
 
 ;;; Commentary:
diff --git a/tex-font.el b/tex-font.el
index 5f483d86..5158c52e 100644
--- a/tex-font.el
+++ b/tex-font.el
@@ -1,18 +1,18 @@
 ;;; tex-font.el --- Font-Lock support stolen from Emacs 21.  -*- 
lexical-binding: t; -*-
 ;;
-;; Copyright (C) 1985-2021  Free Software Foundation, Inc.
+;; Copyright (C) 1985-2024  Free Software Foundation, Inc.
 
 ;; Maintainer: auctex-devel@gnu.org
 ;; Keywords: tex, faces
 
-;; This file is part of AUC TeX.
+;; This file is part of AUCTeX.
 
-;; AUC TeX is free software; you can redistribute it and/or modify
+;; AUCTeX is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation; either version 3, or (at your option)
 ;; any later version.
 
-;; AUC TeX is distributed in the hope that it will be useful,
+;; AUCTeX is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
@@ -159,15 +159,14 @@
 ;;;###autoload
 (defun tex-font-setup ()
   "Setup font lock support for TeX."
-  (set (make-local-variable 'font-lock-defaults)
-       '((tex-font-lock-keywords
-          tex-font-lock-keywords-1 tex-font-lock-keywords-2)
-         nil nil ((?$ . "\"")) nil
-         ;; Who ever uses that anyway ???
-         (font-lock-mark-block-function . mark-paragraph)
-         (font-lock-syntactic-face-function
-          . tex-font-lock-syntactic-face-function)))
-  )
+  (setq-local font-lock-defaults
+              '((tex-font-lock-keywords
+                 tex-font-lock-keywords-1 tex-font-lock-keywords-2)
+                nil nil ((?$ . "\"")) nil
+                ;; Who ever uses that anyway ???
+                (font-lock-mark-block-function . mark-paragraph)
+                (font-lock-syntactic-face-function
+                 . tex-font-lock-syntactic-face-function))))
 
 (provide 'tex-font)
 
diff --git a/tex-info.el b/tex-info.el
index 2a65c3a9..dc69762e 100644
--- a/tex-info.el
+++ b/tex-info.el
@@ -495,7 +495,7 @@ is assumed by default."
                           (cons (car x) (- (cadr x)))
                         (cons (car x) (cadr x))))
                     texinfo-section-list))))
-    (set (make-local-variable (car v) ) (cdr v)))
+    (set (make-local-variable (car v)) (cdr v)))
   (reftex-ensure-compiled-variables))
 
 ;;; Keymap:
@@ -648,26 +648,25 @@ value of `Texinfo-mode-hook'."
   ;;       "^@node [ \t]*[Tt]op\\|^@\\("
   ;;       texinfo-chapter-level-regexp
   ;;       "\\)"))
-  (set (make-local-variable 'require-final-newline) mode-require-final-newline)
-  (set (make-local-variable 'indent-tabs-mode) nil)
-  (set (make-local-variable 'paragraph-separate)
-       (concat "@[a-zA-Z]*[ \n]\\|" paragraph-separate))
-  (set (make-local-variable 'paragraph-start)
-       (concat "@[a-zA-Z]*[ \n]\\|" paragraph-start))
-  (set (make-local-variable 'fill-column) 72)
-  (set (make-local-variable 'comment-start) "@c ")
-  (set (make-local-variable 'comment-start-skip) "@c +\\|@comment +")
-  (set (make-local-variable 'comment-use-syntax) nil)
+  (setq-local require-final-newline mode-require-final-newline)
+  (setq-local indent-tabs-mode nil)
+  (setq-local paragraph-separate
+              (concat "@[a-zA-Z]*[ \n]\\|" paragraph-separate))
+  (setq-local paragraph-start
+              (concat "@[a-zA-Z]*[ \n]\\|" paragraph-start))
+  (setq-local fill-column 72)
+  (setq-local comment-start "@c ")
+  (setq-local comment-start-skip "@c +\\|@comment +")
+  (setq-local comment-use-syntax nil)
   (setq TeX-comment-start-regexp "@c\\(?:omment\\)?\\>")
-  (set (make-local-variable 'words-include-escapes) t)
-  (set (make-local-variable 'imenu-generic-expression)
-       texinfo-imenu-generic-expression)
+  (setq-local words-include-escapes t)
+  (setq-local imenu-generic-expression texinfo-imenu-generic-expression)
   (setq imenu-case-fold-search nil)
 
-  (set (make-local-variable 'font-lock-defaults)
-       '(texinfo-font-lock-keywords nil nil nil backward-paragraph))
-  (set (make-local-variable 'syntax-propertize-function)
-       texinfo-syntax-propertize-function)
+  (setq-local font-lock-defaults
+              '(texinfo-font-lock-keywords nil nil nil backward-paragraph))
+  (setq-local syntax-propertize-function
+              texinfo-syntax-propertize-function)
 
   (setq-local outline-heading-alist
               (mapcar (lambda (x) (cons (concat "@" (car x)) (cadr x)))
@@ -677,12 +676,12 @@ value of `Texinfo-mode-hook'."
                      "\\>"))
 
   ;; Mostly AUCTeX stuff
-  (set (make-local-variable 'TeX-command-current) #'TeX-command-master)
+  (setq-local TeX-command-current #'TeX-command-master)
 
   (setq TeX-default-extension "texi")
-  (set (make-local-variable 'TeX-esc) "@")
+  (setq-local TeX-esc "@")
 
-  (set (make-local-variable 'TeX-auto-regexp-list) 'TeX-auto-empty-regexp-list)
+  (setq-local TeX-auto-regexp-list 'TeX-auto-empty-regexp-list)
 
   (setq TeX-command-default "TeX")
   (setq TeX-header-end (regexp-quote "%**end of header"))
@@ -694,10 +693,9 @@ value of `Texinfo-mode-hook'."
   ;;      (list (list "@\\([a-zA-Z]*\\)" 1 #'TeX-symbol-list-filtered nil)
   ;;            (list "" TeX-complete-word)))
 
-  (set (make-local-variable 'TeX-font-list) Texinfo-font-list)
-  (set (make-local-variable 'TeX-font-replace-function)
-       #'TeX-font-replace-macro)
-  (set (make-local-variable 'TeX-style-hook-dialect) :texinfo)
+  (setq-local TeX-font-list Texinfo-font-list)
+  (setq-local TeX-font-replace-function #'TeX-font-replace-macro)
+  (setq-local TeX-style-hook-dialect :texinfo)
 
   (add-hook 'find-file-hook (lambda ()
                               (unless (file-exists-p (TeX-buffer-file-name))
@@ -706,8 +704,8 @@ value of `Texinfo-mode-hook'."
 
   (when (and (boundp 'add-log-current-defun-function)
              (fboundp 'texinfo-current-defun-name))
-    (set (make-local-variable 'add-log-current-defun-function)
-         #'texinfo-current-defun-name))
+    (setq-local add-log-current-defun-function
+                #'texinfo-current-defun-name))
 
   (TeX-add-symbols
    '("acronym" "Acronym")
diff --git a/tex-jp.el b/tex-jp.el
index 704ef802..52959078 100644
--- a/tex-jp.el
+++ b/tex-jp.el
@@ -6,6 +6,7 @@
 ;;             Hidenobu Nabetani <n...@debian.or.jp>
 ;; Maintainer: Masayuki Ataka <masayuki.at...@gmail.com>
 ;;             Ikumi Keita <ikumike...@jcom.home.ne.jp>
+;;             auctex-devel@gnu.org
 ;; Keywords: tex
 
 ;; This file is part of AUCTeX.
diff --git a/tex-style.el b/tex-style.el
index f546df96..81c243ba 100644
--- a/tex-style.el
+++ b/tex-style.el
@@ -3,6 +3,7 @@
 ;; Copyright (C) 2005-2024  Free Software Foundation, Inc.
 
 ;; Author: Reiner Steib <reiner.st...@gmx.de>
+;; Maintainer: auctex-devel@gnu.org
 ;; Keywords: tex, text, convenience
 
 ;; This file is free software; you can redistribute it and/or modify
diff --git a/tex-wizard.el b/tex-wizard.el
index 8c8ba819..bb6e3080 100644
--- a/tex-wizard.el
+++ b/tex-wizard.el
@@ -3,6 +3,7 @@
 ;; Copyright (C) 2003-2024 Free Software Foundation, Inc.
 
 ;; Author: David Kastrup <d...@gnu.org>
+;; Maintainer: auctex-devel@gnu.org
 ;; Keywords: tex, text, convenience
 
 ;; This file is free software; you can redistribute it and/or modify
@@ -99,7 +100,7 @@ It appears that RefTeX is not configured to cooperate with
 AUCTeX.  Please configure it using the menus, save for future
 sessions, then press the finish button.")
         (customize-variable-other-window 'reftex-plug-into-AUCTeX)
-        (set (make-local-variable 'custom-buffer-done-kill) t)
+        (setq-local custom-buffer-done-kill t)
         (add-hook 'kill-buffer-hook #'exit-recursive-edit nil t)
         (recursive-edit)
         (select-window wizwin)
diff --git a/tex.el b/tex.el
index 0795e602..55f592df 100644
--- a/tex.el
+++ b/tex.el
@@ -1660,15 +1660,6 @@ For available TYPEs, see variable `TeX-engine'."
          (setq TeX-PDF-from-DVI nil))
         ((eq type 'omega) (TeX-PDF-mode 0))))
 
-(define-minor-mode TeX-Omega-mode
-  "Minor mode for using the Omega engine."
-  :init-value nil :lighter nil :keymap nil
-  :group 'TeX-command
-  (TeX-engine-set (if TeX-Omega-mode 'omega 'default)))
-(defalias 'tex-omega-mode #'TeX-Omega-mode)
-(make-obsolete 'TeX-Omega-mode #'TeX-engine-set "11.86")
-(make-obsolete-variable 'TeX-Omega-mode 'TeX-engine "11.86")
-
 ;;; Forward and inverse search
 
 (defcustom TeX-source-correlate-method
@@ -2867,7 +2858,7 @@ side effect for example on variable `TeX-font-list'.")
 
 (defun TeX-bibtex-set-BibTeX-dialect ()
   "Set `TeX-style-hook-dialect' to `:bibtex' locally to BibTeX buffers."
-  (set (make-local-variable 'TeX-style-hook-dialect) :bibtex))
+  (setq-local TeX-style-hook-dialect :bibtex))
 
 (defun TeX-load-style (style)
   "Search for and load each definition for STYLE in `TeX-style-path'."
@@ -3827,30 +3818,29 @@ Not intended for direct use for user."
   (setq indent-tabs-mode nil)
 
   ;; Ispell support
-  (set (make-local-variable 'ispell-parser) 'tex)
+  (setq-local ispell-parser 'tex)
 
   ;; Redefine some standard variables
   (make-local-variable 'paragraph-start)
   (make-local-variable 'paragraph-separate)
-  (set (make-local-variable 'comment-start) "%")
-  (set (make-local-variable 'comment-start-skip)
-       (concat
-        "\\(\\(^\\|[^\\\n]\\)\\("
-        (regexp-quote TeX-esc)
-        (regexp-quote TeX-esc)
-        "\\)*\\)\\(%+[ \t]*\\)"))
-  (set (make-local-variable 'comment-end-skip) "[ \t]*\\(\\s>\\|\n\\)")
-  (set (make-local-variable 'comment-use-syntax) t)
-  (set (make-local-variable 'comment-padding) " ")
+  (setq-local comment-start "%")
+  (setq-local comment-start-skip
+              (concat "\\(\\(^\\|[^\\\n]\\)\\("
+                      (regexp-quote TeX-esc)
+                      (regexp-quote TeX-esc)
+                      "\\)*\\)\\(%+[ \t]*\\)"))
+  (setq-local comment-end-skip "[ \t]*\\(\\s>\\|\n\\)")
+  (setq-local comment-use-syntax t)
+  (setq-local comment-padding " ")
   ;; Removed as commenting in (La)TeX is done with one `%' not two
   ;; (make-local-variable 'comment-add)
   ;; (setq comment-add 1) ;default to `%%' in comment-region
-  (set (make-local-variable 'comment-indent-function) #'TeX-comment-indent)
-  (set (make-local-variable 'comment-multi-line) nil)
+  (setq-local comment-indent-function #'TeX-comment-indent)
+  (setq-local comment-multi-line nil)
   (make-local-variable 'compile-command)
   (unless (boundp 'compile-command)
     (setq compile-command "make"))
-  (set (make-local-variable 'words-include-escapes) nil)
+  (setq-local words-include-escapes nil)
 
   ;; Make TAB stand out
   ;;  (make-local-variable 'buffer-display-table)
@@ -6132,21 +6122,6 @@ See also `TeX-font-replace' and 
`TeX-font-replace-function'."
 ;; Rewritten from scratch with use of `texmathp' by
 ;; Carsten Dominik <domi...@strw.leidenuniv.nl>
 
-;; The following variables are no longer used, but kept in case some
-;; foreign code uses any of them.
-(defvar TeX-symbol-marker nil)
-(defvar TeX-symbol-marker-pos 0)
-(defvar TeX-dollar-sign ?$)
-(defconst TeX-dollar-string (char-to-string TeX-dollar-sign))
-(defconst TeX-dollar-regexp
-  (concat "^" (regexp-quote TeX-dollar-string) "\\|[^" TeX-esc "]"
-          (regexp-quote TeX-dollar-string)))
-(make-obsolete-variable 'TeX-symbol-marker nil "AUCTeX 9.9d++")
-(make-obsolete-variable 'TeX-symbol-marker-pos nil "AUCTeX 9.9d++")
-(make-obsolete-variable 'TeX-dollar-sign nil "AUCTeX 9.9d++")
-(make-obsolete-variable 'TeX-dollar-string nil "AUCTeX 9.9d++")
-(make-obsolete-variable 'TeX-dollar-regexp nil "AUCTeX 9.9d++")
-
 (defcustom TeX-math-toggle-off-input-method t
   "If non-nil, auto turn off some input methods when entering math mode.
 See `TeX-math-input-method-off-regexp'."
@@ -8055,9 +8030,9 @@ Return the new process."
     (set-buffer buffer)
     (buffer-disable-undo)
     (erase-buffer)
-    (set (make-local-variable 'line-number-display-limit) 0)
+    (setq-local line-number-display-limit 0)
     (setq TeX-output-extension nil)
-    (set (make-local-variable 'TeX-command-buffer) command-buff)
+    (setq-local TeX-command-buffer command-buff)
     (if dir (cd dir))
     (insert "Running `" name "' on `" file "' with ``" command "''\n")
     (TeX-output-mode)
@@ -8334,7 +8309,7 @@ Error parsing on \\[next-error] should work with a bit of 
luck."
     (setq-default TeX-command-buffer command-buff)
     (with-output-to-temp-buffer buffer)
     (set-buffer buffer)
-    (set (make-local-variable 'TeX-command-buffer) command-buff)
+    (setq-local TeX-command-buffer command-buff)
     (setq buffer-read-only nil)
     (if dir (cd dir))
     (insert "Running `" name "' on `" file "' with ``" command "''\n")
@@ -9125,7 +9100,7 @@ original file."
          (header-end TeX-header-end)
          (trailer-start TeX-trailer-start)
 
-         ;; We seach for header and trailer in the master file.
+         ;; We search for header and trailer in the master file.
          (orig-buffer (current-buffer))
          (master-name (TeX-master-file TeX-default-extension))
          (master-buffer (find-file-noselect master-name))
@@ -10477,8 +10452,7 @@ warnings and bad boxes"
   "Major mode for viewing TeX output.
 \\{TeX-output-mode-map} "
   :syntax-table nil :abbrev-table nil :interactive nil
-  (set (make-local-variable 'revert-buffer-function)
-       #'TeX-output-revert-buffer)
+  (setq-local revert-buffer-function #'TeX-output-revert-buffer)
   ;; special-mode makes it read-only which prevents input from TeX.
   (setq buffer-read-only nil))
 
diff --git a/toolbar-x.el b/toolbar-x.el
index f8e8ae91..b1e8ec30 100644
--- a/toolbar-x.el
+++ b/toolbar-x.el
@@ -17,7 +17,8 @@
 ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
 ;; MA 02110-1301 USA
 
-;;; Author: Miguel Vinicius Santini Frasson
+;; Author: Miguel Vinicius Santini Frasson <fras...@math.leidenuniv.nl>
+;; Maintainer: auctex-devel@gnu.org
 
 ;;; Commentary:
 ;; This program implements a common interface to display toolbar
@@ -1432,8 +1433,7 @@ line of buttons.  The only property supported for this 
button is
     (if global-flag
         (setq-default toolbarx-internal-button-switches
                       switches)
-      (set (make-local-variable 'toolbarx-internal-button-switches)
-           switches)
+      (setq-local toolbarx-internal-button-switches switches)
       (make-local-variable 'tool-bar-map)))
   (toolbarx-refresh global-flag))
 

Reply via email to