diff options
author | Karl Berry <karl@freefriends.org> | 2019-11-19 22:34:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-11-19 22:34:19 +0000 |
commit | 3274fea6c34517ff1b5b17ca0ff3b92574f340a5 (patch) | |
tree | 66dede7eb9d4492fb6766ea40ade67bceef07d06 /Master/texmf-dist/source/latex-dev | |
parent | 079d7aeb0e3afef4ad6b0f906f9ad4a6ae1be57d (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')
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{} |