summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.bbx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.bbx')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.bbx673
1 files changed, 673 insertions, 0 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.bbx
new file mode 100644
index 0000000000..48815b4f73
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.bbx
@@ -0,0 +1,673 @@
+%% ---------------------------------------------------------------
+%% biblatex-chem --- A set of biblatex implementation for
+%% 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-rsc.bbx}[2019/08/24 v1.1x 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 = 999 ,
+ maxcitenames = 2 ,
+ pageranges = true ,
+ url = false
+ }
+
+% Modify the name format
+\@ifpackageloaded{biblatex_legacy}
+ {
+ \DeclareNameFormat{default}{%
+ \usebibmacro{name:first-last}{#1}{#4}{#5}{#7}%
+ \usebibmacro{name:andothers}%
+ }
+ }
+ {
+ \DeclareNameFormat{default}{%
+ \nameparts{#1}%
+ \usebibmacro{name:given-family}
+ {\namepartfamily}
+ {\namepartgiveni}
+ {\namepartprefix}
+ {\namepartsuffix}%
+ \usebibmacro{name:andothers}%
+ }
+ }
+
+% Custom field formats
+\DeclareFieldFormat[inproceedings]{booktitle}{#1}
+\DeclareFieldFormat{doi}{%
+ DOI\addcolon\space
+ \ifhyperref
+ {\href{https://doi.org/#1}{\nolinkurl{#1}}}
+ {\nolinkurl{#1}}%
+}
+\DeclareFieldFormat{journaltitle}{\mkbibitalic{#1}\isdot}
+\DeclareFieldFormat{labelnumberwidth}{\mkbibparens{#1}}
+\DeclareFieldFormat[patent]{number}{\mkgroupeddigits{#1}}
+\DeclareFieldFormat[article]{pages}{%
+ \iftoggle{bbx:pageranges}{#1}{\mkfirstpage{#1}}%
+}
+\DeclareFieldFormat[inbook, incollection, proceedings]{title}{#1}
+\DeclareFieldFormat[patent]{type}{%
+ \ifbibstring{#1}
+ {\mkbibitalic{\bibstring{#1}}}
+ {\mkbibitalic{#1}}%
+}
+\DeclareFieldFormat{url}{\url{#1}}
+\DeclareFieldFormat[article]{volume}{\mkbibbold{#1}}
+
+% Simple modifications to punctuation, etc.
+\renewcommand*{\begrelateddelim}{\addsemicolon\space}%
+\renewcommand*{\intitlepunct}{\addspace}
+\renewcommand*{\mkbibnamesuffix}[1]{\addcomma\space#1}
+\renewcommand*{\newunitpunct}{\addcomma\addspace}
+
+\DefineBibliographyExtras{english}{%
+ \renewrobustcmd*{\finalandcomma}{}%
+}
+
+% Bibliography strings
+\DefineBibliographyStrings{english}{%
+ chapter = ch\adddot ,
+ edition = edn\adddot ,
+ patentus = US Pat\adddot ,
+ phdthesis = Ph.D.\space Thesis
+}
+
+% Bibliography macros
+\renewbibmacro*{byeditor+others}{%
+ \ifnameundef{editor}
+ {}
+ {%
+ \usebibmacro{editorstrg}%
+ \setunit{\addspace}%
+ \printnames[byeditor]{editor}%
+ \clearname{editor}%
+ \newunit
+ }%
+ \usebibmacro{byeditorx}%
+ \usebibmacro{bytranslator+others}%
+}
+
+\renewbibmacro*{editorstrg}{%
+ \printtext[editortype]{\bibstring{editor}}%
+}
+
+\renewbibmacro*{event+venue+date}{%
+ \printfield{eventtitle}%
+ \printfield{venue}%
+ \newunit
+ \printeventdate
+ \newunit
+}
+
+\renewbibmacro*{institution+location+date}{%
+ \printlist{institution}%
+ \newunit
+ \printlist{location}%
+ \newunit
+ \usebibmacro{date}%
+ \newunit
+}
+
+\renewbibmacro*{journal+issuetitle}{%
+ \usebibmacro{journal}%
+ \newunit
+ \printdate
+ \newunit
+ \printfield{volume}%
+ \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}%
+ \newunit
+ \printlist{location}%
+ \newunit
+ \printfield{edition}%
+ \newunit
+ \usebibmacro{date}%
+ \newunit
+ \printfield{volume}%
+ \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}%
+ }%
+}
+
+% Specialised functions for manipulating data, where the biblatex
+% kernel does not provide a suitable function.
+\newcommand*\mkgroupeddigits[1]{%
+ \ifinteger{#1}
+ {%
+ \bbx@digits@ifmorethanfour{#1}
+ {%
+ \def\@tempa{}%
+ \bbx@digits@separate{}#1\@empty\@empty\@empty
+ }
+ {#1}%
+ }%
+ {#1}%
+}
+
+\newcommand*\bbx@digits@ifmorethanfour[1]{%
+ \bbx@digits@ifmorethanfour@aux#1\@empty\@empty\@empty\@empty
+ \@empty\@nil
+}
+
+\def\bbx@digits@ifmorethanfour@aux#1#2#3#4#5\@nil{%
+ \ifx\@empty#5\@empty
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
+
+\newcommand*\bbx@digits@separate[4]{%
+ \ifx\@empty#2\@empty
+ \bbx@digits@print#1\relax
+ \else
+ \ifx\@empty#3\@empty
+ \bbx@digits@print\@empty\@empty#1#2\relax
+ \else
+ \ifx\@empty#4\@empty
+ \bbx@digits@print\@empty#1#2#3\relax
+ \else
+ \bbx@digits@separate@aux{#1#2#3#4}%
+ \fi
+ \fi
+ \fi
+}
+
+\def\bbx@digits@separate@aux#1\fi\fi\fi{%
+ \fi\fi\fi\bbx@digits@separate{#1}%
+}
+
+\newcommand*\bbx@digits@print[4]{%
+ \ifblank{#1}{}{#1}%
+ #2#3%
+ \ifx\relax#4\relax\else
+ \addnbthinspace
+ \expandafter\bbx@digits@print\expandafter#4%
+ \fi
+}
+
+% 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}%
+ \newunit
+ }
+ {}%
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit\newblock
+ \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}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}%
+}
+
+\DeclareBibliographyDriver{book}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{maintitle+title}%
+ \newunit
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{volumes}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \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{collection}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{maintitle+title}%
+ \newunit
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{volumes}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \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{inbook}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \iftoggle{bbx:chaptertitle}
+ {\usebibmacro{title}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{bybookauthor}%
+ \setunit*{\newunitpunct}\newblock
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{volumes}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \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\newblock
+ \iftoggle{bbx:chaptertitle}
+ {\usebibmacro{title}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{volumes}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \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}%
+ \newunit\newblock
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{event+venue+date}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{volumes}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \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
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \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{patent}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \printfield{number}%
+ \iflistundef{location}
+ {}
+ {\setunit*{\addspace}%
+ \printtext[parens]{%
+ \printlist[][-\value{listtotal}]{location}}}%
+ \newunit\newblock
+ \usebibmacro{byholder}%
+ \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{thesis}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \usebibmacro{institution+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}%
+}
+
+%%
+%% Copyright (C) 2010-2014,2016-2019 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-rsc.bbx'.