summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltfssini.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-03-07 03:00:57 +0000
committerNorbert Preining <norbert@preining.info>2020-03-07 03:00:57 +0000
commit8012fbf3193a5d1699496b198c3bd448973557bd (patch)
treeae7b8f657130de7157724405a57edb37485e9e6c /macros/latex-dev/base/ltfssini.dtx
parent6749f197f068ccc7a12ea95ee2bbfca4942c1b13 (diff)
CTAN sync 202003070300
Diffstat (limited to 'macros/latex-dev/base/ltfssini.dtx')
-rw-r--r--macros/latex-dev/base/ltfssini.dtx50
1 files changed, 43 insertions, 7 deletions
diff --git a/macros/latex-dev/base/ltfssini.dtx b/macros/latex-dev/base/ltfssini.dtx
index bdf5f5e6e9..3947b4d953 100644
--- a/macros/latex-dev/base/ltfssini.dtx
+++ b/macros/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