[latex3-commits] [git/LaTeX3-latex3-latex2e] robustness: cleanup and changelog entries (b23de467)

Frank Mittelbach frank.mittelbach at latex-project.org
Wed Aug 28 15:34:09 CEST 2019


Repository : https://github.com/latex3/latex2e
On branch  : robustness
Link       : https://github.com/latex3/latex2e/commit/b23de4676cc00f13139378a5f15db9401144280e

>---------------------------------------------------------------

commit b23de4676cc00f13139378a5f15db9401144280e
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date:   Wed Aug 28 15:34:09 2019 +0200

    cleanup and changelog entries


>---------------------------------------------------------------

b23de4676cc00f13139378a5f15db9401144280e
 base/changes.txt                              |  42 +++++++++
 base/classes.dtx                              |   3 +-
 base/doc/ltnews30.tex                         |  26 ++++++
 base/fontdef.dtx                              |  19 ++--
 base/ltboxes.dtx                              |   6 +-
 base/ltclass.dtx                              |   4 +-
 base/ltdefns.dtx                              |  68 +++++++++++++-
 base/ltfiles.dtx                              |   7 +-
 base/ltfinal.dtx                              |   2 +-
 base/ltfssbas.dtx                             |  18 +---
 base/ltfssdcl.dtx                             | 128 +++++++++++++++++++++++++-
 base/ltfssini.dtx                             |   3 +-
 base/ltidxglo.dtx                             |   3 +-
 base/ltlength.dtx                             |   9 +-
 base/ltlogos.dtx                              |   3 +-
 base/ltmath.dtx                               |   3 +-
 base/ltmiscen.dtx                             |   3 +-
 base/ltoutput.dtx                             |   3 +-
 base/ltpage.dtx                               |   3 +-
 base/ltpictur.dtx                             |   4 +-
 base/ltplain.dtx                              |   3 +-
 base/ltsect.dtx                               |   3 +-
 base/ltspace.dtx                              |   3 +-
 base/lttab.dtx                                |   7 +-
 required/tools/testfiles/tlb-tabularx-002.lvt |   0
 25 files changed, 318 insertions(+), 55 deletions(-)

diff --git a/base/changes.txt b/base/changes.txt
index 9fcc430d..9d8a2a83 100644
--- a/base/changes.txt
+++ b/base/changes.txt
@@ -4,6 +4,48 @@ completeness or accuracy and it contains some references to files that
 are not part of the distribution.
 =======================================================================
 
+2019-08-27  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* lttab.dtx:	Make various commands robust
+
+	* ltspace.dtx:	Make various commands robust
+
+	* ltsect.dtx: 	Make various commands robust
+
+	* ltpictur.dtx: Make various commands robust
+
+	* ltpage.dtx: 	Make various commands robust
+
+	* ltoutput.dtx:	Make \AtBeginDvi robust
+
+	* ltmiscen.dtx: Make various commands robust
+
+	* ltmath.dtx:	Make various commands robust
+
+	* ltlogos.dtx:  Make \TeX logo robust
+
+	* ltidxglo.dtx: Make \index and \glossary robust
+
+	* ltfssini.dtx: Various commands made robust
+
+	* ltfssdcl.dtx: Make math accents and delimiters robust
+
+	* ltfssbas.dtx: Various commands made robust
+
+	* ltfiles.dtx:  Make \IfFileExists and \InputIf FileExists robust
+
+	* ltdefns.dtx:	Various commands made robust
+	Make assignments by \MakeRobust global as we need to apply them
+	in a group once in a while.
+
+	* ltclass.dtx:	Various commands made robust
+
+	* ltboxes.dtx:	Various commands made robust
+
+	* classes.dtx:	Various commands made robust
+
+	* fontdef.dtx:	Various commands made robust
+
 2019-08-22  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
 	* ltxref.dtx (subsection{Cross Referencing}):
diff --git a/base/classes.dtx b/base/classes.dtx
index f9e7f47f..3255fde7 100644
--- a/base/classes.dtx
+++ b/base/classes.dtx
@@ -53,7 +53,7 @@
 %<*driver>
 \ProvidesFile{classes.drv}
 %</driver>
-              [2018/09/03 v1.4i
+              [2019/08/27 v1.4j
 %<article|report|book> Standard LaTeX document class]
 %<10pt|11pt|12pt>      Standard LaTeX file (size option)]
 %    \end{macrocode}
@@ -213,6 +213,7 @@
 % \changes{v1.3l}{1995/10/20}{Disabled in compatibility mode all
 %    options that are new in \LaTeXe.}
 % \changes{v1.3v}{1997/06/16}{Documentation fixes.}
