[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.