% \iffalse meta-comment % % Copyright (C) 2019-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % % This file is part of the LaTeX base system. % ------------------------------------------- % % It may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c % of this license or (at your option) any later version. % The latest version of this license is in % https://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2008 or later. % % This file has the LPPL maintenance status "maintained". % % The list of all files belonging to the LaTeX base distribution is % given in the file `manifest.txt'. See also `legal.txt' for additional % information. % % The list of derived (unpacked) files belonging to the distribution % and covered by LPPL is defined by the unpacking scripts (with % extension .ins) which are part of the distribution. % % \fi % \iffalse %%% From File: ltfssaxes.dtx %% Copyright (C) 2019-2020 Frank Mittelbach (initial implementation) % %<*driver> % \fi % % \ProvidesFile{ltfssaxes.dtx} [2024/12/16 v1.0k LaTeX Kernel (NFSS Axes handing)] % \iffalse \documentclass{ltxdoc} \begin{document} \DocInput{ltfssaxes.dtx} \end{document} % % \fi % % % % % \GetFileInfo{ltfssaxes.dtx} % \title{A new font selection scheme for \TeX{} macro packages\\ % (Axes Handling)\thanks % {This file has version number % \fileversion\ dated \filedate}} % % \author{Frank Mittelbach} % % \MaintainedByLaTeXTeam{latex} % \maketitle % % This file contains the implementation for handling extra axes % by splitting the series and the shape values into sub-categories. % See other parts of the \LaTeX\ distribution, or \emph{The % \LaTeX\ Companion} for higher level documentation of the % \LaTeX\ Font Selection Scheme. % % % % \MaybeStop{} % % \changes{v1.0h}{2020/12/04}{Reorganized the rollback data} % % \begin{macrocode} %<2ekernel>\message{NFSS axes,} % \end{macrocode} % % Everything in the this file got introduced 2020/02/02, so we use large rollback % chunks, only interrupted if necessary. % \begin{macrocode} %<*2ekernel|latexrelease> % \end{macrocode} % % \begin{macrocode} %\IncludeInRelease{2025/06/01}% % {\DeclareFontSeriesChangeRule}{Series change rules}% % \end{macrocode} % % % % \section{Changing the font series} % % In the original NFSS implementation the series was a single % attribute stored in \cs{f@series} and so one always had to specify % both weight and width together. This meant that it was impossible to % typeset a paragraph in a condensed font and inside have a few words % in bold weight (but still condensed) without doing this manually by % requesting \verb=\fontseries{bc}\selectfont=. % % The new implementation now works differently, by looking at both the % current value of \cs{f@series} and the requested new series; these % are then used to select a new series value. Thus, if the % current series is \texttt{c} and we ask for \texttt{b} we now get % \texttt{bc}. % % This is done by consulting a simple lookup table. This table is % configurable (though most likely that flexibility will seldom if % ever be needed). Adding or changing entries in this table is done % with \cs{DeclareFontSeriesChangeRule}. % % \subsection{The series lookup table} % % % \begin{macro}{\DeclareFontSeriesChangeRule} % The macro \cs{DeclareFontSeriesChangeRule} defines entries in a simple % database (implemented as a set of commands) that define mappings % from the current series and a requested new series to a result series % (and additionally offers an alternative if the desired one is % unavailable): % \begin{itemize} % \item[\texttt{\#1}] current \cs{f@series} % \item[\texttt{\#2}] requested new series % \item[\texttt{\#3}] result (provided this series exists in the given font family) % \item[\texttt{\#4}] alternative result (if \texttt{\#3} does not exist) % \end{itemize} % If an \texttt{.fd} file has its own substitution rules then % \texttt{\#3} exist and thus \texttt{\#4} is not applied. % % If there is no matching database entry, or if neither the result % nor the alternative result exists in this font family, then the requested % new series is used (which then may trigger substitutions later on). % \begin{macrocode} \def\DeclareFontSeriesChangeRule#1#2#3#4{% \@namedef{series@#1@#2}{{#3}{#4}}} % \end{macrocode} % \end{macro} % % \subsection{Mapping rules for series changes} % % The rules set up use explicit series values not \cs{..default} % indirections; my current feeling is that this is in fact better. % % With 9~weight values (from \texttt{ul} to \texttt{ub}) and 9~width values % (from \texttt{uc} to \texttt{ux}), this table is now rather large % (far more than 1000~entries), but, on the other hand, the table % doesn't change and accessing rules is fast when using a table implemented % in this way. % % We could alternatively split the axis and maintain weight and width % separately, but that would take more processing time and would not % allow for setting up explicit exceptions nicely (not sure that this % would ever get used though). % % Design considerations for mapping entries: % \begin{itemize} % \item % % We make \texttt{m} reset both weight and width (as this is % how it always worked). To reset just the width \texttt{?m} is % provided and to reset just the weight \texttt{m?}\ is provided. % % \item % % We support ``\texttt{m}\meta{width}'' and % ``\meta{weight}\texttt{m}'', e.g., \texttt{mec} to mean ``go to % medium weight and extra-condensed width''. At the end of the % process we automatically drop any leftover \texttt{m} in the % series name (unless it is just a single \texttt{m}). % % \item % % If there is no table entry then the requested series is used % unconditionally. This means that we usually do not need entries % where the second argument (the requested series) and the third argument % (the result series) are identical (unless we want to use the fourth % argument to specify an alternative result series). In particular, % this means: % \begin{itemize} % \item % % Any request for \texttt{m} needs no entry, i.e., there are no entries % which have \texttt{m} as the second argument. % % \item % % Any request to set both weight and width (e.g., \texttt{sbx} or % \texttt{ulc}) needs no entry. For that reason, there are no entries % which have a weight+width as second argument (except for cases % involving \texttt{bx}, see below). In particular, this is also true % for cases involving \texttt{m}, e.g., \texttt{bm} (bold medium width) % which automatically gets reduced to \texttt{b}, or \texttt{mc} % (medium weight condensed) which becomes \texttt{c} as a result. % % There is one exception: we do have rules for a request for % \texttt{bx}; this is because the Computer Modern fonts (or related % families like Latin Modern) need \texttt{bx} as their bold series % default (\cs{bfdefault}), % since they only have a \texttt{b} series for a % restricted set of font faces. Many other font families have only % \texttt{b} but no \texttt{bx}, so we have explicit rules % that fall back from \texttt{bx} to \texttt{b}. % \end{itemize} % % \item % % For each combination of a non-\texttt{m} \meta{weight} and a % non-\texttt{m} \meta{width}, there are 19~entries which have % ``\meta{weight}\meta{width}'' as first argument: 8~of them have % the weight values from \texttt{ul} to \texttt{ub} except \texttt{m} as % second argument, another 8~have the width values from \texttt{uc} % to \texttt{ux} except \texttt{m} as second argument, and (further down % in this file) there is one entry which has \texttt{bx} as second % argument and two further entries which have \texttt{m?}\ and % \texttt{?m} as second argument. Rules which have \texttt{m} or a % weight+width (other than \texttt{bx}) as second argument aren't needed % (see above). % % \item % % For each non-\texttt{m} \meta{weight}, there are at least 11~entries % which have ``\meta{weight}'' as first argument: 8~of them have the % width values from \texttt{uc} to \texttt{ux} except \texttt{m} as % second argument, and (further down in this file) there is one entry % which has \texttt{bx} as second argument and two further entries % which have \texttt{m?}\ and \texttt{?m} as second argument. Rules % which have a single weight value as second argument aren't needed % because the second and third arguments would then be identical. In % some cases, there are extra rules which make use of the fourth % argument to specify an alternative result series. % % \item % % Similarily, for each non-\texttt{m} \meta{width}, there are at least % 11~entries which have ``\meta{width}'' as first argument: 8~of them % have the weight values from \texttt{ul} to \texttt{ub} except % \texttt{m} as second argument, and (further down in this file) there % is one entry which has \texttt{bx} as second argument and two % further entries which have \texttt{m?}\ and \texttt{?m} as second % argument. Rules which have a single width value as second argument % aren't needed because the second and third arguments would then be % identical. In some cases, there are extra rules which make use of the % fourth argument to specify an alternative result series. % % \item % % Only a few entries have ``alternative'' values. % % The idea is that you don't want the normal substitution to kick % in because that would reset the shape first and it may be better % to stay with \texttt{b} when a change to \texttt{c} is requested % and \texttt{bc} doesn't exist, than to go to first change the % shape to \texttt{n} and then find that \texttt{bc/n} doesn't % exist either and thus ending up with \texttt{m/n}. % % We mainly do this when \texttt{sb}, \texttt{eb}, or % \texttt{ub} is requested but can't be fulfilled. In that case it % is better to try to stay with some sort of bold rather than % ending up with \texttt{m}. There are some other cases where an % ``alternative'' value is specified; these are explained below in % the appropriate places. % % \end{itemize} % % \changes{1.0k}{2024/12/13}{Minor modifications to a few % \cs{DeclareFontSeriesChangeRule} entries (gh/1396)} % \changes{1.0k}{2024/12/13}{Add numerous \cs{DeclareFontSeriesChangeRule} % entries to support the full range of weights (from \texttt{ul} to % \texttt{ub}) and widths (from \texttt{uc} to \texttt{ux}) (gh/1396)} % \begin{macrocode} \DeclareFontSeriesChangeRule {uluc}{ul} {uluc} {} \DeclareFontSeriesChangeRule {uluc}{el} {eluc} {} \DeclareFontSeriesChangeRule {uluc}{l} {luc} {} \DeclareFontSeriesChangeRule {uluc}{sl} {sluc} {} \DeclareFontSeriesChangeRule {uluc}{sb} {sbuc} {buc} \DeclareFontSeriesChangeRule {uluc}{b} {buc} {} \DeclareFontSeriesChangeRule {uluc}{eb} {ebuc} {buc} \DeclareFontSeriesChangeRule {uluc}{ub} {ubuc} {buc} \DeclareFontSeriesChangeRule {uluc}{uc} {uluc} {} \DeclareFontSeriesChangeRule {uluc}{ec} {ulec} {} \DeclareFontSeriesChangeRule {uluc}{c} {ulc} {} \DeclareFontSeriesChangeRule {uluc}{sc} {ulsc} {} \DeclareFontSeriesChangeRule {uluc}{sx} {ulsx} {} \DeclareFontSeriesChangeRule {uluc}{x} {ulx} {} \DeclareFontSeriesChangeRule {uluc}{ex} {ulex} {} \DeclareFontSeriesChangeRule {uluc}{ux} {ulux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ulec}{ul} {ulec} {} \DeclareFontSeriesChangeRule {ulec}{el} {elec} {} \DeclareFontSeriesChangeRule {ulec}{l} {lec} {} \DeclareFontSeriesChangeRule {ulec}{sl} {slec} {} \DeclareFontSeriesChangeRule {ulec}{sb} {sbec} {bec} \DeclareFontSeriesChangeRule {ulec}{b} {bec} {} \DeclareFontSeriesChangeRule {ulec}{eb} {ebec} {bec} \DeclareFontSeriesChangeRule {ulec}{ub} {ubec} {bec} \DeclareFontSeriesChangeRule {ulec}{uc} {uluc} {} \DeclareFontSeriesChangeRule {ulec}{ec} {ulec} {} \DeclareFontSeriesChangeRule {ulec}{c} {ulc} {} \DeclareFontSeriesChangeRule {ulec}{sc} {ulsc} {} \DeclareFontSeriesChangeRule {ulec}{sx} {ulsx} {} \DeclareFontSeriesChangeRule {ulec}{x} {ulx} {} \DeclareFontSeriesChangeRule {ulec}{ex} {ulex} {} \DeclareFontSeriesChangeRule {ulec}{ux} {ulux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ulc}{ul} {ulc} {} \DeclareFontSeriesChangeRule {ulc}{el} {elc} {} \DeclareFontSeriesChangeRule {ulc}{l} {lc} {} \DeclareFontSeriesChangeRule {ulc}{sl} {slc} {} \DeclareFontSeriesChangeRule {ulc}{sb} {sbc} {bc} \DeclareFontSeriesChangeRule {ulc}{b} {bc} {} \DeclareFontSeriesChangeRule {ulc}{eb} {ebc} {bc} \DeclareFontSeriesChangeRule {ulc}{ub} {ubc} {bc} \DeclareFontSeriesChangeRule {ulc}{uc} {uluc} {} \DeclareFontSeriesChangeRule {ulc}{ec} {ulec} {} \DeclareFontSeriesChangeRule {ulc}{c} {ulc} {} \DeclareFontSeriesChangeRule {ulc}{sc} {ulsc} {} \DeclareFontSeriesChangeRule {ulc}{sx} {ulsx} {} \DeclareFontSeriesChangeRule {ulc}{x} {ulx} {} \DeclareFontSeriesChangeRule {ulc}{ex} {ulex} {} \DeclareFontSeriesChangeRule {ulc}{ux} {ulux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ulsc}{ul} {ulsc} {} \DeclareFontSeriesChangeRule {ulsc}{el} {elsc} {} \DeclareFontSeriesChangeRule {ulsc}{l} {lsc} {} \DeclareFontSeriesChangeRule {ulsc}{sl} {slsc} {} \DeclareFontSeriesChangeRule {ulsc}{sb} {sbsc} {bsc} \DeclareFontSeriesChangeRule {ulsc}{b} {bsc} {} \DeclareFontSeriesChangeRule {ulsc}{eb} {ebsc} {bsc} \DeclareFontSeriesChangeRule {ulsc}{ub} {ubsc} {bsc} \DeclareFontSeriesChangeRule {ulsc}{uc} {uluc} {} \DeclareFontSeriesChangeRule {ulsc}{ec} {ulec} {} \DeclareFontSeriesChangeRule {ulsc}{c} {ulc} {} \DeclareFontSeriesChangeRule {ulsc}{sc} {ulsc} {} \DeclareFontSeriesChangeRule {ulsc}{sx} {ulsx} {} \DeclareFontSeriesChangeRule {ulsc}{x} {ulx} {} \DeclareFontSeriesChangeRule {ulsc}{ex} {ulex} {} \DeclareFontSeriesChangeRule {ulsc}{ux} {ulux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ul}{uc} {uluc} {} \DeclareFontSeriesChangeRule {ul}{ec} {ulec} {} \DeclareFontSeriesChangeRule {ul}{c} {ulc} {} \DeclareFontSeriesChangeRule {ul}{sc} {ulsc} {} \DeclareFontSeriesChangeRule {ul}{sx} {ulsx} {} \DeclareFontSeriesChangeRule {ul}{x} {ulx} {} \DeclareFontSeriesChangeRule {ul}{ex} {ulex} {} \DeclareFontSeriesChangeRule {ul}{ux} {ulux} {} \DeclareFontSeriesChangeRule {ul}{sb} {sb} {b} \DeclareFontSeriesChangeRule {ul}{eb} {eb} {b} \DeclareFontSeriesChangeRule {ul}{ub} {ub} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ulsx}{ul} {ulsx} {} \DeclareFontSeriesChangeRule {ulsx}{el} {elsx} {} \DeclareFontSeriesChangeRule {ulsx}{l} {lsx} {} \DeclareFontSeriesChangeRule {ulsx}{sl} {slsx} {} \DeclareFontSeriesChangeRule {ulsx}{sb} {sbsx} {bsx} \DeclareFontSeriesChangeRule {ulsx}{b} {bsx} {} \DeclareFontSeriesChangeRule {ulsx}{eb} {ebsx} {bsx} \DeclareFontSeriesChangeRule {ulsx}{ub} {ubsx} {bsx} \DeclareFontSeriesChangeRule {ulsx}{uc} {uluc} {} \DeclareFontSeriesChangeRule {ulsx}{ec} {ulec} {} \DeclareFontSeriesChangeRule {ulsx}{c} {ulc} {} \DeclareFontSeriesChangeRule {ulsx}{sc} {ulsc} {} \DeclareFontSeriesChangeRule {ulsx}{sx} {ulsx} {} \DeclareFontSeriesChangeRule {ulsx}{x} {ulx} {} \DeclareFontSeriesChangeRule {ulsx}{ex} {ulex} {} \DeclareFontSeriesChangeRule {ulsx}{ux} {ulux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ulx}{ul} {ulx} {} \DeclareFontSeriesChangeRule {ulx}{el} {elx} {} \DeclareFontSeriesChangeRule {ulx}{l} {lx} {} \DeclareFontSeriesChangeRule {ulx}{sl} {slx} {} \DeclareFontSeriesChangeRule {ulx}{sb} {sbx} {bx} \DeclareFontSeriesChangeRule {ulx}{b} {bx} {} \DeclareFontSeriesChangeRule {ulx}{eb} {ebx} {bx} \DeclareFontSeriesChangeRule {ulx}{ub} {ubx} {bx} \DeclareFontSeriesChangeRule {ulx}{uc} {uluc} {} \DeclareFontSeriesChangeRule {ulx}{ec} {ulec} {} \DeclareFontSeriesChangeRule {ulx}{c} {ulc} {} \DeclareFontSeriesChangeRule {ulx}{sc} {ulsc} {} \DeclareFontSeriesChangeRule {ulx}{sx} {ulsx} {} \DeclareFontSeriesChangeRule {ulx}{x} {ulx} {} \DeclareFontSeriesChangeRule {ulx}{ex} {ulex} {} \DeclareFontSeriesChangeRule {ulx}{ux} {ulux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ulex}{ul} {ulex} {} \DeclareFontSeriesChangeRule {ulex}{el} {elex} {} \DeclareFontSeriesChangeRule {ulex}{l} {lex} {} \DeclareFontSeriesChangeRule {ulex}{sl} {slex} {} \DeclareFontSeriesChangeRule {ulex}{sb} {sbex} {bex} \DeclareFontSeriesChangeRule {ulex}{b} {bex} {} \DeclareFontSeriesChangeRule {ulex}{eb} {ebex} {bex} \DeclareFontSeriesChangeRule {ulex}{ub} {ubex} {bex} \DeclareFontSeriesChangeRule {ulex}{uc} {uluc} {} \DeclareFontSeriesChangeRule {ulex}{ec} {ulec} {} \DeclareFontSeriesChangeRule {ulex}{c} {ulc} {} \DeclareFontSeriesChangeRule {ulex}{sc} {ulsc} {} \DeclareFontSeriesChangeRule {ulex}{sx} {ulsx} {} \DeclareFontSeriesChangeRule {ulex}{x} {ulx} {} \DeclareFontSeriesChangeRule {ulex}{ex} {ulex} {} \DeclareFontSeriesChangeRule {ulex}{ux} {ulux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ulux}{ul} {ulux} {} \DeclareFontSeriesChangeRule {ulux}{el} {elux} {} \DeclareFontSeriesChangeRule {ulux}{l} {lux} {} \DeclareFontSeriesChangeRule {ulux}{sl} {slux} {} \DeclareFontSeriesChangeRule {ulux}{sb} {sbux} {bux} \DeclareFontSeriesChangeRule {ulux}{b} {bux} {} \DeclareFontSeriesChangeRule {ulux}{eb} {ebux} {bux} \DeclareFontSeriesChangeRule {ulux}{ub} {ubux} {bux} \DeclareFontSeriesChangeRule {ulux}{uc} {uluc} {} \DeclareFontSeriesChangeRule {ulux}{ec} {ulec} {} \DeclareFontSeriesChangeRule {ulux}{c} {ulc} {} \DeclareFontSeriesChangeRule {ulux}{sc} {ulsc} {} \DeclareFontSeriesChangeRule {ulux}{sx} {ulsx} {} \DeclareFontSeriesChangeRule {ulux}{x} {ulx} {} \DeclareFontSeriesChangeRule {ulux}{ex} {ulex} {} \DeclareFontSeriesChangeRule {ulux}{ux} {ulux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {eluc}{ul} {uluc} {} \DeclareFontSeriesChangeRule {eluc}{el} {eluc} {} \DeclareFontSeriesChangeRule {eluc}{l} {luc} {} \DeclareFontSeriesChangeRule {eluc}{sl} {sluc} {} \DeclareFontSeriesChangeRule {eluc}{sb} {sbuc} {buc} \DeclareFontSeriesChangeRule {eluc}{b} {buc} {} \DeclareFontSeriesChangeRule {eluc}{eb} {ebuc} {buc} \DeclareFontSeriesChangeRule {eluc}{ub} {ubuc} {buc} \DeclareFontSeriesChangeRule {eluc}{uc} {eluc} {} \DeclareFontSeriesChangeRule {eluc}{ec} {elec} {} \DeclareFontSeriesChangeRule {eluc}{c} {elc} {} \DeclareFontSeriesChangeRule {eluc}{sc} {elsc} {} \DeclareFontSeriesChangeRule {eluc}{sx} {elsx} {} \DeclareFontSeriesChangeRule {eluc}{x} {elx} {} \DeclareFontSeriesChangeRule {eluc}{ex} {elex} {} \DeclareFontSeriesChangeRule {eluc}{ux} {elux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {elec}{ul} {ulec} {} \DeclareFontSeriesChangeRule {elec}{el} {elec} {} \DeclareFontSeriesChangeRule {elec}{l} {lec} {} \DeclareFontSeriesChangeRule {elec}{sl} {slec} {} \DeclareFontSeriesChangeRule {elec}{sb} {sbec} {bec} \DeclareFontSeriesChangeRule {elec}{b} {bec} {} \DeclareFontSeriesChangeRule {elec}{eb} {ebec} {bec} \DeclareFontSeriesChangeRule {elec}{ub} {ubec} {bec} \DeclareFontSeriesChangeRule {elec}{uc} {eluc} {} \DeclareFontSeriesChangeRule {elec}{ec} {elec} {} \DeclareFontSeriesChangeRule {elec}{c} {elc} {} \DeclareFontSeriesChangeRule {elec}{sc} {elsc} {} \DeclareFontSeriesChangeRule {elec}{sx} {elsx} {} \DeclareFontSeriesChangeRule {elec}{x} {elx} {} \DeclareFontSeriesChangeRule {elec}{ex} {elex} {} \DeclareFontSeriesChangeRule {elec}{ux} {elux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {elc}{ul} {ulc} {} \DeclareFontSeriesChangeRule {elc}{el} {elc} {} \DeclareFontSeriesChangeRule {elc}{l} {lc} {} \DeclareFontSeriesChangeRule {elc}{sl} {slc} {} \DeclareFontSeriesChangeRule {elc}{sb} {sbc} {bc} \DeclareFontSeriesChangeRule {elc}{b} {bc} {} \DeclareFontSeriesChangeRule {elc}{eb} {ebc} {bc} \DeclareFontSeriesChangeRule {elc}{ub} {ubc} {bc} \DeclareFontSeriesChangeRule {elc}{uc} {eluc} {} \DeclareFontSeriesChangeRule {elc}{ec} {elec} {} \DeclareFontSeriesChangeRule {elc}{c} {elc} {} \DeclareFontSeriesChangeRule {elc}{sc} {elsc} {} \DeclareFontSeriesChangeRule {elc}{sx} {elsx} {} \DeclareFontSeriesChangeRule {elc}{x} {elx} {} \DeclareFontSeriesChangeRule {elc}{ex} {elex} {} \DeclareFontSeriesChangeRule {elc}{ux} {elux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {elsc}{ul} {ulsc} {} \DeclareFontSeriesChangeRule {elsc}{el} {elsc} {} \DeclareFontSeriesChangeRule {elsc}{l} {lsc} {} \DeclareFontSeriesChangeRule {elsc}{sl} {slsc} {} \DeclareFontSeriesChangeRule {elsc}{sb} {sbsc} {bsc} \DeclareFontSeriesChangeRule {elsc}{b} {bsc} {} \DeclareFontSeriesChangeRule {elsc}{eb} {ebsc} {bsc} \DeclareFontSeriesChangeRule {elsc}{ub} {ubsc} {bsc} \DeclareFontSeriesChangeRule {elsc}{uc} {eluc} {} \DeclareFontSeriesChangeRule {elsc}{ec} {elec} {} \DeclareFontSeriesChangeRule {elsc}{c} {elc} {} \DeclareFontSeriesChangeRule {elsc}{sc} {elsc} {} \DeclareFontSeriesChangeRule {elsc}{sx} {elsx} {} \DeclareFontSeriesChangeRule {elsc}{x} {elx} {} \DeclareFontSeriesChangeRule {elsc}{ex} {elex} {} \DeclareFontSeriesChangeRule {elsc}{ux} {elux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {el}{uc} {eluc} {} \DeclareFontSeriesChangeRule {el}{ec} {elec} {} \DeclareFontSeriesChangeRule {el}{c} {elc} {} \DeclareFontSeriesChangeRule {el}{sc} {elsc} {} \DeclareFontSeriesChangeRule {el}{sx} {elsx} {} \DeclareFontSeriesChangeRule {el}{x} {elx} {} \DeclareFontSeriesChangeRule {el}{ex} {elex} {} \DeclareFontSeriesChangeRule {el}{ux} {elux} {} \DeclareFontSeriesChangeRule {el}{sb} {sb} {b} \DeclareFontSeriesChangeRule {el}{eb} {eb} {b} \DeclareFontSeriesChangeRule {el}{ub} {ub} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {elsx}{ul} {ulsx} {} \DeclareFontSeriesChangeRule {elsx}{el} {elsx} {} \DeclareFontSeriesChangeRule {elsx}{l} {lsx} {} \DeclareFontSeriesChangeRule {elsx}{sl} {slsx} {} \DeclareFontSeriesChangeRule {elsx}{sb} {sbsx} {bsx} \DeclareFontSeriesChangeRule {elsx}{b} {bsx} {} \DeclareFontSeriesChangeRule {elsx}{eb} {ebsx} {bsx} \DeclareFontSeriesChangeRule {elsx}{ub} {ubsx} {bsx} \DeclareFontSeriesChangeRule {elsx}{uc} {eluc} {} \DeclareFontSeriesChangeRule {elsx}{ec} {elec} {} \DeclareFontSeriesChangeRule {elsx}{c} {elc} {} \DeclareFontSeriesChangeRule {elsx}{sc} {elsc} {} \DeclareFontSeriesChangeRule {elsx}{sx} {elsx} {} \DeclareFontSeriesChangeRule {elsx}{x} {elx} {} \DeclareFontSeriesChangeRule {elsx}{ex} {elex} {} \DeclareFontSeriesChangeRule {elsx}{ux} {elux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {elx}{ul} {ulx} {} \DeclareFontSeriesChangeRule {elx}{el} {elx} {} \DeclareFontSeriesChangeRule {elx}{l} {lx} {} \DeclareFontSeriesChangeRule {elx}{sl} {slx} {} \DeclareFontSeriesChangeRule {elx}{sb} {sbx} {bx} \DeclareFontSeriesChangeRule {elx}{b} {bx} {} \DeclareFontSeriesChangeRule {elx}{eb} {ebx} {bx} \DeclareFontSeriesChangeRule {elx}{ub} {ubx} {bx} \DeclareFontSeriesChangeRule {elx}{uc} {eluc} {} \DeclareFontSeriesChangeRule {elx}{ec} {elec} {} \DeclareFontSeriesChangeRule {elx}{c} {elc} {} \DeclareFontSeriesChangeRule {elx}{sc} {elsc} {} \DeclareFontSeriesChangeRule {elx}{sx} {elsx} {} \DeclareFontSeriesChangeRule {elx}{x} {elx} {} \DeclareFontSeriesChangeRule {elx}{ex} {elex} {} \DeclareFontSeriesChangeRule {elx}{ux} {elux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {elex}{ul} {ulex} {} \DeclareFontSeriesChangeRule {elex}{el} {elex} {} \DeclareFontSeriesChangeRule {elex}{l} {lex} {} \DeclareFontSeriesChangeRule {elex}{sl} {slex} {} \DeclareFontSeriesChangeRule {elex}{sb} {sbex} {bex} \DeclareFontSeriesChangeRule {elex}{b} {bex} {} \DeclareFontSeriesChangeRule {elex}{eb} {ebex} {bex} \DeclareFontSeriesChangeRule {elex}{ub} {ubex} {bex} \DeclareFontSeriesChangeRule {elex}{uc} {eluc} {} \DeclareFontSeriesChangeRule {elex}{ec} {elec} {} \DeclareFontSeriesChangeRule {elex}{c} {elc} {} \DeclareFontSeriesChangeRule {elex}{sc} {elsc} {} \DeclareFontSeriesChangeRule {elex}{sx} {elsx} {} \DeclareFontSeriesChangeRule {elex}{x} {elx} {} \DeclareFontSeriesChangeRule {elex}{ex} {elex} {} \DeclareFontSeriesChangeRule {elex}{ux} {elux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {elux}{ul} {ulux} {} \DeclareFontSeriesChangeRule {elux}{el} {elux} {} \DeclareFontSeriesChangeRule {elux}{l} {lux} {} \DeclareFontSeriesChangeRule {elux}{sl} {slux} {} \DeclareFontSeriesChangeRule {elux}{sb} {sbux} {bux} \DeclareFontSeriesChangeRule {elux}{b} {bux} {} \DeclareFontSeriesChangeRule {elux}{eb} {ebux} {bux} \DeclareFontSeriesChangeRule {elux}{ub} {ubux} {bux} \DeclareFontSeriesChangeRule {elux}{uc} {eluc} {} \DeclareFontSeriesChangeRule {elux}{ec} {elec} {} \DeclareFontSeriesChangeRule {elux}{c} {elc} {} \DeclareFontSeriesChangeRule {elux}{sc} {elsc} {} \DeclareFontSeriesChangeRule {elux}{sx} {elsx} {} \DeclareFontSeriesChangeRule {elux}{x} {elx} {} \DeclareFontSeriesChangeRule {elux}{ex} {elex} {} \DeclareFontSeriesChangeRule {elux}{ux} {elux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {luc}{ul} {uluc} {} \DeclareFontSeriesChangeRule {luc}{el} {eluc} {} \DeclareFontSeriesChangeRule {luc}{l} {luc} {} \DeclareFontSeriesChangeRule {luc}{sl} {sluc} {} \DeclareFontSeriesChangeRule {luc}{sb} {sbuc} {buc} \DeclareFontSeriesChangeRule {luc}{b} {buc} {} \DeclareFontSeriesChangeRule {luc}{eb} {ebuc} {buc} \DeclareFontSeriesChangeRule {luc}{ub} {ubuc} {buc} \DeclareFontSeriesChangeRule {luc}{uc} {luc} {} \DeclareFontSeriesChangeRule {luc}{ec} {lec} {} \DeclareFontSeriesChangeRule {luc}{c} {lc} {} \DeclareFontSeriesChangeRule {luc}{sc} {lsc} {} \DeclareFontSeriesChangeRule {luc}{sx} {lsx} {} \DeclareFontSeriesChangeRule {luc}{x} {lx} {} \DeclareFontSeriesChangeRule {luc}{ex} {lex} {} \DeclareFontSeriesChangeRule {luc}{ux} {lux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {lec}{ul} {ulec} {} \DeclareFontSeriesChangeRule {lec}{el} {elec} {} \DeclareFontSeriesChangeRule {lec}{l} {lec} {} \DeclareFontSeriesChangeRule {lec}{sl} {slec} {} \DeclareFontSeriesChangeRule {lec}{sb} {sbec} {bec} \DeclareFontSeriesChangeRule {lec}{b} {bec} {} \DeclareFontSeriesChangeRule {lec}{eb} {ebec} {bec} \DeclareFontSeriesChangeRule {lec}{ub} {ubec} {bec} \DeclareFontSeriesChangeRule {lec}{uc} {luc} {} \DeclareFontSeriesChangeRule {lec}{ec} {lec} {} \DeclareFontSeriesChangeRule {lec}{c} {lc} {} \DeclareFontSeriesChangeRule {lec}{sc} {lsc} {} \DeclareFontSeriesChangeRule {lec}{sx} {lsx} {} \DeclareFontSeriesChangeRule {lec}{x} {lx} {} \DeclareFontSeriesChangeRule {lec}{ex} {lex} {} \DeclareFontSeriesChangeRule {lec}{ux} {lux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {lc}{ul} {ulc} {} \DeclareFontSeriesChangeRule {lc}{el} {elc} {} \DeclareFontSeriesChangeRule {lc}{l} {lc} {} \DeclareFontSeriesChangeRule {lc}{sl} {slc} {} \DeclareFontSeriesChangeRule {lc}{sb} {sbc} {bc} \DeclareFontSeriesChangeRule {lc}{b} {bc} {} \DeclareFontSeriesChangeRule {lc}{eb} {ebc} {bc} \DeclareFontSeriesChangeRule {lc}{ub} {ubc} {bc} \DeclareFontSeriesChangeRule {lc}{uc} {luc} {} \DeclareFontSeriesChangeRule {lc}{ec} {lec} {} \DeclareFontSeriesChangeRule {lc}{c} {lc} {} \DeclareFontSeriesChangeRule {lc}{sc} {lsc} {} \DeclareFontSeriesChangeRule {lc}{sx} {lsx} {} \DeclareFontSeriesChangeRule {lc}{x} {lx} {} \DeclareFontSeriesChangeRule {lc}{ex} {lex} {} \DeclareFontSeriesChangeRule {lc}{ux} {lux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {lsc}{ul} {ulsc} {} \DeclareFontSeriesChangeRule {lsc}{el} {elsc} {} \DeclareFontSeriesChangeRule {lsc}{l} {lsc} {} \DeclareFontSeriesChangeRule {lsc}{sl} {slsc} {} \DeclareFontSeriesChangeRule {lsc}{sb} {sbsc} {bsc} \DeclareFontSeriesChangeRule {lsc}{b} {bsc} {} \DeclareFontSeriesChangeRule {lsc}{eb} {ebsc} {bsc} \DeclareFontSeriesChangeRule {lsc}{ub} {ubsc} {bsc} \DeclareFontSeriesChangeRule {lsc}{uc} {luc} {} \DeclareFontSeriesChangeRule {lsc}{ec} {lec} {} \DeclareFontSeriesChangeRule {lsc}{c} {lc} {} \DeclareFontSeriesChangeRule {lsc}{sc} {lsc} {} \DeclareFontSeriesChangeRule {lsc}{sx} {lsx} {} \DeclareFontSeriesChangeRule {lsc}{x} {lx} {} \DeclareFontSeriesChangeRule {lsc}{ex} {lex} {} \DeclareFontSeriesChangeRule {lsc}{ux} {lux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {l}{uc} {luc} {} \DeclareFontSeriesChangeRule {l}{ec} {lec} {} \DeclareFontSeriesChangeRule {l}{c} {lc} {} \DeclareFontSeriesChangeRule {l}{sc} {lsc} {} \DeclareFontSeriesChangeRule {l}{sx} {lsx} {} \DeclareFontSeriesChangeRule {l}{x} {lx} {} \DeclareFontSeriesChangeRule {l}{ex} {lex} {} \DeclareFontSeriesChangeRule {l}{ux} {lux} {} \DeclareFontSeriesChangeRule {l}{sb} {sb} {b} \DeclareFontSeriesChangeRule {l}{eb} {eb} {b} \DeclareFontSeriesChangeRule {l}{ub} {ub} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {lsx}{ul} {ulsx} {} \DeclareFontSeriesChangeRule {lsx}{el} {elsx} {} \DeclareFontSeriesChangeRule {lsx}{l} {lsx} {} \DeclareFontSeriesChangeRule {lsx}{sl} {slsx} {} \DeclareFontSeriesChangeRule {lsx}{sb} {sbsx} {bsx} \DeclareFontSeriesChangeRule {lsx}{b} {bsx} {} \DeclareFontSeriesChangeRule {lsx}{eb} {ebsx} {bsx} \DeclareFontSeriesChangeRule {lsx}{ub} {ubsx} {bsx} \DeclareFontSeriesChangeRule {lsx}{uc} {luc} {} \DeclareFontSeriesChangeRule {lsx}{ec} {lec} {} \DeclareFontSeriesChangeRule {lsx}{c} {lc} {} \DeclareFontSeriesChangeRule {lsx}{sc} {lsc} {} \DeclareFontSeriesChangeRule {lsx}{sx} {lsx} {} \DeclareFontSeriesChangeRule {lsx}{x} {lx} {} \DeclareFontSeriesChangeRule {lsx}{ex} {lex} {} \DeclareFontSeriesChangeRule {lsx}{ux} {lux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {lx}{ul} {ulx} {} \DeclareFontSeriesChangeRule {lx}{el} {elx} {} \DeclareFontSeriesChangeRule {lx}{l} {lx} {} \DeclareFontSeriesChangeRule {lx}{sl} {slx} {} \DeclareFontSeriesChangeRule {lx}{sb} {sbx} {bx} \DeclareFontSeriesChangeRule {lx}{b} {bx} {} \DeclareFontSeriesChangeRule {lx}{eb} {ebx} {bx} \DeclareFontSeriesChangeRule {lx}{ub} {ubx} {bx} \DeclareFontSeriesChangeRule {lx}{uc} {luc} {} \DeclareFontSeriesChangeRule {lx}{ec} {lec} {} \DeclareFontSeriesChangeRule {lx}{c} {lc} {} \DeclareFontSeriesChangeRule {lx}{sc} {lsc} {} \DeclareFontSeriesChangeRule {lx}{sx} {lsx} {} \DeclareFontSeriesChangeRule {lx}{x} {lx} {} \DeclareFontSeriesChangeRule {lx}{ex} {lex} {} \DeclareFontSeriesChangeRule {lx}{ux} {lux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {lex}{ul} {ulex} {} \DeclareFontSeriesChangeRule {lex}{el} {elex} {} \DeclareFontSeriesChangeRule {lex}{l} {lex} {} \DeclareFontSeriesChangeRule {lex}{sl} {slex} {} \DeclareFontSeriesChangeRule {lex}{sb} {sbex} {bex} \DeclareFontSeriesChangeRule {lex}{b} {bex} {} \DeclareFontSeriesChangeRule {lex}{eb} {ebex} {bex} \DeclareFontSeriesChangeRule {lex}{ub} {ubex} {bex} \DeclareFontSeriesChangeRule {lex}{uc} {luc} {} \DeclareFontSeriesChangeRule {lex}{ec} {lec} {} \DeclareFontSeriesChangeRule {lex}{c} {lc} {} \DeclareFontSeriesChangeRule {lex}{sc} {lsc} {} \DeclareFontSeriesChangeRule {lex}{sx} {lsx} {} \DeclareFontSeriesChangeRule {lex}{x} {lx} {} \DeclareFontSeriesChangeRule {lex}{ex} {lex} {} \DeclareFontSeriesChangeRule {lex}{ux} {lux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {lux}{ul} {ulux} {} \DeclareFontSeriesChangeRule {lux}{el} {elux} {} \DeclareFontSeriesChangeRule {lux}{l} {lux} {} \DeclareFontSeriesChangeRule {lux}{sl} {slux} {} \DeclareFontSeriesChangeRule {lux}{sb} {sbux} {bux} \DeclareFontSeriesChangeRule {lux}{b} {bux} {} \DeclareFontSeriesChangeRule {lux}{eb} {ebux} {bux} \DeclareFontSeriesChangeRule {lux}{ub} {ubux} {bux} \DeclareFontSeriesChangeRule {lux}{uc} {luc} {} \DeclareFontSeriesChangeRule {lux}{ec} {lec} {} \DeclareFontSeriesChangeRule {lux}{c} {lc} {} \DeclareFontSeriesChangeRule {lux}{sc} {lsc} {} \DeclareFontSeriesChangeRule {lux}{sx} {lsx} {} \DeclareFontSeriesChangeRule {lux}{x} {lx} {} \DeclareFontSeriesChangeRule {lux}{ex} {lex} {} \DeclareFontSeriesChangeRule {lux}{ux} {lux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sluc}{ul} {uluc} {} \DeclareFontSeriesChangeRule {sluc}{el} {eluc} {} \DeclareFontSeriesChangeRule {sluc}{l} {luc} {} \DeclareFontSeriesChangeRule {sluc}{sl} {sluc} {} \DeclareFontSeriesChangeRule {sluc}{sb} {sbuc} {buc} \DeclareFontSeriesChangeRule {sluc}{b} {buc} {} \DeclareFontSeriesChangeRule {sluc}{eb} {ebuc} {buc} \DeclareFontSeriesChangeRule {sluc}{ub} {ubuc} {buc} \DeclareFontSeriesChangeRule {sluc}{uc} {sluc} {} \DeclareFontSeriesChangeRule {sluc}{ec} {slec} {} \DeclareFontSeriesChangeRule {sluc}{c} {slc} {} \DeclareFontSeriesChangeRule {sluc}{sc} {slsc} {} \DeclareFontSeriesChangeRule {sluc}{sx} {slsx} {} \DeclareFontSeriesChangeRule {sluc}{x} {slx} {} \DeclareFontSeriesChangeRule {sluc}{ex} {slex} {} \DeclareFontSeriesChangeRule {sluc}{ux} {slux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {slec}{ul} {ulec} {} \DeclareFontSeriesChangeRule {slec}{el} {elec} {} \DeclareFontSeriesChangeRule {slec}{l} {lec} {} \DeclareFontSeriesChangeRule {slec}{sl} {slec} {} \DeclareFontSeriesChangeRule {slec}{sb} {sbec} {bec} \DeclareFontSeriesChangeRule {slec}{b} {bec} {} \DeclareFontSeriesChangeRule {slec}{eb} {ebec} {bec} \DeclareFontSeriesChangeRule {slec}{ub} {ubec} {bec} \DeclareFontSeriesChangeRule {slec}{uc} {sluc} {} \DeclareFontSeriesChangeRule {slec}{ec} {slec} {} \DeclareFontSeriesChangeRule {slec}{c} {slc} {} \DeclareFontSeriesChangeRule {slec}{sc} {slsc} {} \DeclareFontSeriesChangeRule {slec}{sx} {slsx} {} \DeclareFontSeriesChangeRule {slec}{x} {slx} {} \DeclareFontSeriesChangeRule {slec}{ex} {slex} {} \DeclareFontSeriesChangeRule {slec}{ux} {slux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {slc}{ul} {ulc} {} \DeclareFontSeriesChangeRule {slc}{el} {elc} {} \DeclareFontSeriesChangeRule {slc}{l} {lc} {} \DeclareFontSeriesChangeRule {slc}{sl} {slc} {} \DeclareFontSeriesChangeRule {slc}{sb} {sbc} {bc} \DeclareFontSeriesChangeRule {slc}{b} {bc} {} \DeclareFontSeriesChangeRule {slc}{eb} {ebc} {bc} \DeclareFontSeriesChangeRule {slc}{ub} {ubc} {bc} \DeclareFontSeriesChangeRule {slc}{uc} {sluc} {} \DeclareFontSeriesChangeRule {slc}{ec} {slec} {} \DeclareFontSeriesChangeRule {slc}{c} {slc} {} \DeclareFontSeriesChangeRule {slc}{sc} {slsc} {} \DeclareFontSeriesChangeRule {slc}{sx} {slsx} {} \DeclareFontSeriesChangeRule {slc}{x} {slx} {} \DeclareFontSeriesChangeRule {slc}{ex} {slex} {} \DeclareFontSeriesChangeRule {slc}{ux} {slux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {slsc}{ul} {ulsc} {} \DeclareFontSeriesChangeRule {slsc}{el} {elsc} {} \DeclareFontSeriesChangeRule {slsc}{l} {lsc} {} \DeclareFontSeriesChangeRule {slsc}{sl} {slsc} {} \DeclareFontSeriesChangeRule {slsc}{sb} {sbsc} {bsc} \DeclareFontSeriesChangeRule {slsc}{b} {bsc} {} \DeclareFontSeriesChangeRule {slsc}{eb} {ebsc} {bsc} \DeclareFontSeriesChangeRule {slsc}{ub} {ubsc} {bsc} \DeclareFontSeriesChangeRule {slsc}{uc} {sluc} {} \DeclareFontSeriesChangeRule {slsc}{ec} {slec} {} \DeclareFontSeriesChangeRule {slsc}{c} {slc} {} \DeclareFontSeriesChangeRule {slsc}{sc} {slsc} {} \DeclareFontSeriesChangeRule {slsc}{sx} {slsx} {} \DeclareFontSeriesChangeRule {slsc}{x} {slx} {} \DeclareFontSeriesChangeRule {slsc}{ex} {slex} {} \DeclareFontSeriesChangeRule {slsc}{ux} {slux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sl}{uc} {sluc} {} \DeclareFontSeriesChangeRule {sl}{ec} {slec} {} \DeclareFontSeriesChangeRule {sl}{c} {slc} {} \DeclareFontSeriesChangeRule {sl}{sc} {slsc} {} \DeclareFontSeriesChangeRule {sl}{sx} {slsx} {} \DeclareFontSeriesChangeRule {sl}{x} {slx} {} \DeclareFontSeriesChangeRule {sl}{ex} {slex} {} \DeclareFontSeriesChangeRule {sl}{ux} {slux} {} \DeclareFontSeriesChangeRule {sl}{sb} {sb} {b} \DeclareFontSeriesChangeRule {sl}{eb} {eb} {b} \DeclareFontSeriesChangeRule {sl}{ub} {ub} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {slsx}{ul} {ulsx} {} \DeclareFontSeriesChangeRule {slsx}{el} {elsx} {} \DeclareFontSeriesChangeRule {slsx}{l} {lsx} {} \DeclareFontSeriesChangeRule {slsx}{sl} {slsx} {} \DeclareFontSeriesChangeRule {slsx}{sb} {sbsx} {bsx} \DeclareFontSeriesChangeRule {slsx}{b} {bsx} {} \DeclareFontSeriesChangeRule {slsx}{eb} {ebsx} {bsx} \DeclareFontSeriesChangeRule {slsx}{ub} {ubsx} {bsx} \DeclareFontSeriesChangeRule {slsx}{uc} {sluc} {} \DeclareFontSeriesChangeRule {slsx}{ec} {slec} {} \DeclareFontSeriesChangeRule {slsx}{c} {slc} {} \DeclareFontSeriesChangeRule {slsx}{sc} {slsc} {} \DeclareFontSeriesChangeRule {slsx}{sx} {slsx} {} \DeclareFontSeriesChangeRule {slsx}{x} {slx} {} \DeclareFontSeriesChangeRule {slsx}{ex} {slex} {} \DeclareFontSeriesChangeRule {slsx}{ux} {slux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {slx}{ul} {ulx} {} \DeclareFontSeriesChangeRule {slx}{el} {elx} {} \DeclareFontSeriesChangeRule {slx}{l} {lx} {} \DeclareFontSeriesChangeRule {slx}{sl} {slx} {} \DeclareFontSeriesChangeRule {slx}{sb} {sbx} {bx} \DeclareFontSeriesChangeRule {slx}{b} {bx} {} \DeclareFontSeriesChangeRule {slx}{eb} {ebx} {bx} \DeclareFontSeriesChangeRule {slx}{ub} {ubx} {bx} \DeclareFontSeriesChangeRule {slx}{uc} {sluc} {} \DeclareFontSeriesChangeRule {slx}{ec} {slec} {} \DeclareFontSeriesChangeRule {slx}{c} {slc} {} \DeclareFontSeriesChangeRule {slx}{sc} {slsc} {} \DeclareFontSeriesChangeRule {slx}{sx} {slsx} {} \DeclareFontSeriesChangeRule {slx}{x} {slx} {} \DeclareFontSeriesChangeRule {slx}{ex} {slex} {} \DeclareFontSeriesChangeRule {slx}{ux} {slux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {slex}{ul} {ulex} {} \DeclareFontSeriesChangeRule {slex}{el} {elex} {} \DeclareFontSeriesChangeRule {slex}{l} {lex} {} \DeclareFontSeriesChangeRule {slex}{sl} {slex} {} \DeclareFontSeriesChangeRule {slex}{sb} {sbex} {bex} \DeclareFontSeriesChangeRule {slex}{b} {bex} {} \DeclareFontSeriesChangeRule {slex}{eb} {ebex} {bex} \DeclareFontSeriesChangeRule {slex}{ub} {ubex} {bex} \DeclareFontSeriesChangeRule {slex}{uc} {sluc} {} \DeclareFontSeriesChangeRule {slex}{ec} {slec} {} \DeclareFontSeriesChangeRule {slex}{c} {slc} {} \DeclareFontSeriesChangeRule {slex}{sc} {slsc} {} \DeclareFontSeriesChangeRule {slex}{sx} {slsx} {} \DeclareFontSeriesChangeRule {slex}{x} {slx} {} \DeclareFontSeriesChangeRule {slex}{ex} {slex} {} \DeclareFontSeriesChangeRule {slex}{ux} {slux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {slux}{ul} {ulux} {} \DeclareFontSeriesChangeRule {slux}{el} {elux} {} \DeclareFontSeriesChangeRule {slux}{l} {lux} {} \DeclareFontSeriesChangeRule {slux}{sl} {slux} {} \DeclareFontSeriesChangeRule {slux}{sb} {sbux} {bux} \DeclareFontSeriesChangeRule {slux}{b} {bux} {} \DeclareFontSeriesChangeRule {slux}{eb} {ebux} {bux} \DeclareFontSeriesChangeRule {slux}{ub} {ubux} {bux} \DeclareFontSeriesChangeRule {slux}{uc} {sluc} {} \DeclareFontSeriesChangeRule {slux}{ec} {slec} {} \DeclareFontSeriesChangeRule {slux}{c} {slc} {} \DeclareFontSeriesChangeRule {slux}{sc} {slsc} {} \DeclareFontSeriesChangeRule {slux}{sx} {slsx} {} \DeclareFontSeriesChangeRule {slux}{x} {slx} {} \DeclareFontSeriesChangeRule {slux}{ex} {slex} {} \DeclareFontSeriesChangeRule {slux}{ux} {slux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {uc}{ul} {uluc} {} \DeclareFontSeriesChangeRule {uc}{el} {eluc} {} \DeclareFontSeriesChangeRule {uc}{l} {luc} {} \DeclareFontSeriesChangeRule {uc}{sl} {sluc} {} \DeclareFontSeriesChangeRule {uc}{sb} {sbuc} {buc} \DeclareFontSeriesChangeRule {uc}{b} {buc} {} \DeclareFontSeriesChangeRule {uc}{eb} {ebuc} {buc} \DeclareFontSeriesChangeRule {uc}{ub} {ubuc} {buc} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ec}{ul} {ulec} {} \DeclareFontSeriesChangeRule {ec}{el} {elec} {} \DeclareFontSeriesChangeRule {ec}{l} {lec} {} \DeclareFontSeriesChangeRule {ec}{sl} {slec} {} \DeclareFontSeriesChangeRule {ec}{sb} {sbec} {bec} \DeclareFontSeriesChangeRule {ec}{b} {bec} {} \DeclareFontSeriesChangeRule {ec}{eb} {ebec} {bec} \DeclareFontSeriesChangeRule {ec}{ub} {ubec} {bec} % \end{macrocode} % % There are a number of font families that implement condensed % series, but often only \texttt{c} and \texttt{bc}. Therefore, if % we see a weight or width change request that can't be fulfilled % we try to stay with \texttt{c} or \texttt{bc}. % \begin{macrocode} \DeclareFontSeriesChangeRule {c}{ul} {ulc} {c} \DeclareFontSeriesChangeRule {c}{el} {elc} {c} \DeclareFontSeriesChangeRule {c}{l} {lc} {c} \DeclareFontSeriesChangeRule {c}{sl} {slc} {c} \DeclareFontSeriesChangeRule {c}{sb} {sbc} {bc} \DeclareFontSeriesChangeRule {c}{b} {bc} {} \DeclareFontSeriesChangeRule {c}{eb} {ebc} {bc} \DeclareFontSeriesChangeRule {c}{ub} {ubc} {bc} \DeclareFontSeriesChangeRule {c}{uc} {uc} {c} \DeclareFontSeriesChangeRule {c}{ec} {ec} {c} \DeclareFontSeriesChangeRule {c}{sc} {sc} {c} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sc}{ul} {ulsc} {} \DeclareFontSeriesChangeRule {sc}{el} {elsc} {} \DeclareFontSeriesChangeRule {sc}{l} {lsc} {} \DeclareFontSeriesChangeRule {sc}{sl} {slsc} {} \DeclareFontSeriesChangeRule {sc}{sb} {sbsc} {bsc} \DeclareFontSeriesChangeRule {sc}{b} {bsc} {} \DeclareFontSeriesChangeRule {sc}{eb} {ebsc} {bsc} \DeclareFontSeriesChangeRule {sc}{ub} {ubsc} {bsc} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {m}{sb} {sb} {b} \DeclareFontSeriesChangeRule {m}{eb} {eb} {b} \DeclareFontSeriesChangeRule {m}{ub} {ub} {b} % \end{macrocode} % % This special rule normally does nothing since nearly every font % implements the \texttt{b} bold series. The exception are Computer % Modern and Latin Modern and fonts based on them. They usually % only have \texttt{bx}, but then they normally provide an % \texttt{.fd} file declaration mapping from \texttt{b} to % \texttt{bx} and thus pretend that \texttt{b} exists. But in case % any of them does not, we offer an alternative result and switch % to \texttt{bx} if \texttt{b} can't be found. % \begin{macrocode} \DeclareFontSeriesChangeRule {m}{b} {b} {bx} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sx}{ul} {ulsx} {} \DeclareFontSeriesChangeRule {sx}{el} {elsx} {} \DeclareFontSeriesChangeRule {sx}{l} {lsx} {} \DeclareFontSeriesChangeRule {sx}{sl} {slsx} {} \DeclareFontSeriesChangeRule {sx}{sb} {sbsx} {bsx} \DeclareFontSeriesChangeRule {sx}{b} {bsx} {} \DeclareFontSeriesChangeRule {sx}{eb} {ebsx} {bsx} \DeclareFontSeriesChangeRule {sx}{ub} {ubsx} {bsx} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {x}{ul} {ulx} {} \DeclareFontSeriesChangeRule {x}{el} {elx} {} \DeclareFontSeriesChangeRule {x}{l} {lx} {} \DeclareFontSeriesChangeRule {x}{sl} {slx} {} \DeclareFontSeriesChangeRule {x}{sb} {sbx} {bx} \DeclareFontSeriesChangeRule {x}{b} {bx} {} \DeclareFontSeriesChangeRule {x}{eb} {ebx} {bx} \DeclareFontSeriesChangeRule {x}{ub} {ubx} {bx} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ex}{ul} {ulex} {} \DeclareFontSeriesChangeRule {ex}{el} {elex} {} \DeclareFontSeriesChangeRule {ex}{l} {lex} {} \DeclareFontSeriesChangeRule {ex}{sl} {slex} {} \DeclareFontSeriesChangeRule {ex}{sb} {sbex} {bex} \DeclareFontSeriesChangeRule {ex}{b} {bex} {} \DeclareFontSeriesChangeRule {ex}{eb} {ebex} {bex} \DeclareFontSeriesChangeRule {ex}{ub} {ubex} {bex} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ux}{ul} {ulux} {} \DeclareFontSeriesChangeRule {ux}{el} {elux} {} \DeclareFontSeriesChangeRule {ux}{l} {lux} {} \DeclareFontSeriesChangeRule {ux}{sl} {slux} {} \DeclareFontSeriesChangeRule {ux}{sb} {sbux} {bux} \DeclareFontSeriesChangeRule {ux}{b} {bux} {} \DeclareFontSeriesChangeRule {ux}{eb} {ebux} {bux} \DeclareFontSeriesChangeRule {ux}{ub} {ubux} {bux} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sbuc}{ul} {uluc} {} \DeclareFontSeriesChangeRule {sbuc}{el} {eluc} {} \DeclareFontSeriesChangeRule {sbuc}{l} {luc} {} \DeclareFontSeriesChangeRule {sbuc}{sl} {sluc} {} \DeclareFontSeriesChangeRule {sbuc}{sb} {sbuc} {} \DeclareFontSeriesChangeRule {sbuc}{b} {buc} {} \DeclareFontSeriesChangeRule {sbuc}{eb} {ebuc} {buc} \DeclareFontSeriesChangeRule {sbuc}{ub} {ubuc} {buc} \DeclareFontSeriesChangeRule {sbuc}{uc} {sbuc} {} \DeclareFontSeriesChangeRule {sbuc}{ec} {sbec} {} \DeclareFontSeriesChangeRule {sbuc}{c} {sbc} {} \DeclareFontSeriesChangeRule {sbuc}{sc} {sbsc} {} \DeclareFontSeriesChangeRule {sbuc}{sx} {sbsx} {} \DeclareFontSeriesChangeRule {sbuc}{x} {sbx} {} \DeclareFontSeriesChangeRule {sbuc}{ex} {sbex} {} \DeclareFontSeriesChangeRule {sbuc}{ux} {sbux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sbec}{ul} {ulec} {} \DeclareFontSeriesChangeRule {sbec}{el} {elec} {} \DeclareFontSeriesChangeRule {sbec}{l} {lec} {} \DeclareFontSeriesChangeRule {sbec}{sl} {slec} {} \DeclareFontSeriesChangeRule {sbec}{sb} {sbec} {} \DeclareFontSeriesChangeRule {sbec}{b} {bec} {} \DeclareFontSeriesChangeRule {sbec}{eb} {ebec} {bec} \DeclareFontSeriesChangeRule {sbec}{ub} {ubec} {bec} \DeclareFontSeriesChangeRule {sbec}{uc} {sbuc} {} \DeclareFontSeriesChangeRule {sbec}{ec} {sbec} {} \DeclareFontSeriesChangeRule {sbec}{c} {sbc} {} \DeclareFontSeriesChangeRule {sbec}{sc} {sbsc} {} \DeclareFontSeriesChangeRule {sbec}{sx} {sbsx} {} \DeclareFontSeriesChangeRule {sbec}{x} {sbx} {} \DeclareFontSeriesChangeRule {sbec}{ex} {sbex} {} \DeclareFontSeriesChangeRule {sbec}{ux} {sbux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sbc}{ul} {ulc} {} \DeclareFontSeriesChangeRule {sbc}{el} {elc} {} \DeclareFontSeriesChangeRule {sbc}{l} {lc} {} \DeclareFontSeriesChangeRule {sbc}{sl} {slc} {} \DeclareFontSeriesChangeRule {sbc}{sb} {sbc} {} \DeclareFontSeriesChangeRule {sbc}{b} {bc} {} \DeclareFontSeriesChangeRule {sbc}{eb} {ebc} {bc} \DeclareFontSeriesChangeRule {sbc}{ub} {ubc} {bc} \DeclareFontSeriesChangeRule {sbc}{uc} {sbuc} {} \DeclareFontSeriesChangeRule {sbc}{ec} {sbec} {} \DeclareFontSeriesChangeRule {sbc}{c} {sbc} {} \DeclareFontSeriesChangeRule {sbc}{sc} {sbsc} {} \DeclareFontSeriesChangeRule {sbc}{sx} {sbsx} {} \DeclareFontSeriesChangeRule {sbc}{x} {sbx} {} \DeclareFontSeriesChangeRule {sbc}{ex} {sbex} {} \DeclareFontSeriesChangeRule {sbc}{ux} {sbux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sbsc}{ul} {ulsc} {} \DeclareFontSeriesChangeRule {sbsc}{el} {elsc} {} \DeclareFontSeriesChangeRule {sbsc}{l} {lsc} {} \DeclareFontSeriesChangeRule {sbsc}{sl} {slsc} {} \DeclareFontSeriesChangeRule {sbsc}{sb} {sbsc} {} \DeclareFontSeriesChangeRule {sbsc}{b} {bsc} {} \DeclareFontSeriesChangeRule {sbsc}{eb} {ebsc} {bsc} \DeclareFontSeriesChangeRule {sbsc}{ub} {ubsc} {bsc} \DeclareFontSeriesChangeRule {sbsc}{uc} {sbuc} {} \DeclareFontSeriesChangeRule {sbsc}{ec} {sbec} {} \DeclareFontSeriesChangeRule {sbsc}{c} {sbc} {} \DeclareFontSeriesChangeRule {sbsc}{sc} {sbsc} {} \DeclareFontSeriesChangeRule {sbsc}{sx} {sbsx} {} \DeclareFontSeriesChangeRule {sbsc}{x} {sbx} {} \DeclareFontSeriesChangeRule {sbsc}{ex} {sbex} {} \DeclareFontSeriesChangeRule {sbsc}{ux} {sbux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sb}{uc} {sbuc} {} \DeclareFontSeriesChangeRule {sb}{ec} {sbec} {} \DeclareFontSeriesChangeRule {sb}{c} {sbc} {} \DeclareFontSeriesChangeRule {sb}{sc} {sbsc} {} \DeclareFontSeriesChangeRule {sb}{sx} {sbsx} {} \DeclareFontSeriesChangeRule {sb}{x} {sbx} {} \DeclareFontSeriesChangeRule {sb}{ex} {sbex} {} \DeclareFontSeriesChangeRule {sb}{ux} {sbux} {} \DeclareFontSeriesChangeRule {sb}{eb} {eb} {b} \DeclareFontSeriesChangeRule {sb}{ub} {ub} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sbsx}{ul} {ulsx} {} \DeclareFontSeriesChangeRule {sbsx}{el} {elsx} {} \DeclareFontSeriesChangeRule {sbsx}{l} {lsx} {} \DeclareFontSeriesChangeRule {sbsx}{sl} {slsx} {} \DeclareFontSeriesChangeRule {sbsx}{sb} {sbsx} {} \DeclareFontSeriesChangeRule {sbsx}{b} {bsx} {} \DeclareFontSeriesChangeRule {sbsx}{eb} {ebsx} {bsx} \DeclareFontSeriesChangeRule {sbsx}{ub} {ubsx} {bsx} \DeclareFontSeriesChangeRule {sbsx}{uc} {sbuc} {} \DeclareFontSeriesChangeRule {sbsx}{ec} {sbec} {} \DeclareFontSeriesChangeRule {sbsx}{c} {sbc} {} \DeclareFontSeriesChangeRule {sbsx}{sc} {sbsc} {} \DeclareFontSeriesChangeRule {sbsx}{sx} {sbsx} {} \DeclareFontSeriesChangeRule {sbsx}{x} {sbx} {} \DeclareFontSeriesChangeRule {sbsx}{ex} {sbex} {} \DeclareFontSeriesChangeRule {sbsx}{ux} {sbux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sbx}{ul} {ulx} {} \DeclareFontSeriesChangeRule {sbx}{el} {elx} {} \DeclareFontSeriesChangeRule {sbx}{l} {lx} {} \DeclareFontSeriesChangeRule {sbx}{sl} {slx} {} \DeclareFontSeriesChangeRule {sbx}{sb} {sbx} {} \DeclareFontSeriesChangeRule {sbx}{b} {bx} {} \DeclareFontSeriesChangeRule {sbx}{eb} {ebx} {bx} \DeclareFontSeriesChangeRule {sbx}{ub} {ubx} {bx} \DeclareFontSeriesChangeRule {sbx}{uc} {sbuc} {} \DeclareFontSeriesChangeRule {sbx}{ec} {sbec} {} \DeclareFontSeriesChangeRule {sbx}{c} {sbc} {} \DeclareFontSeriesChangeRule {sbx}{sc} {sbsc} {} \DeclareFontSeriesChangeRule {sbx}{sx} {sbsx} {} \DeclareFontSeriesChangeRule {sbx}{x} {sbx} {} \DeclareFontSeriesChangeRule {sbx}{ex} {sbex} {} \DeclareFontSeriesChangeRule {sbx}{ux} {sbux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sbex}{ul} {ulex} {} \DeclareFontSeriesChangeRule {sbex}{el} {elex} {} \DeclareFontSeriesChangeRule {sbex}{l} {lex} {} \DeclareFontSeriesChangeRule {sbex}{sl} {slex} {} \DeclareFontSeriesChangeRule {sbex}{sb} {sbex} {} \DeclareFontSeriesChangeRule {sbex}{b} {bex} {} \DeclareFontSeriesChangeRule {sbex}{eb} {ebex} {bex} \DeclareFontSeriesChangeRule {sbex}{ub} {ubex} {bex} \DeclareFontSeriesChangeRule {sbex}{uc} {sbuc} {} \DeclareFontSeriesChangeRule {sbex}{ec} {sbec} {} \DeclareFontSeriesChangeRule {sbex}{c} {sbc} {} \DeclareFontSeriesChangeRule {sbex}{sc} {sbsc} {} \DeclareFontSeriesChangeRule {sbex}{sx} {sbsx} {} \DeclareFontSeriesChangeRule {sbex}{x} {sbx} {} \DeclareFontSeriesChangeRule {sbex}{ex} {sbex} {} \DeclareFontSeriesChangeRule {sbex}{ux} {sbux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sbux}{ul} {ulux} {} \DeclareFontSeriesChangeRule {sbux}{el} {elux} {} \DeclareFontSeriesChangeRule {sbux}{l} {lux} {} \DeclareFontSeriesChangeRule {sbux}{sl} {slux} {} \DeclareFontSeriesChangeRule {sbux}{sb} {sbux} {} \DeclareFontSeriesChangeRule {sbux}{b} {bux} {} \DeclareFontSeriesChangeRule {sbux}{eb} {ebux} {bux} \DeclareFontSeriesChangeRule {sbux}{ub} {ubux} {bux} \DeclareFontSeriesChangeRule {sbux}{uc} {sbuc} {} \DeclareFontSeriesChangeRule {sbux}{ec} {sbec} {} \DeclareFontSeriesChangeRule {sbux}{c} {sbc} {} \DeclareFontSeriesChangeRule {sbux}{sc} {sbsc} {} \DeclareFontSeriesChangeRule {sbux}{sx} {sbsx} {} \DeclareFontSeriesChangeRule {sbux}{x} {sbx} {} \DeclareFontSeriesChangeRule {sbux}{ex} {sbex} {} \DeclareFontSeriesChangeRule {sbux}{ux} {sbux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {buc}{ul} {uluc} {} \DeclareFontSeriesChangeRule {buc}{el} {eluc} {} \DeclareFontSeriesChangeRule {buc}{l} {luc} {} \DeclareFontSeriesChangeRule {buc}{sl} {sluc} {} \DeclareFontSeriesChangeRule {buc}{sb} {sbuc} {buc} \DeclareFontSeriesChangeRule {buc}{b} {buc} {} \DeclareFontSeriesChangeRule {buc}{eb} {ebuc} {buc} \DeclareFontSeriesChangeRule {buc}{ub} {ubuc} {buc} \DeclareFontSeriesChangeRule {buc}{uc} {buc} {} \DeclareFontSeriesChangeRule {buc}{ec} {bec} {} \DeclareFontSeriesChangeRule {buc}{c} {bc} {} \DeclareFontSeriesChangeRule {buc}{sc} {bsc} {} \DeclareFontSeriesChangeRule {buc}{sx} {bsx} {} \DeclareFontSeriesChangeRule {buc}{x} {bx} {} \DeclareFontSeriesChangeRule {buc}{ex} {bex} {} \DeclareFontSeriesChangeRule {buc}{ux} {bux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {bec}{ul} {ulec} {} \DeclareFontSeriesChangeRule {bec}{el} {elec} {} \DeclareFontSeriesChangeRule {bec}{l} {lec} {} \DeclareFontSeriesChangeRule {bec}{sl} {slec} {} \DeclareFontSeriesChangeRule {bec}{sb} {sbec} {bec} \DeclareFontSeriesChangeRule {bec}{b} {bec} {} \DeclareFontSeriesChangeRule {bec}{eb} {ebec} {bec} \DeclareFontSeriesChangeRule {bec}{ub} {ubec} {bec} \DeclareFontSeriesChangeRule {bec}{uc} {buc} {} \DeclareFontSeriesChangeRule {bec}{ec} {bec} {} \DeclareFontSeriesChangeRule {bec}{c} {bc} {} \DeclareFontSeriesChangeRule {bec}{sc} {bsc} {} \DeclareFontSeriesChangeRule {bec}{sx} {bsx} {} \DeclareFontSeriesChangeRule {bec}{x} {bx} {} \DeclareFontSeriesChangeRule {bec}{ex} {bex} {} \DeclareFontSeriesChangeRule {bec}{ux} {bux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {bc}{ul} {ulc} {} \DeclareFontSeriesChangeRule {bc}{el} {elc} {} \DeclareFontSeriesChangeRule {bc}{l} {lc} {} \DeclareFontSeriesChangeRule {bc}{sl} {slc} {} \DeclareFontSeriesChangeRule {bc}{sb} {sbc} {bc} \DeclareFontSeriesChangeRule {bc}{b} {bc} {} \DeclareFontSeriesChangeRule {bc}{eb} {ebc} {bc} \DeclareFontSeriesChangeRule {bc}{ub} {ubc} {bc} \DeclareFontSeriesChangeRule {bc}{uc} {buc} {} \DeclareFontSeriesChangeRule {bc}{ec} {bec} {} \DeclareFontSeriesChangeRule {bc}{c} {bc} {} \DeclareFontSeriesChangeRule {bc}{sc} {bsc} {} \DeclareFontSeriesChangeRule {bc}{sx} {bsx} {} \DeclareFontSeriesChangeRule {bc}{x} {bx} {} \DeclareFontSeriesChangeRule {bc}{ex} {bex} {} \DeclareFontSeriesChangeRule {bc}{ux} {bux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {bsc}{ul} {ulsc} {} \DeclareFontSeriesChangeRule {bsc}{el} {elsc} {} \DeclareFontSeriesChangeRule {bsc}{l} {lsc} {} \DeclareFontSeriesChangeRule {bsc}{sl} {slsc} {} \DeclareFontSeriesChangeRule {bsc}{sb} {sbsc} {bsc} \DeclareFontSeriesChangeRule {bsc}{b} {bsc} {} \DeclareFontSeriesChangeRule {bsc}{eb} {ebsc} {bsc} \DeclareFontSeriesChangeRule {bsc}{ub} {ubsc} {bsc} \DeclareFontSeriesChangeRule {bsc}{uc} {buc} {} \DeclareFontSeriesChangeRule {bsc}{ec} {bec} {} \DeclareFontSeriesChangeRule {bsc}{c} {bc} {} \DeclareFontSeriesChangeRule {bsc}{sc} {bsc} {} \DeclareFontSeriesChangeRule {bsc}{sx} {bsx} {} \DeclareFontSeriesChangeRule {bsc}{x} {bx} {} \DeclareFontSeriesChangeRule {bsc}{ex} {bex} {} \DeclareFontSeriesChangeRule {bsc}{ux} {bux} {} % \end{macrocode} % % If we are in \texttt{b} and a width change is requested that % leads to a missing font face we stay in \texttt{b} because then the % font family probably doesn't implement width changes at all. % \begin{macrocode} \DeclareFontSeriesChangeRule {b}{uc} {buc} {b} \DeclareFontSeriesChangeRule {b}{ec} {bec} {b} \DeclareFontSeriesChangeRule {b}{c} {bc} {b} \DeclareFontSeriesChangeRule {b}{sc} {bsc} {b} \DeclareFontSeriesChangeRule {b}{sx} {bsx} {b} \DeclareFontSeriesChangeRule {b}{x} {bx} {b} \DeclareFontSeriesChangeRule {b}{ex} {bex} {b} \DeclareFontSeriesChangeRule {b}{ux} {bux} {b} \DeclareFontSeriesChangeRule {b}{sb} {sb} {b} \DeclareFontSeriesChangeRule {b}{eb} {eb} {b} \DeclareFontSeriesChangeRule {b}{ub} {ub} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {bsx}{ul} {ulsx} {} \DeclareFontSeriesChangeRule {bsx}{el} {elsx} {} \DeclareFontSeriesChangeRule {bsx}{l} {lsx} {} \DeclareFontSeriesChangeRule {bsx}{sl} {slsx} {} \DeclareFontSeriesChangeRule {bsx}{sb} {sbsx} {bsx} \DeclareFontSeriesChangeRule {bsx}{b} {bsx} {} \DeclareFontSeriesChangeRule {bsx}{eb} {ebsx} {bsx} \DeclareFontSeriesChangeRule {bsx}{ub} {ubsx} {bsx} \DeclareFontSeriesChangeRule {bsx}{uc} {buc} {} \DeclareFontSeriesChangeRule {bsx}{ec} {bec} {} \DeclareFontSeriesChangeRule {bsx}{c} {bc} {} \DeclareFontSeriesChangeRule {bsx}{sc} {bsc} {} \DeclareFontSeriesChangeRule {bsx}{sx} {bsx} {} \DeclareFontSeriesChangeRule {bsx}{x} {bx} {} \DeclareFontSeriesChangeRule {bsx}{ex} {bex} {} \DeclareFontSeriesChangeRule {bsx}{ux} {bux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {bx}{ul} {ulx} {} \DeclareFontSeriesChangeRule {bx}{el} {elx} {} \DeclareFontSeriesChangeRule {bx}{l} {lx} {} \DeclareFontSeriesChangeRule {bx}{sl} {slx} {} \DeclareFontSeriesChangeRule {bx}{sb} {sbx} {bx} \DeclareFontSeriesChangeRule {bx}{b} {bx} {} \DeclareFontSeriesChangeRule {bx}{eb} {ebx} {bx} \DeclareFontSeriesChangeRule {bx}{ub} {ubx} {bx} \DeclareFontSeriesChangeRule {bx}{uc} {buc} {} \DeclareFontSeriesChangeRule {bx}{ec} {bec} {} \DeclareFontSeriesChangeRule {bx}{c} {bc} {} \DeclareFontSeriesChangeRule {bx}{sc} {bsc} {} \DeclareFontSeriesChangeRule {bx}{sx} {bsx} {} \DeclareFontSeriesChangeRule {bx}{x} {bx} {} \DeclareFontSeriesChangeRule {bx}{ex} {bex} {} \DeclareFontSeriesChangeRule {bx}{ux} {bux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {bex}{ul} {ulex} {} \DeclareFontSeriesChangeRule {bex}{el} {elex} {} \DeclareFontSeriesChangeRule {bex}{l} {lex} {} \DeclareFontSeriesChangeRule {bex}{sl} {slex} {} \DeclareFontSeriesChangeRule {bex}{sb} {sbex} {bex} \DeclareFontSeriesChangeRule {bex}{b} {bex} {} \DeclareFontSeriesChangeRule {bex}{eb} {ebex} {bex} \DeclareFontSeriesChangeRule {bex}{ub} {ubex} {bex} \DeclareFontSeriesChangeRule {bex}{uc} {buc} {} \DeclareFontSeriesChangeRule {bex}{ec} {bec} {} \DeclareFontSeriesChangeRule {bex}{c} {bc} {} \DeclareFontSeriesChangeRule {bex}{sc} {bsc} {} \DeclareFontSeriesChangeRule {bex}{sx} {bsx} {} \DeclareFontSeriesChangeRule {bex}{x} {bx} {} \DeclareFontSeriesChangeRule {bex}{ex} {bex} {} \DeclareFontSeriesChangeRule {bex}{ux} {bux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {bux}{ul} {ulux} {} \DeclareFontSeriesChangeRule {bux}{el} {elux} {} \DeclareFontSeriesChangeRule {bux}{l} {lux} {} \DeclareFontSeriesChangeRule {bux}{sl} {slux} {} \DeclareFontSeriesChangeRule {bux}{sb} {sbux} {bux} \DeclareFontSeriesChangeRule {bux}{b} {bux} {} \DeclareFontSeriesChangeRule {bux}{eb} {ebux} {bux} \DeclareFontSeriesChangeRule {bux}{ub} {ubux} {bux} \DeclareFontSeriesChangeRule {bux}{uc} {buc} {} \DeclareFontSeriesChangeRule {bux}{ec} {bec} {} \DeclareFontSeriesChangeRule {bux}{c} {bc} {} \DeclareFontSeriesChangeRule {bux}{sc} {bsc} {} \DeclareFontSeriesChangeRule {bux}{sx} {bsx} {} \DeclareFontSeriesChangeRule {bux}{x} {bx} {} \DeclareFontSeriesChangeRule {bux}{ex} {bex} {} \DeclareFontSeriesChangeRule {bux}{ux} {bux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ebuc}{ul} {uluc} {} \DeclareFontSeriesChangeRule {ebuc}{el} {eluc} {} \DeclareFontSeriesChangeRule {ebuc}{l} {luc} {} \DeclareFontSeriesChangeRule {ebuc}{sl} {sluc} {} \DeclareFontSeriesChangeRule {ebuc}{sb} {sbuc} {buc} \DeclareFontSeriesChangeRule {ebuc}{b} {buc} {} \DeclareFontSeriesChangeRule {ebuc}{eb} {ebuc} {} % \end{macrocode} % % In the following rule, we use \texttt{eb} instead of \texttt{b} % in the fourth argument, since \texttt{eb} is a better % approximation to \texttt{ub} than \texttt{b} and \texttt{ebuc} % is already in the first argument and we can therefore assume that % this font face actually exists. A similar consideration also % applies to some other rules in the following. % \begin{macrocode} \DeclareFontSeriesChangeRule {ebuc}{ub} {ubuc} {ebuc} \DeclareFontSeriesChangeRule {ebuc}{uc} {ebuc} {} \DeclareFontSeriesChangeRule {ebuc}{ec} {ebec} {} \DeclareFontSeriesChangeRule {ebuc}{c} {ebc} {} \DeclareFontSeriesChangeRule {ebuc}{sc} {ebsc} {} \DeclareFontSeriesChangeRule {ebuc}{sx} {ebsx} {} \DeclareFontSeriesChangeRule {ebuc}{x} {ebx} {} \DeclareFontSeriesChangeRule {ebuc}{ex} {ebex} {} \DeclareFontSeriesChangeRule {ebuc}{ux} {ebux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ebec}{ul} {ulec} {} \DeclareFontSeriesChangeRule {ebec}{el} {elec} {} \DeclareFontSeriesChangeRule {ebec}{l} {lec} {} \DeclareFontSeriesChangeRule {ebec}{sl} {slec} {} \DeclareFontSeriesChangeRule {ebec}{sb} {sbec} {bec} \DeclareFontSeriesChangeRule {ebec}{b} {bec} {} \DeclareFontSeriesChangeRule {ebec}{eb} {ebec} {} \DeclareFontSeriesChangeRule {ebec}{ub} {ubec} {ebec} \DeclareFontSeriesChangeRule {ebec}{uc} {ebuc} {} \DeclareFontSeriesChangeRule {ebec}{ec} {ebec} {} \DeclareFontSeriesChangeRule {ebec}{c} {ebc} {} \DeclareFontSeriesChangeRule {ebec}{sc} {ebsc} {} \DeclareFontSeriesChangeRule {ebec}{sx} {ebsx} {} \DeclareFontSeriesChangeRule {ebec}{x} {ebx} {} \DeclareFontSeriesChangeRule {ebec}{ex} {ebex} {} \DeclareFontSeriesChangeRule {ebec}{ux} {ebux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ebc}{ul} {ulc} {} \DeclareFontSeriesChangeRule {ebc}{el} {elc} {} \DeclareFontSeriesChangeRule {ebc}{l} {lc} {} \DeclareFontSeriesChangeRule {ebc}{sl} {slc} {} \DeclareFontSeriesChangeRule {ebc}{sb} {sbc} {bc} \DeclareFontSeriesChangeRule {ebc}{b} {bc} {} \DeclareFontSeriesChangeRule {ebc}{eb} {ebc} {} \DeclareFontSeriesChangeRule {ebc}{ub} {ubc} {ebc} \DeclareFontSeriesChangeRule {ebc}{uc} {ebuc} {} \DeclareFontSeriesChangeRule {ebc}{ec} {ebec} {} \DeclareFontSeriesChangeRule {ebc}{c} {ebc} {} \DeclareFontSeriesChangeRule {ebc}{sc} {ebsc} {} \DeclareFontSeriesChangeRule {ebc}{sx} {ebsx} {} \DeclareFontSeriesChangeRule {ebc}{x} {ebx} {} \DeclareFontSeriesChangeRule {ebc}{ex} {ebex} {} \DeclareFontSeriesChangeRule {ebc}{ux} {ebux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ebsc}{ul} {ulsc} {} \DeclareFontSeriesChangeRule {ebsc}{el} {elsc} {} \DeclareFontSeriesChangeRule {ebsc}{l} {lsc} {} \DeclareFontSeriesChangeRule {ebsc}{sl} {slsc} {} \DeclareFontSeriesChangeRule {ebsc}{sb} {sbsc} {bsc} \DeclareFontSeriesChangeRule {ebsc}{b} {bsc} {} \DeclareFontSeriesChangeRule {ebsc}{eb} {ebsc} {} \DeclareFontSeriesChangeRule {ebsc}{ub} {ubsc} {ebsc} \DeclareFontSeriesChangeRule {ebsc}{uc} {ebuc} {} \DeclareFontSeriesChangeRule {ebsc}{ec} {ebec} {} \DeclareFontSeriesChangeRule {ebsc}{c} {ebc} {} \DeclareFontSeriesChangeRule {ebsc}{sc} {ebsc} {} \DeclareFontSeriesChangeRule {ebsc}{sx} {ebsx} {} \DeclareFontSeriesChangeRule {ebsc}{x} {ebx} {} \DeclareFontSeriesChangeRule {ebsc}{ex} {ebex} {} \DeclareFontSeriesChangeRule {ebsc}{ux} {ebux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {eb}{uc} {ebuc} {} \DeclareFontSeriesChangeRule {eb}{ec} {ebec} {} \DeclareFontSeriesChangeRule {eb}{c} {ebc} {} \DeclareFontSeriesChangeRule {eb}{sc} {ebsc} {} \DeclareFontSeriesChangeRule {eb}{sx} {ebsx} {} \DeclareFontSeriesChangeRule {eb}{x} {ebx} {} \DeclareFontSeriesChangeRule {eb}{ex} {ebex} {} \DeclareFontSeriesChangeRule {eb}{ux} {ebux} {} \DeclareFontSeriesChangeRule {eb}{sb} {sb} {b} \DeclareFontSeriesChangeRule {eb}{ub} {ub} {eb} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ebsx}{ul} {ulsx} {} \DeclareFontSeriesChangeRule {ebsx}{el} {elsx} {} \DeclareFontSeriesChangeRule {ebsx}{l} {lsx} {} \DeclareFontSeriesChangeRule {ebsx}{sl} {slsx} {} \DeclareFontSeriesChangeRule {ebsx}{sb} {sbsx} {bsx} \DeclareFontSeriesChangeRule {ebsx}{b} {bsx} {} \DeclareFontSeriesChangeRule {ebsx}{eb} {ebsx} {} \DeclareFontSeriesChangeRule {ebsx}{ub} {ubsx} {ebsx} \DeclareFontSeriesChangeRule {ebsx}{uc} {ebuc} {} \DeclareFontSeriesChangeRule {ebsx}{ec} {ebec} {} \DeclareFontSeriesChangeRule {ebsx}{c} {ebc} {} \DeclareFontSeriesChangeRule {ebsx}{sc} {ebsc} {} \DeclareFontSeriesChangeRule {ebsx}{sx} {ebsx} {} \DeclareFontSeriesChangeRule {ebsx}{x} {ebx} {} \DeclareFontSeriesChangeRule {ebsx}{ex} {ebex} {} \DeclareFontSeriesChangeRule {ebsx}{ux} {ebux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ebx}{ul} {ulx} {} \DeclareFontSeriesChangeRule {ebx}{el} {elx} {} \DeclareFontSeriesChangeRule {ebx}{l} {lx} {} \DeclareFontSeriesChangeRule {ebx}{sl} {slx} {} \DeclareFontSeriesChangeRule {ebx}{sb} {sbx} {bx} \DeclareFontSeriesChangeRule {ebx}{b} {bx} {} \DeclareFontSeriesChangeRule {ebx}{eb} {ebx} {} \DeclareFontSeriesChangeRule {ebx}{ub} {ubx} {ebx} \DeclareFontSeriesChangeRule {ebx}{uc} {ebuc} {} \DeclareFontSeriesChangeRule {ebx}{ec} {ebec} {} \DeclareFontSeriesChangeRule {ebx}{c} {ebc} {} \DeclareFontSeriesChangeRule {ebx}{sc} {ebsc} {} \DeclareFontSeriesChangeRule {ebx}{sx} {ebsx} {} \DeclareFontSeriesChangeRule {ebx}{x} {ebx} {} \DeclareFontSeriesChangeRule {ebx}{ex} {ebex} {} \DeclareFontSeriesChangeRule {ebx}{ux} {ebux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ebex}{ul} {ulex} {} \DeclareFontSeriesChangeRule {ebex}{el} {elex} {} \DeclareFontSeriesChangeRule {ebex}{l} {lex} {} \DeclareFontSeriesChangeRule {ebex}{sl} {slex} {} \DeclareFontSeriesChangeRule {ebex}{sb} {sbex} {bex} \DeclareFontSeriesChangeRule {ebex}{b} {bex} {} \DeclareFontSeriesChangeRule {ebex}{eb} {ebex} {} \DeclareFontSeriesChangeRule {ebex}{ub} {ubex} {ebex} \DeclareFontSeriesChangeRule {ebex}{uc} {ebuc} {} \DeclareFontSeriesChangeRule {ebex}{ec} {ebec} {} \DeclareFontSeriesChangeRule {ebex}{c} {ebc} {} \DeclareFontSeriesChangeRule {ebex}{sc} {ebsc} {} \DeclareFontSeriesChangeRule {ebex}{sx} {ebsx} {} \DeclareFontSeriesChangeRule {ebex}{x} {ebx} {} \DeclareFontSeriesChangeRule {ebex}{ex} {ebex} {} \DeclareFontSeriesChangeRule {ebex}{ux} {ebux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ebux}{ul} {ulux} {} \DeclareFontSeriesChangeRule {ebux}{el} {elux} {} \DeclareFontSeriesChangeRule {ebux}{l} {lux} {} \DeclareFontSeriesChangeRule {ebux}{sl} {slux} {} \DeclareFontSeriesChangeRule {ebux}{sb} {sbux} {bux} \DeclareFontSeriesChangeRule {ebux}{b} {bux} {} \DeclareFontSeriesChangeRule {ebux}{eb} {ebux} {} \DeclareFontSeriesChangeRule {ebux}{ub} {ubux} {ebux} \DeclareFontSeriesChangeRule {ebux}{uc} {ebuc} {} \DeclareFontSeriesChangeRule {ebux}{ec} {ebec} {} \DeclareFontSeriesChangeRule {ebux}{c} {ebc} {} \DeclareFontSeriesChangeRule {ebux}{sc} {ebsc} {} \DeclareFontSeriesChangeRule {ebux}{sx} {ebsx} {} \DeclareFontSeriesChangeRule {ebux}{x} {ebx} {} \DeclareFontSeriesChangeRule {ebux}{ex} {ebex} {} \DeclareFontSeriesChangeRule {ebux}{ux} {ebux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ubuc}{ul} {uluc} {} \DeclareFontSeriesChangeRule {ubuc}{el} {eluc} {} \DeclareFontSeriesChangeRule {ubuc}{l} {luc} {} \DeclareFontSeriesChangeRule {ubuc}{sl} {sluc} {} \DeclareFontSeriesChangeRule {ubuc}{sb} {sbuc} {buc} \DeclareFontSeriesChangeRule {ubuc}{b} {buc} {} \DeclareFontSeriesChangeRule {ubuc}{eb} {ebuc} {ubuc} \DeclareFontSeriesChangeRule {ubuc}{ub} {ubuc} {} \DeclareFontSeriesChangeRule {ubuc}{uc} {ubuc} {} \DeclareFontSeriesChangeRule {ubuc}{ec} {ubec} {} \DeclareFontSeriesChangeRule {ubuc}{c} {ubc} {} \DeclareFontSeriesChangeRule {ubuc}{sc} {ubsc} {} \DeclareFontSeriesChangeRule {ubuc}{sx} {ubsx} {} \DeclareFontSeriesChangeRule {ubuc}{x} {ubx} {} \DeclareFontSeriesChangeRule {ubuc}{ex} {ubex} {} \DeclareFontSeriesChangeRule {ubuc}{ux} {ubux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ubec}{ul} {ulec} {} \DeclareFontSeriesChangeRule {ubec}{el} {elec} {} \DeclareFontSeriesChangeRule {ubec}{l} {lec} {} \DeclareFontSeriesChangeRule {ubec}{sl} {slec} {} \DeclareFontSeriesChangeRule {ubec}{sb} {sbec} {bec} \DeclareFontSeriesChangeRule {ubec}{b} {bec} {} \DeclareFontSeriesChangeRule {ubec}{eb} {ebec} {ubec} \DeclareFontSeriesChangeRule {ubec}{ub} {ubec} {} \DeclareFontSeriesChangeRule {ubec}{uc} {ubuc} {} \DeclareFontSeriesChangeRule {ubec}{ec} {ubec} {} \DeclareFontSeriesChangeRule {ubec}{c} {ubc} {} \DeclareFontSeriesChangeRule {ubec}{sc} {ubsc} {} \DeclareFontSeriesChangeRule {ubec}{sx} {ubsx} {} \DeclareFontSeriesChangeRule {ubec}{x} {ubx} {} \DeclareFontSeriesChangeRule {ubec}{ex} {ubex} {} \DeclareFontSeriesChangeRule {ubec}{ux} {ubux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ubc}{ul} {ulc} {} \DeclareFontSeriesChangeRule {ubc}{el} {elc} {} \DeclareFontSeriesChangeRule {ubc}{l} {lc} {} \DeclareFontSeriesChangeRule {ubc}{sl} {slc} {} \DeclareFontSeriesChangeRule {ubc}{sb} {sbc} {bc} \DeclareFontSeriesChangeRule {ubc}{b} {bc} {} \DeclareFontSeriesChangeRule {ubc}{eb} {ebc} {ubc} \DeclareFontSeriesChangeRule {ubc}{ub} {ubc} {} \DeclareFontSeriesChangeRule {ubc}{uc} {ubuc} {} \DeclareFontSeriesChangeRule {ubc}{ec} {ubec} {} \DeclareFontSeriesChangeRule {ubc}{c} {ubc} {} \DeclareFontSeriesChangeRule {ubc}{sc} {ubsc} {} \DeclareFontSeriesChangeRule {ubc}{sx} {ubsx} {} \DeclareFontSeriesChangeRule {ubc}{x} {ubx} {} \DeclareFontSeriesChangeRule {ubc}{ex} {ubex} {} \DeclareFontSeriesChangeRule {ubc}{ux} {ubux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ubsc}{ul} {ulsc} {} \DeclareFontSeriesChangeRule {ubsc}{el} {elsc} {} \DeclareFontSeriesChangeRule {ubsc}{l} {lsc} {} \DeclareFontSeriesChangeRule {ubsc}{sl} {slsc} {} \DeclareFontSeriesChangeRule {ubsc}{sb} {sbsc} {bsc} \DeclareFontSeriesChangeRule {ubsc}{b} {bsc} {} \DeclareFontSeriesChangeRule {ubsc}{eb} {ebsc} {ubsc} \DeclareFontSeriesChangeRule {ubsc}{ub} {ubsc} {} \DeclareFontSeriesChangeRule {ubsc}{uc} {ubuc} {} \DeclareFontSeriesChangeRule {ubsc}{ec} {ubec} {} \DeclareFontSeriesChangeRule {ubsc}{c} {ubc} {} \DeclareFontSeriesChangeRule {ubsc}{sc} {ubsc} {} \DeclareFontSeriesChangeRule {ubsc}{sx} {ubsx} {} \DeclareFontSeriesChangeRule {ubsc}{x} {ubx} {} \DeclareFontSeriesChangeRule {ubsc}{ex} {ubex} {} \DeclareFontSeriesChangeRule {ubsc}{ux} {ubux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ub}{uc} {ubuc} {} \DeclareFontSeriesChangeRule {ub}{ec} {ubec} {} \DeclareFontSeriesChangeRule {ub}{c} {ubc} {} \DeclareFontSeriesChangeRule {ub}{sc} {ubsc} {} \DeclareFontSeriesChangeRule {ub}{sx} {ubsx} {} \DeclareFontSeriesChangeRule {ub}{x} {ubx} {} \DeclareFontSeriesChangeRule {ub}{ex} {ubex} {} \DeclareFontSeriesChangeRule {ub}{ux} {ubux} {} \DeclareFontSeriesChangeRule {ub}{sb} {sb} {b} \DeclareFontSeriesChangeRule {ub}{eb} {eb} {ub} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ubsx}{ul} {ulsx} {} \DeclareFontSeriesChangeRule {ubsx}{el} {elsx} {} \DeclareFontSeriesChangeRule {ubsx}{l} {lsx} {} \DeclareFontSeriesChangeRule {ubsx}{sl} {slsx} {} \DeclareFontSeriesChangeRule {ubsx}{sb} {sbsx} {bsx} \DeclareFontSeriesChangeRule {ubsx}{b} {bsx} {} \DeclareFontSeriesChangeRule {ubsx}{eb} {ebsx} {ubsx} \DeclareFontSeriesChangeRule {ubsx}{ub} {ubsx} {} \DeclareFontSeriesChangeRule {ubsx}{uc} {ubuc} {} \DeclareFontSeriesChangeRule {ubsx}{ec} {ubec} {} \DeclareFontSeriesChangeRule {ubsx}{c} {ubc} {} \DeclareFontSeriesChangeRule {ubsx}{sc} {ubsc} {} \DeclareFontSeriesChangeRule {ubsx}{sx} {ubsx} {} \DeclareFontSeriesChangeRule {ubsx}{x} {ubx} {} \DeclareFontSeriesChangeRule {ubsx}{ex} {ubex} {} \DeclareFontSeriesChangeRule {ubsx}{ux} {ubux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ubx}{ul} {ulx} {} \DeclareFontSeriesChangeRule {ubx}{el} {elx} {} \DeclareFontSeriesChangeRule {ubx}{l} {lx} {} \DeclareFontSeriesChangeRule {ubx}{sl} {slx} {} \DeclareFontSeriesChangeRule {ubx}{sb} {sbx} {bx} \DeclareFontSeriesChangeRule {ubx}{b} {bx} {} \DeclareFontSeriesChangeRule {ubx}{eb} {ebx} {ubx} \DeclareFontSeriesChangeRule {ubx}{ub} {ubx} {} \DeclareFontSeriesChangeRule {ubx}{uc} {ubuc} {} \DeclareFontSeriesChangeRule {ubx}{ec} {ubec} {} \DeclareFontSeriesChangeRule {ubx}{c} {ubc} {} \DeclareFontSeriesChangeRule {ubx}{sc} {ubsc} {} \DeclareFontSeriesChangeRule {ubx}{sx} {ubsx} {} \DeclareFontSeriesChangeRule {ubx}{x} {ubx} {} \DeclareFontSeriesChangeRule {ubx}{ex} {ubex} {} \DeclareFontSeriesChangeRule {ubx}{ux} {ubux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ubex}{ul} {ulex} {} \DeclareFontSeriesChangeRule {ubex}{el} {elex} {} \DeclareFontSeriesChangeRule {ubex}{l} {lex} {} \DeclareFontSeriesChangeRule {ubex}{sl} {slex} {} \DeclareFontSeriesChangeRule {ubex}{sb} {sbex} {bex} \DeclareFontSeriesChangeRule {ubex}{b} {bex} {} \DeclareFontSeriesChangeRule {ubex}{eb} {ebex} {ubex} \DeclareFontSeriesChangeRule {ubex}{ub} {ubex} {} \DeclareFontSeriesChangeRule {ubex}{uc} {ubuc} {} \DeclareFontSeriesChangeRule {ubex}{ec} {ubec} {} \DeclareFontSeriesChangeRule {ubex}{c} {ubc} {} \DeclareFontSeriesChangeRule {ubex}{sc} {ubsc} {} \DeclareFontSeriesChangeRule {ubex}{sx} {ubsx} {} \DeclareFontSeriesChangeRule {ubex}{x} {ubx} {} \DeclareFontSeriesChangeRule {ubex}{ex} {ubex} {} \DeclareFontSeriesChangeRule {ubex}{ux} {ubux} {} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ubux}{ul} {ulux} {} \DeclareFontSeriesChangeRule {ubux}{el} {elux} {} \DeclareFontSeriesChangeRule {ubux}{l} {lux} {} \DeclareFontSeriesChangeRule {ubux}{sl} {slux} {} \DeclareFontSeriesChangeRule {ubux}{sb} {sbux} {bux} \DeclareFontSeriesChangeRule {ubux}{b} {bux} {} \DeclareFontSeriesChangeRule {ubux}{eb} {ebux} {ubux} \DeclareFontSeriesChangeRule {ubux}{ub} {ubux} {} \DeclareFontSeriesChangeRule {ubux}{uc} {ubuc} {} \DeclareFontSeriesChangeRule {ubux}{ec} {ubec} {} \DeclareFontSeriesChangeRule {ubux}{c} {ubc} {} \DeclareFontSeriesChangeRule {ubux}{sc} {ubsc} {} \DeclareFontSeriesChangeRule {ubux}{sx} {ubsx} {} \DeclareFontSeriesChangeRule {ubux}{x} {ubx} {} \DeclareFontSeriesChangeRule {ubux}{ex} {ubex} {} \DeclareFontSeriesChangeRule {ubux}{ux} {ubux} {} % \end{macrocode} % % Special rules for \texttt{lm} etc.\ aren't needed because if % \texttt{lm} is requested, it will be used if there is no rule, and % that is then reduced to \texttt{l} automatically. Same for \texttt{mc} % and friends. % % The following entries handle a request for \texttt{bx} and fall % back to \texttt{b} if that can't be fulfilled. % \begin{macrocode} \DeclareFontSeriesChangeRule {uluc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ulec}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ulc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ulsc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ul}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ulsx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ulx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ulex}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ulux}{bx} {bx} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {eluc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {elec}{bx} {bx} {b} \DeclareFontSeriesChangeRule {elc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {elsc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {el}{bx} {bx} {b} \DeclareFontSeriesChangeRule {elsx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {elx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {elex}{bx} {bx} {b} \DeclareFontSeriesChangeRule {elux}{bx} {bx} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {luc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {lec}{bx} {bx} {b} \DeclareFontSeriesChangeRule {lc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {lsc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {l}{bx} {bx} {b} \DeclareFontSeriesChangeRule {lsx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {lx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {lex}{bx} {bx} {b} \DeclareFontSeriesChangeRule {lux}{bx} {bx} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sluc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {slec}{bx} {bx} {b} \DeclareFontSeriesChangeRule {slc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {slsc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {sl}{bx} {bx} {b} \DeclareFontSeriesChangeRule {slsx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {slx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {slex}{bx} {bx} {b} \DeclareFontSeriesChangeRule {slux}{bx} {bx} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {sbuc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {sbec}{bx} {bx} {b} \DeclareFontSeriesChangeRule {sbc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {sbsc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {sb}{bx} {bx} {b} \DeclareFontSeriesChangeRule {sbsx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {sbx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {sbex}{bx} {bx} {b} \DeclareFontSeriesChangeRule {sbux}{bx} {bx} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {buc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {bec}{bx} {bx} {b} \DeclareFontSeriesChangeRule {bc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {bsc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {b}{bx} {bx} {b} \DeclareFontSeriesChangeRule {bsx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {bx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {bex}{bx} {bx} {b} \DeclareFontSeriesChangeRule {bux}{bx} {bx} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ebuc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ebec}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ebc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ebsc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {eb}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ebsx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ebx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ebex}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ebux}{bx} {bx} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {ubuc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ubec}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ubc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ubsc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ub}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ubsx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ubx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ubex}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ubux}{bx} {bx} {b} % \end{macrocode} % % \begin{macrocode} \DeclareFontSeriesChangeRule {uc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ec}{bx} {bx} {b} \DeclareFontSeriesChangeRule {c}{bx} {bx} {b} \DeclareFontSeriesChangeRule {sc}{bx} {bx} {b} \DeclareFontSeriesChangeRule {m}{bx} {bx} {b} \DeclareFontSeriesChangeRule {sx}{bx} {bx} {b} \DeclareFontSeriesChangeRule {x}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ex}{bx} {bx} {b} \DeclareFontSeriesChangeRule {ux}{bx} {bx} {b} % \end{macrocode} % % Here are the special rules for \texttt{m?}: % \begin{macrocode} \DeclareFontSeriesChangeRule {uluc}{m?} {uc} {} \DeclareFontSeriesChangeRule {ulec}{m?} {ec} {} \DeclareFontSeriesChangeRule {ulc}{m?} {c} {} \DeclareFontSeriesChangeRule {ulsc}{m?} {sc} {} \DeclareFontSeriesChangeRule {ul}{m?} {m} {} \DeclareFontSeriesChangeRule {ulsx}{m?} {sx} {} \DeclareFontSeriesChangeRule {ulx}{m?} {x} {} \DeclareFontSeriesChangeRule {ulex}{m?} {ex} {} \DeclareFontSeriesChangeRule {ulux}{m?} {ux} {} \DeclareFontSeriesChangeRule {eluc}{m?} {uc} {} \DeclareFontSeriesChangeRule {elec}{m?} {ec} {} \DeclareFontSeriesChangeRule {elc}{m?} {c} {} \DeclareFontSeriesChangeRule {elsc}{m?} {sc} {} \DeclareFontSeriesChangeRule {el}{m?} {m} {} \DeclareFontSeriesChangeRule {elsx}{m?} {sx} {} \DeclareFontSeriesChangeRule {elx}{m?} {x} {} \DeclareFontSeriesChangeRule {elex}{m?} {ex} {} \DeclareFontSeriesChangeRule {elux}{m?} {ux} {} \DeclareFontSeriesChangeRule {luc}{m?} {uc} {} \DeclareFontSeriesChangeRule {lec}{m?} {ec} {} \DeclareFontSeriesChangeRule {lc}{m?} {c} {} \DeclareFontSeriesChangeRule {lsc}{m?} {sc} {} \DeclareFontSeriesChangeRule {l}{m?} {m} {} \DeclareFontSeriesChangeRule {lsx}{m?} {sx} {} \DeclareFontSeriesChangeRule {lx}{m?} {x} {} \DeclareFontSeriesChangeRule {lex}{m?} {ex} {} \DeclareFontSeriesChangeRule {lux}{m?} {ux} {} \DeclareFontSeriesChangeRule {sluc}{m?} {uc} {} \DeclareFontSeriesChangeRule {slec}{m?} {ec} {} \DeclareFontSeriesChangeRule {slc}{m?} {c} {} \DeclareFontSeriesChangeRule {slsc}{m?} {sc} {} \DeclareFontSeriesChangeRule {sl}{m?} {m} {} \DeclareFontSeriesChangeRule {slsx}{m?} {sx} {} \DeclareFontSeriesChangeRule {slx}{m?} {x} {} \DeclareFontSeriesChangeRule {slex}{m?} {ex} {} \DeclareFontSeriesChangeRule {slux}{m?} {ux} {} \DeclareFontSeriesChangeRule {uc}{m?} {uc} {} \DeclareFontSeriesChangeRule {ec}{m?} {ec} {} \DeclareFontSeriesChangeRule {c}{m?} {c} {} \DeclareFontSeriesChangeRule {sc}{m?} {sc} {} \DeclareFontSeriesChangeRule {m}{m?} {m} {} \DeclareFontSeriesChangeRule {sx}{m?} {sx} {} \DeclareFontSeriesChangeRule {x}{m?} {x} {} \DeclareFontSeriesChangeRule {ex}{m?} {ex} {} \DeclareFontSeriesChangeRule {ux}{m?} {ux} {} \DeclareFontSeriesChangeRule {sbuc}{m?} {uc} {} \DeclareFontSeriesChangeRule {sbec}{m?} {ec} {} \DeclareFontSeriesChangeRule {sbc}{m?} {c} {} \DeclareFontSeriesChangeRule {sbsc}{m?} {sc} {} \DeclareFontSeriesChangeRule {sb}{m?} {m} {} \DeclareFontSeriesChangeRule {sbsx}{m?} {sx} {} \DeclareFontSeriesChangeRule {sbx}{m?} {x} {} \DeclareFontSeriesChangeRule {sbex}{m?} {ex} {} \DeclareFontSeriesChangeRule {sbux}{m?} {ux} {} \DeclareFontSeriesChangeRule {buc}{m?} {uc} {} \DeclareFontSeriesChangeRule {bec}{m?} {ec} {} \DeclareFontSeriesChangeRule {bc}{m?} {c} {} \DeclareFontSeriesChangeRule {bsc}{m?} {sc} {} \DeclareFontSeriesChangeRule {b}{m?} {m} {} \DeclareFontSeriesChangeRule {bsx}{m?} {sx} {} \DeclareFontSeriesChangeRule {bx}{m?} {x} {} \DeclareFontSeriesChangeRule {bex}{m?} {ex} {} \DeclareFontSeriesChangeRule {bux}{m?} {ux} {} \DeclareFontSeriesChangeRule {ebuc}{m?} {uc} {} \DeclareFontSeriesChangeRule {ebec}{m?} {ec} {} \DeclareFontSeriesChangeRule {ebc}{m?} {c} {} \DeclareFontSeriesChangeRule {ebsc}{m?} {sc} {} \DeclareFontSeriesChangeRule {eb}{m?} {m} {} \DeclareFontSeriesChangeRule {ebsx}{m?} {sx} {} \DeclareFontSeriesChangeRule {ebx}{m?} {x} {} \DeclareFontSeriesChangeRule {ebex}{m?} {ex} {} \DeclareFontSeriesChangeRule {ebux}{m?} {ux} {} \DeclareFontSeriesChangeRule {ubuc}{m?} {uc} {} \DeclareFontSeriesChangeRule {ubec}{m?} {ec} {} \DeclareFontSeriesChangeRule {ubc}{m?} {c} {} \DeclareFontSeriesChangeRule {ubsc}{m?} {sc} {} \DeclareFontSeriesChangeRule {ub}{m?} {m} {} \DeclareFontSeriesChangeRule {ubsx}{m?} {sx} {} \DeclareFontSeriesChangeRule {ubx}{m?} {x} {} \DeclareFontSeriesChangeRule {ubex}{m?} {ex} {} \DeclareFontSeriesChangeRule {ubux}{m?} {ux} {} % \end{macrocode} % % And there the special rules for \texttt{?m}: % \begin{macrocode} \DeclareFontSeriesChangeRule {uluc}{?m} {ul} {} \DeclareFontSeriesChangeRule {ulec}{?m} {ul} {} \DeclareFontSeriesChangeRule {ulc}{?m} {ul} {} \DeclareFontSeriesChangeRule {ulsc}{?m} {ul} {} \DeclareFontSeriesChangeRule {ul}{?m} {ul} {} \DeclareFontSeriesChangeRule {ulsx}{?m} {ul} {} \DeclareFontSeriesChangeRule {ulx}{?m} {ul} {} \DeclareFontSeriesChangeRule {ulex}{?m} {ul} {} \DeclareFontSeriesChangeRule {ulux}{?m} {ul} {} \DeclareFontSeriesChangeRule {eluc}{?m} {el} {} \DeclareFontSeriesChangeRule {elec}{?m} {el} {} \DeclareFontSeriesChangeRule {elc}{?m} {el} {} \DeclareFontSeriesChangeRule {elsc}{?m} {el} {} \DeclareFontSeriesChangeRule {el}{?m} {el} {} \DeclareFontSeriesChangeRule {elsx}{?m} {el} {} \DeclareFontSeriesChangeRule {elx}{?m} {el} {} \DeclareFontSeriesChangeRule {elex}{?m} {el} {} \DeclareFontSeriesChangeRule {elux}{?m} {el} {} \DeclareFontSeriesChangeRule {luc}{?m} {l} {} \DeclareFontSeriesChangeRule {lec}{?m} {l} {} \DeclareFontSeriesChangeRule {lc}{?m} {l} {} \DeclareFontSeriesChangeRule {lsc}{?m} {l} {} \DeclareFontSeriesChangeRule {l}{?m} {l} {} \DeclareFontSeriesChangeRule {lsx}{?m} {l} {} \DeclareFontSeriesChangeRule {lx}{?m} {l} {} \DeclareFontSeriesChangeRule {lex}{?m} {l} {} \DeclareFontSeriesChangeRule {lux}{?m} {l} {} \DeclareFontSeriesChangeRule {sluc}{?m} {sl} {} \DeclareFontSeriesChangeRule {slec}{?m} {sl} {} \DeclareFontSeriesChangeRule {slc}{?m} {sl} {} \DeclareFontSeriesChangeRule {slsc}{?m} {sl} {} \DeclareFontSeriesChangeRule {sl}{?m} {sl} {} \DeclareFontSeriesChangeRule {slsx}{?m} {sl} {} \DeclareFontSeriesChangeRule {slx}{?m} {sl} {} \DeclareFontSeriesChangeRule {slex}{?m} {sl} {} \DeclareFontSeriesChangeRule {slux}{?m} {sl} {} \DeclareFontSeriesChangeRule {uc}{?m} {m} {} \DeclareFontSeriesChangeRule {ec}{?m} {m} {} \DeclareFontSeriesChangeRule {c}{?m} {m} {} \DeclareFontSeriesChangeRule {sc}{?m} {m} {} \DeclareFontSeriesChangeRule {m}{?m} {m} {} \DeclareFontSeriesChangeRule {sx}{?m} {m} {} \DeclareFontSeriesChangeRule {x}{?m} {m} {} \DeclareFontSeriesChangeRule {ex}{?m} {m} {} \DeclareFontSeriesChangeRule {ux}{?m} {m} {} \DeclareFontSeriesChangeRule {sbuc}{?m} {sb} {} \DeclareFontSeriesChangeRule {sbec}{?m} {sb} {} \DeclareFontSeriesChangeRule {sbc}{?m} {sb} {} \DeclareFontSeriesChangeRule {sbsc}{?m} {sb} {} \DeclareFontSeriesChangeRule {sb}{?m} {sb} {} \DeclareFontSeriesChangeRule {sbsx}{?m} {sb} {} \DeclareFontSeriesChangeRule {sbx}{?m} {sb} {} \DeclareFontSeriesChangeRule {sbex}{?m} {sb} {} \DeclareFontSeriesChangeRule {sbux}{?m} {sb} {} \DeclareFontSeriesChangeRule {buc}{?m} {b} {} \DeclareFontSeriesChangeRule {bec}{?m} {b} {} \DeclareFontSeriesChangeRule {bc}{?m} {b} {} \DeclareFontSeriesChangeRule {bsc}{?m} {b} {} \DeclareFontSeriesChangeRule {b}{?m} {b} {} \DeclareFontSeriesChangeRule {bsx}{?m} {b} {} \DeclareFontSeriesChangeRule {bx}{?m} {b} {} \DeclareFontSeriesChangeRule {bex}{?m} {b} {} \DeclareFontSeriesChangeRule {bux}{?m} {b} {} \DeclareFontSeriesChangeRule {ebuc}{?m} {eb} {} \DeclareFontSeriesChangeRule {ebec}{?m} {eb} {} \DeclareFontSeriesChangeRule {ebc}{?m} {eb} {} \DeclareFontSeriesChangeRule {ebsc}{?m} {eb} {} \DeclareFontSeriesChangeRule {eb}{?m} {eb} {} \DeclareFontSeriesChangeRule {ebsx}{?m} {eb} {} \DeclareFontSeriesChangeRule {ebx}{?m} {eb} {} \DeclareFontSeriesChangeRule {ebex}{?m} {eb} {} \DeclareFontSeriesChangeRule {ebux}{?m} {eb} {} \DeclareFontSeriesChangeRule {ubuc}{?m} {ub} {} \DeclareFontSeriesChangeRule {ubec}{?m} {ub} {} \DeclareFontSeriesChangeRule {ubc}{?m} {ub} {} \DeclareFontSeriesChangeRule {ubsc}{?m} {ub} {} \DeclareFontSeriesChangeRule {ub}{?m} {ub} {} \DeclareFontSeriesChangeRule {ubsx}{?m} {ub} {} \DeclareFontSeriesChangeRule {ubx}{?m} {ub} {} \DeclareFontSeriesChangeRule {ubex}{?m} {ub} {} \DeclareFontSeriesChangeRule {ubux}{?m} {ub} {} % \end{macrocode} % % \begin{macrocode} % %\EndIncludeInRelease % \end{macrocode} % % % Supporting rollback \ldots % \begin{macrocode} %\IncludeInRelease{2020/02/02}% % {\DeclareFontSeriesChangeRule}{Series change rules}% % \end{macrocode} % The next definition is only needed if somebody rolls forward from a % release older than 2020-02-02 but not to the latest version but % one before 2025-06-01. Pretty unlikely, but \ldots. % \begin{macrocode} % %\def\DeclareFontSeriesChangeRule#1#2#3#4{% % \@namedef{series@#1@#2}{{#3}{#4}}} % % \end{macrocode} % The huge set of declarations below are those from 2020-02-02 plus % all from above that were newly added (but now with empty result % and alternative result arguments). To compile this list I sorted % both together and then dropped entries appearing twice. This is % why the sorting is now different from the one above. % \begin{macrocode} %\DeclareFontSeriesChangeRule {bc}{bx} {} {} %\DeclareFontSeriesChangeRule {bc}{b}{bc}{} %\DeclareFontSeriesChangeRule {bc}{c}{bc}{} %\DeclareFontSeriesChangeRule {bc}{eb}{ebc}{} %\DeclareFontSeriesChangeRule {bc}{ec}{bec} {bc} %\DeclareFontSeriesChangeRule {bc}{el}{elc}{} %\DeclareFontSeriesChangeRule {bc}{ex} {} {} %\DeclareFontSeriesChangeRule {bc}{l}{lc}{} %\DeclareFontSeriesChangeRule {bc}{sb}{sbc}{} %\DeclareFontSeriesChangeRule {bc}{sc}{bsc} {bc} %\DeclareFontSeriesChangeRule {bc}{sl}{slc}{} %\DeclareFontSeriesChangeRule {bc}{sx} {} {} %\DeclareFontSeriesChangeRule {bc}{ub}{ubc}{} %\DeclareFontSeriesChangeRule {bc}{uc} {} {} %\DeclareFontSeriesChangeRule {bc}{ul}{ulc}{} %\DeclareFontSeriesChangeRule {bc}{ux} {} {} %\DeclareFontSeriesChangeRule {bc}{x}{bx}{} %\DeclareFontSeriesChangeRule {bec}{bx} {} {} %\DeclareFontSeriesChangeRule {bec}{b} {} {} %\DeclareFontSeriesChangeRule {bec}{c} {} {} %\DeclareFontSeriesChangeRule {bec}{eb} {} {} %\DeclareFontSeriesChangeRule {bec}{ec} {} {} %\DeclareFontSeriesChangeRule {bec}{el} {} {} %\DeclareFontSeriesChangeRule {bec}{ex} {} {} %\DeclareFontSeriesChangeRule {bec}{l} {} {} %\DeclareFontSeriesChangeRule {bec}{sb} {} {} %\DeclareFontSeriesChangeRule {bec}{sc} {} {} %\DeclareFontSeriesChangeRule {bec}{sl} {} {} %\DeclareFontSeriesChangeRule {bec}{sx} {} {} %\DeclareFontSeriesChangeRule {bec}{ub} {} {} %\DeclareFontSeriesChangeRule {bec}{uc} {} {} %\DeclareFontSeriesChangeRule {bec}{ul} {} {} %\DeclareFontSeriesChangeRule {bec}{ux} {} {} %\DeclareFontSeriesChangeRule {bec}{x} {} {} %\DeclareFontSeriesChangeRule {bex}{?m} {} {} %\DeclareFontSeriesChangeRule {bex}{bx} {} {} %\DeclareFontSeriesChangeRule {bex}{b} {} {} %\DeclareFontSeriesChangeRule {bex}{c} {} {} %\DeclareFontSeriesChangeRule {bex}{eb} {} {} %\DeclareFontSeriesChangeRule {bex}{ec} {} {} %\DeclareFontSeriesChangeRule {bex}{el} {} {} %\DeclareFontSeriesChangeRule {bex}{ex} {} {} %\DeclareFontSeriesChangeRule {bex}{l} {} {} %\DeclareFontSeriesChangeRule {bex}{m?} {} {} %\DeclareFontSeriesChangeRule {bex}{sb} {} {} %\DeclareFontSeriesChangeRule {bex}{sc} {} {} %\DeclareFontSeriesChangeRule {bex}{sl} {} {} %\DeclareFontSeriesChangeRule {bex}{sx} {} {} %\DeclareFontSeriesChangeRule {bex}{ub} {} {} %\DeclareFontSeriesChangeRule {bex}{uc} {} {} %\DeclareFontSeriesChangeRule {bex}{ul} {} {} %\DeclareFontSeriesChangeRule {bex}{ux} {} {} %\DeclareFontSeriesChangeRule {bex}{x} {} {} %\DeclareFontSeriesChangeRule {bsc}{bx} {} {} %\DeclareFontSeriesChangeRule {bsc}{b} {} {} %\DeclareFontSeriesChangeRule {bsc}{c} {} {} %\DeclareFontSeriesChangeRule {bsc}{eb} {} {} %\DeclareFontSeriesChangeRule {bsc}{ec} {} {} %\DeclareFontSeriesChangeRule {bsc}{el} {} {} %\DeclareFontSeriesChangeRule {bsc}{ex} {} {} %\DeclareFontSeriesChangeRule {bsc}{l} {} {} %\DeclareFontSeriesChangeRule {bsc}{sb} {} {} %\DeclareFontSeriesChangeRule {bsc}{sc} {} {} %\DeclareFontSeriesChangeRule {bsc}{sl} {} {} %\DeclareFontSeriesChangeRule {bsc}{sx} {} {} %\DeclareFontSeriesChangeRule {bsc}{ub} {} {} %\DeclareFontSeriesChangeRule {bsc}{uc} {} {} %\DeclareFontSeriesChangeRule {bsc}{ul} {} {} %\DeclareFontSeriesChangeRule {bsc}{ux} {} {} %\DeclareFontSeriesChangeRule {bsc}{x} {} {} %\DeclareFontSeriesChangeRule {bsx}{?m} {} {} %\DeclareFontSeriesChangeRule {bsx}{bx} {} {} %\DeclareFontSeriesChangeRule {bsx}{b} {} {} %\DeclareFontSeriesChangeRule {bsx}{c} {} {} %\DeclareFontSeriesChangeRule {bsx}{eb} {} {} %\DeclareFontSeriesChangeRule {bsx}{ec} {} {} %\DeclareFontSeriesChangeRule {bsx}{el} {} {} %\DeclareFontSeriesChangeRule {bsx}{ex} {} {} %\DeclareFontSeriesChangeRule {bsx}{l} {} {} %\DeclareFontSeriesChangeRule {bsx}{m?} {} {} %\DeclareFontSeriesChangeRule {bsx}{sb} {} {} %\DeclareFontSeriesChangeRule {bsx}{sc} {} {} %\DeclareFontSeriesChangeRule {bsx}{sl} {} {} %\DeclareFontSeriesChangeRule {bsx}{sx} {} {} %\DeclareFontSeriesChangeRule {bsx}{ub} {} {} %\DeclareFontSeriesChangeRule {bsx}{uc} {} {} %\DeclareFontSeriesChangeRule {bsx}{ul} {} {} %\DeclareFontSeriesChangeRule {bsx}{ux} {} {} %\DeclareFontSeriesChangeRule {bsx}{x} {} {} %\DeclareFontSeriesChangeRule {buc}{?m} {} {} %\DeclareFontSeriesChangeRule {buc}{bx} {} {} %\DeclareFontSeriesChangeRule {buc}{b} {} {} %\DeclareFontSeriesChangeRule {buc}{c} {} {} %\DeclareFontSeriesChangeRule {buc}{eb} {} {} %\DeclareFontSeriesChangeRule {buc}{ec} {} {} %\DeclareFontSeriesChangeRule {buc}{el} {} {} %\DeclareFontSeriesChangeRule {buc}{ex} {} {} %\DeclareFontSeriesChangeRule {buc}{l} {} {} %\DeclareFontSeriesChangeRule {buc}{m?} {} {} %\DeclareFontSeriesChangeRule {buc}{sb} {} {} %\DeclareFontSeriesChangeRule {buc}{sc} {} {} %\DeclareFontSeriesChangeRule {buc}{sl} {} {} %\DeclareFontSeriesChangeRule {buc}{sx} {} {} %\DeclareFontSeriesChangeRule {buc}{ub} {} {} %\DeclareFontSeriesChangeRule {buc}{uc} {} {} %\DeclareFontSeriesChangeRule {buc}{ul} {} {} %\DeclareFontSeriesChangeRule {buc}{ux} {} {} %\DeclareFontSeriesChangeRule {buc}{x} {} {} %\DeclareFontSeriesChangeRule {bux}{?m} {} {} %\DeclareFontSeriesChangeRule {bux}{bx} {} {} %\DeclareFontSeriesChangeRule {bux}{b} {} {} %\DeclareFontSeriesChangeRule {bux}{c} {} {} %\DeclareFontSeriesChangeRule {bux}{eb} {} {} %\DeclareFontSeriesChangeRule {bux}{ec} {} {} %\DeclareFontSeriesChangeRule {bux}{el} {} {} %\DeclareFontSeriesChangeRule {bux}{ex} {} {} %\DeclareFontSeriesChangeRule {bux}{l} {} {} %\DeclareFontSeriesChangeRule {bux}{m?} {} {} %\DeclareFontSeriesChangeRule {bux}{sb} {} {} %\DeclareFontSeriesChangeRule {bux}{sc} {} {} %\DeclareFontSeriesChangeRule {bux}{sl} {} {} %\DeclareFontSeriesChangeRule {bux}{sx} {} {} %\DeclareFontSeriesChangeRule {bux}{ub} {} {} %\DeclareFontSeriesChangeRule {bux}{uc} {} {} %\DeclareFontSeriesChangeRule {bux}{ul} {} {} %\DeclareFontSeriesChangeRule {bux}{ux} {} {} %\DeclareFontSeriesChangeRule {bux}{x} {} {} %\DeclareFontSeriesChangeRule {bx}{bx} {} {} %\DeclareFontSeriesChangeRule {bx}{b}{bx}{} %\DeclareFontSeriesChangeRule {bx}{c} {bc} {bx} %\DeclareFontSeriesChangeRule {bx}{eb}{ebx}{} %\DeclareFontSeriesChangeRule {bx}{ec} {bec} {bx} %\DeclareFontSeriesChangeRule {bx}{el}{elx}{} %\DeclareFontSeriesChangeRule {bx}{ex} {} {} %\DeclareFontSeriesChangeRule {bx}{l}{lx}{} %\DeclareFontSeriesChangeRule {bx}{sb} {sbx} {} %\DeclareFontSeriesChangeRule {bx}{sc} {bsc} {bx} %\DeclareFontSeriesChangeRule {bx}{sl}{slx} {} %\DeclareFontSeriesChangeRule {bx}{sx} {} {} %\DeclareFontSeriesChangeRule {bx}{ub}{ubx}{} %\DeclareFontSeriesChangeRule {bx}{uc} {} {} %\DeclareFontSeriesChangeRule {bx}{ul}{ulx}{} %\DeclareFontSeriesChangeRule {bx}{ux} {} {} %\DeclareFontSeriesChangeRule {bx}{x}{bx}{} %\DeclareFontSeriesChangeRule {b}{bx} {bx} {b} %\DeclareFontSeriesChangeRule {b}{c} {bc} {b} %\DeclareFontSeriesChangeRule {b}{eb} {} {} %\DeclareFontSeriesChangeRule {b}{ec} {bec} {b} %\DeclareFontSeriesChangeRule {b}{ex} {} {} %\DeclareFontSeriesChangeRule {b}{sb} {sb} {b} %\DeclareFontSeriesChangeRule {b}{sc} {bsc} {b} %\DeclareFontSeriesChangeRule {b}{sx} {} {} %\DeclareFontSeriesChangeRule {b}{ub} {} {} %\DeclareFontSeriesChangeRule {b}{uc} {} {} %\DeclareFontSeriesChangeRule {b}{ux} {} {} %\DeclareFontSeriesChangeRule {b}{x} {bx} {b} %\DeclareFontSeriesChangeRule {c}{bx} {bx} {b} %\DeclareFontSeriesChangeRule {c}{b}{bc}{} %\DeclareFontSeriesChangeRule {c}{eb}{ebc}{} %\DeclareFontSeriesChangeRule {c}{ec} {} {} %\DeclareFontSeriesChangeRule {c}{el}{elc}{} %\DeclareFontSeriesChangeRule {c}{l}{lc}{} %\DeclareFontSeriesChangeRule {c}{sb}{sbc}{} %\DeclareFontSeriesChangeRule {c}{sc} {} {} %\DeclareFontSeriesChangeRule {c}{sl}{slc}{} %\DeclareFontSeriesChangeRule {c}{ub}{ubc}{} %\DeclareFontSeriesChangeRule {c}{uc} {} {} %\DeclareFontSeriesChangeRule {c}{x}{x}{m} %\DeclareFontSeriesChangeRule {ebc}{bx} {} {} %\DeclareFontSeriesChangeRule {ebc}{b}{bc}{} %\DeclareFontSeriesChangeRule {ebc}{c}{ebc}{} %\DeclareFontSeriesChangeRule {ebc}{eb}{ebc}{} %\DeclareFontSeriesChangeRule {ebc}{ec}{ebec}{ebc} %\DeclareFontSeriesChangeRule {ebc}{el}{elc}{} %\DeclareFontSeriesChangeRule {ebc}{ex} {} {} %\DeclareFontSeriesChangeRule {ebc}{l}{lc}{} %\DeclareFontSeriesChangeRule {ebc}{sb}{sbc}{} %\DeclareFontSeriesChangeRule {ebc}{sc}{ebsc}{ebc} %\DeclareFontSeriesChangeRule {ebc}{sl}{slc}{} %\DeclareFontSeriesChangeRule {ebc}{sx} {} {} %\DeclareFontSeriesChangeRule {ebc}{ub}{ubc}{} %\DeclareFontSeriesChangeRule {ebc}{uc} {} {} %\DeclareFontSeriesChangeRule {ebc}{ul}{ulc}{} %\DeclareFontSeriesChangeRule {ebc}{ux} {} {} %\DeclareFontSeriesChangeRule {ebc}{x}{ebx}{} %\DeclareFontSeriesChangeRule {ebec}{bx} {} {} %\DeclareFontSeriesChangeRule {ebec}{b} {} {} %\DeclareFontSeriesChangeRule {ebec}{c} {} {} %\DeclareFontSeriesChangeRule {ebec}{eb} {} {} %\DeclareFontSeriesChangeRule {ebec}{ec} {} {} %\DeclareFontSeriesChangeRule {ebec}{el} {} {} %\DeclareFontSeriesChangeRule {ebec}{ex} {} {} %\DeclareFontSeriesChangeRule {ebec}{l} {} {} %\DeclareFontSeriesChangeRule {ebec}{sb} {} {} %\DeclareFontSeriesChangeRule {ebec}{sc} {} {} %\DeclareFontSeriesChangeRule {ebec}{sl} {} {} %\DeclareFontSeriesChangeRule {ebec}{sx} {} {} %\DeclareFontSeriesChangeRule {ebec}{ub} {} {} %\DeclareFontSeriesChangeRule {ebec}{uc} {} {} %\DeclareFontSeriesChangeRule {ebec}{ul} {} {} %\DeclareFontSeriesChangeRule {ebec}{ux} {} {} %\DeclareFontSeriesChangeRule {ebec}{x} {} {} %\DeclareFontSeriesChangeRule {ebex}{?m} {} {} %\DeclareFontSeriesChangeRule {ebex}{bx} {} {} %\DeclareFontSeriesChangeRule {ebex}{b} {} {} %\DeclareFontSeriesChangeRule {ebex}{c} {} {} %\DeclareFontSeriesChangeRule {ebex}{eb} {} {} %\DeclareFontSeriesChangeRule {ebex}{ec} {} {} %\DeclareFontSeriesChangeRule {ebex}{el} {} {} %\DeclareFontSeriesChangeRule {ebex}{ex} {} {} %\DeclareFontSeriesChangeRule {ebex}{l} {} {} %\DeclareFontSeriesChangeRule {ebex}{m?} {} {} %\DeclareFontSeriesChangeRule {ebex}{sb} {} {} %\DeclareFontSeriesChangeRule {ebex}{sc} {} {} %\DeclareFontSeriesChangeRule {ebex}{sl} {} {} %\DeclareFontSeriesChangeRule {ebex}{sx} {} {} %\DeclareFontSeriesChangeRule {ebex}{ub} {} {} %\DeclareFontSeriesChangeRule {ebex}{uc} {} {} %\DeclareFontSeriesChangeRule {ebex}{ul} {} {} %\DeclareFontSeriesChangeRule {ebex}{ux} {} {} %\DeclareFontSeriesChangeRule {ebex}{x} {} {} %\DeclareFontSeriesChangeRule {ebsc}{bx} {} {} %\DeclareFontSeriesChangeRule {ebsc}{b} {} {} %\DeclareFontSeriesChangeRule {ebsc}{c} {} {} %\DeclareFontSeriesChangeRule {ebsc}{eb} {} {} %\DeclareFontSeriesChangeRule {ebsc}{ec} {} {} %\DeclareFontSeriesChangeRule {ebsc}{el} {} {} %\DeclareFontSeriesChangeRule {ebsc}{ex} {} {} %\DeclareFontSeriesChangeRule {ebsc}{l} {} {} %\DeclareFontSeriesChangeRule {ebsc}{sb} {} {} %\DeclareFontSeriesChangeRule {ebsc}{sc} {} {} %\DeclareFontSeriesChangeRule {ebsc}{sl} {} {} %\DeclareFontSeriesChangeRule {ebsc}{sx} {} {} %\DeclareFontSeriesChangeRule {ebsc}{ub} {} {} %\DeclareFontSeriesChangeRule {ebsc}{uc} {} {} %\DeclareFontSeriesChangeRule {ebsc}{ul} {} {} %\DeclareFontSeriesChangeRule {ebsc}{ux} {} {} %\DeclareFontSeriesChangeRule {ebsc}{x} {} {} %\DeclareFontSeriesChangeRule {ebsx}{?m} {} {} %\DeclareFontSeriesChangeRule {ebsx}{bx} {} {} %\DeclareFontSeriesChangeRule {ebsx}{b} {} {} %\DeclareFontSeriesChangeRule {ebsx}{c} {} {} %\DeclareFontSeriesChangeRule {ebsx}{eb} {} {} %\DeclareFontSeriesChangeRule {ebsx}{ec} {} {} %\DeclareFontSeriesChangeRule {ebsx}{el} {} {} %\DeclareFontSeriesChangeRule {ebsx}{ex} {} {} %\DeclareFontSeriesChangeRule {ebsx}{l} {} {} %\DeclareFontSeriesChangeRule {ebsx}{m?} {} {} %\DeclareFontSeriesChangeRule {ebsx}{sb} {} {} %\DeclareFontSeriesChangeRule {ebsx}{sc} {} {} %\DeclareFontSeriesChangeRule {ebsx}{sl} {} {} %\DeclareFontSeriesChangeRule {ebsx}{sx} {} {} %\DeclareFontSeriesChangeRule {ebsx}{ub} {} {} %\DeclareFontSeriesChangeRule {ebsx}{uc} {} {} %\DeclareFontSeriesChangeRule {ebsx}{ul} {} {} %\DeclareFontSeriesChangeRule {ebsx}{ux} {} {} %\DeclareFontSeriesChangeRule {ebsx}{x} {} {} %\DeclareFontSeriesChangeRule {ebuc}{?m} {} {} %\DeclareFontSeriesChangeRule {ebuc}{bx} {} {} %\DeclareFontSeriesChangeRule {ebuc}{b} {} {} %\DeclareFontSeriesChangeRule {ebuc}{c} {} {} %\DeclareFontSeriesChangeRule {ebuc}{eb} {} {} %\DeclareFontSeriesChangeRule {ebuc}{ec} {} {} %\DeclareFontSeriesChangeRule {ebuc}{el} {} {} %\DeclareFontSeriesChangeRule {ebuc}{ex} {} {} %\DeclareFontSeriesChangeRule {ebuc}{l} {} {} %\DeclareFontSeriesChangeRule {ebuc}{m?} {} {} %\DeclareFontSeriesChangeRule {ebuc}{sb} {} {} %\DeclareFontSeriesChangeRule {ebuc}{sc} {} {} %\DeclareFontSeriesChangeRule {ebuc}{sl} {} {} %\DeclareFontSeriesChangeRule {ebuc}{sx} {} {} %\DeclareFontSeriesChangeRule {ebuc}{ub} {} {} %\DeclareFontSeriesChangeRule {ebuc}{uc} {} {} %\DeclareFontSeriesChangeRule {ebuc}{ul} {} {} %\DeclareFontSeriesChangeRule {ebuc}{ux} {} {} %\DeclareFontSeriesChangeRule {ebuc}{x} {} {} %\DeclareFontSeriesChangeRule {ebux}{?m} {} {} %\DeclareFontSeriesChangeRule {ebux}{bx} {} {} %\DeclareFontSeriesChangeRule {ebux}{b} {} {} %\DeclareFontSeriesChangeRule {ebux}{c} {} {} %\DeclareFontSeriesChangeRule {ebux}{eb} {} {} %\DeclareFontSeriesChangeRule {ebux}{ec} {} {} %\DeclareFontSeriesChangeRule {ebux}{el} {} {} %\DeclareFontSeriesChangeRule {ebux}{ex} {} {} %\DeclareFontSeriesChangeRule {ebux}{l} {} {} %\DeclareFontSeriesChangeRule {ebux}{m?} {} {} %\DeclareFontSeriesChangeRule {ebux}{sb} {} {} %\DeclareFontSeriesChangeRule {ebux}{sc} {} {} %\DeclareFontSeriesChangeRule {ebux}{sl} {} {} %\DeclareFontSeriesChangeRule {ebux}{sx} {} {} %\DeclareFontSeriesChangeRule {ebux}{ub} {} {} %\DeclareFontSeriesChangeRule {ebux}{uc} {} {} %\DeclareFontSeriesChangeRule {ebux}{ul} {} {} %\DeclareFontSeriesChangeRule {ebux}{ux} {} {} %\DeclareFontSeriesChangeRule {ebux}{x} {} {} %\DeclareFontSeriesChangeRule {ebx}{bx} {} {} %\DeclareFontSeriesChangeRule {ebx}{b}{bx}{} %\DeclareFontSeriesChangeRule {ebx}{c}{ebc}{} %\DeclareFontSeriesChangeRule {ebx}{eb}{ebx}{} %\DeclareFontSeriesChangeRule {ebx}{ec}{ebec}{} %\DeclareFontSeriesChangeRule {ebx}{el}{elx}{} %\DeclareFontSeriesChangeRule {ebx}{ex} {} {} %\DeclareFontSeriesChangeRule {ebx}{l}{lx}{} %\DeclareFontSeriesChangeRule {ebx}{sb}{sbx}{} %\DeclareFontSeriesChangeRule {ebx}{sc}{ebsc}{} %\DeclareFontSeriesChangeRule {ebx}{sl}{slx}{} %\DeclareFontSeriesChangeRule {ebx}{sx} {} {} %\DeclareFontSeriesChangeRule {ebx}{ub}{ubx}{} %\DeclareFontSeriesChangeRule {ebx}{uc} {} {} %\DeclareFontSeriesChangeRule {ebx}{ul}{ulx}{} %\DeclareFontSeriesChangeRule {ebx}{ux} {} {} %\DeclareFontSeriesChangeRule {ebx}{x}{ebx}{} %\DeclareFontSeriesChangeRule {eb}{bx} {} {} %\DeclareFontSeriesChangeRule {eb}{c}{ebc}{} %\DeclareFontSeriesChangeRule {eb}{ec}{ebec}{} %\DeclareFontSeriesChangeRule {eb}{ex} {} {} %\DeclareFontSeriesChangeRule {eb}{sb} {} {} %\DeclareFontSeriesChangeRule {eb}{sc}{ebsc}{} %\DeclareFontSeriesChangeRule {eb}{sx} {} {} %\DeclareFontSeriesChangeRule {eb}{ub} {} {} %\DeclareFontSeriesChangeRule {eb}{uc} {} {} %\DeclareFontSeriesChangeRule {eb}{ux} {} {} %\DeclareFontSeriesChangeRule {eb}{x}{ebx}{} %\DeclareFontSeriesChangeRule {ec}{bx} {bx} {b} %\DeclareFontSeriesChangeRule {ec}{b}{bec}{} %\DeclareFontSeriesChangeRule {ec}{eb}{ebec}{} %\DeclareFontSeriesChangeRule {ec}{el}{elec}{} %\DeclareFontSeriesChangeRule {ec}{l}{lec}{} %\DeclareFontSeriesChangeRule {ec}{sb}{sbec}{} %\DeclareFontSeriesChangeRule {ec}{sl}{slec}{} %\DeclareFontSeriesChangeRule {ec}{ub}{ubec}{} %\DeclareFontSeriesChangeRule {ec}{x}{x}{m} %\DeclareFontSeriesChangeRule {elc}{bx} {} {} %\DeclareFontSeriesChangeRule {elc}{b}{bc}{} %\DeclareFontSeriesChangeRule {elc}{c}{elc}{} %\DeclareFontSeriesChangeRule {elc}{eb}{ebc}{} %\DeclareFontSeriesChangeRule {elc}{ec}{elec}{} %\DeclareFontSeriesChangeRule {elc}{el}{elc}{} %\DeclareFontSeriesChangeRule {elc}{ex} {} {} %\DeclareFontSeriesChangeRule {elc}{l}{lc}{} %\DeclareFontSeriesChangeRule {elc}{sb}{sbc}{} %\DeclareFontSeriesChangeRule {elc}{sc}{elsc}{} %\DeclareFontSeriesChangeRule {elc}{sl}{slc}{} %\DeclareFontSeriesChangeRule {elc}{sx} {} {} %\DeclareFontSeriesChangeRule {elc}{ub}{ubc}{} %\DeclareFontSeriesChangeRule {elc}{uc} {} {} %\DeclareFontSeriesChangeRule {elc}{ul}{ulc}{} %\DeclareFontSeriesChangeRule {elc}{ux} {} {} %\DeclareFontSeriesChangeRule {elc}{x}{elx}{} %\DeclareFontSeriesChangeRule {elec}{bx} {} {} %\DeclareFontSeriesChangeRule {elec}{b} {} {} %\DeclareFontSeriesChangeRule {elec}{c} {} {} %\DeclareFontSeriesChangeRule {elec}{eb} {} {} %\DeclareFontSeriesChangeRule {elec}{ec} {} {} %\DeclareFontSeriesChangeRule {elec}{el} {} {} %\DeclareFontSeriesChangeRule {elec}{ex} {} {} %\DeclareFontSeriesChangeRule {elec}{l} {} {} %\DeclareFontSeriesChangeRule {elec}{sb} {} {} %\DeclareFontSeriesChangeRule {elec}{sc} {} {} %\DeclareFontSeriesChangeRule {elec}{sl} {} {} %\DeclareFontSeriesChangeRule {elec}{sx} {} {} %\DeclareFontSeriesChangeRule {elec}{ub} {} {} %\DeclareFontSeriesChangeRule {elec}{uc} {} {} %\DeclareFontSeriesChangeRule {elec}{ul} {} {} %\DeclareFontSeriesChangeRule {elec}{ux} {} {} %\DeclareFontSeriesChangeRule {elec}{x} {} {} %\DeclareFontSeriesChangeRule {elex}{?m} {} {} %\DeclareFontSeriesChangeRule {elex}{bx} {} {} %\DeclareFontSeriesChangeRule {elex}{b} {} {} %\DeclareFontSeriesChangeRule {elex}{c} {} {} %\DeclareFontSeriesChangeRule {elex}{eb} {} {} %\DeclareFontSeriesChangeRule {elex}{ec} {} {} %\DeclareFontSeriesChangeRule {elex}{el} {} {} %\DeclareFontSeriesChangeRule {elex}{ex} {} {} %\DeclareFontSeriesChangeRule {elex}{l} {} {} %\DeclareFontSeriesChangeRule {elex}{m?} {} {} %\DeclareFontSeriesChangeRule {elex}{sb} {} {} %\DeclareFontSeriesChangeRule {elex}{sc} {} {} %\DeclareFontSeriesChangeRule {elex}{sl} {} {} %\DeclareFontSeriesChangeRule {elex}{sx} {} {} %\DeclareFontSeriesChangeRule {elex}{ub} {} {} %\DeclareFontSeriesChangeRule {elex}{uc} {} {} %\DeclareFontSeriesChangeRule {elex}{ul} {} {} %\DeclareFontSeriesChangeRule {elex}{ux} {} {} %\DeclareFontSeriesChangeRule {elex}{x} {} {} %\DeclareFontSeriesChangeRule {elsc}{bx} {} {} %\DeclareFontSeriesChangeRule {elsc}{b} {} {} %\DeclareFontSeriesChangeRule {elsc}{c} {} {} %\DeclareFontSeriesChangeRule {elsc}{eb} {} {} %\DeclareFontSeriesChangeRule {elsc}{ec} {} {} %\DeclareFontSeriesChangeRule {elsc}{el} {} {} %\DeclareFontSeriesChangeRule {elsc}{ex} {} {} %\DeclareFontSeriesChangeRule {elsc}{l} {} {} %\DeclareFontSeriesChangeRule {elsc}{sb} {} {} %\DeclareFontSeriesChangeRule {elsc}{sc} {} {} %\DeclareFontSeriesChangeRule {elsc}{sl} {} {} %\DeclareFontSeriesChangeRule {elsc}{sx} {} {} %\DeclareFontSeriesChangeRule {elsc}{ub} {} {} %\DeclareFontSeriesChangeRule {elsc}{uc} {} {} %\DeclareFontSeriesChangeRule {elsc}{ul} {} {} %\DeclareFontSeriesChangeRule {elsc}{ux} {} {} %\DeclareFontSeriesChangeRule {elsc}{x} {} {} %\DeclareFontSeriesChangeRule {elsx}{?m} {} {} %\DeclareFontSeriesChangeRule {elsx}{bx} {} {} %\DeclareFontSeriesChangeRule {elsx}{b} {} {} %\DeclareFontSeriesChangeRule {elsx}{c} {} {} %\DeclareFontSeriesChangeRule {elsx}{eb} {} {} %\DeclareFontSeriesChangeRule {elsx}{ec} {} {} %\DeclareFontSeriesChangeRule {elsx}{el} {} {} %\DeclareFontSeriesChangeRule {elsx}{ex} {} {} %\DeclareFontSeriesChangeRule {elsx}{l} {} {} %\DeclareFontSeriesChangeRule {elsx}{m?} {} {} %\DeclareFontSeriesChangeRule {elsx}{sb} {} {} %\DeclareFontSeriesChangeRule {elsx}{sc} {} {} %\DeclareFontSeriesChangeRule {elsx}{sl} {} {} %\DeclareFontSeriesChangeRule {elsx}{sx} {} {} %\DeclareFontSeriesChangeRule {elsx}{ub} {} {} %\DeclareFontSeriesChangeRule {elsx}{uc} {} {} %\DeclareFontSeriesChangeRule {elsx}{ul} {} {} %\DeclareFontSeriesChangeRule {elsx}{ux} {} {} %\DeclareFontSeriesChangeRule {elsx}{x} {} {} %\DeclareFontSeriesChangeRule {eluc}{?m} {} {} %\DeclareFontSeriesChangeRule {eluc}{bx} {} {} %\DeclareFontSeriesChangeRule {eluc}{b} {} {} %\DeclareFontSeriesChangeRule {eluc}{c} {} {} %\DeclareFontSeriesChangeRule {eluc}{eb} {} {} %\DeclareFontSeriesChangeRule {eluc}{ec} {} {} %\DeclareFontSeriesChangeRule {eluc}{el} {} {} %\DeclareFontSeriesChangeRule {eluc}{ex} {} {} %\DeclareFontSeriesChangeRule {eluc}{l} {} {} %\DeclareFontSeriesChangeRule {eluc}{m?} {} {} %\DeclareFontSeriesChangeRule {eluc}{sb} {} {} %\DeclareFontSeriesChangeRule {eluc}{sc} {} {} %\DeclareFontSeriesChangeRule {eluc}{sl} {} {} %\DeclareFontSeriesChangeRule {eluc}{sx} {} {} %\DeclareFontSeriesChangeRule {eluc}{ub} {} {} %\DeclareFontSeriesChangeRule {eluc}{uc} {} {} %\DeclareFontSeriesChangeRule {eluc}{ul} {} {} %\DeclareFontSeriesChangeRule {eluc}{ux} {} {} %\DeclareFontSeriesChangeRule {eluc}{x} {} {} %\DeclareFontSeriesChangeRule {elux}{?m} {} {} %\DeclareFontSeriesChangeRule {elux}{bx} {} {} %\DeclareFontSeriesChangeRule {elux}{b} {} {} %\DeclareFontSeriesChangeRule {elux}{c} {} {} %\DeclareFontSeriesChangeRule {elux}{eb} {} {} %\DeclareFontSeriesChangeRule {elux}{ec} {} {} %\DeclareFontSeriesChangeRule {elux}{el} {} {} %\DeclareFontSeriesChangeRule {elux}{ex} {} {} %\DeclareFontSeriesChangeRule {elux}{l} {} {} %\DeclareFontSeriesChangeRule {elux}{m?} {} {} %\DeclareFontSeriesChangeRule {elux}{sb} {} {} %\DeclareFontSeriesChangeRule {elux}{sc} {} {} %\DeclareFontSeriesChangeRule {elux}{sl} {} {} %\DeclareFontSeriesChangeRule {elux}{sx} {} {} %\DeclareFontSeriesChangeRule {elux}{ub} {} {} %\DeclareFontSeriesChangeRule {elux}{uc} {} {} %\DeclareFontSeriesChangeRule {elux}{ul} {} {} %\DeclareFontSeriesChangeRule {elux}{ux} {} {} %\DeclareFontSeriesChangeRule {elux}{x} {} {} %\DeclareFontSeriesChangeRule {elx}{bx} {} {} %\DeclareFontSeriesChangeRule {elx}{b}{bx}{} %\DeclareFontSeriesChangeRule {elx}{c}{elc}{} %\DeclareFontSeriesChangeRule {elx}{eb}{ebx}{} %\DeclareFontSeriesChangeRule {elx}{ec}{elec}{} %\DeclareFontSeriesChangeRule {elx}{el}{elx}{} %\DeclareFontSeriesChangeRule {elx}{ex} {} {} %\DeclareFontSeriesChangeRule {elx}{l}{lx}{} %\DeclareFontSeriesChangeRule {elx}{sb}{sbx}{} %\DeclareFontSeriesChangeRule {elx}{sc}{elsc}{} %\DeclareFontSeriesChangeRule {elx}{sl}{slx}{} %\DeclareFontSeriesChangeRule {elx}{sx} {} {} %\DeclareFontSeriesChangeRule {elx}{ub}{ubx}{} %\DeclareFontSeriesChangeRule {elx}{uc} {} {} %\DeclareFontSeriesChangeRule {elx}{ul}{ulx}{} %\DeclareFontSeriesChangeRule {elx}{ux} {} {} %\DeclareFontSeriesChangeRule {elx}{x}{elx}{} %\DeclareFontSeriesChangeRule {el}{bx} {} {} %\DeclareFontSeriesChangeRule {el}{c}{elc}{} %\DeclareFontSeriesChangeRule {el}{eb} {} {} %\DeclareFontSeriesChangeRule {el}{ec}{elec}{} %\DeclareFontSeriesChangeRule {el}{ex} {} {} %\DeclareFontSeriesChangeRule {el}{sb} {} {} %\DeclareFontSeriesChangeRule {el}{sc}{elsc}{} %\DeclareFontSeriesChangeRule {el}{sx} {} {} %\DeclareFontSeriesChangeRule {el}{ub} {} {} %\DeclareFontSeriesChangeRule {el}{uc} {} {} %\DeclareFontSeriesChangeRule {el}{ux} {} {} %\DeclareFontSeriesChangeRule {el}{x}{elx}{} %\DeclareFontSeriesChangeRule {ex}{?m} {} {} %\DeclareFontSeriesChangeRule {ex}{bx} {} {} %\DeclareFontSeriesChangeRule {ex}{b} {} {} %\DeclareFontSeriesChangeRule {ex}{eb} {} {} %\DeclareFontSeriesChangeRule {ex}{el} {} {} %\DeclareFontSeriesChangeRule {ex}{l} {} {} %\DeclareFontSeriesChangeRule {ex}{m?} {} {} %\DeclareFontSeriesChangeRule {ex}{sb} {} {} %\DeclareFontSeriesChangeRule {ex}{sl} {} {} %\DeclareFontSeriesChangeRule {ex}{ub} {} {} %\DeclareFontSeriesChangeRule {ex}{ul} {} {} %\DeclareFontSeriesChangeRule {lc}{bx} {} {} %\DeclareFontSeriesChangeRule {lc}{b}{bc}{} %\DeclareFontSeriesChangeRule {lc}{c}{lc}{} %\DeclareFontSeriesChangeRule {lc}{eb}{ebc}{} %\DeclareFontSeriesChangeRule {lc}{ec}{lec}{} %\DeclareFontSeriesChangeRule {lc}{el}{elc}{} %\DeclareFontSeriesChangeRule {lc}{ex} {} {} %\DeclareFontSeriesChangeRule {lc}{l}{lc}{} %\DeclareFontSeriesChangeRule {lc}{sb}{sbc}{} %\DeclareFontSeriesChangeRule {lc}{sc}{lsc}{} %\DeclareFontSeriesChangeRule {lc}{sl}{slc}{} %\DeclareFontSeriesChangeRule {lc}{sx} {} {} %\DeclareFontSeriesChangeRule {lc}{ub}{ubc}{} %\DeclareFontSeriesChangeRule {lc}{uc} {} {} %\DeclareFontSeriesChangeRule {lc}{ul}{ulc}{} %\DeclareFontSeriesChangeRule {lc}{ux} {} {} %\DeclareFontSeriesChangeRule {lc}{x}{lx}{} %\DeclareFontSeriesChangeRule {lec}{bx} {} {} %\DeclareFontSeriesChangeRule {lec}{b} {} {} %\DeclareFontSeriesChangeRule {lec}{c} {} {} %\DeclareFontSeriesChangeRule {lec}{eb} {} {} %\DeclareFontSeriesChangeRule {lec}{ec} {} {} %\DeclareFontSeriesChangeRule {lec}{el} {} {} %\DeclareFontSeriesChangeRule {lec}{ex} {} {} %\DeclareFontSeriesChangeRule {lec}{l} {} {} %\DeclareFontSeriesChangeRule {lec}{sb} {} {} %\DeclareFontSeriesChangeRule {lec}{sc} {} {} %\DeclareFontSeriesChangeRule {lec}{sl} {} {} %\DeclareFontSeriesChangeRule {lec}{sx} {} {} %\DeclareFontSeriesChangeRule {lec}{ub} {} {} %\DeclareFontSeriesChangeRule {lec}{uc} {} {} %\DeclareFontSeriesChangeRule {lec}{ul} {} {} %\DeclareFontSeriesChangeRule {lec}{ux} {} {} %\DeclareFontSeriesChangeRule {lec}{x} {} {} %\DeclareFontSeriesChangeRule {lex}{?m} {} {} %\DeclareFontSeriesChangeRule {lex}{bx} {} {} %\DeclareFontSeriesChangeRule {lex}{b} {} {} %\DeclareFontSeriesChangeRule {lex}{c} {} {} %\DeclareFontSeriesChangeRule {lex}{eb} {} {} %\DeclareFontSeriesChangeRule {lex}{ec} {} {} %\DeclareFontSeriesChangeRule {lex}{el} {} {} %\DeclareFontSeriesChangeRule {lex}{ex} {} {} %\DeclareFontSeriesChangeRule {lex}{l} {} {} %\DeclareFontSeriesChangeRule {lex}{m?} {} {} %\DeclareFontSeriesChangeRule {lex}{sb} {} {} %\DeclareFontSeriesChangeRule {lex}{sc} {} {} %\DeclareFontSeriesChangeRule {lex}{sl} {} {} %\DeclareFontSeriesChangeRule {lex}{sx} {} {} %\DeclareFontSeriesChangeRule {lex}{ub} {} {} %\DeclareFontSeriesChangeRule {lex}{uc} {} {} %\DeclareFontSeriesChangeRule {lex}{ul} {} {} %\DeclareFontSeriesChangeRule {lex}{ux} {} {} %\DeclareFontSeriesChangeRule {lex}{x} {} {} %\DeclareFontSeriesChangeRule {lsc}{bx} {} {} %\DeclareFontSeriesChangeRule {lsc}{b} {} {} %\DeclareFontSeriesChangeRule {lsc}{c} {} {} %\DeclareFontSeriesChangeRule {lsc}{eb} {} {} %\DeclareFontSeriesChangeRule {lsc}{ec} {} {} %\DeclareFontSeriesChangeRule {lsc}{el} {} {} %\DeclareFontSeriesChangeRule {lsc}{ex} {} {} %\DeclareFontSeriesChangeRule {lsc}{l} {} {} %\DeclareFontSeriesChangeRule {lsc}{sb} {} {} %\DeclareFontSeriesChangeRule {lsc}{sc} {} {} %\DeclareFontSeriesChangeRule {lsc}{sl} {} {} %\DeclareFontSeriesChangeRule {lsc}{sx} {} {} %\DeclareFontSeriesChangeRule {lsc}{ub} {} {} %\DeclareFontSeriesChangeRule {lsc}{uc} {} {} %\DeclareFontSeriesChangeRule {lsc}{ul} {} {} %\DeclareFontSeriesChangeRule {lsc}{ux} {} {} %\DeclareFontSeriesChangeRule {lsc}{x} {} {} %\DeclareFontSeriesChangeRule {lsx}{?m} {} {} %\DeclareFontSeriesChangeRule {lsx}{bx} {} {} %\DeclareFontSeriesChangeRule {lsx}{b} {} {} %\DeclareFontSeriesChangeRule {lsx}{c} {} {} %\DeclareFontSeriesChangeRule {lsx}{eb} {} {} %\DeclareFontSeriesChangeRule {lsx}{ec} {} {} %\DeclareFontSeriesChangeRule {lsx}{el} {} {} %\DeclareFontSeriesChangeRule {lsx}{ex} {} {} %\DeclareFontSeriesChangeRule {lsx}{l} {} {} %\DeclareFontSeriesChangeRule {lsx}{m?} {} {} %\DeclareFontSeriesChangeRule {lsx}{sb} {} {} %\DeclareFontSeriesChangeRule {lsx}{sc} {} {} %\DeclareFontSeriesChangeRule {lsx}{sl} {} {} %\DeclareFontSeriesChangeRule {lsx}{sx} {} {} %\DeclareFontSeriesChangeRule {lsx}{ub} {} {} %\DeclareFontSeriesChangeRule {lsx}{uc} {} {} %\DeclareFontSeriesChangeRule {lsx}{ul} {} {} %\DeclareFontSeriesChangeRule {lsx}{ux} {} {} %\DeclareFontSeriesChangeRule {lsx}{x} {} {} %\DeclareFontSeriesChangeRule {luc}{?m} {} {} %\DeclareFontSeriesChangeRule {luc}{bx} {} {} %\DeclareFontSeriesChangeRule {luc}{b} {} {} %\DeclareFontSeriesChangeRule {luc}{c} {} {} %\DeclareFontSeriesChangeRule {luc}{eb} {} {} %\DeclareFontSeriesChangeRule {luc}{ec} {} {} %\DeclareFontSeriesChangeRule {luc}{el} {} {} %\DeclareFontSeriesChangeRule {luc}{ex} {} {} %\DeclareFontSeriesChangeRule {luc}{l} {} {} %\DeclareFontSeriesChangeRule {luc}{m?} {} {} %\DeclareFontSeriesChangeRule {luc}{sb} {} {} %\DeclareFontSeriesChangeRule {luc}{sc} {} {} %\DeclareFontSeriesChangeRule {luc}{sl} {} {} %\DeclareFontSeriesChangeRule {luc}{sx} {} {} %\DeclareFontSeriesChangeRule {luc}{ub} {} {} %\DeclareFontSeriesChangeRule {luc}{uc} {} {} %\DeclareFontSeriesChangeRule {luc}{ul} {} {} %\DeclareFontSeriesChangeRule {luc}{ux} {} {} %\DeclareFontSeriesChangeRule {luc}{x} {} {} %\DeclareFontSeriesChangeRule {lux}{?m} {} {} %\DeclareFontSeriesChangeRule {lux}{bx} {} {} %\DeclareFontSeriesChangeRule {lux}{b} {} {} %\DeclareFontSeriesChangeRule {lux}{c} {} {} %\DeclareFontSeriesChangeRule {lux}{eb} {} {} %\DeclareFontSeriesChangeRule {lux}{ec} {} {} %\DeclareFontSeriesChangeRule {lux}{el} {} {} %\DeclareFontSeriesChangeRule {lux}{ex} {} {} %\DeclareFontSeriesChangeRule {lux}{l} {} {} %\DeclareFontSeriesChangeRule {lux}{m?} {} {} %\DeclareFontSeriesChangeRule {lux}{sb} {} {} %\DeclareFontSeriesChangeRule {lux}{sc} {} {} %\DeclareFontSeriesChangeRule {lux}{sl} {} {} %\DeclareFontSeriesChangeRule {lux}{sx} {} {} %\DeclareFontSeriesChangeRule {lux}{ub} {} {} %\DeclareFontSeriesChangeRule {lux}{uc} {} {} %\DeclareFontSeriesChangeRule {lux}{ul} {} {} %\DeclareFontSeriesChangeRule {lux}{ux} {} {} %\DeclareFontSeriesChangeRule {lux}{x} {} {} %\DeclareFontSeriesChangeRule {lx}{bx} {} {} %\DeclareFontSeriesChangeRule {lx}{b}{bx}{} %\DeclareFontSeriesChangeRule {lx}{c}{lc}{} %\DeclareFontSeriesChangeRule {lx}{eb}{ebx}{} %\DeclareFontSeriesChangeRule {lx}{ec}{lec}{} %\DeclareFontSeriesChangeRule {lx}{el}{elx}{} %\DeclareFontSeriesChangeRule {lx}{ex} {} {} %\DeclareFontSeriesChangeRule {lx}{l}{lx}{} %\DeclareFontSeriesChangeRule {lx}{sb}{sbx}{} %\DeclareFontSeriesChangeRule {lx}{sc}{lsc}{} %\DeclareFontSeriesChangeRule {lx}{sl}{slx}{} %\DeclareFontSeriesChangeRule {lx}{sx} {} {} %\DeclareFontSeriesChangeRule {lx}{ub}{ubx}{} %\DeclareFontSeriesChangeRule {lx}{uc} {} {} %\DeclareFontSeriesChangeRule {lx}{ul}{ulx}{} %\DeclareFontSeriesChangeRule {lx}{ux} {} {} %\DeclareFontSeriesChangeRule {lx}{x}{lx}{} %\DeclareFontSeriesChangeRule {l}{b} {b} {bx} %\DeclareFontSeriesChangeRule {l}{c} {lc} {l} %\DeclareFontSeriesChangeRule {l}{eb} {} {} %\DeclareFontSeriesChangeRule {l}{ec} {lec} {l} %\DeclareFontSeriesChangeRule {l}{ex} {} {} %\DeclareFontSeriesChangeRule {l}{sb} {sb} {b} %\DeclareFontSeriesChangeRule {l}{sc} {lsc} {l} %\DeclareFontSeriesChangeRule {l}{sx} {} {} %\DeclareFontSeriesChangeRule {l}{ub} {} {} %\DeclareFontSeriesChangeRule {l}{uc} {} {} %\DeclareFontSeriesChangeRule {l}{ux} {} {} %\DeclareFontSeriesChangeRule {l}{x} {lx} {l} %\DeclareFontSeriesChangeRule {m}{bx} {bx} {b} %\DeclareFontSeriesChangeRule {m}{c} {c} {m} %\DeclareFontSeriesChangeRule {m}{l} {l} {m} %\DeclareFontSeriesChangeRule {m}{sc} {sc} {m} %\DeclareFontSeriesChangeRule {m}{x} {x} {m} %\DeclareFontSeriesChangeRule {sbc}{bx} {} {} %\DeclareFontSeriesChangeRule {sbc}{b}{bc}{} %\DeclareFontSeriesChangeRule {sbc}{c}{sbc}{} %\DeclareFontSeriesChangeRule {sbc}{eb}{ebc}{} %\DeclareFontSeriesChangeRule {sbc}{ec}{sbec}{sbc} %\DeclareFontSeriesChangeRule {sbc}{el}{elc}{} %\DeclareFontSeriesChangeRule {sbc}{ex} {} {} %\DeclareFontSeriesChangeRule {sbc}{l}{lc}{} %\DeclareFontSeriesChangeRule {sbc}{sb}{sbc}{} %\DeclareFontSeriesChangeRule {sbc}{sc}{sbsc}{sbc} %\DeclareFontSeriesChangeRule {sbc}{sl}{slc}{} %\DeclareFontSeriesChangeRule {sbc}{sx} {} {} %\DeclareFontSeriesChangeRule {sbc}{ub}{ubc}{} %\DeclareFontSeriesChangeRule {sbc}{uc} {} {} %\DeclareFontSeriesChangeRule {sbc}{ul}{ulc}{} %\DeclareFontSeriesChangeRule {sbc}{ux} {} {} %\DeclareFontSeriesChangeRule {sbc}{x}{sbx}{} %\DeclareFontSeriesChangeRule {sbec}{bx} {} {} %\DeclareFontSeriesChangeRule {sbec}{b} {} {} %\DeclareFontSeriesChangeRule {sbec}{c} {} {} %\DeclareFontSeriesChangeRule {sbec}{eb} {} {} %\DeclareFontSeriesChangeRule {sbec}{ec} {} {} %\DeclareFontSeriesChangeRule {sbec}{el} {} {} %\DeclareFontSeriesChangeRule {sbec}{ex} {} {} %\DeclareFontSeriesChangeRule {sbec}{l} {} {} %\DeclareFontSeriesChangeRule {sbec}{sb} {} {} %\DeclareFontSeriesChangeRule {sbec}{sc} {} {} %\DeclareFontSeriesChangeRule {sbec}{sl} {} {} %\DeclareFontSeriesChangeRule {sbec}{sx} {} {} %\DeclareFontSeriesChangeRule {sbec}{ub} {} {} %\DeclareFontSeriesChangeRule {sbec}{uc} {} {} %\DeclareFontSeriesChangeRule {sbec}{ul} {} {} %\DeclareFontSeriesChangeRule {sbec}{ux} {} {} %\DeclareFontSeriesChangeRule {sbec}{x} {} {} %\DeclareFontSeriesChangeRule {sbex}{?m} {} {} %\DeclareFontSeriesChangeRule {sbex}{bx} {} {} %\DeclareFontSeriesChangeRule {sbex}{b} {} {} %\DeclareFontSeriesChangeRule {sbex}{c} {} {} %\DeclareFontSeriesChangeRule {sbex}{eb} {} {} %\DeclareFontSeriesChangeRule {sbex}{ec} {} {} %\DeclareFontSeriesChangeRule {sbex}{el} {} {} %\DeclareFontSeriesChangeRule {sbex}{ex} {} {} %\DeclareFontSeriesChangeRule {sbex}{l} {} {} %\DeclareFontSeriesChangeRule {sbex}{m?} {} {} %\DeclareFontSeriesChangeRule {sbex}{sb} {} {} %\DeclareFontSeriesChangeRule {sbex}{sc} {} {} %\DeclareFontSeriesChangeRule {sbex}{sl} {} {} %\DeclareFontSeriesChangeRule {sbex}{sx} {} {} %\DeclareFontSeriesChangeRule {sbex}{ub} {} {} %\DeclareFontSeriesChangeRule {sbex}{uc} {} {} %\DeclareFontSeriesChangeRule {sbex}{ul} {} {} %\DeclareFontSeriesChangeRule {sbex}{ux} {} {} %\DeclareFontSeriesChangeRule {sbex}{x} {} {} %\DeclareFontSeriesChangeRule {sbsc}{bx} {} {} %\DeclareFontSeriesChangeRule {sbsc}{b} {} {} %\DeclareFontSeriesChangeRule {sbsc}{c} {} {} %\DeclareFontSeriesChangeRule {sbsc}{eb} {} {} %\DeclareFontSeriesChangeRule {sbsc}{ec} {} {} %\DeclareFontSeriesChangeRule {sbsc}{el} {} {} %\DeclareFontSeriesChangeRule {sbsc}{ex} {} {} %\DeclareFontSeriesChangeRule {sbsc}{l} {} {} %\DeclareFontSeriesChangeRule {sbsc}{sb} {} {} %\DeclareFontSeriesChangeRule {sbsc}{sc} {} {} %\DeclareFontSeriesChangeRule {sbsc}{sl} {} {} %\DeclareFontSeriesChangeRule {sbsc}{sx} {} {} %\DeclareFontSeriesChangeRule {sbsc}{ub} {} {} %\DeclareFontSeriesChangeRule {sbsc}{uc} {} {} %\DeclareFontSeriesChangeRule {sbsc}{ul} {} {} %\DeclareFontSeriesChangeRule {sbsc}{ux} {} {} %\DeclareFontSeriesChangeRule {sbsc}{x} {} {} %\DeclareFontSeriesChangeRule {sbsx}{?m} {} {} %\DeclareFontSeriesChangeRule {sbsx}{bx} {} {} %\DeclareFontSeriesChangeRule {sbsx}{b} {} {} %\DeclareFontSeriesChangeRule {sbsx}{c} {} {} %\DeclareFontSeriesChangeRule {sbsx}{eb} {} {} %\DeclareFontSeriesChangeRule {sbsx}{ec} {} {} %\DeclareFontSeriesChangeRule {sbsx}{el} {} {} %\DeclareFontSeriesChangeRule {sbsx}{ex} {} {} %\DeclareFontSeriesChangeRule {sbsx}{l} {} {} %\DeclareFontSeriesChangeRule {sbsx}{m?} {} {} %\DeclareFontSeriesChangeRule {sbsx}{sb} {} {} %\DeclareFontSeriesChangeRule {sbsx}{sc} {} {} %\DeclareFontSeriesChangeRule {sbsx}{sl} {} {} %\DeclareFontSeriesChangeRule {sbsx}{sx} {} {} %\DeclareFontSeriesChangeRule {sbsx}{ub} {} {} %\DeclareFontSeriesChangeRule {sbsx}{uc} {} {} %\DeclareFontSeriesChangeRule {sbsx}{ul} {} {} %\DeclareFontSeriesChangeRule {sbsx}{ux} {} {} %\DeclareFontSeriesChangeRule {sbsx}{x} {} {} %\DeclareFontSeriesChangeRule {sbuc}{?m} {} {} %\DeclareFontSeriesChangeRule {sbuc}{bx} {} {} %\DeclareFontSeriesChangeRule {sbuc}{b} {} {} %\DeclareFontSeriesChangeRule {sbuc}{c} {} {} %\DeclareFontSeriesChangeRule {sbuc}{eb} {} {} %\DeclareFontSeriesChangeRule {sbuc}{ec} {} {} %\DeclareFontSeriesChangeRule {sbuc}{el} {} {} %\DeclareFontSeriesChangeRule {sbuc}{ex} {} {} %\DeclareFontSeriesChangeRule {sbuc}{l} {} {} %\DeclareFontSeriesChangeRule {sbuc}{m?} {} {} %\DeclareFontSeriesChangeRule {sbuc}{sb} {} {} %\DeclareFontSeriesChangeRule {sbuc}{sc} {} {} %\DeclareFontSeriesChangeRule {sbuc}{sl} {} {} %\DeclareFontSeriesChangeRule {sbuc}{sx} {} {} %\DeclareFontSeriesChangeRule {sbuc}{ub} {} {} %\DeclareFontSeriesChangeRule {sbuc}{uc} {} {} %\DeclareFontSeriesChangeRule {sbuc}{ul} {} {} %\DeclareFontSeriesChangeRule {sbuc}{ux} {} {} %\DeclareFontSeriesChangeRule {sbuc}{x} {} {} %\DeclareFontSeriesChangeRule {sbux}{?m} {} {} %\DeclareFontSeriesChangeRule {sbux}{bx} {} {} %\DeclareFontSeriesChangeRule {sbux}{b} {} {} %\DeclareFontSeriesChangeRule {sbux}{c} {} {} %\DeclareFontSeriesChangeRule {sbux}{eb} {} {} %\DeclareFontSeriesChangeRule {sbux}{ec} {} {} %\DeclareFontSeriesChangeRule {sbux}{el} {} {} %\DeclareFontSeriesChangeRule {sbux}{ex} {} {} %\DeclareFontSeriesChangeRule {sbux}{l} {} {} %\DeclareFontSeriesChangeRule {sbux}{m?} {} {} %\DeclareFontSeriesChangeRule {sbux}{sb} {} {} %\DeclareFontSeriesChangeRule {sbux}{sc} {} {} %\DeclareFontSeriesChangeRule {sbux}{sl} {} {} %\DeclareFontSeriesChangeRule {sbux}{sx} {} {} %\DeclareFontSeriesChangeRule {sbux}{ub} {} {} %\DeclareFontSeriesChangeRule {sbux}{uc} {} {} %\DeclareFontSeriesChangeRule {sbux}{ul} {} {} %\DeclareFontSeriesChangeRule {sbux}{ux} {} {} %\DeclareFontSeriesChangeRule {sbux}{x} {} {} %\DeclareFontSeriesChangeRule {sbx}{bx} {} {} %\DeclareFontSeriesChangeRule {sbx}{b}{bx}{} %\DeclareFontSeriesChangeRule {sbx}{c}{sbc}{} %\DeclareFontSeriesChangeRule {sbx}{eb}{ebx}{} %\DeclareFontSeriesChangeRule {sbx}{ec}{sbec}{} %\DeclareFontSeriesChangeRule {sbx}{el}{elx}{} %\DeclareFontSeriesChangeRule {sbx}{ex} {} {} %\DeclareFontSeriesChangeRule {sbx}{l}{lx}{} %\DeclareFontSeriesChangeRule {sbx}{sb}{sbx}{} %\DeclareFontSeriesChangeRule {sbx}{sc}{sbsc}{} %\DeclareFontSeriesChangeRule {sbx}{sl}{slx}{} %\DeclareFontSeriesChangeRule {sbx}{sx} {} {} %\DeclareFontSeriesChangeRule {sbx}{ub}{ubx}{} %\DeclareFontSeriesChangeRule {sbx}{uc} {} {} %\DeclareFontSeriesChangeRule {sbx}{ul}{ulx}{} %\DeclareFontSeriesChangeRule {sbx}{ux} {} {} %\DeclareFontSeriesChangeRule {sbx}{x}{sbx}{} %\DeclareFontSeriesChangeRule {sb}{bx} {} {} %\DeclareFontSeriesChangeRule {sb}{c} {sbc} {bc} %\DeclareFontSeriesChangeRule {sb}{eb} {} {} %\DeclareFontSeriesChangeRule {sb}{ec} {sbec} {sbc} %\DeclareFontSeriesChangeRule {sb}{ex} {} {} %\DeclareFontSeriesChangeRule {sb}{sc} {sbsc} {sbc} %\DeclareFontSeriesChangeRule {sb}{sx} {} {} %\DeclareFontSeriesChangeRule {sb}{ub} {} {} %\DeclareFontSeriesChangeRule {sb}{uc} {} {} %\DeclareFontSeriesChangeRule {sb}{ux} {} {} %\DeclareFontSeriesChangeRule {sb}{x} {sbx} {bx} %\DeclareFontSeriesChangeRule {sc}{bx} {bx} {b} %\DeclareFontSeriesChangeRule {sc}{b}{bsc}{} %\DeclareFontSeriesChangeRule {sc}{eb}{ebsc}{} %\DeclareFontSeriesChangeRule {sc}{el}{elsc}{} %\DeclareFontSeriesChangeRule {sc}{l}{lsc}{} %\DeclareFontSeriesChangeRule {sc}{sb}{sbsc}{} %\DeclareFontSeriesChangeRule {sc}{sl}{slsc}{} %\DeclareFontSeriesChangeRule {sc}{ub}{ubsc}{} %\DeclareFontSeriesChangeRule {sc}{x}{x}{m} %\DeclareFontSeriesChangeRule {slc}{bx} {} {} %\DeclareFontSeriesChangeRule {slc}{b}{bc}{} %\DeclareFontSeriesChangeRule {slc}{c}{slc}{} %\DeclareFontSeriesChangeRule {slc}{eb}{ebc}{} %\DeclareFontSeriesChangeRule {slc}{ec}{slec}{} %\DeclareFontSeriesChangeRule {slc}{el}{elc}{} %\DeclareFontSeriesChangeRule {slc}{ex} {} {} %\DeclareFontSeriesChangeRule {slc}{l}{lc}{} %\DeclareFontSeriesChangeRule {slc}{sb}{sbc}{} %\DeclareFontSeriesChangeRule {slc}{sc}{slsc}{} %\DeclareFontSeriesChangeRule {slc}{sl}{slc}{} %\DeclareFontSeriesChangeRule {slc}{sx} {} {} %\DeclareFontSeriesChangeRule {slc}{ub}{ubc}{} %\DeclareFontSeriesChangeRule {slc}{uc} {} {} %\DeclareFontSeriesChangeRule {slc}{ul}{ulc}{} %\DeclareFontSeriesChangeRule {slc}{ux} {} {} %\DeclareFontSeriesChangeRule {slc}{x}{slx}{} %\DeclareFontSeriesChangeRule {slec}{bx} {} {} %\DeclareFontSeriesChangeRule {slec}{b} {} {} %\DeclareFontSeriesChangeRule {slec}{c} {} {} %\DeclareFontSeriesChangeRule {slec}{eb} {} {} %\DeclareFontSeriesChangeRule {slec}{ec} {} {} %\DeclareFontSeriesChangeRule {slec}{el} {} {} %\DeclareFontSeriesChangeRule {slec}{ex} {} {} %\DeclareFontSeriesChangeRule {slec}{l} {} {} %\DeclareFontSeriesChangeRule {slec}{sb} {} {} %\DeclareFontSeriesChangeRule {slec}{sc} {} {} %\DeclareFontSeriesChangeRule {slec}{sl} {} {} %\DeclareFontSeriesChangeRule {slec}{sx} {} {} %\DeclareFontSeriesChangeRule {slec}{ub} {} {} %\DeclareFontSeriesChangeRule {slec}{uc} {} {} %\DeclareFontSeriesChangeRule {slec}{ul} {} {} %\DeclareFontSeriesChangeRule {slec}{ux} {} {} %\DeclareFontSeriesChangeRule {slec}{x} {} {} %\DeclareFontSeriesChangeRule {slex}{?m} {} {} %\DeclareFontSeriesChangeRule {slex}{bx} {} {} %\DeclareFontSeriesChangeRule {slex}{b} {} {} %\DeclareFontSeriesChangeRule {slex}{c} {} {} %\DeclareFontSeriesChangeRule {slex}{eb} {} {} %\DeclareFontSeriesChangeRule {slex}{ec} {} {} %\DeclareFontSeriesChangeRule {slex}{el} {} {} %\DeclareFontSeriesChangeRule {slex}{ex} {} {} %\DeclareFontSeriesChangeRule {slex}{l} {} {} %\DeclareFontSeriesChangeRule {slex}{m?} {} {} %\DeclareFontSeriesChangeRule {slex}{sb} {} {} %\DeclareFontSeriesChangeRule {slex}{sc} {} {} %\DeclareFontSeriesChangeRule {slex}{sl} {} {} %\DeclareFontSeriesChangeRule {slex}{sx} {} {} %\DeclareFontSeriesChangeRule {slex}{ub} {} {} %\DeclareFontSeriesChangeRule {slex}{uc} {} {} %\DeclareFontSeriesChangeRule {slex}{ul} {} {} %\DeclareFontSeriesChangeRule {slex}{ux} {} {} %\DeclareFontSeriesChangeRule {slex}{x} {} {} %\DeclareFontSeriesChangeRule {slsc}{bx} {} {} %\DeclareFontSeriesChangeRule {slsc}{b} {} {} %\DeclareFontSeriesChangeRule {slsc}{c} {} {} %\DeclareFontSeriesChangeRule {slsc}{eb} {} {} %\DeclareFontSeriesChangeRule {slsc}{ec} {} {} %\DeclareFontSeriesChangeRule {slsc}{el} {} {} %\DeclareFontSeriesChangeRule {slsc}{ex} {} {} %\DeclareFontSeriesChangeRule {slsc}{l} {} {} %\DeclareFontSeriesChangeRule {slsc}{sb} {} {} %\DeclareFontSeriesChangeRule {slsc}{sc} {} {} %\DeclareFontSeriesChangeRule {slsc}{sl} {} {} %\DeclareFontSeriesChangeRule {slsc}{sx} {} {} %\DeclareFontSeriesChangeRule {slsc}{ub} {} {} %\DeclareFontSeriesChangeRule {slsc}{uc} {} {} %\DeclareFontSeriesChangeRule {slsc}{ul} {} {} %\DeclareFontSeriesChangeRule {slsc}{ux} {} {} %\DeclareFontSeriesChangeRule {slsc}{x} {} {} %\DeclareFontSeriesChangeRule {slsx}{?m} {} {} %\DeclareFontSeriesChangeRule {slsx}{bx} {} {} %\DeclareFontSeriesChangeRule {slsx}{b} {} {} %\DeclareFontSeriesChangeRule {slsx}{c} {} {} %\DeclareFontSeriesChangeRule {slsx}{eb} {} {} %\DeclareFontSeriesChangeRule {slsx}{ec} {} {} %\DeclareFontSeriesChangeRule {slsx}{el} {} {} %\DeclareFontSeriesChangeRule {slsx}{ex} {} {} %\DeclareFontSeriesChangeRule {slsx}{l} {} {} %\DeclareFontSeriesChangeRule {slsx}{m?} {} {} %\DeclareFontSeriesChangeRule {slsx}{sb} {} {} %\DeclareFontSeriesChangeRule {slsx}{sc} {} {} %\DeclareFontSeriesChangeRule {slsx}{sl} {} {} %\DeclareFontSeriesChangeRule {slsx}{sx} {} {} %\DeclareFontSeriesChangeRule {slsx}{ub} {} {} %\DeclareFontSeriesChangeRule {slsx}{uc} {} {} %\DeclareFontSeriesChangeRule {slsx}{ul} {} {} %\DeclareFontSeriesChangeRule {slsx}{ux} {} {} %\DeclareFontSeriesChangeRule {slsx}{x} {} {} %\DeclareFontSeriesChangeRule {sluc}{?m} {} {} %\DeclareFontSeriesChangeRule {sluc}{bx} {} {} %\DeclareFontSeriesChangeRule {sluc}{b} {} {} %\DeclareFontSeriesChangeRule {sluc}{c} {} {} %\DeclareFontSeriesChangeRule {sluc}{eb} {} {} %\DeclareFontSeriesChangeRule {sluc}{ec} {} {} %\DeclareFontSeriesChangeRule {sluc}{el} {} {} %\DeclareFontSeriesChangeRule {sluc}{ex} {} {} %\DeclareFontSeriesChangeRule {sluc}{l} {} {} %\DeclareFontSeriesChangeRule {sluc}{m?} {} {} %\DeclareFontSeriesChangeRule {sluc}{sb} {} {} %\DeclareFontSeriesChangeRule {sluc}{sc} {} {} %\DeclareFontSeriesChangeRule {sluc}{sl} {} {} %\DeclareFontSeriesChangeRule {sluc}{sx} {} {} %\DeclareFontSeriesChangeRule {sluc}{ub} {} {} %\DeclareFontSeriesChangeRule {sluc}{uc} {} {} %\DeclareFontSeriesChangeRule {sluc}{ul} {} {} %\DeclareFontSeriesChangeRule {sluc}{ux} {} {} %\DeclareFontSeriesChangeRule {sluc}{x} {} {} %\DeclareFontSeriesChangeRule {slux}{?m} {} {} %\DeclareFontSeriesChangeRule {slux}{bx} {} {} %\DeclareFontSeriesChangeRule {slux}{b} {} {} %\DeclareFontSeriesChangeRule {slux}{c} {} {} %\DeclareFontSeriesChangeRule {slux}{eb} {} {} %\DeclareFontSeriesChangeRule {slux}{ec} {} {} %\DeclareFontSeriesChangeRule {slux}{el} {} {} %\DeclareFontSeriesChangeRule {slux}{ex} {} {} %\DeclareFontSeriesChangeRule {slux}{l} {} {} %\DeclareFontSeriesChangeRule {slux}{m?} {} {} %\DeclareFontSeriesChangeRule {slux}{sb} {} {} %\DeclareFontSeriesChangeRule {slux}{sc} {} {} %\DeclareFontSeriesChangeRule {slux}{sl} {} {} %\DeclareFontSeriesChangeRule {slux}{sx} {} {} %\DeclareFontSeriesChangeRule {slux}{ub} {} {} %\DeclareFontSeriesChangeRule {slux}{uc} {} {} %\DeclareFontSeriesChangeRule {slux}{ul} {} {} %\DeclareFontSeriesChangeRule {slux}{ux} {} {} %\DeclareFontSeriesChangeRule {slux}{x} {} {} %\DeclareFontSeriesChangeRule {slx}{bx} {} {} %\DeclareFontSeriesChangeRule {slx}{b}{bx}{} %\DeclareFontSeriesChangeRule {slx}{c}{slc}{} %\DeclareFontSeriesChangeRule {slx}{eb}{ebx}{} %\DeclareFontSeriesChangeRule {slx}{ec}{slec}{} %\DeclareFontSeriesChangeRule {slx}{el}{elx}{} %\DeclareFontSeriesChangeRule {slx}{ex} {} {} %\DeclareFontSeriesChangeRule {slx}{l}{lx}{} %\DeclareFontSeriesChangeRule {slx}{sb}{sbx}{} %\DeclareFontSeriesChangeRule {slx}{sc}{slsc}{} %\DeclareFontSeriesChangeRule {slx}{sl}{slx}{} %\DeclareFontSeriesChangeRule {slx}{sx} {} {} %\DeclareFontSeriesChangeRule {slx}{ub}{ubx}{} %\DeclareFontSeriesChangeRule {slx}{uc} {} {} %\DeclareFontSeriesChangeRule {slx}{ul}{ulx}{} %\DeclareFontSeriesChangeRule {slx}{ux} {} {} %\DeclareFontSeriesChangeRule {slx}{x}{slx}{} %\DeclareFontSeriesChangeRule {sl}{bx} {} {} %\DeclareFontSeriesChangeRule {sl}{c}{slc}{} %\DeclareFontSeriesChangeRule {sl}{eb} {} {} %\DeclareFontSeriesChangeRule {sl}{ec}{slec}{} %\DeclareFontSeriesChangeRule {sl}{ex} {} {} %\DeclareFontSeriesChangeRule {sl}{sb} {} {} %\DeclareFontSeriesChangeRule {sl}{sc}{slsc}{} %\DeclareFontSeriesChangeRule {sl}{sx} {} {} %\DeclareFontSeriesChangeRule {sl}{ub} {} {} %\DeclareFontSeriesChangeRule {sl}{uc} {} {} %\DeclareFontSeriesChangeRule {sl}{ux} {} {} %\DeclareFontSeriesChangeRule {sl}{x}{slx}{} %\DeclareFontSeriesChangeRule {sx}{?m} {} {} %\DeclareFontSeriesChangeRule {sx}{bx} {} {} %\DeclareFontSeriesChangeRule {sx}{b} {} {} %\DeclareFontSeriesChangeRule {sx}{eb} {} {} %\DeclareFontSeriesChangeRule {sx}{el} {} {} %\DeclareFontSeriesChangeRule {sx}{l} {} {} %\DeclareFontSeriesChangeRule {sx}{m?} {} {} %\DeclareFontSeriesChangeRule {sx}{sb} {} {} %\DeclareFontSeriesChangeRule {sx}{sl} {} {} %\DeclareFontSeriesChangeRule {sx}{ub} {} {} %\DeclareFontSeriesChangeRule {sx}{ul} {} {} %\DeclareFontSeriesChangeRule {ubc}{bx} {} {} %\DeclareFontSeriesChangeRule {ubc}{b}{bc}{} %\DeclareFontSeriesChangeRule {ubc}{c}{ubc}{} %\DeclareFontSeriesChangeRule {ubc}{eb}{ebc}{} %\DeclareFontSeriesChangeRule {ubc}{ec}{ubec}{} %\DeclareFontSeriesChangeRule {ubc}{el}{elc}{} %\DeclareFontSeriesChangeRule {ubc}{ex} {} {} %\DeclareFontSeriesChangeRule {ubc}{l}{lc}{} %\DeclareFontSeriesChangeRule {ubc}{sb}{sbc}{} %\DeclareFontSeriesChangeRule {ubc}{sc}{ubsc}{} %\DeclareFontSeriesChangeRule {ubc}{sl}{slc}{} %\DeclareFontSeriesChangeRule {ubc}{sx} {} {} %\DeclareFontSeriesChangeRule {ubc}{ub}{ubc}{} %\DeclareFontSeriesChangeRule {ubc}{uc} {} {} %\DeclareFontSeriesChangeRule {ubc}{ul}{ulc}{} %\DeclareFontSeriesChangeRule {ubc}{ux} {} {} %\DeclareFontSeriesChangeRule {ubc}{x}{ubx}{} %\DeclareFontSeriesChangeRule {ubec}{bx} {} {} %\DeclareFontSeriesChangeRule {ubec}{b} {} {} %\DeclareFontSeriesChangeRule {ubec}{c} {} {} %\DeclareFontSeriesChangeRule {ubec}{eb} {} {} %\DeclareFontSeriesChangeRule {ubec}{ec} {} {} %\DeclareFontSeriesChangeRule {ubec}{el} {} {} %\DeclareFontSeriesChangeRule {ubec}{ex} {} {} %\DeclareFontSeriesChangeRule {ubec}{l} {} {} %\DeclareFontSeriesChangeRule {ubec}{sb} {} {} %\DeclareFontSeriesChangeRule {ubec}{sc} {} {} %\DeclareFontSeriesChangeRule {ubec}{sl} {} {} %\DeclareFontSeriesChangeRule {ubec}{sx} {} {} %\DeclareFontSeriesChangeRule {ubec}{ub} {} {} %\DeclareFontSeriesChangeRule {ubec}{uc} {} {} %\DeclareFontSeriesChangeRule {ubec}{ul} {} {} %\DeclareFontSeriesChangeRule {ubec}{ux} {} {} %\DeclareFontSeriesChangeRule {ubec}{x} {} {} %\DeclareFontSeriesChangeRule {ubex}{?m} {} {} %\DeclareFontSeriesChangeRule {ubex}{bx} {} {} %\DeclareFontSeriesChangeRule {ubex}{b} {} {} %\DeclareFontSeriesChangeRule {ubex}{c} {} {} %\DeclareFontSeriesChangeRule {ubex}{eb} {} {} %\DeclareFontSeriesChangeRule {ubex}{ec} {} {} %\DeclareFontSeriesChangeRule {ubex}{el} {} {} %\DeclareFontSeriesChangeRule {ubex}{ex} {} {} %\DeclareFontSeriesChangeRule {ubex}{l} {} {} %\DeclareFontSeriesChangeRule {ubex}{m?} {} {} %\DeclareFontSeriesChangeRule {ubex}{sb} {} {} %\DeclareFontSeriesChangeRule {ubex}{sc} {} {} %\DeclareFontSeriesChangeRule {ubex}{sl} {} {} %\DeclareFontSeriesChangeRule {ubex}{sx} {} {} %\DeclareFontSeriesChangeRule {ubex}{ub} {} {} %\DeclareFontSeriesChangeRule {ubex}{uc} {} {} %\DeclareFontSeriesChangeRule {ubex}{ul} {} {} %\DeclareFontSeriesChangeRule {ubex}{ux} {} {} %\DeclareFontSeriesChangeRule {ubex}{x} {} {} %\DeclareFontSeriesChangeRule {ubsc}{bx} {} {} %\DeclareFontSeriesChangeRule {ubsc}{b} {} {} %\DeclareFontSeriesChangeRule {ubsc}{c} {} {} %\DeclareFontSeriesChangeRule {ubsc}{eb} {} {} %\DeclareFontSeriesChangeRule {ubsc}{ec} {} {} %\DeclareFontSeriesChangeRule {ubsc}{el} {} {} %\DeclareFontSeriesChangeRule {ubsc}{ex} {} {} %\DeclareFontSeriesChangeRule {ubsc}{l} {} {} %\DeclareFontSeriesChangeRule {ubsc}{sb} {} {} %\DeclareFontSeriesChangeRule {ubsc}{sc} {} {} %\DeclareFontSeriesChangeRule {ubsc}{sl} {} {} %\DeclareFontSeriesChangeRule {ubsc}{sx} {} {} %\DeclareFontSeriesChangeRule {ubsc}{ub} {} {} %\DeclareFontSeriesChangeRule {ubsc}{uc} {} {} %\DeclareFontSeriesChangeRule {ubsc}{ul} {} {} %\DeclareFontSeriesChangeRule {ubsc}{ux} {} {} %\DeclareFontSeriesChangeRule {ubsc}{x} {} {} %\DeclareFontSeriesChangeRule {ubsx}{?m} {} {} %\DeclareFontSeriesChangeRule {ubsx}{bx} {} {} %\DeclareFontSeriesChangeRule {ubsx}{b} {} {} %\DeclareFontSeriesChangeRule {ubsx}{c} {} {} %\DeclareFontSeriesChangeRule {ubsx}{eb} {} {} %\DeclareFontSeriesChangeRule {ubsx}{ec} {} {} %\DeclareFontSeriesChangeRule {ubsx}{el} {} {} %\DeclareFontSeriesChangeRule {ubsx}{ex} {} {} %\DeclareFontSeriesChangeRule {ubsx}{l} {} {} %\DeclareFontSeriesChangeRule {ubsx}{m?} {} {} %\DeclareFontSeriesChangeRule {ubsx}{sb} {} {} %\DeclareFontSeriesChangeRule {ubsx}{sc} {} {} %\DeclareFontSeriesChangeRule {ubsx}{sl} {} {} %\DeclareFontSeriesChangeRule {ubsx}{sx} {} {} %\DeclareFontSeriesChangeRule {ubsx}{ub} {} {} %\DeclareFontSeriesChangeRule {ubsx}{uc} {} {} %\DeclareFontSeriesChangeRule {ubsx}{ul} {} {} %\DeclareFontSeriesChangeRule {ubsx}{ux} {} {} %\DeclareFontSeriesChangeRule {ubsx}{x} {} {} %\DeclareFontSeriesChangeRule {ubuc}{?m} {} {} %\DeclareFontSeriesChangeRule {ubuc}{bx} {} {} %\DeclareFontSeriesChangeRule {ubuc}{b} {} {} %\DeclareFontSeriesChangeRule {ubuc}{c} {} {} %\DeclareFontSeriesChangeRule {ubuc}{eb} {} {} %\DeclareFontSeriesChangeRule {ubuc}{ec} {} {} %\DeclareFontSeriesChangeRule {ubuc}{el} {} {} %\DeclareFontSeriesChangeRule {ubuc}{ex} {} {} %\DeclareFontSeriesChangeRule {ubuc}{l} {} {} %\DeclareFontSeriesChangeRule {ubuc}{m?} {} {} %\DeclareFontSeriesChangeRule {ubuc}{sb} {} {} %\DeclareFontSeriesChangeRule {ubuc}{sc} {} {} %\DeclareFontSeriesChangeRule {ubuc}{sl} {} {} %\DeclareFontSeriesChangeRule {ubuc}{sx} {} {} %\DeclareFontSeriesChangeRule {ubuc}{ub} {} {} %\DeclareFontSeriesChangeRule {ubuc}{uc} {} {} %\DeclareFontSeriesChangeRule {ubuc}{ul} {} {} %\DeclareFontSeriesChangeRule {ubuc}{ux} {} {} %\DeclareFontSeriesChangeRule {ubuc}{x} {} {} %\DeclareFontSeriesChangeRule {ubux}{?m} {} {} %\DeclareFontSeriesChangeRule {ubux}{bx} {} {} %\DeclareFontSeriesChangeRule {ubux}{b} {} {} %\DeclareFontSeriesChangeRule {ubux}{c} {} {} %\DeclareFontSeriesChangeRule {ubux}{eb} {} {} %\DeclareFontSeriesChangeRule {ubux}{ec} {} {} %\DeclareFontSeriesChangeRule {ubux}{el} {} {} %\DeclareFontSeriesChangeRule {ubux}{ex} {} {} %\DeclareFontSeriesChangeRule {ubux}{l} {} {} %\DeclareFontSeriesChangeRule {ubux}{m?} {} {} %\DeclareFontSeriesChangeRule {ubux}{sb} {} {} %\DeclareFontSeriesChangeRule {ubux}{sc} {} {} %\DeclareFontSeriesChangeRule {ubux}{sl} {} {} %\DeclareFontSeriesChangeRule {ubux}{sx} {} {} %\DeclareFontSeriesChangeRule {ubux}{ub} {} {} %\DeclareFontSeriesChangeRule {ubux}{uc} {} {} %\DeclareFontSeriesChangeRule {ubux}{ul} {} {} %\DeclareFontSeriesChangeRule {ubux}{ux} {} {} %\DeclareFontSeriesChangeRule {ubux}{x} {} {} %\DeclareFontSeriesChangeRule {ubx}{bx} {} {} %\DeclareFontSeriesChangeRule {ubx}{b}{bx}{} %\DeclareFontSeriesChangeRule {ubx}{c}{ubc}{} %\DeclareFontSeriesChangeRule {ubx}{eb}{ebx}{} %\DeclareFontSeriesChangeRule {ubx}{ec}{ubec}{} %\DeclareFontSeriesChangeRule {ubx}{el}{elx}{} %\DeclareFontSeriesChangeRule {ubx}{ex} {} {} %\DeclareFontSeriesChangeRule {ubx}{l}{lx}{} %\DeclareFontSeriesChangeRule {ubx}{sb}{sbx}{} %\DeclareFontSeriesChangeRule {ubx}{sc}{ubsc}{} %\DeclareFontSeriesChangeRule {ubx}{sl}{slx}{} %\DeclareFontSeriesChangeRule {ubx}{sx} {} {} %\DeclareFontSeriesChangeRule {ubx}{ub}{ubx}{} %\DeclareFontSeriesChangeRule {ubx}{uc} {} {} %\DeclareFontSeriesChangeRule {ubx}{ul}{ulx}{} %\DeclareFontSeriesChangeRule {ubx}{ux} {} {} %\DeclareFontSeriesChangeRule {ubx}{x}{ubx}{} %\DeclareFontSeriesChangeRule {ub}{bx} {} {} %\DeclareFontSeriesChangeRule {ub}{c}{ubc}{} %\DeclareFontSeriesChangeRule {ub}{eb} {} {} %\DeclareFontSeriesChangeRule {ub}{ec}{ubec}{} %\DeclareFontSeriesChangeRule {ub}{ex} {} {} %\DeclareFontSeriesChangeRule {ub}{sb} {} {} %\DeclareFontSeriesChangeRule {ub}{sc}{ubsc}{} %\DeclareFontSeriesChangeRule {ub}{sx} {} {} %\DeclareFontSeriesChangeRule {ub}{uc} {} {} %\DeclareFontSeriesChangeRule {ub}{ux} {} {} %\DeclareFontSeriesChangeRule {ub}{x}{ubx}{} %\DeclareFontSeriesChangeRule {uc}{?m} {} {} %\DeclareFontSeriesChangeRule {uc}{bx} {} {} %\DeclareFontSeriesChangeRule {uc}{b} {} {} %\DeclareFontSeriesChangeRule {uc}{eb} {} {} %\DeclareFontSeriesChangeRule {uc}{el} {} {} %\DeclareFontSeriesChangeRule {uc}{l} {} {} %\DeclareFontSeriesChangeRule {uc}{m?} {} {} %\DeclareFontSeriesChangeRule {uc}{sb} {} {} %\DeclareFontSeriesChangeRule {uc}{sl} {} {} %\DeclareFontSeriesChangeRule {uc}{ub} {} {} %\DeclareFontSeriesChangeRule {uc}{ul} {} {} %\DeclareFontSeriesChangeRule {ulc}{bx} {} {} %\DeclareFontSeriesChangeRule {ulc}{b}{bc}{} %\DeclareFontSeriesChangeRule {ulc}{c}{ulc}{} %\DeclareFontSeriesChangeRule {ulc}{eb}{ebc}{} %\DeclareFontSeriesChangeRule {ulc}{ec}{ulec}{ulc} %\DeclareFontSeriesChangeRule {ulc}{el}{elc}{} %\DeclareFontSeriesChangeRule {ulc}{ex} {} {} %\DeclareFontSeriesChangeRule {ulc}{l}{lc}{} %\DeclareFontSeriesChangeRule {ulc}{sb}{sbc}{} %\DeclareFontSeriesChangeRule {ulc}{sc}{ulsc}{ulc} %\DeclareFontSeriesChangeRule {ulc}{sl}{slc}{} %\DeclareFontSeriesChangeRule {ulc}{sx} {} {} %\DeclareFontSeriesChangeRule {ulc}{ub}{ubc}{} %\DeclareFontSeriesChangeRule {ulc}{uc} {} {} %\DeclareFontSeriesChangeRule {ulc}{ul}{ulc}{} %\DeclareFontSeriesChangeRule {ulc}{ux} {} {} %\DeclareFontSeriesChangeRule {ulc}{x}{ulx}{} %\DeclareFontSeriesChangeRule {ulec}{bx} {} {} %\DeclareFontSeriesChangeRule {ulec}{b} {} {} %\DeclareFontSeriesChangeRule {ulec}{c} {} {} %\DeclareFontSeriesChangeRule {ulec}{eb} {} {} %\DeclareFontSeriesChangeRule {ulec}{ec} {} {} %\DeclareFontSeriesChangeRule {ulec}{el} {} {} %\DeclareFontSeriesChangeRule {ulec}{ex} {} {} %\DeclareFontSeriesChangeRule {ulec}{l} {} {} %\DeclareFontSeriesChangeRule {ulec}{sb} {} {} %\DeclareFontSeriesChangeRule {ulec}{sc} {} {} %\DeclareFontSeriesChangeRule {ulec}{sl} {} {} %\DeclareFontSeriesChangeRule {ulec}{sx} {} {} %\DeclareFontSeriesChangeRule {ulec}{ub} {} {} %\DeclareFontSeriesChangeRule {ulec}{uc} {} {} %\DeclareFontSeriesChangeRule {ulec}{ul} {} {} %\DeclareFontSeriesChangeRule {ulec}{ux} {} {} %\DeclareFontSeriesChangeRule {ulec}{x} {} {} %\DeclareFontSeriesChangeRule {ulex}{?m} {} {} %\DeclareFontSeriesChangeRule {ulex}{bx} {} {} %\DeclareFontSeriesChangeRule {ulex}{b} {} {} %\DeclareFontSeriesChangeRule {ulex}{c} {} {} %\DeclareFontSeriesChangeRule {ulex}{eb} {} {} %\DeclareFontSeriesChangeRule {ulex}{ec} {} {} %\DeclareFontSeriesChangeRule {ulex}{el} {} {} %\DeclareFontSeriesChangeRule {ulex}{ex} {} {} %\DeclareFontSeriesChangeRule {ulex}{l} {} {} %\DeclareFontSeriesChangeRule {ulex}{m?} {} {} %\DeclareFontSeriesChangeRule {ulex}{sb} {} {} %\DeclareFontSeriesChangeRule {ulex}{sc} {} {} %\DeclareFontSeriesChangeRule {ulex}{sl} {} {} %\DeclareFontSeriesChangeRule {ulex}{sx} {} {} %\DeclareFontSeriesChangeRule {ulex}{ub} {} {} %\DeclareFontSeriesChangeRule {ulex}{uc} {} {} %\DeclareFontSeriesChangeRule {ulex}{ul} {} {} %\DeclareFontSeriesChangeRule {ulex}{ux} {} {} %\DeclareFontSeriesChangeRule {ulex}{x} {} {} %\DeclareFontSeriesChangeRule {ulsc}{bx} {} {} %\DeclareFontSeriesChangeRule {ulsc}{b} {} {} %\DeclareFontSeriesChangeRule {ulsc}{c} {} {} %\DeclareFontSeriesChangeRule {ulsc}{eb} {} {} %\DeclareFontSeriesChangeRule {ulsc}{ec} {} {} %\DeclareFontSeriesChangeRule {ulsc}{el} {} {} %\DeclareFontSeriesChangeRule {ulsc}{ex} {} {} %\DeclareFontSeriesChangeRule {ulsc}{l} {} {} %\DeclareFontSeriesChangeRule {ulsc}{sb} {} {} %\DeclareFontSeriesChangeRule {ulsc}{sc} {} {} %\DeclareFontSeriesChangeRule {ulsc}{sl} {} {} %\DeclareFontSeriesChangeRule {ulsc}{sx} {} {} %\DeclareFontSeriesChangeRule {ulsc}{ub} {} {} %\DeclareFontSeriesChangeRule {ulsc}{uc} {} {} %\DeclareFontSeriesChangeRule {ulsc}{ul} {} {} %\DeclareFontSeriesChangeRule {ulsc}{ux} {} {} %\DeclareFontSeriesChangeRule {ulsc}{x} {} {} %\DeclareFontSeriesChangeRule {ulsx}{?m} {} {} %\DeclareFontSeriesChangeRule {ulsx}{bx} {} {} %\DeclareFontSeriesChangeRule {ulsx}{b} {} {} %\DeclareFontSeriesChangeRule {ulsx}{c} {} {} %\DeclareFontSeriesChangeRule {ulsx}{eb} {} {} %\DeclareFontSeriesChangeRule {ulsx}{ec} {} {} %\DeclareFontSeriesChangeRule {ulsx}{el} {} {} %\DeclareFontSeriesChangeRule {ulsx}{ex} {} {} %\DeclareFontSeriesChangeRule {ulsx}{l} {} {} %\DeclareFontSeriesChangeRule {ulsx}{m?} {} {} %\DeclareFontSeriesChangeRule {ulsx}{sb} {} {} %\DeclareFontSeriesChangeRule {ulsx}{sc} {} {} %\DeclareFontSeriesChangeRule {ulsx}{sl} {} {} %\DeclareFontSeriesChangeRule {ulsx}{sx} {} {} %\DeclareFontSeriesChangeRule {ulsx}{ub} {} {} %\DeclareFontSeriesChangeRule {ulsx}{uc} {} {} %\DeclareFontSeriesChangeRule {ulsx}{ul} {} {} %\DeclareFontSeriesChangeRule {ulsx}{ux} {} {} %\DeclareFontSeriesChangeRule {ulsx}{x} {} {} %\DeclareFontSeriesChangeRule {uluc}{?m} {} {} %\DeclareFontSeriesChangeRule {uluc}{bx} {} {} %\DeclareFontSeriesChangeRule {uluc}{b} {} {} %\DeclareFontSeriesChangeRule {uluc}{c} {} {} %\DeclareFontSeriesChangeRule {uluc}{eb} {} {} %\DeclareFontSeriesChangeRule {uluc}{ec} {} {} %\DeclareFontSeriesChangeRule {uluc}{el} {} {} %\DeclareFontSeriesChangeRule {uluc}{ex} {} {} %\DeclareFontSeriesChangeRule {uluc}{l} {} {} %\DeclareFontSeriesChangeRule {uluc}{m?} {} {} %\DeclareFontSeriesChangeRule {uluc}{sb} {} {} %\DeclareFontSeriesChangeRule {uluc}{sc} {} {} %\DeclareFontSeriesChangeRule {uluc}{sl} {} {} %\DeclareFontSeriesChangeRule {uluc}{sx} {} {} %\DeclareFontSeriesChangeRule {uluc}{ub} {} {} %\DeclareFontSeriesChangeRule {uluc}{uc} {} {} %\DeclareFontSeriesChangeRule {uluc}{ul} {} {} %\DeclareFontSeriesChangeRule {uluc}{ux} {} {} %\DeclareFontSeriesChangeRule {uluc}{x} {} {} %\DeclareFontSeriesChangeRule {ulux}{?m} {} {} %\DeclareFontSeriesChangeRule {ulux}{bx} {} {} %\DeclareFontSeriesChangeRule {ulux}{b} {} {} %\DeclareFontSeriesChangeRule {ulux}{c} {} {} %\DeclareFontSeriesChangeRule {ulux}{eb} {} {} %\DeclareFontSeriesChangeRule {ulux}{ec} {} {} %\DeclareFontSeriesChangeRule {ulux}{el} {} {} %\DeclareFontSeriesChangeRule {ulux}{ex} {} {} %\DeclareFontSeriesChangeRule {ulux}{l} {} {} %\DeclareFontSeriesChangeRule {ulux}{m?} {} {} %\DeclareFontSeriesChangeRule {ulux}{sb} {} {} %\DeclareFontSeriesChangeRule {ulux}{sc} {} {} %\DeclareFontSeriesChangeRule {ulux}{sl} {} {} %\DeclareFontSeriesChangeRule {ulux}{sx} {} {} %\DeclareFontSeriesChangeRule {ulux}{ub} {} {} %\DeclareFontSeriesChangeRule {ulux}{uc} {} {} %\DeclareFontSeriesChangeRule {ulux}{ul} {} {} %\DeclareFontSeriesChangeRule {ulux}{ux} {} {} %\DeclareFontSeriesChangeRule {ulux}{x} {} {} %\DeclareFontSeriesChangeRule {ulx}{bx} {} {} %\DeclareFontSeriesChangeRule {ulx}{b}{bx}{} %\DeclareFontSeriesChangeRule {ulx}{c}{ulc}{} %\DeclareFontSeriesChangeRule {ulx}{eb}{ebx}{} %\DeclareFontSeriesChangeRule {ulx}{ec}{ulec}{} %\DeclareFontSeriesChangeRule {ulx}{el}{elx}{} %\DeclareFontSeriesChangeRule {ulx}{ex} {} {} %\DeclareFontSeriesChangeRule {ulx}{l}{lx}{} %\DeclareFontSeriesChangeRule {ulx}{sb}{sbx}{} %\DeclareFontSeriesChangeRule {ulx}{sc}{ulsc}{} %\DeclareFontSeriesChangeRule {ulx}{sl}{slx}{} %\DeclareFontSeriesChangeRule {ulx}{sx} {} {} %\DeclareFontSeriesChangeRule {ulx}{ub}{ubx}{} %\DeclareFontSeriesChangeRule {ulx}{uc} {} {} %\DeclareFontSeriesChangeRule {ulx}{ul}{ulx}{} %\DeclareFontSeriesChangeRule {ulx}{ux} {} {} %\DeclareFontSeriesChangeRule {ulx}{x}{ulx}{} %\DeclareFontSeriesChangeRule {ul}{bx} {} {} %\DeclareFontSeriesChangeRule {ul}{c}{ulc}{} %\DeclareFontSeriesChangeRule {ul}{eb} {} {} %\DeclareFontSeriesChangeRule {ul}{ec}{ulec}{} %\DeclareFontSeriesChangeRule {ul}{ex} {} {} %\DeclareFontSeriesChangeRule {ul}{sb} {} {} %\DeclareFontSeriesChangeRule {ul}{sc}{ulsc}{} %\DeclareFontSeriesChangeRule {ul}{sx} {} {} %\DeclareFontSeriesChangeRule {ul}{ub} {} {} %\DeclareFontSeriesChangeRule {ul}{uc} {} {} %\DeclareFontSeriesChangeRule {ul}{ux} {} {} %\DeclareFontSeriesChangeRule {ul}{x}{ulx}{} %\DeclareFontSeriesChangeRule {ux}{?m} {} {} %\DeclareFontSeriesChangeRule {ux}{bx} {} {} %\DeclareFontSeriesChangeRule {ux}{b} {} {} %\DeclareFontSeriesChangeRule {ux}{eb} {} {} %\DeclareFontSeriesChangeRule {ux}{el} {} {} %\DeclareFontSeriesChangeRule {ux}{l} {} {} %\DeclareFontSeriesChangeRule {ux}{m?} {} {} %\DeclareFontSeriesChangeRule {ux}{sb} {} {} %\DeclareFontSeriesChangeRule {ux}{sl} {} {} %\DeclareFontSeriesChangeRule {ux}{ub} {} {} %\DeclareFontSeriesChangeRule {ux}{ul} {} {} %\DeclareFontSeriesChangeRule {x}{bx} {} {} %\DeclareFontSeriesChangeRule {x}{c}{c}{} %\DeclareFontSeriesChangeRule {x}{ec}{ec}{} %\DeclareFontSeriesChangeRule {x}{el}{elx}{} %\DeclareFontSeriesChangeRule {x}{l}{lx}{} %\DeclareFontSeriesChangeRule {x}{sc}{sc}{} %\DeclareFontSeriesChangeRule {x}{sl}{slx}{} %\DeclareFontSeriesChangeRule {x}{ub}{ubx}{} %\DeclareFontSeriesChangeRule {x}{ul}{ulx}{} % %\EndIncludeInRelease % \end{macrocode} % % \begin{macrocode} %\IncludeInRelease{0000/00/00}% % {\DeclareFontSeriesChangeRule}{Series change rules}% % %\let\DeclareFontSeriesChangeRule\@undefined % %\EndIncludeInRelease % \end{macrocode} % % % % % % \subsection{Changing to a new series} % % % \begin{macrocode} %<*2ekernel|latexrelease> %\IncludeInRelease{2021/06/01}% % {\fontseries}{delay fontseries update}% % \end{macrocode} % % % \begin{macro}{\fontseries} % The \cs{fontseries} command takes one argument which is the requested new % font series. In the original implementation it simply saved the % expanded value in \cs{f@series}. Now we do a bit more processing % and look up the final value in the font series data base. This is % done by \cs{merge@font@series}. But the lookup should be done % within the target family and call to \cs{fontseries} might be % followed by a \cs{fontfamily} call. So we delay the processing to % \cs{selectfont} and only record the necessary action in % \cs{delayed@f@adjustment}. % \changes{v1.0c}{2020/02/10}{Switch \cs{if@forced@series} added} % \changes{v1.0h}{2020/12/04}{Distangle series and shape update (gh/444)} % \begin{macrocode} \DeclareRobustCommand\fontseries[1]{\@forced@seriesfalse \expandafter\def\expandafter\delayed@f@adjustment\expandafter {\delayed@f@adjustment\delayed@merge@font@series{#1}}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\delayed@f@adjustment} % The macro holding the delayed action(s) for use in \cs{selectfont}. % \begin{macrocode} \let\delayed@f@adjustment\@empty % \end{macrocode} % \end{macro} % % \begin{macro}{\fontseriesforce} % To change unconditionally to a new series you can use % \cs{fontseriesforce}. Of course, if the series doesn't exist for % the current family substitution still happens, but there is not % dependency on the current series. % \changes{v1.0c}{2020/02/10}{Switch \cs{if@forced@series} added} % \begin{macrocode} \DeclareRobustCommand\fontseriesforce[1]{\@forced@seriestrue \expandafter\def\expandafter\delayed@f@adjustment\expandafter {\delayed@f@adjustment\edef\f@series{#1}}} % \end{macrocode} % \end{macro} % % % % \begin{macro}{\if@forced@series} % If the series gets forced we need to know that fact later on. % \changes{v1.0c}{2020/02/10}{Switch \cs{if@forced@series} added} % \begin{macrocode} \newif\if@forced@series % \end{macrocode} % \end{macro} % % % \begin{macrocode} % %\EndIncludeInRelease % \end{macrocode} % % \begin{macrocode} %\IncludeInRelease{2020/02/02}% % {\fontseries}{delay fontseries update}% % %\DeclareRobustCommand\fontseries[1]{\@forced@seriesfalse % \merge@font@series{#1}} %\DeclareRobustCommand\fontseriesforce[1]{\@forced@seriestrue % \edef\f@series{#1}} %\let\delayed@f@adjustment\@undefined % % \end{macrocode} % For a roll forward we may have to define \cs{if@forced@series} % but this needs doing in a way that \TeX{} doesn't see it when % skipping over conditionals. % \changes{v1.0i}{2021/03/18} % {Fix rollforward definition.} % \begin{macrocode} %\expandafter\newif\csname if@forced@series\endcsname % %\EndIncludeInRelease % \end{macrocode} % % \begin{macrocode} %\IncludeInRelease{0000/00/00}% % {\fontseries}{delay fontseries update}% % %\DeclareRobustCommand\fontseries[1]{\edef\f@series{#1}} %\let\fontseriesforce\@undefined % %\EndIncludeInRelease % \end{macrocode} % % % % \begin{macrocode} %<*2ekernel|latexrelease> %\IncludeInRelease{2020/02/02}% % {\merge@font@series}{Merge series values}% % \end{macrocode} % % % \begin{macro}{\merge@font@series} % We look up the data base value by expanding the right command % twice. If no such value exist then the result will be \cs{relax} % otherwise it will be the two brace groups: the desired result and % the alternate result. The first case means that the third % argument to \cs{merge@font@series} will be empty. % \begin{macrocode} \def\merge@font@series#1{% \expandafter\expandafter\expandafter \merge@font@series@ \csname series@\f@series @#1\endcsname {#1}% \@nil } % \end{macrocode} % \end{macro} % % % % \begin{macro}{\merge@font@series@} % This now defines the new \cs{f@series}: % \begin{macrocode} \def\merge@font@series@#1#2#3\@nil{% % \end{macrocode} % If the third argument is empty there is no database entry for the % combination and the second argument holds the new series so we % return that. % % Originally the test was simply \verb=\ifx!#3!= but that actually % dies if \texttt{\#3} starts with a conditional and in the % definition of \cs{AmSfont} that is actually the case. % \begin{macrocode} %\ifcat\expandafter X\detokenize{#1}X% \def\reserved@a{#3}% \ifx\reserved@a\@empty \set@target@series{#2}% \else % \end{macrocode} % Otherwise we check if the desired result for the series % (\texttt{\#1}) exists for the font family and the current shape. % All this happens inside \cs{selectfont} which has already taken care to load % the \texttt{.fd}, file if necessary. % \begin{macrocode} \edef\reserved@a{\f@encoding /\f@family /#1/\f@shape}% \ifcsname \reserved@a \endcsname % \end{macrocode} % If the desired result is available then we use that. However, we % do need some post-processing because we need to drop surplus % \texttt{m}s due to the way naming convention was designed in the % '90s (sigh). % \begin{macrocode} \set@target@series{#1}% % \end{macrocode} % If not, then we try the alternate result (\texttt{\#2}). % \begin{macrocode} \else \ifcsname \f@encoding /\f@family /#2/\f@shape \endcsname % \end{macrocode} % If the alternate result exist we use that and also issue a % warning (or rather a log entry) that we didn't managed to change % to the desired font. % \begin{macrocode} \set@target@series{#2}% \@font@shape@subst@warning % \end{macrocode} % If that doesn't exist either, then we use the requested series unmodified % (again with a warning). % \begin{macrocode} \else \set@target@series{#3}% \@font@shape@subst@warning \fi \fi \fi } % \end{macrocode} % It is possible that the previous font and the new one are % actually identical (and the font was not found because it still % needs loading) in which case a warning would look rather odd. So % we make a quick check for that (which is the reason why we % defined \cs{@reserveda} above instead of doing inline testing % inside \cs{ifcsname}). % \begin{macrocode} \def\@font@shape@subst@warning{% \edef\reserved@b{\curr@fontshape}% \ifx\reserved@a\reserved@b \else \@font@warning{Font shape `\reserved@a' undefined\MessageBreak using `\reserved@b' instead}% \fi } % \end{macrocode} % \end{macro} % % % % \begin{macro}{\merge@font@series@without@substitution, % \merge@font@series@without@substitution@, % \delayed@merge@font@series} % % \changes{v1.0h}{2020/12/22}{Distangle series and shape update (gh/444)} % % \cs{merge@font@series@without@substitution} works like % \cs{merge@font@series}, i.e., it looks up the combination in the % rule base and if there exists an entry it uses it and if not it % uses the new series value. However, it doesn't check if there is % actually a font face with the new series value as % \cs{merge@font@series} does. This simplified command is used in % \cs{selectfont} at a point where other font attributes are not % yet updated so that checking the font face might result incorrect % in substitutions. % % \begin{macrocode} \def\merge@font@series@without@substitution#1{% \expandafter\expandafter\expandafter \merge@font@series@without@substitution@ \csname series@\f@series @#1\endcsname {#1}% \@nil } % \end{macrocode} % % \begin{macrocode} \def\merge@font@series@without@substitution@#1#2#3\@nil{% \def\reserved@a{#3}% \ifx\reserved@a\@empty \set@target@series{#2}% \else \set@target@series{#1}% \fi } % \end{macrocode} % \end{macro} % % % % \begin{macro}{\delayed@merge@font@series} % % When we delay the merge action in \cs{fontseries} we first % attempt to use merging without substitution. If that results in a % non-existing font face the merge is redone in \cs{selectfont} % using a version with substitution. See \cs{selectfont} for details. % % \changes{v1.0h}{2020/12/22}{Distangle series and shape update % (gh/444)} % \begin{macrocode} \let\delayed@merge@font@series\merge@font@series@without@substitution % \end{macrocode} % \end{macro} % % \begin{macro}{\maybe@load@fontshape} % A small helper that we use a couple of times: try loading a % fontshape (in a group because \cs{try@load@fontshape} normalizes % catcodes and we also want to change \cs{typeout} so that it % doesn't report missing \texttt{.fd} files on the terminal). % \begin{macrocode} \def\maybe@load@fontshape{% \begingroup \let \typeout \@font@info \try@load@fontshape \endgroup} % \end{macrocode} % \end{macro} % % % % \begin{macro}{\set@target@series} % % Finally the code for normalizing the \cs{f@series} value. % % The combined series value determined by the mapping may still % contain an \texttt{m} that we have to remove (as the \texttt{.fd} % files use \texttt{c} not \texttt{mc} to denote a medium weight % condensed series, etc.). We do this in all branches above because a user % might have written %\begin{verbatim} % \DeclareFontSeriesChangeRule {m}{sc}{msc}{mc} %\end{verbatim} % instead of using \texttt{sc} and \texttt{c} as needed in the % \texttt{.fd} file. % \begin{macrocode} \def\set@target@series#1{% % \end{macrocode} % We need to \cs{edef} the argument first in case it starts with a % conditional. Then we check (and perhaps drop) an ``m'' from the % value and assign the result to \cs{f@series}. % \changes{v1.0d}{2020/02/27}{Drop ``m'' only in a specific set of values (gh/293)} % \begin{macrocode} \edef\f@series{#1}% \series@maybe@drop@one@m\f@series\f@series } % \end{macrocode} % \end{macro} % % \begin{macro}{\series@maybe@drop@one@m} % If the series value is in NFSS notation then it should not % contain any ``m'' unless it is just an ``m'' by it own. So we % need to drop surplus ``m''s. But we better don't do this for full % names, such as ``\texttt{semibold}'' as used by % \texttt{autoinst}, for example. So we test against the possible % explicit values that should drop an ``m''. % After that we assign the result to \verb=#2= for further use. % \changes{v1.0d}{2020/02/27}{Drop ``m'' in certain values from a % fixed list (gh/293)} % \begin{macrocode} \def\series@maybe@drop@one@m#1{% \expandafter\series@maybe@drop@one@m@x\expandafter{#1}} % \end{macrocode} % % \begin{macrocode} \def\series@maybe@drop@one@m@x#1#2{% % \end{macrocode} % The code below is an inline version of the \cs{in@} macro without % the group, so that it works in \cs{accent}. % \begin{macrocode} \def\in@@##1,#1,{}% \series@check@toks\expandafter{\in@@ ,ulm,elm,lm,slm,mm,sbm,bm,ebm,ubm,muc,mec,mc,msc,msx,mx,mex,mux,{}{},#1,}% \edef\in@@{\the\series@check@toks}% \ifx\in@@\@empty % \end{macrocode} % The default definition for \cs{bfdefault} etc is actually % \texttt{b\cs{@empty}} so that we can detect if the user has % changed the default. However that means a) the above test will % definitely fail (maybe something to change) and b) we better use % \cs{edef} on the next line to get rid of it as otherwise the test % against \verb=#2= (e.g., \cs{bfdef@ult}) will fail in other places. % \changes{v1.0e}{2020/05/19}{Need to use \cs{edef} (gh/336)} % \begin{macrocode} \edef#2{#1}% \else \edef#2{\expandafter\series@drop@one@m #1m\series@drop@one@m}% \fi } % \end{macrocode} % As a precaution we use a private toks register not \cs{toks@} as % that is no longer hidden inside the group. % \begin{macrocode} \newtoks\series@check@toks % \end{macrocode} % \end{macro} % % \begin{macro}{\series@drop@one@m} % Drop up to two \texttt{m}s but keep one if that makes the series % value empty. Actually, with the current implementation we know % that there is at least one in the series value itself and we % added one after it, so all we have to do is now returning % \verb=#1#2= and dropping the rest. % \begin{macrocode} \def\series@drop@one@m#1m#2m#3\series@drop@one@m{% % \ifx\relax#1#2\relax m\else#1#2\fi #1#2% } % \end{macrocode} % \end{macro} % % % % Supporting rollback \ldots % \begin{macrocode} % %\EndIncludeInRelease %\IncludeInRelease{0000/00/00}% % {\merge@font@series}{Merge series values}% % %\let\merge@font@series\@undefined %\let\merge@font@series@\@undefined %\let\@font@shape@subst@warning\@undefined %\let\merge@font@series@without@substitution\@undefined %\let\merge@font@series@without@substitution@\@undefined %\let\delayed@merge@font@series\@undefined %\let\maybe@load@fontshape\@undefined %\let\set@target@series\@undefined %\let\series@maybe@drop@one@m\@undefined %\let\series@drop@one@m\@undefined % %\EndIncludeInRelease % \end{macrocode} % \section{Changing the shape} % % Shapes are also split in two axes (though it could be more if % that is desirable), essentially building in an ``sc'' % axis. % % \changes{v1.0k}{2024/12/11}{Reorganized the rollback data} % % \begin{macrocode} %<*2ekernel|latexrelease> %\IncludeInRelease{2020/02/02}% % {\ulcshape}{Font shape change rules}% % \end{macrocode} % % % % \begin{macro}{\DeclareFontShapeChangeRule} % The database for shapes is done in exactly the same way, only % that it is much smaller and we usually have no alternative shape % (or rather it is empty thus not used). % \begin{macrocode} \def\DeclareFontShapeChangeRule #1#2#3#4{% \@namedef{shape@#1@#2}{{#3}{#4}}} % \end{macrocode} % \end{macro} % % % There is kind of the same problem with returning back from % \texttt{sc} to normal. It sort of needs its own letter. In % \texttt{fontspec} this was solved by the first time \cs{upshape} changes % \texttt{it} or \texttt{sl} back (so only \texttt{sc} remains) and % second time it changes then \texttt{sc} back to normal. Maybe % that's not a bad way to handle it, but decided for a slightly % different approach: \texttt{n} always returns to ``normal'', ie % resets everything and \texttt{up} changes italic or slanted to % upright and \texttt{ulc} undoes small caps. % % So we now offer \cs{normalshape} (using \cs{shapedefault}) which % is normally the same as calling both \cs{ulcshape} and % \cs{upshape}, only more efficient. % % % \begin{macro}{\ulcshape} % \begin{macro}{\textulc} % \begin{macro}{\ulcdefault} % To request going back to upper/lowercase we need a new % command. It uses \texttt{ulc} as shape name but this shape is % virtual, i.e., it doesn't exist as a real shape, it is only used % as part of the database table entries and thus only appears in % the second argument there (but not in the first). % \begin{macrocode} \DeclareRobustCommand\ulcshape {\not@math@alphabet\ulcshape\relax \fontshape\ulcdefault\selectfont} \let\ulcdefault\@undefined % for rollback \newcommand\ulcdefault{ulc} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\swshape} % \begin{macro}{\textsw} % \begin{macro}{\swdefault} % New command to select a swash shape. The standard rules put this % in the same category as italics or slanted, i.e., if you ask for % it then italics are undone. One could provide more complicated % rules so that \texttt{it} + \texttt{sw} becomes \texttt{swit} but % given that there are only very few fonts that have swash letters % that level of flexibility (these days) would be just resulting in % a lot of combinations that do not exist. % \begin{macrocode} \DeclareRobustCommand\swshape {\not@math@alphabet\swshape\relax \fontshape\swdefault\selectfont} \let\swdefault\@undefined % for rollback \newcommand\swdefault{sw} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % % % \begin{macro}{\sscshape} % \begin{macro}{\textssc} % \begin{macro}{\sscdefault} % % New commands to select spaced small capitals. There isn't a % single free font that supports it. However, some commercial ones % do, so we offer it. It is also possible to produce spaced small % capitals from normal small capitals in OTF fonts using % \texttt{otftotfm} with calls such as %\begin{verbatim} % otftotfm -e TEXMF/fonts/enc/dvips/base/texnansx.enc \ % SourceSerifPro-Regular.otf -fkern -fliga --feature=smcp \ % --letterspacing=80 SourceSerifPro-Regular-ssc-LY1 %\end{verbatim} % % Michael Ummels kindly prepared the necessary rules for % \texttt{ssc} ages ago, but until recently they managed to hide % deep down in my inbox. I finally got around to integrating them % (with a few changes) and I also took the opportunity to % rationalize (a bit) the rules for the only other uncommon shape, % \texttt{sw}. % \begin{macrocode} \DeclareRobustCommand\sscshape {\not@math@alphabet\sscshape\relax \fontshape\sscdefault\selectfont} \let\sscdefault\@undefined % for rollback \newcommand\sscdefault{ssc} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % % Supporting rollback \ldots % \begin{macrocode} % %\EndIncludeInRelease %\IncludeInRelease{0000/00/00}% % {\ulcshape}{Font shape change rules}% % %\let\DeclareFontShapeChangeRule\@undefined %\let\ulcshape\@undefined %\let\ulcdefault\@undefined %\let\swshape\@undefined %\let\swdefault\@undefined %\let\sscshape\@undefined %\let\sscdefault\@undefined % %\EndIncludeInRelease %<*2ekernel> % \end{macrocode} % % % \subsection{Mapping rules for shape combinations} % % Many of the entries are commented out as we will get that result % without any entry. % \begin{macrocode} % %<*2ekernel|latexrelease> %\IncludeInRelease{2025/06/01}% % {\DeclareFontShapeChangeRule}{Rules for ssc and sw}% % % \DeclareFontShapeChangeRule {n}{n} {n} {} \DeclareFontShapeChangeRule {n}{it} {it} {sl} \DeclareFontShapeChangeRule {n}{sl} {sl} {it} % \end{macrocode} % If \texttt{sw} is requested but not available (not many font % families offer it) we try to fallback to \texttt{it} instead of % \texttt{sw}. That isn't always perfect, because some swash shapes % are actually upright, but it is only a fallback and most of the % time it would be better than \texttt{n}. % \changes{v1.0k}{2024/12/11}{Rationalize \texttt{sw} shape change % rules (gh/1581)} % \begin{macrocode} \DeclareFontShapeChangeRule {n}{sw} {sw} {it} % \DeclareFontShapeChangeRule {n}{sc} {sc} {} \DeclareFontShapeChangeRule {n}{ulc} {n} {} \DeclareFontShapeChangeRule {n}{up} {n} {} % \end{macrocode} % For the \texttt{ssc} shape we make the following general % assumptions: if \texttt{ssc}\meta{X} exists then % \texttt{sc}\meta{X} and \meta{X} also exist in the font. If the % \texttt{ssc}\meta{X} shape doesn't exist but the user had asked % for \texttt{ssc} we try to replace it by \texttt{sc} because we % then assume that the current font family simply doesn't have any % \texttt{ssc} shapes. However, if we are already in some % \texttt{ssc} shape and a shape change is requested we know that at % least some \texttt{ssc} shapes exist for the current font family, % so rather than falling back to some \texttt{sc} shape we try to stay % within \texttt{ssc} shapes in a fallback situation. % \changes{v1.0k}{2024/12/11}{Add \texttt{ssc} shape change % rules (gh/1581)} % \begin{macrocode} \DeclareFontShapeChangeRule {n}{ssc} {ssc} {sc} % \end{macrocode} % % \begin{macrocode} % \DeclareFontShapeChangeRule {it}{n} {n} {} % \DeclareFontShapeChangeRule {it}{it} {it} {} \DeclareFontShapeChangeRule {it}{sl} {sl} {it} \DeclareFontShapeChangeRule {it}{sw} {sw} {it} % \end{macrocode} % If neither \texttt{scit} nor \texttt{scsl} exist then \texttt{sc} % will be used as a fallback albeit with a log entry, so except for % the latter there will be no change for CM or Latin Modern fonts. % \begin{macrocode} \DeclareFontShapeChangeRule {it}{sc} {scit} {scsl} \DeclareFontShapeChangeRule {it}{ulc} {it} {} \DeclareFontShapeChangeRule {it}{up} {n} {} \DeclareFontShapeChangeRule {it}{ssc} {sscit} {scit} % \end{macrocode} % % \begin{macrocode} % \DeclareFontShapeChangeRule {sl}{n} {n} {} \DeclareFontShapeChangeRule {sl}{it} {it} {sl} % \DeclareFontShapeChangeRule {sl}{sl} {sl} {} \DeclareFontShapeChangeRule {sl}{sw} {sw} {it} \DeclareFontShapeChangeRule {sl}{sc} {scsl} {scit} \DeclareFontShapeChangeRule {sl}{ulc} {sl} {} \DeclareFontShapeChangeRule {sl}{up} {n} {} \DeclareFontShapeChangeRule {sl}{ssc} {sscsl} {scsl} % \end{macrocode} % % \begin{macrocode} % \DeclareFontShapeChangeRule {sc}{n} {n} {} \DeclareFontShapeChangeRule {sc}{it} {scit} {scsl} \DeclareFontShapeChangeRule {sc}{sl} {scsl} {scit} \DeclareFontShapeChangeRule {sc}{sw} {scsw} {scit} % \DeclareFontShapeChangeRule {sc}{sc} {sc} {} \DeclareFontShapeChangeRule {sc}{ulc} {n} {} % \end{macrocode} % % The next rule might be a bit surprising, and rightly so. % It would be more correct if \texttt{sc} % were not affected by \texttt{up}, so that it % remains \texttt{sc} as shown in the commented out rule. However, % for nearly three decades commands such as \cs{upshape} or % \cs{textup} changed small caps back to the ``normal'' shape. So % for backward compatibility we keep that behavior. % % As a result you are currently typesetting in \texttt{scit} or % \texttt{scsl} using \cs{upshape} twice will return you to the % normal shape too, the first will change to \texttt{sc} and the % second (because of the rule below) change that to % \texttt{n}. This is the way \texttt{fontspec} implemented its % version on this interface, so this rule means we are also % compatible with the way \texttt{fontspec} behaved. Still it % remains an oddity which I would rather liked to have avoided. % \begin{macrocode} % \DeclareFontShapeChangeRule {sc}{up} {sc} {} \DeclareFontShapeChangeRule {sc}{up} {n} {} % \DeclareFontShapeChangeRule {sc}{ssc} {ssc} {} % \end{macrocode} % % \begin{macrocode} % \DeclareFontShapeChangeRule {scit}{n} {n} {} \DeclareFontShapeChangeRule {scit}{it} {scit} {} \DeclareFontShapeChangeRule {scit}{sl} {scsl} {scit} \DeclareFontShapeChangeRule {scit}{sw} {scsw} {scit} \DeclareFontShapeChangeRule {scit}{sc} {scit} {} \DeclareFontShapeChangeRule {scit}{ulc} {it} {} % \end{macrocode} % The next rule assumes that if \texttt{scit} exists then % \texttt{it} exists as well. If not, the mechanism will save % \texttt{ulc} in \cs{f@series}, which most certainly doesn't % exist. So when a font is later selected that would result in a % substitution (so no harm done really). Alternatively, we could in % this case use \texttt{n} as alternative, which may be a bit % faster, but such a setup would be so weird in the first place % that this isn't worth the effort. % \begin{macrocode} \DeclareFontShapeChangeRule {scit}{up} {sc} {} \DeclareFontShapeChangeRule {scit}{ssc} {sscit} {scit} % \end{macrocode} % % \begin{macrocode} % \DeclareFontShapeChangeRule {scsl}{n} {n} {} \DeclareFontShapeChangeRule {scsl}{it} {scit} {scsl} \DeclareFontShapeChangeRule {scsl}{sl} {scsl} {} \DeclareFontShapeChangeRule {scsl}{sw} {scsw} {scsl} \DeclareFontShapeChangeRule {scsl}{sc} {scsl} {} \DeclareFontShapeChangeRule {scsl}{ulc} {sl} {} \DeclareFontShapeChangeRule {scsl}{up} {sc} {} \DeclareFontShapeChangeRule {scsl}{ssc} {sscsl} {scsl} % \end{macrocode} % % \begin{macrocode} % \DeclareFontShapeChangeRule {scsw}{n} {n} {} \DeclareFontShapeChangeRule {scsw}{it} {scit} {scsw} \DeclareFontShapeChangeRule {scsw}{sl} {scsl} {} \DeclareFontShapeChangeRule {scsw}{sw} {scsw} {} \DeclareFontShapeChangeRule {scsw}{sc} {scsw} {} \DeclareFontShapeChangeRule {scsw}{ulc} {sw} {} \DeclareFontShapeChangeRule {scsw}{up} {sc} {} \DeclareFontShapeChangeRule {scsw}{ssc} {sscsw} {scsw} % \end{macrocode} % % \begin{macrocode} % \DeclareFontShapeChangeRule {sw}{n} {n} {} % \DeclareFontShapeChangeRule {sw}{it} {it} {} % \DeclareFontShapeChangeRule {sw}{sl} {sl} {} % \DeclareFontShapeChangeRule {sw}{sw} {sw} {} \DeclareFontShapeChangeRule {sw}{sc} {scsw} {scit} \DeclareFontShapeChangeRule {sw}{ulc} {sw} {} \DeclareFontShapeChangeRule {sw}{up} {n} {} \DeclareFontShapeChangeRule {sw}{ssc} {sscsw} {scsw} % \end{macrocode} % % \begin{macrocode} % \DeclareFontShapeChangeRule {ssc}{n} {n} {} \DeclareFontShapeChangeRule {ssc}{it} {sscit} {sscsl} \DeclareFontShapeChangeRule {ssc}{sl} {sscsl} {sscit} \DeclareFontShapeChangeRule {ssc}{sw} {sscsw} {sscit} \DeclareFontShapeChangeRule {ssc}{sc} {sc} {} % \DeclareFontShapeChangeRule {ssc}{ssc} {ssc} {} \DeclareFontShapeChangeRule {ssc}{ulc} {n} {} % \end{macrocode} % We implement the same logic as for \texttt{sc}, see above. The % \texttt{ssc} shape doesn't have to care about 30 years of history, % but it would be surprising if \cs{sscshape}\cs{upshape} did not % work like \cs{scshape}\cs{upshape}. % \begin{macrocode} % \DeclareFontShapeChangeRule {ssc}{up} {ssc} {} \DeclareFontShapeChangeRule {ssc}{up} {n} {} % \end{macrocode} % % \begin{macrocode} % \DeclareFontShapeChangeRule {sscit}{n} {n} {} \DeclareFontShapeChangeRule {sscit}{it} {sscit} {} \DeclareFontShapeChangeRule {sscit}{sl} {sscsl} {sscit} \DeclareFontShapeChangeRule {sscit}{sw} {sscsw} {sscit} \DeclareFontShapeChangeRule {sscit}{ssc} {sscit} {} \DeclareFontShapeChangeRule {sscit}{sc} {scit} {} \DeclareFontShapeChangeRule {sscit}{ulc} {it} {} \DeclareFontShapeChangeRule {sscit}{up} {ssc} {} % \end{macrocode} % % \begin{macrocode} % \DeclareFontShapeChangeRule {sscsl}{n} {n} {} \DeclareFontShapeChangeRule {sscsl}{it} {sscit} {sscsl} \DeclareFontShapeChangeRule {sscsl}{sl} {sscsl} {} \DeclareFontShapeChangeRule {sscsl}{sw} {sscsw} {sscit} \DeclareFontShapeChangeRule {sscsl}{sc} {scsl} {} \DeclareFontShapeChangeRule {sscsl}{ulc} {sl} {} \DeclareFontShapeChangeRule {sscsl}{up} {ssc} {} % \end{macrocode} % % \begin{macrocode} % \DeclareFontShapeChangeRule {sscsw}{n} {n} {} \DeclareFontShapeChangeRule {sscsw}{it} {sscit} {sscsl} \DeclareFontShapeChangeRule {sscsw}{sl} {sscsl} {sscit} \DeclareFontShapeChangeRule {sscsw}{sw} {sscsw} {} \DeclareFontShapeChangeRule {sscsw}{ssc} {sscsw} {} \DeclareFontShapeChangeRule {sscsw}{sc} {scsw} {scit} \DeclareFontShapeChangeRule {sscsw}{ulc} {sw} {it} \DeclareFontShapeChangeRule {sscsw}{up} {ssc} {} % %\EndIncludeInRelease % \end{macrocode} % % \begin{macrocode} %\IncludeInRelease{2020/02/02}% % {\DeclareFontShapeChangeRule}{Rules for ssc and sw}% % %\DeclareFontShapeChangeRule {n}{it} {it} {sl} %\DeclareFontShapeChangeRule {n}{sl} {sl} {it} %\DeclareFontShapeChangeRule {n}{ulc} {n} {} %\DeclareFontShapeChangeRule {n}{up} {n} {} %\DeclareFontShapeChangeRule {it}{sl} {sl} {it} %\DeclareFontShapeChangeRule {it}{sc} {scit} {scsl} %\DeclareFontShapeChangeRule {it}{ulc} {it} {} %\DeclareFontShapeChangeRule {it}{up} {n} {} %\DeclareFontShapeChangeRule {sl}{it} {it} {sl} %\DeclareFontShapeChangeRule {sl}{sc} {scsl} {scit} %\DeclareFontShapeChangeRule {sl}{ulc} {sl} {} %\DeclareFontShapeChangeRule {sl}{up} {n} {} %\DeclareFontShapeChangeRule {sc}{it} {scit} {scsl} %\DeclareFontShapeChangeRule {sc}{sl} {scsl} {scit} %\DeclareFontShapeChangeRule {sc}{sw} {scsw} {sw} %\DeclareFontShapeChangeRule {sc}{ulc} {n} {} %\DeclareFontShapeChangeRule {sc}{up} {n} {} %\DeclareFontShapeChangeRule {scit}{it} {scit} {} %\DeclareFontShapeChangeRule {scit}{sl} {scsl} {scit} %\DeclareFontShapeChangeRule {scit}{sw} {scsw} {sc} % or scit? %\DeclareFontShapeChangeRule {scit}{sc} {scit} {} %\DeclareFontShapeChangeRule {scit}{ulc} {it} {} %\DeclareFontShapeChangeRule {scit}{up} {sc} {} %\DeclareFontShapeChangeRule {scsl}{it} {scit} {scsl} %\DeclareFontShapeChangeRule {scsl}{sl} {scsl} {} %\DeclareFontShapeChangeRule {scsl}{sw} {scsw} {sc} % or scsl? %\DeclareFontShapeChangeRule {scsl}{sc} {scsl} {} %\DeclareFontShapeChangeRule {scsl}{ulc} {sl} {} %\DeclareFontShapeChangeRule {scsl}{up} {sc} {} %\DeclareFontShapeChangeRule {scsw}{it} {scit} {scsw} %\DeclareFontShapeChangeRule {scsw}{sl} {scsl} {} %\DeclareFontShapeChangeRule {scsw}{sw} {scsw} {} %\DeclareFontShapeChangeRule {scsw}{sc} {scsw} {} %\DeclareFontShapeChangeRule {scsw}{ulc} {sw} {} %\DeclareFontShapeChangeRule {scsw}{up} {sc} {} %\DeclareFontShapeChangeRule {sw}{sc} {scsw} {} %\DeclareFontShapeChangeRule {sw}{ulc} {sw} {} %\DeclareFontShapeChangeRule {sw}{up} {n} {} % % \end{macrocode} % In 2022-02-02 the \texttt{ssc} shape had no rules, so % that any use of it would have resulted in just switching to % that shape or switching away from it; so we mimic that by % providing the corresponding trivial rules to overrule those % from above when we roll back. % \begin{macrocode} %\DeclareFontShapeChangeRule {n}{ssc} {ssc} {} %\DeclareFontShapeChangeRule {it}{ssc} {ssc} {} %\DeclareFontShapeChangeRule {sl}{ssc} {ssc} {} %\DeclareFontShapeChangeRule {sw}{ssc} {ssc} {} % %\DeclareFontShapeChangeRule {scit}{ssc}{ssc} {} %\DeclareFontShapeChangeRule {scsl}{ssc}{ssc} {} %\DeclareFontShapeChangeRule {scsw}{ssc}{ssc} {} % %\DeclareFontShapeChangeRule {ssc}{it} {it} {} %\DeclareFontShapeChangeRule {ssc}{sl} {sl} {} %\DeclareFontShapeChangeRule {ssc}{sw} {sw} {} %\DeclareFontShapeChangeRule {ssc}{sc} {sc} {} %\DeclareFontShapeChangeRule {ssc}{ulc} {n} {} %\DeclareFontShapeChangeRule {ssc}{up} {n} {} % %\DeclareFontShapeChangeRule {sscit}{it} {it} {} %\DeclareFontShapeChangeRule {sscit}{sl} {sl} {} %\DeclareFontShapeChangeRule {sscit}{sw} {sw} {} %\DeclareFontShapeChangeRule {sscit}{ssc} {ssc}{} %\DeclareFontShapeChangeRule {sscit}{sc} {sc} {} %\DeclareFontShapeChangeRule {sscit}{ulc} {n} {} %\DeclareFontShapeChangeRule {sscit}{up} {ssc}{} % %\DeclareFontShapeChangeRule {sscsl}{it} {it} {} %\DeclareFontShapeChangeRule {sscsl}{sl} {sl} {} %\DeclareFontShapeChangeRule {sscsl}{sw} {sw} {} %\DeclareFontShapeChangeRule {sscsl}{sc} {sc} {} %\DeclareFontShapeChangeRule {sscsl}{ulc} {n} {} %\DeclareFontShapeChangeRule {sscsl}{up} {ssc}{} % %\DeclareFontShapeChangeRule {sscsw}{it} {it} {} %\DeclareFontShapeChangeRule {sscsw}{sl} {sl} {} %\DeclareFontShapeChangeRule {sscsw}{sw} {sw} {} %\DeclareFontShapeChangeRule {sscsw}{ssc} {ssc}{} %\DeclareFontShapeChangeRule {sscsw}{sc} {sc} {} %\DeclareFontShapeChangeRule {sscsw}{ulc} {n} {} %\DeclareFontShapeChangeRule {sscsw}{up} {ssc}{} %\EndIncludeInRelease % \end{macrocode} % Before 2020-02-02 we don't really care about any existing shape % change rules since the mechanism isn't used. % \begin{macrocode} %\IncludeInRelease{0000/00/00}% % {\DeclareFontShapeChangeRule}{Rules for ssc and sw}% %\EndIncludeInRelease % \end{macrocode} % % % \subsection{Changing to a new shape} % % % \begin{macrocode} %<*2ekernel|latexrelease> %\IncludeInRelease{2021/06/01}% % {\fontshape}{Font shape change}% % \end{macrocode} % % % % \begin{macro}{\fontshape} % Again the \cs{fontshape} now has to do a lookup to get to its new % value in \cs{f@shape}. The method is exactly the same as in % \cs{fontseries}. % \changes{v1.0h}{2020/12/04}{Distangle series and shape update (gh/444)} % \begin{macrocode} \DeclareRobustCommand\fontshape[1] {\expandafter\def\expandafter\delayed@f@adjustment\expandafter {\delayed@f@adjustment\delayed@merge@font@shape{#1}}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\fontshapeforce} % The unconditional version: % % \changes{v1.0h}{2020/12/04}{Distangle series and shape update (gh/444)} % \begin{macrocode} \DeclareRobustCommand\fontshapeforce[1] {\expandafter\def\expandafter\delayed@f@adjustment\expandafter {\delayed@f@adjustment\edef\f@shape{#1}}} % \end{macrocode} % \end{macro} % % % Supporting rollback \ldots % \begin{macrocode} % %\EndIncludeInRelease %\IncludeInRelease{2020/02/02}% % {\fontshape}{Font shape change}% % %\DeclareRobustCommand\fontshape[1]{\merge@font@shape{#1}} %\DeclareRobustCommand\fontshapeforce[1]{\edef\f@shape{#1}} % %\EndIncludeInRelease % \end{macrocode} % % \begin{macrocode} %\IncludeInRelease{0000/00/00}% % {\fontshape}{Font shape change}% % %\DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}} %\let\fontshapeforce\@undefined % %\EndIncludeInRelease % \end{macrocode} % % \begin{macrocode} %<*2ekernel|latexrelease> %\IncludeInRelease{2020/02/02}% % {\merge@font@shape}{Font shape change rules}% % \end{macrocode} % % % % \begin{macro}{\merge@font@shape} % Look up the database entry (if existing) and act accordingly. % \begin{macrocode} \def\merge@font@shape#1{% \expandafter\expandafter\expandafter \merge@font@shape@ \csname shape@\f@shape @#1\endcsname {#1}% \@nil } % \end{macrocode} % \end{macro} % % \begin{macro}{\merge@font@shape@} % Same game now, except that we look at shapes not series values % and we can set the shape without the complication of dropping % ``m''s from the name as we had to for the series. % \begin{macrocode} \def\merge@font@shape@#1#2#3\@nil{% \def\reserved@a{#3}% \ifx\reserved@a\@empty \edef\f@shape{#2}% \else % \end{macrocode} % \cs{reserved@a} is used in \cs{@font@shape@subst@warning} so we % have to define it in addition to do the \cs{ifcsname} test % \begin{macrocode} \edef\reserved@a{\f@encoding /\f@family /\f@series/#1}% \ifcsname \reserved@a\endcsname \edef\f@shape{#1}% \else \ifcsname \f@encoding /\f@family /\f@series/#2\endcsname \edef\f@shape{#2}% \@font@shape@subst@warning \else \edef\f@shape{#3}% \@font@shape@subst@warning \fi \fi \fi } % \end{macrocode} % \end{macro} % % % \begin{macro}{\merge@font@shape@without@substitution, % \merge@font@shape@without@substitution@, % \delayed@merge@font@shape} % See definition of \cs{selectfont} for how these macros are used. % \changes{v1.0h}{2020/12/22}{Distangle series and shape update (gh/444)} % \begin{macrocode} \def\merge@font@shape@without@substitution#1{% \expandafter\expandafter\expandafter \merge@font@shape@without@substitution@ \csname shape@\f@shape @#1\endcsname {#1}% \@nil } % \end{macrocode} % % \begin{macrocode} \def\merge@font@shape@without@substitution@#1#2#3\@nil{% \def\reserved@a{#3}% \ifx\reserved@a\@empty \edef\f@shape{#2}% \else \edef\f@shape{#1}% \fi } % \end{macrocode} % % \begin{macrocode} \let\delayed@merge@font@shape\merge@font@shape@without@substitution % \end{macrocode} % \end{macro} % % % % \begin{macro}{\normalshape} % % \cs{normalshape} resets both sub-axes if the default rules are used. % \begin{macrocode} \protected\def\normalshape {\not@math@alphabet\normalshape\relax \fontshape\shapedefault\selectfont}% % \end{macrocode} % \end{macro} % % % % % \section{Make sure we win \ldots} % % This code implements one aspect of what the package \textsf{fontaxes} % provide. So its redefinitions for the various shape commands, % such as \cs{itshape} should no longer happen. We therefore force % the standard definitions at \cs{AtBeginDocument} (later when this % is defined). Once % \texttt{fontaxes} is no longer doing such redefinitions that could % be taken out again. % % We use a separate macro so that we can easily disable this (in % case of rollback). % % \begin{macro}{\reinstall@nfss@defs} % % I use \cs{protected} here not \cs{DeclareRobustCommand} to avoid % extra status lines. % \begin{macrocode} \def\reinstall@nfss@defs{% \protected\def\upshape {\not@math@alphabet\upshape\relax \fontshape\updefault\selectfont}% \protected\def\slshape {\not@math@alphabet\slshape\relax \fontshape\sldefault\selectfont}% \protected\def\scshape {\not@math@alphabet\scshape\relax \fontshape\scdefault\selectfont}% \protected\def\itshape {\not@math@alphabet\itshape\mathit \fontshape\itdefault\selectfont}% \protected\def\ulcshape {\not@math@alphabet\ulcshape\relax \fontshape{ulc}\selectfont}% \protected\def\swshape {\not@math@alphabet\swshape\relax \fontshape\swdefault\selectfont}% \protected\def\sscshape {\not@math@alphabet\sscshape\relax \fontshape\sscdefault\selectfont}% } % \end{macrocode} % \end{macro} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Supporting rollback \ldots % \begin{macrocode} % %\EndIncludeInRelease %\IncludeInRelease{0000/00/00}% % {\merge@font@shape}{Font shape change rules}% % %\DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}} %\let\fontshapeforce\@undefined % %\let\merge@font@shape\@undefined %\let\merge@font@shape@\@undefined % %\let\merge@font@shape@without@substitution\@undefined %\let\merge@font@shape@without@substitution@\@undefined %\let\delayed@merge@font@shape\@undefined % %\let\normalshape\@undefined % % \end{macrocode} % This is always called in \cs{document} so don't make it undefined. % \begin{macrocode} % %\let\reinstall@nfss@defs\relax %\EndIncludeInRelease % \end{macrocode} % % % % This initializes the 2020/02/02 extensions to NFSS after any changes % in the preamble. % \changes{v1.0g}{2020/08/21}{Integration of new hook management interface} % \begin{macrocode} %<*2ekernel|latexrelease> %\IncludeInRelease{2020/10/01}% % {\reinstall@nfss@defs}{NFSS series init}% \g@addto@macro\@kernel@after@begindocument@before {\reinstall@nfss@defs\init@series@setup} % %\EndIncludeInRelease % \end{macrocode} % % The initialization was introduced in 2020/02/02 but % \begin{macrocode} %\IncludeInRelease{2020/02/02}% % {\reinstall@nfss@defs}{NFSS series init}% %\AtBeginDocument{\reinstall@nfss@defs\init@series@setup} %\EndIncludeInRelease % \end{macrocode} % % \begin{macrocode} %\IncludeInRelease{0000/00/00}% % {\reinstall@nfss@defs}{NFSS series init}% %\EndIncludeInRelease %<*2ekernel> % % \end{macrocode} % % \Finale %