diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/mweights/mweights.sty |
Initial commit
Diffstat (limited to 'macros/latex/contrib/mweights/mweights.sty')
-rw-r--r-- | macros/latex/contrib/mweights/mweights.sty | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/macros/latex/contrib/mweights/mweights.sty b/macros/latex/contrib/mweights/mweights.sty new file mode 100644 index 0000000000..1f89904805 --- /dev/null +++ b/macros/latex/contrib/mweights/mweights.sty @@ -0,0 +1,129 @@ +\ProvidesPackage{mweights} + [2017/03/30 (Bob Tennent) Support package for multiple-weight font packages. ] + +\def\mweights@init{% +% Define any undefined \mdseries@rm etc. +% Defined \mdseries@rm etc. assumed to be fully expanded! +\ifdefined\mdseries@rm\else\edef\mdseries@rm{\mddefault}\fi +\ifdefined\bfseries@rm\else\edef\bfseries@rm{\bfdefault}\fi +\ifdefined\mdseries@sf\else\edef\mdseries@sf{\mddefault}\fi +\ifdefined\bfseries@sf\else\edef\bfseries@sf{\bfdefault}\fi +\ifdefined\mdseries@tt\else\edef\mdseries@tt{\mddefault}\fi +\ifdefined\bfseries@tt\else\edef\bfseries@tt{\bfdefault}\fi +% In case any unexpanded macros present in \rmdefault, etc +\edef\rmdef@ult{\rmdefault}% +\edef\sfdef@ult{\sfdefault}% +\edef\ttdef@ult{\ttdefault}% +\edef\bfdef@ult{\bfdefault}% +\edef\mddef@ult{\mddefault}% +\edef\famdef@ult{\familydefault}% +} + +\DeclareRobustCommand\bfseries{% +\mweights@init +\not@math@alphabet\bfseries\mathbf +\ifx\f@family\rmdef@ult\fontseries\bfseries@rm +\else\ifx\f@family\sfdef@ult\fontseries\bfseries@sf +\else\ifx\f@family\ttdef@ult\fontseries\bfseries@tt +\else\fontseries\bfdefault\fi\fi\fi\selectfont}% + +\DeclareRobustCommand\mdseries{% +\mweights@init +\not@math@alphabet\mdseries\relax +\ifx\f@family\rmdef@ult\fontseries\mdseries@rm +\else\ifx\f@family\sfdef@ult\fontseries\mdseries@sf +\else\ifx\f@family\ttdef@ult\fontseries\mdseries@tt +\else\fontseries\mddefault\fi\fi\fi\selectfont} + +\DeclareRobustCommand\rmfamily{% +\mweights@init +\not@math@alphabet\rmfamily\mathrm +% change the current series before changing the family +\ifx\f@family\sfdef@ult + \ifx\f@series\mdseries@sf\fontseries\mdseries@rm + \else\ifx\f@series\bfseries@sf\fontseries\bfseries@rm + \else\ifx\f@series\mddef@ult\fontseries\mdseries@rm + \else\ifx\f@series\bfdef@ult\fontseries\bfseries@rm + \else\fontseries\mdseries@rm + \fi\fi\fi\fi +\else\ifx\f@family\ttdef@ult + \ifx\f@series\mdseries@tt\fontseries\mdseries@rm + \else\ifx\f@series\bfseries@tt\fontseries\bfseries@rm + \else\ifx\f@series\mddef@ult\fontseries\mdseries@rm + \else\ifx\f@series\bfdef@ult\fontseries\bfseries@rm + \else\fontseries\mdseries@rm + \fi\fi\fi\fi +\else\ifx\f@family\rmdef@ult + \ifx\f@series\mdseries@rm\fontseries\mdseries@rm + \else\ifx\f@series\bfseries@rm\fontseries\bfseries@rm + \else\ifx\f@series\mddef@ult\fontseries\mdseries@rm + \else\ifx\f@series\bfdef@ult\fontseries\bfseries@rm + \else\fontseries\mdseries@rm + \fi\fi\fi\fi +\else\fontseries\mdseries@rm +\fi\fi\fi\fontfamily\rmdefault\selectfont} + +\DeclareRobustCommand\sffamily{% +\mweights@init +\not@math@alphabet\sffamily\mathsf +% change the current series before changing the family +\ifx\f@family\rmdef@ult + \ifx\f@series\mdseries@rm\fontseries\mdseries@sf + \else\ifx\f@series\bfseries@rm\fontseries\bfseries@sf + \else\ifx\f@series\mddef@ult\fontseries\mdseries@sf + \else\ifx\f@series\bfdef@ult\fontseries\bfseries@sf + \else\fontseries\mdseries@sf + \fi\fi\fi\fi +\else\ifx\f@family\ttdef@ult + \ifx\f@series\mdseries@tt\fontseries\mdseries@sf + \else\ifx\f@series\bfseries@tt\fontseries\bfseries@sf + \else\ifx\f@series\mddef@ult\fontseries\mdseries@sf + \else\ifx\f@series\bfdef@ult\fontseries\bfseries@sf + \else\fontseries\mdseries@sf + \fi\fi\fi\fi +\else\ifx\f@family\sfdef@ult + \ifx\f@series\mdseries@sf\fontseries\mdseries@sf + \else\ifx\f@series\bfseries@sf\fontseries\bfseries@sf + \else\ifx\f@series\mddef@ult\fontseries\mdseries@sf + \else\ifx\f@series\bfdef@ult\fontseries\bfseries@sf + \else\fontseries\mdseries@sf + \fi\fi\fi\fi +\else\fontseries\mdseries@sf +\fi\fi\fi\fontfamily\sfdefault\selectfont} + +\DeclareRobustCommand\ttfamily{% +\mweights@init +\not@math@alphabet\ttfamily\mathtt +% change the current series before changing the family +\ifx\f@family\rmdef@ult + \ifx\f@series\mdseries@rm\fontseries\mdseries@tt + \else\ifx\f@series\bfseries@rm\fontseries\bfseries@tt + \else\ifx\f@series\mddef@ult\fontseries\mdseries@tt + \else\ifx\f@series\bfdef@ult\fontseries\bfseries@tt + \else\fontseries\mdseries@tt + \fi\fi\fi\fi +\else\ifx\f@family\sfdef@ult + \ifx\f@series\mdseries@sf\fontseries\mdseries@tt + \else\ifx\f@series\bfseries@sf\fontseries\bfseries@tt + \else\ifx\f@series\mddef@ult\fontseries\mdseries@tt + \else\ifx\f@series\bfdef@ult\fontseries\bfseries@tt + \else\fontseries\mdseries@tt + \fi\fi\fi\fi +\else\ifx\f@family\ttdef@ult + \ifx\f@series\mdseries@tt\fontseries\mdseries@tt + \else\ifx\f@series\bfseries@tt\fontseries\bfseries@tt + \else\ifx\f@series\mddef@ult\fontseries\mdseries@tt + \else\ifx\f@series\bfdef@ult\fontseries\bfseries@tt + \else\fontseries\mdseries@tt + \fi\fi\fi\fi +\else\fontseries\mdseries@tt +\fi\fi\fi\fontfamily\ttdefault\selectfont} + +% override default family with new \familydefault +\AtBeginDocument{\mweights@init +\ifx\famdef@ult\rmdef@ult\rmfamily +\else\ifx\famdef@ult\sfdef@ult\sffamily +\else\ifx\famdef@ult\ttdef@ult\ttfamily +\fi\fi\fi} + +\endinput |