[latex3-commits] [git/LaTeX3-latex3-latex2e] gh306: providing a fix for #306 (85b982ee)

Frank Mittelbach frank.mittelbach at latex-project.org
Thu Mar 19 19:51:33 CET 2020


Repository : https://github.com/latex3/latex2e
On branch  : gh306
Link       : https://github.com/latex3/latex2e/commit/85b982ee24835f7d67bd67493dd40a2f135a1e9a

>---------------------------------------------------------------

commit 85b982ee24835f7d67bd67493dd40a2f135a1e9a
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date:   Thu Mar 19 19:51:33 2020 +0100

    providing a fix for #306


>---------------------------------------------------------------

85b982ee24835f7d67bd67493dd40a2f135a1e9a
 base/changes.txt                |   8 +++
 base/doc/ltnews32.tex           |  14 ++++-
 base/fontdef.dtx                |  26 +++++++--
 base/ltfssini.dtx               |  51 ++++++++++++++++-
 base/testfiles/github-0306a.lvt |  62 ++++++++++++++++++++
 base/testfiles/github-0306a.tlg | 106 ++++++++++++++++++++++++++++++++++
 base/testfiles/github-0306b.lvt |  61 ++++++++++++++++++++
 base/testfiles/github-0306b.tlg | 106 ++++++++++++++++++++++++++++++++++
 base/testfiles/github-0306c.lvt |  62 ++++++++++++++++++++
 base/testfiles/github-0306c.tlg | 104 +++++++++++++++++++++++++++++++++
 base/testfiles/github-0306d.lvt |  62 ++++++++++++++++++++
 base/testfiles/github-0306d.tlg | 106 ++++++++++++++++++++++++++++++++++
 base/testfiles/github-0306e.lvt |  65 +++++++++++++++++++++
 base/testfiles/github-0306e.tlg | 123 ++++++++++++++++++++++++++++++++++++++++
 14 files changed, 945 insertions(+), 11 deletions(-)

diff --git a/base/changes.txt b/base/changes.txt
index 4fb7d643..d5b27bb9 100644
--- a/base/changes.txt
+++ b/base/changes.txt
@@ -1,3 +1,11 @@
+2020-03-19  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* fontdef.dtx (subsection{Defaults}):
+	Support legacy use of \bfdefault and \mddefault (gh/306)
+
+	* ltfssini.dtx (section{Custom series settings for main document families}):
+	Support legacy use of \bfdefault and \mddefault (gh/306)
+
 2020-03-07  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
 	* ltspace.dtx: Moved \cs{thinspace}, \cs{negthinspace} and \cs{,} to
diff --git a/base/doc/ltnews32.tex b/base/doc/ltnews32.tex
index cab79d7a..a85632b0 100644
--- a/base/doc/ltnews32.tex
+++ b/base/doc/ltnews32.tex
@@ -212,7 +212,7 @@ to the right. This has been corrected.
 \githubissue{270}
 
 
-\subsection{Better support for uncommon font series defaults}
+\subsection{Support for uncommon font series defaults}
 
 If a font family was set up with fairly unusual font series defaults,
 e.g.,
@@ -230,6 +230,14 @@ been corrected.
 \githubissue{291}
 
 
+\subsection{Support for the legacy series default interface}
+
+\emph{to write}
+%
+\githubissue{306}
+
+
+
 \subsection{Adjusting \texttt{fleqn}}
 
 In \pkg{amsmath} the \cs{mathindent} parameter used with the
@@ -250,8 +258,8 @@ equation number.
 
 \LaTeX{} has inherited \cs{llap} and \cs{rlap} from plain \TeX{}
 (zero-sized boxes whose content sticks out to the left or right,
-respectively) but there isn't a corresponding \cs{clap} commad that
-centers the material. This missing command has been added by several
+respectively) but there isn't a corresponding \cs{clap} command that
+centers the material. This missing command was added by several
 addon packages, e.g., \pkg{mathtools}, and has now been added to the
 kernel.
 