+% \changes{v1.4j}{2019/08/27}{Various commands made robust} 
 %
 %
 % \title{Standard Document Classes for \LaTeX{} version 2e\thanks{This
diff --git a/base/doc/ltnews30.tex b/base/doc/ltnews30.tex
index 17848778..748806cf 100644
--- a/base/doc/ltnews30.tex
+++ b/base/doc/ltnews30.tex
@@ -173,6 +173,32 @@ A related change is that file names used as part of \cs{input},  \cs{includegrap
 
 
 
+\section{Making more user commands made robust}
+
+In the early days of \LaTeX{} many commands were fragile, i.e., they
+needed \cs{protect} in front of them when used in places such as
+section headings etc. With \LaTeXe{} already many were made robust,
+but still a fairly huge number remained unnecessarily fragile.
+
+In this release of \LaTeX{} we have now tackled most of the remaining
+once, except for a few that for one or the other reasons need to
+always expand (at least partially) or where it rather unlikely that
+they are ever needed in a so-called \enquote{moving argument}.
+
+What hasn't been tackled yet is \pkg{amsmath}. As this package
+redefines a number of basic math construct they become fragile again
+once the package is loaded. This area will be addressed in a follow up
+release.
+
+Also still fragile are \verb=\begin= and \verb=\end= as there are
+several packages that explicitly try to look ahead into the code
+executed by \verb=\end= and making it robust would result in severe
+failures.  Because of this it is currently unclear whether or not
+these commands can be altered eventually.
+
+\githubissue{123}
+
+
 
 \section{Other changes to the \LaTeX{} kernel}
 
diff --git a/base/fontdef.dtx b/base/fontdef.dtx
index c1955424..38d51411 100644
--- a/base/fontdef.dtx
+++ b/base/fontdef.dtx
@@ -39,7 +39,7 @@
 %<driver, >\ProvidesFile{fontdef.drv}
 % \fi
 %          \ProvidesFile{fontdef.dtx}
-%<-latexrelease>           [2018/09/24 v3.0b LaTeX Kernel
+%<-latexrelease>           [2019/08/27 v3.0c LaTeX Kernel
 % \iftrue  (\else
 %<text,   >(Text
 %<math,   >(Math
@@ -837,7 +837,6 @@
 %
 %    \begin{macrocode}
 \DeclareMathSymbol{\aleph}{\mathord}{symbols}{"40}
-\DeclareRobustCommand\hbar{{\mathchar'26\mkern-9muh}}
 \DeclareMathSymbol{\imath}{\mathord}{letters}{"7B}
 \DeclareMathSymbol{\jmath}{\mathord}{letters}{"7C}
 \DeclareMathSymbol{\ell}{\mathord}{letters}{"60}
@@ -849,13 +848,8 @@
 \DeclareMathSymbol{\prime}{\mathord}{symbols}{"30}
 \DeclareMathSymbol{\emptyset}{\mathord}{symbols}{"3B}
 \DeclareMathSymbol{\nabla}{\mathord}{symbols}{"72}
-\DeclareRobustCommand\surd{{\mathchar"1270}}
 \DeclareMathSymbol{\top}{\mathord}{symbols}{"3E}
 \DeclareMathSymbol{\bot}{\mathord}{symbols}{"3F}
-\DeclareRobustCommand\angle{{\vbox{\ialign{$\m at th\scriptstyle##$\crcr
-      \not\mathrel{\mkern14mu}\crcr
-      \noalign{\nointerlineskip}
-      \mkern2.5mu\leaders\hrule \@height.34pt\hfill\mkern2.5mu\crcr}}}}
 \DeclareMathSymbol{\triangle}{\mathord}{symbols}{"34}
 \DeclareMathSymbol{\forall}{\mathord}{symbols}{"38}
 \DeclareMathSymbol{\exists}{\mathord}{symbols}{"39}
@@ -870,6 +864,17 @@
 \DeclareMathSymbol{\spadesuit}{\mathord}{symbols}{"7F}
 %    \end{macrocode}
 %    
+% \changes{v3.0c}{2019/08/27}{Various commands made robust throughout
+%   the file} 
+%    \begin{macrocode}
+\DeclareRobustCommand\hbar{{\mathchar'26\mkern-9muh}}
+\DeclareRobustCommand\surd{{\mathchar"1270}}
+\DeclareRobustCommand\angle{{\vbox{\ialign{$\m at th\scriptstyle##$\crcr
+      \not\mathrel{\mkern14mu}\crcr
+      \noalign{\nointerlineskip}
+      \mkern2.5mu\leaders\hrule \@height.34pt\hfill\mkern2.5mu\crcr}}}}
+%    \end{macrocode}
+%
 %
 % \subsubsection{Large Operators}
 %
diff --git a/base/ltboxes.dtx b/base/ltboxes.dtx
index f91b5963..7e1c2c38 100644
--- a/base/ltboxes.dtx
+++ b/base/ltboxes.dtx
@@ -33,7 +33,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltboxes.dtx}
-             [2017/03/29 v1.3a LaTeX Kernel (Box Commands)]
+             [2019/08/27 v1.3b LaTeX Kernel (Box Commands)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltboxes.dtx}
@@ -53,6 +53,10 @@
 %
 %
 % \changes{v1.1e}{1998/08/17}{(RmS) Minor Documentation fixes.}
+% \changes{v1.3b}{2019/08/27}{Various commands made robust}
+%
+%
+%
 % \section{\LaTeX\ Box commands}
 %
 %
diff --git a/base/ltclass.dtx b/base/ltclass.dtx
index a9608b73..9573614c 100644
--- a/base/ltclass.dtx
+++ b/base/ltclass.dtx
@@ -33,7 +33,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltclass.dtx}
-             [2019/07/09 v1.3a LaTeX Kernel (Class & Package Interface)]
+             [2019/08/27 v1.3b LaTeX Kernel (Class & Package Interface)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltclass.dtx}
@@ -1707,6 +1707,8 @@
 %    \begin{macrocode}
 % \changes{v1.3a}{2019/07/01}{Support UTF8 and spaces in
 %                             filecontents environment file name}
+% \changes{v1.3b}{2019/08/27}{Make various commands robust}
+%
 %</2ekernel>
 %<*2ekernel|latexrelease>
 %<latexrelease>\IncludeInRelease{2019/10/01}%
diff --git a/base/ltdefns.dtx b/base/ltdefns.dtx
index 73e69905..bb94502c 100644
--- a/base/ltdefns.dtx
+++ b/base/ltdefns.dtx
@@ -32,7 +32,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltdefns.dtx}
-             [2018/09/26 v1.5e LaTeX Kernel (definition commands)]
+             [2019/08/27 v1.5f LaTeX Kernel (definition commands)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltdefns.dtx}
@@ -1166,12 +1166,14 @@
 %
 % \begin{macro}{\MakeRobust}
 % \changes{v1.4a}{2015/01/08}{Added macro}
+% \changes{v1.5f}{2019/08/27}{Make the assignments global as we may
+%   need to apply them inside a group}
 %
-% The macro firstly checks if the controls sequence in question exists
+% The macro firstly checks if the control sequence in question exists
 % at all.
 %    \begin{macrocode}
 %</2ekernel>
-%<latexrelease>\IncludeInRelease{2015/01/01}{\MakeRobust}{\MakeRobust}%
+%<latexrelease>\IncludeInRelease{2019/10/01}{\MakeRobust}{\MakeRobust}%
 %<*2ekernel|latexrelease>
 \def\MakeRobust#1{%
   \@ifundefined{\expandafter\@gobble\string#1}{%
@@ -1206,6 +1208,32 @@
 }%
 %</2ekernel|latexrelease>
 %<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2015/01/01}{\MakeRobust}{\MakeRobust}%
+%<latexrelease>\def\MakeRobust#1{%
+%<latexrelease>  \@ifundefined{\expandafter\@gobble\string#1}{%
+%<latexrelease>    \@latex at error{The control sequence `\string#1' is undefined!%
+%<latexrelease>      \MessageBreak There is nothing here to make robust}%
+%<latexrelease>    \@eha
+%<latexrelease>  }%
+%<latexrelease>  {%
+%<latexrelease>    \@ifundefined{\expandafter\@gobble\string#1\space}%
+%<latexrelease>    {%
+%<latexrelease>      \expandafter\let\csname
+%<latexrelease>      \expandafter\@gobble\string#1\space\endcsname=#1%
+%<latexrelease>      \edef\reserved at a{\string#1}%
+%<latexrelease>      \def\reserved at b{#1}%
+%<latexrelease>      \edef\reserved at b{\expandafter\strip at prefix\meaning\reserved at b}%
+%<latexrelease>      \edef#1{%
+%<latexrelease>        \ifx\reserved at a\reserved at b
+%<latexrelease>          \noexpand\x at protect\noexpand#1%
+%<latexrelease>        \fi
+%<latexrelease>        \noexpand\protect\expandafter\noexpand
+%<latexrelease>        \csname\expandafter\@gobble\string#1\space\endcsname}%
+%<latexrelease>    }%
+%<latexrelease>    {\@latex at info{The control sequence `\string#1' is already robust}}%
+%<latexrelease>   }%
+%<latexrelease>}%
+%<latexrelease>\EndIncludeInRelease
 %<latexrelease>\IncludeInRelease{0000/00/00}{\MakeRobust}{\MakeRobust}%
 %<latexrelease>\let\MakeRobust\@undefined
 %<latexrelease>\EndIncludeInRelease
@@ -1213,6 +1241,38 @@
 %    \end{macrocode}
 % \end{macro}
 %
+%
+%
+
+%  \begin{macro}{\kernel at make@fragile}
+%    The opposite of |\MakeRobust| execpt that it doesn't do many
+%    checks as it is internal to the kernel. Why does one want such a
+%    thing?
+%    Only for compatibility reasons if \texttt{latexrelease} requests
+%    a rollback of the kernel. For this reason we pretend that this
+%    command existed in all earler versions of \LaTeX{} i.e., we are
+%    not rolling it back since we need it precisely then.
+%    \begin{macrocode}
+\def\kernel at make@fragile#1{%
+  \@ifundefined{\expandafter\@gobble\string#1\space}%
+%    \end{macrocode}
+%    If not robust do nothing.
+%    \begin{macrocode}
+     {}%
+%    \end{macrocode}
+%    Else copy \verb*=\foo = back to \verb=\foo= and then undefine
+%    the payload command.
+%    \begin{macrocode}
+     {%
+      \global\expandafter\let\expandafter #1\csname
+      \expandafter\@gobble\string#1\space\endcsname
+      \global\expandafter\let\csname
+      \expandafter\@gobble\string#1\space\endcsname\@undefined
+     }%            
+}
+%    \end{macrocode}
+%  \end{macro}
+%
 % \subsection{Internal defining commands}
 %
 % These commands are used internally to define other \LaTeX{}
@@ -1538,6 +1598,8 @@
 \@includeinreleasefalse
 %    \end{macrocode}
 %
+% \changes{v1.5f}{2019/08/27}{Make various commands robust}
+%
 % Delayed from |ltplain.dtx|
 %    \begin{macrocode}
 \MakeRobust\allowbreak
diff --git a/base/ltfiles.dtx b/base/ltfiles.dtx
index f0db467d..afb085a4 100644
--- a/base/ltfiles.dtx
+++ b/base/ltfiles.dtx
@@ -32,7 +32,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltfiles.dtx}
-             [2019/07/01 v1.2a LaTeX Kernel (File Handling)]
+             [2019/08/27 v1.2b LaTeX Kernel (File Handling)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltfiles.dtx}
@@ -750,6 +750,7 @@
 %  \begin{macro}{\IfFileExists}
 %    
 % \changes{v1.2a}{2019/07/01}{Support UTF-8}
+% \changes{v1.2b}{2019/08/27}{Make command robust}
 %    \begin{macrocode}
 \DeclareRobustCommand\IfFileExists[1]{%
   \set at curr@file{#1}%
@@ -761,8 +762,7 @@
 % \begin{macro}{\IfFileExists@}
 % \changes{v0.9b}{1993/12/04}{Macro added}
 % \changes{v0.9p}{1994/01/18}{New Definition}
-% \changes{v1.0t}{1995/05/25}
-%         {(CAR) added \cs{long}}
+% \changes{v1.0t}{1995/05/25}{(CAR) added \cs{long}}
 %
 %    \begin{macrocode}
 \long\def \IfFileExists@#1#2#3{%
@@ -857,6 +857,7 @@
 %         {(CAR) added \cs{long}}
 % \changes{v1.1o}{2019/02/07}{Expand \cs{@filef at und} before executing
 %   second argument (github/109)}
+% \changes{v1.2b}{2019/08/27}{Make command robust}
 %    \begin{macrocode}
 %</2ekernel>
 %<latexrelease>\IncludeInRelease{2019/10/01}%
diff --git a/base/ltfinal.dtx b/base/ltfinal.dtx
index 0192b499..de161a77 100644
--- a/base/ltfinal.dtx
+++ b/base/ltfinal.dtx
@@ -33,7 +33,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltfinal.dtx}
-             [2019/04/09 v2.1g LaTeX Kernel (Final Settings)]
+             [2019/08/27 v2.1g LaTeX Kernel (Final Settings)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltfinal.dtx}
diff --git a/base/ltfssbas.dtx b/base/ltfssbas.dtx
index e00bcc68..da9dab5d 100644
--- a/base/ltfssbas.dtx
+++ b/base/ltfssbas.dtx
@@ -35,7 +35,7 @@
 %
 %
 \ProvidesFile{ltfssbas.dtx}
-             [2019/07/09 v3.2c LaTeX Kernel (NFSS Basic Macros)]
+             [2019/08/27 v3.2d LaTeX Kernel (NFSS Basic Macros)]
 % \iffalse
 \documentclass{ltxdoc}
 \begin{document}
@@ -145,21 +145,11 @@
 %                            substitution font/shape macro.}
 % \changes{v1.0a}{1989/04/10}{Starting with version numbers!!
 %                           \cs{ifmmode} added in \cs{math at group}}
-% \changes{v2.1w}{1994/11/17}
-%         {\cs{@tempa} to \cs{reserved at a}}
-% \changes{v3.0z}{2015/02/21}
-%         {Removed autoload code}
+% \changes{v2.1w}{1994/11/17}{\cs{@tempa} to \cs{reserved at a}}
+% \changes{v3.0z}{2015/02/21}{Removed autoload code}
+% \changes{v3.2d}{2019/08/27}{Make various commands robust}
 %
 %
-% The `2ekernel' code ensures that a |\usepackage{autofss1}| is
-% essentially ignored if a `full' format is being used that has
-% picture mode already in the format.
-%
-% Note the |autofss2| loading is currently disabled.
-%
-%    \begin{macrocode}
-%<2ekernel>\expandafter\let\csname ver at autofss1.sty\endcsname\fmtversion
-%    \end{macrocode}
 %
 %
 % \section{Preliminary macros}
diff --git a/base/ltfssdcl.dtx b/base/ltfssdcl.dtx
index 61a201b9..59dfd37b 100644
--- a/base/ltfssdcl.dtx
+++ b/base/ltfssdcl.dtx
@@ -36,7 +36,7 @@
 %
 %
 \ProvidesFile{ltfssdcl.dtx}
-            [2016/02/18 v3.0r LaTeX Kernel (NFSS Declarative Interface)]
+            [2019/08/27 v3.0s LaTeX Kernel (NFSS Declarative Interface)]
 % \iffalse
 \documentclass{ltxdoc}
 \begin{document}
@@ -1078,12 +1078,17 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\DeclareMathAlphabet}
-% could do with more checks like allowing single number in |#4|
-% lowercase in |#4| etc
+% \begin{macro}{\DeclareMathAccent}
+%    Could do with more checks like allowing single number in |#4|
+%    lowercase in |#4| etc
 % \changes{v3.0r}{2016/02/18}
 %         {Check for mathaccent not \cs{mathaccemt}}
+% \changes{v3.0s}{2019/08/27}{Make math accents robust}
 %    \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2019/10/01}%
+%<latexrelease>                 {DeclareMathAccent}{Make math accents robust}%
 \def\DeclareMathAccent#1#2#3#4{%
   \expandafter\in@\csname sym#3\expandafter\endcsname
      \expandafter{\group at list}%
@@ -1128,6 +1133,54 @@
     \@latex at error{Symbol font `#3' is not defined}\@eha
   \fi
 }
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease>                 {DeclareMathAccent}{Make math accents robust}%
+%<latexrelease>\def\DeclareMathAccent#1#2#3#4{%
+%<latexrelease>  \expandafter\in@\csname sym#3\expandafter\endcsname
+%<latexrelease>     \expandafter{\group at list}%
+%<latexrelease>  \ifin@
+%<latexrelease>    \begingroup
+%<latexrelease>      \count\z@=#4\relax
+%<latexrelease>      \count\tw@\count\z@
+%<latexrelease>      \divide\count\z@\sixt@@n
+%<latexrelease>      \count@\count\z@
+%<latexrelease>      \multiply\count@\sixt@@n
+%<latexrelease>      \advance\count\tw at -\count@
+%<latexrelease>      \if\relax\noexpand#1% is command?
+%<latexrelease>        \edef\reserved at a{\noexpand\in@
+%<latexrelease>           {\expandafter\@gobble\string\mathaccent}{\meaning#1}}%
+%<latexrelease>        \reserved at a
+%<latexrelease>        \ifin@
+%<latexrelease>          \expandafter\set at mathaccent
+%<latexrelease>             \csname sym#3\endcsname#1#2%
+%<latexrelease>             {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
+%<latexrelease>          \@font at info{Redeclaring math accent \string#1}%
+%<latexrelease>        \else
+%<latexrelease>          \expandafter\ifx
+%<latexrelease>          \csname\expandafter\@gobble\string#1\endcsname
+%<latexrelease>          \relax
+%<latexrelease>            \expandafter\set at mathaccent
+%<latexrelease>               \csname sym#3\endcsname#1#2%
+%<latexrelease>               {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
+%<latexrelease>          \else
+%<latexrelease>            \@latex at error{Command `\string#1' already defined}\@eha
+%<latexrelease>          \fi
+%<latexrelease>        \fi
+%<latexrelease>      \else
+%<latexrelease>       \@latex at error{Not a command name: `\noexpand#1'}\@eha
+%<latexrelease>      \fi
+%<latexrelease>    \endgroup
+%<latexrelease>  \else
+%<latexrelease>    \@latex at error{Symbol font `#3' is not defined}\@eha
+%<latexrelease>  \fi
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 \@onlypreamble\DeclareMathAccent
 %    \end{macrocode}
 % \end{macro}
@@ -1299,7 +1352,12 @@
 % \begin{macro}{\@DeclareMathDelimiter}
 % \changes{v3.0r}{2016/02/18}
 %         {Check for delimiter not \cs{delimiter}}
+% \changes{v3.0s}{2019/08/27}{Make math delimiters robust}
 %    \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2019/10/01}%
+%<latexrelease>                 {\@DeclareMathDelimiter}{Make math delimiters robust}%
 \def\@DeclareMathDelimiter#1#2#3#4#5#6{%
   \expandafter\in@\csname sym#3\expandafter\endcsname
      \expandafter{\group at list}%
@@ -1355,6 +1413,68 @@
     \@latex at error{Symbol font `#3' is not defined}\@eha
   \fi
 }
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease>                 {\@DeclareMathDelimiter}{Make math delimiters robust}%
+%<latexrelease>\def\@DeclareMathDelimiter#1#2#3#4#5#6{%
+%<latexrelease>  \expandafter\in@\csname sym#3\expandafter\endcsname
+%<latexrelease>     \expandafter{\group at list}%
+%<latexrelease>  \ifin@
+%<latexrelease>    \expandafter\in@\csname sym#5\expandafter\endcsname
+%<latexrelease>       \expandafter{\group at list}%
+%<latexrelease>    \ifin@
+%<latexrelease>      \begingroup
+%<latexrelease>        \count\z@=#4\relax
+%<latexrelease>        \count\tw@\count\z@
+%<latexrelease>        \divide\count\z@\sixt@@n
+%<latexrelease>        \count@\count\z@
+%<latexrelease>        \multiply\count@\sixt@@n
+%<latexrelease>        \advance\count\tw at -\count@
+%<latexrelease>        \edef\reserved at c{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
+%<latexrelease>      %
+%<latexrelease>        \count\z@=#6\relax
+%<latexrelease>        \count\tw@\count\z@
+%<latexrelease>        \divide\count\z@\sixt@@n
+%<latexrelease>        \count@\count\z@
+%<latexrelease>        \multiply\count@\sixt@@n
+%<latexrelease>        \advance\count\tw at -\count@
+%<latexrelease>        \edef\reserved at d{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
+%<latexrelease>      %
+%<latexrelease>        \edef\reserved at a{\noexpand\in@
+%<latexrelease>            {\expandafter\@gobble\string\delimiter}{\meaning#1}}%
+%<latexrelease>        \reserved at a
+%<latexrelease>        \ifin@
+%<latexrelease>          \expandafter\set at mathdelimiter
+%<latexrelease>             \csname sym#3\expandafter\endcsname
+%<latexrelease>             \csname sym#5\endcsname#1#2%
+%<latexrelease>             \reserved at c\reserved at d
+%<latexrelease>          \@font at info{Redeclaring math delimiter \string#1}%
+%<latexrelease>        \else
+%<latexrelease>            \expandafter\ifx
+%<latexrelease>            \csname\expandafter\@gobble\string#1\endcsname
+%<latexrelease>            \relax
+%<latexrelease>            \expandafter\set at mathdelimiter
+%<latexrelease>              \csname sym#3\expandafter\endcsname
+%<latexrelease>              \csname sym#5\endcsname#1#2%
+%<latexrelease>              \reserved at c\reserved at d
+%<latexrelease>          \else
+%<latexrelease>            \@latex at error{Command `\string#1' already defined}\@eha
+%<latexrelease>          \fi
+%<latexrelease>        \fi
+%<latexrelease>      \endgroup
+%<latexrelease>    \else
+%<latexrelease>      \@latex at error{Symbol font `#5' is not defined}\@eha
+%<latexrelease>    \fi
+%<latexrelease>  \else
+%<latexrelease>    \@latex at error{Symbol font `#3' is not defined}\@eha
+%<latexrelease>  \fi
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 \@onlypreamble\@DeclareMathDelimiter
 %    \end{macrocode}
 % \end{macro}
diff --git a/base/ltfssini.dtx b/base/ltfssini.dtx
index 7548f241..b073a5cc 100644
--- a/base/ltfssini.dtx
+++ b/base/ltfssini.dtx
@@ -36,7 +36,7 @@
 %
 %
 \ProvidesFile{ltfssini.dtx}
-             [2019/07/09 v3.1c LaTeX Kernel (NFSS Initialisation)]
+             [2019/08/27 v3.1d LaTeX Kernel (NFSS Initialisation)]
 % \iffalse
 \documentclass{ltxdoc}
 \begin{document}
@@ -80,6 +80,7 @@
 %      {(DPC) Make file from previous file, lfonts.dtx 1995/05/23 v2.2e}
 % \changes{v3.1b}{2016/10/15}
 %      {Require e\TeX{}}
+% \changes{v3.1d}{2019/08/27}{Make various commands robust}
 %
 %
 % \section{NFSS Initialisation}
diff --git a/base/ltidxglo.dtx b/base/ltidxglo.dtx
index 485f0942..60e39f09 100644
--- a/base/ltidxglo.dtx
+++ b/base/ltidxglo.dtx
@@ -32,7 +32,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltidxglo.dtx}
-             [1996/01/20 v1.1e LaTeX Kernel (Index and Glossary)]
+             [2019/08/27 v1.1f LaTeX Kernel (Index and Glossary)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltidxglo.dtx}
@@ -76,6 +76,7 @@
 % \changes{v1.1a}{1994/05/19}{Initial version of ltidxglo.dtx,
 %                             split from ltidxbib.dtx}
 % \changes{v1.1d}{1995/10/25}{Doc cleanup}
+% \changes{v1.1f}{2019/08/27}{Make \cs{index} and \cs{gloassary} robust}
 %
 %
 % \begin{oldcomments}
diff --git a/base/ltlength.dtx b/base/ltlength.dtx
index baf630e3..7b72946d 100644
--- a/base/ltlength.dtx
+++ b/base/ltlength.dtx
@@ -33,7 +33,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltlength.dtx}
-             [2015/01/08 v1.1c LaTeX Kernel (Lengths)]
+             [2019/08/27 v1.1d LaTeX Kernel (Lengths)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltlength.dtx}
@@ -59,10 +59,9 @@
 %
 % \changes{v1.0c}{1994/03/29}
 %     {Create file ltcntlen from parts of ltmiscen and ltherest.}
-% \changes{v1.1a}{1994/05/19}
-%     {Extract file ltlength from ltcntlen.}
-% \changes{v1.1b}{1995/08/11}
-%     {Doc typos fixed for latex/753}
+% \changes{v1.1a}{1994/05/19}{Extract file ltlength from ltcntlen.}
+% \changes{v1.1b}{1995/08/11}{Doc typos fixed for latex/753}
+% \changes{v1.1d}{2019/08/27}{Make various command robust}
 %
 % \section{Lengths}
 %
diff --git a/base/ltlogos.dtx b/base/ltlogos.dtx
index 8e9d41fa..ab20b60c 100644
--- a/base/ltlogos.dtx
+++ b/base/ltlogos.dtx
@@ -32,7 +32,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltlogos.dtx}
-             [1998/08/17 v1.1i LaTeX Kernel (Logos)]
+             [2019/08/27 v1.1j LaTeX Kernel (Logos)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltlogos.dtx}
@@ -70,6 +70,7 @@
 % \begin{macro}{\TeX}
 %    The \TeX{} logo, adjusted so that a full stop after the logo
 %    counts as ending a sentence.
+% \changes{v1.1j}{2019/08/27}{Make \cs{TeX} command robust}
 %    \begin{macrocode}
 %<*2ekernel>
 \DeclareRobustCommand\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@}
diff --git a/base/ltmath.dtx b/base/ltmath.dtx
index c456ac29..4fa016c9 100644
--- a/base/ltmath.dtx
+++ b/base/ltmath.dtx
@@ -38,7 +38,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltmath.dtx}
-              [2018/09/24 v1.2b LaTeX Kernel (Math Setup)]
+              [2019/08/27 v1.2c LaTeX Kernel (Math Setup)]
 % \iffalse
 %</driver>
 %
@@ -95,6 +95,7 @@
 % \changes{v1.0r}{1995/05/07}{Use \cs{hb at xt@}}
 % \changes{v1.0r}{1995/05/21}{Update some plain macros}
 % \changes{v1.0t}{1995/06/28}{minor doc edits}
+% \changes{v1.2c}{2019/08/27}{Make various commands robust}
 %
 % \begin{macro}{\log}
 % The standard operators:
diff --git a/base/ltmiscen.dtx b/base/ltmiscen.dtx
index ad80ea1c..4893ba2b 100644
--- a/base/ltmiscen.dtx
+++ b/base/ltmiscen.dtx
@@ -32,7 +32,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltmiscen.dtx}
-             [2018/10/11 v1.1o LaTeX Kernel (Misc. Environments)]
+             [2019/08/27 v1.1p LaTeX Kernel (Misc. Environments)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltmiscen.dtx}
@@ -72,6 +72,7 @@
 % \changes{v1.1d}{1996/06/03}{Move setting of verbatim font and
 %         \cs{@noligs}.}
 % \changes{v1.1g}{1998/08/17}{(RmS) Minor documentation fixes.}
+% \changes{v1.1p}{2019/08/27}{Make various commands robust}
 %
 % \section{Miscellaneous Environments}
 %  This section implements the basic environment mechanism, and also
diff --git a/base/ltoutput.dtx b/base/ltoutput.dtx
index e8a3b17f..138bc85b 100644
--- a/base/ltoutput.dtx
+++ b/base/ltoutput.dtx
@@ -37,7 +37,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltoutput.dtx}
-             [2018/11/28 v1.4d LaTeX Kernel (Output Routine)]
+             [2019/08/27 v1.4e LaTeX Kernel (Output Routine)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltoutput.dtx}
@@ -783,6 +783,7 @@
 %         {Added macro}
 % \changes{v1.1f}{1994/11/14}{Use normal box register: why a box?}
 % \changes{v1.1l}{1995/04/24}{Add \cs{vbox} latex/1392}
+% \changes{v1.4e}{2019/08/27}{Make \cs{AtBeginDvi} robust}
 %
 %    We use a box register in which to put
 %    stuff that must appear before anything else in the
diff --git a/base/ltpage.dtx b/base/ltpage.dtx
index a9d13261..2f68c6ef 100644
--- a/base/ltpage.dtx
+++ b/base/ltpage.dtx
@@ -33,7 +33,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltpage.dtx}
-             [2000/06/02 v1.0k LaTeX Kernel (page style setup)]
+             [2019/08/27 v1.0l LaTeX Kernel (page style setup)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltpage.dtx}
@@ -63,6 +63,7 @@
 % \changes{v1.0a}{1994/03/07}{Initial version, split from ltherest.dtx}
 % \changes{v1.0b}{1994/04/19}{Improve documentation}
 % \changes{v1.0i}{1996/04/18}{Improve documentation}
+% \changes{v1.0l}{2019/08/27}{Make various commands robust}
 %
 %
 % \subsection{Page Style Commands}
diff --git a/base/ltpictur.dtx b/base/ltpictur.dtx
index d25ca51e..19e3c539 100644
--- a/base/ltpictur.dtx
+++ b/base/ltpictur.dtx
@@ -32,7 +32,7 @@
 %<*driver>
 % \fi
       \ProvidesFile{ltpictur.dtx}
-                      [2016/03/29 v1.1l LaTeX Kernel (Picture Mode)]
+                      [2019/08/27 v1.1m LaTeX Kernel (Picture Mode)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltpictur.dtx}
@@ -95,6 +95,8 @@
 % \changes{v0.1e}{1994/05/22}{Use new warning cmds}
 % \changes{v1.0f}{1994/11/17}
 %         {\cs{@tempa} to \cs{reserved at a}}
+% \changes{v1.1m}{2019/08/27}{Remove several unnecessary \cs{gdef} definitions}
+% \changes{v1.1m}{2019/08/27}{Make various commands robust}
 %
 % \begin{oldcomments}
 %
diff --git a/base/ltplain.dtx b/base/ltplain.dtx
index 6fe4876d..2337133f 100644
--- a/base/ltplain.dtx
+++ b/base/ltplain.dtx
@@ -1253,8 +1253,7 @@
 % \LaTeX\ sets |\strutbox| in |\set at fontsize|.
 %    \begin{macrocode}
 \newbox\strutbox
-\def\strut
-    {\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
+\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
 %    \end{macrocode}
 %  \end{macro}
 %  \end{macro}
diff --git a/base/ltsect.dtx b/base/ltsect.dtx
index 7dfe2779..42357900 100644
--- a/base/ltsect.dtx
+++ b/base/ltsect.dtx
@@ -31,7 +31,7 @@
 %%% From File: ltsect.dtx
 %<*driver>
 % \fi
-\ProvidesFile{ltsect.dtx}[2018/09/26 v1.1c LaTeX Kernel (Sectioning)]
+\ProvidesFile{ltsect.dtx}[2019/08/27 v1.1d LaTeX Kernel (Sectioning)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltsect.dtx}
@@ -85,6 +85,7 @@
 %         {\cs{@tempa} to \cs{reserved at a}}
 % \changes{v1.0m}{1995/05/03}{TO: Promoted documentation to doc.sty
 %         standard}
+% \changes{v1.1d}{2019/08/27}{Make various commands robust}
 %
 %    \begin{macrocode}
 %<*2ekernel>
diff --git a/base/ltspace.dtx b/base/ltspace.dtx
index 241557c5..f9cab771 100644
--- a/base/ltspace.dtx
+++ b/base/ltspace.dtx
@@ -32,7 +32,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltspace.dtx}
-             [2018/10/10 v1.3i LaTeX Kernel (spacing)]
+             [2019/08/27 v1.3j LaTeX Kernel (spacing)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltspace.dtx}
@@ -62,6 +62,7 @@
 % \changes{v1.2q}{1996/07/27}{Further documentation of problems}
 % \changes{v1.2r}{1996/07/27}{Correct documentation of problems}
 % \changes{v1.2w}{1998/08/17}{Documentation fixes.}
+% \changes{v1.3j}{2019/08/27}{Make various commands robust}
 %
 %
 % \section{Spacing}
diff --git a/base/lttab.dtx b/base/lttab.dtx
index a4fc584f..6923a3ac 100644
--- a/base/lttab.dtx
+++ b/base/lttab.dtx
@@ -31,7 +31,7 @@
 %%% From File: lttab.dtx
 %<*driver>
 % \fi
-\ProvidesFile{lttab.dtx}[2018/12/30 v1.1p LaTeX Kernel (Columns)]
+\ProvidesFile{lttab.dtx}[2019/08/27 v1.1p LaTeX Kernel (Columns)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{lttab.dtx}
@@ -84,8 +84,9 @@
 % \changes{v1.0c}{1994/05/07}{Removed surplus braces from
 %                             \cs{@ifnextchar} constructs}
 % \changes{v1.0f}{1994/05/21}{Use new error commands}
-% \changes{v1.0j}{1994/11/17}
-%         {\cs{@tempa} to \cs{reserved at a}}
+% \changes{v1.0j}{1994/11/17}{\cs{@tempa} to \cs{reserved at a}}
+% \changes{v1.1q}{2019/08/27}{Remove several unnecessary \cs{gdef} definitions}
+% \changes{v1.1q}{2019/08/27}{Make various commands robust}
 %
 % \subsection{tabbing}
 %





More information about the latex3-commits mailing list