summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex-dev
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-11-19 22:34:19 +0000
committerKarl Berry <karl@freefriends.org>2019-11-19 22:34:19 +0000
commit3274fea6c34517ff1b5b17ca0ff3b92574f340a5 (patch)
tree66dede7eb9d4492fb6766ea40ade67bceef07d06 /Master/texmf-dist/source/latex-dev
parent079d7aeb0e3afef4ad6b0f906f9ad4a6ae1be57d (diff)
latex-dev (19nov19)
git-svn-id: svn://tug.org/texlive/trunk@52866 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex-dev')
-rw-r--r--Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx22
-rw-r--r--Master/texmf-dist/source/latex-dev/base/classes.dtx10
-rw-r--r--Master/texmf-dist/source/latex-dev/base/doc.dtx27
-rw-r--r--Master/texmf-dist/source/latex-dev/base/fontdef.dtx27
-rw-r--r--Master/texmf-dist/source/latex-dev/base/format.ins6
-rw-r--r--Master/texmf-dist/source/latex-dev/base/latexrelease.ins1
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltclass.dtx34
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx45
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltexpl.dtx99
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfiles.dtx93
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfinal.dtx23
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltluatex.dtx34
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx63
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltsect.dtx2
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltspace.dtx33
-rw-r--r--Master/texmf-dist/source/latex-dev/base/lttab.dtx8
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltvers.dtx4
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx5
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltxref.dtx5
-rw-r--r--Master/texmf-dist/source/latex-dev/base/nfssfont.dtx6
-rw-r--r--Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx7
-rw-r--r--Master/texmf-dist/source/latex-dev/graphics/graphics.dtx88
-rw-r--r--Master/texmf-dist/source/latex-dev/tools/multicol.dtx29
-rw-r--r--Master/texmf-dist/source/latex-dev/tools/shellesc.dtx82
-rw-r--r--Master/texmf-dist/source/latex-dev/tools/varioref.dtx9
-rw-r--r--Master/texmf-dist/source/latex-dev/tools/verbatim.dtx10
-rw-r--r--Master/texmf-dist/source/latex-dev/tools/xr.dtx2
27 files changed, 610 insertions, 164 deletions
diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx b/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
index 8671694b706..11b7545c266 100644
--- a/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
+++ b/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
@@ -86,7 +86,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesPackage{amsmath}[2019/04/01 v2.17c AMS math features]
+\ProvidesPackage{amsmath}[2019/11/16 v2.17d AMS math features]
% \end{macrocode}
%
% \section{Catcode defenses}
@@ -1641,10 +1641,19 @@ Foreign command \@backslashchar#1;\MessageBreak
% By redefining \cs{set@mathaccent} we ensure that
% \cn{DeclareMathAccent} will define accent commands to run our
% \cs{mathaccentV} function instead of the primitive \cs{mathaccent}.
+% \changes{v2.17d}{2019/11/16}{Added \cs{MakeRobust} to match kernel
+% change (gh/216)}
% \begin{macrocode}
\def\set@mathaccent#1#2#3#4{%
- \xdef#2{\@nx\protect\@nx\mathaccentV
+% \end{macrocode}
+% Now that the redefinitions done inside amsmath of the basic accents
+% are all robust we can drop the \cs{protect} here.
+% \begin{macrocode}
+ \xdef#2{%
+% \@nx\protect
+ \@nx\mathaccentV
{\@xp\@gobble\string#2}\hexnumber@#1#4}%
+ \MakeRobust#2%
}
% \end{macrocode}
%
@@ -1714,6 +1723,13 @@ Foreign command \@backslashchar#1;\MessageBreak
Unable to redefine math accent \string#5}%
\fi\fi}
\def\@tempc#1"#2#3#4#5#6\@nil#7{%
+% \end{macrocode}
+% Drop the inner part of the robust accent so that it can be recreated
+% without a warning.
+% \changes{v2.17d}{2019/11/16}{Make temporarily fragile to match kernel
+% change (gh/216)}
+% \begin{macrocode}
+ \@xp\let\csname\@xp\@gobble\string#7\space\endcsname\@undefined
\chardef\@tempd="#3\relax\set@mathaccent\@tempd{#7}{#2}{#4#5}}
\def\@tempd#1\@nil#2{%
\PackageWarningNoLine{amsmath}{%
@@ -2091,7 +2107,7 @@ Foreign command \@backslashchar#1;\MessageBreak
% \begin{macro}{\overunderset}
% This is the combination of the previous two commands which is
% something that is sometimes needed.
-% \changes{v2.17c}{FMi}{New command \cs{overunderset}}
+% \changes{v2.17c}{2019/04/01}{New command \cs{overunderset}}
% \begin{macrocode}
\newcommand{\overunderset}[3]{\binrel@{#3}%
\binrel@@{\mathop{\kern\z@#3}\limits^{#1}_{#2}}}
diff --git a/Master/texmf-dist/source/latex-dev/base/classes.dtx b/Master/texmf-dist/source/latex-dev/base/classes.dtx
index 9fed94dfdd9..1de8095a6e1 100644
--- a/Master/texmf-dist/source/latex-dev/base/classes.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/classes.dtx
@@ -53,7 +53,7 @@
%<*driver>
\ProvidesFile{classes.drv}
%</driver>
- [2019/08/27 v1.4j
+ [2019/10/25 v1.4k
%<article|report|book> Standard LaTeX document class]
%<10pt|11pt|12pt> Standard LaTeX file (size option)]
% \end{macrocode}
@@ -611,9 +611,13 @@
\normalsize
% \end{macrocode}
% We use |\MakeRobust| instead of |\DeclareRobustCommand| above to avoid a log
-% entry for the redefinition.
+% entry for the redefinition. But if we are running in in a rollback situation
+% (prior to 2015) we don't touch it.
+% \changes{v1.4k}{2019/10/25}{Roll back handling (gh/201)}
% \begin{macrocode}
-\MakeRobust\normalsize
+\ifx\MakeRobust\@undefined \else
+ \MakeRobust\normalsize
+\fi
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex-dev/base/doc.dtx b/Master/texmf-dist/source/latex-dev/base/doc.dtx
index 971bb6053eb..e7f2b44c2f3 100644
--- a/Master/texmf-dist/source/latex-dev/base/doc.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/doc.dtx
@@ -35,7 +35,7 @@
%<+package|shortvrb>\NeedsTeXFormat{LaTeX2e}[1994/12/01]
%<+package> \ProvidesPackage{doc}
%<+shortvrb>\ProvidesPackage{shortvrb}
-%<+package|shortvrb> [2018/09/25 v2.1i
+%<+package|shortvrb> [2019/11/10 v2.1k
%<+package|shortvrb> Standard LaTeX documentation package (FMi)]
%\catcode`\<=12
%
@@ -139,7 +139,7 @@
% \changes{v1.9t}{1995/05/11}{Use \cs{GetFileInfo}}
% \GetFileInfo{doc.sty}
%
-% \CheckSum{2206} ^^A % keep the checksum in this file
+% \CheckSum{2208} ^^A % keep the checksum in this file
%
% \title{The \DOC{} and \texttt{shortvrb} Packages\thanks
% {This file has version number \fileversion{} dated \filedate{}.}}
@@ -2005,7 +2005,13 @@
% We deal in a similar way with the star form of this environment.
% \begin{macrocode}
\@namedef{verbatim*}{\@beginparpenalty \predisplaypenalty \@verbatim
- \MacroFont \@sxverbatim}
+% \end{macrocode}
+%
+% \changes{v2.1j}{2019/11/03}{Kernel now sets up \cs{verbvisiblespace} (gh/205)}
+% \changes{v2.1k}{2019/11/10}{Put the definition into the right command :-( (gh/205)}
+% \begin{macrocode}
+ \@setupverbvisiblespace
+ \MacroFont \@vobeyspaces \@sxverbatim}
% \end{macrocode}
% \end{environment}
% \end{environment}
@@ -2121,13 +2127,14 @@
% \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX verbatim,
% which has better error trapping.}
% See \cite{art:verbatim} for commentary.
-% \begin{macrocode}
-\def\@sverb#1{%
- \catcode`#1\active \lccode`\~`#1%
- \gdef\verb@balance@group{\verb@egroup
- \@latex@error{Illegal use of \noexpand\verb command}\@ehc}%
- \aftergroup\verb@balance@group
- \lowercase{\let~\verb@egroup}}
+% \changes{v2.1j}{2019/11/03}{Use the kernel definition, no change needed (gh/205)}
+% \begin{macrocode}
+%\def\@sverb#1{%
+% \catcode`#1\active \lccode`\~`#1%
+% \gdef\verb@balance@group{\verb@egroup
+% \@latex@error{Illegal use of \noexpand\verb command}\@ehc}%
+% \aftergroup\verb@balance@group
+% \lowercase{\let~\verb@egroup}}
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex-dev/base/fontdef.dtx b/Master/texmf-dist/source/latex-dev/base/fontdef.dtx
index 38d51411c39..c9c5f5d77dc 100644
--- a/Master/texmf-dist/source/latex-dev/base/fontdef.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/fontdef.dtx
@@ -39,7 +39,7 @@
%<driver, >\ProvidesFile{fontdef.drv}
% \fi
% \ProvidesFile{fontdef.dtx}
-%<-latexrelease> [2019/08/27 v3.0c LaTeX Kernel
+%<-latexrelease> [2019/09/21 v3.0d LaTeX Kernel
% \iftrue (\else
%<text, >(Text
%<math, >(Math
@@ -966,7 +966,17 @@
\DeclareMathSymbol{\Leftrightarrow}{\mathrel}{symbols}{"2C}
\DeclareMathSymbol{\Leftarrow}{\mathrel}{symbols}{"28}
\DeclareMathSymbol{\Rightarrow}{\mathrel}{symbols}{"29}
-\DeclareRobustCommand\neq{\not=} \let\ne=\neq
+\DeclareRobustCommand\neq{\not=}
+% \end{macrocode}
+% As \cs{neq} is robust we should not use \cs{let} to define
+% \cs{ne} as then then it would change if \cs{neq} changes.
+% \changes{v3.0d}{2019/09/21}{Distangle alias (gh/184)}
+% \begin{macrocode}
+%\let\ne=\neq
+\DeclareRobustCommand\ne{\not=}
+% \end{macrocode}
+% It is ok to use \cs{let} for those declared by \cs{DeclareMathSymbol}.
+% \begin{macrocode}
\DeclareMathSymbol{\leq}{\mathrel}{symbols}{"14}
\let\le=\leq
\DeclareMathSymbol{\geq}{\mathrel}{symbols}{"15}
@@ -1216,7 +1226,18 @@
{\mathord}{symbols}{"6B}{largesymbols}{"3D}
\DeclareMathDelimiter{\Vert}
{\mathord}{symbols}{"6B}{largesymbols}{"0D}
-\let\|=\Vert
+% \end{macrocode}
+% \cs{DeclareMathDelimiter} produces a command that is robust (with
+% an internal macro containing the payload) so we should not use
+% \cs{let} for making an alias
+% \changes{v3.0d}{2019/09/21}{Distangle alias (gh/184)}
+% \begin{macrocode}
+%\let\|=\Vert
+\DeclareMathDelimiter{\|}
+ {\mathord}{symbols}{"6B}{largesymbols}{"0D}
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareMathDelimiter{\vert}
{\mathord}{symbols}{"6A}{largesymbols}{"0C}
\DeclareMathDelimiter{\uparrow}
diff --git a/Master/texmf-dist/source/latex-dev/base/format.ins b/Master/texmf-dist/source/latex-dev/base/format.ins
index 5a1bf6e79c6..d060044552e 100644
--- a/Master/texmf-dist/source/latex-dev/base/format.ins
+++ b/Master/texmf-dist/source/latex-dev/base/format.ins
@@ -209,9 +209,6 @@ the system are in the document `cfgguide.tex'.
\from{ltmath.dtx}{leqno}}
}
-
-
-
\generateFile{oldlfont.sty}{t}{%
\from{oldlfont.dtx}{package}
}
@@ -220,6 +217,9 @@ the system are in the document `cfgguide.tex'.
\from{newlfont.dtx}{package}
}
+% expl3-based extensions
+\generate{\file{ltexpl.ltx}{\from{ltexpl.dtx}{2ekernel}}}
+
% luatex support (TeX part)
\generate{\file{ltluatex.tex}{\from{ltluatex.dtx}{tex,plain}}}
diff --git a/Master/texmf-dist/source/latex-dev/base/latexrelease.ins b/Master/texmf-dist/source/latex-dev/base/latexrelease.ins
index 9358692a910..e515143740f 100644
--- a/Master/texmf-dist/source/latex-dev/base/latexrelease.ins
+++ b/Master/texmf-dist/source/latex-dev/base/latexrelease.ins
@@ -122,6 +122,7 @@ extension .ins) which are part of the distribution.
\from{ltxref.dtx} {latexrelease}% empty
\from{ltmiscen.dtx} {latexrelease}%
\from{ltluatex.dtx} {latexrelease}%
+ \from{ltexpl.dtx} {latexrelease}%
\from{ltfinal.dtx} {latexrelease}%
}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltclass.dtx b/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
index 3d19971701f..9dc65d2bb9b 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2019/09/11 v1.3c LaTeX Kernel (Class & Package Interface)]
+ [2019/10/18 v1.3d LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -155,7 +155,7 @@
% verbatim to the file name given as the first argument, together with
% some comments about how it was produced.
%
-% The package can also be called with an optional argument which is
+% The environment can also be called with an optional argument which is
% used to alter some of its behavior: option \texttt{force} or
% \texttt{overwrite} will allow for overwriting existing files,
% option \texttt{nosearch} will only check the current directory
@@ -1429,12 +1429,13 @@
% {Made the initial version [] not [\cs{@unknownversion}]}
% \changes{v0.2m}{1993/12/07}
% {Reset \cs{CurrentOption}}
+% \changes{v1.3d}{2019/10/18}{Initialize \cs{...-h@@k} only when loading
+% the package or class (gh/198)}
% \begin{macrocode}
\def\@onefilewithoptions#1[#2][#3]#4{%
\@pushfilename
\xdef\@currname{#1}%
\global\let\@currext#4%
- \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
\let\CurrentOption\@empty
\@reset@ptions
\makeatletter
@@ -1470,6 +1471,11 @@
% \begin{macrocode}
\global\expandafter
\let\csname ver@\@currname.\@currext\endcsname\@empty
+% \end{macrocode}
+% We initialize \cs{...-h@@k} here and only if we load the file so that it
+% remains undefined otherwise.
+% \begin{macrocode}
+ \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
\InputIfFileExists
{\@currname.\@currext}%
{}%
@@ -1731,8 +1737,6 @@
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\filec@ntents}{Spaces in file names + optional arg}%
%
-
-
% \end{macrocode}
% We use |@tempswa| to mean no preamble writing and reuse |@filesw|
% to indicate no overwriting:
@@ -2153,7 +2157,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
-
+%
% \begin{macro}{\pkgcls@candidate}
% \begin{macro}{\pkgcls@releasedate}
% When looping through the |\DeclareRelease| declarations we
@@ -2388,10 +2392,7 @@
\def\pkgcls@targetlabel{#1}}
% \end{macrocode}
% \end{macro}
-
-
-
-
+%
% \begin{macro}{\DeclareRelease}
% First argument is the ``name'' of the release and it can be left empty
% if one doesn't like to give a name to the release.
@@ -2497,10 +2498,7 @@
}
% \end{macrocode}
% \end{macro}
-
-
-
-
+%
% \begin{macro}{\pkgcls@use@this@release}
% If a certain release has been selected (stored in the external
% file given in \verb=#1=) we need to input it and afterwards stop
@@ -2535,8 +2533,7 @@
}
% \end{macrocode}
% \end{macro}
-
-
+%
% \begin{macro}{\pkgcls@show@selection}
% This command records what selection was made. As that is needed
% in two places (and it is rather lengthly) it was placed in a
@@ -2578,8 +2575,7 @@
}
% \end{macrocode}
% \end{macro}
-
-
+%
% \begin{macro}{\pkgcls@rollbackdate@error}
% This is called if the requested rollback date is earlier than the
% earliest known release of a package or class.
@@ -2635,7 +2631,6 @@
% |\DeclareCurrentRelease| but no declared older releases (so
% basically the use of the declaration is a bit dubious).
% \begin{macrocode}
-
\ifx\pkgcls@candidate\@empty
\pkgcls@rollbackdate@error{#2}%
\else
@@ -2669,7 +2664,6 @@
% \end{macro}
%
%
-
% \begin{macro}{\IfTargetDateBefore}
% This enables a simple form of conditional code inside a class or
% package file. If there is a date request and the request date is
diff --git a/Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx b/Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx
index b9db177f195..744759f3176 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx
@@ -37,7 +37,7 @@
%<*driver>
% \fi
\ProvidesFile{ltdirchk.dtx}
- [2016/10/15 v1.2b LaTeX Kernel (System Dependent Parts)]
+ [2019/11/01 v1.3a LaTeX Kernel (System Dependent Parts)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdirchk.dtx}
@@ -918,14 +918,43 @@
%
% |\filename@simple| is used by all three versions.
% Finally we can split off the extension.
+% \changes{v1.3a}{2019/11/01}
+% {take last . not first}
% \begin{macrocode}
- \def\filename@simple#1.#2\\{%
- \ifx\\#2\\%
- \let\filename@ext\relax
- \else
- \edef\filename@ext{\filename@dot#2\\}%
- \fi
- \edef\filename@base{#1}}
+%</dircheck>
+%<*dircheck,latexrelease>
+%<latexrelease>\IncludeInRelease{2019/10/01}{\filename@simple}
+%<latexrelease> {Final dot for extension}%
+\def\filename@simple#1.#2\\{%
+ \ifx\\#2\\%
+ \let\filename@ext\relax
+ \edef\filename@base{#1}%
+ \else
+ \filename@dots{#1}#2\\%
+ \fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\filename@dots#1#2.#3\\{%
+ \ifx\\#3\\%
+ \def\filename@ext{#2}%
+ \edef\filename@base{#1}%
+ \else
+ \filename@dots{#1.#2}#3\\%
+ \fi}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}{\filename@simple}
+%<latexrelease> {Final dot for extension}%
+%<latexrelease> \def\filename@simple#1.#2\\{%
+%<latexrelease> \ifx\\#2\\%
+%<latexrelease> \let\filename@ext\relax
+%<latexrelease> \else
+%<latexrelease> \edef\filename@ext{\filename@dot#2\\}%
+%<latexrelease> \fi
+%<latexrelease> \edef\filename@base{#1}}
+%<latexrelease>\EndIncludeInRelease
+%</dircheck,latexrelease>
+%<*dircheck>
% \end{macrocode}
%
% Remove a final dot, added earlier.
diff --git a/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx b/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx
new file mode 100644
index 00000000000..92676a1298f
--- /dev/null
+++ b/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx
@@ -0,0 +1,99 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2019
+% The LaTeX3 Project and any individual authors listed elsewhere
+% in this file.
+%
+% This file is part of the LaTeX base system.
+% -------------------------------------------
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% This file has the LPPL maintenance status "maintained".
+%
+% The list of all files belonging to the LaTeX base distribution is
+% given in the file `manifest.txt'. See also `legal.txt' for additional
+% information.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+%
+% \fi
+%
+% \iffalse
+%%% From File: ltexpl.dtx
+%
+%<*driver>
+% \fi
+\ProvidesFile{ltexpl.dtx}
+ [2019-10-02 v0.0 LaTeX Kernel (expl3-dependent code)]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{ltfinal.dtx}
+\title{\filename}
+\date{\filedate}
+\author{%
+ Joseph Wright}
+\begin{document}
+ \MaintainedByLaTeXTeam{latex}
+ \maketitle
+ \DocInput{ltfinal.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{\pkg{expl3}-dependent code}
+%
+% \StopEventually{}
+%
+% \changes{v0.0}{2019-10-02}{Initial version}
+%
+% \begin{macrocode}
+%<*2ekernel>
+% \end{macrocode}
+%
+% \subsection{Loader}
+%
+% Check for the required primitive/engine support and the existence of
+% a loader.
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/01}%
+%<latexrelease> {expl3}{Pre-load expl3}%
+\IfFileExists{expl3.ltx}
+ {%
+ \ifnum0%
+ \ifdefined\pdffilesize 1\fi
+ \ifdefined\filesize 1\fi
+ \ifdefined\luatexversion\ifnum\luatexversion>94 1\fi\fi
+ >0 %
+ \else
+ \message{Skipping expl3-dependent extensions}
+%<2ekernel> \expandafter\endinput
+%<latexrelease> \expandafter\@gobbletwo
+ \fi
+ }
+ {%
+ \message{Skipping expl3-dependent extensions}%
+%<2ekernel> \endinput
+%<latexrelease> \@gobbletwo
+ }%
+\input{expl3.ltx}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel>
+% \end{macrocode}
+%
+% \Finale
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx b/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx
index afb085a4174..7c43abc079d 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfiles.dtx}
- [2019/08/27 v1.2b LaTeX Kernel (File Handling)]
+ [2019/11/11 v1.2f LaTeX Kernel (File Handling)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfiles.dtx}
@@ -706,7 +706,16 @@
% A side effect of the new code is that we will see quotes around
% file name displays where there haven't been any before.
%
+% For compatibilty with existing code using |{abc}.tex| or |{one.two}.png|
+% an initial brace group is discarded before expansion and |\string| is applied
+% The content of the brace group is discarded. This means that a leading space
+% will be lost unless protected (by |{ }| or |" "| or |\space|) but filenames
+% with a space are hopefully rare.
+%
% \changes{v1.2a}{2019/07/01}{Support UTF-8}
+% \changes{v1.2c}{2019/10/11}{Remove one brace group}
+% \changes{v1.2d}{2019/10/26}{remove quotes}
+% \changes{v1.2e}{2019/11/09}{expand and \cs{string} before removing quotes}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
@@ -715,7 +724,11 @@
\def\set@curr@file#1{%
\begingroup
\escapechar\m@ne
- \xdef\@curr@file{\expandafter\string\csname #1\endcsname}%
+ \xdef\@curr@file{%
+ \expandafter\expandafter\expandafter\unquote@name
+ \expandafter\expandafter\expandafter{%
+ \expandafter\string
+ \csname\@firstofone#1\@empty\endcsname}}%
\endgroup
}
% \end{macrocode}
@@ -751,11 +764,11 @@
%
% \changes{v1.2a}{2019/07/01}{Support UTF-8}
% \changes{v1.2b}{2019/08/27}{Make command robust}
+% \changes{v1.2d}{2019/10/26}{dont quote name}
% \begin{macrocode}
\DeclareRobustCommand\IfFileExists[1]{%
\set@curr@file{#1}%
- \edef\q@curr@file{\expandafter\quote@name\expandafter{\@curr@file}}%
- \expandafter\IfFileExists@\expandafter{\q@curr@file}}
+ \expandafter\IfFileExists@\expandafter{\@curr@file}}
% \end{macrocode}
% \end{macro}
%
@@ -763,10 +776,11 @@
% \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.2d}{2019/10/26}{quote on openin}%
+% Argument |#1| is |\@curr@file| so catcode 12 string with no quotes.
% \begin{macrocode}
\long\def \IfFileExists@#1#2#3{%
- \openin\@inputcheck#1 %
+ \openin\@inputcheck"#1" %
\ifeof\@inputcheck
\ifx\input@path\@undefined
\def\reserved@a{#3}%
@@ -775,13 +789,40 @@
\fi
\else
\closein\@inputcheck
- \edef\@filef@und{#1 }%
+ \edef\@filef@und{"#1" }%
\def\reserved@a{#2}%
\fi
\reserved@a}
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@iffileonpath}
+% If the file is not found by |\openin|, and |\input@path| is defined,
+% look in all the directories specified in |\input@path|.
+% \changes{v0.9p}{1994/01/18}{Macro added}
+% \changes{v1.0f}{1994/05/02}
+% {\cs{@break@loop} renamed to \cs{@break@tfor}}
+% \changes{v1.0t}{1995/05/25}
+% {(CAR) added \cs{long}}
+% \changes{v1.1d}{1996/01/10}
+% {Change argument handling to not require doubled hash. latex/2024}
+% \changes{v1.2d}{2019/10/26}{quote on openin}%
+% \changes{v1.2f}{2019/11/11}{make \cs{@filef@und} match quoting used on \cs{openin}}%
+% \begin{macrocode}
+\long\def\@iffileonpath#1{%
+ \let\reserved@a\@secondoftwo
+ \expandafter\@tfor\expandafter\reserved@b\expandafter
+ :\expandafter=\input@path\do{%
+ \openin\@inputcheck\expandafter\quote@name\expandafter{\reserved@b#1} %
+ \ifeof\@inputcheck\else
+ \edef\@filef@und{\expandafter\quote@name\expandafter{\reserved@b#1} }%
+ \let\reserved@a\@firstoftwo%
+ \closein\@inputcheck
+ \@break@tfor
+ \fi}%
+ \reserved@a}
+% \end{macrocode}
+% \end{macro}
%
% \begin{macrocode}
%</2ekernel|latexrelease>
@@ -811,37 +852,25 @@
%<latexrelease> \fi
%<latexrelease> \reserved@a}
%<latexrelease>
+%<latexrelease>\long\def\@iffileonpath#1{%
+%<latexrelease> \let\reserved@a\@secondoftwo
+%<latexrelease> \expandafter\@tfor\expandafter\reserved@b\expandafter
+%<latexrelease> :\expandafter=\input@path\do{%
+%<latexrelease> \openin\@inputcheck\reserved@b#1 %
+%<latexrelease> \ifeof\@inputcheck\else
+%<latexrelease> \edef\@filef@und{\reserved@b#1 }%
+%<latexrelease> \let\reserved@a\@firstoftwo%
+%<latexrelease> \closein\@inputcheck
+%<latexrelease> \@break@tfor
+%<latexrelease> \fi}%
+%<latexrelease> \reserved@a}
+%<latexrelease>
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
%
%
%
-% \begin{macro}{\@iffileonpath}
-% If the file is not found by |\openin|, and |\input@path| is defined,
-% look in all the directories specified in |\input@path|.
-% \changes{v0.9p}{1994/01/18}{Macro added}
-% \changes{v1.0f}{1994/05/02}
-% {\cs{@break@loop} renamed to \cs{@break@tfor}}
-% \changes{v1.0t}{1995/05/25}
-% {(CAR) added \cs{long}}
-% \changes{v1.1d}{1996/01/10}
-% {Change argument handling to not require doubled hash. latex/2024}
-% \begin{macrocode}
-\long\def\@iffileonpath#1{%
- \let\reserved@a\@secondoftwo
- \expandafter\@tfor\expandafter\reserved@b\expandafter
- :\expandafter=\input@path\do{%
- \openin\@inputcheck\reserved@b#1 %
- \ifeof\@inputcheck\else
- \edef\@filef@und{\reserved@b#1 }%
- \let\reserved@a\@firstoftwo%
- \closein\@inputcheck
- \@break@tfor
- \fi}%
- \reserved@a}
-% \end{macrocode}
-% \end{macro}
%
% \begin{macro}{\InputIfFileExists}
% \changes{v0.9b}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx b/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
index de161a777ea..f4f97ba0202 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfinal.dtx}
- [2019/08/27 v2.1g LaTeX Kernel (Final Settings)]
+ [2019-10-02 v2.2 LaTeX Kernel (Final Settings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -928,15 +928,28 @@
\def\i{I}\def\j{J}%
\def\reserved@a##1##2{\let##1##2\reserved@a}%
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
+% \end{macrocode}
+% Tell UTF-8 processing to process chars even though we are in an \cs{protected@edef}.
+% \changes{v2.1h}{2019/09/14}{Expand UTF8 chrs when case changing (github/177)}
+% \begin{macrocode}
+ \let\UTF@two@octets@noexpand\@empty
+ \let\UTF@three@octets@noexpand\@empty
+ \let\UTF@four@octets@noexpand\@empty
\protected@edef\reserved@a{\uppercase{#1}}%
\reserved@a
}}
\DeclareRobustCommand{\MakeLowercase}[1]{{%
\def\reserved@a##1##2{\let##2##1\reserved@a}%
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
+ \let\UTF@two@octets@noexpand\@empty
+ \let\UTF@three@octets@noexpand\@empty
+ \let\UTF@four@octets@noexpand\@empty
\protected@edef\reserved@a{\lowercase{#1}}%
\reserved@a
}}
+% \end{macrocode}
+%
+% \begin{macrocode}
\def\@uclclist{\oe\OE\o\O\ae\AE
\dh\DH\dj\DJ\l\L\ng\NG\ss\SS\th\TH}
% \end{macrocode}
@@ -1031,6 +1044,14 @@
% }{}
% \end{macrocode}
%
+% \subsection{Loading further extensions}
+%
+% \changes{v2.2}{2019-10-02}{Load \textsf{ltexpl}}
+% Simply load further code: it's deliberately separate
+% \begin{macrocode}
+\input{ltexpl.ltx}
+% \end{macrocode}
+%
% \subsection{Freeing Memory}
%
% \begin{macro}{\reserved@a}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx b/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx
index 5c2f30624d8..41f2344a373 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx
@@ -1,17 +1,21 @@
% \iffalse meta-comment
%
-% Copyright 2015 2017 2018
+% Copyright (C) 2015-2019
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
-% It may be distributed and/or modified under the conditions of
-% the LaTeX Project Public License (LPPL), either version 1.3c of
-% this license or (at your option) any later version. The latest
-% version of this license is in the file:
-%
-% https://www.latex-project.org/lppl.txt
+% This file is part of the LaTeX base system.
+% -------------------------------------------
%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
%
+% This file has the LPPL maintenance status "maintained".
%
%<2ekernel>%%% From File: ltluatex.dtx
%<plain>\ifx\newluafunction\undefined\else\expandafter\endinput\fi
@@ -24,7 +28,7 @@
\ProvidesFile{ltluatex.dtx}
%</driver>
%<*tex>
-[2018/10/21 v1.1i
+[2019/10/22 v1.1j
%</tex>
%<plain> LuaTeX support for plain TeX (core)
%<*tex>
@@ -1312,12 +1316,15 @@ local callbacktypes = callbacktypes or {
% \changes{v1.0n}{2016/03/13}{contribute\_filter added}
% \changes{v1.1h}{2018/08/18}{append\_to\_vlist\_filter is \texttt{exclusive}}
% \changes{v1.1j}{2019/06/18}{new\_graf added}
+% \changes{v1.1k}{2019/10/02}{linebreak\_filter is \texttt{exclusive}}
+% \changes{v1.1k}{2019/10/02}{process\_rule is \texttt{exclusive}}
+% \changes{v1.1k}{2019/10/02}{mlist\_to\_hlist is \texttt{exclusive}}
% \begin{macrocode}
contribute_filter = simple,
buildpage_filter = simple,
build_page_insert = exclusive,
pre_linebreak_filter = list,
- linebreak_filter = list,
+ linebreak_filter = exclusive,
append_to_vlist_filter = exclusive,
post_linebreak_filter = list,
hpack_filter = list,
@@ -1325,12 +1332,12 @@ local callbacktypes = callbacktypes or {
hpack_quality = list,
vpack_quality = list,
pre_output_filter = list,
- process_rule = list,
+ process_rule = exclusive,
hyphenate = simple,
ligaturing = simple,
kerning = simple,
insert_local_par = simple,
- mlist_to_hlist = list,
+ mlist_to_hlist = exclusive,
new_graf = simple,
% \end{macrocode}
% Section 8.5: information reporting callbacks.
@@ -1358,11 +1365,12 @@ local callbacktypes = callbacktypes or {
% Section 8.6: PDF-related callbacks.
% \changes{v1.1j}{2019/06/18}{page\_objnum\_provider added}
% \changes{v1.1j}{2019/06/18}{process\_pdf\_image\_content added}
+% \changes{v1.1j}{2019/10/22}{page\_objnum\_provider and process\_pdf\_image\_content classified data}
% \begin{macrocode}
finish_pdffile = data,
finish_pdfpage = data,
- page_objnum_provider = simple,
- process_pdf_image_content = simple,
+ page_objnum_provider = data,
+ process_pdf_image_content = data,
% \end{macrocode}
% Section 8.7: font-related callbacks.
% \changes{v1.1e}{2017/03/28}{glyph\_stream\_provider added}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx b/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx
index 8cd61207514..f60a4090b6b 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltmiscen.dtx}
- [2019/08/29 v1.1p LaTeX Kernel (Misc. Environments)]
+ [2019/11/02 v1.1s LaTeX Kernel (Misc. Environments)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltmiscen.dtx}
@@ -370,17 +370,7 @@
% percent. The result is saved in \cs{@temptokena} for later use.
% \changes{v1.1n}{2018/09/26}{Sometimes mask the endline char when
% writing to files (github/73)}
-% \begin{macrocode}
-\begingroup
-\catcode`\%=12
-% \end{macrocode}
-% \texttt{latexrelease} will read this code in high-speed
-% mode in certain situations. During that it will only look for
-% \cs{if} tests but not actually execute the \cs{catcode} change
-% above. As a result it will drop anything after the |%| character
-% in the definition. Therefore the |\fi| needs to be on the next
-% line and we need locally another comment character to avoid
-% getting spaces into the definition---a weird problem :-)
+%
% \begin{macrocode}
\catcode`\^^A=9
\long\gdef\add@percent@to@temptokena
@@ -390,13 +380,34 @@
% the beginning, so that in case the tokenlist consists of a single brace
% group the braces aren't stripped. The |\expandafter| then expands
% this extra token away again.
+% \changes{v1.1q}{2019/10/25}{Allow unbalanced conditionals in \texttt{\#1} (gh/202)}
+% \changes{v1.1r}{2019/11/10}{fix to special comment catcodes (gh/202)}
+% \begin{macrocode}
+ {\expandafter\ifx\expandafter X\detokenize{#2}X\expandafter\dont@add@percent@to@temptokena\else
+ \expandafter\do@add@percent@to@temptokena\fi{#1}}
+% \end{macrocode}
+%
% \begin{macrocode}
- {\ifx!#2!\@temptokena\expandafter{#1}\else
- \@temptokena\expandafter{#1%^^A
+\long\def\dont@add@percent@to@temptokena#1{%
+ \@temptokena\expandafter{#1}}
+% \end{macrocode}
+% \texttt{latexrelease} will read this code in high-speed
+% mode in certain situations. During that it will only look for
+% \cs{if} tests but not actually execute the \cs{catcode} change
+% above. As a result it will drop anything after the |%| character
+% in the definition. Therefore the |\fi| needs to be on the next
+% line and we need locally another comment character to avoid
+% getting spaces into the definition---a weird problem :-)
+%
+% \begin{macrocode}
+\begingroup
+\catcode`\%=12
+\catcode`\^^A=14
+\long\gdef\do@add@percent@to@temptokena#1{\@temptokena\expandafter{#1%^^A
% \end{macrocode}
% Can't be on the same line as the |%| --- see above.
% \begin{macrocode}
- }\fi}
+ }}
\endgroup
% \end{macrocode}
% \end{macro}
@@ -432,6 +443,8 @@
%<latexrelease> {\protected@file@percent}{Mask line endings}%
%<latexrelease>\let\protected@file@percent\@undefined
%<latexrelease>\let\add@percent@to@temptokena\@undefined
+%<latexrelease>\let\do@add@percent@to@temptokena\@undefined
+%<latexrelease>\let\dont@add@percent@to@temptokena\@undefined
%<latexrelease>\long\def\@writefile#1#2{%
%<latexrelease> \@ifundefined{tf@#1}\relax
%<latexrelease> {\@temptokena{#2}%
@@ -693,9 +706,27 @@
% \begin{macro}{\@centercr}
% \changes{v1.0h}{1994/05/03}{\cs{@badcrerr} replaced by \cs{@nolnerr}}
% \changes{v1.0z}{1995/07/13}{Use \cs{nobreak}}
+% \changes{v1.1s}{2019/11/02}{Make \cs{@centercr} robust (gh/203)}
% \begin{macrocode}
-\def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/01}%
+%<latexrelease> {\@centercr}{Make robust}%
+\protected\def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
\par\@ifstar{\nobreak\@xcentercr}\@xcentercr}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@centercr}{Make robust}%
+%<latexrelease>
+%<latexrelease>\def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
+%<latexrelease> \par\@ifstar{\nobreak\@xcentercr}\@xcentercr}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltsect.dtx b/Master/texmf-dist/source/latex-dev/base/ltsect.dtx
index 239d4c547fd..b4851f28e2c 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltsect.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltsect.dtx
@@ -784,7 +784,7 @@
\def\addcontentsline#1#2#3{%
\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}%
% \end{macrocode}
-% We add \cs{protected@file@percent} at the end which is turned om
+% We add \cs{protected@file@percent} at the end which is turned inside
% \cs{@writefile} into a percent character to mask the newline after
% the closing argument brace.
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltspace.dtx b/Master/texmf-dist/source/latex-dev/base/ltspace.dtx
index d840b13bbbe..2abc1a4f23f 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltspace.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltspace.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltspace.dtx}
- [2019/08/27 v1.3j LaTeX Kernel (spacing)]
+ [2019/11/02 v1.3k LaTeX Kernel (spacing)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltspace.dtx}
@@ -393,15 +393,38 @@
% so now it is explicitly robust, like |\\|.
% \begin{macro}{\@normalcr}
% The internal definition of the `normal' definition of |\\|.
+% \changes{v1.3k}{2019/11/02}{Make also \cs{@normalcr} robust}
% \begin{macrocode}
-\DeclareRobustCommand\\{%
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/01}%
+%<latexrelease> {\@normalcr}{Make robust}%
+\protected\def\@normalcr{%
\let \reserved@e \relax
\let \reserved@f \relax
\@ifstar{\let \reserved@e \vadjust \let \reserved@f \nobreak
\@xnewline}%
- \@xnewline}
-\expandafter\let\expandafter\@normalcr
- \csname\expandafter\@gobble\string\\ \endcsname
+ \@xnewline}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\\\@normalcr
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@normalcr}{Make robust}%
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\\{%
+%<latexrelease> \let \reserved@e \relax
+%<latexrelease> \let \reserved@f \relax
+%<latexrelease> \@ifstar{\let \reserved@e \vadjust \let \reserved@f \nobreak
+%<latexrelease> \@xnewline}%
+%<latexrelease> \@xnewline}
+%<latexrelease>\expandafter\let\expandafter\@normalcr
+%<latexrelease> \csname\expandafter\@gobble\string\\ \endcsname
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex-dev/base/lttab.dtx b/Master/texmf-dist/source/latex-dev/base/lttab.dtx
index 646015daf3d..aa2a00390fc 100644
--- a/Master/texmf-dist/source/latex-dev/base/lttab.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/lttab.dtx
@@ -31,7 +31,7 @@
%%% From File: lttab.dtx
%<*driver>
% \fi
-\ProvidesFile{lttab.dtx}[2019/08/27 v1.1p LaTeX Kernel (Columns)]
+\ProvidesFile{lttab.dtx}[2019/10/07 v1.1q LaTeX Kernel (Columns)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{lttab.dtx}
@@ -806,8 +806,12 @@
%
%
% \begin{macro}{\extracolsep}
+% This command needs to expand during the tabular preamble construction
+% so can't be robust.
+%
+% \changes{v1.1q}{2019/10/07}{This needs to expand}
% \begin{macrocode}
-\DeclareRobustCommand\extracolsep[1]{\tabskip #1\relax}
+\def\extracolsep#1{\tabskip #1\relax}
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
index 4a5cc5283bf..cb531ae0d2b 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
@@ -112,10 +112,10 @@
%</2ekernel>
%<latexrelease>\edef\latexreleaseversion
%<*2ekernel|latexrelease>
- {2019-10-01}
+ {2020-02-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{-3}
+\def\patch@level{-1}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx b/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx
index 21cc2d3dcfa..2d3e5aad2a6 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx
@@ -30,7 +30,7 @@
%
%<class>\NeedsTeXFormat{LaTeX2e}
%<class>\ProvidesClass{ltxdoc}
-%<class> [2018/03/15 v2.0x Standard LaTeX documentation class]
+%<class> [2019/09/16 v2.0y Standard LaTeX documentation class]
%
%<*driver>
\documentclass{ltxdoc}
@@ -356,6 +356,7 @@
/endgroup%
% \end{macrocode}
%
+% \changes{v2.0y}{2019/09/16}{Say that oldcomments may not be accurate (gh/180)}
% \begin{macrocode}
\begingroup
\catcode`\/=\catcode`\\
@@ -375,6 +376,7 @@
/parindent/z@
/ttfamily/expandafter/let/expandafter/oc@ttf/the/font
/rmfamily
+ /textit{Historical /LaTeX/,2.09 comments (not necessarily accurate any more):}
/hfuzz/maxdimen
}
/endgroup
@@ -388,6 +390,7 @@
\ifvmode%
\def\commentline{#1}%
\ifx\commentline\oldc%
+ \textit{End of historical \LaTeX\,2.09 comments.}
\end{oldcomments}%
\else%
\ifx\commentline\begmac%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltxref.dtx b/Master/texmf-dist/source/latex-dev/base/ltxref.dtx
index 1d8c41c4397..27d32504137 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltxref.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltxref.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltxref.dtx}
- [2019/08/22 v1.1l LaTeX Kernel (Cross Referencing)]
+ [2019/09/16 v1.1m LaTeX Kernel (Cross Referencing)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltxref.dtx}
@@ -377,6 +377,7 @@
%
%
%
+% \changes{v1.1m}{2019/09/16}{Correctly revert the \cs{p@...} change}
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
@@ -385,7 +386,7 @@
%<latexrelease>
%<latexrelease>\def\refstepcounter#1{\stepcounter{#1}%
%<latexrelease> \protected@edef\@currentlabel
-%<latexrelease> {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
+%<latexrelease> {\csname p@#1\endcsname\csname the#1\endcsname}%
%<latexrelease>}
%<latexrelease>\let\labelformat\@undefined
%<latexrelease>\let\Ref\@undefined
diff --git a/Master/texmf-dist/source/latex-dev/base/nfssfont.dtx b/Master/texmf-dist/source/latex-dev/base/nfssfont.dtx
index a77dfba7b3b..fc92f83451b 100644
--- a/Master/texmf-dist/source/latex-dev/base/nfssfont.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/nfssfont.dtx
@@ -26,8 +26,8 @@
% extension .ins) which are part of the distribution.
%
% \fi
-\def\nfssfontfileversion{v2.2d}
-\def\nfssfontfiledate{2015/02/01}
+\def\nfssfontfileversion{v2.2e}
+\def\nfssfontfiledate{2019/10/12}
%
% \iffalse
@@ -258,6 +258,8 @@
\string\help\space for help [ \string\table\space\string\bye\space]:}%
\ifx\action\empty
\expandafter\table\expandafter\bye
+ \else
+ \expandafter\action
\fi
}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx b/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx
index ea377297a58..d8c41255b25 100644
--- a/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx
@@ -216,7 +216,7 @@
%<+ts1> \ProvidesFile{ts1enc.dfu}
%<+x2> \ProvidesFile{x2enc.dfu}
%<+all> \ProvidesFile{utf8enc.dfu}
-%<-utf8-2018> [2019/07/11 v1.2j UTF-8 support for inputenc]
+%<-utf8-2018> [2019/11/14 v1.2k UTF-8 support for inputenc]
% \end{macrocode}
%
% \begin{macrocode}
@@ -1789,14 +1789,15 @@
% (which is normally the case) they are then reconstructed as
% ligatures so they come out as desired. Otherwise they will come
% out as individual characters which is fine too.
-% \changes{v1.2j}{2019/07/11}{Add typical f-ligatures and st (github/154)}
+% \changes{v1.2j}{2019/07/11}{Add typical f-ligatures and s-ligatures and st (github/154)}
+% \changes{v1.kj}{2019/11/14}{Fixed setting for FB05 = long-s t lig (github/154)}
% \begin{macrocode}
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB00}{ff} % ff
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB01}{fi} % fi
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB02}{fl} % fl
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB03}{ffi} % ffi
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB04}{ffl} % ffl
-%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB05}{ft} % ſt
+%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB05}{st} % ſt -- this is the long s (not f)
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB06}{st} % st
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx b/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx
index f2471e94bbb..ac570c02278 100644
--- a/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx
+++ b/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx
@@ -25,7 +25,7 @@
%<driver> \ProvidesFile{graphics.drv}
% \fi
% \ProvidesFile{graphics.dtx}
- [2019/07/20 v1.3b Standard LaTeX Graphics (DPC,SPQR)]
+ [2019/11/01 v1.3d Standard LaTeX Graphics (DPC,SPQR)]
%
% \iffalse
%<*driver>
@@ -1036,13 +1036,52 @@
% \begin{macro}{\Gin@sepdefault}
% \changes{v0.6a}{1994/11/29}
% {remove \cs{Gin@sep}}
+% \begin{macro}{\Gin@gzext}
+% \changes{v1.3d}{2019/11/01}
+% {macro added}
% This must match the token used by |\filename@parse| to delimit the
% extension.
% \begin{macrocode}
\def\Gin@sepdefault{.}
% \end{macrocode}
+%
+% \begin{macrocode}
+\edef\Gin@gzext{\detokenize{gz}}
+% \edef{macrocode}
% \end{macro}
%
+% \begin{macro}{\set@curr@file}
+% \begin{macro}{\quote@name}
+% \changes{v1.3c}{2019/10/08}
+% {Definitions added for old formats}
+% \begin{macrocode}
+\def\Gin@temp#1{%
+ \begingroup
+ \escapechar\m@ne
+ \xdef\@curr@file{\expandafter\string\csname #1\endcsname}%
+ \endgroup
+}
+\ifx\set@curr@file\@Gin@temp
+ \let\set@curr@file\@undefined
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifx\set@curr@file\@undefined
+\def\set@curr@file#1{%
+ \begingroup
+ \escapechar\m@ne
+ \xdef\@curr@file{\expandafter\string\csname\@firstofone#1\@empty\endcsname}%
+ \endgroup
+}
+\def\quote@name#1{"\quote@@name#1\@gobble""}
+\def\quote@@name#1"{#1\quote@@name}
+\def\unquote@name#1{\quote@@name#1\@gobble"}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\Ginclude@graphics}
% The main internal function implementing graphics file inclusion.
% |#1| is the file name.
@@ -1069,12 +1108,23 @@
\let\input@path\Ginput@path
% \end{macrocode}
% A lot of quote juggling going on here (room for improvements).
+%
+% \changes{v1.3d}{2019/11/01}
+% {\cs{curr@name} now unquoted}
% \begin{macrocode}
\set@curr@file{#1}%
- \edef\uq@curr@file{\expandafter\unquote@name\expandafter{\@curr@file}}%
- \expandafter\filename@parse\expandafter{\uq@curr@file}%
- \edef\filename@area{\expandafter\quote@name\expandafter{\filename@area}}%
- \edef\filename@base{\expandafter\quote@name\expandafter{\filename@base}}%
+ \expandafter\filename@parse\expandafter{\@curr@file}%
+% \end{macrocode}
+% If extension is |.gz| tack on to previous extension, eg |.eps.gz| if available.
+% \begin{macrocode}
+ \ifx\filename@ext\Gin@gzext
+ \expandafter\filename@parse\expandafter{\filename@base}%
+ \ifx\filename@ext\relax
+ \let\filename@ext\Gin@gzext
+ \else
+ \edef\Gin@ext{\Gin@ext\Gin@sepdefault\Gin@gzext}%
+ \fi
+ \fi
\ifx\filename@ext\relax
\@for\Gin@temp:=\Gin@extensions\do{%
\ifx\Gin@ext\relax
@@ -1083,6 +1133,34 @@
\else
\Gin@getbase{\Gin@sepdefault\filename@ext}%
% \end{macrocode}
+% At this point try adding an extension, even if the filename has one so
+% that \verb|a.b| may find \verb|a.b.png| if no file is found then revert
+% to the extension as given to get better error reporting.
+%
+% \changes{v1.3d}{2019/11/01}
+% {Try adding an extension even if the filenam had a dot.}
+% \begin{macrocode}
+\ifx\Gin@ext\relax
+\let\Gin@savedbase\filename@base
+\let\Gin@savedext\filename@ext
+ \edef\filename@base{\filename@base\Gin@sepdefault\filename@ext}%
+ \let\filename@ext\relax
+ \@for\Gin@temp:=\Gin@extensions\do{%
+ \ifx\Gin@ext\relax
+ \Gin@getbase\Gin@temp
+ \fi}%
+% \end{macrocode}
+% Restore if no file found using theknown extensions.
+% \begin{macrocode}
+ \ifx\Gin@ext\relax
+ \let\filename@base\Gin@savedbase
+ \let\filename@ext\Gin@savedext
+ \fi
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+% \end{macrocode}
% \changes{v0.4d}{1994/05/06}
% {Make file not found a warning not an error}
% \changes{v0.6a}{1994/11/29}
diff --git a/Master/texmf-dist/source/latex-dev/tools/multicol.dtx b/Master/texmf-dist/source/latex-dev/tools/multicol.dtx
index d68f471fcd4..3a9f14927a6 100644
--- a/Master/texmf-dist/source/latex-dev/tools/multicol.dtx
+++ b/Master/texmf-dist/source/latex-dev/tools/multicol.dtx
@@ -98,7 +98,7 @@
%<driver> \ProvidesFile{multicol.drv}
% \fi
% \ProvidesFile{multicol.dtx}
- [2019/03/01 v1.8w multicolumn formatting (FMi)]
+ [2019/10/15 v1.8x multicolumn formatting (FMi)]
%
%
%%
@@ -134,7 +134,7 @@
% \DoNotIndex{\hbox,\hfil,\hrule,\ht,\hss}
% \DoNotIndex{\ifdim,\ifnum,\ifvoid,\ignorespaces,\insert,\immediate}
% \DoNotIndex{\let,\loop}
-% \DoNotIndex{\maxdepth,\message,\multiply}
+% \DoNotIndex{\@maxdepth,\message,\multiply}
% \DoNotIndex{\newbox,\newcount,\newdimen,\newskip,\number,\newpage}
% \DoNotIndex{\outputpenalty,\p@,\penalty}
% \DoNotIndex{\relax,\repeat,\setbox,\skip,\space,\splitmaxdepth}
@@ -978,9 +978,10 @@
% grid. Right now it doesn't do anything other than warning if it
% thinks that the grid got lost.
% \changes{v1.6a}{2003/03/15}{New option grid}
+% \changes{v1.8x}{2019/10/15}{Use \cs{@maxdepth} not \cs{maxdepth} (gh/190)}
% \begin{macrocode}
\let\mc@gridwarn\maxdimen
-\DeclareOption{grid}{\def\mc@gridwarn{\maxdepth}}
+\DeclareOption{grid}{\def\mc@gridwarn{\@maxdepth}}
% \end{macrocode}
%
% \changes{v1.8e}{2014/04/23}{Support \cs{docolaction}}
@@ -2143,7 +2144,7 @@
% However, in case one of the columns was unusually deep \TeX{} may
% have tried some corrective actions in which case backing up by
% the saved value will not bring us back to the baseline. A good
-% indication for this is a depth of |\maxdepth| though it is not an
+% indication for this is a depth of |\@maxdepth| though it is not an
% absolute proof. If the option \texttt{grid} is used
% |\mc@gridwarn| will expand to this, otherwise to |\maxdimen| in
% which case this warning will not show up.
@@ -2192,15 +2193,16 @@
% |\vfill| in that case but this is actually wrong for columns that
% are more or less full: by adding a glue at the bottom such a
% column doesn't have any depth any more but without it the material
-% would be allowed a depth of |\maxdepth|. So we allow shrinking by
+% would be allowed a depth of |\@maxdepth|. So we allow shrinking by
% that amount. This only makes a difference if the box would
% otherwise become overfull and shrinking never exceeds the
% specified value, so we should be fine.
% \changes{v1.8h}{2014/09/12}{Macro added (pr/4395)}
% \changes{v1.8j}{2015/03/07}{Use only `0.0001fil' for stretching}
+% \changes{v1.8x}{2019/10/15}{Use \cs{@maxdepth} not \cs{maxdepth} (gh/190)}
% \begin{macrocode}
\def\vfilmaxdepth{\vskip \z@ \@plus .0001fil
- \@minus \maxdepth}
+ \@minus \@maxdepth}
% \end{macrocode}
% \end{macro}
%
@@ -2246,13 +2248,13 @@
% appropriate values to |\splittopskip| and |\splitmaxdepth|.
% \begin{macrocode}
\splittopskip\topskip
- \splitmaxdepth\maxdepth
+ \splitmaxdepth\@maxdepth
% \end{macrocode}
% We also need to restrict |\boxmaxdepth| so that re-boxing is not
% generating boxes with arbitrary depth.
% \changes{v1.8j}{2015/03/07}{Set \cs{boxmaxdepth}}
% \begin{macrocode}
- \boxmaxdepth\maxdepth
+ \boxmaxdepth\@maxdepth
% \end{macrocode}
% Then we calculate the current column height (in |\dimen@|).
% Note that the height of |\partial@page| is already
@@ -2585,7 +2587,7 @@
% e.g., after a display environment (if LaTeX would break here by
% its own it would break before the space following the display).
%
-% Thus we rebox box 255 once (using |\maxdepth| and calling
+% Thus we rebox box 255 once (using |\@maxdepth| and calling
% |\remove@discardable@items| inside). The depth of 255 will then
% give us the depth the box would have had if it would have been a
% natural break. We then unbox 255 to get it into the
@@ -2594,8 +2596,9 @@
% balancing later on.
% \changes{v1.8k}{2015/03/21}{Remove discardable items just before a
% forced break}
+% \changes{v1.8x}{2019/10/15}{Use \cs{@maxdepth} not \cs{maxdepth} (gh/190)}
% \begin{macrocode}
- \boxmaxdepth\maxdepth
+ \boxmaxdepth\@maxdepth
\setbox\@cclv\vbox{%
\unvbox\@cclv
\remove@discardable@items}%
@@ -2879,12 +2882,13 @@
% |\splittopskip| and allow for a bit of undershoot and overshoot
% by adding some stretch and shrink.
% \changes{v1.5?}{1994/?/?}{Allow columns to come out a bit long or short}
+% \changes{v1.8x}{2019/10/15}{Use \cs{@maxdepth} not \cs{maxdepth} (gh/190)}
% \begin{macrocode}
\@tempdima\topskip
\splittopskip\@tempdima
\@plus\multicolundershoot
\@minus\multicolovershoot
- \splitmaxdepth\maxdepth
+ \splitmaxdepth\@maxdepth
% \end{macrocode}
% We also have to set |\boxmaxdepth| which normally allows to
% build boxes with arbitrary depth, but as we are building text
@@ -2893,8 +2897,9 @@
% restriction posed by |\splitmaxdepth| gets lost.
% \changes{v1.8h}{2014/09/12}{All column boxes should obey
% \cs{maxdepth} (pr/4395)}
+% \changes{v1.8x}{2019/10/15}{Use \cs{@maxdepth} not \cs{maxdepth} (gh/190)}
% \begin{macrocode}
- \boxmaxdepth\maxdepth
+ \boxmaxdepth\@maxdepth
% \end{macrocode}
% The next step is a bit tricky: when \TeX{} assembles material in
% a box, the first line isn't preceded by interline glue, i.e.
diff --git a/Master/texmf-dist/source/latex-dev/tools/shellesc.dtx b/Master/texmf-dist/source/latex-dev/tools/shellesc.dtx
index 061ea4457ca..9706c5aa032 100644
--- a/Master/texmf-dist/source/latex-dev/tools/shellesc.dtx
+++ b/Master/texmf-dist/source/latex-dev/tools/shellesc.dtx
@@ -20,7 +20,7 @@
%<driver> \ProvidesFile{shellesc.drv}
% \fi
% \ProvidesFile{shellesc.dtx}
- [2016/06/07 v0.02b unified shell escape interface for LaTeX]
+ [2019/11/08 v1.0c unified shell escape interface for LaTeX]
%
% \iffalse
%<*driver>
@@ -36,10 +36,15 @@
% \title{The \textsf{shellesc} Package\thanks{This file
% has version number \fileversion, last
% revised \filedate.}}
-% \author{LaTeX3 project}
+% \author{\LaTeX3 project}
% \date{\filedate}
+%
+%
% \maketitle
%
+% \vspace*{-\baselineskip}
+% \enlargethispage{\baselineskip}
+%
% \changes{v0.1b}{2016/02/02}{Doc typo fixes (JB)}
% \changes{v0.2a}{2016/06/07}{Improve use with plain TeX}
% \section{Introduction}
@@ -57,7 +62,7 @@
% so a command to remove a file on a unix-like system could be
% specified using \verb|\ShellEscape{rm file.txt}| (or \verb|del| in
% windows). Note that by default system access is not allowed and
-% latex will typically need to be called with the \verb|--shell-escape|
+% \LaTeX\ will typically need to be called with the \verb|--shell-escape|
% command line option.
%
% The package may be used with standard \texttt{latex} or
@@ -76,6 +81,9 @@
% (\verb|\latelua|). This package provides \verb|\DelayedShellEscape|
% as a common syntax for this use.
%
+% The shell escape status may be queried by checking the integer (chardef)
+% command \verb|\ShellEscapeStatus|, 0 (disabled) 1 (enabled) 2 (restricted).
+%
% To aid porting existing documents to Lua\TeX~0.87 this package does
% overload the \verb|\write| command so that
% \verb|\write18{rm file.txt}|
@@ -95,12 +103,25 @@
%<*package>
% \end{macrocode}
%
+% \changes{v1.0b}{2019/10/17}{Catcode protection}
+% \begin{macrocode}
+\chardef\shellesc@quotecat\catcode`\"
+\chardef\shellesc@underscorecat\catcode`\_
+\@makeother\"
+\@makeother\_
+% \end{macrocode}
+%
% \subsection{Status Check}
%
%
-% \changes{v0.2a}{2016/06/07}{spelling in messages}
+% \subsection{The shellesc package interface}
+%
+% \begin{macro}{\ShellEscapeStatus}
+% \changes{v1.0a}{2019/10/13}{Command Introduced}
+% Integer value with meanings 0 (shell escape disabled), 1 (shell escape allowed), 2 (Restricted shell escape).
+%
% \begin{macrocode}
-\ifcase
+\chardef\ShellEscapeStatus
\ifx\pdfshellescape\@undefined
\ifx\shellescape\@undefined
\ifx\directlua\@undefined
@@ -115,6 +136,12 @@
\else
\pdfshellescape
\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v0.2a}{2016/06/07}{spelling in messages}
+% \begin{macrocode}
+\ifcase\ShellEscapeStatus
\PackageWarning{shellesc}{Shell escape disabled}
\or
\PackageInfo {shellesc}{Unrestricted shell escape enabled}
@@ -123,9 +150,9 @@
\fi
% \end{macrocode}
%
-% \subsection{The shellesc package interface}
%
% \begin{macro}{\ShellEscape}
+% \changes{v1.0a}{2019/10/13}{Lua logging for gh/195}
% Execute the supplied tokens as a system dependent command, assuming
% such execution is allowed.
% \begin{macrocode}
@@ -135,14 +162,14 @@
%
% \begin{macrocode}
\else
- \protected\def\ShellEscape#1{%
- \directlua{os.execute("\luaescapestring{#1}")}}
+ \protected\def\ShellEscape{\directlua\ShellEscape@Lua}
\fi
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\DelayedShellEscape}
% \changes{v0.1c}{2016/04/29}{Define \cs{DelayedShellEscape} not \cs{ShellEscape}(UF)}
+% \changes{v1.0a}{2019/10/13}{Lua logging for gh/195}
% Execute the supplied tokens as a system dependent command, when this
% node is shipped out with the completed page, assuming
% such execution is allowed.
@@ -153,14 +180,38 @@
%
% \begin{macrocode}
\else
- \protected\def\DelayedShellEscape#1{%
- \latelua{os.execute("\luaescapestring{#1}")}}
+ \protected\def\DelayedShellEscape{\latelua\ShellEscape@Lua}
\fi
% \end{macrocode}
% \end{macro}
%
%
%
+% \begin{macro}{\ShellEscape@Lua}
+% \changes{v1.0a}{2019/10/13}{loging for gh/195}
+% Shared Lua code for \verb|\DelayedShellEscape| and \verb|\ShellEscape|.
+% \begin{macrocode}
+\ifx\directlua\@undefined\else
+\protected\def\ShellEscape@Lua#1{{%
+local status, msg = os.execute("\luaescapestring{#1}")%
+if status == nil then
+ texio.write_nl("log",%
+ "runsystem(" .. "\luaescapestring{#1}"%
+ .. ")...(" .. msg .. ")\string\n")
+ elseif status == 0 then
+ texio.write_nl("log",%
+ "runsystem(" .. "\luaescapestring{#1}"%
+ .. ")...executed\string\n")
+ else
+ texio.write_nl("log",%
+ "runsystem(" .. "\luaescapestring{#1}"%
+ .. ")...failed " .. (msg or "") .. "\string\n")
+ end
+}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{The write18 package interface}
%
% In web2c based engines other than Lua\TeX, |\write18| may be used
@@ -189,7 +240,11 @@
%
% Stop at this point if not a recent Lua\TeX.
% \begin{macrocode}
-\ifx\lastsavedimageresourcepages\@undefined\expandafter\endinput\fi
+\ifx\lastsavedimageresourcepages\@undefined
+ \catcode`\"\shellesc@quotecat
+ \catcode`\_\shellesc@underscorecat
+ \expandafter\endinput
+\fi
% \end{macrocode}
%
% \begin{macrocode}
@@ -233,7 +288,10 @@ shellesc.write_or_execute=write_or_execute
\protected\def\write{\directlua{shellesc.write_or_execute()}}
% \end{macrocode}
%
-%
+% \begin{macrocode}
+\catcode`\"\shellesc@quotecat
+\catcode`\_\shellesc@underscorecat
+% \end{macrocode}
%
% \begin{macrocode}
%</package>
diff --git a/Master/texmf-dist/source/latex-dev/tools/varioref.dtx b/Master/texmf-dist/source/latex-dev/tools/varioref.dtx
index 049bd0d55ea..b8392c76f27 100644
--- a/Master/texmf-dist/source/latex-dev/tools/varioref.dtx
+++ b/Master/texmf-dist/source/latex-dev/tools/varioref.dtx
@@ -40,7 +40,7 @@
%<package>\DeclareCurrentRelease{}{2019-10-01}
%<package>
%<package>\ProvidesPackage{varioref}
-%<package> [2019/09/08 v1.6b package for extended references (FMi)]
+%<package> [2019/11/05 v1.6c package for extended references (FMi)]
% \fi
%
%%
@@ -730,7 +730,7 @@
% workflow uses pdf\TeX{} the Arabic letters can't be displayed
% easily, so you will see missing glyphs below. To see the real
% letters you have to look at the source or package file.
-% \changes{v1.6b}{2019/09/8}{Option arabic added}
+% \changes{v1.6b}{2019/09/08}{Option arabic added}
% \begin{allowtofu}
% \begin{macrocode}
\DeclareOption{arabic}
@@ -1642,16 +1642,21 @@
% \end{macro}
%
% \begin{macro}{\vref@space}
+% \begin{macro}{\vref@maybe@space}
% \changes{v1.4a}{2002/03/06}{Default added}
% A default for |\vref@space|. This isn't really needed except in
% the case that somebody has hooked into the \pkg{varioref}
% interfaces at a lower level (which isn't really supported,
% but\ldots). So giving a default will prevent an error message in
% that case (and should hopefully produce the same behavior as before).
+% \changes{v1.6c}{2019/11/05}{Support (mis)use of internal interface by
+% fancyref (sx/515106)}
% \begin{macrocode}
\let\vref@space\space
+\let\vref@maybe@space\space
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@vpageref}
% More parsing\ldots
diff --git a/Master/texmf-dist/source/latex-dev/tools/verbatim.dtx b/Master/texmf-dist/source/latex-dev/tools/verbatim.dtx
index 1dc8682f798..b89bab7759e 100644
--- a/Master/texmf-dist/source/latex-dev/tools/verbatim.dtx
+++ b/Master/texmf-dist/source/latex-dev/tools/verbatim.dtx
@@ -503,7 +503,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{verbatim}
- [2014/10/28 v1.5q LaTeX2e package for verbatim enhancements]
+ [2019/11/10 v1.5r LaTeX2e package for verbatim enhancements]
\@ifundefined{verbatim@@@}{}{\endinput}
% \end{macrocode}
%
@@ -826,7 +826,13 @@
% \end{macrocode}
% |\verbatim*| is defined accordingly.
% \begin{macrocode}
-\@namedef{verbatim*}{\begingroup\@verbatim\verbatim@start}
+\@namedef{verbatim*}{\begingroup\@verbatim
+% \end{macrocode}
+%
+% \changes{v1.5r}{2019/11/10}{Support kernel \cs{verbvisiblespace} (gh/212)}
+% \begin{macrocode}
+ \@setupverbvisiblespace\@vobeyspaces
+ \verbatim@start}
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex-dev/tools/xr.dtx b/Master/texmf-dist/source/latex-dev/tools/xr.dtx
index 417a98c1c1e..97c4c68084e 100644
--- a/Master/texmf-dist/source/latex-dev/tools/xr.dtx
+++ b/Master/texmf-dist/source/latex-dev/tools/xr.dtx
@@ -86,7 +86,7 @@
%
% As first suggested in Enrico Gregorio's |xcite| package, the current version
% also allows |\cite| to reference |\bibitem| in the external document.
-% For fcompatibility with |xcite|, |\externalcitedocument| is made available
+% For compatibility with |xcite|, |\externalcitedocument| is made available
% as an alias for |\externaldocument|
%
% \StopEventually{}