%% Baskervaldx.sty
%%
\NeedsTeXFormat{LaTeX2e}
\def\fileversion{1.05}
\def\filedate{2014/11/25}
\ProvidesPackage{Baskervaldx}
    [\filedate\space v\fileversion]
    
\message{`Baskervaldx' v\fileversion, \filedate\space  Style file for Baskervaldx, an `expertized' update of Baskervald (msharpe)}

\RequirePackage[LY1,T1]{fontenc}
\RequirePackage{textcomp}
\IfFileExists{mweights.sty}{\RequirePackage{mweights}}{}
\RequirePackage{etoolbox}
\IfFileExists{fontaxes.sty}{
    \RequirePackage{fontaxes}
    \DeclareRobustCommand\swshape{\not@math@alphabet\swshape\relax
        \fontprimaryshape\itdefault\fontsecondaryshape\swdefault\selectfont}
    \fa@naming@exception{shape}{{n}{sw}}{nw}
    \fa@naming@exception{shape}{{it}{sw}}{sw}
    \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
}{}

\newcommand*{\Baskervaldx@scale}{1}
\IfFileExists{xkeyval.sty}{
    \RequirePackage{xkeyval}
    \DeclareOptionX{scale}{\renewcommand*{\Baskervaldx@scale}{##1}}
    \DeclareOptionX{scaled}{\renewcommand*{\Baskervaldx@scale}{##1}}
}{
    \let\DeclareOptionX\DeclareOption
    \let\ExecuteOptionsX\ExecuteOptions
    \let\ProcessOptionsX\ProcessOptions
}
\let\orig@footnote=\thefootnote
\let\orig@makefnmark=\@makefnmark

\newif\if@Baskervaldx@sups
\newif\if@Baskervaldx@sw

\DeclareOptionX{lining}{\edef\Baskervaldx@figurestyle{LF}}
\DeclareOptionX{lf}{\edef\Baskervaldx@figurestyle{LF}}
\DeclareOptionX{oldstyle}{\edef\Baskervaldx@figurestyle{OsF}}
\DeclareOptionX{osf}{\edef\Baskervaldx@figurestyle{OsF}}
\DeclareOptionX{tabular}{\edef\Baskervaldx@figurealign{T}}
\DeclareOptionX{proportional}{\edef\Baskervaldx@figurealign{}}
\DeclareOptionX{bold}{\edef\bfseries@rm{b}}
\DeclareOptionX{regular}{\edef\mdseries@rm{m}}
\DeclareOptionX{sups}{\@Baskervaldx@supstrue}
\DeclareOptionX{swash}{\@Baskervaldx@swtrue} % used in fd files
\ExecuteOptionsX{lining,tabular,bold,regular}
\ProcessOptionsX\relax

\def\useosf{\edef\Baskervaldx@figurestyle{OsF}\@Baskervaldx@osftrue}
\@onlypreamble\useosf

\DeclareTextCommand{\textcircled}{TS1}[1]{\hmode@bgroup
   \ooalign{%
      \hfil \raise .42ex\hbox {\fontencoding{T1}\fontseries{m}\fontshape{sc}\fontsize{8.7}{10}\selectfont \lowercase{#1}}\hfil \crcr
     \textbigcircle   % textbigcircle
   }%
 \egroup}

\DeclareRobustCommand{\lfstyle}{%
  \not@math@alphabet\lfstyle\relax
  \fontfamily{Baskervaldx-LF}\selectfont %
}% to get lf
\DeclareRobustCommand{\tlfstyle}{%
  \not@math@alphabet\tlfstyle\relax
  \fontfamily{Baskervaldx-TLF}\selectfont %
}% to get tlf
\DeclareRobustCommand{\osfstyle}{%
  \not@math@alphabet\osfstyle\relax
  \fontfamily{Baskervaldx-OsF}\selectfont %
}% to get osf
\DeclareRobustCommand{\tosfstyle}[1]{%
  \not@math@alphabet\tosfstyle\relax
  \fontfamily{Baskervaldx-TOsF}\selectfont %
}% to get tosf

\DeclareRobustCommand{\textlf}[1]{%
  {\lfstyle #1}%
}% to get lf
\DeclareRobustCommand{\texttlf}[1]{%
  {\tlfstyle #1}%
}% to get tlf
\DeclareRobustCommand{\textosf}[1]{%
  {\osfstyle #1}%
}% to get osf
\DeclareRobustCommand{\texttosf}[1]{%
  {\tosfstyle #1}%
}% to get tosf

\renewcommand*{\rmdefault}{Baskervaldx-TLF} % always TLF in math
\renewcommand*{\familydefault}{\rmdefault}

\if@Baskervaldx@sups %
 \ifdefined\sufigures
  \def\f@@tn@te{footnote}
  \def\@makefnmark{%
    \ifx\@mpfn\f@@tn@te%
      \ifx\thefootnote\orig@footnote%
        \hbox{\sufigures\hspace*{.04em}\@thefnmark\hspace*{.04em}}%
      \else%
        \orig@makefnmark%
      \fi
    \else%
      \orig@makefnmark%
    \fi}%
 \fi%
\fi

\AtEndPreamble{%
\renewcommand*{\swdefault}{sw}
\renewcommand*{\rmdefault}%
{Baskervaldx-\Baskervaldx@figurealign\Baskervaldx@figurestyle}
\normalfont}
\endinput
