\NeedsTeXFormat{LaTeX2e}
\def\fileversion{1.12}
\def\filedate{2017/03/11}

\ProvidesPackage{garamondx}[\filedate\space v\fileversion]
\message{`garamondx' v\fileversion. \filedate\space GaramondNo8 with expert features (Michael Sharpe)}
\RequirePackage{graphicx}
\RequirePackage{keyval}
\usepackage[LY1,T1]{fontenc}
\RequirePackage{fontaxes}% so we can have [bold] italic small caps
\RequirePackage{textcomp}
\RequirePackage{etoolbox}
\let\orig@footnote=\thefootnote
\let\orig@makefnmark=\@makefnmark


\DeclareTextCommand{\textcircled}{TS1}[1]{\hmode@bgroup
   \ooalign{%
      \hfil \raise .4ex\hbox {{\fontencoding{T1}\fontshape{sc}\fontsize{8.2}{9}\selectfont \lowercase{#1}}}\hfil \crcr
      \textbigcircle   % bigcircle
   }%
 \egroup}
\newif\ifzgm@osf
\newif\ifzgm@osfI
\newif\ifzgm@swq
\newif\ifzgm@sups
%\newif\ifzgm@babel
%\ifdefined\bbl@tempa \zgm@babeltrue\fi
\define@key{Zgm}{babel}[true]{\relax}% retain for backward compatibility
%\csname zgm@babel#1\endcsname}
\define@key{Zgm}{sups}[true]{%
\csname zgm@sups#1\endcsname}
\define@key{Zgm}{swashQ}[true]{%
  \def\zgm@swqval{#1}\csname zgm@swq#1\endcsname}
\define@key{Zgm}{scaled}[0.95]{%
  \def\zgm@Scale{#1}}
\define@key{Zgm}{osf}[true]{%
  \csname zgm@osf#1\endcsname  \def\zgm@osfIval{false}}
\define@key{Zgm}{osfI}[true]{%
  \csname zgm@osf#1\endcsname \csname zgm@osfI#1\endcsname%
  \def\zgm@osfIval{#1}}
\def\ProcessOptionsWithKV#1{%
  \let\@tempc\relax
  \let\Zgm@tempa\@empty
  \@for\CurrentOption:=\@classoptionslist\do{%
    \@ifundefined{KV@#1@\CurrentOption}%
    {}%
    {%
      \edef\Zgm@tempa{\Zgm@tempa,\CurrentOption,}%
      \@expandtwoargs\@removeelement\CurrentOption
        \@unusedoptionlist\@unusedoptionlist
    }%
  }%
  \edef\Zgm@tempa{%
    \noexpand\setkeys{#1}{%
      \Zgm@tempa\@ptionlist{\@currname.\@currext}%
    }%
  }%
  \Zgm@tempa
  \let\CurrentOption\@empty
}
\ProcessOptionsWithKV{Zgm}
\AtEndOfPackage{%
  \let\@unprocessedoptions\relax
}
\renewcommand*{\rmdefault}{zgmx}
%\ifzgm@babel%
%	\def\useosf{\renewcommand*{\rmdefault}{zgmj}\def\zgm@osfIval{false}}
%	\def\useosfI{\renewcommand*{\rmdefault}{zgmj}\def\zgm@osfIval{true}}
%\else
	\def\useosf{\zgm@osftrue \def\zgm@osfIval{false}}
	\def\useosfI{\zgm@osftrue \def\zgm@osfIval{true}}
%\fi
\@onlypreamble\useosf\@onlypreamble\useosfI
 
% need lining figures for math
  
\newcommand{\textlf}[1]{{\fontfamily{zgmx}\selectfont #1}}% to get zgm lf
\newcommand{\textosf}[1]{\oldstylenums{#1}}% to get zgm osf
\newcommand{\textosfI}[1]{{\fontfamily{zgmI}\selectfont #1}}% to get zgm osfI
\renewcommand*{\bfdefault}{b}
\renewcommand*{\scdefault}{sc}% for better compatibility with mathdesign
% set NewG8-sups as footnote markers---may also use superiors for more options
%\DeclareFontFamily{T1}{zgm1}{}%
%  \DeclareFontShape{T1}{zgm1}{m}{n}{%
%    <-> NewG8-sups}{}
\DeclareRobustCommand{\sustyle}{%
  \not@math@alphabet\sustyle\relax
  \usefont{T1}{zgm1}{m}{n}}

\def\textsu#1{\hbox{{\sustyle#1}}}
\ifzgm@sups %
  \def\f@@tn@te{footnote}
  \def\@makefnmark{%
    \ifx\@mpfn\f@@tn@te%
      \ifx\thefootnote\orig@footnote%
        \hbox{\sustyle\hspace*{.04em}\@thefnmark\hspace*{.03em}}%
      \else%
        \orig@makefnmark%
      \fi
    \else%
      \orig@makefnmark%
    \fi}
\fi

% The following are provided so that we may access swash Q and osfI in any mode
\expandafter\ifx\csname zgm@Scale\endcsname\relax
 \let\zgm@@@Scale\@empty
\else
 \edef\zgm@@@Scale{s*[\csname zgm@Scale\endcsname]}%
\fi
\DeclareFontFamily{T1}{zgmI}{}

\DeclareFontShape{T1}{zgmI}{m}{n}{
   <-> \zgm@@@Scale  T1-zgm-r-osfI
}{}
\DeclareFontShape{T1}{zgmI}{m}{it}{
   <-> \zgm@@@Scale  T1-zgm-ri-osfI
}{}
\DeclareFontShape{T1}{zgmI}{b}{n}{
   <-> \zgm@@@Scale  T1-zgm-b-osfI
}{}
\DeclareFontShape{T1}{zgmI}{b}{it}{
   <-> \zgm@@@Scale  T1-zgm-bi-osfI
}{}

\DeclareFontFamily{T1}{zgmq}{}

\DeclareFontShape{T1}{zgmq}{m}{n}{
   <-> \zgm@@@Scale  T1-zgm-r-lf-swq
}{}
\DeclareFontShape{T1}{zgmq}{m}{it}{
   <-> \zgm@@@Scale  T1-zgm-ri-lf-swq
}{}
\DeclareFontShape{T1}{zgmq}{b}{n}{
   <-> \zgm@@@Scale  T1-zgm-b-lf-swq
}{}
\DeclareFontShape{T1}{zgmq}{b}{it}{
   <-> \zgm@@@Scale  T1-zgm-bi-lf-swq
}{}

\DeclareFontFamily{LY1}{zgmI}{}

\DeclareFontShape{LY1}{zgmI}{m}{n}{
   <-> \zgm@@@Scale  LY1-zgm-r-osfI
}{}
\DeclareFontShape{LY1}{zgmI}{m}{it}{
   <-> \zgm@@@Scale  LY1-zgm-ri-osfI
}{}
\DeclareFontShape{LY1}{zgmI}{b}{n}{
   <-> \zgm@@@Scale  LY1-zgm-b-osfI
}{}
\DeclareFontShape{LY1}{zgmI}{b}{it}{
   <-> \zgm@@@Scale  LY1-zgm-bi-osfI
}{}

\DeclareFontFamily{LY1}{zgmq}{}

\DeclareFontShape{LY1}{zgmq}{m}{n}{
   <-> \zgm@@@Scale  LY1-zgm-r-lf-swq
}{}
\DeclareFontShape{LY1}{zgmq}{m}{it}{
   <-> \zgm@@@Scale  LY1-zgm-ri-lf-swq
}{}
\DeclareFontShape{LY1}{zgmq}{b}{n}{
   <-> \zgm@@@Scale  LY1-zgm-b-lf-swq
}{}
\DeclareFontShape{LY1}{zgmq}{b}{it}{
   <-> \zgm@@@Scale  LY1-zgm-bi-lf-swq
}{}
\newcommand{\swashQ}{{\fontfamily{zgmq}\selectfont Q}}

% It appears that \AtEndPreamble is incompatible with babel calls
% which involve a change of encoding. Changed as of v. 1.093
    \AtEndPreamble{%
    \ifzgm@osf
      \renewcommand*{\rmdefault}{zgmj}
    \else
      \renewcommand*{\rmdefault}{zgmx}
    \fi  
    \normalfont}

%\ifzgm@babel
%    \ifzgm@osf
%      \renewcommand*{\rmdefault}{zgmj}
%    \else
%      \renewcommand*{\rmdefault}{zgmx}
%    \fi  
%    \normalfont
%\else
%    \AtEndPreamble{%
%    \ifzgm@osf
%      \renewcommand*{\rmdefault}{zgmj}
%    \else
%      \renewcommand*{\rmdefault}{zgmx}
%    \fi  
%    \normalfont}
%\fi
\endinput
%%
%% End of file `garamondx.sty'.
