summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex-contrib/biblatex-unified/unified.bbx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-unified/unified.bbx')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-unified/unified.bbx733
1 files changed, 733 insertions, 0 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-unified/unified.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-unified/unified.bbx
new file mode 100644
index 0000000000..bb278b4a1c
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-unified/unified.bbx
@@ -0,0 +1,733 @@
+%% ---------------------------------------------------------------
+%% biblatex-unified --- A biblatex implementation of the Unified Style
+%% Sheet for Linguistics Journals. This is the house style of the
+%% journal "Semantics & Pragmatics" (A journal of the Linguistic
+%% Society of America).
+%% Maintained by Kai von Fintel (fintel@mit.edu)
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ---------------------------------------------------------------
+%%
+
+\ProvidesFile{unified.bbx}[2020/06/25 v1.00 biblatex bibliography style]
+
+% biblatex by default calls biblatex.def, we add to this authoryear.bbx, which
+% in turn loads standard.bbx. So, unified.bbx is built on top of those styles;
+% once authoryear.bbx is loaded, we tell it not to put in dashes for repeated
+% authors (in accordance with the Unified Stylesheet)
+
+\RequireBibliographyStyle{authoryear}
+\ExecuteBibliographyOptions{dashed=false,isbn=false,eprint=false}
+
+% NB: The Unified Style Sheet wants abbreviated "ed(s)", "edn". But using the
+% abbreviate option also abbreviates the names of months. But then
+% dateabbrev=false restores the long names of months
+
+% biblatex has a "useprefix" option, which makes "von" count for
+% alphabetization; the Unified Stylesheet does not want that, so it is important
+% that this option be disabled (even if an author tries to set it to true)
+
+\ExecuteBibliographyOptions{%
+ sorting=nyt,abbreviate,dateabbrev=false,useprefix=false}
+
+% For backward compatibility: choose labeldate or labeldateparts
+% depending on the biblatex version
+\@ifpackagelater{biblatex}{2016/09/09} {%
+ \ExecuteBibliographyOptions{labeldateparts}} {%
+ \ExecuteBibliographyOptions{labeldate}
+ \def\printlabeldateextra{\printdateextralabel} }%
+
+% If an @article entry contains Issuetitle and Editor information, we
+% might not want to print it. The Unified Style Sheet does not offer
+% explicit guidelines on this, but they don't have any examples where
+% either of these pieces of information are actually printed.
+% Therefore, we can offer an option for the user to decide whether to
+% print it. The default will be not to print it since the Unified
+% Style Sheet does not have examples where this information is
+% printed. The user can print it by setting `issueandeditor=true` as a
+% package option when biblatex is called.
+
+\newtoggle{issueandeditor}
+\DeclareBibliographyOption{issueandeditor}[false]{%
+ \settoggle{issueandeditor}{#1}}
+
+% Formatting directives for name lists
+% ------------------------------------------------------------------
+%
+% In biblatex.def, there are name formats defined: first-last, last-first,
+% last-first/first-last. They could be simplified (we don't need provisions for
+% using initials only, since the Unified Style doesn't do that), but since
+% biblatex.def is loaded automatically, there's no point. The name formats call
+% bibmacros that figure out how to order the internal of name components. These
+% are re-defined here to make sure that "von" is treated as part of the last
+% name (it still doesn't count for sorting -- which is controlled by the
+% \useprefix package option) name:last is used to produce citation labels
+% name:last-first is used to produce the first author's name listing in the
+% alphabetical bibliography
+
+% Also moved the Jr part to after the first name and inserted another comma,
+% because the Unified Stylesheet disagrees with standard.bbx: it wants "Jr." not
+% to be treated as part of the last name.
+
+% The macros here get 4 arguments passed to them. They are: #1 last name, #2
+% first name, #3 von, #4 Jr.
+
+% In biblatex v3.3 and onwards, the name formatting has changed in a big way.
+% See for example:
+% http://tex.stackexchange.com/questions/299036/biblatex-3-3-name-formatting,
+% https://github.com/plk/biblatex/issues/372, and
+% http://www.texdev.net/2016/03/13/biblatex-a-new-syntax-for-declarenameformat/.
+% The name formats in biblatex.def are not called first-last etc. anymore but
+% given-family etc. And while there are safeguard legacy aliases
+% (\DeclareNameAlias{first-last}{given-family}, for example), the new formats
+% then use macros like \usebibmacro{name:family-given}, which of course our old
+% redefinitions didn't adjust. So, for newer biblatex, we need to do new
+% versions of \renewbibmacro{name:...}.
+
+%% Redefinitions of name:last and name:last-first for biblatex versions before
+%% v3.3
+
+\renewbibmacro*{name:last}[4]{%
+ \usebibmacro{name:delim}{#3#1}%
+ \usebibmacro{name:hook}{#3#1}%
+ \ifblank{#3}
+ {}
+ {\ifcapital
+ {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
+ {\mkbibnameprefix{#3}\isdot}%
+ \ifpunctmark{'}{}{\bibnamedelimc}}%
+ \mkbibnamelast{#1}}%
+
+\renewbibmacro*{name:last-first}[4]{%
+ \usebibmacro{name:delim}{#3#1}%
+ \usebibmacro{name:hook}{#3#1}%
+ \ifblank{#3}{}{%
+ \mkbibnameprefix{#3}\isdot%
+ \ifpunctmark{'}{}{\bibnamedelimc}}%
+ \mkbibnamelast{#1}\isdot
+ \ifblank{#2}{}{\addcomma\bibnamedelimd\mkbibnamefirst{#2}\isdot}%
+ \ifblank{#4}{}{\addcomma\bibnamedelimd\mkbibnameaffix{#4}\isdot}}
+
+%% Redefinitions of name:family and name:family-given for biblatex ever since
+%% v3.3
+
+\renewbibmacro*{name:family}[4]{%
+ \usebibmacro{name:delim}{#3#1}%
+ \usebibmacro{name:hook}{#3#1}%
+ \ifdefvoid{#3}
+ {}
+ {\ifcapital
+ {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
+ {\mkbibnameprefix{#3}\isdot}%
+ \ifprefchar{}{\bibnamedelimc}}%
+ \mkbibnamefamily{#1}\isdot}%
+
+\renewbibmacro*{name:family-given}[4]{%
+ \usebibmacro{name:delim}{#3#1}%
+ \usebibmacro{name:hook}{#3#1}%
+ \ifdefvoid{#3}
+ {}
+ {\mkbibnameprefix{#3}\isdot%
+ \ifprefchar{}{\bibnamedelimc}}%
+ \mkbibnamefamily{#1}\isdot
+ \ifdefvoid{#2}
+ {}
+ {\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
+ \ifdefvoid{#4}
+ {}
+ {\addcomma\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Various bibmacros used in producing the bibliography
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% We use `date+extradate` but biblatex versions before 3.8 didn't have that
+% macro. Older versions were smart enough to complain about `\renewmacro` and
+% use `\newmacro` instead. But the following construction works for both cases
+
+\providebibmacro{date+extradate}{}
+\renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear} {}
+ {\printtext{\printlabeldateextra}}}% Took out parentheses around the year
+
+\renewbibmacro*{author}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\usebibmacro{bbx:savehash}%
+ \printnames{author}%
+ \iffieldundef{authortype}
+ {\newunit}% period instead of space
+ {\setunit{\addcomma\space}}}%
+ \iffieldundef{authortype}
+ {}
+ {\usebibmacro{authorstrg}%
+ \newunit}}% period instead of space
+ {\global\undef\bbx@lasthash
+ \usebibmacro{labeltitle}%
+ \newunit}% period instead of space
+ \usebibmacro{date+extradate}}
+
+\renewbibmacro*{editor}{%
+ \usebibmacro{bbx:editor}{editorstrg}}
+\renewbibmacro*{editor+others}{%
+ \usebibmacro{bbx:editor}{editor+othersstrg}}
+\renewbibmacro*{bbx:editor}[1]{%
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames{editor}%
+ \setunit{\addspace}%
+ \usebibmacro{bbx:savehash}}%
+ \printtext[parens]{\usebibmacro{#1}}%
+ \clearname{editor}%
+ \newunit}% period instead of space
+ {\global\undef\bbx@lasthash
+ \usebibmacro{labeltitle}%
+ \newunit}% period instead of space
+ \usebibmacro{date+extradate}}
+
+\renewbibmacro*{translator}{%
+ \usebibmacro{bbx:translator}{translatorstrg}}
+\renewbibmacro*{translator+others}{%
+ \usebibmacro{bbx:translator}{translator+othersstrg}}
+\renewbibmacro*{bbx:translator}[1]{%
+ \ifboolexpr{
+ test \ifusetranslator
+ and
+ not test {\ifnameundef{translator}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames{translator}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{translator+othersstrg}%
+ \clearname{translator}%
+ \newunit}% period instead of space
+ {\global\undef\bbx@lasthash
+ \usebibmacro{labeltitle}%
+ \newunit}% period instead of space
+ \usebibmacro{date+extradate}}
+
+\renewbibmacro*{journal}{%
+ \iffieldundef{journaltitle}
+ {}
+ {\printtext{%
+ \printfield{journaltitle}%
+ \setunit{\subtitlepunct}%
+ \printfield{journalsubtitle}}}}
+
+\newbibmacro*{journal+issuetitle+editor}{%
+ \usebibmacro{journal}%
+ \setunit*{\addspace}%
+ \iffieldundef{series}
+ {}
+ {\newunit
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \usebibmacro{volume+number+eid}%
+ \iftoggle{issueandeditor}
+ {\setunit{\addspace}%
+ \usebibmacro{issue+date}%
+ \setunit{\addcolon\space}%
+ \usebibmacro{issue}
+ % The following three lines were originally not included inside of
+ % the journal+issuetitle bibmacro. They have been moved inside of
+ % this macro in order to allow them to be controlled by the toggle
+ % `issuetitle` that is defined at the top of this style file.
+ \newunit
+ \usebibmacro{byeditor+others}%
+ \newunit}
+ {}%
+ \newunit}
+
+% The next three bib macros are for printing the maintitle and
+% booktitle fields of an @inproceedings entry with an ISSN as an
+% article in accordance with the unified style sheet guidelines.
+
+% 1. maintitle
+
+\newbibmacro*{unified:proc-as-article:maintitle}{%
+ \ifboolexpr{
+ test {\iffieldundef{maintitle}}
+ and
+ test {\iffieldundef{mainsubtitle}}
+ }
+ {}
+ {\printtext{%
+ \printfield[maintitle]{maintitle}%
+ \setunit{\subtitlepunct}%
+ \printfield[maintitle]{mainsubtitle}}%
+ \newunit}%
+ \printfield{maintitleaddon}}
+
+% 2. booktitle
+
+\newbibmacro*{unified:proc-as-article:booktitle}{%
+ \ifboolexpr{
+ test {\iffieldundef{booktitle}}
+ and
+ test {\iffieldundef{booksubtitle}}
+ }
+ {}
+ {\printtext{%
+ \printfield[booktitle]{booktitle}%
+ \setunit{\subtitlepunct}%
+ \printfield[booktitle]{booksubtitle}}%
+ \newunit}%
+ \printfield{booktitleaddon}}
+
+% 3. maintitle+booktitle
+
+\newbibmacro*{unified:proc-as-article:maintitle+booktitle}{%
+ \iffieldundef{maintitle}
+ {}
+ {\usebibmacro{unified:proc-as-article:maintitle}%
+ \newunit\newblock}
+ \usebibmacro{unified:proc-as-article:booktitle}%
+ \setunit{\addspace}}
+
+\renewbibmacro*{volume+number+eid}{%
+ \printfield{volume}%
+% \setunit*{\adddot}%
+ \printfield[parens]{number}% parentheses instead of dot before issue number
+ \setunit{\addcomma\space}%
+ \printfield{eid}}
+
+% This is for printing the volume field of a proceedings with an ISSN
+% as an article in accordance with the unified style sheet guidelines.
+% It depends on the declared field format below.
+
+\newbibmacro*{unified:proc-as-article:volume+number+eid}{%
+ \printfield[volume:unified:proc-as-article]{volume}%
+ \printfield[parens]{number}%
+ \setunit{\addcomma\space}%
+ \printfield{eid}}
+
+% Because of the weird format "3 May, 2007" specified in the Unified
+% Stylesheet for URL access dates, we need a special way to format the
+% urldate
+
+\newcommand{\mkbibdateunified}[3]{% Year-Month-Day as input --> xx Month, Year
+ \iffieldundef{#3}
+ {}
+ {\stripzeros{\thefield{#3}}%
+ \nobreakspace}%
+ \iffieldundef{#2}
+ {\iffieldundef{#1}%
+ {}%
+ {\stripzeros{\thefield{#1}}}}%
+ {\mkbibmonth{\thefield{#2}}%
+ \iffieldundef{#1}%
+ {}%
+ {\iffieldundef{#3}%
+ {}%
+ {,}%
+ \space\stripzeros{\thefield{#1}}}%
+ }%
+ }%
+
+\renewbibmacro*{url+urldate}{%
+ \printfield{url}%
+ \iffieldundef{urlyear}%
+ {}%
+ {\setunit*{\addspace}%
+ \printtext[parens]{\mkbibdateunified{urlyear}{urlmonth}{urlday}}}%
+ }
+
+\renewbibmacro*{series+number}{%
+ \iffieldundef{series}
+ {}
+ {\printtext[parens]{%
+ \printfield{series}%
+ \setunit*{\addspace}%
+ \printfield{number}}%
+ }}
+
+\renewbibmacro*{byeditor+others}{%
+ \ifnameundef{editor}
+ {}
+ {\printnames[byeditor]{editor}%
+ \setunit{\addspace}%
+ \printtext[parens]{\usebibmacro{editor+othersstrg}}%
+ \clearname{editor}%
+ \newunit}%
+ \usebibmacro{byeditorx}%
+ \usebibmacro{bytranslator+others}}
+
+\renewbibmacro*{chapter+pages}{%
+ \iffieldundef{chapter}%
+ {}%
+ {\printfield{chapter}%
+ \setunit{\addcomma\space}}%
+ \printfield{pages}%
+ \newunit}
+
+\renewbibmacro*{note+pages}{%
+ \iffieldundef{note}%
+ {}%
+ {\printfield{note}%
+ \setunit{\addcomma\space}}%
+ \printfield{pages}%
+ \newunit}
+
+\newbibmacro*{institution+location+type+date}{%
+ \printlist{location}%
+ \iflistundef{institution}
+ {}
+ {\setunit*{\addcolon\space}}%
+ \printlist{institution}%
+ \setunit{\addspace}%
+ \printfield{type}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date}%
+ \newunit}
+
+% The following is a hack to satisfy the Unified Stylesheet's decision
+% to give the edition right after the OED as used as a sortlabel.
+
+\renewbibmacro*{labeltitle}{%
+ \iffieldundef{label}
+ {\iffieldundef{shorttitle}
+ {\printfield{title}%
+ \setunit{\addcomma\space}% Here it comes, preparing for the edition
+ \printfield{edition}% Here's the edition
+ \clearfield{title}%
+ \clearfield{edition}}% Clearing the edition field
+ {\printfield[title]{shorttitle}}}
+ {\printfield{label}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Punctuation & formatting
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% This gets rid of the Oxford comma in name lists and uses the
+% ampersand rather than "and":
+
+\renewcommand*{\finalnamedelim}{\addspace\&\addspace}
+\renewcommand*{\finallistdelim}{\addspace\&\addspace}
+
+% no colon after "In" in incollection entries (overriding
+% biblatex.def):
+
+\renewcommand{\intitlepunct}{\addspace}
+
+\renewcommand{\subtitlepunct}{\addcolon\space}
+
+% No comma before pages, just the usual new unit period
+
+\renewcommand*{\bibpagespunct}{\newunitpunct}
+
+\DefineBibliographyStrings{english}{%
+ edition = {edn\adddot},
+ phdthesis = {dissertation},
+}
+
+% basically everything is in sentence case, other than journals and
+% book series (recurring titles)
+
+\DeclareFieldFormat[%
+ article,book,collection,incollection,inproceedings,thesis,unpublished]%
+ {titlecase}{\MakeSentenceCase*{#1}}%
+
+% No quotes around titles
+
+\DeclareFieldFormat[%
+ article,inbook,incollection,inproceedings,patent,thesis,unpublished]%
+ {title}{#1}
+
+% Just like book titles, thesis titles are in italics
+
+\DeclareFieldFormat[thesis]{title}{\mkbibemph{#1}}
+
+\DeclareFieldFormat{pages}{#1} % no pp. prefix, took \mkpageprefix out [kvf]
+\DeclareFieldFormat{doi}{%
+ \ifhyperref
+ {\href{https://doi.org/#1}{\nolinkurl{https://doi.org/#1}}}
+ {\nolinkurl{https://doi.org/#1}}}
+\DeclareFieldFormat{url}{\url{#1}}
+
+% This is for printing the volume field of a proceedings with an ISSN
+% as an article in accordance with the unified style sheet guidelines
+
+\DeclareFieldFormat{volume:unified:proc-as-article}{#1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The bibliography drivers, specifying the formats of each type of
+% entry in the bibliography
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% First, the entry types used in the Unified Test Bibliography.
+%%% Could rely on standard.bbx for all others as a fallback.
+
+% For the article type, the only departure from standard.bbx is that
+% we don't use a literal "In: " before the journal title; other
+% formatting departures are done in the format specs and bibmacros
+
+\DeclareBibliographyDriver{article}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit\newblock
+ \usebibmacro{journal+issuetitle+editor}%
+ \newblock% \newblock ensures period before pages
+ \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/editor+others/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{maintitle+title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \setunit{\addspace}%
+ \usebibmacro{series+number}%
+ \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}}
+
+% Aliased to ensure no period between the title and the series.
+
+\DeclareBibliographyAlias{collection}{book}
+
+% @inbook entries look terrible as-is, and have fields very similar to
+% @incollection anyway
+
+\DeclareBibliographyAlias{inbook}{incollection}
+
+\DeclareBibliographyAlias{incollection}{inproceedings}
+
+% Given the guidelines in the unified style sheet, we should print
+% conference proceedings and working papers as @article's just in case
+% the publication has an ISSN. So, rather than have users handle this
+% in the database by changing the entry type, we can implement this by
+% checking if the inproceedings entry has an ISSN. If the field is
+% undefined, the driver will do what driver did for @inproceedings
+% entries as of 512f11657199a6044f7663da454f3eac338bdbd5 except that
+% \printlist{organization} and \newunit have been removed. On the
+% other hand, if the ISSN field is not undefined, then we will do
+% largely the exact same thing that we do in the @article driver,
+% except that we use the two macros
+% \usebibmacro{unified:proc-as-article:maintitle+booktitle} and
+% \usebibmacro{unified:proc-as-article:volume+number+eid} instead of
+% \usebibmacro{journal+issuetitle} and except that
+% \usebibmacro{byeditor+others} has been removed so as to ensure that
+% the editors are not listed even if they are present in the database.
+
+\DeclareBibliographyDriver{inproceedings}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \iffieldundef{issn}
+ {\usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \ifnameundef{editor}
+ {\setunit{\addspace}}
+ {\usebibmacro{byeditor+others}\setunit{\addcomma\space}}
+ \usebibmacro{maintitle+booktitle}%
+ \setunit{\addcomma\space}
+ \printfield{edition}%
+ \setunit{\addcomma\space}
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \setunit{\addcomma\space}
+ \printfield{volumes}%
+ \setunit{\addspace}%
+ \usebibmacro{series+number}%
+ \setunit{\addcomma\space}
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \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{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit\newblock
+ \usebibmacro{unified:proc-as-article:maintitle+booktitle}%
+ \usebibmacro{unified:proc-as-article:volume+number+eid}
+ \newunit\newblock%
+ \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{thesis}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{institution+location+type+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{unpublished}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{howpublished}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{location+date}%
+ \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}}