diff --git a/base/fontdef.dtx b/base/fontdef.dtx
index c5623c55..98ce0eb9 100644
--- a/base/fontdef.dtx
+++ b/base/fontdef.dtx
@@ -39,7 +39,7 @@
 %<driver, >\ProvidesFile{fontdef.drv}
 % \fi
 %          \ProvidesFile{fontdef.dtx}
-%<-latexrelease>           [2020/02/11 v3.0g LaTeX Kernel
+%<-latexrelease>           [2020/03/19 v3.0h LaTeX Kernel
 % \iftrue  (\else
 %<text,   >(Text
 %<math,   >(Math
@@ -489,8 +489,8 @@
 %    Series changing commands are influenced by the following hooks.
 % \changes{v3.0e}{2019/12/17}{Set \cs{bfdefault} to ``b''}
 %    \begin{macrocode}
-\newcommand\bfdefault{b}  % overwritten below
-\newcommand\mddefault{m}
+\newcommand\bfdefault{b}  % overwritten below (for rollback)
+\newcommand\mddefault{m}  % overwritten below (for rollback)
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -506,7 +506,7 @@
 \newcommand\itdefault{it}
 \newcommand\sldefault{sl}
 \newcommand\scdefault{sc}
-\newcommand\updefault{up}  % overwritten below
+\newcommand\updefault{up}  % overwritten below (for rollback)
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -519,8 +519,21 @@
 %<*text|latexrelease>
 %<latexrelease>\IncludeInRelease{2020/02/02}%
 %<latexrelease>                 {\updefault}{font defaults change}%
+%    \begin{macrocode}
 \renewcommand\updefault{up}
-\renewcommand\bfdefault{b}
+%    \end{macrocode}
+%    We append \cs{@empty} to the series value so that we can detect
+%    if it got changed via \cs{def} or \cs{renewcommand} later.
+% \changes{v3.0h}{2020/03/19}{Support legacy use of \cs{bfdefault}
+%        and \cs{mddefault} (gh/306)}
+%    \begin{macrocode}
+\renewcommand\bfdefault{b\@empty}
+\renewcommand\mddefault{m\@empty}
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\let\bfdefault at previous\bfdefault
+\let\mddefault at previous\mddefault
 %</text|latexrelease>
 %<latexrelease>\EndIncludeInRelease
 %<latexrelease>\IncludeInRelease{0000/00/00}%
@@ -528,6 +541,9 @@
 %<latexrelease>
 %<latexrelease>\renewcommand\updefault{n}
 %<latexrelease>\renewcommand\bfdefault{bx}
+%<latexrelease>
+%<latexrelease>\let\bfdefault at previous\undefined
+%<latexrelease>\let\mddefault at previous\undefined
 %<latexrelease>\EndIncludeInRelease
 %<*text>
 %    \end{macrocode}
diff --git a/base/ltfssini.dtx b/base/ltfssini.dtx
index 3947b4d9..28d6b34d 100644
--- a/base/ltfssini.dtx
+++ b/base/ltfssini.dtx
@@ -36,7 +36,7 @@
 %
 %
 \ProvidesFile{ltfssini.dtx}
-             [2020/03/02 v3.1k LaTeX Kernel (NFSS Initialisation)]
+             [2020/03/19 v3.1l LaTeX Kernel (NFSS Initialisation)]
 % \iffalse
 \documentclass{ltxdoc}
 \begin{document}
@@ -288,8 +288,16 @@
   \ifx\reserved at a\@empty
     \ifcsname #2series\endcsname           % supported are
                                            % \[md/bf]default
+%    \end{macrocode}
+%    Adding \cs{@empty} allows us to detect if the default gets
+%    redefined with \cs{renewcommand} or \cs{def} by the user.
+% \changes{v3.1k}{2020/03/19}{Support legacy use of \cs{bfdefault}
+%        and \cs{mddefault} (gh/306)}
+%    \begin{macrocode}
       \expandafter\def
-         \csname #2default\endcsname{#3}%
+        \csname #2default\endcsname{#3\@empty}%
+      \expandafter\def
+        \csname #2default at previous\endcsname{#3\@empty}%
     \else
 %    \end{macrocode}
 %
@@ -425,6 +433,34 @@
 %            of \cs{fontseries} argument so that it is not done several times}
 %    \begin{macrocode}
   \expand at font@defaults
+%    \end{macrocode}
+%    If \cs{bfdefault} and \cs{befdefault at 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
+%    all meta family defaults so that the document behaves like it was
+%    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)}
+%    \begin{macrocode}
+  \ifx\bfdefault\bfdefault at previous\else
+%    \end{macrocode}
+%    We add \cs{@empty} and then let \cs{bfdefault at previous} to
+%    \cs{bfdefault} so that we can detect any further change.
+%    \begin{macrocode}
+    \expandafter\def\expandafter\bfdefault
+                    \expandafter{\bfdefault\@empty}%
+    \let\bfseries at previous\bfdefault
+%    \end{macrocode}
+%    And we reset the meta family defaults (\cs{bfdef at ult} is an
+%    expanded version of \cs{bfdefault}.
+%    \begin{macrocode}
+    \let\bfseries at rm\bfdef at ult
+    \let\bfseries at sf\bfdef at ult
+    \let\bfseries at tt\bfdef at ult
+  \fi
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
     \ifx\f at family\rmdef at ult      \fontseries\bfseries at rm
     \else\ifx\f at family\sfdef at ult \fontseries\bfseries at sf
     \else\ifx\f at family\ttdef at ult \fontseries\bfseries at tt
@@ -444,10 +480,19 @@
 %    This document command switches to the medium series.
 % \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.1k}{2020/03/19}{Support legacy use of \cs{bfdefault}
+%        and \cs{mddefault} (gh/306)}
 %    \begin{macrocode}
 \DeclareRobustCommand\mdseries{%
   \not at math@alphabet\mdseries\relax
   \expand at font@defaults
+  \ifx\mddefault\mddefault at previous\else
+    \expandafter\def\expandafter\mddefault\expandafter{\mddefault\@empty}%
+    \let\mdseries at previous\mddefault
+    \let\mdseries at rm\mddef at ult
+    \let\mdseries at sf\mddef at ult
+    \let\mdseries at tt\mddef at ult
+  \fi
     \ifx\f at family\rmdef at ult      \fontseries\mdseries at rm
     \else\ifx\f at family\sfdef at ult \fontseries\mdseries at sf
     \else\ifx\f at family\ttdef at ult \fontseries\mdseries at tt
@@ -880,7 +925,7 @@
 %    On the other hand if we still typeset in CM or LM then
 %    \cs{bfdefault} is wrong since it is now saying \texttt{b} and not
 %    \texttt{bx}.
-
+%
 %    To fix this we run \cs{rmfamily}, \cs{sffamily} or
 %    \cs{ttfamily} depending on the situation and this will correct
 %    the setup for us.
diff --git a/base/testfiles/github-0306a.lvt b/base/testfiles/github-0306a.lvt
new file mode 100644
index 00000000..dcdaab44
--- /dev/null
+++ b/base/testfiles/github-0306a.lvt
@@ -0,0 +1,62 @@
+% \bfdefault / \mddefault change only after begin document 
+
+
+\makeatletter
+\def\showme#1{\typeout{\@spaces\string#1 = \csname \expandafter\@gobble\string#1\endcsname\space}}
+\def\currentstate#1{%
+ \typeout{==== We are #1 =====}%
+  \showme\mddefault
+  \showme\bfdefault
+ \typeout{------}%
+  \showme\mddef at ult
+  \showme\bfdef at ult
+ \typeout{------}%
+  \showme\mdseries at rm
+  \showme\bfseries at rm
+  \showme\mdseries at sf
+  \showme\bfseries at sf
+  \showme\mdseries at tt
+  \showme\bfseries at tt
+ \typeout{------}%
+  \showme\bfseries at rm@kernel
+  \showme\bfseries at sf@kernel
+  \showme\bfseries at tt@kernel
+ \typeout{}%
+  }
+\makeatother
+
+\input{test2e}
+
+
+\START
+
+\currentstate{at kernel state}
+
+\OMIT
+\documentclass{article}
+\TIMO
+
+\currentstate{after class}
+
+
+\OMIT
+\begin{document}
+\TIMO
+
+\currentstate{after begin document}
+
+\renewcommand\bfdefault{sb}
+\renewcommand\mddefault{b}
+
+
+\currentstate{after rmdefault -> sb + mddefault -> b}
+
+\bfseries
+
+\currentstate{after \string\bfseries}
+ 
+\mdseries
+
+\currentstate{after \string\mdseries}
+ 
+\END
diff --git a/base/testfiles/github-0306a.tlg b/base/testfiles/github-0306a.tlg
new file mode 100644
index 00000000..1aaedecf
--- /dev/null
+++ b/base/testfiles/github-0306a.tlg
@@ -0,0 +1,106 @@
+This is a generated file for the LaTeX2e validation system.
+Don't change this file in any respect.
+==== We are at kernel state =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after class =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after begin document =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = m 
+    \bfdef at ult = b 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after rmdefault -> sb + mddefault -> b =====
+    \mddefault = b 
+    \bfdefault = sb 
+------
+    \mddef at ult = m 
+    \bfdef at ult = b 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+LaTeX Font Warning: Font shape `OT1/cmr/sb/n' undefined
+(Font)              using `OT1/cmr/b/n' instead on input line ....
+==== We are after \bfseries =====
+    \mddefault = b 
+    \bfdefault = sb 
+------
+    \mddef at ult = b 
+    \bfdef at ult = sb 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = sb 
+    \mdseries at sf = m 
+    \bfseries at sf = sb 
+    \mdseries at tt = m 
+    \bfseries at tt = sb 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after \mdseries =====
+    \mddefault = b 
+    \bfdefault = sb 
+------
+    \mddef at ult = b 
+    \bfdef at ult = sb 
+------
+    \mdseries at rm = b 
+    \bfseries at rm = sb 
+    \mdseries at sf = b 
+    \bfseries at sf = sb 
+    \mdseries at tt = b 
+    \bfseries at tt = sb 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
diff --git a/base/testfiles/github-0306b.lvt b/base/testfiles/github-0306b.lvt
new file mode 100644
index 00000000..8688f9d4
--- /dev/null
+++ b/base/testfiles/github-0306b.lvt
@@ -0,0 +1,61 @@
+% \bfdefault / \mddefault change before begin document 
+
+
+\makeatletter
+\def\showme#1{\typeout{\@spaces\string#1 = \csname \expandafter\@gobble\string#1\endcsname\space}}
+\def\currentstate#1{%
+ \typeout{==== We are #1 =====}%
+  \showme\mddefault
+  \showme\bfdefault
+ \typeout{------}%
+  \showme\mddef at ult
+  \showme\bfdef at ult
+ \typeout{------}%
+  \showme\mdseries at rm
+  \showme\bfseries at rm
+  \showme\mdseries at sf
+  \showme\bfseries at sf
+  \showme\mdseries at tt
+  \showme\bfseries at tt
+ \typeout{------}%
+  \showme\bfseries at rm@kernel
+  \showme\bfseries at sf@kernel
+  \showme\bfseries at tt@kernel
+ \typeout{}%
+  }
+\makeatother
+
+\input{test2e}
+
+
+\START
+
+\currentstate{at kernel state}
+
+\OMIT
+\documentclass{article}
+\TIMO
+
+\currentstate{after class}
+
+\renewcommand\bfdefault{sb}
+\renewcommand\mddefault{b}
+
+\currentstate{after rmdefault -> sb + mddefault -> b}
+
+\OMIT
+\begin{document}
+\TIMO
+
+\currentstate{after begin document}
+
+
+\bfseries
+
+\currentstate{after \string\bfseries}
+ 
+\mdseries
+
+\currentstate{after \string\mdseries}
+ 
+\END
diff --git a/base/testfiles/github-0306b.tlg b/base/testfiles/github-0306b.tlg
new file mode 100644
index 00000000..f4a384ce
--- /dev/null
+++ b/base/testfiles/github-0306b.tlg
@@ -0,0 +1,106 @@
+This is a generated file for the LaTeX2e validation system.
+Don't change this file in any respect.
+==== We are at kernel state =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after class =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after rmdefault -> sb + mddefault -> b =====
+    \mddefault = b 
+    \bfdefault = sb 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after begin document =====
+    \mddefault = b 
+    \bfdefault = sb 
+------
+    \mddef at ult = b 
+    \bfdef at ult = sb 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+LaTeX Font Warning: Font shape `OT1/cmr/sb/n' undefined
+(Font)              using `OT1/cmr/b/n' instead on input line ....
+==== We are after \bfseries =====
+    \mddefault = b 
+    \bfdefault = sb 
+------
+    \mddef at ult = b 
+    \bfdef at ult = sb 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = sb 
+    \mdseries at sf = m 
+    \bfseries at sf = sb 
+    \mdseries at tt = m 
+    \bfseries at tt = sb 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after \mdseries =====
+    \mddefault = b 
+    \bfdefault = sb 
+------
+    \mddef at ult = b 
+    \bfdef at ult = sb 
+------
+    \mdseries at rm = b 
+    \bfseries at rm = sb 
+    \mdseries at sf = b 
+    \bfseries at sf = sb 
+    \mdseries at tt = b 
+    \bfseries at tt = sb 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
diff --git a/base/testfiles/github-0306c.lvt b/base/testfiles/github-0306c.lvt
new file mode 100644
index 00000000..2530aa40
--- /dev/null
+++ b/base/testfiles/github-0306c.lvt
@@ -0,0 +1,62 @@
+% \DeclareFontSeriesDefault{bf}{..} change before begin document 
+
+
+\makeatletter
+\def\showme#1{\typeout{\@spaces\string#1 = \csname \expandafter\@gobble\string#1\endcsname\space}}
+\def\currentstate#1{%
+ \typeout{==== We are #1 =====}%
+  \showme\mddefault
+  \showme\bfdefault
+ \typeout{------}%
+  \showme\mddef at ult
+  \showme\bfdef at ult
+ \typeout{------}%
+  \showme\mdseries at rm
+  \showme\bfseries at rm
+  \showme\mdseries at sf
+  \showme\bfseries at sf
+  \showme\mdseries at tt
+  \showme\bfseries at tt
+ \typeout{------}%
+  \showme\bfseries at rm@kernel
+  \showme\bfseries at sf@kernel
+  \showme\bfseries at tt@kernel
+ \typeout{}%
+  }
+\makeatother
+
+\input{test2e}
+
+
+\START
+
+\currentstate{at kernel state}
+
+\OMIT
+\documentclass{article}
+\TIMO
+
+\currentstate{after class}
+
+\DeclareFontSeriesDefault{bf}{sb}
+\DeclareFontSeriesDefault{md}{b}
+
+
+\currentstate{after rmdefault -> sb + mddefault -> b}
+
+\OMIT
+\begin{document}
+\TIMO
+
+\currentstate{after begin document}
+
+
+\bfseries
+
+\currentstate{after \string\bfseries}
+ 
+\mdseries
+
+\currentstate{after \string\mdseries}
+ 
+\END
diff --git a/base/testfiles/github-0306c.tlg b/base/testfiles/github-0306c.tlg
new file mode 100644
index 00000000..58a693ff
--- /dev/null
+++ b/base/testfiles/github-0306c.tlg
@@ -0,0 +1,104 @@
+This is a generated file for the LaTeX2e validation system.
+Don't change this file in any respect.
+==== We are at kernel state =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after class =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after rmdefault -> sb + mddefault -> b =====
+    \mddefault = b 
+    \bfdefault = sb 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after begin document =====
+    \mddefault = b 
+    \bfdefault = sb 
+------
+    \mddef at ult = b 
+    \bfdef at ult = sb 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after \bfseries =====
+    \mddefault = b 
+    \bfdefault = sb 
+------
+    \mddef at ult = b 
+    \bfdef at ult = sb 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after \mdseries =====
+    \mddefault = b 
+    \bfdefault = sb 
+------
+    \mddef at ult = b 
+    \bfdef at ult = sb 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
diff --git a/base/testfiles/github-0306d.lvt b/base/testfiles/github-0306d.lvt
new file mode 100644
index 00000000..1335d8ed
--- /dev/null
+++ b/base/testfiles/github-0306d.lvt
@@ -0,0 +1,62 @@
+% \DeclareFontSeriesDefault[..]{bf}{..} change before begin document 
+
+
+\makeatletter
+\def\showme#1{\typeout{\@spaces\string#1 = \csname \expandafter\@gobble\string#1\endcsname\space}}
+\def\currentstate#1{%
+ \typeout{==== We are #1 =====}%
+  \showme\mddefault
+  \showme\bfdefault
+ \typeout{------}%
+  \showme\mddef at ult
+  \showme\bfdef at ult
+ \typeout{------}%
+  \showme\mdseries at rm
+  \showme\bfseries at rm
+  \showme\mdseries at sf
+  \showme\bfseries at sf
+  \showme\mdseries at tt
+  \showme\bfseries at tt
+ \typeout{------}%
+  \showme\bfseries at rm@kernel
+  \showme\bfseries at sf@kernel
+  \showme\bfseries at tt@kernel
+ \typeout{}%
+  }
+\makeatother
+
+\input{test2e}
+
+
+\START
+
+\currentstate{at kernel state}
+
+\OMIT
+\documentclass{article}
+\TIMO
+
+\currentstate{after class}
+
+\DeclareFontSeriesDefault[rm]{bf}{sb}
+\DeclareFontSeriesDefault[sf]{md}{b}
+
+
+\currentstate{after rmdefault -> sb + mddefault -> b}
+
+\OMIT
+\begin{document}
+\TIMO
+
+\currentstate{after begin document}
+
+
+\bfseries
+
+\currentstate{after \string\bfseries}
+ 
+\mdseries
+
+\currentstate{after \string\mdseries}
+ 
+\END
diff --git a/base/testfiles/github-0306d.tlg b/base/testfiles/github-0306d.tlg
new file mode 100644
index 00000000..69d3d10e
--- /dev/null
+++ b/base/testfiles/github-0306d.tlg
@@ -0,0 +1,106 @@
+This is a generated file for the LaTeX2e validation system.
+Don't change this file in any respect.
+==== We are at kernel state =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after class =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after rmdefault -> sb + mddefault -> b =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = sb 
+    \mdseries at sf = b 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = \bfseries at rm@kernel  
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after begin document =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = m 
+    \bfdef at ult = b 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = sb 
+    \mdseries at sf = b 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = \bfseries at rm@kernel  
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+LaTeX Font Warning: Font shape `OT1/cmr/sb/n' undefined
+(Font)              using `OT1/cmr/b/n' instead on input line ....
+==== We are after \bfseries =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = m 
+    \bfdef at ult = b 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = sb 
+    \mdseries at sf = b 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = \bfseries at rm@kernel  
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after \mdseries =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = m 
+    \bfdef at ult = b 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = sb 
+    \mdseries at sf = b 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = \bfseries at rm@kernel  
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
diff --git a/base/testfiles/github-0306e.lvt b/base/testfiles/github-0306e.lvt
new file mode 100644
index 00000000..6f7f7b86
--- /dev/null
+++ b/base/testfiles/github-0306e.lvt
@@ -0,0 +1,65 @@
+% \bfdefault changed to itself / \mddefault with \def not renewcommand 
+
+
+\makeatletter
+\def\showme#1{\typeout{\@spaces\string#1 = \csname \expandafter\@gobble\string#1\endcsname\space}}
+\def\currentstate#1{%
+ \typeout{==== We are #1 =====}%
+  \showme\mddefault
+  \showme\bfdefault
+ \typeout{------}%
+  \showme\mddef at ult
+  \showme\bfdef at ult
+ \typeout{------}%
+  \showme\mdseries at rm
+  \showme\bfseries at rm
+  \showme\mdseries at sf
+  \showme\bfseries at sf
+  \showme\mdseries at tt
+  \showme\bfseries at tt
+ \typeout{------}%
+  \showme\bfseries at rm@kernel
+  \showme\bfseries at sf@kernel
+  \showme\bfseries at tt@kernel
+ \typeout{}%
+  }
+\makeatother
+
+\input{test2e}
+
+
+\START
+
+\currentstate{at kernel state}
+
+\OMIT
+\documentclass{article}
+\TIMO
+
+\currentstate{after class}
+
+\renewcommand\bfdefault{b}  % change to itself (does it reset the @rm/@sf/@tt defaults)?
+
+\currentstate{after bfdefault to itself}
+
+
+\OMIT
+\begin{document}
+\TIMO
+
+\currentstate{after begin document}
+
+\def\mddefault{sb}
+
+
+\currentstate{after mddefault changed with \noexpand\def to sb}
+
+\bfseries
+
+\currentstate{after \string\bfseries}
+ 
+\mdseries
+
+\currentstate{after \string\mdseries}
+ 
+\END
diff --git a/base/testfiles/github-0306e.tlg b/base/testfiles/github-0306e.tlg
new file mode 100644
index 00000000..ae96a513
--- /dev/null
+++ b/base/testfiles/github-0306e.tlg
@@ -0,0 +1,123 @@
+This is a generated file for the LaTeX2e validation system.
+Don't change this file in any respect.
+==== We are at kernel state =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after class =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after bfdefault to itself =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = \mddef at ult  
+    \bfdef at ult = \bfdef at ult  
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after begin document =====
+    \mddefault = m 
+    \bfdefault = b 
+------
+    \mddef at ult = m 
+    \bfdef at ult = b 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after mddefault changed with \def to sb =====
+    \mddefault = sb 
+    \bfdefault = b 
+------
+    \mddef at ult = m 
+    \bfdef at ult = b 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = bx 
+    \mdseries at sf = m 
+    \bfseries at sf = bx 
+    \mdseries at tt = m 
+    \bfseries at tt = bx 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+==== We are after \bfseries =====
+    \mddefault = sb 
+    \bfdefault = b 
+------
+    \mddef at ult = sb 
+    \bfdef at ult = b 
+------
+    \mdseries at rm = m 
+    \bfseries at rm = b 
+    \mdseries at sf = m 
+    \bfseries at sf = b 
+    \mdseries at tt = m 
+    \bfseries at tt = b 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 
+LaTeX Font Warning: Font shape `OT1/cmr/sb/n' undefined
+(Font)              using `OT1/cmr/b/n' instead on input line ....
+==== We are after \mdseries =====
+    \mddefault = sb 
+    \bfdefault = b 
+------
+    \mddef at ult = sb 
+    \bfdef at ult = b 
+------
+    \mdseries at rm = sb 
+    \bfseries at rm = b 
+    \mdseries at sf = sb 
+    \bfseries at sf = b 
+    \mdseries at tt = sb 
+    \bfseries at tt = b 
+------
+    \bfseries at rm@kernel = bx 
+    \bfseries at sf@kernel = bx 
+    \bfseries at tt@kernel = bx 





More information about the latex3-commits mailing list.