%% %% 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} [2013/07/03 v2.0m Schemes and style for chemistry] \RequirePackage{amstext,caption,chemscheme,xspace} \SetupKeyvalOptions{ family=cst, prefix=cst@ } \@ifclassloaded{achemso} { \PackageWarning{chemstyle} {% The chemstyle package should not\MessageBreak be used with the achemso class:\MessageBreak loading chemstyle will abort% } \endinput } {} \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]{varioref} \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, varioref = true } \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}{% }{% \@ifpackageloaded{SIunits}{}{% \@ifpackageloaded{unitsdef}{}{% \IfFileExists{siunitx.sty}{% \RequirePackage{siunitx} }{% \IfFileExists{SIunits.sty}{% \RequirePackage{SIunits} }{% \PackageWarning{chemstyle}{% Could not find siunitx or SIunits package:\MessageBreak additional units not defined% } } } } } } \@ifpackageloaded{siunitx}{% \sisetup{load-configurations = abbreviations} \DeclareSIUnit\cubiccentimeter{\cubic\centi\metre} \DeclareSIUnit\cmc{\cubic\centi\metre} \DeclareSIUnit\molar{\mole\per\cubic\deci\metre} \DeclareSIUnit\Molar{\textsc{m}} \DeclareSIUnit\torr{torr} \sisetup{load-configurations = abbreviations} }{} \@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}% }% } \AtBeginDocument{\@ifundefined{c@bibnote}{\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} \cst@refsec@lang@define{italian}{Bibliografia}{e}{Note} \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} \ifcst@varioref \RequirePackage{varioref} \labelformat{figure}{\figurename~#1} \labelformat{table}{\tablename~#1} \AtEndOfPackage{% \AtBeginDocument{% \labelformat{scheme}{\schemename~#1}% }% } \fi \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-2011,2013 by %% Joseph Wright %% %% 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, %% and a number of .cfg files. %% %% %% End of file `chemstyle.sty'.