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