texlive[59474] Master/texmf-dist: latex-dev (5jun21)

commits+karl at tug.org commits+karl at tug.org
Sat Jun 5 23:10:24 CEST 2021


Revision: 59474
          http://tug.org/svn/texlive?view=revision&revision=59474
Author:   karl
Date:     2021-06-05 23:10:24 +0200 (Sat, 05 Jun 2021)
Log Message:
-----------
latex-dev (5jun21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/README.md
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsbsy.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amscd.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsgen.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.tex
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsmath.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsopn.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amstext.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsxtra.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/subeqn.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/technote.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/testmath.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/README.md
    trunk/Master/texmf-dist/doc/latex-dev/base/alltt.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/changes.txt
    trunk/Master/texmf-dist/doc/latex-dev/base/classes.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/encguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/exscale.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/latexchanges.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/lb2.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/letter.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/lppl.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews33.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/manual.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/modguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/proc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/slides.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/source2e.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/tulm.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/usrguide3.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf
    trunk/Master/texmf-dist/doc/latex-dev/firstaid/changes.txt
    trunk/Master/texmf-dist/doc/latex-dev/firstaid/latex2e-first-aid-for-external-files.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/README.md
    trunk/Master/texmf-dist/doc/latex-dev/graphics/changes.txt
    trunk/Master/texmf-dist/doc/latex-dev/graphics/color.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/drivers.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/epsfig.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/graphics.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/graphicx.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/grfguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/keyval.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/lscape.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/rotating.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/rotex.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/trig.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/README.md
    trunk/Master/texmf-dist/doc/latex-dev/tools/afterpage.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/array.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/bm.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/calc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/changes.txt
    trunk/Master/texmf-dist/doc/latex-dev/tools/dcolumn.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/delarray.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/enumerate.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/fileerr.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/fontsmpl.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/ftnright.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/hhline.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/indentfirst.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/layout.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/longtable.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/multicol.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/rawfonts.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/shellesc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/showkeys.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/somedefs.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/tabularx.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/theorem.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/tools-overview.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/trace.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/varioref.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/verbatim.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/xr.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/xspace.pdf
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins
    trunk/Master/texmf-dist/source/latex-dev/base/doc.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltcmdhooks.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/lthooks.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltoutput.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltpara.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
    trunk/Master/texmf-dist/source/latex-dev/firstaid/firstaid.ins
    trunk/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/longtable.dtx
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsbsy.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amscd.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsgen.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath-2018-12-01.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstex.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstext.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsxtra.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/doc.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/fltrace.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/latex.ltx
    trunk/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty
    trunk/Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty
    trunk/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty
    trunk/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx
    trunk/Master/texmf-dist/tex/latex-dev/tools/longtable.sty

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/amsmath/README.md	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/doc/latex-dev/amsmath/README.md	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,7 +1,7 @@
 The amsmath bundle for LaTeX
 ============================
 
-Release 2021-05-01 pre-release 0
+Release 2021-12-01 pre-release 0
 
 Overview
 --------
@@ -77,5 +77,5 @@
 -----
 
 <p>Copyright (C) 2001-2004, 2007, 2008, 2010, 2011, 2013 American Mathematical Society. <br />
-<p>Copyright (C) 2016-2020 The LaTeX Project and American Mathematical Society. <br />
+<p>Copyright (C) 2016-2021 The LaTeX Project and American Mathematical Society. <br />
 

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsbsy.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/amscd.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsgen.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.tex	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.tex	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,6 +1,6 @@
 %
 % Copyright (C) 1995, 2000, 2013 American Mathematical Society.
-% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -12,7 +12,7 @@
 %
 % This work has the LPPL maintenance status `maintained'.
 %
-% The Current Maintainer of this work is the LaTeX3 Project.
+% The Current Maintainer of this work is the LaTeX Project.
 %
 \documentclass[leqno,titlepage,openany]{amsldoc}[1999/12/13]
 
@@ -63,7 +63,7 @@
 %    End definitions for amsldoc.cls
 
 \title{User's Guide for the \nipkg{amsmath} Package (Version~2.1)}
-\author{American Mathematical Society, \LaTeX3 Project}
+\author{American Mathematical Society, \LaTeX\ Project}
 \date{1999-12-13\\(revised 2002-02-25, 2016-11-14, 2018-04-05, 2019-10-14, 2020-02-18)}
 \makeatletter
 \def\@thanks{\bigskip\MaintainedByLaTeXTeam{amslatex}}

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsmath.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsopn.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/amstext.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsxtra.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt	2021-06-05 21:10:24 UTC (rev 59474)
@@ -3,12 +3,21 @@
 ================================================================================
 
 #########################
+# 2021-06-01 Release
+#########################
+
+2021-04-20  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* amsmath.dtx (subsection{Preliminary macros}):
+	Use \protected for \\ variant (gh/548)
+
+#########################
 # 2020-10-01 Release
 #########################
 
 2020/09/23 Ulrike Fischer <Ulrike.Fischer at latex-project.org>
 	* amsmath.dtx (subsection{Fractions}):
-	added \cs{Ustack} to \cs{frac} and \cs{genfrac} for luatex
+	added \Ustack to \frac and \genfrac for luatex
 	(moved patch from lualatex-math)
 	* amsmath.dtx (section{Array-related environments})
 	changed subarray for luatex: moved to version from lualatex-math

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/subeqn.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/technote.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/testmath.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/README.md	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/README.md	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,7 +1,7 @@
 The LaTeX kernel
 ================
 
-Release 2021-06-01 pre-release 3
+Release 2021-12-01 pre-release 0
 
 Overview
 --------

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/alltt.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/changes.txt	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/changes.txt	2021-06-05 21:10:24 UTC (rev 59474)
@@ -6,6 +6,50 @@
 are not part of the distribution.
 ================================================================================
 
+================================================================================
+All changes above are only part of the development branch for the next release.
+================================================================================
+
+#########################
+# 2020-06-01 Release
+#########################
+
+2021-05-31  David Carlisle  <David.Carlisle at latex-project.org>
+
+	* ltclass.dtx: Initialise \@raw at classoptionslist to \relax to
+	match \@classoptionslist
+
+2021-05-30  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* doc.dtx (subsection{Macros for the `documentation parts'}):
+	Use same error message text as in format
+
+2021-05-26  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltdefns.dtx (subsection{Robust commands and protect}):
+	Normalize error message in \MakeRobust
+
+2021-05-26  Phelype Oleinik  <phelype.oleinik at latex-project.org>
+
+	* lthooks.dtx:
+	Remove deprecated \DeclareDefaultHookLabel for good.
+
+2021-05-25  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* lthooks.dtx, ltfilehook.dtx:
+	Normalized some error message texts
+
+2021-05-24  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltcmd.dtx, ltcmdhooks.dtx, ltfilehook.dtx, lthooks.dtx, ltpara.dtx:
+	Use \msg_... instead of \__kernel_msg... commands for normalized
+	error and warning commands.
+
+2021-05-14  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltoutput.dtx: normalize the error commands, always use
+	\@latex at error not \@latexerr
+
 2021-04-29  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
 	* lthooks.dtx (subsection{\LaTeXe{} package interface commands}):
@@ -16,7 +60,6 @@
 	* lthooks.dtx, ltfilehook.dtx:
 	Switch to kernel (not package) errors.
 
-
 2021-04-29  Marcel Krüger  <Marcel.Krueger at latex-project.org>
 
 	* ltoutenc.dtx (subsection{Definitions for the TU encoding}):
@@ -359,11 +402,6 @@
 	* ltmiscen.dtx (subsection{Environments}):
 	\enddocument should always start out in vmode (gh/385)
 
-================================================================================
-All changes above are only part of the development branch for the next release.
-================================================================================
-
-
 #########################
 # 2020-10-01 PL 4 Release
 #########################

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/classes.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/encguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/exscale.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/latexchanges.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lb2.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/letter.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lppl.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews33.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews33.tex	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews33.tex	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright 2019-2020
+% Copyright 2019-2021
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -33,6 +33,16 @@
 \NeedsTeXFormat{LaTeX2e}[2020-02-02]
 
 \documentclass{ltnews}
+
+%%CCC  Temporary definitions:
+\providecommand\Dash {\unskip ---}
+
+
+
+%% NOTE:  Chris' preferred hyphens!
+%%\showhyphens{parameters}
+\hyphenation{because para-me-ters}
+
 \usepackage[T1]{fontenc}
 
 \usepackage{lmodern,url,hologo}
@@ -85,12 +95,25 @@
 \vbadness=1400  % accept slightly empty columns
 
 
+\makeatletter
+% maybe not the greatest design but normally we wouldn't have subsubsections
+\renewcommand{\subsubsection}{%
+   \@startsection      {subsubsection}{2}{0pt}{1.5ex \@plus 1ex \@minus .2ex}%
+      {-1em}{\@subheadingfont\colonize}%
+}
+\newcommand\colonize[1]{#1:}
+\makeatother
+
+\let\finalvspace\vspace          % for document layout fixes
+
+
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \providecommand\tubcommand[1]{}
 \tubcommand{\input{tubltmac}}
 
 \publicationmonth{June}
-\publicationyear{2021 --- Draft Version}
+\publicationyear{2021}  %% --- Draft Version 3p
 
 \publicationissue{33}
 
@@ -109,15 +132,17 @@
 
 \section{Introduction}
 
-The focus of the June 2020 release is to provide further important
-building blocks for producing reliable tagged PDF output in the future
-(see \cite{33:blueprint}), they are discussed in the next two
-sections. In addition we included a number of smaller enhancement and
-fixes that are outlined on the next pages. As usual, more detail can
-on individual changes can be found in the \texttt{changes.txt} files
-in the distribution and, of course, in the documented
-sources~\cite{33:source2e}.
+The focus of the June 2021 release is to provide further important
+building blocks for the future production of
+reliable tagged PDF output
+(see \cite{33:blueprint}); these enhancements
+are discussed in the next two
+sections. 
 
+Subsequent sections describe quite a number of recent smaller
+enhancements and fixes.  As usual, more detail on individual changes
+can be found in the \texttt{changes.txt} files in the distribution
+and, of course, in the documented sources~\cite{33:source2e}.
 
 
 
@@ -125,501 +150,679 @@
 
 Largely triggered by the need for better control of paragraph text
 processing, in particular when producing tagged PDF output, we have
-extended the paragraph processing of \LaTeX{} so that the kernel gains
-control both at the start and the end of each paragraph. This is done
-in a manner that is (or should be) transparent to packages and user
-documents.
+changed \LaTeX{} so that the kernel gains control both at the start
+and at the end of each paragraph. This is done in a manner that is (or
+should be) transparent to both packages and documents.
 
-Beside the internal control points for exclusive use of the \LaTeX{}
-kernel we also implemented four public hooks that can be used by
-packages or user via the hook management declarations to achieve
-special effects or implement manipulations that in the past were only
-possible through redefinitions of \cs{everypar} or \cs{par} with the
-usual issue that such changes would conflict with changes in other
-packages.
+Besides the addition of internal control points for the exclusive use
+of the \LaTeX{} kernel, we also implemented four public hooks that can
+be used in packages or documents (via the normal hook management
+declarations) to achieve special effects, etc.  Until now, such
+enhancements required redefinitions of \cs{everypar} or \cs{par},
+which led to the usual issues since such changes can easily conflict
+with changes made by other packages.
 
-The documentation of the hooks together with a few examples is
-provided in \file{ltpara-doc.pdf} and for those who want to study the
-(quite interesting) code is found in
-\file{ltpara-code.pdf}. Additionally it is included as part of the
-full kernel documentation in \file{source2e.pdf}.
+The documentation of these new \enquote{paragraph hooks}, together
+with a few examples, is in \file{ltpara-doc.pdf} and, for those who
+want to study it, the (quite interesting) code can be found in
+\file{ltpara-code.pdf}. Additionally, both of these files are included
+as part of the full kernel documentation in \file{source2e.pdf}.
 
 
 
 \section{Extending the hook concept to commands}
 
-Up to now the hook management covered hooks for a few core areas, such
-as hooks for the \cs{shipout} process or those in the \env{document}
-environment, as well as generic hooks for file loading (helpful for
-patching) and for arbitrary environments (executed by \cs{begin} and
-\cs{end}).
+Up to now, hook management covered hooks for only a few core areas,
+such as the hooks for the \cs{shipout} process or those in the
+\env{document} environment, as well as some \enquote {generic} hooks,
+both for file loading (helpful for patching such files) and for
+arbitrary environments (the hooks executed within \cs{begin} and
+\cs{end}).  This concept of \enquote{generic hooks} has now been
+extended to provide \hook{/before} and \hook{/after} hooks for any
+(document-level) command\Dash in theory at least.
 
-This has now been extended to add \hook{/before} and \hook{/after}
-hooks to any (document-level) command---in theory at that is.  In
-practice the new generic \hook{cmd} hooks, especially the
-\hook{cmd/.../after} hooks may fail with commands that are too complex
-to be automatically patched and break them if the hook is filled with
-code.  The restrictions are documented in \texttt{ltcmdhooks-doc.pdf}.
 
-However, given that these hooks are mainly meant for package
-developers to provide a better interoperability between different
-packages and between packages and the \LaTeX{} kernel, these
-restrictions are of minor importance: for commands where the mechanism
-can't be applied, one is in the same situation as before and for all
-others there will be a noticeable improvement.  This is especially
-important for our big project providing accessible and tagged PDF
-output~\cite{33:blueprint}, because for this we will eventually have
-to patch many third-party packages and this is only feasible, if it can
-be done in controlled and standardized ways.
+In practice, these new generic \hook{cmd} hooks, especially the
+\hook{cmd/.../after}, hooks may fail with commands that are too
+complex to be automatically patched, breaking if the hook contains any
+code.  These restrictions are documented in
+\texttt{ltcmdhooks-doc.pdf}.
+%   
+However, given that these hooks are mainly meant for developers who
+wish to provide better interoperability between different packages,
+and between packages and the \LaTeX{} kernel, these restrictions are,
+we hope, of minor importance.  Indeed, for commands where this
+mechanism can't be applied, one is in the same situation as before;
+and for all others there will be a noticeable improvement.
 
+These hooks will be especially important for our current project to
+provide accessible and tagged PDF output~\cite{33:blueprint} because
+we will eventually have to patch many third-party packages, and this
+must be done in controlled and standardized ways.
 
 
 
-\section{Other changes to the \LaTeX{} kernel}
 
-\subsection{Adjusting \env{itemize} labels with \cs{labelitemfont}}
+\section{Other hook business}
 
-The command \cs{labelitemfont} was in fact already introduced with the
-\LaTeX\ release 2020-02-02, but back then we forgot to describe it, so
-we do this now. Its purpose is to resolve some bad formatting issues
-with the \env{itemize} environment and at the same time make it easier
-to adjust its layout if necessary. What could happen in the past was the
-\env{itemize} labels, e.g., the \textbullet{}, would sometimes react to
-surrounding font changes and could suddenly change shape, for example
-to \textit{\textbullet}.
 
-Now \cs{labelitemfont} is applied to each
-label defaulting to \cs{normalfont} which will prevent this behavior.
-By choosing a different settings other effects can be achieved, for example
-\begin{verbatim}
-  \renewcommand\labelitemfont
-     {\normalfont\fontfamily{lmss}\selectfont}
-  \renewcommand\labelitemfont
-     {\rmfamily\normalshape}
-\end{verbatim}
-The first will take the symbols from Latin Modern Sans so that you get
-%
-\def\myfont#1{{\let\labelitemfont\empty\fontfamily{lmss}\selectfont#1}}
-%
-\myfont\labelitemi, \myfont\labelitemii, \myfont\labelitemiii\ and
-\myfont\labelitemiv, while the second variant freezes the font family
-and shape, but leave the series variable, so that an \env{itemize} in
-a bold context would show bolder symbols. Making it empty would give
-you the buggy old behavior back.
-%
-\githubissue{497}
+\subsection{Shipping out a page while bypassing hooks}
 
+In the 2020 October release, several hooks were added to control the
+process of constructing and shipping out a page box: these support,
+for example, the addition of background or foreground material 
+to some or all pages.
 
-\subsection{A note on file names with spaces, dots or UTF-8 characters}
+ 
+We have now added a command, called \cs{RawShipout}, which does not do
+any rebuilding of the page box and so does not run most of these
+hooks.  When using this new command, essential internal book-keeping
+is still carried out, such as updating the \texttt{totalpages} counter
+and adding \texttt{shipout/firstpage} or \texttt{shipout/lastpage}
+material when appropriate.
 
+
+\subsection{A new Lua callback in \pkg{ltshipout},
+for custom attributes}
+
+For use just before shipping out a page, there is now a \LuaTeX{}
+callback \texttt{pre\_shipout\_filter} to contain final adjustments to
+the box being shipped out.  This is particularly useful for
+Lua\TeX\ packages which flag (using, for example, attributes or
+properties) elements on a page in order to apply effects (such as the
+insertion of \enquote{color commands}) to these elements at shipout.
+
+
+
+\section{Improved handling of file names}
+
+\subsection[File names with spaces, multiple dots or\\
+            \acro{utf-8} characters]
+           {File names with spaces, multiple dots or \acro{utf-8} characters}
+
 In one of the recent \LaTeX{} releases we improved the interface
 for specifying file names so that they can now safely contain spaces
-(as is common on Windows but also elsewhere), UTF-8 characters
-outside the \acro{ascii} range as well as names with several dots in
-it. In the past this was only possible by applying a special syntax
-(in cases of spaces), not at all for most UTF-8 characters and
-not in all circumstances for files with several dots.
+(as is common these days),
+more than one dot character, and also \acro{utf-8} characters
+outside the \acro{ascii} range. 
+In the past this was only possible by applying a special syntax
+in the case of spaces, 
+while file names with several dots often failed, 
+as did most \acro{utf-8} characters.
 
-However, \TeX{} has a built-in rule saying that you can leave out the
-extension if it is \texttt{.tex}. Because of that \verb=\input{file}=
-or \verb=\input{file.tex}= both load \file{file.tex} if it
-exists. While this is convenient most of the time it is a little
-awkward in some scenarios (for example, when both \file{file} and
-\file{file.tex} exist) and also when you manually try to implement
-that rule.
 
+\subsubsection{Consequences for file names in \cs{include}}
+
+\TeX{} has a built-in rule saying that you can normally leave out the
+extension if it is \texttt{.tex}.  Thus \verb=\input{file}= and
+\verb=\input{file.tex}= both load \file{file.tex} (if it exists).
+While this is convenient most of the time, it is a little awkward in
+some scenarios (for example, when both \file{file} and \file{file.tex}
+exist) and also when you manually try to implement the rule.
+
 \LaTeX{} therefore had one special syntax for \cs{include} and
-\cs{includeonly}: they always expected that their arguments contains a
-file name\footnote{In case of \cs{includeonly} a comma separated list
-  of such names.} without its extension, which had to be
-\texttt{.tex}.  Thus when you mistakenly wrote
-\verb=\include{mychap.tex}= (for example, when you changed from \cs{input}
-to \cs{include} somewhere), \LaTeX{} went ahead and looked for the
-file \file{mychap.tex.tex} for inclusion and tried to write support
-information to the file \file{mychap.tex.aux}.  The reason was that
-\cs{include} had to construct both physical file names from the
-argument and it didn't bother to do something special about the
+\cs{includeonly}: they always expected that 
+their arguments contain a
+file name\footnote{In the case of \cs{includeonly}, a comma-separated list of such names.} 
+with no extension given,
+  so that it had to be \texttt{.tex}.  Thus,
+ when you mistakenly wrote
+\verb=\include{mychap.tex}= (for example,
+because you changed from \cs{input}
+to \cs{include}),
+\LaTeX{} went ahead and looked for the
+file \file{mychap.tex.tex} for inclusion and tried to
+use the file \file{mychap.tex.aux} for internal (auxiliary) information.  The reason was that
+\cs{include} had to construct both
+of these file names from the given
+argument and it didn't bother to do
+anything special
+with the supplied 
 extension \texttt{.tex}.
 
-As a side effect of the new implementation this has now changed and
-the argument of \cs{include} now gets the extension \texttt{.tex}
-removed if it was used. Thus \verb=\include{mychap.tex}= now loads
-\file{mychap.tex} and no longer looks for \file{mychap.tex.tex}.
+With the new implementation this has
+changed:
+the extension \texttt{.tex}
+now gets removed/ignored if it was
+supplied.
+Thus \verb=\include{mychap.tex}= now 
+no longer looks for \file{mychap.tex.tex} 
+but loads
+\file{mychap.tex} 
+and uses \file{mychap.aux}.
 %
 \githubissue{486}
 
 
-\subsection{\cs{end}\texttt{\textbraceleft document\textbraceright}
-  should always start in v-mode}
 
-Until now \verb=\end{document}= executed the code from the
-\cs{AtEndDocument} hook as its first action. This meant that it was
-executed in horizontal mode if the user left no empty line after the
-last paragraph.  As a result one could get a spurious space added, for
-example, when that code contained a \cs{write} statement. This was
-fixed and now \cs{enddocument} first issues a \cs{par} to ensure that
-it always starts out in vertical mode.
+\subsection{Normalization of robust commands in file names}
+
+The handling of file names has been modified so that \verb|\string| is
+applied to normalize robust commands within the file name.
+Previously, for example, \verb|\input{\sqrt{2}}| would cause
+\LaTeX\ to loop indefinitely whereas with 
+the new normalization
+it looks for the file named \verb|sqrt {2}.tex|
+(and therefore very likely reports ``file not found'').
 %
-\githubissue{385}
+\githubissue{481}
 
 
 
-\subsection{Allow extra space between name and address in \pkg{letter} class}
 
-The \cs{opening} command in the \pkg{letter} class expects the
-name and address to be separated by \verb=\\= but it didn't allow to
-use an optional argument at this point to add some extra space after
-the name. The coding has now been slightly altered to allow for this.
+\subsection{Fix for \env{filecontents} with \acro{utf-8} 
+  chars in the file name}
+
+Since a few releases back, the \env{filecontents} environment has
+allowed \acro{utf-8} characters in the file name.  There was, however,
+a bug that would not allow \emph{over}writing a file with \acro{utf-8}
+characters in its name.  This has been fixed and now
+\env{filecontents} allows any characters in the file name.
 %
-\githubissue{427}
+\githubissue{415}
 
 
-\subsection[Add a Lua callback to \pkg{ltshipout} to provide
-  a uniform location for applying custom attributes]
-           {Add a Lua callback to \pkg{ltshipout} to provide
-             a uniform
-             \mbox\quad location for applying custom attributes}
 
-Just before shipping out a page, a new \LuaTeX{} callback
-\texttt{pre\_shipout\_filter} is now called to allow final
-adjustments to the box to be shipped out. This is particularly for
-Lua\TeX\ packages which flag certain elements of the page (e.g. using
-attributes or properties) in order to apply certain effects to these
-elements at shipout. An example for this is the \pkg{luacolor}
-package which could insert the color commands using this callback.
+\section{Updates to the font selection scheme}
 
 
+\subsection{A new hook in \cs{selectfont}}
 
-\subsection{Improved copy\,\&\,paste support for \pdfTeX{} documents}
-
-When compiling with \pdfTeX{}, additional information is added to the
-PDF file to improve copying from and searching in text. This especially
-allows ligatures to copy correctly from \pdfTeX{} generated PDF files in
-most cases.
-
-Since this has been integrated into the kernel, most documents should no
-longer need to load the \pkg{cmap} package or input \texttt{glyphtounicode}.
+After \cs{selectfont} has changed the font, we now run a hook (\hook{selectfont})
+so that packages can make final \mbox{adjustments}. This functionality was
+originally provided by the \pkg{everysel} package but our
+implementation is slightly different and uses the standard hook
+management.
 %
-\githubissue{465}
+\githubissue{444}
 
 
-\subsection{Provide a hook in \cs{selectfont}}
+\subsection{Change of font series/shape delayed until \cs{selectfont}}
 
-After \cs{selectfont} has altered the font we run a hook so that
-packages can make final adjustments. This functionality was originally
-provided by the \pkg{everysel} package, the new implementation is
-slightly different and uses the standard hook management.
+With the NFSS extensions introduced in 2020, the font series and shape
+settings can be influenced by changes to the font family.  The
+settings of these two are now therefore delayed until \cs{selectfont}
+is executed; this avoids unnecessary or incorrect substitutions that
+may otherwise happen due to the order of declarations.
 %
 \githubissue{444}
 
 
-\subsection{Delay change of font series and shape to \cs{selectfont} call}
 
-With the NFSS extensions introduced in 2020 the font series and shape
-settings can be influenced by changes to the font family. The setting
-is therefore delayed until \cs{selectfont} is executed to avoid
-unnecessary or incorrect substitutions that may otherwise happen due
-to the order of declarations.
+\section{Glyphs, characters \& encodings}
+
+\subsection{Improved copy\,\&\,paste for \pdfTeX{} documents}
+
+When compiling with \pdfTeX{}, additional information
+(from the file \texttt{glyphtounicode.tex}) is now added automatically
+to the PDF file in order to improve copying from, and searching in,
+text.
+
+In particular, this allows the most common ligatures to be copied as
+intended from all generated PDF files without the need to explicitly
+load the package \pkg{cmap}.  
 %
-\githubissue{444}
+\githubissue{465}
 
 
 
-\subsection{Allow \cs{nocite} in preamble}
 
-A natural place for \verb=\nocite{*}= would be the preamble of the
-document, but for historical reasons \LaTeX{} issued an error message
-if it was placed there. From the new release on it is now allowed in
-the preamble.
+
+\subsection{Support for more Unicode characters}
+
+
+\LaTeX\ is quite capable of typesetting characters such as
+\enquote{\d{m}}, but until now it could not access some Unicode
+characters from the Latin Extended Additional block.  This meant that,
+for example, there were no Unicode mappings for some characters that
+are used to write Sanskrit words in Latin transliteration (as seen in
+books about yoga, Buddhist philosophy, etc.).
 %
-\githubissue{424}
+These characters have now been added so that they can be entered
+directly instead of using \verb=\d{m}=, etc.
+%
+\githubissue{484}
 
 
 
-\subsection{Shipping out a page while bypassing hooks}
 
-In the 2020 October release several hooks were added to the page
-shipout process, e.g., to add some background or foreground material
-to some or all pages. We now also added a \cs{RawShipout} command that
-bypasses most of these hooks during the shipout. Some essential
-internal bookkeeping still takes place such as updating the
-\texttt{totalpages} counter or adding \texttt{shipout/firstpage} or
-\texttt{shipout/lastpage} material if the page happens to be the first
-or last.
 
-\subsection{Robust commands in filename arguments}
-The filename handling has been modified so that \verb|\string| is
-applied while normalizing robust commands while determining the file
-name.  Previously \verb|\input{\sqrt{2}}| would cause \LaTeX\ to loop indefinitely.
-With the new behavior it accesses \verb|sqrt {2}.tex|.
+\subsection{More ``dashes'' in encodings \texttt{OT1},
+  \texttt{T1} and \texttt{TU}}
+
+When pasting in text from external sources, one can encounter these
+three Unicode characters
 %
-\githubissue{481}
+\texttt{"2011} (non-breaking hyphen),
+\texttt{"2012} (figure dash) and
+\texttt{"2015} (horizontal bar),
+%
+in addition to the more common 
+%
+\texttt{"2013} (en-dash) and \texttt{"2014} (em-dash).
+%
+In the past, these first three produced an error message when used
+with \pdfTeX{} (since they are not available in \texttt{OT1} or
+\texttt{T1} encoded fonts).  They now typeset an approximation to the
+glyph: e.g., the ``figure dash'' is approximated by an en-dash.
 
+With Unicode engines they either work (when the glyph is contained in
+the selected Unicode font) or they typeset nothing, producing a
+``Missing character'' warning in the log file.
 
-\subsection[Additional support for Unicode characters from the
-  Latin Extended Additional block]
-           {Additional support for Unicode characters from the Latin\\
-             \mbox\quad Extended Additional block}
-
-\LaTeX\ is quite capable of typesetting characters such as
-\enquote{\d{m}}, but until now it lacked the Unicode mappings for some
-characters that are used to write Sanskrit words in Latin
-transliteration (as seen in books about yoga, Buddhist philosophy,
-etc.). These have now been added so that such characters can be
-entered directly instead of resorting to \verb=\d{m}= and so forth.
+With all engines these characters can also now be accessed using the
+command names \cs{textnonbreakinghyphen}, \cs{textfiguredash} and
+\cs{texthorizontalbar}, respectively.
 %
-\githubissue{484}
+\githubissue{404}
 
 
+\subsection{Poor man's \cs{textasteriskcentered}}
 
-\subsection{Always have color groups set up}
+The \cs{textasteriskcentered} symbol, used as part of the set of
+footnote symbols in \LaTeX{}, is assumed to be implemented by every
+font with the \texttt{TS1} encoding (when \pdfTeX{} is used) or with
+the \texttt{TU} encoding for the Unicode engines.  That assumption is
+unfortunately not correct for all fonts since, for example, the
+\texttt{stix2} fonts don't provide this glyph.  A result is that one
+gets missing glyph messages when using \cs{thanks}, etc.
 
-To use color in \LaTeX{} certain constructs, especially boxes, need an
-extra layer of groups to ensure that the color setting does not
-\emph{escape} and continue outside the box when it shouldn't. To
-arrange for this the \LaTeX{} kernel defined a number of commands, e.g.,
-\cs{color at begingroup} to be used in such places. They have been
-initially no-ops and only the color packages redefined them to become
-real groups. This arrangement complicates the coding as one has to
-account for a group being there (or not there) depending of what is
-loaded in the document. So now the kernel already adds the groups.
+Therefore \cs{textasteriskcentered} now checks whether there is such a
+glyph and, if not, uses a normal \enquote{*}, but slightly enlarged
+and lowered.  This may not be perfect in all cases, but it is
+certainly better than no glyph showing up.
 %
-\githubissue{488}
+\githubissue{502}
 
+\subsection {The characters from \pkg{textcomp} are in the kernel}
 
-\subsection{Execute \cs{par} at the end of \cs{marginpar} arguments}
+A couple of releases back, the functionality of the \pkg{textcomp}
+package was integrated into the \LaTeX{} kernel.  Thus it is no longer
+necessary to load this package in order to access glyphs such as
+\cs{textcopyright}, \cs{texteuro} or \cs{textyen}.
+ 
+ 
+At this time the opportunity was also taken to bring some order to the
+chaos surrounding the question: \enquote{which glyphs from the
+  \texttt{TS1} encoding are available in a given font?}.  This was
+done using an approach based on font families and collections, with
+the differing glyph coverage of the \enquote*{text symbols} being
+indicated by assigning to a font family or collection a ``sub-encoding
+number'' that indicates which glyphs from the \texttt{TS1} encoding are
+guaranteed to be available when using a font from that family or
+collection. This assignment ensures that \LaTeX{} always errs on the
+side of caution, possibly claiming that a glyph is not available even
+when it in fact is.
 
-In preparation for tagged PDF it is important to properly tag all
-paragraphs and this requires running code at the beginning and end of
-each. At the end of a paragraph this is done inside the \cs{par}
-command, but the way \cs{marginpar} was coded, \LaTeX{} ended the
-marginal note without ever explicitly calling \cs{par}. This has now
-been changed.
+\iffalse  %%FMi but drop that
 
-Another case where this issue caused problems was the \pkg{lineno}
-package where the last line was not numbered if the \cs{marginpar}
-ended without a \cs{par} in the document.
+The documented code for this can be found now in the file 
+\file{lttextcomp.dtx} but we hope to publish a full explanation of 
+the approach very soon now. 
+
+\fi  %% FMi potential drop
+
+
+
+\subsubsection
+   [A note on the history of ``text symbols'']
+   {A note on the history of ``text symbols'' and
+     the  \texttt{TS1} encoding}
+
+
+The \enquote{text symbol encoding} (\texttt{TS1}) was originally
+designed at the Cork Conference as a companion to the \texttt{T1}
+encoding. In it various symbols that are not subject to hyphenation
+got assembled and the \pkg{textcomp} package was developed to make
+them accessible. Unfortunately the \TeX{} community was a bit too
+enthusiastic and included several symbols only available in a few
+\TeX{} fonts and some, such as the capital accents, not available at
+all but developed as part of the reference font implementation.
+
+In hindsight that was a very bad idea because it meant that other
+existing fonts (at the time) and later new fonts that got developed
+were unable to provide the full set of glyphs that made up the
+\texttt{TS1} encoding. For existing free PostScript fonts people 
+took the extra effort and produced virtual fonts that faked (some) of
+the missing glyphs. But this was and is a time-consuming effort so it
+was done for only a few basic fonts. But even then, only some fonts
+included all glyphs from \texttt{TS1} so the \pkg{textcomp} already
+back then contained a long list, dividing fonts into 5 categories
+according to which glyphs were implemented and which were missing.
+
+
+When we recently integrated the functionality of the \pkg{textcomp}
+into the \LaTeX{} kernel
+many new free fonts had appeared and
+unfortunately the chaos around the question \enquote{which glyphs of
+  the \texttt{TS1} encoding are implemented by which font} had
+increased with it. Not only did one find many new holes, it was next to
+impossible to order the set of fonts into a reasonable set of
+sub-encodings that are contained in each other in a single sequence.
+
+In the end we decided on nine or ten sub-encodings with a reasonable
+number of fonts in each so that all fonts implemented all glyphs of the
+sub-encoding they got mapped to. Thus when typesetting with a font one
+could be sure that a command like \cs{textcopyleft} would either
+typeset the requested character (if the glyph was part of the
+sub-encoding the font belonged to) or it would raise an error, saying
+that the glyph is unavailable in that font.  The mapping would ensure
+that \LaTeX{} always errs on the side of caution, because it might
+claim a glyph is unavailable even though in fact it is.\looseness-1
+
+For example, the old \texttt{pcr} (PostScript Courier) font (as well
+as most other older PS fonts) is mapped to sub-encoding 5 and
+therefore claims that \cs{textasciigrave} is unavailable even though
+in fact for Courier this is not true. If one uses such a font and this
+becomes an issue then there are a couple (suboptimal) possibilities.
+For one, one can alter the mapping of Courier and pretend that belongs
+to a fuller sub-encoding, e.g.
+\begin{verbatim}
+  \DeclareEncodingSubset{TS1}{pcr}{2}
+\end{verbatim}
+The downside is, that \LaTeX{} then believes other glyphs that are in fact
+unavailable are also there, so that it is important to check that the
+final document doesn't have some missing glyphs.
+
+An alternative is to pretend that \cs{textasciigrave} can always be
+taken from the \texttt{TS1} encoding (no questions asked):
+\begin{verbatim}
+  \DeclareTextSymbolDefault{\textasciigrave}{TS1}
+\end{verbatim}
+Again there is a danger that this is not true when it is used with a
+different font and would then generate a missing glyph.
+
+Finally, and possibly the best solution, if not impossible for other
+reasons, is to simply use a different font, for example, to use the
+\TeX{} Gyre Cursor font (a reimplementation of Courier with a
+much more complete glyph set).
+
+
+
+
+\section{New or improved commands}
+
+\subsection{Adjusting \env{itemize} labels with \cs{labelitemfont}}
+
+The command \cs{labelitemfont} was introduced already with the
+\LaTeX\ release 2020-02-02, but back then we forgot to describe it, so
+we do this now. Its purpose is to resolve some bad formatting issues
+with the \env{itemize} environment and also to make it easier to
+adjust the layout when necessary. What could happen in the past was
+that the \env{itemize} labels (e.g., the \textbullet{}) would
+sometimes react to surrounding font changes and could then suddenly
+change shape, for example to \textit{\textbullet}.
+
+This new command \cs{labelitemfont}, which defaults to \cs{normalfont}, 
+can be used to provide additional control in the typesetting of
+each label.  Thus by choosing
+different settings other effects can be achieved.  Here are two
+examples:
+\begin{verbatim}
+  \renewcommand\labelitemfont
+     {\normalfont\fontfamily{lmss}\selectfont}
+  \renewcommand\labelitemfont
+     {\rmfamily\normalshape}
+\end{verbatim}
+The first definition will take the symbols from the font Latin Modern
+Sans, so that you get
 %
-\githubissue{489}
+\def\myfont#1{{\let\labelitemfont\empty\fontfamily{lmss}\selectfont#1}}%
+%
+\myfont\labelitemi, \myfont\labelitemii, \myfont\labelitemiii\ and
+\!\!\myfont\labelitemiv\,; while the second variant freezes the font family
+and shape, but leaves the series as a variable quantity, so that an
+\env{itemize} in a bold context would show bolder symbols. Making
+\cs{labelitemfont} empty would give you back the buggy old behavior.
+%
+\githubissue{497}
 
 
+\subsection{Producing several marks for one footnote}
 
-\subsection{Producing several footnote marks to one footnote}
+It is sometimes necessary to reference the same footnote several
+times: i.e., to produce several footnote marks using the same number
+or symbol. This is now easily possible by placing a \cs{label} within
+the referenced \cs{footnote} and referencing this label by using the
+new command \cs{footref}.  This means that footnote marks can be
+generated to refer to arbitrary footnotes (including those in
+\texttt{minipage}s).
 
-It is sometimes necessary to reference the same footnote several
-times, i.e., produce several footnote marks with the same number or
-symbol. This is now always possible by placing a \cs{label} into the
-\cs{footnote} and reference it with the command \cs{footref}
-elsewhere.  This way marks referring to footnotes anywhere on the page
-(including those in \texttt{minipage}s) can be generated.  In the past
-this command was only available with certain classes or when loading
-the \pkg{footmisc} package.
+This \cs{footref} command has previously been available, but only when
+using certain classes or the \pkg{footmisc} package.
 %
 \githubissue{482}
 
 
+\subsection{Allow \cs{nocite} in the preamble}
 
-\subsection[Providing the raw option list of packages or documentclass
-  to key/value handlers]
-           {Providing the raw option list of packages or documentclass\\
-  \mbox\quad to key/value handlers}
+A natural place for \verb=\nocite{*}= would be the preamble of the
+document, but for historical reasons \LaTeX{} issued an error message
+if it was placed there.  This command is now allowed in the preamble.
+%
+\githubissue{424}
 
-\LaTeXe{} has always normalized space in option lists so\\
-\verb|\documentclass[ a4paper , 12pt ]{article}|\\
-processed the intended options \texttt{a4paper} and \texttt{12pt}.
 
-Unfortunately the mechanism used was designed for the simple option
-names of the standard option processing.  Many classes and packages 
-now use extended \emph{keyval} processing, however this white space
-normalization makes this difficult:
-\verb|[bb=1 2 3 4]|
-which might be expected to pass a bounding box of four numbers is
-normalized to \texttt{bb=1234} and
-\verb|[bb={1 2 3 4}]|\\
-which might be expected to quote the spaces results in low level \TeX{}
-parsing errors.
+\subsection{Made \cs{\textbackslash} generally robust}
 
+In 2018 most \LaTeX{} user-level commands were made robust, including
+the \cs{\textbackslash} command.  However, \cs{\textbackslash} gets
+redefined in various environments and not all these cases were caught:
+such as, in particular, its use as the row delimiter in \env{tabular}
+structures.  This has been corrected so that \cs{\textbackslash}
+should now be robust in all circumstances.
 
-For compatibility reasons, the standard option processing has not been
-changed however the original un-normalized package and class option lists
-are now saved. They are not used in the standard processing, however
-extended package option systems may use these \enquote{raw} option list
-macros if they are defined.
 
-The one change affecting the standard processing is that the low level
-error mentioned above is now avoided as values (any tokens to the
-right of an = sign) are removed from consideration from the
-\enquote{unused option list}.  In this release \texttt{clip=true} and
-\texttt{clip=false} both contribute \texttt{clip} to the list of
-options that have been used.
+This change also fixed one anomaly present in the past:
+in a tabular preamble of the form
+\finalvspace*{-.3\baselineskip}
+\begin{quote}
+  \hspace*{-.15em}\verb={l=\texttt{\string>}\verb={\raggedright}p{10cm}r}=    % stupid class
+\end{quote}
+\finalvspace*{-.3\baselineskip}
+a \cs{\textbackslash} in the second column would have the definition
+used within \cs{raggedright} and so it would not indicate the
+(premature) end of the \env{tabular}.  Thus, for example,%
+\finalvspace*{-.3\baselineskip}
+\begin{quote}
+   \verb=a & b1 \\ b2 & c \\=
+\end{quote}
+\finalvspace*{-.3\baselineskip}
+was interpreted as a single row of the \env{tabular} (as intended),
+whereas
+\finalvspace*{-.3\baselineskip}
+\begin{quote}
+   \verb=a &    \\ b2 & c \\=
+\end{quote}
+\finalvspace*{-.3\baselineskip}
+resulted in two rows!  This happened because the \cs{\textbackslash}
+directly following the \verb=&= got interpreted while it still had the
+\enquote{end the row} meaning and not yet the \enquote{start a new
+  line within the second column} meaning.
+
+With \cs{\textbackslash} now being robust, the special scanning mode
+initiated by the \verb=&= ends immediately when this command is seen:
+the second column is therefore then started, which results in the
+\cs{\textbackslash} being interpreted as being within that column and
+hence as having its expected, within-column, meaning.
+
+We have restored consistency here: now both of the above lines
+produce a single \env{tabular} row.
 %
-\githubissue{85}
+As before, you can 
+put \cs{raggedright}\cs{arraybackslash} in the \env{tabular}'s
+preamble for a column to ensure that \cs{\textbackslash} is always
+interpreted as a tabular row separator when used in that column. And
+you can use \cs{tabularnewline} to explicitly ask for a new table row,
+even when \cs{\textbackslash} has a different meaning within the
+current column.
+%
+\githubissue{548}
 
 
 
-\subsection{Poor man's \cs{textasteriskcentered} if missing}
 
-The \cs{textasteriskcentered} symbol, used as part of the set of
-footnote symbols in \LaTeX{}, is assumed to be implemented by
-every font in the \texttt{TS1} encoding (when \pdfTeX{} is used) or
-in the \texttt{TU} encoding for the Unicode engines. Unfortunately,
-that assumption is not correct for all fonts, for example, for the
-\texttt{stix2} fonts don't offer the glyph, with the result that one
-gets missing glyphs when using \cs{thanks} etc.
+\subsection{Allow extra space between name and address in \pkg{letter} class}
 
-For that reason the definition for \cs{textasteriskcentered} was
-altered to check if there is a glyph in the right position and if not
-a normal \enquote{*} is used, slightly enlarged and lowered.  That may
-not be perfect in all cases, but certainly better than nothing show
-up.
+The \cs{opening} command in the \pkg{letter} class expects the name
+and address to be separated by \verb=\\=, but it didn't allow the use
+of an optional argument to add some extra space after the name. The
+code has now been slightly altered to allow this.
 %
-\githubissue{502}
+\githubissue{427}
 
 
 
-\subsection{Provide more ``dashes'' in encodings \texttt{OT1},
-  \texttt{T1} and \texttt{TU}}
+\subsection{Additions to \cs{tracingall}}
 
-When pasting in text from external sources one sometimes encounters
-the Unicode characters
+In July 2020 David Jones suggested an extension to \TeX{} engines,
+that added the possibility to set \cs{tracinglostchars}\texttt{=3} in
+order to generate an error message in case some character is missing
+from a font.  In previous years, a warning about a missing character
+was silently printed to the \texttt{.log} file\linebreak
+(if $\cs{tracinglostchars}>0$) and to the terminal\linebreak
+ (if ${}>1$).  This extension was added for \TL{} and \MiKTeX{} 
+(except in Knuth's \TeX, of course), 
+so that with $\cs{tracinglostchars}>2$ you now also get an
+error message for each missing glyph.
+
+Later, in January 2021, Petr Olšák suggested yet another extension:
+a new primitive
+\mbox{parameter}
 %
-\texttt{"2011} (non-breaking hyphen),
-\texttt{"2012} (figure dash) and
-\texttt{"2015} (horizontal bar)
+\cs{tracingstacklevels} that, when both it and \cs{tracingmacros} are
+positive, will add to the \mbox{tracing} information for each 
+macro a visual indication (using dots) of
+its nesting level in the macro expansion stack.
+
+These changes have both now been added to \LaTeX's debugging macros
+\cs{tracingall} and \cs{tracingnone}, so that these two new extensions
+are activated/deactivated as appropriate, so long as the \TeX{} engine
+supports them.  An example document demonstrating these parameters is
+in the linked GitHub issue.
 %
-in addition to the common \texttt{"2013} (en-dash) and \texttt{"2014}
-(em-dash). In the past the first three characters produced an error
-message when used with \pdfTeX{}. Now they typeset an approximation
-(as they are unavailable in \texttt{OT1} or \texttt{T1} encoded fonts
-used by \pdfTeX{}), e.g., the figure dash is approximated by an en-dash.
+\githubissue{524}
 
-In Unicode engines they either work (if contained in the selected
-Unicode font) or typeset nothing and produce a ``Missing character''
-warning in the log file.
 
-However, what works in all engines now, is to access the characters
-via the command names \cs{textnonbreakinghyphen}, \cs{textfiguredash}
-and \cs{texthorizontalbar}, respectively.
-%
-\githubissue{404}
 
 
+\section{Code improvements}
 
-\subsection{\env{filecontents} with \acro{utf-8} characters in file name}
+\subsection{Execute \cs{par} at the end of \cs{marginpar}}
 
-Since a few releases back, the \env{filecontents} environment allows writing a
-file with \acro{utf-8} characters in its name.  However there was a bug that
-would not allow \emph{over}writing a file with \acro{utf-8} characters in the
-name.  This has been fixed and now \env{filecontents} allows any characters in
-the file name.
+Previously, \LaTeX{} ended a \cs{marginpar} without ever explicitly
+calling \cs{par}.  This command is now explicitly added because it is
+essential to the correct working of the paragraph hooks.
+
+Another case where this issue caused problems was the \pkg{lineno}
+package, where the last line was not numbered if the \cs{marginpar}
+ended without an explicit \cs{par}.
 %
-\githubissue{415}
+\githubissue{489}
 
 
 
-\subsection{Extending \pkg{latexrelease} to declare an entire module}
+\subsection{Execute \cs{AtEndDocument} hook in vertical mode}
 
-In the 2020-10-01 release, \LaTeX's new hook management system was added to the
-kernel (see \cite{33:ltnews32}) and, as with all changes to the kernel, it was
-added to \pkg{latexrelease}, so that it is possible to roll back to a date where
-such module didn't exist yet, or roll forward from an older release and have the
-hook management system by loading the \pkg{latexrelease} package.
+Until now \verb=\end{document}= executed the code from the
+\cs{AtEndDocument} hook as its first action.  This meant that this
+hook was executed in horizontal mode if the user left no empty line
+after the last paragraph.  As a result, one could get a spurious space
+added when, for example, that code contained a \cs{write}
+statement. This was fixed and now \cs{enddocument} first issues a
+\cs{par} to ensure that it always goes into vertical mode.
+%
+\githubissue{385}
 
-However rolling back from a later release to the 2020-10-01 release didn't quite
-work because it would try to define all the commands from \pkg{lthooks} again,
-and that would result in errors, as usual with commands defined with
-\cs{newcommand} or in the case of \pkg{lthooks}, \cs{cs\_new:Npn}.
 
-To solve this issue, now completely new modules can be defined in
-\pkg{latexrelease} using \cs{NewModuleRelease}
-and then when rolling back or forward it will know if the code
-of the module has to be read or completely ignored.  More details can be
-found in the \pkg{latexrelease} documentation (\verb|texdoc latexrelease|).
+\subsection{Color groups made permanent}
+
+The use of color in certain \LaTeX{} constructs, especially boxes,
+needs an extra layer of grouping to ensure that the color setting does
+not \emph{escape} and continue outside the box when it shouldn't.
 %
-\githubissue{479}
+To support this, the \LaTeX{} kernel defines a number of commands,
+e.g., \cs{color at begingroup} to be used in such places.
 
 
+Until now, these commands were initially set as no-ops and only the
+color packages redefined them to become real groups; this methodology
+complicates the coding as one has to account for a group being present
+or not (\mbox{depending} on what is loaded in the document).
+%
+The kernel therefore now permanently adds these \enquote{color groups}.
+%
+\githubissue{488}
 
-\subsection{Small fix for rolling back prior to 2020-02-02}
 
-Whereas the \pkg{latexrelease} package can usually emulate an older \LaTeX{}
-kernel without much problem, rolling back to before the 2020-02-02 release
-didn't work properly because the management of the \cs{ExplSyntaxOn/Off} status
-for packages cannot be removed by the rollback without messing up catcodes after
-an \pkg{expl3}-based package is loaded.  This has been fixed and now rollback is
-more careful not to leave \pkg{ExplSyntaxOn} after a package ends.
-%
-\githubissue{504}
+\subsection{Provide the raw option list to key/value option handlers}
 
+Before any further processing of the option list, the original
+(un-normalized, \enquote{raw} and unchanged) list of package or class
+options is now saved, as \cs{@raw at opt@...}; this list is not used by
+the standard option processing code but it is now available for use by
+extended class/package processing systems.  Note that, for
+compatibility reasons, the standard option processing code has not
+been changed.
 
 
-\subsection[Add \cs{tracingstacklevels}
-  and \cs{tracinglostchars}\texttt{=3} to \cs{tracingall}]
-           {Add \cs{tracingstacklevels}
-             and \cs{tracinglostchars}\texttt{=3}\\
-             \mbox\quad to \cs{tracingall}}
 
-In July 2020 David Jones suggested an extension to \TeX{} engines, that
-added the possibility to set \cs{tracinglostchars}\texttt{=3} to have an
-error in case some character is missing from a font.  In previous years,
-the warning for a missing character would be silently printed to the
-\texttt{.log} file (if $\cs{tracinglostchars}>0$) and to the terminal
-(if ${}>1$).  This extension was added for \TL{} and \MiKTeX{} (except
-in Knuth's \TeX, of course) and now with $\cs{tracinglostchars}>2$ you
-get an error on a missing glyph.
+One
+aspect of this
+change does affect the standard \mbox{processing}: any tokens to the
+right of an \texttt{=}
+sign are \mbox{removed} 
+from consideration
+when constructing 
+the \enquote{\mbox{unused} option list}.
+For example, in 
+this release \texttt{clip=true} and
+\texttt{clip=false} both contribute \texttt{clip} to the list of
+options that have been used.
+%
+\githubissue{85}
 
-Later, in January 2021, Petr Olšák suggested yet another extension, a
-new primitive parameter \cs{tracingstacklevels} that, when positive (and
-when \cs{tracingmacros} is also positive), will print a visual
-indication of the macro nesting level in \TeX's tracing information.
 
-Both these changes were incorporated to \LaTeX's debugging macros
-\cs{tracingall} and \cs{tracingnone}, so when you use them, the new
-extensions are automatically activated/deactivated if your \TeX{}
-distributions has a recent enough engine.  An example document
-demonstrating these parameters is available in the linked GitHub issue.
+\subsection{New for \pkg{latexrelease}\,: \cs{NewModuleRelease}}
+
+To explain the need for this new feature, we shall consider the
+following example: in the 2020-10-01 release, \LaTeX's new hook
+management system was added to the kernel (see \cite{33:ltnews32})
+and, as with all changes to the kernel, it was added to
+\pkg{latexrelease}; this made it possible to roll back to a date where
+this module didn't yet exist, or to roll forward from an older
+\LaTeX{} release to get the hook management system (by loading the
+\pkg{latexrelease} package).
 %
-\githubissue{524}
+However, this method of rolling back from a later release to the
+2020-10-01 release didn't quite work because it would try to define
+all the commands from \pkg{lthooks} again; and this would of course
+result in the expected errors from commands defined with
+\cs{newcommand} or (as in \pkg{lthooks}) \cs{cs\_new:Npn}.
 
+To solve such issues, we now provide \cs{NewModuleRelease} so that
+completely new modules can be defined using the facilities of
+\pkg{latexrelease} in such a way that, when rolling back or forward,
+the system will know whether the code of the new module has to be read
+or completely ignored.  More details on this can be found in the
+\pkg{latexrelease} documentation (get this with
+\verb|texdoc latexrelease|).
+%
+\githubissue{479}
 
-\subsection{Make \cs{\textbackslash} generally robust}
 
-In 2018 most \LaTeX{} user-level commands were made robust including
-\cs{\textbackslash}. However, \cs{\textbackslash} is redefined in
-various environments and not all cases were caught, in particular its use as row
-delimiter in \env{tablular} structures. This has now been corrected and
-\cs{\textbackslash} should be robust in all standard
-circumstances. Doing that also fixed one anomaly present in the past:
-in a tabular preamble of the form
-\begin{quote}
-  \verb={l=\texttt{\string>}\verb={raggedright}p{10cm}r}=           % stupid class
-\end{quote}
-a \cs{\textbackslash} in the second column would have the definition
-used by \cs{raggedright} and would not indicate the (premature) end of
-the \env{tabular}, e.g.,
-\begin{quote}
-   \verb=a & b1 \\ b2 & c \\=
-\end{quote}
-would be a single row in that \env{tabular}. However, writing
-\begin{quote}
-   \verb=a &    \\ b2 & c \\=
-\end{quote}
-would give you two rows: due to the scanning process the
-\cs{\textbackslash} directly following the \verb=&= still had
-the \enquote{end the row} meaning and not the \enquote{start a new
-  line in the second column} meaning.
+\subsection{Small fix for rolling back prior to 2020-02-02}
 
-With \cs{\textbackslash} now robust, the scanning after \verb=&= ends
-when the command is seen and the second column is started and so now
-both lines above consistently produce a single \env{tabular} row.
-
-As before, you can use \cs{raggedright} \cs{arraybackslash} in the
-\env{tabular} preamble to ensure that \cs{\textbackslash} is always
-interpreted as a row separator when used in the column or you could
-use \cs{tabularnewline} to explicitly ask for a new row even when
-\cs{\textbackslash} has a different meaning in the current column.
+Whereas the \pkg{latexrelease} package can usually emulate an older
+\LaTeX{} kernel without much problem, rolling back to before the
+2020-02-02 release didn't work properly: this is because the
+management of the \cs{ExplSyntaxOn/Off} status for packages (after an
+\pkg{expl3}-based package is loaded) cannot be removed by the rollback
+without messing up the catcodes.  This has been fixed so that rollback
+is now more careful not to leave \cs{ExplSyntaxOn} after a package
+ends.
 %
-\githubissue{548}
+\githubissue{504}
 
 
 
@@ -626,22 +829,26 @@
 \section{Changes to packages in the \pkg{graphics} category}
 
 
-\subsection{Removed spurious warning for generic graphics rules}
+\subsection{Removed warning when loading graphics files}
 
-A previous release mistakenly caused a warning to appear when loading a graphics
-file with an unknown extension through a generic graphics rule.  The warning
-would incorrectly say that the file was not found, whereas the file would be
-included correctly.  The warning now doesn't show up in that case.
+A previous release sometimes mistakenly caused a (false) warning
+message to appear when \mbox{using} a generic graphics rule to find
+and load a graphics file with an unknown \mbox{extension}.
+%%CCC removing hyphenation here makes this one line longer.
+This warning would incorrectly say that the file was not found,
+whereas the file would in fact be correctly loaded.  The warning now
+doesn't show up in that case.
 %
 \githubissue{516}
 
 
-\subsection{Fixed loading \texttt{gzip}ped PostScript graphics files}
+\subsection{Fixed loading of \texttt{gzip}ped
+  PostScript files}
 
-A previous release mistakenly changed the file searching mechanism and
-compressed graphics files would raise an error when being loaded with
-\cs{includegraphics}.  This has been fixed and now \texttt{gzip}ped graphics
-load correctly.
+A previous release mistakenly changed the file searching mechanism so
+that compressed PostScript graphics files would raise an error when
+being loaded with \cs{includegraphics}.  This has been fixed so that
+\texttt{gzip}ped graphics files now load correctly.
 %
 \githubissue{519}
 
@@ -648,11 +855,11 @@
 
 
 
-
 \section{Changes to packages in the \pkg{tools} category}
 
-\subsection{\pkg{layout}: Support extra language options}
-The package now recognizes \texttt{japanese} and \texttt{romanian} as
+\subsection{\pkg{layout}: Added language options}
+
+This package now recognizes \texttt{japanese} and \texttt{romanian} as
 language options.
 %
 \githubissue[s]{353 and 529}
@@ -660,71 +867,64 @@
 
 \subsection{\pkg{array} and \pkg{longtable}: Make \cs{\textbackslash} generally robust}
 
-The fix for this issue was also applied to these packages, see above.
+The fix for this issue was also applied to these packages; see above.
 %
 \githubissue{548}
 
 
 \subsection{\pkg{longtable}: General bug fix update}
-Minor update to \pkg{longtable} to fix bugs reported.  Notably the
-possibility of incorrect page breaks if floats appear on the same page
-that a \env{longtable} starts.  As this may affect page breaking in
-existing documents, a rollback to \pkg{longtable 4.13}
-(\file{longtable-2020-01-07.sty}) is supported.
+
+This is a minor update to the \pkg{longtable} package that fixes several
+reported bugs: notably the possibility of incorrect page breaks when
+floats appear on the page where a \env{longtable} starts.  As this may
+affect page breaking in existing documents, a rollback to
+\pkg{longtable 4.13} (\file{longtable-2020-01-07.sty}) is supported.
 %
 \gnatsissue{tools}{2914 3396 3512}
-\githubissue{133 183 464}
+\githubissue{133 137 183 464 561}
 
 
-\subsection[\pkg{trace}: Add \cs{tracingstacklevels}
-  and \cs{tracinglostchars}\texttt{=3} to \cs{traceon}]
-           {\pkg{trace}: Add \cs{tracingstacklevels} and\\
-  \mbox\quad \cs{tracinglostchars}\texttt{=3} to \cs{traceon}}
+\subsection{\pkg{trace}: Additions to \cs{traceon}}
 
-The enhancement mentioned earlier was also added to the \pkg{trace} package.
+The \cs{tracingstacklevels} and \cs{tracinglostchars} extensions to
+\cs{tracingall} (see above) were also added to \cs{traceon} in the
+\pkg{trace} package, so its users can also benefit from these new
+debugging possibilities.
 %
-\iffalse
-The \cs{tracingstacklevels} and \cs{tracinglostchars} extensions
-mentioned earlier for \cs{tracingall} were also added for
-\cs{traceon} in the \pkg{trace} package, so if you're using that you
-can also benefit from these new debugging tools.
-\fi
-%
-%
 \githubissue{524}
 
 
+\subsection{\pkg{bm}: Better support for commands with optional arguments}
 
+Some uses of optional arguments in \cs{bm} stopped being supported (in
+2004) when \cs{kernel at ifnextchar} was used internally by the format
+instead of \cs{@ifnextchar}. This update handles both versions of this
+command and restores the original \mbox{behavior}.
 
-\subsection{\pkg{bm}: Better support for commands with optional arguments}
-Some uses of optional arguments that were supported by \cs{bm} stopped
-being supported (in 2004) when \cs{kernel at ifnextchar} was used
-internally by the format instead of \cs{@ifnextchar}. This update
-handles both versions of this command and restores the original
-behaviour.
-
-In addition package options for guiding the use of \enquote{poor man's
-  bold} in fallback situations were added.
+In addition, package options for guiding the use of \enquote{poor
+  man's bold} in fallback situations were added.
 %
 \githubissue{554}
 
+
+
 \section{Changes to packages in the \pkg{amsmath} category}
 
-%\subsection{\pkg{amsmath}: Make \cs{\textbackslash} generally robust}
-
-The fix for issue 548 was also applied in \pkg{amsmath}, see above.
+The fix for issue 548 was also applied in \pkg{amsmath}; see above. 
 %
 \githubissue{548}
 
 
-%\medskip
 
+
+\medskip
+
 \begin{thebibliography}{9}
 
 \fontsize{9.3}{11.3}\selectfont
 
 \bibitem{33:blueprint} Frank Mittelbach and Chris Rowley:
-  \emph{\LaTeX{} Tagged PDF — A blueprint for a large project}.\\
+  \emph{\LaTeX{} Tagged PDF \Dash A blueprint for a large project}.\\
   \url{https://latex-project.org/publications/indexbyyear/2020/}
 
 \bibitem{33:source2e}

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/manual.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/modguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/proc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/slides.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/source2e.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/tulm.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/usrguide3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/firstaid/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/firstaid/changes.txt	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/doc/latex-dev/firstaid/changes.txt	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,3 +1,11 @@
+2021-03-15  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* latex2e-first-aid-for-external-files.dtx:
+	bigfoot incorrectly assumes insertions being ordered, so this is
+	enforced for now.
+	We also fix \FN at allmarks which can blow as it loops using the
+	wrong counter (so the loops runs a random number of times)
+
 2021-01-06  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
 	* latex2e-first-aid-for-external-files.dtx:

Modified: trunk/Master/texmf-dist/doc/latex-dev/firstaid/latex2e-first-aid-for-external-files.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/graphics/README.md	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/doc/latex-dev/graphics/README.md	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,7 +1,7 @@
 The LaTeX `graphics` bundle
 ===========================
 
-Release 2021-06-01 pre-release 1
+Release 2021-12-01 pre-release 0
 
 Overview
 --------

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/graphics/changes.txt	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/doc/latex-dev/graphics/changes.txt	2021-06-05 21:10:24 UTC (rev 59474)
@@ -4,6 +4,14 @@
 are not part of the distribution.
 =======================================================================
 
+================================================================================
+All changes above are only part of the development branch for the next release.
+================================================================================
+
+#########################
+# 2021-16-01 Release
+#########################
+
 2021-03-04  Phelype Oleinik  <phelype.oleinik at latex-project.org>
 
 	* graphics.dtx: fix loading gzipped .(e)ps graphics files.
@@ -20,10 +28,6 @@
 
 	* graphics.dtx: Avoid warning when loading a file using a generic rule (gh/516).
 
-================================================================================
-All changes above are only part of the development branch for the next release.
-================================================================================
-
 2020-12-05 Ulrike Fischer <Ulrike.Fischer at latex-project.org>
 
 	* graphics.dtx: fix missing default in quiet key.

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/color.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/drivers.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/epsfig.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/graphics.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/graphicx.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/grfguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/keyval.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/lscape.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/rotating.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/rotex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/trig.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/tools/README.md	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/doc/latex-dev/tools/README.md	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,7 +1,7 @@
 The LaTeX `tools` bundle
 ========================
 
-Release 2021-06-01 pre-release 2
+Release 2021-12-01 pre-release 0
 
 Overview
 --------

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/afterpage.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/array.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/bm.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/calc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/tools/changes.txt	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/doc/latex-dev/tools/changes.txt	2021-06-05 21:10:24 UTC (rev 59474)
@@ -6,6 +6,19 @@
 are not part of the distribution.
 =======================================================================
 
+================================================================================
+All changes above are only part of the development branch for the next release.
+================================================================================
+
+#########################
+# 2021-06-01 Release
+#########################
+
+2021-05-07  David Carlisle  <David.Carlisle at latex-project.org>
+
+	* longtable.dtx: write lists of tables entry to the file with
+	extension \ext at table, not force .lot github/561
+
 2021-04-25  David Carlisle  <David.Carlisle at latex-project.org>
 
 	* bm.dtx: guard \kernel at ifnextchar (gh/554)
@@ -68,11 +81,6 @@
 	* layout.dtx: (subsection{Options}):
 	Option japanese added (gh/353)
 
-
-================================================================================
-All changes above are only part of the development branch for the next release.
-================================================================================
-
 #########################
 # 2020-10-01 Release
 #########################

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/dcolumn.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/delarray.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/enumerate.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/fileerr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/fontsmpl.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/ftnright.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/hhline.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/indentfirst.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/layout.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/longtable.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/multicol.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/rawfonts.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/shellesc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/showkeys.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/somedefs.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/tabularx.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/theorem.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/tools-overview.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/trace.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/varioref.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/verbatim.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/xr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/xspace.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -2,7 +2,8 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2021
+%               LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -14,7 +15,7 @@
 %
 % This work has the LPPL maintenance status `maintained'.
 %
-% The Current Maintainer of this work is the LaTeX3 Project.
+% The Current Maintainer of this work is the LaTeX Project.
 %
 % \fi
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,6 +1,7 @@
 %%
-%% Copyright 2010 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 2010 American Mathematical Society.
+%% Copyright (C) 2016-2021
+%                LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -12,7 +13,7 @@
 %%
 %% This work has the LPPL maintenance status `maintained'.
 %%
-%% The Current Maintainer of this work is the LaTeX3 Project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %%
 %% ====================================================================
 
@@ -24,8 +25,8 @@
 
 \preamble
 
-Copyright 1995, 1999 American Mathematical Society.
-Copyright 2016 LaTeX3 Project and American Mathematical Society.
+Copyright (C) 1995, 1999 American Mathematical Society.
+Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c
@@ -37,7 +38,7 @@
 
 This work has the LPPL maintenance status `maintained'.
 
-The Current Maintainer of this work is the LaTeX3 project.
+The Current Maintainer of this work is the LaTeX Project.
 
 \endpreamble
 

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -14,7 +14,7 @@
 %
 % This work has the LPPL maintenance status `maintained'.
 %
-% The Current Maintainer of this work is the LaTeX3 Project.
+% The Current Maintainer of this work is the LaTeX Project.
 %
 % \fi
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,6 +1,6 @@
 %%
-%% Copyright 2010 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 2010 American Mathematical Society.
+%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -12,7 +12,7 @@
 %%
 %% This work has the LPPL maintenance status `maintained'.
 %%
-%% The Current Maintainer of this work is the LaTeX3 Project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %%
 %% ====================================================================
 
@@ -24,8 +24,8 @@
 
 \preamble
 
-Copyright 1995, 1999 American Mathematical Society.
-Copyright 2016 LaTeX3 Project and American Mathematical Society.
+Copyright (C) 1995, 1999 American Mathematical Society.
+Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c
@@ -37,7 +37,7 @@
 
 This work has the LPPL maintenance status `maintained'.
 
-The Current Maintainer of this work is the LaTeX3 project.
+The Current Maintainer of this work is the LaTeX Project.
 
 \endpreamble
 

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -14,7 +14,7 @@
 %
 % This work has the LPPL maintenance status `maintained'.
 %
-% The Current Maintainer of this work is the LaTeX3 Project.
+% The Current Maintainer of this work is the LaTeX Project.
 %
 % \fi
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,6 +1,6 @@
 %%
-%% Copyright 2010 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 2010 American Mathematical Society.
+%% Copyright (C) 2016 LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -12,7 +12,7 @@
 %%
 %% This work has the LPPL maintenance status `maintained'.
 %%
-%% The Current Maintainer of this work is the LaTeX3 Project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %%
 %% ====================================================================
 
@@ -24,8 +24,8 @@
 
 \preamble
 
-Copyright 1995, 1999 American Mathematical Society.
-Copyright 2016 LaTeX3 Project and American Mathematical Society.
+Copyright (C) 1995, 1999 American Mathematical Society.
+Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c
@@ -37,7 +37,7 @@
 
 This work has the LPPL maintenance status `maintained'.
 
-The Current Maintainer of this work is the LaTeX3 project.
+The Current Maintainer of this work is the LaTeX Project.
 
 \endpreamble
 

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 2000, 2013 American Mathematical Society.
-% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -14,7 +14,7 @@
 %
 % This work has the LPPL maintenance status `maintained'.
 %
-% The Current Maintainer of this work is the LaTeX3 Project.
+% The Current Maintainer of this work is the LaTeX Project.
 %
 % \fi
 %
@@ -86,7 +86,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\ProvidesPackage{amsmath}[2020/09/23 v2.17i AMS math features]
+\ProvidesPackage{amsmath}[2021/04/20 v2.17j AMS math features]
 %    \end{macrocode}
 %
 % \section{Catcode defenses}
@@ -2752,8 +2752,9 @@
 %    \textit{u} template of the current column if the author ended the
 %    current row with an empty column (i.e., the mathcr was immediately
 %    preceded by an ampersand).
+%    \changes{v2.17j}{2021/04/20}{Use \cs{protected} for \cs{\bslash} variant (gh/548)}
 %    \begin{macrocode}
-\def\math at cr{\relax\iffalse{\fi\ifnum0=`}\fi
+\protected\def\math at cr{\relax\iffalse{\fi\ifnum0=`}\fi
 %    \end{macrocode}
 %    The first step is now to check whether an asterisk follows.
 %    \cs{@eqpen} is used to hold the penalty value to be put on

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,6 +1,6 @@
 %%
-%% Copyright 2010 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 2010 American Mathematical Society.
+%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -12,7 +12,7 @@
 %%
 %% This work has the LPPL maintenance status `maintained'.
 %%
-%% The Current Maintainer of this work is the LaTeX3 Project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %%
 %% ====================================================================
 
@@ -24,8 +24,8 @@
 
 \preamble
 
-Copyright 1995, 1999, 2000, 2013 American Mathematical Society.
-Copyright 2016 LaTeX3 Project and American Mathematical Society.
+Copyright (C) 1995, 1999, 2000, 2013 American Mathematical Society.
+Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c
@@ -37,7 +37,7 @@
 
 This work has the LPPL maintenance status `maintained'.
 
-The Current Maintainer of this work is the LaTeX3 project.
+The Current Maintainer of this work is the LaTeX Project.
 
 \endpreamble
 

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -14,7 +14,7 @@
 %
 % This work has the LPPL maintenance status `maintained'.
 %
-% The Current Maintainer of this work is the LaTeX3 Project.
+% The Current Maintainer of this work is the LaTeX Project.
 %
 % \fi
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,6 +1,6 @@
 %%
-%% Copyright 2010 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 2010 American Mathematical Society.
+%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -12,7 +12,7 @@
 %%
 %% This work has the LPPL maintenance status `maintained'.
 %%
-%% The Current Maintainer of this work is the LaTeX3 Project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %%
 %% ====================================================================
 
@@ -24,8 +24,8 @@
 
 \preamble
 
-Copyright 1995, 1999 American Mathematical Society.
-Copyright 2016 LaTeX3 Project and American Mathematical Society.
+Copyright (C) 1995, 1999 American Mathematical Society.
+Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c
@@ -37,7 +37,7 @@
 
 This work has the LPPL maintenance status `maintained'.
 
-The Current Maintainer of this work is the LaTeX3 project.
+The Current Maintainer of this work is the LaTeX Project.
 
 \endpreamble
 

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -14,7 +14,7 @@
 %
 % This work has the LPPL maintenance status `maintained'.
 %
-% The Current Maintainer of this work is the LaTeX3 Project.
+% The Current Maintainer of this work is the LaTeX Project.
 %
 % \fi
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,6 +1,6 @@
 %%
-%% Copyright 2010 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 2010 American Mathematical Society.
+%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -12,7 +12,7 @@
 %%
 %% This work has the LPPL maintenance status `maintained'.
 %%
-%% The Current Maintainer of this work is the LaTeX3 Project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %%
 %% ====================================================================
 
@@ -24,8 +24,8 @@
 
 \preamble
 
-Copyright 1995, 1999 American Mathematical Society.
-Copyright 2016 LaTeX3 Project and American Mathematical Society.
+Copyright (C) 1995, 1999 American Mathematical Society.
+Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c
@@ -37,7 +37,7 @@
 
 This work has the LPPL maintenance status `maintained'.
 
-The Current Maintainer of this work is the LaTeX3 project.
+The Current Maintainer of this work is the LaTeX Project.
 
 \endpreamble
 

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -14,7 +14,7 @@
 %
 % This work has the LPPL maintenance status `maintained'.
 %
-% The Current Maintainer of this work is the LaTeX3 Project.
+% The Current Maintainer of this work is the LaTeX Project.
 %
 % \fi
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,6 +1,6 @@
 %%
-%% Copyright 2010 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 2010 American Mathematical Society.
+%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -12,7 +12,7 @@
 %%
 %% This work has the LPPL maintenance status `maintained'.
 %%
-%% The Current Maintainer of this work is the LaTeX3 Project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %%
 %% ====================================================================
 
@@ -24,8 +24,8 @@
 
 \preamble
 
-Copyright 1995, 1999 American Mathematical Society.
-Copyright 2016 LaTeX3 Project and American Mathematical Society.
+Copyright (C) 1995, 1999 American Mathematical Society.
+Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c
@@ -37,7 +37,7 @@
 
 This work has the LPPL maintenance status `maintained'.
 
-The Current Maintainer of this work is the LaTeX3 project.
+The Current Maintainer of this work is the LaTeX Project.
 
 \endpreamble
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/doc.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/base/doc.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -35,7 +35,7 @@
 %<+package|shortvrb>\NeedsTeXFormat{LaTeX2e}[1994/12/01]
 %<+package> \ProvidesPackage{doc}
 %<+shortvrb>\ProvidesPackage{shortvrb}
-%<+package|shortvrb>  [2020/11/23 v2.1m
+%<+package|shortvrb>  [2021/05/28 v2.1n
 %<+package|shortvrb>   Standard LaTeX documentation package (FMi)]
 %\catcode`\<=12
 %
@@ -2117,6 +2117,7 @@
 % \begin{macro}{\verb at eol@error}
 % \changes{v1.8b}{1993/09/21}{Renamed \cs{verb at err} to
 %                   \cs{verb at eol@error}, as in new LaTeX verbatim.}
+% \changes{v2.1n}{2021/05/28}{Use same error message text as in format}
 %    \begin{macrocode}
 \let\verb at balance@group\@empty
 
@@ -2126,7 +2127,7 @@
   \obeylines%
   \gdef\verb at eol@error{\obeylines%
     \def^^M{\verb at egroup\@latex at error{%
-           Text for \noexpand\verb command ended by end of line}\@ehc}}%
+            \noexpand\verb ended by end of line}\@ehc}}%
 \endgroup
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltclass.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltclass.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -33,7 +33,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltclass.dtx}
-             [2021/03/27 v1.4a LaTeX Kernel (Class & Package Interface)]
+             [2021/05/18 v1.4b LaTeX Kernel (Class & Package Interface)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltclass.dtx}
@@ -505,6 +505,14 @@
 %    \end{macrocode}
 %  \end{macro}
 %
+%  \begin{macro}{\@raw at classoptionslist}
+%    List of options of the main class (unprocessed).
+% \changes{v1.4b}{2021/05/18}{Initialise to \cs{relax} to match \cs{@classoptionslist}}
+%    \begin{macrocode}
+\let\@raw at classoptionslist\relax
+%    \end{macrocode}
+%  \end{macro}
+%
 %  \begin{macro}{\@unusedoptionlist}
 % \changes{v1.0u}{1996/07/26}{made only preamble}
 %    List of options of the main class that haven't been declared or
@@ -1910,7 +1918,7 @@
 %    \begin{macrocode}
       \ifx\@nnil##1\relax\else
 %    \end{macrocode}
-%  If |\ifx\@nnil##1\n at nil| is true then |#1| is (presumably) empty
+%  If |\ifx\@nnil##1\@nnil| is true then |#1| is (presumably) empty
 % (Older code used |\relax| which is slightly easier to get into |#1|
 % by mistake, which would spoil this test.)
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -34,8 +34,8 @@
 %%% From File: ltcmd.dtx
 %
 %    \begin{macrocode}
-\def\ltcmdversion{v1.0d}
-\def\ltcmddate{2021-04-19}
+\def\ltcmdversion{v1.0e}
+\def\ltcmddate{2021-05-24}
 %    \end{macrocode}
 %
 %<*driver>
@@ -80,6 +80,9 @@
 %    \end{macrocode}
 %
 % \changes{v1.0b}{2021/03/18}{Use \cs{NewModuleRelease}.}
+% \changes{v1.0e}{2021/05/24}{Use \cs{msg_...} instead of \cs{__kernel_msg...}}
+%
+%
 % \pkg{ltcmd} code contains an |^^@| character, which usually has
 % catcode~15, so \cs{IncludeInRelease} will break when this code is
 % being skipped, so we'll save the catcode of |^^@| to restore later:
@@ -328,9 +331,14 @@
 %   switched off by default, unless the |log-declarations| package
 %   option was used, so here we'll switch that off as well.
 %    \begin{macrocode}
-\msg_redirect_module:nnn { LaTeX / ltcmd } { info } { none }
+\msg_redirect_module:nnn { cmd } { info } { none }
 %    \end{macrocode}
 %
+%   Also add \pkg{cmd} to the \pkg{LaTeX} messages.
+%    \begin{macrocode}
+\prop_gput:Nnn \g_msg_module_type_prop { cmd } { LaTeX }
+%    \end{macrocode}
+%
 % \subsection{Declaring commands and environments}
 %
 % \begin{macro}{\@@_declare_cmd:Nnn, \@@_declare_expandable_cmd:Nnn}
@@ -358,7 +366,7 @@
   {
     \cs_if_exist:NTF #1
       {
-        \__kernel_msg_info:nnxx { ltcmd } { redefine-command }
+        \msg_info:nnxx { cmd } { redefine-command }
           { \token_to_str:N #1 } { \tl_to_str:n {#2} }
       }
       {
@@ -366,10 +374,10 @@
           { \cs_if_exist_p:c { \cs_to_str:N #1 ~ code } }
           { \cs_if_exist_p:c { \cs_to_str:N #1 ~ defaults } }
           {
-            \__kernel_msg_warning:nnx { ltcmd } { unsupported-let }
+            \msg_warning:nnx { cmd } { unsupported-let }
               { \token_to_str:N #1 }
           }
-        \__kernel_msg_info:nnxx { ltcmd } { define-command }
+        \msg_info:nnxx { cmd } { define-command }
           { \token_to_str:N #1 } { \tl_to_str:n {#2} }
       }
     \bool_set_false:N \l_@@_environment_bool
@@ -528,11 +536,11 @@
       { \tl_trim_spaces:o { \l_@@_environment_str } }
     \cs_if_exist:cTF { \l_@@_environment_str }
       {
-        \__kernel_msg_info:nnxx { ltcmd } { redefine-environment }
+        \msg_info:nnxx { cmd } { redefine-environment }
           { \l_@@_environment_str } { \tl_to_str:n {#2} }
       }
       {
-        \__kernel_msg_info:nnxx { ltcmd } { define-environment }
+        \msg_info:nnxx { cmd } { define-environment }
           { \l_@@_environment_str } { \tl_to_str:n {#2} }
       }
     \bool_set_false:N \l_@@_expandable_bool
@@ -685,7 +693,7 @@
   }
 \cs_new_protected:Npn \@@_defaults_error:w \q_recursion_stop
   {
-    \__kernel_msg_error:nnx { ltcmd } { loop-in-defaults }
+    \msg_error:nnx { cmd } { loop-in-defaults }
       { \@@_environment_or_command: }
   }
 %    \end{macrocode}
@@ -813,8 +821,7 @@
     \@@_end_expandable_defaults:nnnNNn {#1} { } {#1} #2#3
       { } { } { } { } { } { } { } { } { } { }
       {
-        \__kernel_msg_expandable_error:nnf
-          { ltcmd } { loop-in-defaults }
+        \msg_expandable_error:nnf { cmd } { loop-in-defaults }
           { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N #4 } }
         \use_iv:nnnn
       }
@@ -912,7 +919,7 @@
       \q_recursion_tail \q_recursion_tail \q_recursion_tail \q_recursion_stop
     \int_compare:nNnT \l_@@_current_arg_int > 9
       {
-        \__kernel_msg_error:nnxx { ltcmd } { too-many-arguments }
+        \msg_error:nnxx { cmd } { too-many-arguments }
           { \@@_environment_or_command: } { \tl_to_str:n {#1} }
         \@@_bad_def:wn
       }
@@ -920,7 +927,7 @@
       {
         \tl_if_empty:NF \l_@@_last_delimiters_tl
           {
-            \__kernel_msg_error:nnxx { ltcmd } { expandable-ending-optional }
+            \msg_error:nnxx { cmd } { expandable-ending-optional }
               { \iow_char:N \\ \l_@@_function_tl } { \tl_to_str:n {#1} }
             \@@_bad_def:wn
           }
@@ -944,11 +951,11 @@
             { \str_if_eq_p:nn {#1} { u } }
           }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { xparse-argument-type }
+            \msg_error:nnxx { cmd } { xparse-argument-type }
               { \@@_environment_or_command: } { \tl_to_str:n {#1} }
           }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { unknown-argument-type }
+            \msg_error:nnxx { cmd } { unknown-argument-type }
               { \@@_environment_or_command: } { \tl_to_str:n {#1} }
           }
         \@@_bad_def:wn
@@ -1020,7 +1027,7 @@
     \quark_if_recursion_tail_stop_do:nn {#2} { \@@_bad_arg_spec:wn }
     \bool_if:NT \l_@@_expandable_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { processor-in-expandable }
+        \msg_error:nnxx { cmd } { processor-in-expandable }
           { \iow_char:N \\ \l_@@_function_tl } { \tl_to_str:n {#1} }
         \@@_bad_def:wn
       }
@@ -1034,7 +1041,7 @@
     \quark_if_recursion_tail_stop_do:nn {#1} { \@@_bad_arg_spec:wn }
     \bool_if:NT \l_@@_long_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { two-markers }
+        \msg_error:nnxx { cmd } { two-markers }
           { \@@_environment_or_command: } { + }
         \@@_bad_def:wn
       }
@@ -1047,7 +1054,7 @@
     \quark_if_recursion_tail_stop_do:nn {#1} { \@@_bad_arg_spec:wn }
     \bool_if:NT \l_@@_obey_spaces_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { two-markers }
+        \msg_error:nnxx { cmd } { two-markers }
           { \@@_environment_or_command: } { ! }
         \@@_bad_def:wn
       }
@@ -1179,8 +1186,7 @@
   {
     \bool_if:NF \l_@@_environment_bool
       {
-        \__kernel_msg_error:nnxx
-          { ltcmd } { invalid-command-arg }
+        \msg_error:nnxx { cmd } { invalid-command-arg }
           { \@@_environment_or_command: } { b }
         \@@_bad_def:wn
       }
@@ -1187,7 +1193,7 @@
     \tl_clear:N \l_@@_last_delimiters_tl
     \@@_add_arg_spec:n { b }
     \quark_if_recursion_tail_stop:n {#1}
-    \__kernel_msg_error:nnxx { ltcmd } { arg-after-body }
+    \msg_error:nnxx { cmd } { arg-after-body }
       { \@@_environment_or_command: }
       { \tl_to_str:n {#1} }
     \@@_bad_def:wn
@@ -1203,7 +1209,7 @@
   {
     \tl_trim_spaces_apply:nN {#1} \tl_if_single_token:nF
       {
-        \__kernel_msg_error:nnxx { ltcmd } { not-single-token }
+        \msg_error:nnxx { cmd } { not-single-token }
           { \@@_environment_or_command: } { \tl_to_str:n {#1} }
         \@@_bad_def:wn
       }
@@ -1235,8 +1241,7 @@
             { \use_none:n }
         }
       {
-        \__kernel_msg_error:nnxxx
-          { ltcmd } { forbidden-implicit-group-token }
+        \msg_error:nnxxx { cmd } { forbidden-implicit-group-token }
           { \@@_environment_or_command: } { \tl_to_str:n {#1} }
           {
             \token_if_eq_meaning:NNTF #1 \c_group_begin_token
@@ -1256,8 +1261,7 @@
   {
     \bool_if:NT \l_@@_expandable_bool
       {
-        \__kernel_msg_error:nnxx
-          { ltcmd } { invalid-expandable-argument-type }
+        \msg_error:nnxx { cmd } { invalid-expandable-argument-type }
           { \iow_char:N \\ \l_@@_function_tl } { \tl_to_str:n {#1} }
         \@@_bad_def:wn
       }
@@ -1269,8 +1273,7 @@
       {
         \tl_if_empty:NF \l_@@_last_delimiters_tl
           {
-            \__kernel_msg_error:nnxx
-              { ltcmd } { invalid-after-optional-expandably }
+            \msg_error:nnxx { cmd } { invalid-after-optional-expandably }
               { \iow_char:N \\ \l_@@_function_tl } { \tl_to_str:n {#1} }
             \@@_bad_def:wn
           }
@@ -1291,7 +1294,7 @@
       {
         \tl_if_eq:nnT {##1} {#1}
           {
-            \__kernel_msg_warning:nnxx { ltcmd } { optional-mandatory }
+            \msg_warning:nnxx { cmd } { optional-mandatory }
               {#2} {#3}
           }
       }
@@ -1305,7 +1308,7 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_bad_arg_spec:wn #1 \@@_break_point:n #2
   {
-    \__kernel_msg_error:nnxx { ltcmd } { bad-arg-spec }
+    \msg_error:nnxx { cmd } { bad-arg-spec }
       { \@@_environment_or_command: } { \tl_to_str:n {#2} }
   }
 \cs_new_protected:Npn \@@_bad_def:wn #1 \@@_break_point:n #2 { }
@@ -1331,7 +1334,7 @@
       {
         \bool_if:NT \l_@@_expandable_bool
           {
-            \__kernel_msg_error:nnx { ltcmd } { inconsistent-long }
+            \msg_error:nnx { cmd } { inconsistent-long }
               { \iow_char:N \\ \l_@@_function_tl }
             \@@_bad_def:wn
           }
@@ -1353,7 +1356,7 @@
   {
     \bool_if:NT \l_@@_some_obey_spaces_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { non-trailing-obey-spaces }
+        \msg_error:nnxx { cmd } { non-trailing-obey-spaces }
           { \@@_environment_or_command: } { \tl_to_str:n {#1} }
         \@@_bad_def:wn
       }
@@ -2331,7 +2334,7 @@
     \@@_peek_nonspace_remove:NTF #1
       { \@@_grab_D_call:Nw #1 }
       {
-        \__kernel_msg_error:nnxx { ltcmd } { missing-required }
+        \msg_error:nnxx { cmd } { missing-required }
           { \@@_environment_or_command: }
           { \token_to_str:N #1 }
         \@@_add_arg:o \c_novalue_tl
@@ -2584,7 +2587,7 @@
     \exp_after:wN \exp_after:wN \exp_after:wN
       \peek_meaning_remove:NTF \char_generate:nn { \tex_endlinechar:D } { 6 }
       {
-        \__kernel_msg_error:nnxxx { ltcmd } { verbatim-newline }
+        \msg_error:nnxxx { cmd } { verbatim-newline }
           { \@@_environment_or_command: }
           { \tl_to_str:N \l_@@_v_arg_tl }
           { \tl_to_str:n {#1} }
@@ -2591,7 +2594,7 @@
         \@@_add_arg:o \c_novalue_tl
       }
       {
-        \__kernel_msg_error:nnxxx { ltcmd } { verbatim-tokenized }
+        \msg_error:nnxxx { cmd } { verbatim-tokenized }
           { \@@_environment_or_command: }
           { \tl_to_str:N \l_@@_v_arg_tl }
           { \tl_to_str:n {#1} }
@@ -2942,8 +2945,7 @@
               \q_nil { } ##2 \ERROR \q_@@ \ERROR
           }
           {
-            \__kernel_msg_expandable_error:nnff
-              { ltcmd } { missing-required }
+            \msg_expandable_error:nnff { cmd } { missing-required }
               { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N ##5 } }
               { \tl_to_str:n {##2} }
             ##4 {#1} \q_@@ ##5 ##6 {##7}
@@ -2980,8 +2982,7 @@
               ##6 \ERROR
           }
           {
-            \__kernel_msg_expandable_error:nnff
-              { ltcmd } { missing-required }
+            \msg_expandable_error:nnff { cmd } { missing-required }
               { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N ##4 } }
               { \tl_to_str:n {##2} }
             ##3 {#1} \q_@@ ##4 ##5 {##6}
@@ -3114,7 +3115,7 @@
                   \ProcessedArgument
                   \q_stop
               }
-            \__kernel_msg_error:nnxxx { ltcmd } { split-excess-tokens }
+            \msg_error:nnxxx { cmd } { split-excess-tokens }
               { \tl_to_str:n {#3} } { \int_eval:n { #2 + 1 } }
               { \tl_to_str:n {#4} }
           }
@@ -3177,11 +3178,11 @@
   {
     #1
       {
-        \__kernel_msg_error:nnx { ltcmd } { non-xparse }
+        \msg_error:nnx { cmd } { non-xparse }
           { \@@_environment_or_command: }
       }
       {
-        \__kernel_msg_error:nnx { ltcmd } { unknown }
+        \msg_error:nnx { cmd } { unknown }
           { \@@_environment_or_command: }
       }
   }
@@ -3305,11 +3306,11 @@
         }
         { \group_end: \use_ii:nnn }
       {
-        \__kernel_msg_error:nnxx { ltcmd } { not-definable }
+        \msg_error:nnxx { cmd } { not-definable }
           { \tl_to_str:n {#1} } { \token_to_str:N #2 }
       }
       {
-        \__kernel_msg_error:nnxx { ltcmd } { not-one-token }
+        \msg_error:nnxx { cmd } { not-one-token }
           { \tl_to_str:n {#1} } { \token_to_str:N #2 }
       }
     }
@@ -3504,7 +3505,7 @@
 %
 % Some messages intended as errors when defining commands/environments.
 %    \begin{macrocode}
-\__kernel_msg_new:nnnn { ltcmd } { arg-after-body }
+\msg_new:nnnn { cmd } { arg-after-body }
   { In~the~definition~of~#1,~b~(body)~argument~must~be~last. }
   {
     The~'body'~argument~type~is~followed~by~'#2'~in~the~argument~
@@ -3511,7 +3512,7 @@
     specification~of~the~#1.~This~is~not~allowed.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { bad-arg-spec }
+\msg_new:nnnn { cmd } { bad-arg-spec }
   { Bad~argument~specification~'#2'~for~#1. }
   {
     The~argument~specification~provided~was~not~valid:~
@@ -3518,7 +3519,7 @@
     one~or~more~mandatory~pieces~of~information~were~missing.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { command-already-defined }
+\msg_new:nnnn { cmd } { command-already-defined }
   { Command~'#1'~already~defined! }
   {
     You~have~used~#2~
@@ -3525,7 +3526,7 @@
     with~a~command~that~already~has~a~definition. \\ \\
     The~existing~definition~of~'#1'~will~not~be~altered.
   }
-\__kernel_msg_new:nnnn { ltcmd } { command-not-yet-defined }
+\msg_new:nnnn { cmd } { command-not-yet-defined }
   { Command ~'#1'~not~yet~defined! }
   {
     You~have~used~#2~
@@ -3532,7 +3533,7 @@
     with~a~command~that~was~never~defined.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { environment-already-defined }
+\msg_new:nnnn { cmd } { environment-already-defined }
   { Environment~'#1'~already~defined! }
   {
     You~have~used~\NewDocumentEnvironment
@@ -3539,7 +3540,7 @@
     with~an~environment~that~already~has~a~definition. \\ \\
     The~existing~definition~of~'#1'~will~not~be~altered.
   }
-\__kernel_msg_new:nnnn { ltcmd } { environment-not-yet-defined }
+\msg_new:nnnn { cmd } { environment-not-yet-defined }
   { Environment~'#1'~not~yet~defined! }
   {
     You~have~used~\RenewDocumentEnvironment
@@ -3546,7 +3547,7 @@
     with~an~environment~that~was~never~defined.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { expandable-ending-optional }
+\msg_new:nnnn { cmd } { expandable-ending-optional }
   {
     Argument~specification~'#2'~for~expandable~command~'#1'~
     ends~with~optional~argument.
@@ -3556,13 +3557,13 @@
     (or~no~arguments~at~all).~You~cannot~have~a~terminal~optional~
     argument~with~expandable~commands.
   }
-\__kernel_msg_new:nnnn { ltcmd } { inconsistent-long }
+\msg_new:nnnn { cmd } { inconsistent-long }
   { Inconsistent~long~arguments~for~expandable~command~'#1'. }
   {
     The~arguments~for~an~expandable~command~must~not~involve~short~
     arguments~after~long~arguments.~You~have~tried~to~mix~the~two~types.
   }
-\__kernel_msg_new:nnnn { ltcmd } { invalid-command-arg }
+\msg_new:nnnn { cmd } { invalid-command-arg }
   { Argument~type~'#2'~not~available~for~#1. }
   {
     The~letter~'#2'~can~only~be~used~in~environment~argument~
@@ -3570,7 +3571,7 @@
     \\ \\
     LaTeX~will~ignore~this~entire~definition.
   }
-\__kernel_msg_new:nnnn { ltcmd } { invalid-expandable-argument-type }
+\msg_new:nnnn { cmd } { invalid-expandable-argument-type }
   { Argument~type~'#2'~not~available~for~expandable~command~'#1'. }
   {
     The~letter~'#2'~specifies~an~argument~type~which~cannot~be~used~
@@ -3577,7 +3578,7 @@
     in~an~expandable~command.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { invalid-after-optional-expandably }
+\msg_new:nnnn { cmd } { invalid-after-optional-expandably }
   {
     Argument~type~'#2'~not~available~after~optional~argument~
     for~expandable~command~'#1'.
@@ -3587,13 +3588,13 @@
     in~an~expandable~command~after~an~optional~argument.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { non-trailing-obey-spaces }
+\msg_new:nnnn { cmd } { non-trailing-obey-spaces }
   { Prefix~'!'~used~before~mandatory~argument~'#2'~of~#1. }
   {
     The~prefix~'!'~can~only~apply~to~trailing~optional~arguments.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { not-definable }
+\msg_new:nnnn { cmd } { not-definable }
   { First~argument~of~'#2'~must~be~a~command. }
   {
     The~first~argument~of~'#2'~should~be~the~document~command~that~will~
@@ -3601,7 +3602,7 @@
     backslash~is~missing?
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { not-one-token }
+\msg_new:nnnn { cmd } { not-one-token }
   { First~argument~of~'#2'~must~be~a~command. }
   {
     The~first~argument~of~'#2'~should~be~the~document~command~that~will~
@@ -3609,7 +3610,7 @@
     token.~Perhaps~a~backslash~is~missing?
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { not-single-token }
+\msg_new:nnnn { cmd } { not-single-token }
   {
     Argument~delimiter~'#2'~for~the~#1~should~be~
     a~single~non-space~token.
@@ -3619,7 +3620,7 @@
     where~a~single~token~is~required,~LaTeX~found~'#2'.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { forbidden-implicit-group-token }
+\msg_new:nnnn { cmd } { forbidden-implicit-group-token }
   { Argument~delimiter~'#2'~for~the~#1~is~not~allowed. }
   {
     The~argument~specification~provided~was~not~valid:~the~implicit~
@@ -3626,7 +3627,7 @@
     #3-group~token~'#2'~is~not~allowed~as~an~argument~delimiter.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { processor-in-expandable }
+\msg_new:nnnn { cmd } { processor-in-expandable }
   { Argument~processor~'>{#2}'~cannot~be~used~for~the~expandable~command~'#1'. }
   {
     The~argument~specification~for~#1~contains~a~processor~function:~
@@ -3633,7 +3634,7 @@
     this~is~only~supported~for~standard~robust~commands.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { too-many-arguments }
+\msg_new:nnnn { cmd } { too-many-arguments }
   { Too~many~arguments~in~argument~specification~'#2'~of~#1. }
   {
     The~argument~specification~provided~has~more~than~9~arguments.~
@@ -3640,19 +3641,19 @@
     This~cannot~be~implemented.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { two-markers }
+\msg_new:nnnn { cmd } { two-markers }
   { Two~'#2'~apply~to~the~same~argument~in~argument~specification~of~#1. }
   {
     The~argument~specification~provided~has~two~markers~'#2'~applying~
     to~the~same~argument;~these~are~redundant.
   }
-\__kernel_msg_new:nnnn { ltcmd } { unknown-argument-type }
+\msg_new:nnnn { cmd } { unknown-argument-type }
   { Unknown~argument~type~'#2'~for~the~#1. }
   {
     The~letter~'#2'~does~not~specify~a~known~argument~type.
     \c_@@_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { xparse-argument-type }
+\msg_new:nnnn { cmd } { xparse-argument-type }
   { Deprecated~argument~type~'#2'~for~the~#1~requires~xparse. }
   {
     The~letter~'#2'~specifies~a~known~argument~type~that~requires~
@@ -3666,27 +3667,27 @@
 % \texttt{loop-in-defaults} and \texttt{missing-required} messages can
 % be expandable or not expandable.
 %    \begin{macrocode}
-\__kernel_msg_new:nnn { ltcmd } { if-boolean }
+\msg_new:nnn { cmd } { if-boolean }
   { Invalid~use~\iow_char:N\\IfBooleanTF~{#1} }
-\__kernel_msg_new:nnnn { ltcmd } { loop-in-defaults }
+\msg_new:nnnn { cmd } { loop-in-defaults }
   { Defaults~of~#1~have~circular~dependency. }
   {
     The~default~values~of~two~or~more~arguments~of~the~#1~
     depend~on~each~other~in~a~way~that~cannot~be~resolved.
   }
-\__kernel_msg_new:nnnn { ltcmd } { missing-required }
+\msg_new:nnnn { cmd } { missing-required }
   { Missing~required~argument~for~#1. }
   {
     The~current~#1~expects~an~argument~starting~with~'#2'.~
     LaTeX~did~not~find~it,~and~will~insert~a~default~value~to~be~processed.
   }
-\__kernel_msg_new:nnnn { ltcmd } { non-xparse }
+\msg_new:nnnn { cmd } { non-xparse }
   { \str_uppercase:n #1~not~defined~using~xparse. }
   {
     You~have~asked~for~the~argument~specification~for~the~#1,~
     but~this~was~not~defined~using~xparse.
   }
-\__kernel_msg_new:nnnn { ltcmd } { split-excess-tokens }
+\msg_new:nnnn { cmd } { split-excess-tokens }
   { Too~many~'#1'~tokens~when~trying~to~split~argument. }
   {
     LaTeX~was~asked~to~split~the~input~'#3'~
@@ -3693,13 +3694,13 @@
     at~each~occurrence~of~the~token~'#1',~up~to~a~maximum~of~#2~parts.~
     There~were~too~many~'#1'~tokens.
   }
-\__kernel_msg_new:nnnn { ltcmd } { unknown }
+\msg_new:nnnn { cmd } { unknown }
   { Unknown~document~#1. }
   {
     You~have~asked~for~the~argument~specification~for~the~#1,~
     but~it~is~not~defined.
   }
-\__kernel_msg_new:nnnn { ltcmd } { verbatim-newline }
+\msg_new:nnnn { cmd } { verbatim-newline }
   { Verbatim~argument~of~#1~ended~by~end~of~line. }
   {
     The~verbatim~argument~of~the~#1~cannot~contain~more~than~one~line,~
@@ -3709,7 +3710,7 @@
     \\ \\
     LaTeX~will~ignore~'#2'.
   }
-\__kernel_msg_new:nnnn { ltcmd } { verbatim-tokenized }
+\msg_new:nnnn { cmd } { verbatim-tokenized }
   { The~verbatim~#1~cannot~be~used~inside~an~argument. }
   {
     The~#1~takes~a~verbatim~argument.~
@@ -3722,33 +3723,33 @@
 %
 % Intended more for information.
 %    \begin{macrocode}
-\__kernel_msg_new:nnn { ltcmd } { define-command }
+\msg_new:nnn { cmd } { define-command }
   {
     Defining~command~#1~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { define-environment }
+\msg_new:nnn { cmd } { define-environment }
   {
     Defining~environment~'#1'~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { redefine-command }
+\msg_new:nnn { cmd } { redefine-command }
   {
     Redefining~command~#1~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { redefine-environment }
+\msg_new:nnn { cmd } { redefine-environment }
   {
     Redefining~environment~'#1'~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { optional-mandatory }
+\msg_new:nnn { cmd } { optional-mandatory }
   {
     Since~the~mandatory~argument~'#1'~has~the~same~delimiter~'#2'~
     as~a~previous~optional~argument,~it~will~not~be~possible~to~
     omit~all~optional~arguments~when~calling~this~command.
   }
-\__kernel_msg_new:nnn { ltcmd } { unsupported-let }
+\msg_new:nnn { cmd } { unsupported-let }
   {
     The~command~'#1'~was~undefined~but~not~the~associated~commands~
     '#1~code'~and/or~'#1~defaults'.~Maybe~you~tried~using~
@@ -3786,7 +3787,7 @@
       {
         \cs_if_exist:NTF #1
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-already-defined }
+            \msg_error:nnxx { cmd } { command-already-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \NewDocumentCommand }
           }
@@ -3800,7 +3801,7 @@
         \cs_if_exist:NTF #1
           { \@@_declare_cmd:Nnn #1 {#2} {#3} }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-not-yet-defined }
+            \msg_error:nnxx { cmd } { command-not-yet-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \RenewDocumentCommand }
           }
@@ -3831,7 +3832,7 @@
 \cs_new_protected:Npn \NewDocumentEnvironment #1#2#3#4
   {
     \cs_if_exist:cTF {#1}
-      { \__kernel_msg_error:nnx { ltcmd } { environment-already-defined } {#1} }
+      { \msg_error:nnx { cmd } { environment-already-defined } {#1} }
       { \@@_declare_env:nnnn {#1} {#2} {#3} {#4} }
   }
 \cs_new_protected:Npn \RenewDocumentEnvironment #1#2#3#4
@@ -3838,7 +3839,7 @@
   {
     \cs_if_exist:cTF {#1}
       { \@@_declare_env:nnnn {#1} {#2} {#3} {#4} }
-      { \__kernel_msg_error:nnx { ltcmd } { environment-not-yet-defined } {#1} }
+      { \msg_error:nnx { cmd } { environment-not-yet-defined } {#1} }
   }
 \cs_new_protected:Npn \ProvideDocumentEnvironment #1#2#3#4
   { \cs_if_exist:cF {#1} { \@@_declare_env:nnnn {#1} {#2} {#3} {#4} } }
@@ -3865,7 +3866,7 @@
       {
         \cs_if_exist:NTF #1
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-already-defined }
+            \msg_error:nnxx { cmd } { command-already-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \NewExpandableDocumentCommand }
           }
@@ -3879,7 +3880,7 @@
         \cs_if_exist:NTF #1
           { \@@_declare_expandable_cmd:Nnn #1 {#2} {#3} }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-not-yet-defined }
+            \msg_error:nnxx { cmd } { command-not-yet-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \RenewExpandableDocumentCommand }
           }
@@ -3931,7 +3932,7 @@
     \prg_break:n { \use:n }
     \prg_break_point:
     {
-      \__kernel_msg_expandable_error:nnn { ltcmd } { if-boolean } {#1}
+      \msg_expandable_error:nnn { cmd } { if-boolean } {#1}
       \use_ii:nn
     }
   }

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltcmdhooks.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltcmdhooks.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltcmdhooks.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -13,8 +13,8 @@
 %
 %%% From File: ltcmdhooks.dtx
 %
-\def\ltcmdhooksversion{v1.0a}
-\def\ltcmdhooksdate{2021/04/30}
+\def\ltcmdhooksversion{v1.0b}
+\def\ltcmdhooksdate{2021/05/26}
 %
 %
 %
@@ -323,10 +323,13 @@
 %     throw an error.
 % \end{enumerate}
 %
+%
 %    \begin{macrocode}
 %<@@=hook>
 %    \end{macrocode}
 %
+% \changes{v1.0b}{2021/05/24}{Use \cs{msg_...} instead of \cs{__kernel_msg...}}
+%
 %    \begin{macrocode}
 %<*2ekernel|latexrelease>
 \ExplSyntaxOn
@@ -413,7 +416,7 @@
     \str_case:nnTF {#3}
         { { before } { } { after } { } }
       { \exp_args:Nc \@@_patch_cmd_or_delay:Nnn {#2} {#2} {#3} }
-      { \__kernel_msg_error:nnn { hooks } { wrong-cmd-hook } {#2} {#3} }
+      { \msg_error:nnnn { hooks } { wrong-cmd-hook } {#2} {#3} }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -520,7 +523,7 @@
   {
     #1 #2 {#4}
       {
-        \__kernel_msg_error:nnxx { hooks } { cant-patch }
+        \msg_error:nnxx { hooks } { cant-patch }
           { \token_to_str:N #2 } {#3}
       }
   }
@@ -833,7 +836,7 @@
 %   command isn't changed in any way in that case.
 %    \begin{macrocode}
           {
-            \__kernel_msg_error:nnxx { hooks } { cant-patch }
+            \msg_error:nnxx { hooks } { cant-patch }
               { \c_backslash_str #2 } { retok }
           }
       }
@@ -1036,24 +1039,22 @@
 % \subsection{Messages}
 %
 %    \begin{macrocode}
-\__kernel_msg_new:nnnn { hooks } { wrong-cmd-hook }
+\msg_new:nnnn { hooks } { wrong-cmd-hook }
   {
-    Command~hook~`cmd/#1/#2'~invalid.\\
-    The~hook~should~be~`cmd/#1/before'~or~`cmd/#1/after'.
+    Generic~hook~`cmd/#1/#2'~is~invalid.
+%    The~hook~should~be~`cmd/#1/before'~or~`cmd/#1/after'.
   }
   {
-    You~tried~to~add~a~hook~to~command~\iow_char:N \\#1,~but~`#2'~
-    is~an~invalid~position.~Only~`before'~or~`after'~are~allowed.
+    You~tried~to~add~a~generic~hook~to~command~\iow_char:N \\#1,~but~`#2'~
+    is~an~invalid~component.~Only~`before'~or~`after'~are~allowed.
   }
-\__kernel_msg_new:nnnn { hooks } { cant-patch }
+\msg_new:nnnn { hooks } { cant-patch }
   {
-    Command~`#1'~cannot~have~hooks~because~it~
-    \@@_unpatchable_cases:n {#2} .
+    Generic~hooks~cannot~be~added~to~'#1'.
   }
   {
-    You~tried~to~add~a~hook~to~`#1',~but~LaTeX~was~not~able~to~
-    add~the~hook~to~that~command~because~`#1'~
-    \@@_unpatchable_cases:n {#2} .
+    You~tried~to~add~a~hook~to~'#1',~but~LaTeX~was~unable~to~
+    patch~the~command~because~it~\@@_unpatchable_cases:n {#2}.
   }
 \cs_new:Npn \@@_unpatchable_cases:n #1
   {

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -32,7 +32,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltdefns.dtx}
-             [2021/04/19 v1.5o LaTeX Kernel (definition commands)]
+             [2021/05/27 v1.5p LaTeX Kernel (definition commands)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltdefns.dtx}
@@ -1222,6 +1222,7 @@
 %
 %    The macro firstly checks if the control sequence in question exists
 %    at all.
+% \changes{v1.5p}{2021/05/26}{Normalize error message in \cs{MakeRobust}}
 %    \begin{macrocode}
 %</2ekernel>
 %<latexrelease>\IncludeInRelease{2020/10/01}{\MakeRobust}{\MakeRobust}%
@@ -1230,7 +1231,7 @@
   \count@=\escapechar
   \escapechar=`\\
   \@ifundefined{\expandafter\@gobble\string#1}{%
-    \@latex at error{The control sequence `\string#1' is undefined!%
+    \@latex at error{Command `\string#1' is undefined!%
       \MessageBreak There is nothing here to make robust}%
     \@eha
   }%
@@ -1259,7 +1260,7 @@
         \noexpand\protect\expandafter\noexpand
         \csname\expandafter\@gobble\string#1\space\endcsname}%
     }%
-    {\@latex at info{The control sequence `\string#1' is already robust}}%
+    {\@latex at info{Command `\string#1' is already robust}}%
   }%
   \escapechar=\count@
 }%

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -31,8 +31,8 @@
 %%% From File: ltfilehook.dtx
 %
 %    \begin{macrocode}
-\providecommand\ltfilehookversion{v1.0j}
-\providecommand\ltfilehookdate{2021/04/29}
+\providecommand\ltfilehookversion{v1.0k}
+\providecommand\ltfilehookdate{2021/05/25}
 %    \end{macrocode}
 %
 %<*driver>
@@ -454,6 +454,7 @@
 %
 %
 % \section{The Implementation}
+%
 %    \begin{macrocode}
 %<*2ekernel>
 %    \end{macrocode}
@@ -462,7 +463,9 @@
 %<@@=filehook>
 %    \end{macrocode}
 %
+% \changes{v1.0k}{2021/05/24}{Use \cs{msg_...} instead of \cs{__kernel_msg...}}
 %
+%
 % \subsection{Document and package-level commands}
 %
 %
@@ -605,7 +608,7 @@
     \seq_gpop:NNTF \g_@@_input_file_seq \l_@@_internal_tl
       { \exp_after:wN \@@_file_pop_assign:nnnn \l_@@_internal_tl }
       {
-        \__kernel_msg_error:nnn { hooks } { should-not-happen }
+        \msg_error:nnn { kernel } { should-not-happen }
           { Tried~to~pop~from~an~empty~file~name~stack. }
       }
   }

Modified: trunk/Master/texmf-dist/source/latex-dev/base/lthooks.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/lthooks.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/base/lthooks.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -31,8 +31,8 @@
 %%% From File: lthooks.dtx
 %
 %    \begin{macrocode}
-\def\lthooksversion{v1.0m}
-\def\lthooksdate{2021/04/29}
+\def\lthooksversion{v1.0n}
+\def\lthooksdate{2021/05/26}
 %    \end{macrocode}
 %
 %<*driver>
@@ -1807,8 +1807,9 @@
 %<@@=hook>
 %    \end{macrocode}
 %
-% \changes{v1.0i}{2021/03/18}
-%         {Use \cs{NewModuleRelease}.}
+% \changes{v1.0i}{2021/03/18}{Use \cs{NewModuleRelease}.}
+% \changes{v1.0n}{2021/05/24}{Use \cs{msg_...} instead of \cs{__kernel_msg...}}
+%
 %    \begin{macrocode}
 %<*2ekernel|latexrelease>
 \ExplSyntaxOn
@@ -2230,7 +2231,7 @@
 %   \cs{hook_new:n} is used.
 %    \begin{macrocode}
     \@@_if_declared:nTF {#1}
-      { \__kernel_msg_error:nnn { hooks } { exists } {#1} }
+      { \msg_error:nnn { hooks } { exists } {#1} }
       {
         \tl_new:c { g_@@_#1_declared_tl }
         \@@_make_usable:n {#1}
@@ -2484,7 +2485,7 @@
 %    may change).
 %    \begin{macrocode}
     \@@_if_disabled:nTF {#1}
-      { \__kernel_msg_warning:nnn { hooks } { provide-disabled } {#1} }
+      { \msg_warning:nnn { hooks } { provide-disabled } {#1} }
 %    \end{macrocode}
 %    Otherwise we check if it was already declared.
 %    \begin{macrocode}
@@ -2496,7 +2497,7 @@
 %    the already existing one is not (or vice versa).
 %    \begin{macrocode}
             \str_if_eq:eeF { \tl_use:c { g_@@_#1_reversed_tl } } {#2}
-              { \__kernel_msg_error:nnn { hooks } { provide-error } {#1} }
+              { \msg_error:nnn { hooks } { provide-error } {#1} }
           }
 %    \end{macrocode}
 %    If it wasn't declared, we declared as a normal or reversed hook
@@ -2572,7 +2573,7 @@
   {
     \tl_if_empty:nTF {#1}
       {
-        \__kernel_msg_expandable_error:nn { hooks } { empty-label }
+        \msg_expandable_error:nn { hooks } { empty-label }
         \@@_currname_or_default:
       }
       {
@@ -2609,7 +2610,7 @@
       {
         \tl_if_empty:NTF \@currname
           {
-            \__kernel_msg_expandable_error:nnn { hooks } { should-not-happen }
+            \msg_expandable_error:nnn { kernel } { should-not-happen }
               { Empty~default~label. }
             \@@_make_name:n { label-missing }
           }
@@ -2750,7 +2751,7 @@
 %    \begin{macrocode}
               {
                 \@@_if_disabled:nTF {#1}
-                  { \__kernel_msg_error:nnn { hooks } { hook-disabled } {#1} }
+                  { \msg_error:nnn { hooks } { hook-disabled } {#1} }
                   { \@@_try_declaring_generic_hook:nnn {#1} {#2} {#3} }
               }
           }
@@ -2793,7 +2794,7 @@
             \@@_init_structure:n {#1}
             \@@_tl_gput_right:cn { @@_toplevel~#1 } {#3}
           }
-          { \__kernel_msg_error:nnn { hooks } { misused-top-level } {#1} }
+          { \msg_error:nnn { hooks } { misused-top-level } {#1} }
       }
       {
         \prop_get:cnNTF { g_@@_#1_code_prop } {#2} \l_@@_return_tl
@@ -3279,7 +3280,7 @@
           {#1} {#2} {#4}
         \@@_update_hook_code:n {#1}
       }
-      { \__kernel_msg_error:nnnnnn { hooks } { unknown-rule }
+      { \msg_error:nnnnnn { hooks } { unknown-rule }
                           {#1} {#2} {#3} {#4}        }
   }
 %    \end{macrocode}
@@ -3887,7 +3888,7 @@
 \cs_new_protected:cpn { @@_apply_rule_xE:nnn } #1#2#3
   {
     \@@_debug:n { \@@_msg_pair_found:nnn {#1} {#2} {#3} }
-    \__kernel_msg_error:nnnnnn { hooks } { labels-incompatible }
+    \msg_error:nnnnnn { hooks } { labels-incompatible }
       {#1} {#2} {#3} { 1 }
     \use:c { @@_apply_rule_->:nnn } {#1} {#2} {#3}
     \use:c { @@_apply_rule_<-:nnn } {#1} {#2} {#3}
@@ -3895,7 +3896,7 @@
 \cs_new_protected:cpn { @@_apply_rule_xW:nnn } #1#2#3
   {
     \@@_debug:n { \@@_msg_pair_found:nnn {#1} {#2} {#3} }
-    \__kernel_msg_warning:nnnnnn { hooks } { labels-incompatible }
+    \msg_warning:nnnnnn { hooks } { labels-incompatible }
       {#1} {#2} {#3} { 0 }
   }
 %    \end{macrocode}
@@ -4239,7 +4240,7 @@
 \cs_new_protected:Npn \@@_gput_next_code:nn #1 #2
   {
     \@@_if_disabled:nTF {#1}
-      { \__kernel_msg_error:nnn { hooks } { hook-disabled } {#1} }
+      { \msg_error:nnn { hooks } { hook-disabled } {#1} }
       {
         \@@_init_structure:n {#1}
         \@@_if_usable:nTF {#1}
@@ -4537,8 +4538,18 @@
 %
 %  \subsection{Messages}
 %
+%    Hook errors are LaTeX kernel errors:  
 %    \begin{macrocode}
-\__kernel_msg_new:nnnn { hooks } { labels-incompatible }
+\prop_gput:Nnn \g_msg_module_type_prop { hooks } { LaTeX }
+%    \end{macrocode}
+%    And so are kernel errors (this should move elsewhere eventually).
+%    \begin{macrocode}
+\prop_gput:Nnn \g_msg_module_type_prop { kernel } { LaTeX }
+%\prop_gput:Nnn \g_msg_module_name_prop { kernel } {  }   % <-- currently not working
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\msg_new:nnnn { hooks } { labels-incompatible }
   {
     Labels~'#1'~and~'#2'~are~incompatible
     \str_if_eq:nnF {#3} {??} { ~in~hook~'#3' } .~
@@ -4551,7 +4562,7 @@
 %    \end{macrocode}
 %    
 %    \begin{macrocode}
-\__kernel_msg_new:nnnn { hooks } { exists }
+\msg_new:nnnn { hooks } { exists }
     { Hook~'#1'~ has~ already~ been~ declared. }
     { There~ already~ exists~ a~ hook~ declaration~ with~ this~
       name.\\
@@ -4560,7 +4571,7 @@
 %    
 %
 %    \begin{macrocode}
-\__kernel_msg_new:nnnn { hooks } { hook-disabled }
+\msg_new:nnnn { hooks } { hook-disabled }
   { Cannot~add~code~to~disabled~hook~'#1'. }
   {
     The~hook~'#1'~you~tried~to~add~code~to~was~previously~disabled~
@@ -4570,7 +4581,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\__kernel_msg_new:nnn { hooks } { empty-label }
+\msg_new:nnn { hooks } { empty-label }
   {
     Empty~code~label~\msg_line_context:.~
     Using~'\@@_currname_or_default:'~instead.
@@ -4578,7 +4589,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\__kernel_msg_new:nnn { hooks } { no-default-label }
+\msg_new:nnn { hooks } { no-default-label }
   {
     Missing~(empty)~default~label~\msg_line_context:. \\
     This~command~was~ignored.
@@ -4586,7 +4597,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\__kernel_msg_new:nnnn { hooks } { unknown-rule }
+\msg_new:nnnn { hooks } { unknown-rule }
   { Unknown~ relationship~ '#3'~
     between~ labels~ '#2'~ and~ '#4'~
     \str_if_eq:nnF {#1} {??} { ~in~hook~'#1' }. ~
@@ -4604,9 +4615,9 @@
 %    \end{macrocode}
 %    
 %    \begin{macrocode}
-\__kernel_msg_new:nnnn { hooks } { misused-top-level }
+\msg_new:nnnn { hooks } { misused-top-level }
   {
-    Illegal~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\
+    Illegal~use~of~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\
     'top-level'~is~reserved~for~the~user's~document.
   }
   {
@@ -4618,7 +4629,7 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\__kernel_msg_new:nnn { hooks } { set-top-level }
+\msg_new:nnn { hooks } { set-top-level }
   {
     You~cannot~change~the~default~label~#1~'top-level'.~Illegal \\
     \use:nn { ~ } { ~ } \iow_char:N \\#2{#3} \\
@@ -4627,21 +4638,12 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\__kernel_msg_new:nnn { hooks } { ddhl-deprecated }
+\msg_new:nnn { hooks } { extra-pop-label }
   {
-    \iow_char:N \\DeclareDefaultHookLabel~is~deprecated.\\
-    Use~\iow_char:N \\SetDefaultHookLabel~instead.\\ \\
-    The~deprecated~name~will~be~removed~in~the~next~release.
-  }
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-\__kernel_msg_new:nnn { hooks } { extra-pop-label }
-  {
     Extra~\iow_char:N \\PopDefaultHookLabel. \\
     This~command~will~be~ignored.
   }
-\__kernel_msg_new:nnn { hooks } { missing-pop-label }
+\msg_new:nnn { hooks } { missing-pop-label }
   {
     Missing~\iow_char:N \\PopDefaultHookLabel. \\
     The~label~'#1'~was~pushed~but~never~popped.~Something~is~wrong.
@@ -4649,9 +4651,9 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\__kernel_msg_new:nnn { hooks } { should-not-happen }
+\msg_new:nnn { kernel } { should-not-happen }
   {
-    ERROR!~This~should~not~happen.~#1 \\
+    This~should~not~happen.~#1 \\
     Please~report~at~https://github.com/latex3/latex2e.
   }
 %    \end{macrocode}
@@ -4659,14 +4661,14 @@
 %
 %
 %    \begin{macrocode}
-\__kernel_msg_new:nnn { hooks } { provide-disabled }
+\msg_new:nnn { hooks } { provide-disabled }
   {
-    Can't~ provide~ hook~ '#1'~ because~ it~ is~ disabled!
+    Cannot~ provide~ hook~ '#1'~ because~ it~ is~ disabled!
   }
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\__kernel_msg_new:nnnn { hooks } { provide-error }
+\msg_new:nnnn { hooks } { provide-error }
   {
     Hook~'#1'~ already~ declared~ as~ a~
     \@@_if_reversed:nTF {#1} { reversed } { normal }~ hook!
@@ -4764,10 +4766,9 @@
 % \begin{macro}{\SetDefaultHookLabel}
 % \begin{macro}{\PushDefaultHookLabel}
 % \begin{macro}{\PopDefaultHookLabel}
-% \begin{macro}{\DeclareDefaultHookLabel}
 %
 % \fmiinline{Docu task: At some point this code for this should be moved to the
-%    label section earlier and here we should keep only the interface commands.}  
+%    label section earlier and here we should keep only the interface commands.}
 %
 % \begin{macro}{\@@_curr_name_push:n,\@@_curr_name_push_aux:n}
 % \begin{macro}{\@@_curr_name_pop:}
@@ -4829,11 +4830,11 @@
 \cs_new_protected:Npn \@@_curr_name_push_aux:n #1
   {
     \tl_if_blank:nTF {#1}
-      { \__kernel_msg_error:nn { hooks } { no-default-label } }
+      { \msg_error:nn { hooks } { no-default-label } }
       {
         \str_if_eq:nnTF {#1} { top-level }
           {
-            \__kernel_msg_error:nnnnn { hooks } { set-top-level }
+            \msg_error:nnnnn { hooks } { set-top-level }
               { to } { PushDefaultHookLabel } {#1}
           }
           {
@@ -4851,7 +4852,7 @@
   {
     \seq_gpop:NNTF \g_@@_name_stack_seq \l_@@_return_tl
       { \tl_gset_eq:NN \g_@@_hook_curr_name_tl \l_@@_return_tl }
-      { \__kernel_msg_error:nn { hooks } { extra-pop-label } }
+      { \msg_error:nn { hooks } { extra-pop-label } }
   }
 %    \end{macrocode}
 %
@@ -4866,7 +4867,7 @@
   {
     \seq_gpop:NNT \g_@@_name_stack_seq \l_@@_return_tl
       {
-        \__kernel_msg_error:nnx { hooks } { missing-pop-label }
+        \msg_error:nnx { hooks } { missing-pop-label }
           { \g_@@_hook_curr_name_tl }
         \tl_gset_eq:NN \g_@@_hook_curr_name_tl \l_@@_return_tl
         \@@_end_document_label_check:
@@ -4884,7 +4885,7 @@
   {
     \seq_if_empty:NTF \g_@@_name_stack_seq
       {
-        \__kernel_msg_error:nnnnn { hooks } { set-top-level }
+        \msg_error:nnnnn { hooks } { set-top-level }
           { for } { SetDefaultHookLabel } {#1}
       }
       { \exp_args:Nx \@@_set_default_label:n { \@@_make_name:n {#1} } }
@@ -4893,16 +4894,11 @@
   {
     \str_if_eq:nnTF {#1} { top-level }
       {
-        \__kernel_msg_error:nnnnn { hooks } { set-top-level }
+        \msg_error:nnnnn { hooks } { set-top-level }
           { to } { SetDefaultHookLabel } {#1}
       }
       { \tl_gset:Nn \g_@@_hook_curr_name_tl {#1} }
   }
-\NewDocumentCommand \DeclareDefaultHookLabel { m }
-  {
-    \__kernel_msg_error:nn { hooks } { ddhl-deprecated }
-    \SetDefaultHookLabel {#1}
-  }
 %    \end{macrocode}
 %
 %   The label is only automatically updated with \cs{@onefilewithoptions}
@@ -4942,7 +4938,6 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
 %
 %
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltoutput.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltoutput.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltoutput.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -37,7 +37,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltoutput.dtx}
-             [2020/12/06 v1.4f LaTeX Kernel (Output Routine)]
+             [2021/05/05 v1.4g LaTeX Kernel (Output Routine)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltoutput.dtx}
@@ -1134,7 +1134,7 @@
   \global \advance \@colht \@tempdima
   \ifx \@dbltoplist \@empty
   \else
-    \@latexerr{Float(s) lost}\@ehb
+    \@latex at error{Float(s) lost}\@ehb
     \let \@dbltoplist \@empty
   \fi
   \@cons \@dbltoplist \@currbox
@@ -1525,7 +1525,7 @@
        \global \@colroom \@colht
        \ifx \@currlist\@empty
        \else
-          \@latexerr{Float(s) lost}\@ehb
+          \@latex at error{Float(s) lost}\@ehb
           \global \let \@currlist \@empty
        \fi
        \@makefcolumn\@deferlist
@@ -3920,9 +3920,9 @@
 %</trace>
    \@tempskipa#2\relax
    \ifdim \@tempskipa>.5\maxdimen
-     \@latexerr{Suggested\space extra\space height\space
-                (\the\@tempskipa)\space dangerously\space
-                large}\@eha
+     \@latex at error{Suggested\space extra\space height\space
+                   (\the\@tempskipa)\space dangerously\space
+                   large}\@eha
    \else
      \ifdim \vsize<.5\maxdimen
 %<*trace>
@@ -3940,8 +3940,8 @@
        \fi
 %</trace>
      \else
-       \@latexerr{Page\space height\space already\space
-                  too\space large}\@eha
+       \@latex at error{Page\space height\space already\space
+                     too\space large}\@eha
      \fi
    \fi
 }

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltpara.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltpara.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltpara.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -14,8 +14,8 @@
 %%% From File: ltpara.dtx
 %
 %    \begin{macrocode}
-\def\ltparaversion{v1.0f}
-\def\ltparadate{2021/04/16}
+\def\ltparaversion{v1.0g}
+\def\ltparadate{2021/05/27}
 %    \end{macrocode}
 %<*driver>
 \documentclass{l3doc}
@@ -672,7 +672,9 @@
 %<@@=para>
 %    \end{macrocode}
 %
+% \changes{v1.0g}{2021/05/24}{Use \cs{msg_...} instead of \cs{__kernel_msg...}}
 %
+%
 %    \begin{macrocode}
 %<*2ekernel|latexrelease>
 \ExplSyntaxOn
@@ -751,7 +753,7 @@
 %    we can detect and report if the \hook{para/before} hook illegally
 %    changed out of vmode.
 %    \begin{macrocode}
-  \tex_everypar:D { \__kernel_msg_error:nnnn {para}{mode}{before}{vertical} }
+  \tex_everypar:D { \msg_error:nnnn { hooks }{ para-mode }{before}{vertical} }
   \@kernel at before@para at before
   \hook_use:n {para/before}
 %    \end{macrocode}
@@ -785,7 +787,7 @@
 %    If we aren't in horizontal mode any longer the hooks above misbehaved.
 %    \begin{macrocode}
   \if_mode_horizontal: \else:
-    \__kernel_msg_error:nnnn {para}{mode}{begin}{vertical} \fi:
+    \msg_error:nnnn { hooks }{ para-mode }{begin}{vertical} \fi:
 %    \end{macrocode}
 %    Finally we reinsert the indentation box (unless suppressed) and
 %    then call \cs{everypar} the way legacy \LaTeX\ code expects it.
@@ -1047,7 +1049,7 @@
 %    If we haven't been in horizontal mode then the earlier hook
 %    \hook{para/end} is at fault and we report that.
 %    \begin{macrocode}
-         { \__kernel_msg_error:nnnn {para}{mode}{end}{horizontal} }
+         { \msg_error:nnnn { hooks }{ para-mode }{end}{horizontal} }
 %    \end{macrocode}
 %    Finally close out the nested conditionals.
 %    \begin{macrocode}
@@ -1088,7 +1090,7 @@
            \@@_handle_indent:
            \the\everypar }
        }
-       { \__kernel_msg_error:nn {para}{raw} }
+       { \msg_error:nn { kernel }{ raw-para } }
   \tex_indent:D
 }
 %    \end{macrocode}
@@ -1101,7 +1103,7 @@
            \tex_everypar:D { \g_@@_standard_everypar_tl }
            \the\everypar }
        }
-       { \__kernel_msg_error:nn {para}{raw} }
+       { \msg_error:nn { kernel }{ raw-para } }
   \tex_noindent:D
 }
 %    \end{macrocode}
@@ -1158,8 +1160,9 @@
 %    paragraph.
 %    The first argument is the hook name second the mode
 %    it should have stayed in but didn't.
-%    \begin{macrocode}
-\__kernel_msg_new:nnnn {para} {mode}
+%
+%    \begin{macrocode} 
+\msg_new:nnnn { hooks } { para-mode }
   {
     Illegal~mode~ change~ in~ hook~ 'para/#1'.\\
     Hook~ code~ did~ not~ remain~ in~ #2~ mode.
@@ -1168,7 +1171,7 @@
     Paragraph~ hooks~ cannot~ change~ the~ TeX~ mode~ without~ causing~
     endless~ recursion.~ The~ hook~ code~ in~ 'para/#1'~ needs~ to~ stay~
     in~ #2~ mode,~ but~ it~ didn't.~ Examine~ the~ hook~
-    code~ with~ \ShowHook~ to~ find~ the~ issue.
+    code~ with~ \iow_char:N \\ShowHook~ to~ find~ the~ issue.
   }
 %    \end{macrocode}
 %
@@ -1175,14 +1178,16 @@
 %    And here is one used in the \enquote{raw} commands when they are
 %    used outside of vertical mode. 
 %    \begin{macrocode}
-\__kernel_msg_new:nnnn {para} {raw}
+\msg_new:nnnn { kernel } { raw-para }
   {
-     Paragraph started while not in vertical mode.
+     Not~ in~ vertical~ mode.
   }
   {
-    Starting a paragraph with \RawIndent or \RawNoindent
-    (or \para_raw_indent: or \para_raw_noindent:) is only
-    allowed if LaTeX is in vertical mode.
+    Starting~ a~ paragraph~ with~ \iow_char:N \\RawIndent~ or~
+    \iow_char:N \\RawNoindent \\
+    (or~ \iow_char:N \\para_raw_indent:~ or~
+    \iow_char:N \\para_raw_noindent:)~ is~ only~ allowed \\
+    if~ LaTeX~ is~ in~ vertical~ mode.
   }
 %    \end{macrocode}
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltvers.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltvers.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -112,10 +112,10 @@
 %</2ekernel>
 %<latexrelease>\edef\latexreleaseversion
 %<*2ekernel|latexrelease>
-   {2021-06-01}
+   {2021-12-01}
 %</2ekernel|latexrelease>
 %<*2ekernel>
-\def\patch at level{-3}
+\def\patch at level{0}
 %    \end{macrocode}
 %
 % \begin{macro}{\development at branch@name}

Modified: trunk/Master/texmf-dist/source/latex-dev/firstaid/firstaid.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/firstaid/firstaid.ins	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/firstaid/firstaid.ins	2021-06-05 21:10:24 UTC (rev 59474)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 2020,2021
+%% Copyright (C) 2020-2021
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,6 +1,7 @@
 % \iffalse meta-comment
 %
-%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020,2021 
+%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2021
+%%
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %
@@ -110,8 +111,8 @@
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\def\LaTeXFirstAidDate{2021/02/24}
-\def\LaTeXFirstAidVersion{v1.0k}
+\def\LaTeXFirstAidDate{2021/03/15}
+\def\LaTeXFirstAidVersion{v1.0l}
 %    \end{macrocode}
 %
 %    \begin{macrocode}
@@ -507,6 +508,44 @@
 %    \end{macrocode}
 %
 %
+%
+%
+%
+% \subsection{The \pkg{bigfoot} first aid}
+%
+%    The \pkg{bigfoot} packages makes the assumption that two
+%    \cs{newinsert} allocations have a recognisable order in their
+%    numbers, the second one has a lower number. This was correct in
+%    the classic \TeX{} implementation but with the extended
+%    allocation possibilities of all modern engines is no longer the
+%    case and there is a point where the allocations take a ``jump''
+%    breaking the odering assumption. These days we are fairly close
+%    to that point and depending on how many packages are loaded
+%    before \pkg{bigfoot} the package breaks.
+%
+%    This firstaid therefore jumps over the problematical point by
+%    pushing the count allocation to a safe value if necessary.
+%    \begin{macrocode}
+\AddToHook{file/after/bigfoot.sty}{%
+   \ifnum\count10<\insc at unt
+     \global\count10=\insc at unt
+   \fi
+%    \end{macrocode}
+%    We also correct a bug that \pkg{bigfoot} tries to shift mark
+%    registers, but in \LaTeX{} (at least since 2015) the allocation
+%    number is not 266, so it does that to a random number of mark
+%    registers (which sometimes blows up depending on the value in 266).
+%    \begin{macrocode}
+    \def\FN at allmarks#1{\@elt{#1}%
+      \ifnum#1<\count256 %<--- problem: 266 isn't the counter for marks
+        \expandafter\FN at allmarks\expandafter{\number\numexpr#1+\@ne}%
+        \fi}%
+}
+%    \end{macrocode}
+%
+%
+%
+%
 % \subsection[Temporary fixes for the kernel (until the next
 %             patch-level release)]
 %    {Temporary fixes for the kernel \\

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/longtable.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/longtable.dtx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/longtable.dtx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -37,7 +37,7 @@
 %<driver> \ProvidesFile{longtable.drv}
 % \fi
 %         \ProvidesFile{longtable.dtx}
-          [2021-04-21 v4.15 Multi-page Table package (DPC)]
+          [2021-05-07 v4.16 Multi-page Table package (DPC)]
 %
 % \iffalse
 %<*driver>
@@ -1970,6 +1970,8 @@
 %      {Call \cs{LT at makecaption} not \cs{LT at mkcaption}}
 % \changes{v3.14}{1995/05/24}
 %      {Add new control argument}
+% \changes{v4.16}{2021/05/07}
+%      {use \cs{ext at table} gh/561}
 %    \begin{macrocode}
 \def\LT at c@ption#1[#2]#3{%
   \LT at makecaption#1\fnum at table{#3}%
@@ -1976,7 +1978,7 @@
   \def\@tempa{#2}%
   \ifx\@tempa\@empty\else
      {\let\\\space
-     \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
+     \addcontentsline{\ext at table}{table}{\protect\numberline{\thetable}{#2}}}%
   \fi}
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsbsy.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsbsy.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsbsy.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -6,8 +6,8 @@
 %%
 %% amsbsy.dtx 
 %% 
-%% Copyright 1995, 1999 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 1995, 1999 American Mathematical Society.
+%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -19,7 +19,7 @@
 %% 
 %% This work has the LPPL maintenance status `maintained'.
 %% 
-%% The Current Maintainer of this work is the LaTeX3 project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %% 
 \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
 [1994/12/01]% LaTeX date must December 1994 or later

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amscd.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amscd.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amscd.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -6,8 +6,8 @@
 %%
 %% amscd.dtx 
 %% 
-%% Copyright 1995, 1999 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 1995, 1999 American Mathematical Society.
+%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -19,7 +19,7 @@
 %% 
 %% This work has the LPPL maintenance status `maintained'.
 %% 
-%% The Current Maintainer of this work is the LaTeX3 project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %% 
 \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
 [1994/12/01]% LaTeX date must December 1994 or later

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsgen.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsgen.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsgen.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -6,8 +6,8 @@
 %%
 %% amsgen.dtx 
 %% 
-%% Copyright 1995, 1999 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 1995, 1999 American Mathematical Society.
+%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -19,7 +19,7 @@
 %% 
 %% This work has the LPPL maintenance status `maintained'.
 %% 
-%% The Current Maintainer of this work is the LaTeX3 project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %% 
 \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
 [1994/12/01]% LaTeX date must December 1994 or later

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath-2018-12-01.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath-2018-12-01.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath-2018-12-01.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -6,8 +6,8 @@
 %%
 %% amsmath.dtx
 %%
-%% Copyright 1995, 1999, 2000, 2013 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 1995, 1999, 2000, 2013 American Mathematical Society.
+%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -19,7 +19,7 @@
 %%
 %% This work has the LPPL maintenance status `maintained'.
 %%
-%% The Current Maintainer of this work is the LaTeX3 project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %%
 \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
 [1994/12/01]% LaTeX date must be December 1994 or later

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -6,8 +6,8 @@
 %%
 %% amsmath.dtx 
 %% 
-%% Copyright 1995, 1999, 2000, 2013 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 1995, 1999, 2000, 2013 American Mathematical Society.
+%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -19,7 +19,7 @@
 %% 
 %% This work has the LPPL maintenance status `maintained'.
 %% 
-%% The Current Maintainer of this work is the LaTeX3 project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %% 
 \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
 [1994/12/01]% LaTeX date must be December 1994 or later
@@ -27,7 +27,7 @@
 \providecommand\DeclareCurrentRelease[2]{}
 \DeclareRelease{}{2018-12-01}{amsmath-2018-12-01.sty}
 \DeclareCurrentRelease{}{2019-04-01}
-\ProvidesPackage{amsmath}[2020/09/23 v2.17i AMS math features]
+\ProvidesPackage{amsmath}[2021/04/20 v2.17j AMS math features]
 \edef\@temp{\catcode 96=\number\catcode 96 }
 \catcode\string `\`=12
 \def\do#1{\catcode\number`#1=\number\catcode`#1}
@@ -1162,7 +1162,7 @@
   unbreakable box\MessageBreak
 (e.g., split, aligned, gathered, ...).}%
 }
-\def\math at cr{\relax\iffalse{\fi\ifnum0=`}\fi
+\protected\def\math at cr{\relax\iffalse{\fi\ifnum0=`}\fi
   \@ifstar{\global\@eqpen\@M\math at cr@}%
           {\global\@eqpen
              \ifnum\dspbrk at lvl <\z@ \interdisplaylinepenalty

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -6,8 +6,8 @@
 %%
 %% amsopn.dtx 
 %% 
-%% Copyright 1995, 1999 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 1995, 1999 American Mathematical Society.
+%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -19,7 +19,7 @@
 %% 
 %% This work has the LPPL maintenance status `maintained'.
 %% 
-%% The Current Maintainer of this work is the LaTeX3 project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %% 
 \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
 [1994/12/01]% LaTeX date must December 1994 or later

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstex.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstex.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -1,8 +1,8 @@
 %
 % \iffalse meta-comment
 %
-% Copyright 1995, 1999 American Mathematical Society.
-% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 1995, 1999 American Mathematical Society.
+% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -14,7 +14,7 @@
 %
 % This work has the LPPL maintenance status `maintained'.
 %
-% The Current Maintainer of this work is the LaTeX3 Project.
+% The Current Maintainer of this work is the LaTeX Project.
 %
 % \fi
 %

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstext.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstext.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstext.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -6,8 +6,8 @@
 %%
 %% amstext.dtx 
 %% 
-%% Copyright 1995, 1999 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 1995, 1999 American Mathematical Society.
+%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -19,7 +19,7 @@
 %% 
 %% This work has the LPPL maintenance status `maintained'.
 %% 
-%% The Current Maintainer of this work is the LaTeX3 project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %% 
 \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
 [1994/12/01]% LaTeX date must be December 1994 or later

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsxtra.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsxtra.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsxtra.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -6,8 +6,8 @@
 %%
 %% amsxtra.dtx 
 %% 
-%% Copyright 1995, 1999 American Mathematical Society.
-%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
+%% Copyright (C) 1995, 1999 American Mathematical Society.
+%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -19,7 +19,7 @@
 %% 
 %% This work has the LPPL maintenance status `maintained'.
 %% 
-%% The Current Maintainer of this work is the LaTeX3 project.
+%% The Current Maintainer of this work is the LaTeX Project.
 %% 
 \ProvidesPackage{amsxtra}[1999/11/15 v1.2c AMS extra commands]
 \@ifpackageloaded{amstex}{}{%

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -42,8 +42,8 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 %%% From File: ltfilehook.dtx
-\providecommand\ltfilehookversion{v1.0j}
-\providecommand\ltfilehookdate{2021/04/29}
+\providecommand\ltfilehookversion{v1.0k}
+\providecommand\ltfilehookdate{2021/05/25}
 \ProvidesPackage{atveryend-ltx}
    [2020/08/19 v1.0a
      Emulation of the original atvery package^^Jwith kernel methods]

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/doc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/doc.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/doc.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -43,7 +43,7 @@
 %% extension .ins) which are part of the distribution.
 \NeedsTeXFormat{LaTeX2e}[1994/12/01]
  \ProvidesPackage{doc}
-  [2020/11/23 v2.1m
+  [2021/05/28 v2.1n
    Standard LaTeX documentation package (FMi)]
 %%
 %% Package `doc' to use with LaTeX 2e
@@ -274,7 +274,7 @@
   \obeylines%
   \gdef\verb at eol@error{\obeylines%
     \def^^M{\verb at egroup\@latex at error{%
-           Text for \noexpand\verb command ended by end of line}\@ehc}}%
+            \noexpand\verb ended by end of line}\@ehc}}%
 \endgroup
 \def\verbatim at nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
 \def\do at noligs#1{%

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fltrace.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fltrace.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fltrace.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -112,7 +112,7 @@
   \global \advance \@colht \@tempdima
   \ifx \@dbltoplist \@empty
   \else
-    \@latexerr{Float(s) lost}\@ehb
+    \@latex at error{Float(s) lost}\@ehb
     \let \@dbltoplist \@empty
   \fi
   \@cons \@dbltoplist \@currbox

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latex.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latex.ltx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latex.ltx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -691,8 +691,8 @@
 %%% From File: ltvers.dtx
 \def\fmtname{LaTeX2e}
 \edef\fmtversion
-   {2021-06-01}
-\def\patch at level{-3}
+   {2021-12-01}
+\def\patch at level{0}
 \edef\development at branch@name{develop \the\year-\the\month-\the\day}
 \iffalse
 \def\reserved at a#1/#2/#3\@nil{%
@@ -1365,7 +1365,7 @@
   \count@=\escapechar
   \escapechar=`\\
   \@ifundefined{\expandafter\@gobble\string#1}{%
-    \@latex at error{The control sequence `\string#1' is undefined!%
+    \@latex at error{Command `\string#1' is undefined!%
       \MessageBreak There is nothing here to make robust}%
     \@eha
   }%
@@ -1385,7 +1385,7 @@
         \noexpand\protect\expandafter\noexpand
         \csname\expandafter\@gobble\string#1\space\endcsname}%
     }%
-    {\@latex at info{The control sequence `\string#1' is already robust}}%
+    {\@latex at info{Command `\string#1' is already robust}}%
   }%
   \escapechar=\count@
 }%
@@ -1672,8 +1672,8 @@
     \xdef#1{\the\toks@}%
   \endgroup}
 %%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.0d}
-\def\ltcmddate{2021-04-19}
+\def\ltcmdversion{v1.0e}
+\def\ltcmddate{2021-05-24}
 \message{document commands,}
 \ExplSyntaxOn
 \tl_new:N \l__cmd_arg_spec_tl
@@ -1714,7 +1714,8 @@
 \tl_new:N \l__cmd_tmpa_tl
 \tl_new:N \l__cmd_tmpb_tl
 \cs_new_eq:NN \__cmd_tmp:w ?
-\msg_redirect_module:nnn { LaTeX / ltcmd } { info } { none }
+\msg_redirect_module:nnn { cmd } { info } { none }
+\prop_gput:Nnn \g_msg_module_type_prop { cmd } { LaTeX }
 \cs_new_protected:Npn \__cmd_declare_cmd:Nnn
   {
     \bool_set_false:N \l__cmd_expandable_bool
@@ -1729,7 +1730,7 @@
   {
     \cs_if_exist:NTF #1
       {
-        \__kernel_msg_info:nnxx { ltcmd } { redefine-command }
+        \msg_info:nnxx { cmd } { redefine-command }
           { \token_to_str:N #1 } { \tl_to_str:n {#2} }
       }
       {
@@ -1737,10 +1738,10 @@
           { \cs_if_exist_p:c { \cs_to_str:N #1 ~ code } }
           { \cs_if_exist_p:c { \cs_to_str:N #1 ~ defaults } }
           {
-            \__kernel_msg_warning:nnx { ltcmd } { unsupported-let }
+            \msg_warning:nnx { cmd } { unsupported-let }
               { \token_to_str:N #1 }
           }
-        \__kernel_msg_info:nnxx { ltcmd } { define-command }
+        \msg_info:nnxx { cmd } { define-command }
           { \token_to_str:N #1 } { \tl_to_str:n {#2} }
       }
     \bool_set_false:N \l__cmd_environment_bool
@@ -1846,11 +1847,11 @@
       { \tl_trim_spaces:o { \l__cmd_environment_str } }
     \cs_if_exist:cTF { \l__cmd_environment_str }
       {
-        \__kernel_msg_info:nnxx { ltcmd } { redefine-environment }
+        \msg_info:nnxx { cmd } { redefine-environment }
           { \l__cmd_environment_str } { \tl_to_str:n {#2} }
       }
       {
-        \__kernel_msg_info:nnxx { ltcmd } { define-environment }
+        \msg_info:nnxx { cmd } { define-environment }
           { \l__cmd_environment_str } { \tl_to_str:n {#2} }
       }
     \bool_set_false:N \l__cmd_expandable_bool
@@ -1938,7 +1939,7 @@
   }
 \cs_new_protected:Npn \__cmd_defaults_error:w \q_recursion_stop
   {
-    \__kernel_msg_error:nnx { ltcmd } { loop-in-defaults }
+    \msg_error:nnx { cmd } { loop-in-defaults }
       { \__cmd_environment_or_command: }
   }
 \cs_new_protected:Npn \__cmd_defaults_def:
@@ -2009,8 +2010,7 @@
     \__cmd_end_expandable_defaults:nnnNNn {#1} { } {#1} #2#3
       { } { } { } { } { } { } { } { } { } { }
       {
-        \__kernel_msg_expandable_error:nnf
-          { ltcmd } { loop-in-defaults }
+        \msg_expandable_error:nnf { cmd } { loop-in-defaults }
           { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N #4 } }
         \use_iv:nnnn
       }
@@ -2052,7 +2052,7 @@
       \q_recursion_tail \q_recursion_tail \q_recursion_tail \q_recursion_stop
     \int_compare:nNnT \l__cmd_current_arg_int > 9
       {
-        \__kernel_msg_error:nnxx { ltcmd } { too-many-arguments }
+        \msg_error:nnxx { cmd } { too-many-arguments }
           { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
         \__cmd_bad_def:wn
       }
@@ -2060,7 +2060,7 @@
       {
         \tl_if_empty:NF \l__cmd_last_delimiters_tl
           {
-            \__kernel_msg_error:nnxx { ltcmd } { expandable-ending-optional }
+            \msg_error:nnxx { cmd } { expandable-ending-optional }
               { \iow_char:N \\ \l__cmd_function_tl } { \tl_to_str:n {#1} }
             \__cmd_bad_def:wn
           }
@@ -2084,11 +2084,11 @@
             { \str_if_eq_p:nn {#1} { u } }
           }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { xparse-argument-type }
+            \msg_error:nnxx { cmd } { xparse-argument-type }
               { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
           }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { unknown-argument-type }
+            \msg_error:nnxx { cmd } { unknown-argument-type }
               { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
           }
         \__cmd_bad_def:wn
@@ -2124,7 +2124,7 @@
     \quark_if_recursion_tail_stop_do:nn {#2} { \__cmd_bad_arg_spec:wn }
     \bool_if:NT \l__cmd_expandable_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { processor-in-expandable }
+        \msg_error:nnxx { cmd } { processor-in-expandable }
           { \iow_char:N \\ \l__cmd_function_tl } { \tl_to_str:n {#1} }
         \__cmd_bad_def:wn
       }
@@ -2138,7 +2138,7 @@
     \quark_if_recursion_tail_stop_do:nn {#1} { \__cmd_bad_arg_spec:wn }
     \bool_if:NT \l__cmd_long_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { two-markers }
+        \msg_error:nnxx { cmd } { two-markers }
           { \__cmd_environment_or_command: } { + }
         \__cmd_bad_def:wn
       }
@@ -2151,7 +2151,7 @@
     \quark_if_recursion_tail_stop_do:nn {#1} { \__cmd_bad_arg_spec:wn }
     \bool_if:NT \l__cmd_obey_spaces_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { two-markers }
+        \msg_error:nnxx { cmd } { two-markers }
           { \__cmd_environment_or_command: } { ! }
         \__cmd_bad_def:wn
       }
@@ -2234,8 +2234,7 @@
   {
     \bool_if:NF \l__cmd_environment_bool
       {
-        \__kernel_msg_error:nnxx
-          { ltcmd } { invalid-command-arg }
+        \msg_error:nnxx { cmd } { invalid-command-arg }
           { \__cmd_environment_or_command: } { b }
         \__cmd_bad_def:wn
       }
@@ -2242,7 +2241,7 @@
     \tl_clear:N \l__cmd_last_delimiters_tl
     \__cmd_add_arg_spec:n { b }
     \quark_if_recursion_tail_stop:n {#1}
-    \__kernel_msg_error:nnxx { ltcmd } { arg-after-body }
+    \msg_error:nnxx { cmd } { arg-after-body }
       { \__cmd_environment_or_command: }
       { \tl_to_str:n {#1} }
     \__cmd_bad_def:wn
@@ -2251,7 +2250,7 @@
   {
     \tl_trim_spaces_apply:nN {#1} \tl_if_single_token:nF
       {
-        \__kernel_msg_error:nnxx { ltcmd } { not-single-token }
+        \msg_error:nnxx { cmd } { not-single-token }
           { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
         \__cmd_bad_def:wn
       }
@@ -2266,8 +2265,7 @@
             { \use_none:n }
         }
       {
-        \__kernel_msg_error:nnxxx
-          { ltcmd } { forbidden-implicit-group-token }
+        \msg_error:nnxxx { cmd } { forbidden-implicit-group-token }
           { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
           {
             \token_if_eq_meaning:NNTF #1 \c_group_begin_token
@@ -2280,8 +2278,7 @@
   {
     \bool_if:NT \l__cmd_expandable_bool
       {
-        \__kernel_msg_error:nnxx
-          { ltcmd } { invalid-expandable-argument-type }
+        \msg_error:nnxx { cmd } { invalid-expandable-argument-type }
           { \iow_char:N \\ \l__cmd_function_tl } { \tl_to_str:n {#1} }
         \__cmd_bad_def:wn
       }
@@ -2293,8 +2290,7 @@
       {
         \tl_if_empty:NF \l__cmd_last_delimiters_tl
           {
-            \__kernel_msg_error:nnxx
-              { ltcmd } { invalid-after-optional-expandably }
+            \msg_error:nnxx { cmd } { invalid-after-optional-expandably }
               { \iow_char:N \\ \l__cmd_function_tl } { \tl_to_str:n {#1} }
             \__cmd_bad_def:wn
           }
@@ -2306,7 +2302,7 @@
       {
         \tl_if_eq:nnT {##1} {#1}
           {
-            \__kernel_msg_warning:nnxx { ltcmd } { optional-mandatory }
+            \msg_warning:nnxx { cmd } { optional-mandatory }
               {#2} {#3}
           }
       }
@@ -2313,7 +2309,7 @@
   }
 \cs_new_protected:Npn \__cmd_bad_arg_spec:wn #1 \__cmd_break_point:n #2
   {
-    \__kernel_msg_error:nnxx { ltcmd } { bad-arg-spec }
+    \msg_error:nnxx { cmd } { bad-arg-spec }
       { \__cmd_environment_or_command: } { \tl_to_str:n {#2} }
   }
 \cs_new_protected:Npn \__cmd_bad_def:wn #1 \__cmd_break_point:n #2 { }
@@ -2325,7 +2321,7 @@
       {
         \bool_if:NT \l__cmd_expandable_bool
           {
-            \__kernel_msg_error:nnx { ltcmd } { inconsistent-long }
+            \msg_error:nnx { cmd } { inconsistent-long }
               { \iow_char:N \\ \l__cmd_function_tl }
             \__cmd_bad_def:wn
           }
@@ -2347,7 +2343,7 @@
   {
     \bool_if:NT \l__cmd_some_obey_spaces_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { non-trailing-obey-spaces }
+        \msg_error:nnxx { cmd } { non-trailing-obey-spaces }
           { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
         \__cmd_bad_def:wn
       }
@@ -2898,7 +2894,7 @@
     \__cmd_peek_nonspace_remove:NTF #1
       { \__cmd_grab_D_call:Nw #1 }
       {
-        \__kernel_msg_error:nnxx { ltcmd } { missing-required }
+        \msg_error:nnxx { cmd } { missing-required }
           { \__cmd_environment_or_command: }
           { \token_to_str:N #1 }
         \__cmd_add_arg:o \c_novalue_tl
@@ -3042,7 +3038,7 @@
     \exp_after:wN \exp_after:wN \exp_after:wN
       \peek_meaning_remove:NTF \char_generate:nn { \tex_endlinechar:D } { 6 }
       {
-        \__kernel_msg_error:nnxxx { ltcmd } { verbatim-newline }
+        \msg_error:nnxxx { cmd } { verbatim-newline }
           { \__cmd_environment_or_command: }
           { \tl_to_str:N \l__cmd_v_arg_tl }
           { \tl_to_str:n {#1} }
@@ -3049,7 +3045,7 @@
         \__cmd_add_arg:o \c_novalue_tl
       }
       {
-        \__kernel_msg_error:nnxxx { ltcmd } { verbatim-tokenized }
+        \msg_error:nnxxx { cmd } { verbatim-tokenized }
           { \__cmd_environment_or_command: }
           { \tl_to_str:N \l__cmd_v_arg_tl }
           { \tl_to_str:n {#1} }
@@ -3219,8 +3215,7 @@
               \q_nil { } ##2 \ERROR \q__cmd \ERROR
           }
           {
-            \__kernel_msg_expandable_error:nnff
-              { ltcmd } { missing-required }
+            \msg_expandable_error:nnff { cmd } { missing-required }
               { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N ##5 } }
               { \tl_to_str:n {##2} }
             ##4 {#1} \q__cmd ##5 ##6 {##7}
@@ -3247,8 +3242,7 @@
               ##6 \ERROR
           }
           {
-            \__kernel_msg_expandable_error:nnff
-              { ltcmd } { missing-required }
+            \msg_expandable_error:nnff { cmd } { missing-required }
               { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N ##4 } }
               { \tl_to_str:n {##2} }
             ##3 {#1} \q__cmd ##4 ##5 {##6}
@@ -3329,7 +3323,7 @@
                   \ProcessedArgument
                   \q_stop
               }
-            \__kernel_msg_error:nnxxx { ltcmd } { split-excess-tokens }
+            \msg_error:nnxxx { cmd } { split-excess-tokens }
               { \tl_to_str:n {#3} } { \int_eval:n { #2 + 1 } }
               { \tl_to_str:n {#4} }
           }
@@ -3369,11 +3363,11 @@
   {
     #1
       {
-        \__kernel_msg_error:nnx { ltcmd } { non-xparse }
+        \msg_error:nnx { cmd } { non-xparse }
           { \__cmd_environment_or_command: }
       }
       {
-        \__kernel_msg_error:nnx { ltcmd } { unknown }
+        \msg_error:nnx { cmd } { unknown }
           { \__cmd_environment_or_command: }
       }
   }
@@ -3435,11 +3429,11 @@
         }
         { \group_end: \use_ii:nnn }
       {
-        \__kernel_msg_error:nnxx { ltcmd } { not-definable }
+        \msg_error:nnxx { cmd } { not-definable }
           { \tl_to_str:n {#1} } { \token_to_str:N #2 }
       }
       {
-        \__kernel_msg_error:nnxx { ltcmd } { not-one-token }
+        \msg_error:nnxx { cmd } { not-one-token }
           { \tl_to_str:n {#1} } { \token_to_str:N #2 }
       }
     }
@@ -3555,7 +3549,7 @@
         '
       }
   }
-\__kernel_msg_new:nnnn { ltcmd } { arg-after-body }
+\msg_new:nnnn { cmd } { arg-after-body }
   { In~the~definition~of~#1,~b~(body)~argument~must~be~last. }
   {
     The~'body'~argument~type~is~followed~by~'#2'~in~the~argument~
@@ -3562,7 +3556,7 @@
     specification~of~the~#1.~This~is~not~allowed.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { bad-arg-spec }
+\msg_new:nnnn { cmd } { bad-arg-spec }
   { Bad~argument~specification~'#2'~for~#1. }
   {
     The~argument~specification~provided~was~not~valid:~
@@ -3569,7 +3563,7 @@
     one~or~more~mandatory~pieces~of~information~were~missing.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { command-already-defined }
+\msg_new:nnnn { cmd } { command-already-defined }
   { Command~'#1'~already~defined! }
   {
     You~have~used~#2~
@@ -3576,7 +3570,7 @@
     with~a~command~that~already~has~a~definition. \\ \\
     The~existing~definition~of~'#1'~will~not~be~altered.
   }
-\__kernel_msg_new:nnnn { ltcmd } { command-not-yet-defined }
+\msg_new:nnnn { cmd } { command-not-yet-defined }
   { Command ~'#1'~not~yet~defined! }
   {
     You~have~used~#2~
@@ -3583,7 +3577,7 @@
     with~a~command~that~was~never~defined.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { environment-already-defined }
+\msg_new:nnnn { cmd } { environment-already-defined }
   { Environment~'#1'~already~defined! }
   {
     You~have~used~\NewDocumentEnvironment
@@ -3590,7 +3584,7 @@
     with~an~environment~that~already~has~a~definition. \\ \\
     The~existing~definition~of~'#1'~will~not~be~altered.
   }
-\__kernel_msg_new:nnnn { ltcmd } { environment-not-yet-defined }
+\msg_new:nnnn { cmd } { environment-not-yet-defined }
   { Environment~'#1'~not~yet~defined! }
   {
     You~have~used~\RenewDocumentEnvironment
@@ -3597,7 +3591,7 @@
     with~an~environment~that~was~never~defined.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { expandable-ending-optional }
+\msg_new:nnnn { cmd } { expandable-ending-optional }
   {
     Argument~specification~'#2'~for~expandable~command~'#1'~
     ends~with~optional~argument.
@@ -3607,13 +3601,13 @@
     (or~no~arguments~at~all).~You~cannot~have~a~terminal~optional~
     argument~with~expandable~commands.
   }
-\__kernel_msg_new:nnnn { ltcmd } { inconsistent-long }
+\msg_new:nnnn { cmd } { inconsistent-long }
   { Inconsistent~long~arguments~for~expandable~command~'#1'. }
   {
     The~arguments~for~an~expandable~command~must~not~involve~short~
     arguments~after~long~arguments.~You~have~tried~to~mix~the~two~types.
   }
-\__kernel_msg_new:nnnn { ltcmd } { invalid-command-arg }
+\msg_new:nnnn { cmd } { invalid-command-arg }
   { Argument~type~'#2'~not~available~for~#1. }
   {
     The~letter~'#2'~can~only~be~used~in~environment~argument~
@@ -3621,7 +3615,7 @@
     \\ \\
     LaTeX~will~ignore~this~entire~definition.
   }
-\__kernel_msg_new:nnnn { ltcmd } { invalid-expandable-argument-type }
+\msg_new:nnnn { cmd } { invalid-expandable-argument-type }
   { Argument~type~'#2'~not~available~for~expandable~command~'#1'. }
   {
     The~letter~'#2'~specifies~an~argument~type~which~cannot~be~used~
@@ -3628,7 +3622,7 @@
     in~an~expandable~command.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { invalid-after-optional-expandably }
+\msg_new:nnnn { cmd } { invalid-after-optional-expandably }
   {
     Argument~type~'#2'~not~available~after~optional~argument~
     for~expandable~command~'#1'.
@@ -3638,13 +3632,13 @@
     in~an~expandable~command~after~an~optional~argument.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { non-trailing-obey-spaces }
+\msg_new:nnnn { cmd } { non-trailing-obey-spaces }
   { Prefix~'!'~used~before~mandatory~argument~'#2'~of~#1. }
   {
     The~prefix~'!'~can~only~apply~to~trailing~optional~arguments.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { not-definable }
+\msg_new:nnnn { cmd } { not-definable }
   { First~argument~of~'#2'~must~be~a~command. }
   {
     The~first~argument~of~'#2'~should~be~the~document~command~that~will~
@@ -3652,7 +3646,7 @@
     backslash~is~missing?
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { not-one-token }
+\msg_new:nnnn { cmd } { not-one-token }
   { First~argument~of~'#2'~must~be~a~command. }
   {
     The~first~argument~of~'#2'~should~be~the~document~command~that~will~
@@ -3660,7 +3654,7 @@
     token.~Perhaps~a~backslash~is~missing?
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { not-single-token }
+\msg_new:nnnn { cmd } { not-single-token }
   {
     Argument~delimiter~'#2'~for~the~#1~should~be~
     a~single~non-space~token.
@@ -3670,7 +3664,7 @@
     where~a~single~token~is~required,~LaTeX~found~'#2'.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { forbidden-implicit-group-token }
+\msg_new:nnnn { cmd } { forbidden-implicit-group-token }
   { Argument~delimiter~'#2'~for~the~#1~is~not~allowed. }
   {
     The~argument~specification~provided~was~not~valid:~the~implicit~
@@ -3677,7 +3671,7 @@
     #3-group~token~'#2'~is~not~allowed~as~an~argument~delimiter.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { processor-in-expandable }
+\msg_new:nnnn { cmd } { processor-in-expandable }
   { Argument~processor~'>{#2}'~cannot~be~used~for~the~expandable~command~'#1'. }
   {
     The~argument~specification~for~#1~contains~a~processor~function:~
@@ -3684,7 +3678,7 @@
     this~is~only~supported~for~standard~robust~commands.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { too-many-arguments }
+\msg_new:nnnn { cmd } { too-many-arguments }
   { Too~many~arguments~in~argument~specification~'#2'~of~#1. }
   {
     The~argument~specification~provided~has~more~than~9~arguments.~
@@ -3691,19 +3685,19 @@
     This~cannot~be~implemented.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { two-markers }
+\msg_new:nnnn { cmd } { two-markers }
   { Two~'#2'~apply~to~the~same~argument~in~argument~specification~of~#1. }
   {
     The~argument~specification~provided~has~two~markers~'#2'~applying~
     to~the~same~argument;~these~are~redundant.
   }
-\__kernel_msg_new:nnnn { ltcmd } { unknown-argument-type }
+\msg_new:nnnn { cmd } { unknown-argument-type }
   { Unknown~argument~type~'#2'~for~the~#1. }
   {
     The~letter~'#2'~does~not~specify~a~known~argument~type.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { xparse-argument-type }
+\msg_new:nnnn { cmd } { xparse-argument-type }
   { Deprecated~argument~type~'#2'~for~the~#1~requires~xparse. }
   {
     The~letter~'#2'~specifies~a~known~argument~type~that~requires~
@@ -3710,27 +3704,27 @@
     the~xparse~package.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnn { ltcmd } { if-boolean }
+\msg_new:nnn { cmd } { if-boolean }
   { Invalid~use~\iow_char:N\\IfBooleanTF~{#1} }
-\__kernel_msg_new:nnnn { ltcmd } { loop-in-defaults }
+\msg_new:nnnn { cmd } { loop-in-defaults }
   { Defaults~of~#1~have~circular~dependency. }
   {
     The~default~values~of~two~or~more~arguments~of~the~#1~
     depend~on~each~other~in~a~way~that~cannot~be~resolved.
   }
-\__kernel_msg_new:nnnn { ltcmd } { missing-required }
+\msg_new:nnnn { cmd } { missing-required }
   { Missing~required~argument~for~#1. }
   {
     The~current~#1~expects~an~argument~starting~with~'#2'.~
     LaTeX~did~not~find~it,~and~will~insert~a~default~value~to~be~processed.
   }
-\__kernel_msg_new:nnnn { ltcmd } { non-xparse }
+\msg_new:nnnn { cmd } { non-xparse }
   { \str_uppercase:n #1~not~defined~using~xparse. }
   {
     You~have~asked~for~the~argument~specification~for~the~#1,~
     but~this~was~not~defined~using~xparse.
   }
-\__kernel_msg_new:nnnn { ltcmd } { split-excess-tokens }
+\msg_new:nnnn { cmd } { split-excess-tokens }
   { Too~many~'#1'~tokens~when~trying~to~split~argument. }
   {
     LaTeX~was~asked~to~split~the~input~'#3'~
@@ -3737,13 +3731,13 @@
     at~each~occurrence~of~the~token~'#1',~up~to~a~maximum~of~#2~parts.~
     There~were~too~many~'#1'~tokens.
   }
-\__kernel_msg_new:nnnn { ltcmd } { unknown }
+\msg_new:nnnn { cmd } { unknown }
   { Unknown~document~#1. }
   {
     You~have~asked~for~the~argument~specification~for~the~#1,~
     but~it~is~not~defined.
   }
-\__kernel_msg_new:nnnn { ltcmd } { verbatim-newline }
+\msg_new:nnnn { cmd } { verbatim-newline }
   { Verbatim~argument~of~#1~ended~by~end~of~line. }
   {
     The~verbatim~argument~of~the~#1~cannot~contain~more~than~one~line,~
@@ -3753,7 +3747,7 @@
     \\ \\
     LaTeX~will~ignore~'#2'.
   }
-\__kernel_msg_new:nnnn { ltcmd } { verbatim-tokenized }
+\msg_new:nnnn { cmd } { verbatim-tokenized }
   { The~verbatim~#1~cannot~be~used~inside~an~argument. }
   {
     The~#1~takes~a~verbatim~argument.~
@@ -3762,33 +3756,33 @@
     \\ \\
     LaTeX~will~ignore~'#2'.
   }
-\__kernel_msg_new:nnn { ltcmd } { define-command }
+\msg_new:nnn { cmd } { define-command }
   {
     Defining~command~#1~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { define-environment }
+\msg_new:nnn { cmd } { define-environment }
   {
     Defining~environment~'#1'~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { redefine-command }
+\msg_new:nnn { cmd } { redefine-command }
   {
     Redefining~command~#1~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { redefine-environment }
+\msg_new:nnn { cmd } { redefine-environment }
   {
     Redefining~environment~'#1'~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { optional-mandatory }
+\msg_new:nnn { cmd } { optional-mandatory }
   {
     Since~the~mandatory~argument~'#1'~has~the~same~delimiter~'#2'~
     as~a~previous~optional~argument,~it~will~not~be~possible~to~
     omit~all~optional~arguments~when~calling~this~command.
   }
-\__kernel_msg_new:nnn { ltcmd } { unsupported-let }
+\msg_new:nnn { cmd } { unsupported-let }
   {
     The~command~'#1'~was~undefined~but~not~the~associated~commands~
     '#1~code'~and/or~'#1~defaults'.~Maybe~you~tried~using~
@@ -3802,7 +3796,7 @@
       {
         \cs_if_exist:NTF #1
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-already-defined }
+            \msg_error:nnxx { cmd } { command-already-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \NewDocumentCommand }
           }
@@ -3816,7 +3810,7 @@
         \cs_if_exist:NTF #1
           { \__cmd_declare_cmd:Nnn #1 {#2} {#3} }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-not-yet-defined }
+            \msg_error:nnxx { cmd } { command-not-yet-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \RenewDocumentCommand }
           }
@@ -3835,7 +3829,7 @@
 \cs_new_protected:Npn \NewDocumentEnvironment #1#2#3#4
   {
     \cs_if_exist:cTF {#1}
-      { \__kernel_msg_error:nnx { ltcmd } { environment-already-defined } {#1} }
+      { \msg_error:nnx { cmd } { environment-already-defined } {#1} }
       { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} }
   }
 \cs_new_protected:Npn \RenewDocumentEnvironment #1#2#3#4
@@ -3842,7 +3836,7 @@
   {
     \cs_if_exist:cTF {#1}
       { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} }
-      { \__kernel_msg_error:nnx { ltcmd } { environment-not-yet-defined } {#1} }
+      { \msg_error:nnx { cmd } { environment-not-yet-defined } {#1} }
   }
 \cs_new_protected:Npn \ProvideDocumentEnvironment #1#2#3#4
   { \cs_if_exist:cF {#1} { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} } }
@@ -3854,7 +3848,7 @@
       {
         \cs_if_exist:NTF #1
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-already-defined }
+            \msg_error:nnxx { cmd } { command-already-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \NewExpandableDocumentCommand }
           }
@@ -3868,7 +3862,7 @@
         \cs_if_exist:NTF #1
           { \__cmd_declare_expandable_cmd:Nnn #1 {#2} {#3} }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-not-yet-defined }
+            \msg_error:nnxx { cmd } { command-not-yet-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \RenewExpandableDocumentCommand }
           }
@@ -3900,7 +3894,7 @@
     \prg_break:n { \use:n }
     \prg_break_point:
     {
-      \__kernel_msg_expandable_error:nnn { ltcmd } { if-boolean } {#1}
+      \msg_expandable_error:nnn { cmd } { if-boolean } {#1}
       \use_ii:nn
     }
   }
@@ -3932,8 +3926,8 @@
 \cs_new_eq:NN \ShowDocumentEnvironmentArgSpec \__cmd_show_arg_spec:n
 \ExplSyntaxOff
 %%% From File: lthooks.dtx
-\def\lthooksversion{v1.0m}
-\def\lthooksdate{2021/04/29}
+\def\lthooksversion{v1.0n}
+\def\lthooksdate{2021/05/26}
 
 \ExplSyntaxOn
 \bool_new:N \g__hook_debug_bool
@@ -4006,7 +4000,7 @@
 \cs_new_protected:Npn \__hook_new:n #1
   {
     \__hook_if_declared:nTF {#1}
-      { \__kernel_msg_error:nnn { hooks } { exists } {#1} }
+      { \msg_error:nnn { hooks } { exists } {#1} }
       {
         \tl_new:c { g__hook_#1_declared_tl }
         \__hook_make_usable:n {#1}
@@ -4076,12 +4070,12 @@
 \cs_new_protected:Npn \__hook_provide:nn #1 #2
   {
     \__hook_if_disabled:nTF {#1}
-      { \__kernel_msg_warning:nnn { hooks } { provide-disabled } {#1} }
+      { \msg_warning:nnn { hooks } { provide-disabled } {#1} }
       {
         \__hook_if_declared:nTF {#1}
           {
             \str_if_eq:eeF { \tl_use:c { g__hook_#1_reversed_tl } } {#2}
-              { \__kernel_msg_error:nnn { hooks } { provide-error } {#1} }
+              { \msg_error:nnn { hooks } { provide-error } {#1} }
           }
           {
             \tl_new:c { g__hook_#1_declared_tl }
@@ -4102,7 +4096,7 @@
   {
     \tl_if_empty:nTF {#1}
       {
-        \__kernel_msg_expandable_error:nn { hooks } { empty-label }
+        \msg_expandable_error:nn { hooks } { empty-label }
         \__hook_currname_or_default:
       }
       {
@@ -4130,7 +4124,7 @@
       {
         \tl_if_empty:NTF \@currname
           {
-            \__kernel_msg_expandable_error:nnn { hooks } { should-not-happen }
+            \msg_expandable_error:nnn { kernel } { should-not-happen }
               { Empty~default~label. }
             \__hook_make_name:n { label-missing }
           }
@@ -4194,7 +4188,7 @@
               }
               {
                 \__hook_if_disabled:nTF {#1}
-                  { \__kernel_msg_error:nnn { hooks } { hook-disabled } {#1} }
+                  { \msg_error:nnn { hooks } { hook-disabled } {#1} }
                   { \__hook_try_declaring_generic_hook:nnn {#1} {#2} {#3} }
               }
           }
@@ -4214,7 +4208,7 @@
             \__hook_init_structure:n {#1}
             \__hook_tl_gput_right:cn { __hook_toplevel~#1 } {#3}
           }
-          { \__kernel_msg_error:nnn { hooks } { misused-top-level } {#1} }
+          { \msg_error:nnn { hooks } { misused-top-level } {#1} }
       }
       {
         \prop_get:cnNTF { g__hook_#1_code_prop } {#2} \l__hook_return_tl
@@ -4376,7 +4370,7 @@
           {#1} {#2} {#4}
         \__hook_update_hook_code:n {#1}
       }
-      { \__kernel_msg_error:nnnnnn { hooks } { unknown-rule }
+      { \msg_error:nnnnnn { hooks } { unknown-rule }
                           {#1} {#2} {#3} {#4}        }
   }
 \cs_new_protected:Npn \__hook_rule_before_gset:nnn #1#2#3
@@ -4595,7 +4589,7 @@
 \cs_new_protected:cpn { __hook_apply_rule_xE:nnn } #1#2#3
   {
     \__hook_debug:n { \__hook_msg_pair_found:nnn {#1} {#2} {#3} }
-    \__kernel_msg_error:nnnnnn { hooks } { labels-incompatible }
+    \msg_error:nnnnnn { hooks } { labels-incompatible }
       {#1} {#2} {#3} { 1 }
     \use:c { __hook_apply_rule_->:nnn } {#1} {#2} {#3}
     \use:c { __hook_apply_rule_<-:nnn } {#1} {#2} {#3}
@@ -4603,7 +4597,7 @@
 \cs_new_protected:cpn { __hook_apply_rule_xW:nnn } #1#2#3
   {
     \__hook_debug:n { \__hook_msg_pair_found:nnn {#1} {#2} {#3} }
-    \__kernel_msg_warning:nnnnnn { hooks } { labels-incompatible }
+    \msg_warning:nnnnnn { hooks } { labels-incompatible }
       {#1} {#2} {#3} { 0 }
   }
 \cs_new_protected:cpn { __hook_apply_rule_->:nnn } #1#2#3
@@ -4803,7 +4797,7 @@
 \cs_new_protected:Npn \__hook_gput_next_code:nn #1 #2
   {
     \__hook_if_disabled:nTF {#1}
-      { \__kernel_msg_error:nnn { hooks } { hook-disabled } {#1} }
+      { \msg_error:nnn { hooks } { hook-disabled } {#1} }
       {
         \__hook_init_structure:n {#1}
         \__hook_if_usable:nTF {#1}
@@ -4929,7 +4923,9 @@
       \prg_return_false:
     \fi:
   }
-\__kernel_msg_new:nnnn { hooks } { labels-incompatible }
+\prop_gput:Nnn \g_msg_module_type_prop { hooks } { LaTeX }
+\prop_gput:Nnn \g_msg_module_type_prop { kernel } { LaTeX }
+\msg_new:nnnn { hooks } { labels-incompatible }
   {
     Labels~'#1'~and~'#2'~are~incompatible
     \str_if_eq:nnF {#3} {??} { ~in~hook~'#3' } .~
@@ -4939,12 +4935,12 @@
   }
   { LaTeX~found~two~incompatible~labels~in~the~same~hook.~
     This~indicates~an~incompatibility~between~packages.  }
-\__kernel_msg_new:nnnn { hooks } { exists }
+\msg_new:nnnn { hooks } { exists }
     { Hook~'#1'~ has~ already~ been~ declared. }
     { There~ already~ exists~ a~ hook~ declaration~ with~ this~
       name.\\
       Please~ use~ a~ different~ name~ for~ your~ hook.}
-\__kernel_msg_new:nnnn { hooks } { hook-disabled }
+\msg_new:nnnn { hooks } { hook-disabled }
   { Cannot~add~code~to~disabled~hook~'#1'. }
   {
     The~hook~'#1'~you~tried~to~add~code~to~was~previously~disabled~
@@ -4951,17 +4947,17 @@
     with~\iow_char:N\\hook_disable:n~or~\iow_char:N\\DisableHook,~so~
     it~cannot~have~code~added~to~it.
   }
-\__kernel_msg_new:nnn { hooks } { empty-label }
+\msg_new:nnn { hooks } { empty-label }
   {
     Empty~code~label~\msg_line_context:.~
     Using~'\__hook_currname_or_default:'~instead.
   }
-\__kernel_msg_new:nnn { hooks } { no-default-label }
+\msg_new:nnn { hooks } { no-default-label }
   {
     Missing~(empty)~default~label~\msg_line_context:. \\
     This~command~was~ignored.
   }
-\__kernel_msg_new:nnnn { hooks } { unknown-rule }
+\msg_new:nnnn { hooks } { unknown-rule }
   { Unknown~ relationship~ '#3'~
     between~ labels~ '#2'~ and~ '#4'~
     \str_if_eq:nnF {#1} {??} { ~in~hook~'#1' }. ~
@@ -4976,9 +4972,9 @@
     'voids'~ or~
     'unrelated'.
   }
-\__kernel_msg_new:nnnn { hooks } { misused-top-level }
+\msg_new:nnnn { hooks } { misused-top-level }
   {
-    Illegal~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\
+    Illegal~use~of~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\
     'top-level'~is~reserved~for~the~user's~document.
   }
   {
@@ -4987,38 +4983,32 @@
     '\__hook_currname_or_default:'~for~this~\@cls at pkg,~or~another~
     suitable~label.
   }
-\__kernel_msg_new:nnn { hooks } { set-top-level }
+\msg_new:nnn { hooks } { set-top-level }
   {
     You~cannot~change~the~default~label~#1~'top-level'.~Illegal \\
     \use:nn { ~ } { ~ } \iow_char:N \\#2{#3} \\
     \msg_line_context:.
   }
-\__kernel_msg_new:nnn { hooks } { ddhl-deprecated }
+\msg_new:nnn { hooks } { extra-pop-label }
   {
-    \iow_char:N \\DeclareDefaultHookLabel~is~deprecated.\\
-    Use~\iow_char:N \\SetDefaultHookLabel~instead.\\ \\
-    The~deprecated~name~will~be~removed~in~the~next~release.
-  }
-\__kernel_msg_new:nnn { hooks } { extra-pop-label }
-  {
     Extra~\iow_char:N \\PopDefaultHookLabel. \\
     This~command~will~be~ignored.
   }
-\__kernel_msg_new:nnn { hooks } { missing-pop-label }
+\msg_new:nnn { hooks } { missing-pop-label }
   {
     Missing~\iow_char:N \\PopDefaultHookLabel. \\
     The~label~'#1'~was~pushed~but~never~popped.~Something~is~wrong.
   }
-\__kernel_msg_new:nnn { hooks } { should-not-happen }
+\msg_new:nnn { kernel } { should-not-happen }
   {
-    ERROR!~This~should~not~happen.~#1 \\
+    This~should~not~happen.~#1 \\
     Please~report~at~https://github.com/latex3/latex2e.
   }
-\__kernel_msg_new:nnn { hooks } { provide-disabled }
+\msg_new:nnn { hooks } { provide-disabled }
   {
-    Can't~ provide~ hook~ '#1'~ because~ it~ is~ disabled!
+    Cannot~ provide~ hook~ '#1'~ because~ it~ is~ disabled!
   }
-\__kernel_msg_new:nnnn { hooks } { provide-error }
+\msg_new:nnnn { hooks } { provide-error }
   {
     Hook~'#1'~ already~ declared~ as~ a~
     \__hook_if_reversed:nTF {#1} { reversed } { normal }~ hook!
@@ -5049,11 +5039,11 @@
 \cs_new_protected:Npn \__hook_curr_name_push_aux:n #1
   {
     \tl_if_blank:nTF {#1}
-      { \__kernel_msg_error:nn { hooks } { no-default-label } }
+      { \msg_error:nn { hooks } { no-default-label } }
       {
         \str_if_eq:nnTF {#1} { top-level }
           {
-            \__kernel_msg_error:nnnnn { hooks } { set-top-level }
+            \msg_error:nnnnn { hooks } { set-top-level }
               { to } { PushDefaultHookLabel } {#1}
           }
           {
@@ -5066,7 +5056,7 @@
   {
     \seq_gpop:NNTF \g__hook_name_stack_seq \l__hook_return_tl
       { \tl_gset_eq:NN \g__hook_hook_curr_name_tl \l__hook_return_tl }
-      { \__kernel_msg_error:nn { hooks } { extra-pop-label } }
+      { \msg_error:nn { hooks } { extra-pop-label } }
   }
 \tl_gput_right:Nn \@kernel at after@enddocument at afterlastpage
   { \__hook_end_document_label_check: }
@@ -5074,7 +5064,7 @@
   {
     \seq_gpop:NNT \g__hook_name_stack_seq \l__hook_return_tl
       {
-        \__kernel_msg_error:nnx { hooks } { missing-pop-label }
+        \msg_error:nnx { hooks } { missing-pop-label }
           { \g__hook_hook_curr_name_tl }
         \tl_gset_eq:NN \g__hook_hook_curr_name_tl \l__hook_return_tl
         \__hook_end_document_label_check:
@@ -5084,7 +5074,7 @@
   {
     \seq_if_empty:NTF \g__hook_name_stack_seq
       {
-        \__kernel_msg_error:nnnnn { hooks } { set-top-level }
+        \msg_error:nnnnn { hooks } { set-top-level }
           { for } { SetDefaultHookLabel } {#1}
       }
       { \exp_args:Nx \__hook_set_default_label:n { \__hook_make_name:n {#1} } }
@@ -5093,16 +5083,11 @@
   {
     \str_if_eq:nnTF {#1} { top-level }
       {
-        \__kernel_msg_error:nnnnn { hooks } { set-top-level }
+        \msg_error:nnnnn { hooks } { set-top-level }
           { to } { SetDefaultHookLabel } {#1}
       }
       { \tl_gset:Nn \g__hook_hook_curr_name_tl {#1} }
   }
-\NewDocumentCommand \DeclareDefaultHookLabel { m }
-  {
-    \__kernel_msg_error:nn { hooks } { ddhl-deprecated }
-    \SetDefaultHookLabel {#1}
-  }
 \NewDocumentCommand \PushDefaultHookLabel { m }
   { \__hook_curr_name_push:n {#1} }
 \NewDocumentCommand \PopDefaultHookLabel { }
@@ -5138,8 +5123,8 @@
 %% File: ltcmdhooks.dtx (C) Copyright 2020-2021
 %%       Frank Mittelbach, Phelype Oleinik, LaTeX Team
 %%% From File: ltcmdhooks.dtx
-\def\ltcmdhooksversion{v1.0a}
-\def\ltcmdhooksdate{2021/04/30}
+\def\ltcmdhooksversion{v1.0b}
+\def\ltcmdhooksdate{2021/05/26}
 \ExplSyntaxOn
 \tl_new:N \g_hook_patch_action_list_tl
 \int_new:N \l__hook_patch_num_args_int
@@ -5159,7 +5144,7 @@
     \str_case:nnTF {#3}
         { { before } { } { after } { } }
       { \exp_args:Nc \__hook_patch_cmd_or_delay:Nnn {#2} {#2} {#3} }
-      { \__kernel_msg_error:nnn { hooks } { wrong-cmd-hook } {#2} {#3} }
+      { \msg_error:nnnn { hooks } { wrong-cmd-hook } {#2} {#3} }
   }
 \cs_new_protected:Npn \__hook_patch_cmd_or_delay:Nnn #1 #2 #3
   {
@@ -5216,7 +5201,7 @@
   {
     #1 #2 {#4}
       {
-        \__kernel_msg_error:nnxx { hooks } { cant-patch }
+        \msg_error:nnxx { hooks } { cant-patch }
           { \token_to_str:N #2 } {#3}
       }
   }
@@ -5346,7 +5331,7 @@
           }
               \q_recursion_tail \q_recursion_stop
           {
-            \__kernel_msg_error:nnxx { hooks } { cant-patch }
+            \msg_error:nnxx { hooks } { cant-patch }
               { \c_backslash_str #2 } { retok }
           }
       }
@@ -5418,24 +5403,21 @@
     \tl_rescan:nV { #4 \__hook_patch_required_catcodes: } \l__hook_tmpa_tl
     \cs_set_eq:NN #1 \kerneltmpDoNotUse
   }
-\__kernel_msg_new:nnnn { hooks } { wrong-cmd-hook }
+\msg_new:nnnn { hooks } { wrong-cmd-hook }
   {
-    Command~hook~`cmd/#1/#2'~invalid.\\
-    The~hook~should~be~`cmd/#1/before'~or~`cmd/#1/after'.
+    Generic~hook~`cmd/#1/#2'~is~invalid.
   }
   {
-    You~tried~to~add~a~hook~to~command~\iow_char:N \\#1,~but~`#2'~
-    is~an~invalid~position.~Only~`before'~or~`after'~are~allowed.
+    You~tried~to~add~a~generic~hook~to~command~\iow_char:N \\#1,~but~`#2'~
+    is~an~invalid~component.~Only~`before'~or~`after'~are~allowed.
   }
-\__kernel_msg_new:nnnn { hooks } { cant-patch }
+\msg_new:nnnn { hooks } { cant-patch }
   {
-    Command~`#1'~cannot~have~hooks~because~it~
-    \__hook_unpatchable_cases:n {#2} .
+    Generic~hooks~cannot~be~added~to~'#1'.
   }
   {
-    You~tried~to~add~a~hook~to~`#1',~but~LaTeX~was~not~able~to~
-    add~the~hook~to~that~command~because~`#1'~
-    \__hook_unpatchable_cases:n {#2} .
+    You~tried~to~add~a~hook~to~'#1',~but~LaTeX~was~unable~to~
+    patch~the~command~because~it~\__hook_unpatchable_cases:n {#2}.
   }
 \cs_new:Npn \__hook_unpatchable_cases:n #1
   {
@@ -5740,8 +5722,8 @@
 \def\@restorepar{\def\par{\@par}}
 %% File: ltpara.dtx (C) Copyright 2020-2021
 %%% From File: ltpara.dtx
-\def\ltparaversion{v1.0f}
-\def\ltparadate{2021/04/16}
+\def\ltparaversion{v1.0g}
+\def\ltparadate{2021/05/27}
 
 
 \ExplSyntaxOn
@@ -5757,7 +5739,7 @@
   \group_begin:
     \tex_par:D
   \group_end:
-  \tex_everypar:D { \__kernel_msg_error:nnnn {para}{mode}{before}{vertical} }
+  \tex_everypar:D { \msg_error:nnnn { hooks }{ para-mode }{before}{vertical} }
   \@kernel at before@para at before
   \hook_use:n {para/before}
   \group_begin:
@@ -5769,7 +5751,7 @@
   \@kernel at before@para at begin
   \hook_use:n {para/begin}
   \if_mode_horizontal: \else:
-    \__kernel_msg_error:nnnn {para}{mode}{begin}{vertical} \fi:
+    \msg_error:nnnn { hooks }{ para-mode }{begin}{vertical} \fi:
   \__para_handle_indent:
 }
 \tex_everypar:D{\g__para_standard_everypar_tl}
@@ -5805,7 +5787,7 @@
            \hook_use:n{para/after}
            \@kernel at after@para at after
          }
-         { \__kernel_msg_error:nnnn {para}{mode}{end}{horizontal} }
+         { \msg_error:nnnn { hooks }{ para-mode }{end}{horizontal} }
     }
   }
   \tex_par:D
@@ -5819,7 +5801,7 @@
            \__para_handle_indent:
            \the\everypar }
        }
-       { \__kernel_msg_error:nn {para}{raw} }
+       { \msg_error:nn { kernel }{ raw-para } }
   \tex_indent:D
 }
 \cs_new:Npn \para_raw_noindent: {
@@ -5829,7 +5811,7 @@
            \tex_everypar:D { \g__para_standard_everypar_tl }
            \the\everypar }
        }
-       { \__kernel_msg_error:nn {para}{raw} }
+       { \msg_error:nn { kernel }{ raw-para } }
   \tex_noindent:D
 }
 \cs_new_eq:NN \para_raw_end: \tex_par:D
@@ -5840,7 +5822,7 @@
 \cs_set_eq:NN \@@par   \para_end:
 \cs_set_eq:NN \endgraf \para_end:
 \everypar{\@nodocument} %% To get an error if text appears before the
-\__kernel_msg_new:nnnn {para} {mode}
+\msg_new:nnnn { hooks } { para-mode }
   {
     Illegal~mode~ change~ in~ hook~ 'para/#1'.\\
     Hook~ code~ did~ not~ remain~ in~ #2~ mode.
@@ -5849,16 +5831,18 @@
     Paragraph~ hooks~ cannot~ change~ the~ TeX~ mode~ without~ causing~
     endless~ recursion.~ The~ hook~ code~ in~ 'para/#1'~ needs~ to~ stay~
     in~ #2~ mode,~ but~ it~ didn't.~ Examine~ the~ hook~
-    code~ with~ \ShowHook~ to~ find~ the~ issue.
+    code~ with~ \iow_char:N \\ShowHook~ to~ find~ the~ issue.
   }
-\__kernel_msg_new:nnnn {para} {raw}
+\msg_new:nnnn { kernel } { raw-para }
   {
-     Paragraph started while not in vertical mode.
+     Not~ in~ vertical~ mode.
   }
   {
-    Starting a paragraph with \RawIndent or \RawNoindent
-    (or \para_raw_indent: or \para_raw_noindent:) is only
-    allowed if LaTeX is in vertical mode.
+    Starting~ a~ paragraph~ with~ \iow_char:N \\RawIndent~ or~
+    \iow_char:N \\RawNoindent \\
+    (or~ \iow_char:N \\para_raw_indent:~ or~
+    \iow_char:N \\para_raw_noindent:)~ is~ only~ allowed \\
+    if~ LaTeX~ is~ in~ vertical~ mode.
   }
 
 \ExplSyntaxOff
@@ -12787,6 +12771,7 @@
 \let\@declaredoptions\@empty
 \let\@classoptionslist\relax
 \@onlypreamble\@classoptionslist
+\let\@raw at classoptionslist\relax
 \let\@unusedoptionlist\@empty
 \@onlypreamble\@unusedoptionlist
 \let\CurrentOption\@empty
@@ -13658,8 +13643,8 @@
   \fi
 }
 %%% From File: ltfilehook.dtx
-\providecommand\ltfilehookversion{v1.0j}
-\providecommand\ltfilehookdate{2021/04/29}
+\providecommand\ltfilehookversion{v1.0k}
+\providecommand\ltfilehookdate{2021/05/25}
 \ExplSyntaxOn
 \tl_new:N \CurrentFile
 \tl_new:N \CurrentFilePath
@@ -13712,7 +13697,7 @@
     \seq_gpop:NNTF \g__filehook_input_file_seq \l__filehook_internal_tl
       { \exp_after:wN \__filehook_file_pop_assign:nnnn \l__filehook_internal_tl }
       {
-        \__kernel_msg_error:nnn { hooks } { should-not-happen }
+        \msg_error:nnn { kernel } { should-not-happen }
           { Tried~to~pop~from~an~empty~file~name~stack. }
       }
   }
@@ -14542,7 +14527,7 @@
   \global \advance \@colht \@tempdima
   \ifx \@dbltoplist \@empty
   \else
-    \@latexerr{Float(s) lost}\@ehb
+    \@latex at error{Float(s) lost}\@ehb
     \let \@dbltoplist \@empty
   \fi
   \@cons \@dbltoplist \@currbox
@@ -14655,7 +14640,7 @@
        \global \@colroom \@colht
        \ifx \@currlist\@empty
        \else
-          \@latexerr{Float(s) lost}\@ehb
+          \@latex at error{Float(s) lost}\@ehb
           \global \let \@currlist \@empty
        \fi
        \@makefcolumn\@deferlist
@@ -15226,9 +15211,9 @@
 \gdef\@enlargepage#1#2{%
    \@tempskipa#2\relax
    \ifdim \@tempskipa>.5\maxdimen
-     \@latexerr{Suggested\space extra\space height\space
-                (\the\@tempskipa)\space dangerously\space
-                large}\@eha
+     \@latex at error{Suggested\space extra\space height\space
+                   (\the\@tempskipa)\space dangerously\space
+                   large}\@eha
    \else
      \ifdim \vsize<.5\maxdimen
        \@bsphack
@@ -15235,8 +15220,8 @@
          \insert\@kludgeins{#1\vskip-\@tempskipa}%
        \@esphack
      \else
-       \@latexerr{Page\space height\space already\space
-                  too\space large}\@eha
+       \@latex at error{Page\space height\space already\space
+                     too\space large}\@eha
      \fi
    \fi
 }

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -287,7 +287,7 @@
 }
 %%% From File: ltvers.dtx
 \edef\latexreleaseversion
-   {2021-06-01}
+   {2021-12-01}
 \newif\if at includeinrelease
 \@includeinreleasefalse
 \def\IncludeInRelease#1{%
@@ -1326,7 +1326,7 @@
   \count@=\escapechar
   \escapechar=`\\
   \@ifundefined{\expandafter\@gobble\string#1}{%
-    \@latex at error{The control sequence `\string#1' is undefined!%
+    \@latex at error{Command `\string#1' is undefined!%
       \MessageBreak There is nothing here to make robust}%
     \@eha
   }%
@@ -1346,7 +1346,7 @@
         \noexpand\protect\expandafter\noexpand
         \csname\expandafter\@gobble\string#1\space\endcsname}%
     }%
-    {\@latex at info{The control sequence `\string#1' is already robust}}%
+    {\@latex at info{Command `\string#1' is already robust}}%
   }%
   \escapechar=\count@
 }%
@@ -1781,8 +1781,8 @@
 
 \EndIncludeInRelease
 %%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.0d}
-\def\ltcmddate{2021-04-19}
+\def\ltcmdversion{v1.0e}
+\def\ltcmddate{2021-05-24}
 \edef\@latexrelease at catcode@null{\the\catcode`\^^@ }
 \catcode`\^^@=12
 \ExplSyntaxOn
@@ -1826,7 +1826,8 @@
 \tl_new:N \l__cmd_tmpa_tl
 \tl_new:N \l__cmd_tmpb_tl
 \cs_new_eq:NN \__cmd_tmp:w ?
-\msg_redirect_module:nnn { LaTeX / ltcmd } { info } { none }
+\msg_redirect_module:nnn { cmd } { info } { none }
+\prop_gput:Nnn \g_msg_module_type_prop { cmd } { LaTeX }
 \cs_new_protected:Npn \__cmd_declare_cmd:Nnn
   {
     \bool_set_false:N \l__cmd_expandable_bool
@@ -1841,7 +1842,7 @@
   {
     \cs_if_exist:NTF #1
       {
-        \__kernel_msg_info:nnxx { ltcmd } { redefine-command }
+        \msg_info:nnxx { cmd } { redefine-command }
           { \token_to_str:N #1 } { \tl_to_str:n {#2} }
       }
       {
@@ -1849,10 +1850,10 @@
           { \cs_if_exist_p:c { \cs_to_str:N #1 ~ code } }
           { \cs_if_exist_p:c { \cs_to_str:N #1 ~ defaults } }
           {
-            \__kernel_msg_warning:nnx { ltcmd } { unsupported-let }
+            \msg_warning:nnx { cmd } { unsupported-let }
               { \token_to_str:N #1 }
           }
-        \__kernel_msg_info:nnxx { ltcmd } { define-command }
+        \msg_info:nnxx { cmd } { define-command }
           { \token_to_str:N #1 } { \tl_to_str:n {#2} }
       }
     \bool_set_false:N \l__cmd_environment_bool
@@ -1958,11 +1959,11 @@
       { \tl_trim_spaces:o { \l__cmd_environment_str } }
     \cs_if_exist:cTF { \l__cmd_environment_str }
       {
-        \__kernel_msg_info:nnxx { ltcmd } { redefine-environment }
+        \msg_info:nnxx { cmd } { redefine-environment }
           { \l__cmd_environment_str } { \tl_to_str:n {#2} }
       }
       {
-        \__kernel_msg_info:nnxx { ltcmd } { define-environment }
+        \msg_info:nnxx { cmd } { define-environment }
           { \l__cmd_environment_str } { \tl_to_str:n {#2} }
       }
     \bool_set_false:N \l__cmd_expandable_bool
@@ -2050,7 +2051,7 @@
   }
 \cs_new_protected:Npn \__cmd_defaults_error:w \q_recursion_stop
   {
-    \__kernel_msg_error:nnx { ltcmd } { loop-in-defaults }
+    \msg_error:nnx { cmd } { loop-in-defaults }
       { \__cmd_environment_or_command: }
   }
 \cs_new_protected:Npn \__cmd_defaults_def:
@@ -2121,8 +2122,7 @@
     \__cmd_end_expandable_defaults:nnnNNn {#1} { } {#1} #2#3
       { } { } { } { } { } { } { } { } { } { }
       {
-        \__kernel_msg_expandable_error:nnf
-          { ltcmd } { loop-in-defaults }
+        \msg_expandable_error:nnf { cmd } { loop-in-defaults }
           { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N #4 } }
         \use_iv:nnnn
       }
@@ -2164,7 +2164,7 @@
       \q_recursion_tail \q_recursion_tail \q_recursion_tail \q_recursion_stop
     \int_compare:nNnT \l__cmd_current_arg_int > 9
       {
-        \__kernel_msg_error:nnxx { ltcmd } { too-many-arguments }
+        \msg_error:nnxx { cmd } { too-many-arguments }
           { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
         \__cmd_bad_def:wn
       }
@@ -2172,7 +2172,7 @@
       {
         \tl_if_empty:NF \l__cmd_last_delimiters_tl
           {
-            \__kernel_msg_error:nnxx { ltcmd } { expandable-ending-optional }
+            \msg_error:nnxx { cmd } { expandable-ending-optional }
               { \iow_char:N \\ \l__cmd_function_tl } { \tl_to_str:n {#1} }
             \__cmd_bad_def:wn
           }
@@ -2196,11 +2196,11 @@
             { \str_if_eq_p:nn {#1} { u } }
           }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { xparse-argument-type }
+            \msg_error:nnxx { cmd } { xparse-argument-type }
               { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
           }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { unknown-argument-type }
+            \msg_error:nnxx { cmd } { unknown-argument-type }
               { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
           }
         \__cmd_bad_def:wn
@@ -2236,7 +2236,7 @@
     \quark_if_recursion_tail_stop_do:nn {#2} { \__cmd_bad_arg_spec:wn }
     \bool_if:NT \l__cmd_expandable_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { processor-in-expandable }
+        \msg_error:nnxx { cmd } { processor-in-expandable }
           { \iow_char:N \\ \l__cmd_function_tl } { \tl_to_str:n {#1} }
         \__cmd_bad_def:wn
       }
@@ -2250,7 +2250,7 @@
     \quark_if_recursion_tail_stop_do:nn {#1} { \__cmd_bad_arg_spec:wn }
     \bool_if:NT \l__cmd_long_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { two-markers }
+        \msg_error:nnxx { cmd } { two-markers }
           { \__cmd_environment_or_command: } { + }
         \__cmd_bad_def:wn
       }
@@ -2263,7 +2263,7 @@
     \quark_if_recursion_tail_stop_do:nn {#1} { \__cmd_bad_arg_spec:wn }
     \bool_if:NT \l__cmd_obey_spaces_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { two-markers }
+        \msg_error:nnxx { cmd } { two-markers }
           { \__cmd_environment_or_command: } { ! }
         \__cmd_bad_def:wn
       }
@@ -2346,8 +2346,7 @@
   {
     \bool_if:NF \l__cmd_environment_bool
       {
-        \__kernel_msg_error:nnxx
-          { ltcmd } { invalid-command-arg }
+        \msg_error:nnxx { cmd } { invalid-command-arg }
           { \__cmd_environment_or_command: } { b }
         \__cmd_bad_def:wn
       }
@@ -2354,7 +2353,7 @@
     \tl_clear:N \l__cmd_last_delimiters_tl
     \__cmd_add_arg_spec:n { b }
     \quark_if_recursion_tail_stop:n {#1}
-    \__kernel_msg_error:nnxx { ltcmd } { arg-after-body }
+    \msg_error:nnxx { cmd } { arg-after-body }
       { \__cmd_environment_or_command: }
       { \tl_to_str:n {#1} }
     \__cmd_bad_def:wn
@@ -2363,7 +2362,7 @@
   {
     \tl_trim_spaces_apply:nN {#1} \tl_if_single_token:nF
       {
-        \__kernel_msg_error:nnxx { ltcmd } { not-single-token }
+        \msg_error:nnxx { cmd } { not-single-token }
           { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
         \__cmd_bad_def:wn
       }
@@ -2378,8 +2377,7 @@
             { \use_none:n }
         }
       {
-        \__kernel_msg_error:nnxxx
-          { ltcmd } { forbidden-implicit-group-token }
+        \msg_error:nnxxx { cmd } { forbidden-implicit-group-token }
           { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
           {
             \token_if_eq_meaning:NNTF #1 \c_group_begin_token
@@ -2392,8 +2390,7 @@
   {
     \bool_if:NT \l__cmd_expandable_bool
       {
-        \__kernel_msg_error:nnxx
-          { ltcmd } { invalid-expandable-argument-type }
+        \msg_error:nnxx { cmd } { invalid-expandable-argument-type }
           { \iow_char:N \\ \l__cmd_function_tl } { \tl_to_str:n {#1} }
         \__cmd_bad_def:wn
       }
@@ -2405,8 +2402,7 @@
       {
         \tl_if_empty:NF \l__cmd_last_delimiters_tl
           {
-            \__kernel_msg_error:nnxx
-              { ltcmd } { invalid-after-optional-expandably }
+            \msg_error:nnxx { cmd } { invalid-after-optional-expandably }
               { \iow_char:N \\ \l__cmd_function_tl } { \tl_to_str:n {#1} }
             \__cmd_bad_def:wn
           }
@@ -2418,7 +2414,7 @@
       {
         \tl_if_eq:nnT {##1} {#1}
           {
-            \__kernel_msg_warning:nnxx { ltcmd } { optional-mandatory }
+            \msg_warning:nnxx { cmd } { optional-mandatory }
               {#2} {#3}
           }
       }
@@ -2425,7 +2421,7 @@
   }
 \cs_new_protected:Npn \__cmd_bad_arg_spec:wn #1 \__cmd_break_point:n #2
   {
-    \__kernel_msg_error:nnxx { ltcmd } { bad-arg-spec }
+    \msg_error:nnxx { cmd } { bad-arg-spec }
       { \__cmd_environment_or_command: } { \tl_to_str:n {#2} }
   }
 \cs_new_protected:Npn \__cmd_bad_def:wn #1 \__cmd_break_point:n #2 { }
@@ -2437,7 +2433,7 @@
       {
         \bool_if:NT \l__cmd_expandable_bool
           {
-            \__kernel_msg_error:nnx { ltcmd } { inconsistent-long }
+            \msg_error:nnx { cmd } { inconsistent-long }
               { \iow_char:N \\ \l__cmd_function_tl }
             \__cmd_bad_def:wn
           }
@@ -2459,7 +2455,7 @@
   {
     \bool_if:NT \l__cmd_some_obey_spaces_bool
       {
-        \__kernel_msg_error:nnxx { ltcmd } { non-trailing-obey-spaces }
+        \msg_error:nnxx { cmd } { non-trailing-obey-spaces }
           { \__cmd_environment_or_command: } { \tl_to_str:n {#1} }
         \__cmd_bad_def:wn
       }
@@ -3010,7 +3006,7 @@
     \__cmd_peek_nonspace_remove:NTF #1
       { \__cmd_grab_D_call:Nw #1 }
       {
-        \__kernel_msg_error:nnxx { ltcmd } { missing-required }
+        \msg_error:nnxx { cmd } { missing-required }
           { \__cmd_environment_or_command: }
           { \token_to_str:N #1 }
         \__cmd_add_arg:o \c_novalue_tl
@@ -3154,7 +3150,7 @@
     \exp_after:wN \exp_after:wN \exp_after:wN
       \peek_meaning_remove:NTF \char_generate:nn { \tex_endlinechar:D } { 6 }
       {
-        \__kernel_msg_error:nnxxx { ltcmd } { verbatim-newline }
+        \msg_error:nnxxx { cmd } { verbatim-newline }
           { \__cmd_environment_or_command: }
           { \tl_to_str:N \l__cmd_v_arg_tl }
           { \tl_to_str:n {#1} }
@@ -3161,7 +3157,7 @@
         \__cmd_add_arg:o \c_novalue_tl
       }
       {
-        \__kernel_msg_error:nnxxx { ltcmd } { verbatim-tokenized }
+        \msg_error:nnxxx { cmd } { verbatim-tokenized }
           { \__cmd_environment_or_command: }
           { \tl_to_str:N \l__cmd_v_arg_tl }
           { \tl_to_str:n {#1} }
@@ -3331,8 +3327,7 @@
               \q_nil { } ##2 \ERROR \q__cmd \ERROR
           }
           {
-            \__kernel_msg_expandable_error:nnff
-              { ltcmd } { missing-required }
+            \msg_expandable_error:nnff { cmd } { missing-required }
               { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N ##5 } }
               { \tl_to_str:n {##2} }
             ##4 {#1} \q__cmd ##5 ##6 {##7}
@@ -3359,8 +3354,7 @@
               ##6 \ERROR
           }
           {
-            \__kernel_msg_expandable_error:nnff
-              { ltcmd } { missing-required }
+            \msg_expandable_error:nnff { cmd } { missing-required }
               { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N ##4 } }
               { \tl_to_str:n {##2} }
             ##3 {#1} \q__cmd ##4 ##5 {##6}
@@ -3441,7 +3435,7 @@
                   \ProcessedArgument
                   \q_stop
               }
-            \__kernel_msg_error:nnxxx { ltcmd } { split-excess-tokens }
+            \msg_error:nnxxx { cmd } { split-excess-tokens }
               { \tl_to_str:n {#3} } { \int_eval:n { #2 + 1 } }
               { \tl_to_str:n {#4} }
           }
@@ -3481,11 +3475,11 @@
   {
     #1
       {
-        \__kernel_msg_error:nnx { ltcmd } { non-xparse }
+        \msg_error:nnx { cmd } { non-xparse }
           { \__cmd_environment_or_command: }
       }
       {
-        \__kernel_msg_error:nnx { ltcmd } { unknown }
+        \msg_error:nnx { cmd } { unknown }
           { \__cmd_environment_or_command: }
       }
   }
@@ -3549,11 +3543,11 @@
         }
         { \group_end: \use_ii:nnn }
       {
-        \__kernel_msg_error:nnxx { ltcmd } { not-definable }
+        \msg_error:nnxx { cmd } { not-definable }
           { \tl_to_str:n {#1} } { \token_to_str:N #2 }
       }
       {
-        \__kernel_msg_error:nnxx { ltcmd } { not-one-token }
+        \msg_error:nnxx { cmd } { not-one-token }
           { \tl_to_str:n {#1} } { \token_to_str:N #2 }
       }
     }
@@ -3669,7 +3663,7 @@
         '
       }
   }
-\__kernel_msg_new:nnnn { ltcmd } { arg-after-body }
+\msg_new:nnnn { cmd } { arg-after-body }
   { In~the~definition~of~#1,~b~(body)~argument~must~be~last. }
   {
     The~'body'~argument~type~is~followed~by~'#2'~in~the~argument~
@@ -3676,7 +3670,7 @@
     specification~of~the~#1.~This~is~not~allowed.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { bad-arg-spec }
+\msg_new:nnnn { cmd } { bad-arg-spec }
   { Bad~argument~specification~'#2'~for~#1. }
   {
     The~argument~specification~provided~was~not~valid:~
@@ -3683,7 +3677,7 @@
     one~or~more~mandatory~pieces~of~information~were~missing.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { command-already-defined }
+\msg_new:nnnn { cmd } { command-already-defined }
   { Command~'#1'~already~defined! }
   {
     You~have~used~#2~
@@ -3690,7 +3684,7 @@
     with~a~command~that~already~has~a~definition. \\ \\
     The~existing~definition~of~'#1'~will~not~be~altered.
   }
-\__kernel_msg_new:nnnn { ltcmd } { command-not-yet-defined }
+\msg_new:nnnn { cmd } { command-not-yet-defined }
   { Command ~'#1'~not~yet~defined! }
   {
     You~have~used~#2~
@@ -3697,7 +3691,7 @@
     with~a~command~that~was~never~defined.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { environment-already-defined }
+\msg_new:nnnn { cmd } { environment-already-defined }
   { Environment~'#1'~already~defined! }
   {
     You~have~used~\NewDocumentEnvironment
@@ -3704,7 +3698,7 @@
     with~an~environment~that~already~has~a~definition. \\ \\
     The~existing~definition~of~'#1'~will~not~be~altered.
   }
-\__kernel_msg_new:nnnn { ltcmd } { environment-not-yet-defined }
+\msg_new:nnnn { cmd } { environment-not-yet-defined }
   { Environment~'#1'~not~yet~defined! }
   {
     You~have~used~\RenewDocumentEnvironment
@@ -3711,7 +3705,7 @@
     with~an~environment~that~was~never~defined.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { expandable-ending-optional }
+\msg_new:nnnn { cmd } { expandable-ending-optional }
   {
     Argument~specification~'#2'~for~expandable~command~'#1'~
     ends~with~optional~argument.
@@ -3721,13 +3715,13 @@
     (or~no~arguments~at~all).~You~cannot~have~a~terminal~optional~
     argument~with~expandable~commands.
   }
-\__kernel_msg_new:nnnn { ltcmd } { inconsistent-long }
+\msg_new:nnnn { cmd } { inconsistent-long }
   { Inconsistent~long~arguments~for~expandable~command~'#1'. }
   {
     The~arguments~for~an~expandable~command~must~not~involve~short~
     arguments~after~long~arguments.~You~have~tried~to~mix~the~two~types.
   }
-\__kernel_msg_new:nnnn { ltcmd } { invalid-command-arg }
+\msg_new:nnnn { cmd } { invalid-command-arg }
   { Argument~type~'#2'~not~available~for~#1. }
   {
     The~letter~'#2'~can~only~be~used~in~environment~argument~
@@ -3735,7 +3729,7 @@
     \\ \\
     LaTeX~will~ignore~this~entire~definition.
   }
-\__kernel_msg_new:nnnn { ltcmd } { invalid-expandable-argument-type }
+\msg_new:nnnn { cmd } { invalid-expandable-argument-type }
   { Argument~type~'#2'~not~available~for~expandable~command~'#1'. }
   {
     The~letter~'#2'~specifies~an~argument~type~which~cannot~be~used~
@@ -3742,7 +3736,7 @@
     in~an~expandable~command.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { invalid-after-optional-expandably }
+\msg_new:nnnn { cmd } { invalid-after-optional-expandably }
   {
     Argument~type~'#2'~not~available~after~optional~argument~
     for~expandable~command~'#1'.
@@ -3752,13 +3746,13 @@
     in~an~expandable~command~after~an~optional~argument.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { non-trailing-obey-spaces }
+\msg_new:nnnn { cmd } { non-trailing-obey-spaces }
   { Prefix~'!'~used~before~mandatory~argument~'#2'~of~#1. }
   {
     The~prefix~'!'~can~only~apply~to~trailing~optional~arguments.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { not-definable }
+\msg_new:nnnn { cmd } { not-definable }
   { First~argument~of~'#2'~must~be~a~command. }
   {
     The~first~argument~of~'#2'~should~be~the~document~command~that~will~
@@ -3766,7 +3760,7 @@
     backslash~is~missing?
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { not-one-token }
+\msg_new:nnnn { cmd } { not-one-token }
   { First~argument~of~'#2'~must~be~a~command. }
   {
     The~first~argument~of~'#2'~should~be~the~document~command~that~will~
@@ -3774,7 +3768,7 @@
     token.~Perhaps~a~backslash~is~missing?
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { not-single-token }
+\msg_new:nnnn { cmd } { not-single-token }
   {
     Argument~delimiter~'#2'~for~the~#1~should~be~
     a~single~non-space~token.
@@ -3784,7 +3778,7 @@
     where~a~single~token~is~required,~LaTeX~found~'#2'.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { forbidden-implicit-group-token }
+\msg_new:nnnn { cmd } { forbidden-implicit-group-token }
   { Argument~delimiter~'#2'~for~the~#1~is~not~allowed. }
   {
     The~argument~specification~provided~was~not~valid:~the~implicit~
@@ -3791,7 +3785,7 @@
     #3-group~token~'#2'~is~not~allowed~as~an~argument~delimiter.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { processor-in-expandable }
+\msg_new:nnnn { cmd } { processor-in-expandable }
   { Argument~processor~'>{#2}'~cannot~be~used~for~the~expandable~command~'#1'. }
   {
     The~argument~specification~for~#1~contains~a~processor~function:~
@@ -3798,7 +3792,7 @@
     this~is~only~supported~for~standard~robust~commands.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { too-many-arguments }
+\msg_new:nnnn { cmd } { too-many-arguments }
   { Too~many~arguments~in~argument~specification~'#2'~of~#1. }
   {
     The~argument~specification~provided~has~more~than~9~arguments.~
@@ -3805,19 +3799,19 @@
     This~cannot~be~implemented.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { two-markers }
+\msg_new:nnnn { cmd } { two-markers }
   { Two~'#2'~apply~to~the~same~argument~in~argument~specification~of~#1. }
   {
     The~argument~specification~provided~has~two~markers~'#2'~applying~
     to~the~same~argument;~these~are~redundant.
   }
-\__kernel_msg_new:nnnn { ltcmd } { unknown-argument-type }
+\msg_new:nnnn { cmd } { unknown-argument-type }
   { Unknown~argument~type~'#2'~for~the~#1. }
   {
     The~letter~'#2'~does~not~specify~a~known~argument~type.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnnn { ltcmd } { xparse-argument-type }
+\msg_new:nnnn { cmd } { xparse-argument-type }
   { Deprecated~argument~type~'#2'~for~the~#1~requires~xparse. }
   {
     The~letter~'#2'~specifies~a~known~argument~type~that~requires~
@@ -3824,27 +3818,27 @@
     the~xparse~package.
     \c__cmd_ignore_def_tl
   }
-\__kernel_msg_new:nnn { ltcmd } { if-boolean }
+\msg_new:nnn { cmd } { if-boolean }
   { Invalid~use~\iow_char:N\\IfBooleanTF~{#1} }
-\__kernel_msg_new:nnnn { ltcmd } { loop-in-defaults }
+\msg_new:nnnn { cmd } { loop-in-defaults }
   { Defaults~of~#1~have~circular~dependency. }
   {
     The~default~values~of~two~or~more~arguments~of~the~#1~
     depend~on~each~other~in~a~way~that~cannot~be~resolved.
   }
-\__kernel_msg_new:nnnn { ltcmd } { missing-required }
+\msg_new:nnnn { cmd } { missing-required }
   { Missing~required~argument~for~#1. }
   {
     The~current~#1~expects~an~argument~starting~with~'#2'.~
     LaTeX~did~not~find~it,~and~will~insert~a~default~value~to~be~processed.
   }
-\__kernel_msg_new:nnnn { ltcmd } { non-xparse }
+\msg_new:nnnn { cmd } { non-xparse }
   { \str_uppercase:n #1~not~defined~using~xparse. }
   {
     You~have~asked~for~the~argument~specification~for~the~#1,~
     but~this~was~not~defined~using~xparse.
   }
-\__kernel_msg_new:nnnn { ltcmd } { split-excess-tokens }
+\msg_new:nnnn { cmd } { split-excess-tokens }
   { Too~many~'#1'~tokens~when~trying~to~split~argument. }
   {
     LaTeX~was~asked~to~split~the~input~'#3'~
@@ -3851,13 +3845,13 @@
     at~each~occurrence~of~the~token~'#1',~up~to~a~maximum~of~#2~parts.~
     There~were~too~many~'#1'~tokens.
   }
-\__kernel_msg_new:nnnn { ltcmd } { unknown }
+\msg_new:nnnn { cmd } { unknown }
   { Unknown~document~#1. }
   {
     You~have~asked~for~the~argument~specification~for~the~#1,~
     but~it~is~not~defined.
   }
-\__kernel_msg_new:nnnn { ltcmd } { verbatim-newline }
+\msg_new:nnnn { cmd } { verbatim-newline }
   { Verbatim~argument~of~#1~ended~by~end~of~line. }
   {
     The~verbatim~argument~of~the~#1~cannot~contain~more~than~one~line,~
@@ -3867,7 +3861,7 @@
     \\ \\
     LaTeX~will~ignore~'#2'.
   }
-\__kernel_msg_new:nnnn { ltcmd } { verbatim-tokenized }
+\msg_new:nnnn { cmd } { verbatim-tokenized }
   { The~verbatim~#1~cannot~be~used~inside~an~argument. }
   {
     The~#1~takes~a~verbatim~argument.~
@@ -3876,33 +3870,33 @@
     \\ \\
     LaTeX~will~ignore~'#2'.
   }
-\__kernel_msg_new:nnn { ltcmd } { define-command }
+\msg_new:nnn { cmd } { define-command }
   {
     Defining~command~#1~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { define-environment }
+\msg_new:nnn { cmd } { define-environment }
   {
     Defining~environment~'#1'~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { redefine-command }
+\msg_new:nnn { cmd } { redefine-command }
   {
     Redefining~command~#1~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { redefine-environment }
+\msg_new:nnn { cmd } { redefine-environment }
   {
     Redefining~environment~'#1'~
     with~sig.~'#2'~\msg_line_context:.
   }
-\__kernel_msg_new:nnn { ltcmd } { optional-mandatory }
+\msg_new:nnn { cmd } { optional-mandatory }
   {
     Since~the~mandatory~argument~'#1'~has~the~same~delimiter~'#2'~
     as~a~previous~optional~argument,~it~will~not~be~possible~to~
     omit~all~optional~arguments~when~calling~this~command.
   }
-\__kernel_msg_new:nnn { ltcmd } { unsupported-let }
+\msg_new:nnn { cmd } { unsupported-let }
   {
     The~command~'#1'~was~undefined~but~not~the~associated~commands~
     '#1~code'~and/or~'#1~defaults'.~Maybe~you~tried~using~
@@ -3916,7 +3910,7 @@
       {
         \cs_if_exist:NTF #1
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-already-defined }
+            \msg_error:nnxx { cmd } { command-already-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \NewDocumentCommand }
           }
@@ -3930,7 +3924,7 @@
         \cs_if_exist:NTF #1
           { \__cmd_declare_cmd:Nnn #1 {#2} {#3} }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-not-yet-defined }
+            \msg_error:nnxx { cmd } { command-not-yet-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \RenewDocumentCommand }
           }
@@ -3949,7 +3943,7 @@
 \cs_new_protected:Npn \NewDocumentEnvironment #1#2#3#4
   {
     \cs_if_exist:cTF {#1}
-      { \__kernel_msg_error:nnx { ltcmd } { environment-already-defined } {#1} }
+      { \msg_error:nnx { cmd } { environment-already-defined } {#1} }
       { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} }
   }
 \cs_new_protected:Npn \RenewDocumentEnvironment #1#2#3#4
@@ -3956,7 +3950,7 @@
   {
     \cs_if_exist:cTF {#1}
       { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} }
-      { \__kernel_msg_error:nnx { ltcmd } { environment-not-yet-defined } {#1} }
+      { \msg_error:nnx { cmd } { environment-not-yet-defined } {#1} }
   }
 \cs_new_protected:Npn \ProvideDocumentEnvironment #1#2#3#4
   { \cs_if_exist:cF {#1} { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} } }
@@ -3968,7 +3962,7 @@
       {
         \cs_if_exist:NTF #1
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-already-defined }
+            \msg_error:nnxx { cmd } { command-already-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \NewExpandableDocumentCommand }
           }
@@ -3982,7 +3976,7 @@
         \cs_if_exist:NTF #1
           { \__cmd_declare_expandable_cmd:Nnn #1 {#2} {#3} }
           {
-            \__kernel_msg_error:nnxx { ltcmd } { command-not-yet-defined }
+            \msg_error:nnxx { cmd } { command-not-yet-defined }
               { \use:nnn \token_to_str:N #1 { } }
               { \token_to_str:N \RenewExpandableDocumentCommand }
           }
@@ -4014,7 +4008,7 @@
     \prg_break:n { \use:n }
     \prg_break_point:
     {
-      \__kernel_msg_expandable_error:nnn { ltcmd } { if-boolean } {#1}
+      \msg_expandable_error:nnn { cmd } { if-boolean } {#1}
       \use_ii:nn
     }
   }
@@ -4055,8 +4049,8 @@
 \@ifundefined{ExplSyntaxOff}{}{\latexrelease at postexpl}
 \catcode`\^^@=\@latexrelease at catcode@null\relax
 %%% From File: lthooks.dtx
-\def\lthooksversion{v1.0m}
-\def\lthooksdate{2021/04/29}
+\def\lthooksversion{v1.0n}
+\def\lthooksdate{2021/05/26}
 
 \ExplSyntaxOn
 \NewModuleRelease{2020/10/01}{lthooks}
@@ -4131,7 +4125,7 @@
 \cs_new_protected:Npn \__hook_new:n #1
   {
     \__hook_if_declared:nTF {#1}
-      { \__kernel_msg_error:nnn { hooks } { exists } {#1} }
+      { \msg_error:nnn { hooks } { exists } {#1} }
       {
         \tl_new:c { g__hook_#1_declared_tl }
         \__hook_make_usable:n {#1}
@@ -4212,12 +4206,12 @@
 \cs_new_protected:Npn \__hook_provide:nn #1 #2
   {
     \__hook_if_disabled:nTF {#1}
-      { \__kernel_msg_warning:nnn { hooks } { provide-disabled } {#1} }
+      { \msg_warning:nnn { hooks } { provide-disabled } {#1} }
       {
         \__hook_if_declared:nTF {#1}
           {
             \str_if_eq:eeF { \tl_use:c { g__hook_#1_reversed_tl } } {#2}
-              { \__kernel_msg_error:nnn { hooks } { provide-error } {#1} }
+              { \msg_error:nnn { hooks } { provide-error } {#1} }
           }
           {
             \tl_new:c { g__hook_#1_declared_tl }
@@ -4247,7 +4241,7 @@
   {
     \tl_if_empty:nTF {#1}
       {
-        \__kernel_msg_expandable_error:nn { hooks } { empty-label }
+        \msg_expandable_error:nn { hooks } { empty-label }
         \__hook_currname_or_default:
       }
       {
@@ -4275,7 +4269,7 @@
       {
         \tl_if_empty:NTF \@currname
           {
-            \__kernel_msg_expandable_error:nnn { hooks } { should-not-happen }
+            \msg_expandable_error:nnn { kernel } { should-not-happen }
               { Empty~default~label. }
             \__hook_make_name:n { label-missing }
           }
@@ -4339,7 +4333,7 @@
               }
               {
                 \__hook_if_disabled:nTF {#1}
-                  { \__kernel_msg_error:nnn { hooks } { hook-disabled } {#1} }
+                  { \msg_error:nnn { hooks } { hook-disabled } {#1} }
                   { \__hook_try_declaring_generic_hook:nnn {#1} {#2} {#3} }
               }
           }
@@ -4359,7 +4353,7 @@
             \__hook_init_structure:n {#1}
             \__hook_tl_gput_right:cn { __hook_toplevel~#1 } {#3}
           }
-          { \__kernel_msg_error:nnn { hooks } { misused-top-level } {#1} }
+          { \msg_error:nnn { hooks } { misused-top-level } {#1} }
       }
       {
         \prop_get:cnNTF { g__hook_#1_code_prop } {#2} \l__hook_return_tl
@@ -4549,7 +4543,7 @@
           {#1} {#2} {#4}
         \__hook_update_hook_code:n {#1}
       }
-      { \__kernel_msg_error:nnnnnn { hooks } { unknown-rule }
+      { \msg_error:nnnnnn { hooks } { unknown-rule }
                           {#1} {#2} {#3} {#4}        }
   }
 \cs_new_protected:Npn \__hook_rule_before_gset:nnn #1#2#3
@@ -4768,7 +4762,7 @@
 \cs_new_protected:cpn { __hook_apply_rule_xE:nnn } #1#2#3
   {
     \__hook_debug:n { \__hook_msg_pair_found:nnn {#1} {#2} {#3} }
-    \__kernel_msg_error:nnnnnn { hooks } { labels-incompatible }
+    \msg_error:nnnnnn { hooks } { labels-incompatible }
       {#1} {#2} {#3} { 1 }
     \use:c { __hook_apply_rule_->:nnn } {#1} {#2} {#3}
     \use:c { __hook_apply_rule_<-:nnn } {#1} {#2} {#3}
@@ -4776,7 +4770,7 @@
 \cs_new_protected:cpn { __hook_apply_rule_xW:nnn } #1#2#3
   {
     \__hook_debug:n { \__hook_msg_pair_found:nnn {#1} {#2} {#3} }
-    \__kernel_msg_warning:nnnnnn { hooks } { labels-incompatible }
+    \msg_warning:nnnnnn { hooks } { labels-incompatible }
       {#1} {#2} {#3} { 0 }
   }
 \cs_new_protected:cpn { __hook_apply_rule_->:nnn } #1#2#3
@@ -4976,7 +4970,7 @@
 \cs_new_protected:Npn \__hook_gput_next_code:nn #1 #2
   {
     \__hook_if_disabled:nTF {#1}
-      { \__kernel_msg_error:nnn { hooks } { hook-disabled } {#1} }
+      { \msg_error:nnn { hooks } { hook-disabled } {#1} }
       {
         \__hook_init_structure:n {#1}
         \__hook_if_usable:nTF {#1}
@@ -5102,7 +5096,9 @@
       \prg_return_false:
     \fi:
   }
-\__kernel_msg_new:nnnn { hooks } { labels-incompatible }
+\prop_gput:Nnn \g_msg_module_type_prop { hooks } { LaTeX }
+\prop_gput:Nnn \g_msg_module_type_prop { kernel } { LaTeX }
+\msg_new:nnnn { hooks } { labels-incompatible }
   {
     Labels~'#1'~and~'#2'~are~incompatible
     \str_if_eq:nnF {#3} {??} { ~in~hook~'#3' } .~
@@ -5112,12 +5108,12 @@
   }
   { LaTeX~found~two~incompatible~labels~in~the~same~hook.~
     This~indicates~an~incompatibility~between~packages.  }
-\__kernel_msg_new:nnnn { hooks } { exists }
+\msg_new:nnnn { hooks } { exists }
     { Hook~'#1'~ has~ already~ been~ declared. }
     { There~ already~ exists~ a~ hook~ declaration~ with~ this~
       name.\\
       Please~ use~ a~ different~ name~ for~ your~ hook.}
-\__kernel_msg_new:nnnn { hooks } { hook-disabled }
+\msg_new:nnnn { hooks } { hook-disabled }
   { Cannot~add~code~to~disabled~hook~'#1'. }
   {
     The~hook~'#1'~you~tried~to~add~code~to~was~previously~disabled~
@@ -5124,17 +5120,17 @@
     with~\iow_char:N\\hook_disable:n~or~\iow_char:N\\DisableHook,~so~
     it~cannot~have~code~added~to~it.
   }
-\__kernel_msg_new:nnn { hooks } { empty-label }
+\msg_new:nnn { hooks } { empty-label }
   {
     Empty~code~label~\msg_line_context:.~
     Using~'\__hook_currname_or_default:'~instead.
   }
-\__kernel_msg_new:nnn { hooks } { no-default-label }
+\msg_new:nnn { hooks } { no-default-label }
   {
     Missing~(empty)~default~label~\msg_line_context:. \\
     This~command~was~ignored.
   }
-\__kernel_msg_new:nnnn { hooks } { unknown-rule }
+\msg_new:nnnn { hooks } { unknown-rule }
   { Unknown~ relationship~ '#3'~
     between~ labels~ '#2'~ and~ '#4'~
     \str_if_eq:nnF {#1} {??} { ~in~hook~'#1' }. ~
@@ -5149,9 +5145,9 @@
     'voids'~ or~
     'unrelated'.
   }
-\__kernel_msg_new:nnnn { hooks } { misused-top-level }
+\msg_new:nnnn { hooks } { misused-top-level }
   {
-    Illegal~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\
+    Illegal~use~of~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\
     'top-level'~is~reserved~for~the~user's~document.
   }
   {
@@ -5160,38 +5156,32 @@
     '\__hook_currname_or_default:'~for~this~\@cls at pkg,~or~another~
     suitable~label.
   }
-\__kernel_msg_new:nnn { hooks } { set-top-level }
+\msg_new:nnn { hooks } { set-top-level }
   {
     You~cannot~change~the~default~label~#1~'top-level'.~Illegal \\
     \use:nn { ~ } { ~ } \iow_char:N \\#2{#3} \\
     \msg_line_context:.
   }
-\__kernel_msg_new:nnn { hooks } { ddhl-deprecated }
+\msg_new:nnn { hooks } { extra-pop-label }
   {
-    \iow_char:N \\DeclareDefaultHookLabel~is~deprecated.\\
-    Use~\iow_char:N \\SetDefaultHookLabel~instead.\\ \\
-    The~deprecated~name~will~be~removed~in~the~next~release.
-  }
-\__kernel_msg_new:nnn { hooks } { extra-pop-label }
-  {
     Extra~\iow_char:N \\PopDefaultHookLabel. \\
     This~command~will~be~ignored.
   }
-\__kernel_msg_new:nnn { hooks } { missing-pop-label }
+\msg_new:nnn { hooks } { missing-pop-label }
   {
     Missing~\iow_char:N \\PopDefaultHookLabel. \\
     The~label~'#1'~was~pushed~but~never~popped.~Something~is~wrong.
   }
-\__kernel_msg_new:nnn { hooks } { should-not-happen }
+\msg_new:nnn { kernel } { should-not-happen }
   {
-    ERROR!~This~should~not~happen.~#1 \\
+    This~should~not~happen.~#1 \\
     Please~report~at~https://github.com/latex3/latex2e.
   }
-\__kernel_msg_new:nnn { hooks } { provide-disabled }
+\msg_new:nnn { hooks } { provide-disabled }
   {
-    Can't~ provide~ hook~ '#1'~ because~ it~ is~ disabled!
+    Cannot~ provide~ hook~ '#1'~ because~ it~ is~ disabled!
   }
-\__kernel_msg_new:nnnn { hooks } { provide-error }
+\msg_new:nnnn { hooks } { provide-error }
   {
     Hook~'#1'~ already~ declared~ as~ a~
     \__hook_if_reversed:nTF {#1} { reversed } { normal }~ hook!
@@ -5246,11 +5236,11 @@
 \cs_new_protected:Npn \__hook_curr_name_push_aux:n #1
   {
     \tl_if_blank:nTF {#1}
-      { \__kernel_msg_error:nn { hooks } { no-default-label } }
+      { \msg_error:nn { hooks } { no-default-label } }
       {
         \str_if_eq:nnTF {#1} { top-level }
           {
-            \__kernel_msg_error:nnnnn { hooks } { set-top-level }
+            \msg_error:nnnnn { hooks } { set-top-level }
               { to } { PushDefaultHookLabel } {#1}
           }
           {
@@ -5263,7 +5253,7 @@
   {
     \seq_gpop:NNTF \g__hook_name_stack_seq \l__hook_return_tl
       { \tl_gset_eq:NN \g__hook_hook_curr_name_tl \l__hook_return_tl }
-      { \__kernel_msg_error:nn { hooks } { extra-pop-label } }
+      { \msg_error:nn { hooks } { extra-pop-label } }
   }
 \tl_gput_right:Nn \@kernel at after@enddocument at afterlastpage
   { \__hook_end_document_label_check: }
@@ -5271,7 +5261,7 @@
   {
     \seq_gpop:NNT \g__hook_name_stack_seq \l__hook_return_tl
       {
-        \__kernel_msg_error:nnx { hooks } { missing-pop-label }
+        \msg_error:nnx { hooks } { missing-pop-label }
           { \g__hook_hook_curr_name_tl }
         \tl_gset_eq:NN \g__hook_hook_curr_name_tl \l__hook_return_tl
         \__hook_end_document_label_check:
@@ -5281,7 +5271,7 @@
   {
     \seq_if_empty:NTF \g__hook_name_stack_seq
       {
-        \__kernel_msg_error:nnnnn { hooks } { set-top-level }
+        \msg_error:nnnnn { hooks } { set-top-level }
           { for } { SetDefaultHookLabel } {#1}
       }
       { \exp_args:Nx \__hook_set_default_label:n { \__hook_make_name:n {#1} } }
@@ -5290,16 +5280,11 @@
   {
     \str_if_eq:nnTF {#1} { top-level }
       {
-        \__kernel_msg_error:nnnnn { hooks } { set-top-level }
+        \msg_error:nnnnn { hooks } { set-top-level }
           { to } { SetDefaultHookLabel } {#1}
       }
       { \tl_gset:Nn \g__hook_hook_curr_name_tl {#1} }
   }
-\NewDocumentCommand \DeclareDefaultHookLabel { m }
-  {
-    \__kernel_msg_error:nn { hooks } { ddhl-deprecated }
-    \SetDefaultHookLabel {#1}
-  }
 \NewDocumentCommand \PushDefaultHookLabel { m }
   { \__hook_curr_name_push:n {#1} }
 \NewDocumentCommand \PopDefaultHookLabel { }
@@ -5365,8 +5350,8 @@
 %% File: ltcmdhooks.dtx (C) Copyright 2020-2021
 %%       Frank Mittelbach, Phelype Oleinik, LaTeX Team
 %%% From File: ltcmdhooks.dtx
-\def\ltcmdhooksversion{v1.0a}
-\def\ltcmdhooksdate{2021/04/30}
+\def\ltcmdhooksversion{v1.0b}
+\def\ltcmdhooksdate{2021/05/26}
 \ExplSyntaxOn
 \NewModuleRelease{2021/06/01}{ltcmdhooks}
                  {The~hook~management~system~for~commands}
@@ -5388,7 +5373,7 @@
     \str_case:nnTF {#3}
         { { before } { } { after } { } }
       { \exp_args:Nc \__hook_patch_cmd_or_delay:Nnn {#2} {#2} {#3} }
-      { \__kernel_msg_error:nnn { hooks } { wrong-cmd-hook } {#2} {#3} }
+      { \msg_error:nnnn { hooks } { wrong-cmd-hook } {#2} {#3} }
   }
 \cs_new_protected:Npn \__hook_patch_cmd_or_delay:Nnn #1 #2 #3
   {
@@ -5445,7 +5430,7 @@
   {
     #1 #2 {#4}
       {
-        \__kernel_msg_error:nnxx { hooks } { cant-patch }
+        \msg_error:nnxx { hooks } { cant-patch }
           { \token_to_str:N #2 } {#3}
       }
   }
@@ -5575,7 +5560,7 @@
           }
               \q_recursion_tail \q_recursion_stop
           {
-            \__kernel_msg_error:nnxx { hooks } { cant-patch }
+            \msg_error:nnxx { hooks } { cant-patch }
               { \c_backslash_str #2 } { retok }
           }
       }
@@ -5647,24 +5632,21 @@
     \tl_rescan:nV { #4 \__hook_patch_required_catcodes: } \l__hook_tmpa_tl
     \cs_set_eq:NN #1 \kerneltmpDoNotUse
   }
-\__kernel_msg_new:nnnn { hooks } { wrong-cmd-hook }
+\msg_new:nnnn { hooks } { wrong-cmd-hook }
   {
-    Command~hook~`cmd/#1/#2'~invalid.\\
-    The~hook~should~be~`cmd/#1/before'~or~`cmd/#1/after'.
+    Generic~hook~`cmd/#1/#2'~is~invalid.
   }
   {
-    You~tried~to~add~a~hook~to~command~\iow_char:N \\#1,~but~`#2'~
-    is~an~invalid~position.~Only~`before'~or~`after'~are~allowed.
+    You~tried~to~add~a~generic~hook~to~command~\iow_char:N \\#1,~but~`#2'~
+    is~an~invalid~component.~Only~`before'~or~`after'~are~allowed.
   }
-\__kernel_msg_new:nnnn { hooks } { cant-patch }
+\msg_new:nnnn { hooks } { cant-patch }
   {
-    Command~`#1'~cannot~have~hooks~because~it~
-    \__hook_unpatchable_cases:n {#2} .
+    Generic~hooks~cannot~be~added~to~'#1'.
   }
   {
-    You~tried~to~add~a~hook~to~`#1',~but~LaTeX~was~not~able~to~
-    add~the~hook~to~that~command~because~`#1'~
-    \__hook_unpatchable_cases:n {#2} .
+    You~tried~to~add~a~hook~to~'#1',~but~LaTeX~was~unable~to~
+    patch~the~command~because~it~\__hook_unpatchable_cases:n {#2}.
   }
 \cs_new:Npn \__hook_unpatchable_cases:n #1
   {
@@ -5689,8 +5671,8 @@
 %%% From File: ltpar.dtx
 %% File: ltpara.dtx (C) Copyright 2020-2021
 %%% From File: ltpara.dtx
-\def\ltparaversion{v1.0f}
-\def\ltparadate{2021/04/16}
+\def\ltparaversion{v1.0g}
+\def\ltparadate{2021/05/27}
 
 
 \ExplSyntaxOn
@@ -5708,7 +5690,7 @@
   \group_begin:
     \tex_par:D
   \group_end:
-  \tex_everypar:D { \__kernel_msg_error:nnnn {para}{mode}{before}{vertical} }
+  \tex_everypar:D { \msg_error:nnnn { hooks }{ para-mode }{before}{vertical} }
   \@kernel at before@para at before
   \hook_use:n {para/before}
   \group_begin:
@@ -5720,7 +5702,7 @@
   \@kernel at before@para at begin
   \hook_use:n {para/begin}
   \if_mode_horizontal: \else:
-    \__kernel_msg_error:nnnn {para}{mode}{begin}{vertical} \fi:
+    \msg_error:nnnn { hooks }{ para-mode }{begin}{vertical} \fi:
   \__para_handle_indent:
 }
 \tex_everypar:D{\g__para_standard_everypar_tl}
@@ -5756,7 +5738,7 @@
            \hook_use:n{para/after}
            \@kernel at after@para at after
          }
-         { \__kernel_msg_error:nnnn {para}{mode}{end}{horizontal} }
+         { \msg_error:nnnn { hooks }{ para-mode }{end}{horizontal} }
     }
   }
   \tex_par:D
@@ -5770,7 +5752,7 @@
            \__para_handle_indent:
            \the\everypar }
        }
-       { \__kernel_msg_error:nn {para}{raw} }
+       { \msg_error:nn { kernel }{ raw-para } }
   \tex_indent:D
 }
 \cs_new:Npn \para_raw_noindent: {
@@ -5780,7 +5762,7 @@
            \tex_everypar:D { \g__para_standard_everypar_tl }
            \the\everypar }
        }
-       { \__kernel_msg_error:nn {para}{raw} }
+       { \msg_error:nn { kernel }{ raw-para } }
   \tex_noindent:D
 }
 \cs_new_eq:NN \para_raw_end: \tex_par:D
@@ -5791,7 +5773,7 @@
 \cs_set_eq:NN \@@par   \para_end:
 \cs_set_eq:NN \endgraf \para_end:
 \everypar{\@nodocument} %% To get an error if text appears before the
-\__kernel_msg_new:nnnn {para} {mode}
+\msg_new:nnnn { hooks } { para-mode }
   {
     Illegal~mode~ change~ in~ hook~ 'para/#1'.\\
     Hook~ code~ did~ not~ remain~ in~ #2~ mode.
@@ -5800,16 +5782,18 @@
     Paragraph~ hooks~ cannot~ change~ the~ TeX~ mode~ without~ causing~
     endless~ recursion.~ The~ hook~ code~ in~ 'para/#1'~ needs~ to~ stay~
     in~ #2~ mode,~ but~ it~ didn't.~ Examine~ the~ hook~
-    code~ with~ \ShowHook~ to~ find~ the~ issue.
+    code~ with~ \iow_char:N \\ShowHook~ to~ find~ the~ issue.
   }
-\__kernel_msg_new:nnnn {para} {raw}
+\msg_new:nnnn { kernel } { raw-para }
   {
-     Paragraph started while not in vertical mode.
+     Not~ in~ vertical~ mode.
   }
   {
-    Starting a paragraph with \RawIndent or \RawNoindent
-    (or \para_raw_indent: or \para_raw_noindent:) is only
-    allowed if LaTeX is in vertical mode.
+    Starting~ a~ paragraph~ with~ \iow_char:N \\RawIndent~ or~
+    \iow_char:N \\RawNoindent \\
+    (or~ \iow_char:N \\para_raw_indent:~ or~
+    \iow_char:N \\para_raw_noindent:)~ is~ only~ allowed \\
+    if~ LaTeX~ is~ in~ vertical~ mode.
   }
 
 \IncludeInRelease{0000/00/00}%
@@ -12705,8 +12689,8 @@
 \endgroup%
 \EndIncludeInRelease
 %%% From File: ltfilehook.dtx
-\providecommand\ltfilehookversion{v1.0j}
-\providecommand\ltfilehookdate{2021/04/29}
+\providecommand\ltfilehookversion{v1.0k}
+\providecommand\ltfilehookdate{2021/05/25}
 \IncludeInRelease{2020/10/01}%
                  {\CurrentFile}{Hook management file}%
 \ExplSyntaxOn
@@ -12773,7 +12757,7 @@
     \seq_gpop:NNTF \g__filehook_input_file_seq \l__filehook_internal_tl
       { \exp_after:wN \__filehook_file_pop_assign:nnnn \l__filehook_internal_tl }
       {
-        \__kernel_msg_error:nnn { hooks } { should-not-happen }
+        \msg_error:nnn { kernel } { should-not-happen }
           { Tried~to~pop~from~an~empty~file~name~stack. }
       }
   }
@@ -13727,7 +13711,7 @@
        \global \@colroom \@colht
        \ifx \@currlist\@empty
        \else
-          \@latexerr{Float(s) lost}\@ehb
+          \@latex at error{Float(s) lost}\@ehb
           \global \let \@currlist \@empty
        \fi
        \@makefcolumn\@deferlist

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -43,7 +43,7 @@
 %% extension .ins) which are part of the distribution.
 \NeedsTeXFormat{LaTeX2e}[1994/12/01]
 \ProvidesPackage{shortvrb}
-  [2020/11/23 v2.1m
+  [2021/05/28 v2.1n
    Standard LaTeX documentation package (FMi)]
 %%
 %% Package `doc' to use with LaTeX 2e

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -42,8 +42,8 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 %%% From File: ltfilehook.dtx
-\providecommand\ltfilehookversion{v1.0j}
-\providecommand\ltfilehookdate{2021/04/29}
+\providecommand\ltfilehookversion{v1.0k}
+\providecommand\ltfilehookdate{2021/05/25}
 \ProvidesExplPackage
     {structuredlog}{\ltfilehookdate}{\ltfilehookversion}
     {Structuring the TeX transcript file}

Modified: trunk/Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -30,7 +30,8 @@
 %% `First Aid Bundle'. You may however distribute the LaTeX `First Aid Bundle'
 %% without such generated files.
 %% 
-%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020,2021
+%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2021
+%%
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 \ProvidesPackage{everysel-ltx}

Modified: trunk/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -30,7 +30,8 @@
 %% `First Aid Bundle'. You may however distribute the LaTeX `First Aid Bundle'
 %% without such generated files.
 %% 
-%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020,2021
+%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2021
+%%
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 \newcommand\AtBeginOfEveryFile [1]

Modified: trunk/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx	2021-06-05 21:10:24 UTC (rev 59474)
@@ -30,11 +30,12 @@
 %% `First Aid Bundle'. You may however distribute the LaTeX `First Aid Bundle'
 %% without such generated files.
 %% 
-%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020,2021
+%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2021
+%%
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
-\def\LaTeXFirstAidDate{2021/02/24}
-\def\LaTeXFirstAidVersion{v1.0k}
+\def\LaTeXFirstAidDate{2021/03/15}
+\def\LaTeXFirstAidVersion{v1.0l}
 \ProvidesFile{latex2e-first-aid-for-external-files.ltx}
              [\LaTeXFirstAidDate\space \LaTeXFirstAidVersion\space
                LaTeX kernel fixes to external files and packages]
@@ -102,6 +103,15 @@
  % for version {2020/10/04 v3.7n configurable book, report, article document class}%
   \let\footref\@undefined
 }
+\AddToHook{file/after/bigfoot.sty}{%
+   \ifnum\count10<\insc at unt
+     \global\count10=\insc at unt
+   \fi
+    \def\FN at allmarks#1{\@elt{#1}%
+      \ifnum#1<\count256 %<--- problem: 266 isn't the counter for marks
+        \expandafter\FN at allmarks\expandafter{\number\numexpr#1+\@ne}%
+        \fi}%
+}
 \endinput
 %%
 %% End of file `latex2e-first-aid-for-external-files.ltx'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/longtable.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/longtable.sty	2021-06-05 21:08:10 UTC (rev 59473)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/longtable.sty	2021-06-05 21:10:24 UTC (rev 59474)
@@ -43,7 +43,7 @@
 \DeclareCurrentRelease{}{2020-02-07}
 
 \ProvidesPackage{longtable}
-          [2021-04-21 v4.15 Multi-page Table package (DPC)]
+          [2021-05-07 v4.16 Multi-page Table package (DPC)]
 \def\LT at err{\PackageError{longtable}}
 \def\LT at warn{\PackageWarning{longtable}}
 \def\LT at final@warn{%
@@ -389,7 +389,7 @@
   \def\@tempa{#2}%
   \ifx\@tempa\@empty\else
      {\let\\\space
-     \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
+     \addcontentsline{\ext at table}{table}{\protect\numberline{\thetable}{#2}}}%
   \fi}
 \def\LT at capti@n{%
   \@ifstar



More information about the tex-live-commits mailing list.