summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/base
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/base')
-rw-r--r--Master/texmf-dist/source/latex/base/ltdefns.dtx6
-rw-r--r--Master/texmf-dist/source/latex/base/ltfssaxes.dtx56
-rw-r--r--Master/texmf-dist/source/latex/base/ltfssbas.dtx36
-rw-r--r--Master/texmf-dist/source/latex/base/ltvers.dtx2
4 files changed, 83 insertions, 17 deletions
diff --git a/Master/texmf-dist/source/latex/base/ltdefns.dtx b/Master/texmf-dist/source/latex/base/ltdefns.dtx
index ae472966d57..303b9e5604b 100644
--- a/Master/texmf-dist/source/latex/base/ltdefns.dtx
+++ b/Master/texmf-dist/source/latex/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/base/ltfssaxes.dtx b/Master/texmf-dist/source/latex/base/ltfssaxes.dtx
index 1a8dbd9cfba..02a49a3122d 100644
--- a/Master/texmf-dist/source/latex/base/ltfssaxes.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfssaxes.dtx
@@ -35,7 +35,7 @@
%
%
\ProvidesFile{ltfssaxes.dtx}
- [2020/02/18 v1.0c LaTeX Kernel (NFSS Axes handing)]
+ [2020/02/27 v1.0d 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,63 @@
\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}%
+ \expandafter\series@maybe@drop@one@m\expandafter{\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#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 istelf 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}
@@ -1215,6 +1256,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/base/ltfssbas.dtx b/Master/texmf-dist/source/latex/base/ltfssbas.dtx
index fedfcb68ec8..f51d742d466 100644
--- a/Master/texmf-dist/source/latex/base/ltfssbas.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfssbas.dtx
@@ -35,7 +35,7 @@
%
%
\ProvidesFile{ltfssbas.dtx}
- [2020/02/24 v3.2f LaTeX Kernel (NFSS Basic Macros)]
+ [2020/02/27 v3.2g LaTeX Kernel (NFSS Basic Macros)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -266,18 +266,38 @@
\expandafter\ifx\csname #1+#2\endcsname\relax
\@latex@error{Font family `#1+#2' unknown}\@eha
\else
- \expandafter
- \xdef\csname#1/#2/%
% \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.
-% \changes{v3.2f}{2020/12/24}{Drop surplus ``m'' in series when
+% 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}%
+ \expandafter\series@maybe@drop@one@m\expandafter{#3}\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/\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}
- \expandafter\series@drop@one@m #3mm\series@drop@one@m/%
- #4\endcsname{\expandafter\noexpand
- \csname #5\endcsname}%
\def\reserved@a{#6}%
\global
\expandafter\let\csname#5\expandafter\endcsname
diff --git a/Master/texmf-dist/source/latex/base/ltvers.dtx b/Master/texmf-dist/source/latex/base/ltvers.dtx
index b38dee39c89..f13a6ae6851 100644
--- a/Master/texmf-dist/source/latex/base/ltvers.dtx
+++ b/Master/texmf-dist/source/latex/base/ltvers.dtx
@@ -115,7 +115,7 @@
{2020-02-02}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{4}
+\def\patch@level{5}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}