summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltfssini.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex-dev/base/ltfssini.dtx')
-rw-r--r--macros/latex-dev/base/ltfssini.dtx383
1 files changed, 287 insertions, 96 deletions
diff --git a/macros/latex-dev/base/ltfssini.dtx b/macros/latex-dev/base/ltfssini.dtx
index b06fc161b0..f817fdd847 100644
--- a/macros/latex-dev/base/ltfssini.dtx
+++ b/macros/latex-dev/base/ltfssini.dtx
@@ -36,7 +36,7 @@
%
%
\ProvidesFile{ltfssini.dtx}
- [2021/04/26 v3.2h LaTeX Kernel (NFSS Initialisation)]
+ [2021/09/10 v3.2i LaTeX Kernel (NFSS Initialisation)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -207,7 +207,7 @@
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease>\IncludeInRelease{2021/11/15}%
%<latexrelease> {\DeclareFontSeriesDefault}{Custom series}%
% \end{macrocode}
%
@@ -280,6 +280,17 @@
% \begin{macrocode}
\let\DeclareFontSeriesDefault\@undefined % for rollback
\newcommand\DeclareFontSeriesDefault[3][]{%
+% \end{macrocode}
+%
+% \changes{v3.2i}{2021/09/10}{Do delayed changes to \cs{bfdefault} or
+% \cs{mddefault} first (gh/663)}
+% \begin{macrocode}
+ \expand@font@defaults
+ \maybe@update@bfseries@defaults
+ \maybe@update@mdseries@defaults
+% \end{macrocode}
+%
+% \begin{macrocode}
\def\reserved@a{#1}%
% \end{macrocode}
% No optional argument: set up general default.
@@ -333,7 +344,77 @@
% \end{macro}
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\DeclareFontSeriesDefault}{Custom series}%
+%<latexrelease>
+%<latexrelease>\let\DeclareFontSeriesDefault\@undefined % for rollback
+%<latexrelease>\newcommand\DeclareFontSeriesDefault[3][]{%
+%<latexrelease> \def\reserved@a{#1}%
+%<latexrelease> \ifx\reserved@a\@empty
+%<latexrelease> \ifcsname #2series\endcsname % supported are
+%<latexrelease> % \[md/bf]default
+%<latexrelease> \expandafter\def
+%<latexrelease> \csname #2default\endcsname{#3\@empty}%
+%<latexrelease> \expandafter\def
+%<latexrelease> \csname #2default@previous\endcsname{#3\@empty}%
+%<latexrelease> \else
+%<latexrelease> \@latex@error{Wrong syntax for \string\DeclareFontSeriesDefault}%
+%<latexrelease> {Mandatory first argument must be 'md' or 'bf'.}
+%<latexrelease> \fi
+%<latexrelease> \else
+%<latexrelease> \ifcsname #2series@#1\endcsname % supported are
+%<latexrelease> % \[md/bf]series@[rm/sf/tt]
+%<latexrelease> \expandafter\edef
+%<latexrelease> \csname #2series@#1\endcsname{#3}%
+%<latexrelease> \expandafter\let
+%<latexrelease> \csname #2series@#1@kernel\endcsname\@undefined
+%<latexrelease> \else
+%<latexrelease> \@latex@error{Wrong syntax for \string\DeclareFontSeriesDefault}%
+%<latexrelease> {Optional argument must be 'rm', 'sf', or 'tt'. \MessageBreak
+%<latexrelease> Mandatory first argument must be 'md' or 'bf'.}
+%<latexrelease> \fi
+%<latexrelease> \fi
+%<latexrelease>}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\DeclareFontSeriesDefault}{Custom series}%
+%<latexrelease>
+%<latexrelease>\let\DeclareFontSeriesDefault\@undefined
+%<latexrelease>\let\bfseries@rm\@undefined
+%<latexrelease>\let\bfseries@sf\@undefined
+%<latexrelease>\let\bfseries@tt\@undefined
+%<latexrelease>\let\bfseries@rm@kernel\@undefined
+%<latexrelease>\let\bfseries@sf@kernel\@undefined
+%<latexrelease>\let\bfseries@tt@kernel\@undefined
+%<latexrelease>\let\mdseries@rm\@undefined
+%<latexrelease>\let\mdseries@sf\@undefined
+%<latexrelease>\let\mdseries@tt\@undefined
+%<latexrelease>\expandafter\let\csname ver@mweights.sty\endcsname\@undefined
+%<latexrelease>
+%<latexrelease>\let\@meta@family@list\@undefined
+%<latexrelease>\let\prepare@family@series@update\@undefined
+%<latexrelease>\let\update@series@target@value\@undefined
+%<latexrelease>
+% \end{macrocode}
+% This is always called in \cs{document} so don't make it undefined.
+% \begin{macrocode}
+%<latexrelease>\let\init@series@setup\relax
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\mdseries@rm}{Custom series}%
+% \end{macrocode}
% \begin{macro}{\mdseries@rm}
% \begin{macro}{\mdseries@sf}
@@ -704,9 +785,8 @@
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease> {\DeclareFontSeriesDefault}{Custom series}%
+%<latexrelease> {\mdseries@rm}{Custom series}%
%<latexrelease>
-%<latexrelease>\let\DeclareFontSeriesDefault\@undefined
%<latexrelease>\let\bfseries@rm\@undefined
%<latexrelease>\let\bfseries@sf\@undefined
%<latexrelease>\let\bfseries@tt\@undefined
@@ -735,55 +815,11 @@
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease>\IncludeInRelease{2021/11/15}%
%<latexrelease> {\bfseries}{Custom series with hooks}%
% \end{macrocode}
-% \begin{macro}{\expand@font@defaults}
-% \begin{macro}{\rm@def@ult}
-% \begin{macro}{\sf@def@ult}
-% \begin{macro}{\tt@def@ult}
-% \begin{macro}{\md@def@ult}
-% \begin{macro}{\bf@def@ult}
-%
-% The family specific defaults are fully expanded, i.e., they are
-% defined via \cs{edef} inside \cs{DeclareFontSeriesDefault}.
-% However, the overall defaults, e.g., \cs{bfdefault} may have been
-% redefined by the user and thus may not be fully expanded. So to
-% enable reliable comparison we make expanded versions of
-% them. That we rerun each time. The alternative would be to only
-% allow for changes before begin document.
-% \begin{macrocode}
-\def\expand@font@defaults{%
- \edef\rmdef@ult{\rmdefault}%
- \edef\sfdef@ult{\sfdefault}%
- \edef\ttdef@ult{\ttdefault}%
-% \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
-% \end{macrocode}
-% Formats that set up parallel fonts, e.g., for Japanese, can use
-% this hook to add additional code here.
-% \changes{v3.1m}{2020/04/06}{Hook added (gh/306)}
-% \changes{v3.2b}{2020/08/21}{Integration of new hook management interface}
-% \begin{macrocode}
- \UseHook{expand@font@defaults}%
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-
-
% \begin{macro}{\bfseries}
% This document command switches to the bold series.
% \begin{macrocode}
@@ -797,9 +833,35 @@
% \cs{ttdef@ult} and the select the correct family default in that case.
% \changes{v3.1i}{2020/02/18}{Make the \cs{ifx} selection outside
% of \cs{fontseries} argument so that it is not done several times}
+% \changes{v3.2i}{2021/09/10}{Do delayed changes to \cs{bfdefault} in
+% a separate macro for better reuse (gh/663)}
% \begin{macrocode}
\expand@font@defaults
+ \maybe@update@bfseries@defaults
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \ifx\f@family\rmdef@ult \fontseries\bfseries@rm
+ \else\ifx\f@family\sfdef@ult \fontseries\bfseries@sf
+ \else\ifx\f@family\ttdef@ult \fontseries\bfseries@tt
+% \end{macrocode}
+% If not \cs{bfdefault} is used.
+% \begin{macrocode}
+ \else \fontseries\bfdefault
+ \fi\fi\fi
% \end{macrocode}
+% This hook in contrast is always executed.
+% \begin{macrocode}
+ \UseHook{bfseries}%
+ \selectfont
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+% \begin{macro}{\maybe@update@bfseries@defaults}
+%
% If \cs{bfdefault} and \cs{bfdefault@previous} are different then
% the default got changed directly through the legacy interface
% (i.e., via \cs{def} or \cs{renewcommand}. In that case we reset
@@ -807,7 +869,10 @@
% the case before the new mechanism was introduced.
% \changes{v3.1k}{2020/03/19}{Support legacy use of \cs{bfdefault}
% and \cs{mddefault} (gh/306)}
+% \changes{v3.2i}{2021/09/10}{Do delayed changes to \cs{bfdefault} in
+% a separate macro for better reuse (gh/663)}
% \begin{macrocode}
+\def\maybe@update@bfseries@defaults{%
\ifx\bfdefault\bfdefault@previous\else
% \end{macrocode}
% We add \cs{@empty} and then let \cs{bfdefault@previous} to
@@ -835,28 +900,11 @@
% \begin{macrocode}
\UseHook{bfseries/defaults}%
\fi
-% \end{macrocode}
-%
-% \begin{macrocode}
- \ifx\f@family\rmdef@ult \fontseries\bfseries@rm
- \else\ifx\f@family\sfdef@ult \fontseries\bfseries@sf
- \else\ifx\f@family\ttdef@ult \fontseries\bfseries@tt
-% \end{macrocode}
-% If not \cs{bfdefault} is used.
-% \begin{macrocode}
- \else \fontseries\bfdefault
- \fi\fi\fi
-% \end{macrocode}
-% This hook in contrast is always executed.
-% \begin{macrocode}
- \UseHook{bfseries}%
- \selectfont
}
% \end{macrocode}
% \end{macro}
-
% \begin{macro}{\mdseries}
% This document command switches to the medium series.
% \changes{v3.1i}{2020/02/18}{Make the \cs{ifx} selection outside
@@ -865,10 +913,30 @@
% and \cs{mddefault} (gh/306)}
% \changes{v3.2d}{2020/09/30}{\cs{mddefault@previous} not \cs{mdseries@previous}
% (gh/395)}
+% \changes{v3.2i}{2021/09/10}{Do delayed changes to \cs{mddefault} in
+% a separate macro for better reuse (gh/663)}
% \begin{macrocode}
\DeclareRobustCommand\mdseries{%
\not@math@alphabet\mdseries\relax
\expand@font@defaults
+ \maybe@update@mdseries@defaults
+ \ifx\f@family\rmdef@ult \fontseries\mdseries@rm
+ \else\ifx\f@family\sfdef@ult \fontseries\mdseries@sf
+ \else\ifx\f@family\ttdef@ult \fontseries\mdseries@tt
+ \else \fontseries\mddefault
+ \fi\fi\fi
+ \UseHook{mdseries}%
+ \selectfont
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\maybe@update@mdseries@defaults}
+%
+% \changes{v3.2i}{2021/09/10}{Do delayed changes to \cs{mddefault} in
+% a separate macro for better reuse (gh/663)}
+% \begin{macrocode}
+\def\maybe@update@mdseries@defaults{%
\ifx\mddefault\mddefault@previous\else
\expandafter\def\expandafter\mddefault\expandafter{\mddefault\@empty}%
\let\mddefault@previous\mddefault
@@ -884,17 +952,161 @@
% \begin{macrocode}
\UseHook{mdseries/defaults}%
\fi
- \ifx\f@family\rmdef@ult \fontseries\mdseries@rm
- \else\ifx\f@family\sfdef@ult \fontseries\mdseries@sf
- \else\ifx\f@family\ttdef@ult \fontseries\mdseries@tt
- \else \fontseries\mddefault
- \fi\fi\fi
- \UseHook{mdseries}%
- \selectfont
}
% \end{macrocode}
% \end{macro}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\bfseries}{Custom series with hooks}%
+%<latexrelease>
+%<latexrelease>\let\maybe@update@bfseries@defaults\@undefined
+%<latexrelease>\let\maybe@update@mdseries@defaults\@undefined
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\bfseries{%
+%<latexrelease> \not@math@alphabet\bfseries\mathbf
+%<latexrelease> \expand@font@defaults
+%<latexrelease> \ifx\bfdefault\bfdefault@previous\else
+%<latexrelease> \expandafter\def\expandafter\bfdefault
+%<latexrelease> \expandafter{\bfdefault\@empty}%
+%<latexrelease> \let\bfdefault@previous\bfdefault
+%<latexrelease> \let\bfseries@rm\bfdef@ult
+%<latexrelease> \let\bfseries@sf\bfdef@ult
+%<latexrelease> \let\bfseries@tt\bfdef@ult
+%<latexrelease> \UseHook{bfseries/defaults}%
+%<latexrelease> \fi
+%<latexrelease> \ifx\f@family\rmdef@ult \fontseries\bfseries@rm
+%<latexrelease> \else\ifx\f@family\sfdef@ult \fontseries\bfseries@sf
+%<latexrelease> \else\ifx\f@family\ttdef@ult \fontseries\bfseries@tt
+%<latexrelease> \else \fontseries\bfdefault
+%<latexrelease> \fi\fi\fi
+%<latexrelease> \UseHook{bfseries}%
+%<latexrelease> \selectfont
+%<latexrelease>}
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\mdseries{%
+%<latexrelease> \not@math@alphabet\mdseries\relax
+%<latexrelease> \expand@font@defaults
+%<latexrelease> \ifx\mddefault\mddefault@previous\else
+%<latexrelease> \expandafter\def\expandafter\mddefault\expandafter{\mddefault\@empty}%
+%<latexrelease> \let\mddefault@previous\mddefault
+%<latexrelease> \let\mdseries@rm\mddef@ult
+%<latexrelease> \let\mdseries@sf\mddef@ult
+%<latexrelease> \let\mdseries@tt\mddef@ult
+%<latexrelease> \UseHook{mdseries/defaults}%
+%<latexrelease> \fi
+%<latexrelease> \ifx\f@family\rmdef@ult \fontseries\mdseries@rm
+%<latexrelease> \else\ifx\f@family\sfdef@ult \fontseries\mdseries@sf
+%<latexrelease> \else\ifx\f@family\ttdef@ult \fontseries\mdseries@tt
+%<latexrelease> \else \fontseries\mddefault
+%<latexrelease> \fi\fi\fi
+%<latexrelease> \UseHook{mdseries}%
+%<latexrelease> \selectfont
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\bfseries}{Custom series with hooks}%
+%<latexrelease>
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\bfseries{%
+%<latexrelease> \not@math@alphabet\bfseries\mathbf
+%<latexrelease> \expand@font@defaults
+%<latexrelease> \ifx\f@family\rmdef@ult \fontseries\bfseries@rm
+%<latexrelease> \else\ifx\f@family\sfdef@ult \fontseries\bfseries@sf
+%<latexrelease> \else\ifx\f@family\ttdef@ult \fontseries\bfseries@tt
+%<latexrelease> \else \fontseries\bfdefault
+%<latexrelease> \fi\fi\fi
+%<latexrelease> \selectfont
+%<latexrelease>}
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\mdseries{%
+%<latexrelease> \not@math@alphabet\mdseries\relax
+%<latexrelease> \expand@font@defaults
+%<latexrelease> \ifx\f@family\rmdef@ult \fontseries\mdseries@rm
+%<latexrelease> \else\ifx\f@family\sfdef@ult \fontseries\mdseries@sf
+%<latexrelease> \else\ifx\f@family\ttdef@ult \fontseries\mdseries@tt
+%<latexrelease> \else \fontseries\mddefault
+%<latexrelease> \fi\fi\fi
+%<latexrelease> \selectfont
+%<latexrelease>}
+%<latexrelease>
+%<latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\bfseries}{Custom series with hooks}%
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\bfseries
+%<latexrelease> {\not@math@alphabet\bfseries\mathbf
+%<latexrelease> \fontseries\bfdefault\selectfont}
+%<latexrelease>\DeclareRobustCommand\mdseries
+%<latexrelease> {\not@math@alphabet\mdseries\relax
+%<latexrelease> \fontseries\mddefault\selectfont}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+
+
+
+
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\expand@font@defaults}{Custom series with hooks}%
+% \end{macrocode}
+
+
+
+% \begin{macro}{\expand@font@defaults}
+% \begin{macro}{\rm@def@ult}
+% \begin{macro}{\sf@def@ult}
+% \begin{macro}{\tt@def@ult}
+% \begin{macro}{\md@def@ult}
+% \begin{macro}{\bf@def@ult}
+%
+% The family specific defaults are fully expanded, i.e., they are
+% defined via \cs{edef} inside \cs{DeclareFontSeriesDefault}.
+% However, the overall defaults, e.g., \cs{bfdefault} may have been
+% redefined by the user and thus may not be fully expanded. So to
+% enable reliable comparison we make expanded versions of
+% them. That we rerun each time. The alternative would be to only
+% allow for changes before begin document.
+% \begin{macrocode}
+\def\expand@font@defaults{%
+ \edef\rmdef@ult{\rmdefault}%
+ \edef\sfdef@ult{\sfdefault}%
+ \edef\ttdef@ult{\ttdefault}%
+% \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
+% \end{macrocode}
+% Formats that set up parallel fonts, e.g., for Japanese, can use
+% this hook to add additional code here.
+% \changes{v3.1m}{2020/04/06}{Hook added (gh/306)}
+% \changes{v3.2b}{2020/08/21}{Integration of new hook management interface}
+% \begin{macrocode}
+ \UseHook{expand@font@defaults}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+
+
% \begin{macro}{\rmfamily}
% Here are the document level commands for changing the main font
@@ -1094,7 +1306,7 @@
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{2020/02/02}%
-%<latexrelease> {\bfseries}{Custom series with hooks}%
+%<latexrelease> {\expand@font@defaults}{Custom series with hooks}%
%<latexrelease>
%<latexrelease>\def\expand@font@defaults{%
%<latexrelease> \edef\rmdef@ult{\rmdefault}%
@@ -1105,27 +1317,6 @@
%<latexrelease> \edef\famdef@ult{\familydefault}%
%<latexrelease>}
%<latexrelease>
-%<latexrelease>\DeclareRobustCommand\bfseries{%
-%<latexrelease> \not@math@alphabet\bfseries\mathbf
-%<latexrelease> \expand@font@defaults
-%<latexrelease> \ifx\f@family\rmdef@ult \fontseries\bfseries@rm
-%<latexrelease> \else\ifx\f@family\sfdef@ult \fontseries\bfseries@sf
-%<latexrelease> \else\ifx\f@family\ttdef@ult \fontseries\bfseries@tt
-%<latexrelease> \else \fontseries\bfdefault
-%<latexrelease> \fi\fi\fi
-%<latexrelease> \selectfont
-%<latexrelease>}
-%<latexrelease>
-%<latexrelease>\DeclareRobustCommand\mdseries{%
-%<latexrelease> \not@math@alphabet\mdseries\relax
-%<latexrelease> \expand@font@defaults
-%<latexrelease> \ifx\f@family\rmdef@ult \fontseries\mdseries@rm
-%<latexrelease> \else\ifx\f@family\sfdef@ult \fontseries\mdseries@sf
-%<latexrelease> \else\ifx\f@family\ttdef@ult \fontseries\mdseries@tt
-%<latexrelease> \else \fontseries\mddefault
-%<latexrelease> \fi\fi\fi
-%<latexrelease> \selectfont
-%<latexrelease>}
%<latexrelease>
%<latexrelease>\DeclareRobustCommand\rmfamily{%
%<latexrelease> \not@math@alphabet\rmfamily\mathrm
@@ -1152,7 +1343,7 @@
%<latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease> {\bfseries}{Custom series with hooks}%
+%<latexrelease> {\expand@font@defaults}{Custom series with hooks}%
%<latexrelease>
%<latexrelease>\let\expand@font@defaults\@undefined
%<latexrelease>