summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/mweights/mweights.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /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.sty129
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