summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex-dev
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-03-06 21:30:29 +0000
committerKarl Berry <karl@freefriends.org>2020-03-06 21:30:29 +0000
commit42ae3845f0172233885a1e6895a92093a68c2711 (patch)
treed60870f6d24352167dc84504cfc459c144f4fc44 /Master/texmf-dist/source/latex-dev
parent79c7361836cfe04ef5ad28226f59da581b8484dd (diff)
latex-base-dev (6mar20)
git-svn-id: svn://tug.org/texlive/trunk@54129 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex-dev')
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltclass.dtx6
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltdefns.dtx6
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltexpl.dtx58
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx65
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx74
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfssini.dtx50
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltvers.dtx12
7 files changed, 227 insertions, 44 deletions
diff --git a/Master/texmf-dist/source/latex-dev/base/ltclass.dtx b/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
index 578443921b8..f43e8f0c0d6 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}
- [2020/02/20 v1.3j LaTeX Kernel (Class & Package Interface)]
+ [2020/03/02 v1.3j LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -161,7 +161,7 @@
% option \texttt{nosearch} will only check the current directory
% when looking if the file exists. This can be useful if you want to
% generate a local (modified) copy of some file that is already in the
-% search tree of \TeX{}. Finally, you can use \texttt{nopremable} to
+% search tree of \TeX{}. Finally, you can use \texttt{noheader} to
% prevent it from writing the standard blurb at the top of the file
% (this is actually the same as using the star form of the environment).
%
@@ -1817,7 +1817,7 @@
\filec@ntents
}
% \end{macrocode}
-% Option \texttt{force}) (or \texttt{overwrite}) changes the
+% Option \texttt{force} (or \texttt{overwrite}) changes the
% overwriting switch
% \begin{macrocode}
\let\filec@ntents@force\@fileswfalse
diff --git a/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx b/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
index ae472966d57..303b9e5604b 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltdefns.dtx}
- [2019/08/27 v1.5f LaTeX Kernel (definition commands)]
+ [2020/02/27 v1.5g LaTeX Kernel (definition commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdefns.dtx}
@@ -888,17 +888,21 @@
%
% \begin{macro}{\@gobble}
% \begin{macro}{\@gobbletwo}
+% \begin{macro}{\@gobblethree}
+% \changes{v1.5g}{2020/02/27}{Macro added}
% \begin{macro}{\@gobblefour}
% \changes{v1.2n}{1995/05/26}{(CAR) Added \cs{long}s}
% The |\@gobble| macro is used to get rid of its argument.
% \begin{macrocode}
\long\def \@gobble #1{}
\long\def \@gobbletwo #1#2{}
+\long\def \@gobblethree #1#2#3{}
\long\def \@gobblefour #1#2#3#4{}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@firstofone}
% \begin{macro}{\@firstoftwo}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx b/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx
index 230cd911588..e86b80acaf6 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltexpl.dtx}
- [2019-10-02 v0.0 LaTeX Kernel (expl3-dependent code)]
+ [2020-03-05 v1.1 LaTeX Kernel (expl3-dependent code)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -68,25 +68,47 @@
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/02/02}%
%<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}
+% \end{macrocode}
+% If we are doing a rollback with a format containing expl3 we
+% aren't reloading it as that creates havoc. This may need a
+% refined version!
+% \changes{v1.0a}{2020/03/02}
+% {Don't load expl3 if already in the format (gh/295)}
+% \changes{v1.1}{2020/03/05}
+% {Load xparse.ltx if \cs{NewDocumentCommand} is not defined by expl3.ltx}
+% \begin{macrocode}
+\expandafter\ifx\csname tex\string _let:D\endcsname\relax
+ \IfFileExists{expl3.ltx}
+ {%
+ \ifnum0%
+ \ifdefined\pdffilesize 1\fi
+ \ifdefined\filesize 1\fi
+ \ifdefined\luatexversion\ifnum\luatexversion>94 1\fi\fi
+ >0 %
+ \expandafter\@firstofone
+ \else
+ \message{Skipping expl3-dependent extensions}
%<2ekernel> \expandafter\endinput
-%<latexrelease> \expandafter\@gobbletwo
- \fi
- }
- {%
- \message{Skipping expl3-dependent extensions}%
+%<latexrelease> \expandafter\@gobble
+ \fi
+ }
+ {%
+ \message{Skipping expl3-dependent extensions}%
%<2ekernel> \endinput
-%<latexrelease> \@gobbletwo
- }%
-\input{expl3.ltx}
+%<latexrelease> \@gobble
+ }%
+ {%
+ \input{expl3.ltx}
+ \ifdefined\NewDocumentCommand
+ \else
+ \IfFileExists{xparse.ltx}
+ {\input{xparse.ltx}}
+ {}%
+ \fi
+ }%
+\else
+ \GenericInfo{}{Skipping: expl3 code already part of the format}
+\fi
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx b/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx
index 1a8dbd9cfba..58d9aa159e3 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx
@@ -35,7 +35,7 @@
%
%
\ProvidesFile{ltfssaxes.dtx}
- [2020/02/18 v1.0c LaTeX Kernel (NFSS Axes handing)]
+ [2020/03/02 v1.0e LaTeX Kernel (NFSS Axes handing)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -827,7 +827,6 @@
%
%
% \begin{macro}{\set@target@series}
-% \begin{macro}{\series@drop@one@m}
%
% Finally the code for normalizing the \cs{f@series} value.
%
@@ -845,21 +844,69 @@
\def\set@target@series#1{%
% \end{macrocode}
% We need to \cs{edef} the argument first in case it starts with a
-% conditional.
+% conditional. Then we check (and perhaps drop) an ``m'' from the
+% value andassign the result to \cs{f@series}.
+% \changes{v1.0d}{2020/02/27}{Drop ``m'' only in a specific set of values (gh/293)}
% \begin{macrocode}
\edef\f@series{#1}%
- \edef\f@series{\expandafter\series@drop@one@m\f@series mm\series@drop@one@m}%
+ \series@maybe@drop@one@m\f@series\f@series
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\series@maybe@drop@one@m}
+% If the series value is in NFSS notation then it should not
+% contain any ``m'' unless it is just an ``m'' by it own. So we
+% need to drop surplus ``m''s. But we better don't do this for full
+% names, such as ``\texttt{semibold}'' as used by
+% \texttt{autoinst}, for example. So we test against the possible
+% explicit values that should drop an ``m''.
+% After that we assign the result to \verb=#2= for further use.
+% \changes{v1.0d}{2020/02/27}{Drop ``m'' in certain values from a
+% fixed list (gh/293)}
+% \begin{macrocode}
+\def\series@maybe@drop@one@m#1{%
+ \expandafter\series@maybe@drop@one@m@x\expandafter{#1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+
+\def\series@maybe@drop@one@m@x#1#2{%
+% \end{macrocode}
+% The code below is an inline version of the \cs{in@} macro without
+% the group, so that it works in \cs{accent}.
+% \begin{macrocode}
+ \def\in@@##1,#1,{}%
+ \series@check@toks\expandafter{\in@@
+ ,ulm,elm,lm,slm,mm,sbm,bm,ebm,ubm,muc,mec,mc,msc,msx,mx,mex,mux,{}{},#1,}%
+ \edef\in@@{\the\series@check@toks}%
+ \ifx\in@@\@empty
+ \def#2{#1}%
+ \else
+ \edef#2{\expandafter\series@drop@one@m #1m\series@drop@one@m}%
+ \fi
}
% \end{macrocode}
+% As a precaution we use a private toks register not \cs{toks@} as
+% that is no longer hidden inside the group.
+% \begin{macrocode}
+\newtoks\series@check@toks
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\series@drop@one@m}
% Drop up to two \texttt{m}s but keep one if that makes the series
-% value empty.
+% value empty. Actually, with the current implementation we know
+% that there is at least one in the series value itself and we
+% added one after it, so all we have to do is now returning
+% \verb=#1#2= and dropping the rest.
% \begin{macrocode}
\def\series@drop@one@m#1m#2m#3\series@drop@one@m{%
- \ifx\relax#1#2\relax m\else#1#2\fi
+% \ifx\relax#1#2\relax m\else#1#2\fi
+ #1#2%
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
@@ -908,6 +955,7 @@
\DeclareRobustCommand\ulcshape
{\not@math@alphabet\ulcshape\relax
\fontshape\ulcdefault\selectfont}
+\let\ulcdefault\@undefined % for rollback
\newcommand\ulcdefault{ulc}
% \end{macrocode}
% \end{macro}
@@ -928,6 +976,7 @@
\DeclareRobustCommand\swshape
{\not@math@alphabet\swshape\relax
\fontshape\swdefault\selectfont}
+\let\swdefault\@undefined % for rollback
\newcommand\swdefault{sw}
% \end{macrocode}
% \end{macro}
@@ -951,6 +1000,7 @@
\DeclareRobustCommand\sscshape
{\not@math@alphabet\sscshape\relax
\fontshape\sscdefault\selectfont}
+\let\sscdefault\@undefined % for rollback
\newcommand\sscdefault{ssc}
% \end{macrocode}
% \end{macro}
@@ -1215,6 +1265,7 @@
%<latexrelease>\let\@font@shape@subst@warning\@undefined
%<latexrelease>\let\maybe@load@fontshape\@undefined
%<latexrelease>\let\set@target@series\@undefined
+%<latexrelease>\let\series@maybe@drop@one@m\@undefined
%<latexrelease>\let\series@drop@one@m\@undefined
%<latexrelease>\let\DeclareFontShapeChangeRule\@undefined
%<latexrelease>\let\merge@font@shape\@undefined
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx b/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx
index b59b0fafdd6..5715106ca63 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx
@@ -35,7 +35,7 @@
%
%
\ProvidesFile{ltfssbas.dtx}
- [2019/12/17 v3.2e LaTeX Kernel (NFSS Basic Macros)]
+ [2020/02/27 v3.2g LaTeX Kernel (NFSS Basic Macros)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -245,24 +245,59 @@
% We use |\expandafter| |\endgroup| to restore catcode in case
% something goes wrong with the argument parsing (suggested by Tim
% Van Zandt)
+% \begin{macrocode}
+ \expandafter\endgroup
+ \DeclareFontShape@}
+% \end{macrocode}
% \end{macro}
%
%
%
-% \begin{macro}{\DeclareFontShape}
+% \begin{macro}{\DeclareFontShape@}
% \changes{v2.1c}{1994/02/07}{revert catcode settings earlier}
% \changes{v3.0m}{1995/11/01}
% {(DPC) Test for \cs{relax} not \cs{undefined}, internal/1933}
% \begin{macrocode}
- \expandafter\endgroup
- \DeclareFontShape@}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\DeclareFontShape@}{Maybe drop one m}%
\def\DeclareFontShape@#1#2#3#4#5#6{%
\expandafter\ifx\csname #1+#2\endcsname\relax
\@latex@error{Font family `#1+#2' unknown}\@eha
\else
+% \end{macrocode}
+% If the series value is incorrectly specified with an extra ``m'',
+% e.g., ``mc'' instead of just ``c'', drop the surplus ``m'' but
+% keep the ``m'' if it is by its own. In that case also issue a
+% warning that the declaration needs correction.
+% \changes{v3.2f}{2020/02/24}{Drop surplus ``m'' in series when
+% defining fontshape (gh/289)}
+% \changes{v3.2g}{2020/02/27}{Only ``m'' if the series value is a member
+% of a fixed list and issue warning if doing it (gh/293)}
+%
+% For this we compare the given value \verb=#3= with one where we
+% may have dropped an ``m''. If nothing has changes,
+% fine. Otherwise there was a wrong value which is now corrected in
+% \cs{reservedb} so we use that and also issue a warning.
+% \begin{macrocode}
+ \edef\reserved@a{#3}%
+ \series@maybe@drop@one@m\reserved@a\reserved@b
+ \ifx\reserved@a\reserved@b\else
+ \@latex@warning{Font shape declaration has incorrect series
+ value `#3'.\MessageBreak It should not contain an `m'!
+ Please correct it.\MessageBreak Found}%
+ \fi
\expandafter
- \xdef\csname#1/#2/#3/#4\endcsname{\expandafter\noexpand
- \csname #5\endcsname}%
+ \xdef\csname#1/#2/\reserved@b/#4\endcsname
+ {\expandafter\noexpand\csname #5\endcsname}%
+%
+% \end{macrocode}
+% Most of the time \verb=#6= is empty so using \cs{let} to
+% \cs{@empty} saves on space compared to using \cs{def}. That's
+% really one of the old space saving techniques and probably not
+% necessary these days.
+% \begin{macrocode}
\def\reserved@a{#6}%
\global
\expandafter\let\csname#5\expandafter\endcsname
@@ -274,6 +309,33 @@
\fi
}
% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\DeclareFontShape@}{Maybe drop one m}%
+%<latexrelease>
+%<latexrelease>\def\DeclareFontShape@#1#2#3#4#5#6{%
+%<latexrelease> \expandafter\ifx\csname #1+#2\endcsname\relax
+%<latexrelease> \@latex@error{Font family `#1+#2' unknown}\@eha
+%<latexrelease> \else
+%<latexrelease> \expandafter
+%<latexrelease> \xdef\csname#1/#2/#3/#4\endcsname{\expandafter\noexpand
+%<latexrelease> \csname #5\endcsname}%
+%<latexrelease> \def\reserved@a{#6}%
+%<latexrelease> \global
+%<latexrelease> \expandafter\let\csname#5\expandafter\endcsname
+%<latexrelease> \ifx\reserved@a\@empty
+%<latexrelease> \@empty
+%<latexrelease> \else
+%<latexrelease> \reserved@a
+%<latexrelease> \fi
+%<latexrelease> \fi
+%<latexrelease> }
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
% \end{macro}
%
%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx b/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx
index bdf5f5e6e91..3947b4d9538 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx
@@ -36,7 +36,7 @@
%
%
\ProvidesFile{ltfssini.dtx}
- [2020/02/18 v3.1i LaTeX Kernel (NFSS Initialisation)]
+ [2020/03/02 v3.1k LaTeX Kernel (NFSS Initialisation)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -244,7 +244,7 @@
% \DescribeMacro\DeclareFontSeriesDefault
% We now support this concept directly from within \LaTeX{} and for
% use in font packages (or the document preamble) we offer
-% \cs{DeclareSeriesDefault}. This declaration takes three
+% \cs{DeclareFontSeriesDefault}. This declaration takes three
% arguments:
% \begin{description}
% \item[document family interface:] Can either be \texttt{rm},
@@ -278,6 +278,7 @@
% The command to declare font series defaults for the ``rm'', ``sf'' or
% ``tt'' family.
% \begin{macrocode}
+\let\DeclareFontSeriesDefault\@undefined % for rollback
\newcommand\DeclareFontSeriesDefault[3][]{%
\def\reserved@a{#1}%
% \end{macrocode}
@@ -393,8 +394,14 @@
\edef\rmdef@ult{\rmdefault}%
\edef\sfdef@ult{\sfdefault}%
\edef\ttdef@ult{\ttdefault}%
- \edef\bfdef@ult{\bfdefault}%
- \edef\mddef@ult{\mddefault}%
+% \end{macrocode}
+% The series defaults may contain some surplus \texttt{m} that we
+% need to drop here.
+% \changes{v3.1j}{2020/02/25}{Drop surplus ``m'' from \cs{bfdef@ult}
+% and \cs{mddef@ult} (gh/291)}
+% \begin{macrocode}
+ \series@maybe@drop@one@m\bfdefault\bfdef@ult
+ \series@maybe@drop@one@m\mddefault\mddef@ult
\edef\famdef@ult{\familydefault}%
}
% \end{macrocode}
@@ -718,7 +725,16 @@
\maybe@load@fontshape
%<+debug> \series@change@debug{Target series:
%<+debug> \f@series \space -> \target@series@value}%
- \let\f@series\target@series@value
+% \end{macrocode}
+% The \cs{target@series@value} may contain something like
+% \texttt{cm} (coming from a default) and so we can't directly
+% asign it to \cs{f@series} be have to drop any surplus \texttt{m}
+% first.
+% \changes{v3.1j}{2020/02/25}{Drop surplus ``m'' from
+% \cs{target@series@value} (gh/291)}
+% \begin{macrocode}
+% \let\f@series\target@series@value
+ \series@maybe@drop@one@m\target@series@value\f@series
\fi
\fi
\fi
@@ -776,10 +792,30 @@
% \cs{rmfamily}. This is now covered by looping and stopping the
% loop when a match was found.
% \begin{macrocode}
- \expandafter\ifx\csname mdseries@#1\endcsname\f@series
+% \end{macrocode}
+% We have to sanitize the default value first because it may
+% contain something like \texttt{mc} and that would never match
+% \cs{f@series} because there it would be called \texttt{c} with
+% the \texttt{m} dropped. It would be probably better to do that
+% differently these days, but it is hard to adjust without causing
+% a lot of issues, so we do the dropping in various places instead.
+% \changes{v3.1j}{2020/02/25}{Drop surplus ``m'' from \cs{reserved@d}
+% (gh/291)}
+% \begin{macrocode}
+ \expandafter\series@maybe@drop@one@m
+ \csname mdseries@#1\endcsname\reserved@d
+ \ifx\reserved@d\f@series
%<+debug> \series@change@debug{mdseries@#1 matched -> \reserved@b}%
\let\target@series@value\reserved@b
- \else\expandafter\ifx\csname bfseries@#1\endcsname\f@series
+ \else
+% \end{macrocode}
+% Again do some sanitizing.
+% \changes{v3.1j}{2020/02/25}{Drop surplus ``m'' from \cs{reserved@d}
+% (gh/291)}
+% \begin{macrocode}
+ \expandafter\series@maybe@drop@one@m
+ \csname bfseries@#1\endcsname\reserved@d
+ \ifx\reserved@d\f@series
%<+debug> \series@change@debug{bfseries@#1 matched -> \reserved@c}%
\let\target@series@value\reserved@c
\else\ifx\f@series\mddef@ult \let\target@series@value\reserved@b
diff --git a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
index 2b54638bc42..ed2abe1088b 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltvers.dtx}
- [2020/01/31 v1.1e LaTeX Kernel (Version Info)]
+ [2020/03/02 v1.1e LaTeX Kernel (Version Info)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltvers.dtx}
@@ -115,7 +115,7 @@
{2020-10-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{-4}
+\def\patch@level{-5}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
@@ -250,6 +250,14 @@
\def\@IncludeInRele@se#1#2#3{%
\toks@{[#1] #3}%
\expandafter\ifx\csname\string#2+\@currname+IIR\endcsname\relax
+% \end{macrocode}
+% If we roll back and the first patch already match then applying
+% that is actually reapplying what is already in the format, i.e.,
+% it is useless and possibly allocating new registers. However, it
+% makes the logic simpler so this is the way it is for now. In
+% theory we could always jump overthe first patch because that is
+% only really needed for rolling forward. So maybe one day \dots
+% \begin{macrocode}
\ifnum\expandafter\@parse@version#1//00\@nil
>\expandafter\@parse@version\fmtversion//00\@nil
\GenericInfo{}{Skipping: \the\toks@}%