\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{roboto-mono} [2022/09/10 (Bob Tennent) Supports RobotoMono fonts for all LaTeX engines.] \RequirePackage{ifxetex,ifluatex,xkeyval,textcomp} \newif\ifrobotomono@otf \ifxetex \robotomono@otftrue \else\ifluatex \robotomono@otftrue \else % [pdf]LaTeX \robotomono@otffalse \fi\fi \newcommand*{\RobotoMono@scale}{1} \DeclareOptionX{scaled}{\renewcommand*{\RobotoMono@scale}{#1}} \DeclareOptionX{scale}{\renewcommand*{\RobotoMono@scale}{#1}} \newif\ifrobotomono@light \robotomono@lightfalse \newif\ifrobotomono@thin \robotomono@thinfalse \newif\ifrobotomono@medium \robotomono@mediumfalse \newif\ifrobotomono@black \robotomono@blackfalse \DeclareOptionX{type1}{\robotomono@otffalse} \DeclareOptionX{medium}{\robotomono@mediumtrue\robotomono@blackfalse} \DeclareOptionX{bold}{\robotomono@blackfalse\robotomono@mediumfalse} \DeclareOptionX{black}{\robotomono@blacktrue\robotomono@mediumfalse} \DeclareOptionX{thin}{\robotomono@thintrue\robotomono@lightfalse} \DeclareOptionX{light}{\robotomono@lighttrue\robotomono@thinfalse} \DeclareOptionX{regular}{\robotomono@lightfalse\robotomono@thinfalse} \ExecuteOptionsX{bold,regular} \ProcessOptionsX\relax \ifrobotomono@otf \def\robotomono@boldstyle{Bold} \ifrobotomono@medium\def\robotomono@boldstyle{Medium}\fi \ifrobotomono@black\def\robotomono@boldstyle{Black}\fi \def\robotomono@regstyle{Regular} \ifrobotomono@light\def\robotomono@regstyle{Light}\fi \ifrobotomono@thin\def\robotomono@regstyle{Thin}\fi \else % type1 \def\bfseries@tt{b} \ifrobotomono@medium\def\bfseries@tt{sb}\fi \ifrobotomono@black\def\bfseries@tt{eb}\fi \def\mdseries@tt{m} \ifrobotomono@thin\def\mdseries@tt{el}\fi \ifrobotomono@light\def\mdseries@tt{l}\fi \fi \ifrobotomono@otf \RequirePackage{fontspec} \else \RequirePackage{fontenc,fontaxes,mweights} \fi \ifrobotomono@otf \def\robotomono@regular{Regular} \defaultfontfeatures{ HyphenChar=None, Scale = \RobotoMono@scale , Extension = .otf } \setmonofont [ UprightFont = *-\robotomono@regstyle , ItalicFont = *-\ifx\robotomono@regstyle\robotomono@regular Italic\else\robotomono@regstyle Italic\fi , BoldFont = *-\robotomono@boldstyle , BoldItalicFont = *-\robotomono@boldstyle Italic , ] {RobotoMono} % grab current family in case of subsequent change: \let\robotomonofamily\ttdefault \newfontfamily\robotomono [ UprightFont = *-\robotomono@regstyle , ItalicFont = *-\ifx\robotomono@regstyle\robotomono@regular Italic\else\robotomono@regstyle Italic\fi , BoldFont = *-\robotomono@boldstyle , BoldItalicFont = *-\robotomono@boldstyle Italic , ] {RobotoMono} \newfontfamily\robotomonoregular [ UprightFont = *-Regular , ItalicFont = *-Italic, ] {RobotoMono} \newfontfamily\robotomonomedium [ UprightFont = *-Medium , ItalicFont = *-MediumItalic, ] {RobotoMono} \newfontfamily\robotomonothin [ UprightFont = *-Thin , ItalicFont = *-ThinItalic, ] {RobotoMono} \newfontfamily\robotomonolight [ UprightFont = *-Light , ItalicFont = *-LightItalic, ] {RobotoMono} \newfontfamily\robotomonobold [ UprightFont = *-Bold , ItalicFont = *-BoldItalic, ] {RobotoMono} \else % type1 \def\robotomonofamily{RobotoMono-TLF} \newcommand*\robotomono{\fontfamily{\robotomonofamily}\selectfont} \def\ttdefault{\robotomonofamily} \def\robotomonoregular{\fontfamily{\ttdefault}\fontseries{m}\selectfont} \def\robotomonomedium{\fontfamily{\ttdefault}\fontseries{sb}\selectfont} \def\robotomonothin{\fontfamily{\ttdefault}\fontseries{el}\selectfont} \def\robotomonoklight{\fontfamily{\ttdefault}\fontseries{l}\selectfont} \def\robotomonobold{\fontfamily{\ttdefault}\fontseries{b}\selectfont} \fi \DeclareTextFontCommand{\robotomonoRegular}{\robotomonoregular} \DeclareTextFontCommand{\robotomonoMedium}{\robotomonomedium} \DeclareTextFontCommand{\robotomonoThin}{\robotomonothin} \DeclareTextFontCommand{\robotomonoLight}{\robotomonolight} \DeclareTextFontCommand{\robotomonoBold}{\robotomonobold} \def\robotomonolgr{\fontencoding{LGR}\fontfamily{RobotoMono-TLF}\selectfont} % RobotoMono-TLF even for otf \ifrobotomono@otf % turn off defaults in case other fonts are selected: \defaultfontfeatures{} \fi \endinput