%%
%% This is file `chemstyle.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% chemstyle.dtx  (with options: `package')
%% ----------------------------------------------------------------
%% The chemstyle bundle --- Schemes and style for chemistry
%% E-mail: joseph.wright@morningstar2.co.uk
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%% 
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{chemstyle}
  [2009/06/06 v2.0 Schemes and style for chemistry]
\RequirePackage{amstext,caption,chemscheme,varioref,xspace}
\SetupKeyvalOptions{
  family=cst,
  prefix=cst@
}
\newcommand*\cst@tempa{}
\DeclareBoolOption[false]{abbrcomma}
\DeclareBoolOption[true]{abbremph}
\DeclareBoolOption[true]{notesbefore}
\DeclareBoolOption[true]{phrases}
\DeclareComplementaryOption{nophrases}{phrases}
\DeclareBoolOption[true]{rademph}
\DeclareBoolOption[true]{radhyphen}
\DeclareBoolOption[true]{radprefix}
\DeclareBoolOption[false]{radsuper}
\DeclareBoolOption[true]{xspace}
\DeclareStringOption{journal}
\DeclareDefaultOption{%
  \ifx\CurrentOptionValue\relax
    \edef\cst@journal{\CurrentOptionKey}%
  \else
    \PackageWarning{chemstyle}{%
      Unknown key option `\CurrentOptionKey'%
    }%
  \fi
}
\DeclareStringOption{language}
\setkeys{cst}{%
  journal  = ,
  language = english
}
\newif\ifcst@notes
\newif\ifcst@autonotes
\newcommand*\cst@opt@auto{auto}
\define@key{cst}{notes}[true]{%
  \edef\KVO@param{#1}%
  \@onelevel@sanitize\KVO@param
  \ifx\KVO@param\KVO@true
    \expandafter\cst@opt@notestrue
  \else
    \ifx\KVO@param\KVO@false
      \expandafter\expandafter\expandafter\cst@opt@notesfalse
    \else
      \ifx\KVO@param\cst@opt@auto
        \expandafter\expandafter\expandafter\expandafter\expandafter
        \expandafter\expandafter\cst@opt@notesauto
      \else
        \expandafter\expandafter\expandafter\expandafter\expandafter
        \expandafter\expandafter\cst@opt@noteserror
      \fi
    \fi
  \fi
}
\newcommand*\cst@opt@notestrue{%
  \cst@notestrue
  \cst@autonotesfalse
}
\newcommand*\cst@opt@notesfalse{%
  \cst@notesfalse
  \cst@autonotesfalse
}
\newcommand*\cst@opt@notesauto{%
  \cst@notestrue
  \cst@autonotestrue
}
\newcommand*\cst@opt@noteserror{%
  \PackageWarning{chemstyle}{%
    Value `\KVO@param' is not supported by\MessageBreak
    option `notes'%
  }%
}
\DeclareComplementaryOption{nonotes}{notes}
\newcommand*\cstsetup{%
  \setkeys{cst}
}
\newcommand*\cst@xspace{%
  \ifcst@xspace
    \expandafter\xspace
  \fi
}
\@ifpackageloaded{siunitx}{
  \requiresiconfigs{synchem}
}{%
  \@ifpackageloaded{SIunits}{}{%
    \@ifpackageloaded{unitsdef}{}{%
      \IfFileExists{siunitx.sty}{%
        \RequirePackage[alsoload=synchem]{siunitx}
      }{%
        \IfFileExists{SIunits.sty}{%
          \RequirePackage{SIunits}
        }{%
          \PackageWarning{chemstyle}{%
            Could not find siunitx or SIunits package:\MessageBreak
            additional units not defined%
          }
        }
      }
    }
  }
}
\@ifpackageloaded{SIunits}{%
  \newcommand*\cubiccentimeter{\centi\metre\cubed}
  \newcommand*\Molar{\textsc{m}}
  \newcommand*\molar{\mole\usk\deci\metre\rpcubed}
  \newcommand*\mmHg{\milli\metre Hg}
  \newcommand*\mol{\mole}
  \newcommand*\cmc{\cubiccentimeter}
  \newcommand*\Hz{\hertz}
}{%
  \@ifpackageloaded{unitsdef}{%
    \newunit{\cubiccentimeter}{\cm\unitsuperscript{3}}
    \newunit{\Molar}{\textsc{m}}
    \newunit{\molar}{\mole\unitsep\dm\unitsuperscript{--3}}
    \newunit{\mmHg}{mmHg}
    \newunit{\mol}{\mole}
    \newcommand*\cmc{\cubiccentimeter}
    \newcommand*\Hz{\hertz}
  }{}
}
\providecommand*\standardstate{%
  {%
    \ensuremath{\protect\cst@standardstate}%
  }%
}
\newcommand*\cst@standardstate{%
  \mathpalette\cst@standardstate@aux\circ
}
\newcommand*\cst@standardstate@aux[2]{%
  \ooalign{%
    \hfil
    $#1-$%
    \hfil
    \cr
    \hfil
    $#1#2$%
    \hfil
    \cr
  }%
}
\newcommand*\cst@latin{%
  \ifcst@abbremph
    \expandafter\emph
  \else
    \expandafter\@firstofone
  \fi
}
\newcommand*{\latinemphon}{%
  \cstsetup{abbremph=true}%
}
\newcommand*{\latinemphoff}{%
  \cstsetup{abbremph=false}%
}
\AtBeginDocument{%
  \providecommand*\latin{\cst@latin}%
}
\newcommand*\cst@phrases@make{%
  \providecommand*\etal{%
    \cst@phrase{et~al}%
  }%
  \providecommand*\eg{%
    \cst@phrase@comma{e.g\spacefactor999\relax}%
  }%
  \providecommand*\etc{%
    \cst@phrase{etc}%
  }%
  \providecommand*\ie{%
    \cst@phrase@comma{i.e\spacefactor999\relax}%
  }%
  \providecommand*\invacuo{%
    \latin{in vacuo}%
    \cst@xspace
  }%
}
\AtBeginDocument{%
  \ifcst@phrases
    \expandafter\cst@phrases@make
  \fi
}
\newcommand*\cst@phrase[1]{%
  \latin{#1}%
  \@ifnextchar.{}{%
    .%
    \cst@xspace
  }%
}
\newcommand*\cst@phrase@comma{%
  \ifcst@abbrcomma
    \expandafter\cst@phrase@with@comma
  \else
    \expandafter\cst@phrase
  \fi
}
\newcommand*\cst@phrase@with@comma[1]{%
  \latin{#1}%
  \cst@phrase@with@comma@aux@i\relax
}
\newcommand*\cst@phrase@with@comma@token{}
\newcommand*\cst@phrase@with@comma@aux@i[1]{%
  \futurelet\cst@phrase@with@comma@token\cst@phrase@with@comma@aux@ii
}
\newcommand*\cst@phrase@with@comma@aux@ii{%
  \let\cst@phrase@with@comma@next\cst@phrase@with@comma@aux@i
  \if.\cst@phrase@with@comma@token\else
    \if,\cst@phrase@with@comma@token\else
      \let\cst@phrase@with@comma@next\cst@phrase@with@comma@end
    \fi
  \fi
  \cst@phrase@with@comma@next
}
\newcommand*\cst@phrase@with@comma@end{%
  .,%
  \cst@xspace
}
\newcommand*\cst@phrase@with@comma@next{}
\newcommand*\cst@radical@make[2]{%
  \expandafter\DeclareRobustCommand\expandafter*\csname #1#2\endcsname{%
    \text{\cst@radical{#1}{#2}}%
    \cst@xspace
  }%
}
\cst@radical@make{n}{Pr}
\cst@radical@make{i}{Pr}
\cst@radical@make{n}{Bu}
\cst@radical@make{i}{Bu}
\cst@radical@make{s}{Bu}
\cst@radical@make{t}{Bu}
\newcommand*\cst@radical@emph{}
\newcommand*\cst@radical@hyphen{}
\newcommand*\cst@radical@hyphen@true{-}
\newcommand*\cst@radical@super{}
\newcommand*\cst@radical{%
  \let\cst@radical@emph\@firstofone
  \ifcst@rademph
    \let\cst@radical@emph\emph
  \fi
  \let\cst@radical@hyphen\relax
  \ifcst@radhyphen
    \let\cst@radical@hyphen\cst@radical@hyphen@true
  \fi
  \let\cst@radical@super\@firstofone
  \ifcst@radsuper
    \let\cst@radical@super\textsuperscript
  \fi
  \ifcst@radprefix
    \expandafter\cst@radical@pre
  \else
    \expandafter\cst@radical@post
  \fi
}
\newcommand*\cst@radical@pre[2]{%
  \cst@radical@super{%
    \cst@radical@emph{#1}%
  }%
  \cst@radical@hyphen
  #2%
}
\newcommand*\cst@radical@post[2]{%
  #2%
  \cst@radical@hyphen
  \cst@radical@super{%
    \cst@radical@emph{#1}%
  }%
}
\labelformat{figure}{\figurename~#1}
\labelformat{table}{\tablename~#1}
\AtEndOfPackage{%
  \AtBeginDocument{%
    \labelformat{scheme}{\schemename~#1}%
  }%
}
\AtBeginDocument{%
  \@ifpackageloaded{notes2bib}{}{%
    \newcounter{bibnote}%
  }%
}
\newcommand*\cst@refsec@name{}
\newcommand*\cst@refsec@find[1]{%
  \begingroup\expandafter\expandafter\expandafter\endgroup
  \expandafter\ifx\csname #1\endcsname\relax
    \expandafter\cst@refsec@set@name
  \else
    \expandafter\@gobble
  \fi
  {#1}%
}
\newcommand*\cst@refsec@set@name[1]{%
  \def\cst@refsec@name{#1}%
}
\cst@refsec@find{bibname}%
\cst@refsec@find{refname}%
\ifx\cst@refsec@name\@empty
  \expandafter\cst@notesfalse
\fi
\newcommand*\cst@refsec@lang{}
\newcommand*\cst@refsec@lang@clist{}
\newcommand*\cst@refsec@lang@define[4]{%
  \ifx\cst@refsec@lang@clist\@empty
    \def\cst@refsec@lang@clist{#1}%
  \else
    \edef\cst@refsec@lang@clist{%
      \cst@refsec@lang@clist
      ,#1%
    }%
  \fi
  \@namedef{cst@refsec@lang@#1@references}{#2}%
  \@namedef{cst@refsec@lang@#1@and}{#3}%
  \@namedef{cst@refsec@lang@#1@notes}{#4}%
}
\cst@refsec@lang@define{english}{References}{and}{Notes}
\cst@refsec@lang@define{UKenglish}{References}{and}{Notes}
\cst@refsec@lang@define{ngerman}{Literatur}{und}{Notizen}
\cst@refsec@lang@define{german}{Literatur}{und}{Notizen}
\cst@refsec@lang@define{french}{R\'ef\'erences}{et}{Notes}
\cst@refsec@lang@define{frenchb}{R\'ef\'erences}{et}{Notes}
\ifcst@notes
  \AtBeginDocument{\cst@refsec@set}
\fi
\newcommand*\cst@refsec@set{%
  \@ifpackageloded{biblatex}{%
    \@for\cst@refsec@lang:=\cst@refsec@lang@clist\do{%
      \cst@refsec@set@biblatex\cst@refsec@lang
    }%
  }{%
    \@ifpackageloded{babel}{%
      \@for\cst@refsec@lang:=\cst@refsec@lang@clist\do{%
        \cst@refsec@set@babel\cst@refsec@lang
      }%
      \expandafter\selectlanguage\expandafter{\languagename}%
    }{%
      \@for\cst@refsec@lang:=\cst@refsec@lang@clist\do{%
        \cst@refsec@set@language\cst@refsec@lang
      }%
    }%
  }
}
\newcommand*\cst@refsec@set@biblatex[1]{%
  \edef\cst@tempa{%
    \noexpand\csgappto{bib@strings@#1}{%
      \noexpand\def\expandafter\noexpand
        \csname\cst@refsec@name\endcsname{%
        \noexpand\cst@refsec@make@name{#1}%
      }%
    }%
  }%
  \cst@tempa
}
\newcommand*\cst@refsec@set@babel[1]{%
  \edef\cst@tempa{%
    \noexpand\addto{\expandafter\noexpand\csname captions#1\endcsname}{%
      \noexpand\def\expandafter\noexpand
        \csname\cst@refsec@name\endcsname{%
        \noexpand\cst@refsec@make@name{#1}%
      }%
    }%
  }%
  \cst@tempa
}
\newcommand*\cst@refsec@set@language[1]{%
  \ifx#1\cst@language
    \edef\cst@tempa{%
      \noexpand\def\expandafter\noexpand
        \csname\cst@refsec@name\endcsname{%
        \noexpand\cst@refsec@make@name{#1}%
      }%
    }%
    \cst@tempa
  \fi
}
\newcommand*\cst@refsec@make@name@fixed[1]{%
  \ifcst@notesbefore
    \@nameuse{cst@refsec@lang@#1@notes}
    \@nameuse{cst@refsec@lang@#1@and}
    \@nameuse{cst@refsec@lang@#1@references}%
  \else
    \@nameuse{cst@refsec@lang@#1@references}
    \@nameuse{cst@refsec@lang@#1@and}
    \@nameuse{cst@refsec@lang@#1@notes}%
  \fi
}
\newcommand*\cst@refsec@make@name@auto{%
  \ifnum\the\value{bibnote}>\z@\relax
    \expandafter\cst@refsec@make@name@fixed
  \else
    \expandafter\cst@refsec@make@name@nonotes
  \fi
}
\newcommand*\cst@refsec@make@name@nonotes[1]{%
  \@nameuse{cst@refsec@lang@#1@references}%
}
\let\cst@refsec@make@name\cst@refsec@make@name@fixed
\ifcst@notes
  \ifcst@autonotes
    \let\cst@refsec@make@name\cst@refsec@make@name@auto
  \fi
\fi
\ProcessKeyvalOptions{cst}
\newcommand*\cst@float@memoir@correct{%
  \let\newfloat\@undefined
}
\ifx\cst@float@pkg\cst@opt@memoir
  \expandafter\cst@float@memoir@correct
\fi
\cst@float@load
\cst@float@execute{\@nameuse{cst@float@make@\cst@float@pkg}}
\@ifpackageloaded{floatrow}{%
  \floatsetup{objectset=centering}
  \floatplacement{figure}{htbp}
  \floatplacement{scheme}{htbp}
  \floatplacement{table}{htbp}
  \floatsetup[table]{style=plaintop}
}{%
  \floatstyle{plaintop}
  \restylefloat{table}
  \floatstyle{plain}
  \restylefloat{figure}
  \floatplacement{table}{htbp}
  \floatplacement{figure}{htbp}
  \AtBeginDocument{%
    \restylefloat{scheme}
    \floatplacement{scheme}{htbp}
  }
}
\ifx\cst@journal\@empty\else
  \InputIfFileExists{\cst@journal.chemstyle.cfg}{%
    \setkeys{cst}{
      abbrcomma   = false,
      abbremph    = true,
      notesbefore = true,
      rademph     = true,
      radhyphen   = true,
      radprefix   = true,
      radsuper    = false,
    }
  }{%
    \PackageWarning{chemstyle}{%
      Requested style `\cst@journal' does not exist\MessageBreak
    }
  }
\fi
\cst@ref@load

%% 
%% Copyright (C) 2006-2009 by
%%   Joseph Wright <joseph.wright@morningstar2.co.uk>
%% 
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
%% this license or (at your option) any later version.  The latest
%% version of this license is in the file:
%% 
%%    http://www.latex-project.org/lppl.txt
%% 
%% This work is "maintained" (as per LPPL maintenance status) by
%%   Joseph Wright.
%% 
%% This work consists of the file  chemstyle.dtx and
%%                                 chemstyle.cdx,
%%           and the derived files chemstyle.pdf,
%%                                 chemstyle.ins,
%%                                 chemstyle.sty,
%%                                 chemscheme.sty,
%% 
%%
%% End of file `chemstyle.sty'.
