%% ---------------------------------------------------------------
%% biblatex-chem --- A set of biblatex implementations of
%%   chemistry-related bibliography styles
%% Maintained by Joseph Wright
%% 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
%% ---------------------------------------------------------------
%% 

\ProvidesFile{chem-acs.bbx}[2021/02/24 v1.1z biblatex bibliography style]

% Load the standard style to avoid copy-pasting unnecessary material
\RequireBibliographyStyle{numeric-comp}

% New options
\newtoggle{bbx:articletitle}
\newtoggle{bbx:chaptertitle}
\newtoggle{bbx:pageranges}
\DeclareBibliographyOption{articletitle}[true]{%
  \settoggle{bbx:articletitle}{#1}%
}
\DeclareBibliographyOption{chaptertitle}[true]{%
  \settoggle{bbx:chaptertitle}{#1}%
}
\DeclareBibliographyOption{pageranges}[true]{%
  \settoggle{bbx:pageranges}{#1}%
}

\DeclareBibliographyOption{biblabel}{%
  \ifstrequal{#1}{plain}
    {\DeclareFieldFormat{labelnumberwidth}{##1}}
    {%
      \ifstrequal{#1}{brackets}
        {\DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{##1}}}%
        {%
          \ifstrequal{#1}{dot}
            {\DeclareFieldFormat{labelnumberwidth}{##1\adddot\midsentence}}
            {\DeclareFieldFormat{labelnumberwidth}{\mkbibparens{##1}}}%
        }%
    }%
}

% Alter settings that carry through from biblatex
\ExecuteBibliographyOptions
  {
    date         = year  ,
    doi          = false , 
    eprint       = false ,
    giveninits   = true  ,
    isbn         = false ,
    maxnames     = 15    ,
    maxcitenames = 2     ,
    pageranges   = true  ,
    url          = false ,
    useprefix    = true
  }

% Modify the name format
\@ifpackageloaded{biblatex_legacy}
  {
    \DeclareNameFormat{default}{%
      \renewcommand*{\multinamedelim}{\addsemicolon\addspace}%
      \usebibmacro{name:last-first}{#1}{#4}{#5}{#7}%
      \usebibmacro{name:andothers}%
    }
  
    \DeclareNameFormat{editor}{%
      \renewcommand*{\multinamedelim}{\addcomma\addspace}%
      \usebibmacro{name:last-first}{#1}{#4}{#5}{#7}%
      \usebibmacro{name:andothers}%
    }
  }
  {
    \DeclareNameFormat{default}{%
      \renewcommand*{\multinamedelim}{\addsemicolon\addspace}%
      \nameparts{#1}%
      \usebibmacro{name:family-given}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefix}
        {\namepartsuffix}%
      \usebibmacro{name:andothers}%
    }
  
    \DeclareNameFormat{editor}{%
      \renewcommand*{\multinamedelim}{\addcomma\addspace}%
      \nameparts{#1}%
      \usebibmacro{name:family-given}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefix}
        {\namepartsuffix}%
      \usebibmacro{name:andothers}%
    }
  }

% Custom field formats 
\DeclareFieldFormat[article]{date}{\mkbibbold{#1}}
\DeclareFieldFormat{doi}{%
  DOI\addcolon\space
  \ifhyperref
    {\href{https://doi.org/#1}{\nolinkurl{#1}}}
    {\nolinkurl{#1}}%
}
\DeclareFieldFormat{labelnumberwidth}{\mkbibparens{#1}}
\DeclareFieldFormat[article]{pages}{%
  \iftoggle{bbx:pageranges}{#1}{\mkfirstpage{#1}}%
}
\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat[report]{title}{\mkbibitalic{#1}}
\DeclareFieldFormat[book, collection, inproceedings]{title}{\mkbibitalic{#1}}
\DeclareFieldFormat{url}{\url{#1}}
\DeclareFieldFormat[article]{volume}{\mkbibitalic{#1}}

% Simple modifications to punctuation, etc.
\renewcommand*{\begrelateddelim}{\addsemicolon\space}%
\renewcommand*{\finalnamedelim}{%
  \ifcurrentname{labelname}
    {%
      \ifnumgreater{\value{liststop}}{2}
        {\finalandcomma}
        {}%
      \addspace
      \bibstring{and}%
      \space
    }
    {\multinamedelim}%
}
\renewcommand*{\intitlepunct}{\addspace}
\renewcommand*{\labelnamepunct}{\addspace}
\renewcommand*{\newunitpunct}{\addcomma\addspace}

% Bibliography strings
\DefineBibliographyStrings{english}{%
  chapter   = Chapter            ,
  editor    = Ed\adddot          ,
  editors   = Eds\adddot         ,
  in        = In                 ,
  page      = p                  ,
  pages     = pp                 ,
  patentus  = US Patent          ,
  phdthesis = Ph.D.\space Thesis ,
  urlseen   = accessed           ,
  volume    = Vol\adddot
}

% Bibliography macros
\renewbibmacro*{byholder}{%
  \ifnameundef{holder}
    {}
    {%
      \printtext[parens]{\printnames{holder}}%
      \adddot
    }%
}
  
\renewbibmacro*{date}{%
  \iffieldundef{year}
    {}
    {\printtext[date]{\printdate}}%
}
\renewbibmacro*{event+venue+date}{%
  \printfield{eventtitle}%
  \ifboolexpr{
    test {\iffieldundef{venue}}
    and
    test {\iffieldundef{eventyear}}
  }
    {}
    {%
      \printfield{venue}%
      \newunit
      \printeventdate
      \newunit
    }%
}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \usebibmacro{date}%
  \newunit
  \usebibmacro{volume+number+eid}%
  \newunit
}

\renewbibmacro*{maintitle+booktitle}{%
  \iffieldundef{maintitle}
    {}
    {%
      \usebibmacro{maintitle}%
      \newunit\newblock
    }%
  \usebibmacro{booktitle}%
  \newunit
}

\renewbibmacro*{maintitle+title}{%
  \iffieldsequal{maintitle}{title}
    {%
      \clearfield{maintitle}%
       \clearfield{mainsubtitle}%
       \clearfield{maintitleaddon}%
    }
    {%
      \iffieldundef{maintitle}
        {}
        {\usebibmacro{maintitle}}%
	  \newunit\newblock
    }%
  \usebibmacro{title}%
  \newunit
}
  
\renewbibmacro*{note+pages}{%
  \printfield{note}%
  \setunit{\bibpagespunct}%
  \printfield{pages}%
  \iffieldundef{pages}
    {%
      \printfield{doi}%
      \clearfield{doi}%
    }%
    {%
      \iftoggle{bbx:doi}
        {}
        {\clearfield{doi}}%
    }%
} 

\renewbibmacro*{publisher+location+date}{%
  \printlist{publisher}%
  \iflistundef{publisher}
    {\newunit}
    {\setunit*{\addcolon\space}}%
  \printlist{location}%
  \setunit*{\addcomma\space}%
  \usebibmacro{date}%
  \newunit
}

\newbibmacro*{related:translatedas}[1]{%
  \entrydata{#1}{%
    \usebibmacro{journal+issuetitle}%
    \newunit
    \usebibmacro{byeditor+others}%
    \newunit
    \usebibmacro{note+pages}%
    \newunit\newblock
    \iftoggle{bbx:isbn}
      {\printfield{issn}}
      {}%
    \newunit\newblock
    \usebibmacro{doi+eprint+url}%
  }%
}

\renewbibmacro*{series+number}{%
  \printfield{series}%
  \setunit*{\addspace}%
  \printfield{number}%
  \newunit
  \iffieldundef{series}
    {}
    {%
      \printfield{volume}%
      \clearfield{volume}%
      \newunit
    }%
}

\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit*{\addspace}%
  \printfield{eid}%
}

% New bibliography drivers, using the required order of fields. These
% are mainly copied from standard.bbx then modified.
\DeclareBibliographyDriver{article}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \iftoggle{bbx:articletitle}
    {%
      \usebibmacro{title}%
      \printunit{\adddot\addspace}%
    }
    {}%
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bytranslator+others}%
  \newunit\newblock
  \printfield{version}%
  \setunit{\addspace}%
  \usebibmacro{journal+issuetitle}%
  \newunit
  \usebibmacro{byeditor+others}%
  \newunit
  \usebibmacro{note+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{issn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}%
}

\DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{maintitle+title}%
  \newunit
  \printfield{edition}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{editor+others}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{publisher+location+date}%
  \setunit{\addsemicolon\space}%
  \printfield{volume}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{chapter+pages}%
  \setunit{\addsemicolon\space}%
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}%
}

\DeclareBibliographyDriver{booklet}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{howpublished}%
  \newunit\newblock
  \printfield{type}%
  \newunit\newblock
  \printfield{note}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{location+date}%
  \setunit{\addsemicolon\space}%
  \printfield{volume}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{chapter+pages}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}%
}

\DeclareBibliographyDriver{collection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{maintitle+title}%
  \newunit
  \printfield{edition}%
  \newunit
  \printfield{volumes}%
  \newunit  
  \printlist{language}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{editor+others}%
  \newunit\newblock
  \setunit{\addsemicolon\space}%
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{publisher+location+date}%
  \setunit{\addsemicolon\space}%
  \printfield{volume}
  \setunit{\addsemicolon\space}%
  \usebibmacro{chapter+pages}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}%
}

\DeclareBibliographyDriver{inbook}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{byauthor}%
  \newunit
  \iftoggle{bbx:chaptertitle}
    {\usebibmacro{title}}
    {}%
  \setunit{\addspace}%
  \usebibmacro{in:}%
  \usebibmacro{bybookauthor}%
  \setunit{\addspace}%
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \usebibmacro{editor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \printfield{volumes}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{publisher+location+date}%
  \setunit{\addsemicolon\space}%
  \printfield{colume}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}%
}

\DeclareBibliographyDriver{incollection}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{byauthor}%
  \newunit
  \iftoggle{bbx:chaptertitle}
    {\usebibmacro{title}}
    {}%
  \setunit{\addspace}%
  \usebibmacro{in:}%
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \usebibmacro{editor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \printfield{volumes}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{publisher+location+date}%
  \setunit{\addsemicolon\space}%
  \printfield{volume}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}%
}
\DeclareBibliographyDriver{inproceedings}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{byauthor}%
  \setunit{\addspace}%
  \usebibmacro{in:}%
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \usebibmacro{event+venue+date}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{volumes}%
  \setunit{\addsemicolon\space}%
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \setunit{\addsemicolon\space}%
  \printfield{volume}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}%
}

\DeclareBibliographyDriver{manual}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor}%
  \newunit\newblock
  \printfield{edition}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{type}%
  \newunit
  \printfield{version}%
  \newunit
  \printfield{note}%
  \setunit{\addsemicolon\space}%
  \printlist{organization}%
  \newunit
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}%
}

\DeclareBibliographyDriver{online}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \printunit{\addspace}%
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{version}%
  \newunit
  \printfield{note}%
  \newunit\newblock
  \printlist{organization}%
  \newunit\newblock
  \iftoggle{bbx:eprint}
    {\usebibmacro{eprint}}
    {}%
  \newunit\newblock
  \usebibmacro{url+urldate}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}%
}

\DeclareBibliographyDriver{patent}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \setunit{\addspace}%
  \usebibmacro{byholder}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \usebibmacro{byauthor}%
  \setunit{\addspace}%
  \printfield{type}%
  \newunit
  \printfield{number}%
  \iflistundef{location}
    {}
    {\setunit*{\addspace}%
     \printtext[parens]{%
       \printlist[][-\value{listtotal}]{location}}}%
  \newunit\newblock
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{date}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}%
}

\DeclareBibliographyDriver{report}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \usebibmacro{byauthor}%
  \setunit{\addsemicolon\space}%
  \printfield{type}%
  \setunit*{\addspace}%
  \printfield{number}%
  \newunit\newblock
  \printfield{version}%
  \newunit
  \printfield{note}%
  \setunit{\addsemicolon\space}%
  \usebibmacro{institution+location+date}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isrn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}%
}

%% 
%% Copyright (C) 2010-2014,2016-2019,2021 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 files biblatex-chem.bib,
%%                                 biblatex-chem.tex,
%%                                 biblatex-chem-acs.tex,
%%                                 biblatex-chem-angew.tex,
%%                                 biblatex-chem-biochem.tex,
%%                                 biblatex-chem-rsc.tex,
%%                                 chem-acs.bbx,
%%                                 chem-acs.cbx,
%%                                 chem-angew.bbx,
%%                                 chem-angew.cbx,
%%                                 chem-biochem.bbx,
%%                                 chem-biochem.cbx,
%%                                 chem-rsc.bbx and
%%                                 chem-rsc.cbx,
%%           and the derived files biblatex-chem.pdf,
%%                                 biblatex-chem-acs.pdf,
%%                                 biblatex-chem-angew.pdf,
%%                                 biblatex-chem-biochem.pdf and
%%                                 biblatex-chem-rsc.pdf.
%% 
%%
%% End of file `chem-acs.bbx'.