Skip to content

Commit

Permalink
plfonts.dtx: use hooks for \bfseries, \mdseries (latex3/latex2e#306)
Browse files Browse the repository at this point in the history
  • Loading branch information
aminophen committed Apr 7, 2020
1 parent 038818d commit 957d587
Show file tree
Hide file tree
Showing 4 changed files with 181 additions and 83 deletions.
61 changes: 41 additions & 20 deletions platexrelease.sty
Original file line number Diff line number Diff line change
Expand Up @@ -1296,39 +1296,60 @@ of this package available from CTAN}
\edef\kanjidef@ult{\kanjifamilydefault}%
}
\fi
\ifx\bfseries@rm\@undefined\else % 2020-02-02
\DeclareRobustCommand\bfseries{%
\not@math@alphabet\bfseries\mathbf
\expand@font@defaults
% changed \fontseries -> \romanseries
\ifx\f@family\rmdef@ult \romanseries\bfseries@rm
\else\ifx\f@family\sfdef@ult \romanseries\bfseries@sf
\else\ifx\f@family\ttdef@ult \romanseries\bfseries@tt
\else \romanseries\bfdefault
\fi\fi\fi
\ifx\bfseries@rm\@undefined % old
\let\pltx@fontseries@saved\@undefined
\let\pltx@patch@bfseries\@undefined
\let\pltx@patch@mdseries\@undefined
\else % 2020-02-02
\let\pltx@fontseries@saved\fontseries
\def\pltx@patch@bfseries\not@math@alphabet#1#2#3\selectfont{%
\long\expandafter\def\csname bfseries \endcsname{%
\not@math@alphabet#1#2% should be \bfseries\mathbf
% \fontseries of pLaTeX tries to change both Latin and Japanese;
% here we want only Latin, so use \romanseries
\let\fontseries\romanseries
#3% contains \fontseries and \@setbfseriesdefaultshook
\let\fontseries\pltx@fontseries@saved % recover
% changed \fontseries -> \kanjiseries
\ifx\k@family\mcdef@ult \kanjiseries\bfseries@mc
\else\ifx\k@family\gtdef@ult \kanjiseries\bfseries@gt
\else \kanjiseries\bfdefault
\fi\fi
\selectfont
\selectfont
}%
}
\DeclareRobustCommand\mdseries{%
\not@math@alphabet\mdseries\relax
\expand@font@defaults
% changed \fontseries -> \romanseries
\ifx\f@family\rmdef@ult \romanseries\mdseries@rm
\else\ifx\f@family\sfdef@ult \romanseries\mdseries@sf
\else\ifx\f@family\ttdef@ult \romanseries\mdseries@tt
\else \romanseries\mddefault
\fi\fi\fi
\ifx\@setbfseriesdefaultshook\@undefined\else
\g@addto@macro\@setbfseriesdefaultshook{%
\let\bfseries@mc\bfdef@ult
\let\bfseries@gt\bfdef@ult
}
\fi
\expandafter\expandafter\expandafter
\pltx@patch@bfseries\csname bfseries \endcsname
\def\pltx@patch@mdseries\not@math@alphabet#1#2#3\selectfont{%
\long\expandafter\def\csname mdseries \endcsname{%
\not@math@alphabet#1#2% should be \mdseries\relax
% \fontseries of pLaTeX tries to change both Latin and Japanese;
% here we want only Latin, so use \romanseries
\let\fontseries\romanseries
#3% contains \fontseries and \@setmdseriesdefaultshook
\let\fontseries\pltx@fontseries@saved % recover
% changed \fontseries -> \kanjiseries
\ifx\k@family\mcdef@ult \kanjiseries\mdseries@mc
\else\ifx\k@family\gtdef@ult \kanjiseries\mdseries@gt
\else \kanjiseries\mddefault
\fi\fi
\selectfont
}%
}
\ifx\@setmdseriesdefaultshook\@undefined\else
\g@addto@macro\@setmdseriesdefaultshook{%
\let\mdseries@mc\mddef@ult
\let\mdseries@gt\mddef@ult
}
\fi
\expandafter\expandafter\expandafter
\pltx@patch@mdseries\csname mdseries \endcsname
\fi
\ifx\prepare@family@series@update\@undefined % old
\let\prepare@family@series@update@kanji\@undefined
Expand Down
63 changes: 42 additions & 21 deletions plcore.ltx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
\def\pfmtname{pLaTeX2e}
\def\pfmtversion
{2020-04-12}
\def\ppatch@level{-4}
\def\ppatch@level{-5}
\edef\platexBANNER{\noexpand\platexNILa
\the\everyjob % LaTeX banner and delayed codes
\noexpand\platexNILb}
Expand Down Expand Up @@ -1018,39 +1018,60 @@
\edef\kanjidef@ult{\kanjifamilydefault}%
}
\fi
\ifx\bfseries@rm\@undefined\else % 2020-02-02
\DeclareRobustCommand\bfseries{%
\not@math@alphabet\bfseries\mathbf
\expand@font@defaults
% changed \fontseries -> \romanseries
\ifx\f@family\rmdef@ult \romanseries\bfseries@rm
\else\ifx\f@family\sfdef@ult \romanseries\bfseries@sf
\else\ifx\f@family\ttdef@ult \romanseries\bfseries@tt
\else \romanseries\bfdefault
\fi\fi\fi
\ifx\bfseries@rm\@undefined % old
\let\pltx@fontseries@saved\@undefined
\let\pltx@patch@bfseries\@undefined
\let\pltx@patch@mdseries\@undefined
\else % 2020-02-02
\let\pltx@fontseries@saved\fontseries
\def\pltx@patch@bfseries\not@math@alphabet#1#2#3\selectfont{%
\long\expandafter\def\csname bfseries \endcsname{%
\not@math@alphabet#1#2% should be \bfseries\mathbf
% \fontseries of pLaTeX tries to change both Latin and Japanese;
% here we want only Latin, so use \romanseries
\let\fontseries\romanseries
#3% contains \fontseries and \@setbfseriesdefaultshook
\let\fontseries\pltx@fontseries@saved % recover
% changed \fontseries -> \kanjiseries
\ifx\k@family\mcdef@ult \kanjiseries\bfseries@mc
\else\ifx\k@family\gtdef@ult \kanjiseries\bfseries@gt
\else \kanjiseries\bfdefault
\fi\fi
\selectfont
\selectfont
}%
}
\DeclareRobustCommand\mdseries{%
\not@math@alphabet\mdseries\relax
\expand@font@defaults
% changed \fontseries -> \romanseries
\ifx\f@family\rmdef@ult \romanseries\mdseries@rm
\else\ifx\f@family\sfdef@ult \romanseries\mdseries@sf
\else\ifx\f@family\ttdef@ult \romanseries\mdseries@tt
\else \romanseries\mddefault
\fi\fi\fi
\ifx\@setbfseriesdefaultshook\@undefined\else
\g@addto@macro\@setbfseriesdefaultshook{%
\let\bfseries@mc\bfdef@ult
\let\bfseries@gt\bfdef@ult
}
\fi
\expandafter\expandafter\expandafter
\pltx@patch@bfseries\csname bfseries \endcsname
\def\pltx@patch@mdseries\not@math@alphabet#1#2#3\selectfont{%
\long\expandafter\def\csname mdseries \endcsname{%
\not@math@alphabet#1#2% should be \mdseries\relax
% \fontseries of pLaTeX tries to change both Latin and Japanese;
% here we want only Latin, so use \romanseries
\let\fontseries\romanseries
#3% contains \fontseries and \@setmdseriesdefaultshook
\let\fontseries\pltx@fontseries@saved % recover
% changed \fontseries -> \kanjiseries
\ifx\k@family\mcdef@ult \kanjiseries\mdseries@mc
\else\ifx\k@family\gtdef@ult \kanjiseries\mdseries@gt
\else \kanjiseries\mddefault
\fi\fi
\selectfont
}%
}
\ifx\@setmdseriesdefaultshook\@undefined\else
\g@addto@macro\@setmdseriesdefaultshook{%
\let\mdseries@mc\mddef@ult
\let\mdseries@gt\mddef@ult
}
\fi
\expandafter\expandafter\expandafter
\pltx@patch@mdseries\csname mdseries \endcsname
\fi
\ifx\prepare@family@series@update\@undefined % old
\let\prepare@family@series@update@kanji\@undefined
Expand Down
138 changes: 97 additions & 41 deletions plfonts.dtx
Original file line number Diff line number Diff line change
Expand Up @@ -157,13 +157,16 @@
% \changes{v1.7e}{2020/03/26}{$B=D2#%(%s%3!<%G%#%s%0$N%;%C%H2=3NG'(B}
% \changes{v1.7e}{2020/03/26}{\cs{wrong@fontshape}$B$NOBJ8BP1~(B}
% \changes{v1.7e}{2020/03/26}{\cs{default@k@...}$B$r;HMQ(B}
% \changes{v1.7f}{2020/04/07}{Support legacy use of \cs{bfdefault}
% and \cs{mddefault}, use \cs{@setYYseriesdefaultshook}
% (sync with ltfssini.dtx 2020/03/19 v3.1k and 2020/04/06 v3.1m)}
% \fi
%
% \iffalse
%<*driver>
\NeedsTeXFormat{pLaTeX2e}
% \fi
\ProvidesFile{plfonts.dtx}[2020/03/26 v1.7e pLaTeX New Font Selection Scheme]
\ProvidesFile{plfonts.dtx}[2020/04/07 v1.7f pLaTeX New Font Selection Scheme]
% \iffalse
\documentclass{jltxdoc}
\GetFileInfo{plfonts.dtx}
Expand Down Expand Up @@ -3053,24 +3056,22 @@
%
% \begin{macro}{\expand@font@defaults}
% $B%U%!%_%j$N%G%U%)%k%H$r40A4E83+$7$^$9!#(B
% $B$^$:!"%*%j%8%J%k$N(B\LaTeX{}$B$NDj5A!J(Bltfssini.dtx 2020/02/25 v3.1j$B0J9_!K$r(B
% $B$^$:!"%*%j%8%J%k$N(B\LaTeX{}$B$NDj5A!J(Bltfssini.dtx 2020/04/06 v3.1m$B0J9_!K$r(B
% $B:\$;$F$*$-$^$9!#(B
% \begin{macrocode}
%\def\expand@font@defaults{%
% \edef\rmdef@ult{\rmdefault}%
% \edef\sfdef@ult{\sfdefault}%
% \edef\ttdef@ult{\ttdefault}%
%x--- for LaTeX2e 2020-02-02 patch level 5
% \edef\bfdef@ult{\bfdefault}%
% \edef\mddef@ult{\mddefault}%
%x--- for LaTeX2e develop
% \series@maybe@drop@one@m\bfdefault\bfdef@ult
% \series@maybe@drop@one@m\mddefault\mddef@ult
%x--- for LaTeX2e end
% \series@maybe@drop@one@m\bfdefault\bfdef@ult % !! changed 2020/02/25 v3.1j
% \series@maybe@drop@one@m\mddefault\mddef@ult % !! changed 2020/02/25 v3.1j
% \edef\famdef@ult{\familydefault}%
% \@expandfontdefaultshook % !! added 2020/04/06 v3.1m
%}
% \end{macrocode}
% p\LaTeX{}$B$G$O!"0J2<$N%3!<%I$rKvHx$KDI2C$7$^$9!#(B
% ^^A ltfssini.dtx 2020/04/06 v3.1m $B$K4p$E$1$P(B |\@expandfontdefaultshook| $B$r(B
% ^^A $B;H$&$3$H$b$G$-$k$,!"$H$j$"$($:(B |\g@addto@macro| $B$GKvHxDI2C$GLdBj$J$$!#(B
% \begin{macrocode}
\ifx\expand@font@defaults\@undefined\else % 2020-02-02
\g@addto@macro\expand@font@defaults{%
Expand All @@ -3086,56 +3087,111 @@
% \begin{macro}{\bfseries}
% \begin{macro}{\mdseries}
% $B%U%!%_%j$4$H$N@_DjCM$r;2>H$7$^$9!#(B
% $B$^$:!"%*%j%8%J%k$N(B\LaTeX{}$B$NDj5A!J(Bltfssini.dtx 2020/04/06 v3.1m$B0J9_!K$r(B
% $B:\$;$F$*$-$^$9!#(B
% \begin{macrocode}
%\DeclareRobustCommand\bfseries{%
% \not@math@alphabet\bfseries\mathbf
% \expand@font@defaults
% \ifx\bfdefault\bfdefault@previous\else
% \expandafter\def\expandafter\bfdefault
% \expandafter{\bfdefault\@empty}%
% \let\bfseries@previous\bfdefault
% \let\bfseries@rm\bfdef@ult
% \let\bfseries@sf\bfdef@ult
% \let\bfseries@tt\bfdef@ult
% \@setbfseriesdefaultshook % !! added 2020/04/06 v3.1m
% \fi
% \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
% \else \fontseries\bfdefault
% \fi\fi\fi
% \selectfont
%}
%\DeclareRobustCommand\mdseries{%
% \not@math@alphabet\mdseries\relax
% \expand@font@defaults
% \ifx\mddefault\mddefault@previous\else
% \expandafter\def\expandafter\mddefault
% \expandafter{\mddefault\@empty}%
% \let\mdseries@previous\mddefault
% \let\mdseries@rm\mddef@ult
% \let\mdseries@sf\mddef@ult
% \let\mdseries@tt\mddef@ult
% \@setmdseriesdefaultshook % !! added 2020/04/06 v3.1m
% \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
% \selectfont
%}
% \end{macrocode}
% $B0J2<$G(Bp\LaTeX{}$BMQ$K:FDj5A$7$^$9!#(B
% \changes{v1.6y}{2020/02/24}{Make the \cs{ifx} selection outside of
% \cs{fontseries} argument so that it is not done several times
% (sync with ltfssini.dtx 2020/02/18 v3.1i)}
% \changes{v1.7f}{2020/04/07}{Support legacy use of \cs{bfdefault}
% and \cs{mddefault}, use \cs{@setYYseriesdefaultshook}
% (sync with ltfssini.dtx 2020/03/19 v3.1k and 2020/04/06 v3.1m)}
% \begin{macrocode}
\ifx\bfseries@rm\@undefined\else % 2020-02-02
\DeclareRobustCommand\bfseries{%
\not@math@alphabet\bfseries\mathbf
\expand@font@defaults
% changed \fontseries -> \romanseries
\ifx\f@family\rmdef@ult \romanseries\bfseries@rm
\else\ifx\f@family\sfdef@ult \romanseries\bfseries@sf
\else\ifx\f@family\ttdef@ult \romanseries\bfseries@tt
\else \romanseries\bfdefault
\fi\fi\fi
% \end{macrocode}
% $B$3$3$+$i$,(Bp\LaTeX{}$B$K$h$kDI2C%3!<%I$G$9!#(B
% \begin{macrocode}
\ifx\bfseries@rm\@undefined % old
\let\pltx@fontseries@saved\@undefined
\let\pltx@patch@bfseries\@undefined
\let\pltx@patch@mdseries\@undefined
\else % 2020-02-02
\let\pltx@fontseries@saved\fontseries
\def\pltx@patch@bfseries\not@math@alphabet#1#2#3\selectfont{%
\long\expandafter\def\csname bfseries \endcsname{%
\not@math@alphabet#1#2% should be \bfseries\mathbf
% \fontseries of pLaTeX tries to change both Latin and Japanese;
% here we want only Latin, so use \romanseries
\let\fontseries\romanseries
#3% contains \fontseries and \@setbfseriesdefaultshook
\let\fontseries\pltx@fontseries@saved % recover
% changed \fontseries -> \kanjiseries
\ifx\k@family\mcdef@ult \kanjiseries\bfseries@mc
\else\ifx\k@family\gtdef@ult \kanjiseries\bfseries@gt
\else \kanjiseries\bfdefault
\fi\fi
% \end{macrocode}
% $B$3$3$^$G!#(B
% \begin{macrocode}
\selectfont
\selectfont
}%
}
\DeclareRobustCommand\mdseries{%
\not@math@alphabet\mdseries\relax
\expand@font@defaults
% changed \fontseries -> \romanseries
\ifx\f@family\rmdef@ult \romanseries\mdseries@rm
\else\ifx\f@family\sfdef@ult \romanseries\mdseries@sf
\else\ifx\f@family\ttdef@ult \romanseries\mdseries@tt
\else \romanseries\mddefault
\fi\fi\fi
% \end{macrocode}
% $B$3$3$+$i$,(Bp\LaTeX{}$B$K$h$kDI2C%3!<%I$G$9!#(B
% \begin{macrocode}
\ifx\@setbfseriesdefaultshook\@undefined\else
\g@addto@macro\@setbfseriesdefaultshook{%
\let\bfseries@mc\bfdef@ult
\let\bfseries@gt\bfdef@ult
}
\fi
\expandafter\expandafter\expandafter
\pltx@patch@bfseries\csname bfseries \endcsname
\def\pltx@patch@mdseries\not@math@alphabet#1#2#3\selectfont{%
\long\expandafter\def\csname mdseries \endcsname{%
\not@math@alphabet#1#2% should be \mdseries\relax
% \fontseries of pLaTeX tries to change both Latin and Japanese;
% here we want only Latin, so use \romanseries
\let\fontseries\romanseries
#3% contains \fontseries and \@setmdseriesdefaultshook
\let\fontseries\pltx@fontseries@saved % recover
% changed \fontseries -> \kanjiseries
\ifx\k@family\mcdef@ult \kanjiseries\mdseries@mc
\else\ifx\k@family\gtdef@ult \kanjiseries\mdseries@gt
\else \kanjiseries\mddefault
\fi\fi
% \end{macrocode}
% $B$3$3$^$G!#(B
% \begin{macrocode}
\selectfont
}%
}
\ifx\@setmdseriesdefaultshook\@undefined\else
\g@addto@macro\@setmdseriesdefaultshook{%
\let\mdseries@mc\mddef@ult
\let\mdseries@gt\mddef@ult
}
\fi
\expandafter\expandafter\expandafter
\pltx@patch@mdseries\csname mdseries \endcsname
\fi
% \end{macrocode}
% \end{macro}
% \end{macro}
Expand Down
2 changes: 1 addition & 1 deletion plvers.dtx
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@
{2020-04-12}
%</plcore|platexrelease>
%<*plcore>
\def\ppatch@level{-4}
\def\ppatch@level{-5}
%</plcore>
% \end{macrocode}
% \end{macro}
Expand Down

0 comments on commit 957d587

Please sign in to comment.