diff options
Diffstat (limited to 'macros/latex-dev/base/ltfssbas.dtx')
-rw-r--r-- | macros/latex-dev/base/ltfssbas.dtx | 74 |
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} % % |