%% %% This is file `bath.bbx', %% generated with the docstrip utility. %% %% The original source files were: %% %% biblatex-bath.dtx (with options: `bbx') %% ---------------------------------------------------------------- %% biblatex-bath --- Harvard referencing style as recommended by the University of Bath Library %% Author: Alex Ball %% E-mail: a.j.ball@bath.ac.uk %% License: Released under the LaTeX Project Public License v1.3c or later %% See: http://www.latex-project.org/lppl.txt %% ---------------------------------------------------------------- %% \def\Version{2021/02/25 v4.0} \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesFile{bath.bbx} [\Version\space Biblography style as recommended by the University of Bath Library] \RequirePackage{xpatch} \RequirePackage{xstring} \RequirePackage{etoolbox} \ifcsdef{DeclareLanguageMappingSuffix}{% \DeclareLanguageMappingSuffix{-bath} }{% \DeclareLanguageMapping{english}{english-bath} \DeclareLanguageMapping{british}{british-bath} } \RequireBibliographyStyle{authoryear} \ExecuteBibliographyOptions{% maxcitenames=3,maxbibnames=9999,isbn=false,giveninits=true,dashed=false, alldates=comp,labeldate=year,labelalpha=true} \ExecuteBibliographyOptions[reference,audio,video,music,movie]{% useeditor=false} \NewBibliographyString{% online, hours, at, unpublished, legalchapter, director, performer, reader, conductor, directors, performers, readers, conductors, bydirector, byperformer, byreader, byconductor, } \setlength{\bibitemsep}{1em plus 0.2em minus 0.2em} \renewcommand*{\bibfont}{\normalfont\normalsize} \ifcsdef{letbibmacro}{}{% \def\letbibmacro#1#2{% \ifcsundef{abx@macro@#2} {\blx@error {Bibliography macro '#2' undefined} {Use '\string\newbibmacro' to define this macro}} {\csletcs{abx@macro@#1}{abx@macro@#2}}} } \ifcsdef{iflabeldateisdate}{}{% \def\iflabeldateisdate{% \ifboolexpr{% togl {blx@labeldateparts} and not test {\iffieldundef{labeldatesource}} and (test {\iffieldequalstr{labeldatesource}{}} or test {\iffieldequalstr{labeldatesource}{year}})}}% } \DeclareNameAlias{author}{family-given} \DeclareNameAlias{editor}{family-given} \DeclareNameAlias{bookeditor}{given-family} \renewcommand*{\bibinitdelim}{} \newbibmacro*{name:cjk-given-family}[3]{% \ifitemannotation{cjk}{% \usebibmacro{name:delim}{#2#1#3}% \usebibmacro{name:hook}{#2#1#3}% \mkbibnamefamily{#1}\isdot \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}}% \ifdefvoid{#3}{}{\bibnamedelimd\mkbibnamecjk{#3}}% }{% \usebibmacro{name:delim}{#2#1#3}% \usebibmacro{name:hook}{#2#1#3}% \ifdefvoid{#2}{}{\mkbibnamegiven{#2}\isdot\bibnamedelimd}% \mkbibnamefamily{#1}\isdot \ifdefvoid{#3}{}{\bibnamedelimd\mkbibnamecjk{#3}}% }% } \newbibmacro*{name:cjk-family-given}[3]{% \ifitemannotation{cjk}{% \usebibmacro{name:delim}{#2#1#3}% \usebibmacro{name:hook}{#2#1#3}% \mkbibnamefamily{#1}\isdot \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}}% \ifdefvoid{#3}{}{\bibnamedelimd\mkbibnamecjk{#3}}% }{% \usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% \mkbibnamefamily{#1}\isdot \ifboolexpe{% test {\ifdefvoid{#2}} and test {\ifdefvoid{#3}}} {} {\revsdnamepunct}% \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}% \ifdefvoid{#3}{}{\bibnamedelimd\mkbibnamecjk{#3}}% }% } \DeclareNameFormat{given-family}{% \ifdefvoid{\namepartcjk}{% \ifgiveninits{% \usebibmacro{name:given-family} {\namepartfamily} {\namepartgiveni} {\namepartprefix} {\namepartsuffix}% }{% \usebibmacro{name:given-family} {\namepartfamily} {\namepartgiven} {\namepartprefix} {\namepartsuffix}% }% }{% \ifgiveninits{% \usebibmacro{name:cjk-given-family} {\namepartfamily} {\namepartgiveni} {\namepartcjk}% }{% \usebibmacro{name:cjk-given-family} {\namepartfamily} {\namepartgiven} {\namepartcjk}% }% }% \usebibmacro{name:andothers}% } \DeclareNameFormat{family-given}{% \ifdefvoid{\namepartcjk}{% \ifgiveninits{% \usebibmacro{name:family-given} {\namepartfamily} {\namepartgiveni} {\namepartprefix} {\namepartsuffix}% }{% \usebibmacro{name:family-given} {\namepartfamily} {\namepartgiven} {\namepartprefix} {\namepartsuffix}% }% }{% \ifgiveninits{% \usebibmacro{name:cjk-family-given} {\namepartfamily} {\namepartgiveni} {\namepartcjk}% }{% \usebibmacro{name:cjk-family-given} {\namepartfamily} {\namepartgiven} {\namepartcjk}% }% } \usebibmacro{name:andothers}% } \DeclareNameFormat{given-family:full}{% \usebibmacro{name:given-family} {\namepartfamily} {\namepartgiven} {\namepartprefix} {\namepartsuffix}% \usebibmacro{name:andothers}} \renewbibmacro*{byauthor}[1][byauthor]{% \ifboolexpr{ test \ifuseauthor or test {\ifnameundef{author}} }{} {\usebibmacro{bytypestrg}{author}{author}% \setunit{\addspace}% \printnames[#1]{author}}} \renewbibmacro*{byeditor}[1][byeditor]{% \ifnameundef{editor} {} {\usebibmacro{bytypestrg}{editor}{editor}% \setunit{\addspace}% \printnames[#1]{editor}% \newunit}% \ifstrequal{#1}{byeditor}{% \usebibmacro{byeditora}% \usebibmacro{byeditorb}% \usebibmacro{byeditorc} }{% \usebibmacro{byeditora}[#1]% \usebibmacro{byeditorb}[#1]% \usebibmacro{byeditorc}[#1]}} \newbibmacro*{byeditora}[1][byeditora]{% \ifnameundef{editora} {} {\usebibmacro{bytypestrg}{editora}{editor}% \setunit{\addspace}% \printnames[#1]{editora}% \newunit}} \newbibmacro*{byeditorb}[1][byeditorb]{% \ifnameundef{editorb} {} {\usebibmacro{bytypestrg}{editorb}{editor}% \setunit{\addspace}% \printnames[#1]{editorb}% \newunit}} \newbibmacro*{byeditorc}[1][byeditorc]{% \ifnameundef{editorc} {} {\usebibmacro{bytypestrg}{editorc}{editor}% \setunit{\addspace}% \printnames[#1]{editorc}% \newunit}} \renewbibmacro*{bytranslator}[1][bytranslator]{% \ifnameundef{translator} {} {\setunit{\addspace}% \printtext[parens]{% \printnames[#1]{translator}% \setunit{\addcomma\space}% \bibcpstring{translator}% \clearname{translator}}}} \renewbibmacro*{byeditor+others}[1][byeditor]{% \ifnameundef{editor} {} {\usebibmacro{byeditor+othersstrg}% \setunit{\addspace}% \printnames[#1]{editor}% \clearname{editor}% \newunit}% \ifstrequal{#1}{byeditor}{% \usebibmacro{byeditorx}% \usebibmacro{bytranslator+others}% }{% \usebibmacro{byeditora}[#1]% \usebibmacro{byeditorb}[#1]% \usebibmacro{byeditorc}[#1]% \usebibmacro{bytranslator+others}[#1]}} \renewbibmacro*{bytranslator+others}[1][bytranslator]{% \ifnameundef{translator} {\usebibmacro{withothers}} {\setunit{\addspace}% \printtext[parens]{% \printnames[bytranslator]{translator}% \setunit{\addcomma\space}% \bibcpstring{translator}% \clearname{translator}% \newunit \usebibmacro{withothers}}}} \newbibmacro*{bookeditor}{% \ifnameundef{editor}{}{% \printnames[bookeditor]{editor}% \setunit*{\addcomma\space}% \usebibmacro{editor+othersstrg}% \clearname{editor}% }} \DeclareFieldFormat{sentencecase}{\MakeSentenceCase*{#1}} \DeclareFieldFormat{midsentencecase}{\MakeSentenceCase*{{}#1}} \DeclareFieldFormat{title}{\mkbibemph{#1}} \DeclareFieldFormat [article,inbook,incollection,inproceedings]% {title}{#1} \DeclareFieldFormat [patent,thesis]% {title}{\mkbibemph{#1}} \DeclareFieldFormat [reference,mvreference]% {title}{\ifnameundef{author}{#1}{\mkbibemph{#1}}} \DeclareFieldFormat [inreference]% {title}{\ifnameundef{author}{\mkbibemph{#1}}{#1}} \DeclareFieldFormat [inreference]% {booktitle}{\ifnameundef{author}{#1}{\mkbibemph{#1}}} \DeclareFieldFormat [unpublished]% {title}{\iffieldundef{booktitle}{\mkbibemph{#1}}{#1}} \newtoggle{bbx:onlineshown} \newbibmacro*{isonline}{% \ifboolexpr{( test {\iffieldundef{doi}} and test {\iffieldundef{url}} and not test {\ifentrytype{online}} ) or togl {bbx:onlineshown} }{}{% \bibstring[\mkbibbrackets]{online}% \toggletrue{bbx:onlineshown}}} \DeclareFieldFormat{titleaddon}{\mkbibbrackets{% \IfBeginWith{#1}{[}{% \IfEndWith{#1}{]}{% \StrBetween{#1}{[}{]}% }{#1}% }{#1}% }} \renewbibmacro*{title}{% \ifboolexpr{ test {\iffieldundef{title}} and test {\iffieldundef{subtitle}} }{}{% \printtext[title]{% \printfield[sentencecase]{title}% \setunit{\subtitlepunct}% \printfield[midsentencecase]{subtitle}% \setunit{\addspace}% }% \printfield{version}% \clearfield{version}% \setunit*{\addspace}% \printfield{titleaddon}% \ifboolexpr{ test {\iffieldundef{journaltitle}} and test {\iffieldundef{booktitle}} and test {\iffieldundef{library}} and not test {\ifentrytype{software}} and ( test {\iffieldundef{type}} or test {\nottoggle{bbx:labelistitle}} or not ( test {\ifentrytype{audio}} or test {\ifentrytype{video}} or test {\ifentrytype{music}} or test {\ifentrytype{movie}} )) }{% \setunit*{\addspace}% \usebibmacro{isonline}% }{}% }% } \renewbibmacro*{booktitle}{% \ifboolexpr{ test {\iffieldundef{booktitle}} and test {\iffieldundef{booksubtitle}} }{}{% \printtext[booktitle]{% \printfield[sentencecase]{booktitle}% \setunit{\subtitlepunct}% \printfield[midsentencecase]{booksubtitle}% \setunit{\addspace}% }% \printfield{booktitleaddon} \setunit*{\addspace}% \usebibmacro{isonline}% }% } \renewbibmacro*{maintitle}{% \ifboolexpr{ test {\iffieldundef{maintitle}} and test {\iffieldundef{mainsubtitle}} }{}{ \printtext[maintitle]{% \printfield[sentencecase]{maintitle}% \setunit{\subtitlepunct}% \printfield[midsentencecase]{mainsubtitle}% \setunit{\addspace}% }% \printfield{maintitleaddon}% }% } \renewcommand*{\subtitlepunct}{\addcolon\space} \DeclareLabeltitle[inreference]{% \field{shorttitle} \field{booktitle} \field{title} } \providetoggle{bbx:labelistitle} \renewbibmacro*{labeltitle}{% \iffieldundef{label}{% \ifboolexpr{ test {\ifentrytype{inreference}} and not test {\iffieldundef{booktitle}} }{% \printtext[booktitle]{% \printfield[sentencecase]{booktitle}% \setunit{\booksubtitlepunct}% \printfield[midsentencecase]{booksubtitle}}% \clearfield{booktitle}\clearfield{booksubtitle}% }{% \ifboolexpr{ test {\iffieldundef{title}} and test {\iffieldundef{subtitle}} }{}{% \printtext[title]{% \printfield[sentencecase]{title}% \setunit{\subtitlepunct}% \printfield[midsentencecase]{subtitle}}% \clearfield{title}\clearfield{subtitle}% \toggletrue{bbx:labelistitle}}% }% }{% \printfield{label}% }% } \DeclareDelimFormat{yearlabeltitleaddondelim}{\addspace} \newbibmacro*{labeltitleaddon}{% \iftoggle{bbx:labelistitle}{% \setunit{\printdelim{yearlabeltitleaddondelim}}% \printfield{version}% \clearfield{version}% \setunit*{\addspace}% \printfield{titleaddon}% \clearfield{titleaddon}% \ifboolexpr{ test {\iffieldundef{journaltitle}} and test {\iffieldundef{booktitle}} and ( test {\iffieldundef{library}} or test {\ifentrytype{image}} ) and not test {\ifentrytype{software}} and ( test {\iffieldundef{type}} or not ( test {\ifentrytype{audio}} or test {\ifentrytype{video}} or test {\ifentrytype{music}} or test {\ifentrytype{movie}} )) }{% \setunit*{\addspace}% \usebibmacro{isonline}% }{}% }{}% } \xapptobibmacro{author}{\usebibmacro{labeltitleaddon}}{}{} \xapptobibmacro{bbx:editor}{\usebibmacro{labeltitleaddon}}{}{} \xapptobibmacro{bbx:translator}{\usebibmacro{labeltitleaddon}}{}{} \DeclareLabeldate{% \field{date} \field{year} \literal{nodate} } \newtoggle{bbx:nonodate} \DeclareBibliographyOption[boolean]{nonodate}[true]{% \settoggle{bbx:nonodate}{#1}} \DeclareTypeOption[boolean]{nonodate}[true]{% \settoggle{bbx:nonodate}{#1}} \DeclareEntryOption[boolean]{nonodate}[true]{% \settoggle{bbx:nonodate}{#1}} \DeclareStyleSourcemap{ \maps[datatype=bibtex]{ \map[overwrite=true]{ \step[notmatch=\regexp{nonodate}, fieldsource=options, final] \step[fieldsource=sortyear, final] \step[fieldset=options, append, fieldvalue={,nonodate}] } \map[overwrite=true]{ \step[notfield=options, final] \step[fieldsource=sortyear, final] \step[fieldset=options, fieldvalue={nonodate}] } } } \DeclareDelimFormat{nameyeardelim}{\addcomma\space} \DeclareDelimFormat[parencite,bib,biblist]{nameyeardelim}{\addcomma\space} \newcommand{\dononameyeardelim}{% \ifentrytype{legislation}{% \addspace }{% \ifentrytype{jurisdiction}{% \ifboolexpr{ togl {bbx:eu-oj} or test {\iffieldequalstr{journaltitle}{ECR}} or test {\iffieldequalstr{type}{ECR}} }{% \addspace }{% \ifboolexpr{ test {\ifkeyword{sc}} or togl {bbx:scotstyle} }{% \addcomma\space }{% \addperiod\space}}% }{% \addcomma\space}}} \DeclareDelimFormat{nonameyeardelim}{\dononameyeardelim} \DeclareDelimFormat*[bib,biblist]{nonameyeardelim}{\dononameyeardelim} \DeclareDelimFormat[parencite]{nonameyeardelim}{% \ifboolexpr{ test {\ifentrytype{jurisdiction}} or test {\ifentrytype{legislation}} }{\addspace}{\addcomma\space}} \DeclareDelimFormat{nametitledelim}{% \ifboolexpr{ ( test {\ifentrytype{jurisdiction}} or test {\ifentrytype{legislation}} ) and togl {bbx:labelistitle} }{\addspace}{\addcomma\space}} \DeclareDelimFormat[bib,biblist]{nametitledelim}{% \ifboolexpr{ ( test {\ifentrytype{jurisdiction}} or test {\ifentrytype{legislation}} ) and togl {bbx:labelistitle} }{\addspace}{\labelnamepunct}} \renewbibmacro*{date}{% \printdate \setunit*{\bibdatetimesep} \printtime } \DeclareFieldFormat{time}{#1~\bibstring{hours}} \xpatchcmd{\KV@blx@opt@pre@mergedate}{% 'true' (=compact)% }{% 'year', 'true' (=year)% }{}{\wlog{WARNING: biblatex-bath failed to patch KV@blx@opt@pre@datemerge}} \ifdefined\KV@blx@opt@typ@mergedate \xpatchcmd{\KV@blx@opt@typ@mergedate}{% 'true' (=compact)% }{% 'year', 'true' (=year)% }{}{\wlog{WARNING: biblatex-bath failed to patch KV@blx@opt@typ@datemerge}} \else \DeclareTypeOption[boolean]{mergedate}[true]{% \ifcsdef{bbx@opt@mergedate@#1}{% \csuse{bbx@opt@mergedate@#1}% }{% \PackageError{biblatex} {Invalid option 'mergedate=#1'} {Valid values are 'maximum', 'compact', 'basic', 'minimum',\MessageBreak 'year', 'true' (=year), and 'false'.}}} \fi \xpatchcmd{\KV@blx@opt@ent@mergedate}{% 'true' (=compact)% }{% 'year', 'true' (=year)% }{}{\wlog{WARNING: biblatex-bath failed to patch KV@blx@opt@ent@datemerge}} \DeclareFieldFormat{datelabel}{#1} \xpatchcmd{\bbx@opt@mergedate@maximum}{% \iffieldundef{labelyear}% }{% \ifboolexpr{ togl {bbx:nonodate} and not test {\iflabeldateisdate}}% }{}{\wlog{WARNING: biblatex-bath failed to patch bbx@opt@mergedate@maximum}} \xpatchcmd{\bbx@opt@mergedate@maximum}{% \printtext[parens]% }{% \printtext[datelabel]% }{}{\wlog{WARNING: biblatex-bath failed to patch bbx@opt@mergedate@maximum}} \xpatchcmd{\bbx@opt@mergedate@compact}{% \iffieldundef{labelyear}% }{% \ifboolexpr{ togl {bbx:nonodate} and not test {\iflabeldateisdate}}% }{}{\wlog{WARNING: biblatex-bath failed to patch bbx@opt@mergedate@compact}} \xpatchcmd{\bbx@opt@mergedate@compact}{% \printtext[parens]% }{% \printtext[datelabel]% }{}{\wlog{WARNING: biblatex-bath failed to patch bbx@opt@mergedate@compact}} \xpatchcmd{\bbx@opt@mergedate@basic}{% \iffieldundef{labelyear}% }{% \ifboolexpr{ togl {bbx:nonodate} and not test {\iflabeldateisdate}}% }{}{\wlog{WARNING: biblatex-bath failed to patch bbx@opt@mergedate@basic}} \xpatchcmd{\bbx@opt@mergedate@basic}{% \printtext[parens]% }{% \printtext[datelabel]% }{}{\wlog{WARNING: biblatex-bath failed to patch bbx@opt@mergedate@basic}} \xpatchcmd{\bbx@opt@mergedate@minimum}{% \iffieldundef{labelyear}% }{% \ifboolexpr{ togl {bbx:nonodate} and not test {\iflabeldateisdate}}% }{}{\wlog{WARNING: biblatex-bath failed to patch bbx@opt@mergedate@minimum}} \xpatchcmd{\bbx@opt@mergedate@minimum}{% \printtext[parens]% }{% \printtext[datelabel]% }{}{\wlog{WARNING: biblatex-bath failed to patch bbx@opt@mergedate@minimum}} \xpatchcmd{\bbx@opt@mergedate@false}{% \iffieldundef{labelyear}% }{% \ifboolexpr{ togl {bbx:nonodate} and not test {\iflabeldateisdate}}% }{}{\wlog{WARNING: biblatex-bath failed to patch bbx@opt@mergedate@false}} \xpatchcmd{\bbx@opt@mergedate@false}{% \printtext[parens]% }{% \printtext[datelabel]% }{}{\wlog{WARNING: biblatex-bath failed to patch bbx@opt@mergedate@false}} \xpatchcmd{\bbx@opt@mergedate@maximum}{% \iffieldsequal{year}{labelyear} {\printlabeldateextra}% {\printfield{labelyear}% \printfield{extrayear}}% }{% \iflabeldateisdate {\printfield{issue}% \setunit*{\addspace}% \printdateextra} {\printlabeldateextra}% }{}{} \def\bbx@opt@mergedate@year{% \renewbibmacro*{date+extradate}{% \iffieldundef{labelyear}{}{% \ifboolexpr{ togl {bbx:nonodate} and not test {\iflabeldateisdate} }{}{% \printtext[datelabel]{\printlabeldateextra}% }% \iflabeldateisdate{% \clearfield{year}% }{}}} \ifcsundef{abx@macro@date+extrayear}{}{% \renewbibmacro*{date+extrayear}{\usebibmacro{date+extradate}}% } \renewbibmacro*{issue+date}{% \iffieldundef{issue}{}{% \ifboolexpr{( test {\iffieldundef{volume}} and test {\iffieldundef{number}} ) and test {\iffieldundef{eid}} }{% \newunit \printfield{issue}% }{% \printtext[parens]{% \printfield{issue}% }% } }% \setunit{\addcomma\space}% \printdate \newunit }% }% \def\bbx@opt@mergedate@true{\bbx@opt@mergedate@year} \ExecuteBibliographyOptions{mergedate} \newrobustcmd*{\mknoyeardaterangefull}[2]{% \iffieldundef{#2month}{}{% \datecircaprint \printtext[#2date]{% \iffieldundef{#2season}{% \csuse{mkbibdate#1}{}{#2month}{#2day}% \blx@printtime{#2}{}% }{% \csuse{mkbibseasondate#1}{}{#2season}}% \dateuncertainprint \iffieldundef{#2endmonth}{}{% \iffieldequalstr{#2endmonth}{}{% \mbox{\bibdaterangesep}% }{% \bibdaterangesep \enddatecircaprint \iffieldundef{#2season}{% \csuse{mkbibdate#1}{}{#2endmonth}{#2endday}% \blx@printtime{#2}{end}% }{% \csuse{mkbibseasondate#1}{}{#2endseason}}% \enddateuncertainprint}}}}} \newrobustcmd*{\mknoyeardaterangetrunc}[2]{% \iffieldundef{#2month}{}{% \datecircaprint \printtext[#2date]{% \iffieldundef{#2season}{% \ifboolexpr{ test {\iffieldsequal{labelyear}{labelendyear}} and test {\iffieldsequal{#2month}{#2endmonth}} }{% \csuse{mkbibdate#1}{}{}{#2day}% }{% \csuse{mkbibdate#1}{}{#2month}{#2day}}% }{% \csuse{mkbibseasondate#1}{}{#2season}}% \dateuncertainprint \iffieldundef{#2endmonth}{}{% \iffieldequalstr{#2endmonth}{}{% \mbox{\bibdaterangesep}% }{% \bibdaterangesep \enddatecircaprint \iffieldundef{#2season}{% \csuse{mkbibdate#1}{}{#2endmonth}{#2endday}% }{% \csuse{mkbibseasondate#1}{}{#2endseason}}% \enddateuncertainprint}}}}} \xpatchcmd{\mkdaterangefull}{% \iffieldundef{#2year} {\blx@nounit}% }{% \iffieldundef{#2year} {\mknoyeardaterangefull{#1}{#2}}% }{\@tempswafalse}{\@tempswatrue}% \if@tempswa \xpatchcmd{\mkdaterangefull}{% \iffieldundef{#2year} {}% }{% \iffieldundef{#2year} {\mknoyeardaterangefull{#1}{#2}}% }{}{\wlog{WARNING: biblatex-bath failed to patch mkdaterangefull}}% \fi \xpatchcmd{\mkdaterangetrunc@i}{% \iffieldundef{#2year} {\blx@nounit}% }{% \iffieldundef{#2year} {\mknoyeardaterangetrunc{#1}{#2}}% }{\@tempswafalse}{\@tempswatrue}% \if@tempswa \xpatchcmd{\mkdaterangetrunc}{% \iffieldundef{#2year} {}% }{% \iffieldundef{#2year} {\mknoyeardaterangetrunc{#1}{#2}}% }{}{\wlog{WARNING: biblatex-bath failed to patch mkdaterangetrunc@i}}% \fi \xpatchcmd{\mkdaterangefullextra}{% \iffieldundef{#2year} {\blx@nounit}% }{% \iffieldundef{#2year} {\mknoyeardaterangefull{#1}{#2}}% }{\@tempswafalse}{\@tempswatrue}% \if@tempswa \xpatchcmd{\mkdaterangefullextra}{% \iffieldundef{#2year} {}% }{% \iffieldundef{#2year} {\mknoyeardaterangefull{#1}{#2}}% }{}{\wlog{WARNING: biblatex-bath failed to patch mkdaterangefullextra}}% \fi \xpatchcmd{\mkdaterangetruncextra@i}{% \iffieldundef{#2year} {\blx@nounit}% }{% \iffieldundef{#2year} {\mknoyeardaterangetrunc{#1}{#2}}% }{\@tempswafalse}{\@tempswatrue}% \if@tempswa \xpatchcmd{\mkdaterangetruncextra}{% \iffieldundef{#2year} {}% }{% \iffieldundef{#2year} {\mknoyeardaterangetrunc{#1}{#2}}% }{}{\wlog{WARNING: biblatex-bath failed to patch mkdaterangetruncextra@i}}% \fi \DeclareFieldFormat{extraalpha}{% \iffieldnums{labelyear} {\mknumalph{#1}} {\mkbibparens{\mknumalph{#1}}}} \DeclareLabelalphaTemplate{ \labelelement{ \field{label} \field{labelname} \field{labeltitle} } \labelelement{ \field{labelyear} } } \xpatchcmd{\mkdaterangefullextra}{% \printfield{extradate}% }{% \printfield{extraalpha}% }{}{\wlog{WARNING: biblatex-bath failed to patch mkdaterangefullextra once}}% \xpatchcmd{\mkdaterangefullextra}{% \printfield{extradate}% }{% \printfield{extraalpha}% }{}{\wlog{WARNING: biblatex-bath failed to patch mkdaterangefullextra twice}}% \xpatchcmd{\mkdaterangefullextra}{% \printfield{extradate}% }{% \printfield{extraalpha}% }{}{\wlog{WARNING: biblatex-bath failed to patch mkdaterangefullextra thrice}}% \xpatchcmd{\mkdaterangetruncextra@i}{% \printfield{extradate}% }{% \printfield{extraalpha}% }{}{\wlog{WARNING: biblatex-bath failed to patch mkdaterangetruncextra@i once}}% \xpatchcmd{\mkdaterangetruncextra@i}{% \printfield{extradate}% }{% \printfield{extraalpha}% }{}{\wlog{WARNING: biblatex-bath failed to patch mkdaterangetruncextra@i twice}}% \xpatchcmd{\mkdaterangetruncextra@i}{% \printfield{extradate}% }{% \printfield{extraalpha}% }{}{\wlog{WARNING: biblatex-bath failed to patch mkdaterangetruncextra@i thrice}}% \DeclareFieldFormat{version}{\mkbibparens{\biblcsstring{version}#1}} \DeclareFieldFormat{type}{\ifbibstring{#1}{\biblstring{#1}}{#1}} \renewbibmacro*{event+venue+date}{% \printfield{eventtitle}% \setunit*{\addspace}% \printfield{eventtitleaddon}% \ifboolexpr{ test {\iffieldundef{venue}} and test {\iffieldundef{eventyear}} } {} {\setunit{\addcomma\space}% \printeventdate \setunit*{\addcomma\space}% \printfield{venue}% \newunit}} \letbibmacro{plain:institution+location+date}{institution+location+date} \renewbibmacro*{institution+location+date}{% \iflistundef{publisher}{% \usebibmacro{plain:institution+location+date}% }{% \printlist{institution}% \newunit \usebibmacro{publisher+location+date}}} \letbibmacro{plain:organization+location+date}{organization+location+date} \renewbibmacro*{organization+location+date}{% \iflistundef{publisher}{% \usebibmacro{plain:organization+location+date}% }{% \printlist{organization}% \newunit \usebibmacro{publisher+location+date}}} \DeclareFieldFormat{library}{\mkbibemph{#1}} \newbibmacro*{library}{% \iffieldundef{library}{}{% \printfield{library}% \setunit*{\addspace}% \usebibmacro{isonline}% }% } \renewcommand*{\ppspace}{} \DeclareNumChars{ab} \DeclareFieldFormat{url}{\bibsentence\bibstring{urlfrom}\addcolon\space\url{#1}} \DeclareFieldFormat{doi}{\bibsentence\bibstring{urlfrom}\addcolon\space\url{https://doi.org/#1}} \DeclareFieldFormat{urldate}{\mkbibbrackets{\bibstring{urlseen}\space#1}} \renewbibmacro*{url}{% \iffieldundef{doi}% {\printfield{url}}% {\printfield{doi}}% } \renewbibmacro*{doi+eprint+url}{% \iftoggle{bbx:eprint} {\usebibmacro{eprint}} {}% \newunit\newblock \iftoggle{bbx:url} {\usebibmacro{url+urldate}} {}} \xpatchbibdriver{online}{% \iftoggle{bbx:doi} {\printfield{doi}} {}% \newunit\newblock \iftoggle{bbx:eprint} {\usebibmacro{eprint}} {}% \newunit\newblock \usebibmacro{url+urldate}% }{% \toggletrue{bbx:url}% \usebibmacro{doi+eprint+url}% }{}{} \xpatchbibdriver{article}{% \usebibmacro{in:}\usebibmacro{journal+issuetitle}% }{% \usebibmacro{journal+issuetitle}% }{}{\wlog{WARNING: biblatex-bath failed to patch article driver}} \xpatchbibdriver{article}{% \usebibmacro{addendum+pubstate}% }{% \printfield{addendum}% }{}{\wlog{WARNING: biblatex-bath failed to patch article driver}} \xpatchbibmacro{journal}{% \printfield[titlecase]{journaltitle}% }{% \printfield[sentencecase]{journaltitle}% }{}{\wlog{WARNING: biblatex-bath failed to patch journal macro}} \xpatchbibmacro{journal}{% \printfield[titlecase]{journalsubtitle}% }{% \printfield[sentencecase]{journalsubtitle}% }{}{\wlog{WARNING: biblatex-bath failed to patch journal macro}} \renewbibmacro*{journal+issuetitle}{% \usebibmacro{journal}% \setunit*{\addspace}% \usebibmacro{isonline}% \setunit*{\addcomma\space}% \iffieldundef{series} {} {\newunit \printfield{series}% \setunit{\addcomma\space}}% \usebibmacro{volume+number+eid}% \setunit{\addspace}% \usebibmacro{issue+date}% \setunit{\addcolon\space}% \usebibmacro{issue}% \setunit{\addcomma\space}% \printfield{pubstate}% \newunit} \renewbibmacro*{volume+number+eid}{% \printfield{volume}% \printfield[parens]{number}% \setunit{\addcomma\space}% \printfield{eid}} \xpatchbibdriver{book}{% \newunit\newblock \usebibmacro{series+number}% }{% \setunit{\addcomma\space}% \usebibmacro{series+number}% }{}{\wlog{WARNING: biblatex-bath failed to patch book driver (series+number)}} \xpatchbibdriver{collection}{% \newunit\newblock \usebibmacro{series+number}% }{% \setunit{\addcomma\space}% \usebibmacro{series+number}% }{}{\wlog{WARNING: biblatex-bath failed to patch collection driver (series+number)}} \xpatchbibdriver{inbook}{% \newunit\newblock \usebibmacro{series+number}% }{% \setunit{\addcomma\space}% \usebibmacro{series+number}% }{}{\wlog{WARNING: biblatex-bath failed to patch inbook driver (series+number)}} \xpatchbibdriver{incollection}{% \newunit\newblock \usebibmacro{series+number}% }{% \setunit{\addcomma\space}% \usebibmacro{series+number}% }{}{\wlog{WARNING: biblatex-bath failed to patch incollection driver (series+number)}} \xpatchbibdriver{inproceedings}{% \newunit\newblock \usebibmacro{series+number}% }{% \setunit{\addcomma\space}% \usebibmacro{series+number}% }{}{\wlog{WARNING: biblatex-bath failed to patch inproceedings driver (series+number)}} \xpatchbibdriver{proceedings}{% \newunit\newblock \usebibmacro{series+number}% }{% \setunit{\addcomma\space}% \usebibmacro{series+number}% }{}{\wlog{WARNING: biblatex-bath failed to patch proceedings driver (series+number)}} \xpatchbibdriver{incollection}{% \usebibmacro{in:}% \usebibmacro{maintitle+booktitle}% \newunit\newblock \usebibmacro{byeditor+others}% }{% \ifnameundef{editor}{}{\usebibmacro{in:}}% \usebibmacro{bookeditor}% \newunit\newblock \usebibmacro{maintitle+booktitle}% \usebibmacro{byeditor+others}% }{}{\wlog{WARNING: biblatex-bath failed to patch incollection driver (bookeditor)}} \xpatchbibdriver{inproceedings}{% \usebibmacro{in:}% \usebibmacro{maintitle+booktitle}% \newunit\newblock \usebibmacro{event+venue+date}% \newunit\newblock \usebibmacro{byeditor+others}% }{% \ifnameundef{editor}{}{\usebibmacro{in:}}% \usebibmacro{bookeditor}% \newunit\newblock \usebibmacro{maintitle+booktitle}% \usebibmacro{byeditor+others}% \newunit \usebibmacro{event+venue+date}% }{}{\wlog{WARNING: biblatex-bath failed to patch inproceedings driver (bookeditor)}} \DeclareBibliographyDriver{inreference}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/translator+others}% \setunit{\printdelim{nametitledelim}}\newblock \ifnameundef{author}{}{\usebibmacro{title}% \newunit}% \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \ifboolexpr{ test {\iffieldundef{maintitle}} and test {\iffieldundef{booktitle}} }{}{% \ifnameundef{editor}{}{\usebibmacro{in:}}% \usebibmacro{bookeditor}% \newunit\newblock \usebibmacro{maintitle+booktitle}}% \usebibmacro{byeditor+others}% \newunit\newblock \printfield{edition}% \newunit \iffieldundef{maintitle} {\printfield{volume}% \printfield{part}} {}% \newunit \ifnameundef{author}{\usebibmacro{title}% \newunit}{}% \printfield{volumes}% \newunit\newblock \usebibmacro{series+number}% \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}} \xpatchbibdriver{dataset}{% \printlist{organization}% \newunit \usebibmacro{publisher+location+date}% }{% \usebibmacro{library}% \newunit\newblock \usebibmacro{organization+location+date}% }{}{\wlog{WARNING: biblatex-bath failed to patch dataset driver (publisher)}} \xpatchbibdriver{online}{% \printlist{organization}% \newunit\newblock \usebibmacro{date}% }{% \usebibmacro{library}% \newunit\newblock \usebibmacro{organization+location+date}% }{}{\wlog{WARNING: biblatex-bath failed to patch online driver (publisher)}} \DeclareFieldFormat{forceparens}{(#1)} \newbibmacro{series+type+number}{% \ifboolexpr{ test {\iffieldundef{series}} and test {\iffieldundef{type}} and test {\iffieldundef{number}} }{}{% \printtext[parens]{% \printfield{series}% \IfStrEqCase{\thefield{series}}{% {C}{\printunit*{\adddot\space}}% {Cd}{\printunit*{\adddot\space}}% {Cmd}{\printunit*{\adddot\space}}% {Cmnd}{\printunit*{\adddot\space}}% {Cm}{\printunit*{\adddot\space}}% }{% \setunit*{\addcomma\space}}% \printfield{type}% \setunit*{\addspace}% \IfBeginWith{\thefield{series}}{HL}{% \printfield[forceparens]{number}% }{% \printfield{number}% }}}} \DeclareBibliographyDriver{report}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author}% \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{series+type+number}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{institution+location+date}% \newunit\newblock \usebibmacro{chapter+pages}% \newunit \printfield{pagetotal}% \newunit\newblock \iftoggle{bbx:isbn} {\printfield{isrn}} {}% \newunit\newblock \usebibmacro{library}% \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}} \newbibmacro{manual:series+type+number}{% \iffieldundef{series}{% \newunit\newblock \printfield{type}% \setunit{\addspace}% \printfield{number}% }{% \setunit{\addcomma\space}% \usebibmacro{series+number}% \newunit\newblock \printfield{type}% }% } \xpatchbibdriver{manual}{% \newunit\newblock \usebibmacro{series+number}% \newunit\newblock \printfield{type}% }{% \usebibmacro{manual:series+type+number}% }{}{\wlog{WARNING: biblatex-bath failed to patch manual driver}} \xpatchbibdriver{manual}{% \printlist{organization}% \newunit \usebibmacro{publisher+location+date}% }{% \usebibmacro{organization+location+date}% }{}{\wlog{WARNING: biblatex-bath failed to patch manual driver}} \DeclareStyleSourcemap{% \maps[datatype=bibtex]{% \map[overwrite=false]{ \pertype{standard} \step[notfield=author, fieldsource=number, final] \step[fieldset=sortkey, origfieldval] } \map[overwrite=false]{ \pertype{standard} \step[notfield=author, fieldsource=number, fieldtarget=label] } }} \ExecuteBibliographyOptions[standard]{useeditor=false} \newbibmacro*{type+online}{% \printfield{type}% \ifboolexpr{ test {\iffieldundef{type}} or test {\nottoggle{bbx:labelistitle}} }{}{% \setunit{\addspace}% \usebibmacro{isonline}}} \DeclareBibliographyDriver{audio}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{type+online}% \newunit\newblock \usebibmacro{byauthor}[given-family:full]% \newunit\newblock \usebibmacro{byeditor+others}[given-family:full]% \newunit\newblock \printfield{howpublished}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{publisher+location+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}} \DeclareBibliographyAlias{movie}{audio} \DeclareBibliographyAlias{music}{audio} \DeclareBibliographyAlias{video}{audio} \newtoggle{bbx:eu-oj} \newbibmacro*{eucheck}{% \IfBeginWith{\thefield{journaltitle}}{OJ}{% \toggletrue{bbx:eu-oj}% }{}} \DeclareFieldFormat[jurisdiction,legislation]{title}{% \ifboolexpr{ togl{bbx:eu-oj} and not test {\iffieldequalstr{type}{Commission Decision}} }{#1}{\mkbibemph{#1}}} \newtoggle{bbx:scotstyle} \DeclareEntryOption[boolean]{scottish-style}[true]{% \settoggle{bbx:scotstyle}{#1}} \newtoggle{bbx:year-essential} \DeclareEntryOption[boolean]{year-essential}[true]{% \settoggle{bbx:year-essential}{#1}} \DeclareFieldFormat[jurisdiction]{datelabel}{% \ifboolexpr{ test {\iffieldundef{volume}} or togl {bbx:year-essential} or togl {bbx:eu-oj} or test {\iffieldequalstr{journaltitle}{ECR}} }{% \ifboolexpr{ test {\ifkeyword{sc}} or togl {bbx:scotstyle} }{% #1% }{% \mkbibbrackets{#1}}% }{% \mkbibparens{#1}}} \DeclareFieldFormat[jurisdiction]{issue}{\mkbibparens{#1}} \newbibmacro*{casenumber}{% \iffieldundef{issue}{% \ifboolexpr{ test {\iffieldundef{pages}} or test {\iffieldundef{number}} }{}{% \iffieldundef{userb}{% \printfield[parens]{number}% \clearfield{number}% }{% \printfield[parens]{userb}% \setunit{\addspace}% \printfield{type}% \setunit*{\addspace}% \printfield{number}% \clearfield{type}\clearfield{number}}}% }{% \printfield{issue}}} \DeclareStyleSourcemap{ \maps[datatype=bibtex]{ \map[overwrite=false]{ \step[match=\regexp{Commission}, fieldsource=institution, final] \step[fieldset=type, fieldvalue={Commission Decision}] \step[fieldset=institution, null] } \map[overwrite=false]{ \step[fieldsource=casenumber, final] \step[notfield=number, fieldsource=casenumber, fieldtarget=number] \step[fieldsource=casenumber, fieldtarget=userb] } } } \newbibmacro{jurisdiction:type+number}{% \usebibmacro{journal}% \setunit*{\addspace}% \ifboolexpr{ test {\iffieldundef{type}} and test {\iffieldundef{number}} }{}{% \printfield{volume}% \setunit*{\addperiod\space}% \printfield{type}% \setunit*{\addspace}% \printfield{number}}} \DeclareFieldFormat[jurisdiction]{journaltitle}{% \iftoggle{bbx:eu-oj}{\mkbibemph{#1}}{#1}} \DeclareFieldFormat[jurisdiction,legislation]{volume}{#1} \DeclareFieldFormat[jurisdiction,legislation]{pages}{#1} \newbibmacro{journal+volume+pages}{% \printfield{volume}% \setunit{\addperiod\space}% \printfield{journaltitle}% \setunit*{\addspace}% \printfield{pages}% } \newbibmacro{eu:journal+volume+pages}{% \printfield{journaltitle}% \setunit{\addspace}% \printfield{volume}% \setunit*{\printtext{--\allowbreak}}% \printfield{pages}% } \newbibmacro{eu:journal+series+volume+pages}{% \printfield{journaltitle}% \setunit{\addspace}% \printfield{series}% \clearfield{series}% \printfield{volume}% \setunit*{\printtext{/}}% \printfield{pages}% } \newbibmacro{reporter}{% \iffieldundef{journaltitle}{% \usebibmacro{jurisdiction:type+number}% }{% \iffieldequalstr{journaltitle}{ECR}{% \usebibmacro{eu:journal+volume+pages}% }{% \iffieldequalstr{journaltitle}{OJ}{% \iffieldundef{series}{% \usebibmacro{jurisdiction:type+number}% }{% \usebibmacro{eu:journal+series+volume+pages}% }% }{% \usebibmacro{journal+volume+pages}% }}}} \DeclareFieldFormat[jurisdiction]{institution}{\mkbibparens{#1}} \DeclareBibliographyDriver{jurisdiction}{% \savebibmacro{title}% \xapptobibmacro{labeltitle}{% \setunit*{\addspace}% \usebibmacro{casenumber}% }{}{}% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{eucheck}% \usebibmacro{author}% \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \printfield{note}% \setunit{\addspace}% \usebibmacro{reporter}% \newunit \printfield{pagetotal}% \newunit\newblock \printfield{institution}% \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}% \restorebibmacro{title}} \DeclareFieldFormat[legislation]{datelabel}{% \iftoggle{bbx:eu-oj}{% \mkbibbrackets{#1}% }{#1}} \DeclareFieldFormat[legislation]{labeldate}{% \iftoggle{bbx:labelistitle}{\printtext[title]{#1}}{#1}} \DeclareFieldFormat[legislation]{chapter}{\biblcsstring{legalchapter}#1} \newbibmacro*{journal+series+volume+number+chapter+pages}{% \iftoggle{bbx:eu-oj}{% \setunit{\addspace}% \usebibmacro{eu:journal+series+volume+pages}% }{% \iffieldequalstr{entrysubtype}{secondary}{% \setunit{\addcomma\space}% \printfield{number}% \clearfield{number}% \printunit{\addcomma\space}% }{% \ifboolexpr{ test {\iffieldundef{series}} and test {\iffieldundef{type}} }{% \iffieldundef{number}{% \setunit{\addcomma\space}% \printfield{chapter}% }{% \setunit{\addspace}% \printtext[parens]{% \printfield{number}% \setunit*{\addcomma\space}% \printfield{chapter}}}% }{% \iffieldundef{chapter}{}{\setunit{\addspace}}% \printtext[parens]{% \printfield{series}% \setunit{\addcomma\space}% \printfield{type}% \setunit*{\addspace}% \printfield{number}% \setunit*{\addcomma\space}% \printfield{chapter}}}}}} \DeclareBibliographyDriver{legislation}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{eucheck}% \usebibmacro{author}% \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{journal+series+volume+number+chapter+pages} \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{institution+location+date}% \newunit\newblock \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}} \DeclareFieldFormat[letter]{title}{\iffieldundef{journaltitle}{\emph{#1}}{#1}} \ExecuteBibliographyOptions[letter]{mergedate=maximum} \DeclareBibliographyDriver{letter}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/translator+others}% \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{bytranslator+others}% \newunit\newblock \usebibmacro{journal+issuetitle}% \newunit\newblock \printfield{howpublished}% \newunit \printfield{note}% \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}% } \DeclareFieldFormat[software]{type}{\mkbibbrackets{#1}} \DeclareBibliographyDriver{software}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{title}% \setunit{\addspace} \printfield{type}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \printfield{howpublished}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{organization+location+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}} \DeclareFieldFormat[image]{library}{#1} \DeclareBibliographyDriver{image}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \printfield{howpublished}% \newunit\newblock \printfield{type}% \newunit \printfield{note}% \newunit\newblock \usebibmacro{organization+location+date+library}% \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}} \newbibmacro*{organization+location+date+library}{% \ifboolexpr{ test {\iffieldundef{library}} or not test {\iflistundef{publisher}} }{% \printlist{location}% \setunit*{\addcolon\space}% \clearfield{location}% }{}% \iflistundef{publisher}{% \printlist{organization}% }{% \printlist{publisher}% }% \setunit{\addcomma\space}% \usebibmacro{date}% \newunit \iffieldundef{library}{% \iffieldundef{institution}{}{% \bibsentence \bibstring{at}% \setunit{\addcolon\space}% \printlist{location}% \setunit*{\addperiod\space}% \printfield{institution}% }% }{% \bibsentence \bibstring{at}% \setunit{\addcolon\space}% \printlist{location}% \setunit*{\addperiod\space}% \printfield{library}% }% } \newbibmacro*{isunpublished}{% \bibstring{unpublished}% } \DeclareBibliographyDriver{unpublished}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author}% \setunit{\printdelim{nametitledelim}}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \ifnameundef{editor}{}{\usebibmacro{in:}}% \usebibmacro{bookeditor}% \newunit\newblock \usebibmacro{maintitle+booktitle}% \usebibmacro{byeditor+others}% \newunit\newblock \printfield{howpublished}% \newunit\newblock \printfield{type}% \newunit\newblock \usebibmacro{event+venue+date}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{location+date}% \newunit\newblock \usebibmacro{isunpublished}% \newunit\newblock \iftoggle{bbx:url} {\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}} \DeclareBibliographyAlias{standard}{manual} \DeclareStyleSourcemap{% \maps[datatype=bibtex]{% \map{% \pertype{inreference} \step[notfield=author, final] \step[fieldsource=booktitle] \step[fieldset=sorttitle, origfieldval] }% }% }% %% %% Copyright (C) 2016-2021 by University of Bath %% %% End of file `bath.bbx'.