\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{noto-sans}
    [2018/02/20 (Bob Tennent)  Supports NotoSans fonts for all LaTeX engines.]

\RequirePackage{ifxetex,ifluatex,xkeyval,textcomp}

\newif\ifnotosans@otf 
\ifxetex
  \notosans@otftrue
\else\ifluatex
  \notosans@otftrue
\else  % [pdf]LaTeX
  \notosans@otffalse
\fi\fi

\newif\ifnotosans@sfdefault \notosans@sfdefaultfalse

\newcommand*{\NotoSans@scale}{1}
\DeclareOptionX{scaled}{\renewcommand*{\NotoSans@scale}{#1}}
\DeclareOptionX{scale}{\renewcommand*{\NotoSans@scale}{#1}}


\DeclareOptionX{sfdefault}{\notosans@sfdefaulttrue}
\DeclareOptionX{type1}{\notosans@otffalse}


\newif\ifnotosans@oldstyle \notosans@oldstylefalse
\newif\ifnotosans@proportional \notosans@proportionalfalse

\DeclareOptionX{lining}{\notosans@oldstylefalse}
\DeclareOptionX{lf}{\notosans@oldstylefalse}
\DeclareOptionX{tabular}{\notosans@proportionalfalse}
\DeclareOptionX{tf}{\notosans@proportionalfalse}
\DeclareOptionX{proportional}{\notosans@proportionaltrue}
\DeclareOptionX{pf}{\notosans@proportionaltrue}
\DeclareOptionX{oldstyle}{\notosans@oldstyletrue}
\DeclareOptionX{osf}{\notosans@oldstyletrue}

\newif\ifnotosans@thin \notosans@thinfalse
\newif\ifnotosans@extralight \notosans@extralightfalse
\newif\ifnotosans@light \notosans@lightfalse
\newif\ifnotosans@medium \notosans@mediumfalse
\newif\ifnotosans@semibold \notosans@semiboldfalse
\newif\ifnotosans@extrabold \notosans@extraboldfalse
\newif\ifnotosans@black \notosans@blackfalse

\DeclareOptionX{thin}{\notosans@thintrue}
\DeclareOptionX{extralight}{\notosans@extralighttrue}
\DeclareOptionX{light}{\notosans@lighttrue}
\DeclareOptionX{regular}{\notosans@lighfalse\notosans@thinfalse\notosans@extralightfalse\notosans@mediumfalse}
\DeclareOptionX{medium}{\notosans@mediumtrue}
\DeclareOptionX{semibold}{\notosans@semiboldtrue}
\DeclareOptionX{extrabold}{\notosans@extraboldtrue}
\DeclareOptionX{black}{\notosans@blacktrue}
\DeclareOptionX{bold}{\notosans@blackfalse\notosans@semiboldfalse\notosans@extraboldfalse}


\ProcessOptionsX\relax

\ifnotosans@otf
  \def\notosans@boldstyle{Bold}
  \ifnotosans@semibold\def\notosans@boldstyle{SemiBold}\fi
  \ifnotosans@extrabold\def\notosans@boldstyle{ExtraBold}\fi
  \ifnotosans@black\def\notosans@boldstyle{Black}\fi
  \def\notosans@regstyle{Regular}
  \ifnotosans@thin\def\notosans@regstyle{Thin}\fi
  \ifnotosans@extralight\def\notosans@regstyle{ExtraLight}\fi
  \ifnotosans@light\def\notosans@regstyle{Light}\fi
  \ifnotosans@medium\def\notosans@regstyle{Medium}\fi

\else % type1
  \def\bfseries@sf{b}
  \ifnotosans@semibold\def\bfseries@sf{sb}\fi
  \ifnotosans@extrabold\def\bfseries@sf{eb}\fi
  \ifnotosans@black\def\bfseries@sf{k}\fi
  \def\mdseries@sf{m}
  \ifnotosans@thin\def\mdseries@sf{t}\fi
  \ifnotosans@extralight\def\mdseries@sf{el}\fi
  \ifnotosans@light\def\mdseries@sf{l}\fi
  \ifnotosans@medium\def\mdseries@sf{mb}\fi
  
\fi

\ifnotosans@otf
  
  \def\notosans@figurestyle{Lining}
  \ifnotosans@oldstyle\def\notosans@figurestyle{OldStyle}\fi
  \def\notosans@figurealign{Monospaced}
  \ifnotosans@proportional\def\notosans@figurealign{Proportional}\fi

\else % type1

  \def\notosans@figurestyle{LF}
  \ifnotosans@oldstyle\def\notosans@figurestyle{OsF}\fi
  \def\notosans@figurealign{T}
  \ifnotosans@proportional\def\notosans@figurealign{}\fi

\fi

\ifnotosans@otf
  \RequirePackage{fontspec}
\else
  \RequirePackage{fontenc,fontaxes,mweights}
  \fa@naming@exception{figures}{{superior}{proportional}}{Sup}
  \fa@naming@exception{figures}{{superior}{tabular}}{Sup}
  \def\sufigures{\@nomath\sufigures
      \fontfigurestyle{superior}\selectfont}
  \DeclareTextFontCommand{\textsu}{\sufigures}
  \let\textsuperior\textsu
\fi

\ifnotosans@otf
  \def\notosans@regular{Regular}
  \ifxetex\XeTeXtracingfonts=1\fi
  \defaultfontfeatures{
        Ligatures = TeX ,
        Scale     = \NotoSans@scale ,
        Extension = .otf }
    \setsansfont
        [ UprightFont    = *-\notosans@regstyle ,
          ItalicFont     = *-\ifx\notosans@regstyle\notosans@regular
                               Italic
                               \else\notosans@regstyle Italic\fi ,
          BoldFont       = *-\notosans@boldstyle , 
          BoldItalicFont = *-\notosans@boldstyle Italic ]
        {NotoSans}
    \let\notosansfamily\sfdefault  
  \ifnotosans@sfdefault\renewcommand*\familydefault{\notosansfamily}\fi
  \newfontfamily\notosans
        [ UprightFont    = *-\notosans@regstyle ,
          ItalicFont     = *-\ifx\notosans@regstyle\notosans@regular
                               Italic
                               \else\notosans@regstyle Italic\fi ,
          BoldFont       = *-\notosans@boldstyle , 
          BoldItalicFont = *-\notosans@boldstyle Italic ]
        {NotoSans}
\else % type1
  \def\notosansfamily{NotoSans-\notosans@figurealign\notosans@figurestyle}
  \newcommand*\notosans{\fontfamily{\notosansfamily}\selectfont}
  \def\sfdefault{\notosansfamily} 
  \ifnotosans@sfdefault\edef\familydefault{\sfdefault}\fi
\fi


\ifnotosans@otf
  % turn off defaults in case other fonts are selected:
  \defaultfontfeatures{}
\fi

\endinput
