summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltfssbas.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex-dev/base/ltfssbas.dtx')
-rw-r--r--macros/latex-dev/base/ltfssbas.dtx74
1 files changed, 68 insertions, 6 deletions
diff --git a/macros/latex-dev/base/ltfssbas.dtx b/macros/latex-dev/base/ltfssbas.dtx
index b59b0fafdd..5715106ca6 100644
--- a/macros/latex-dev/base/ltfssbas.dtx
+++ b/macros/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}
%
%