% arthistory-bonn --%
% Copyright (c) 2017-2018 Lukas C. Bossert | Thorsten Kemper
% 
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
\def\arthist@date{2018-02-13}
\def\arthist@version{1.2}
\def\arthist@bbxid{\arthist@date\space v\arthist@version\space biblatex-arthistory-bonn bibliography style (LCB|TK)}
\def\arthist@cbxid{\arthist@date\space v\arthist@version\space biblatex-arthistory-bonn  citation style (LCB|TK)}
\def\arthist@lbxid{\arthist@date\space v\arthist@version\space biblatex-arthistory-bonn localization (LCB|TK)}

\ProvidesFile{arthistory-bonn.bbx}%
  [\arthist@bbxid]
\RequireBibliographyStyle{authoryear}
\AtBeginDocument{%
  \urlstyle{sf}%
  \typeout{* * * arthistory-bonn * * *}
}
\RequirePackage{csquotes}
\def\arthistoryversion{\arthist@version}
\def\arthistorydate{\arthist@date}
\ExecuteBibliographyOptions{%
  pagetracker=true,%
  citecounter=true,%
  citetracker=context,
  sortlocale=auto,%
  language=auto,%
  autolang=other,%
  bibencoding=utf8,%
  urldate=long,%
  sorting=nyt,%
  maxnames=3,% 
  minnames=1,%
  maxitems=2,%
  maxbibnames=3,%
  isbn=false, 
}
\AtEveryBibitem{%
	\clearfield{issn}%
	\clearfield{pagetotal}%
	}
\AtEveryCitekey{%
	\clearfield{issn}%
	\clearfield{pagetotal}%
	}
	

\newbool{bbx:width}
\newbool{bbx:publisher}
\newtoggle{bbx:jstor}
\newtoggle{bbx:enddot}
\newbool{bbx:pagesfull}
\newtoggle{bbx:zenon}
\newtoggle{bbx:urn}
\newtoggle{bbx:arthist}

\newsavebox\arthist@labelbox
\newlength{\labwidthsameline}
\setlength{\labwidthsameline}{10em}
\setlength{\biblabelsep}{0em}
\renewcommand{\multinamedelim}{\addnbthinspace\slash\addthinspace}
\renewcommand{\finalnamedelim}{\multinamedelim}
\renewcommand*{\nametitledelim}{\addcolon\addspace}
\newcommand*{\titleaddondelim}{\addsemicolon\addspace}
\newcommand*{\volnumdelim}{\addslash}
\newcommand*{\jourvoldelim}{\addnbspace}
\newcommand*{\volissuedelim}{\addslash}
\renewcommand*\relateddelim{\addnbspace\slash\addspace}
\renewcommand*{\multilistdelim}{\multinamedelim}
\renewcommand*{\finallistdelim}{\multinamedelim}
\renewcommand{\finentrypunct}{}
\renewcommand*{\newunitpunct}{\addcomma\space}
\renewcommand*{\subtitlepunct}{\adddotspace}
\newcommand*{\exhibbibdaterangesep}{\addspace \bibstring{until} \addspace}%
%\DeclareDelimFormat{namelabeldelim}{\slash}
%%-----------------------
\DeclareBibliographyOption{width}[]{%
  \csuse{booltrue}{bbx:width}% 
  \setlength{\labwidthsameline}{#1}}
\DeclareBibliographyOption{publisher}[true]{%
  \csuse{bool#1}{bbx:publisher}}% 
\DeclareBibliographyOption[boolean]{jstor}[true]{%
  \settoggle{bbx:jstor}{#1}}
\DeclareBibliographyOption[boolean]{urn}[true]{%
  \settoggle{bbx:urn}{#1}}
\DeclareBibliographyOption[boolean]{arthist}[true]{%
  \settoggle{bbx:arthist}{#1}}
\DeclareBibliographyOption[boolean]{enddot}[true]{%
\settoggle{bbx:enddot}{#1}%
\renewcommand{\finentrypunct}{\adddot}}
\DeclareBibliographyOption{pagesfull}[true]{%
  \csuse{bool#1}{bbx:pagesfull}}
\ExecuteBibliographyOptions{jstor,urn,arthist}
%%-----------------------  
\DeclareEntryOption{tzugl}[true]{\csuse{bool#1}{cbx:tzugl}}

%---------------
\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat{subtitle}{#1}
\DeclareFieldFormat{booktitle}{#1}
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareFieldFormat[article,review]{year}{%
  \iffieldundef{arthist}
    {\mkbibparens{#1}}
    {#1}}
\DeclareFieldFormat[article,review]{date}{\mkbibparens{#1}}
\DeclareFieldFormat{booksubtitle}{#1}
\DeclareFieldFormat{titlecase}{#1}
\DeclareFieldFormat*{maintitle}{#1}
\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat{seriestitle}{#1}
\DeclareFieldFormat{pages}{%
  \ifbool{bbx:pagesfull}
    {\mkpageprefix[bookpagination]{#1}}
    {#1}%
  \ifboolexpr{test {\ifcitation} and not test {\ifblank{#1}}}
    {\global\toggletrue{cbx:citepages}}
    {}}
\DeclareFieldFormat{edition}{%
    \ifinteger{#1}
    {\textsuperscript{#1}}
    {\printtext[brackets]{#1}}}
\DeclareFieldFormat[inreference]{volume}{#1}
\DeclareFieldFormat{parens}{\mkbibparens{#1}}
\DeclareFieldFormat{brackets}{\mkbibbrackets{#1}}
\DeclareFieldFormat{urldate}{#1}
\DeclareFieldFormat{arthistdate}{%
  \thefield{arthistday}\adddot%
  \thefield{arthistmonth}\adddot}
\DeclareFieldFormat{superedition}{\textsuperscript{#1}}
\DeclareFieldFormat{eprint:urn}{%
  \textsc{urn}%
  \addcolon\space%
  \ifhyperref%
    {\href{http://www.nbn-resolving.org/#1}{\nolinkurl{#1}}}%
    {\nolinkurl{#1}}}
\DeclareFieldFormat{eprint:jstor}{%
  \textsc{jstor}%
  \addcolon\space%
  \ifhyperref%
    {\href{http://www.jstor.org/stable/#1}{\nolinkurl{#1}}}%
    {\nolinkurl{#1}}}
\DeclareFieldFormat{eprint:arthist}{%
  \textsc{h-arthist}%
  \addcolon\space%
  \ifhyperref%
    {\href{http://arthist.net/reviews/#1}{arthist.net/reviews/\nolinkurl{#1}}}%
    {arthist.net/reviews/\nolinkurl{#1}}}  
%-----------------------
\DeclareFieldAlias{jstor}{eprint:jstor}
\DeclareFieldAlias{urn}{eprint:urn}
\DeclareFieldAlias{arthist}{eprint:arthist}
%%-----------------------
\DeclareRedundantLanguages{german}{german,ngerman,austrian,naustrian}
\DeclareRedundantLanguages{english,american}{english,american,british,%
 canadian,australian,newzealand,USenglish,UKenglish}
\DeclareLanguageMapping{german}{arthistory-bonn-german}
\DeclareLanguageMapping{english}{arthistory-bonn-english}
%-----------------------
\DeclareSortingTemplate{shortseries}{\sort{\field{shortseries}}}
\DeclareSortingTemplate{shortjournal}{\sort{\field{shortjournal}}}
\DeclareSortingTemplate{nyt}{
  \sort{
    \field{presort}
  }
  \sort[final]{
    \field{sortkey}
  }
  \sort{
    \field{sortshorthand}
    \field{shorthand}
    \field{sortname}
    \field{author}
    \field{editor}
    \field{translator}
    \field{shorttitle}
    \field{title}
  }
  \sort{
    \field{sortyear}
    \field{year}
  }
  \sort{
    \field{sorttitle}
    \field{title}
  }
  \sort{
    \field{volume}
    \literal{0}
  }
}

%-----------------------     
\defbibcheck{shortseries}{% 
  \iffieldundef{shortseries}%
    {\skipentry}%
    {}%
 \iffieldundef{series}%
  {\skipentry}%
  {\ifcsdef{\strfield{series}}%
    {\skipentry}%
    {\savefieldcs{series}{\strfield{series}}}%
  }} 
\defbibcheck{shortjournal}{%
  \iffieldundef{shortjournal}%
    {\skipentry}%
    {}%
  \iffieldundef{journaltitle}%
    {\skipentry}%
    {\ifcsdef{\strfield{journaltitle}}%
    {\skipentry}%
    {\savefieldcs{journaltitle}{\strfield{journaltitle}}}%
    }}
%-----------------------     
\newbibmacro*{bbx:parunit}{%
 \ifbibliography{%
 \setunit{\bibpagerefpunct}%
 \newblock
 \usebibmacro{pageref}%
 \clearlist{pageref}%
 \setunit{\addcomma\newline\nobreak}%
 }%
 {\setunit{\addcomma\addspace}}}
 %----------------------- 
\renewbibmacro*{eprint}{%
 \usebibmacro{bbx:parunit}%
 \iffieldundef{eprinttype}%
 {\printfield{eprint}}%
 {\printfield[eprint:\strfield{eprinttype}]{eprint}}}
%----------------------- 
\newbibmacro*{jstor}{%
 \iffieldundef{jstor}%
 {}%
 {\usebibmacro{bbx:parunit}%
 \printfield{jstor}}}
%----------------------- 
\newbibmacro*{urn}{%
 \iffieldundef{urn}
 {} 
 {\usebibmacro{bbx:parunit}%
 \printfield{urn}}}
%----------------------- 
\newbibmacro*{arthist}{%
 \iffieldundef{arthist}
 {} 
 {\usebibmacro{bbx:parunit}%
 \printfield{arthist}}}
%-----------------------
\renewbibmacro*{url+urldate}{%
 \usebibmacro{bbx:parunit}%
 \iffieldundef{url}{}{\printfield{url}}}
%----------------------- 
\renewbibmacro*{doi+eprint+url}{%
 \usebibmacro{bbx:parunit}%
 \iftoggle{bbx:doi}{\printfield{doi}}{}%
 \iftoggle{bbx:eprint}{\usebibmacro{eprint}}{}%
 \iftoggle{bbx:jstor}{\usebibmacro{jstor}}{}%
 \iftoggle{bbx:urn}{\usebibmacro{urn}}{}%
 \iftoggle{bbx:url}{\usebibmacro{url+urldate}}{}%
 \iftoggle{bbx:arthist}{\usebibmacro{arthist}}{}}
%-----------------------
\renewbibmacro*{in:}{%
\newunit
  \printtext{%
    \bibstring{in}\intitlepunct}}
%-----------------------  
\newbibmacro{labelwidthbib}{%
  \begingroup%
  \DeclareFieldFormat{bibhyperref}{##1}%
  \csuse{blx@hook@cite}%
  \csuse{blx@hook@citekey}%
  \defcounter{maxnames}{\blx@maxcitenames}%
  \usebibmacro{cite:normal}%
  \endgroup%
} 
%-----------------------
\newbibmacro{kicklabel}{% 
  \sbox\arthist@labelbox{\usebibmacro{labelwidthbib}}%
  \global\togglefalse{blx@insert}%
  \ifdim1.1\wd\arthist@labelbox>%
  \labwidthsameline\leavevmode\newline\fi%
}
%-----------------------
\newbibmacro{labelwidthfield}[1]{%
  \begingroup
  \DeclareFieldFormat{bibhyperref}{##1}%
  \csuse{blx@hook@cite}%
  \csuse{blx@hook@citekey}%
  \defcounter{maxnames}{\blx@maxcitenames}%
  \printfield{#1}%
  \endgroup
} 
%-----------------------
\newbibmacro{kicklabelfield}[1]{% 
  \sbox\arthist@labelbox{\usebibmacro{labelwidthfield}{#1}}%
  \global\togglefalse{blx@insert}%
  \ifdim.9\wd\arthist@labelbox>%
  \labwidthsameline\leavevmode\newline\fi
}
%-----------------------
\renewbibmacro*{title}{%
\ifboolexpr{
test {\iffieldundef{title}}
and
test {\iffieldundef{subtitle}}
}
{}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}%
\newunit}%
\iffieldundef{titleaddon}%
{}
{\setunit{\titleaddondelim}%
\printfield{titleaddon}}}
%-----------------------
\renewbibmacro*{booktitle}{%
\ifboolexpr{
test {\iffieldundef{booktitle}}
and
test {\iffieldundef{booksubtitle}}
}
{}
{\printtext[booktitle]{%
\printfield[titlecase]{booktitle}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{booksubtitle}}%
\newunit}%
\iffieldundef{booktitleaddon}%
{}
{\setunit{\titleaddondelim}%
\printfield{booktitleaddon}}}
%-----------------------
\renewbibmacro*{maintitle}{%
\ifboolexpr{
test {\iffieldundef{maintitle}}
and
test {\iffieldundef{mainsubtitle}}
}
{}
{\printtext[maintitle]{%
\printfield[titlecase]{maintitle}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{mainsubtitle}}%
\newunit}%
\iffieldundef{maintitleaddon}%
{}
{\setunit{\titleaddondelim}%
\printfield{mainttitleaddon}}}
%-----------------------
\newbibmacro{journal+number+year}{%
 \usebibmacro{journal}%
 \iffieldundef{volume}
   {\setunit{\addspace}}
   {\setunit{\jourvoldelim}%
   \printfield{volume}}%
  \iffieldundef{number}
    {}
    {\newunit\bibstring{number}%
     \setunit{\addthinspace}%
     \printfield{number}}% 
  \iffieldundef{issue}
    {}
    {\setunit{\volissuedelim}
     \printfield{issue}}% 
 \setunit{\addspace}%
\usebibmacro{pubstate+year}}
%-----------------------
\renewbibmacro*{addendum+pubstate}{\printfield{addendum}}
%-----------------------    
\newbibmacro*{related:reviewof}[1]{%
 \usebibmacro*{related:default}{#1}}
%-----------------------    
\newbibmacro{savestuff}{%
 \savename{editor}{\bbx@lasteditor}%
 \savefield{namehash}{\bbx@lasthash}%
 \savefield{booktitle}{\bbx@lastbooktitle}}
%----------------------- 
\DeclareLabeldate{%
  \field{date}
  \field{year}
  \field{eventdate}
  \field{origdate}
  \field{urldate}
  \field{pubstate}
  \literal{nodate}
}
\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\printnames{author}%
     \iffieldundef{authortype}
       {}
       {\setunit{\addcomma\space}%
        \usebibmacro{authorstrg}}}
    {}}
%-----------------------
\renewbibmacro*{editor}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames[editor]{editor}%
     \setunit{\space}%
     \usebibmacro{editorstrg}%
     \clearname{editor}}
    {}}
%-----------------------
\renewbibmacro*{translator}{%
  \ifboolexpr{
    test \ifusetranslator
    and
    not test {\ifnameundef{translator}}
  }
    {\printnames{translator}%
     \setunit{\addcomma\space}%
     \usebibmacro{translatorstrg}%
     \clearname{translator}}
    {}}
%-----------------------      
\newbibmacro{thesis+date}{%
  \iffieldequalstr{thesistype}{tzugl}%
    {\bibstring{tzugl}}%
    {\ifentrytype{thesis}%
      {}%
      {\bibstring{zugl}}}%
  \addspace%
\printlist{institution}%
    \newunit%
 \printfield{type}%
 \newunit%
 \ifentrytype{thesis}%
  {\usebibmacro{pubstate+year}}%
  {\printthesisdate}%
}
%-----------------------
\newbibmacro*{series+number+diss+date}{%
\setunit{\addspace}%
  \iffieldundef{series}
    {\iflistundef{institution}
    {}
    {\printtext[parens]{\usebibmacro{thesis+date}}}}
  {\printtext[parens]{\printfield{series}%
\newunit
  \printfield{number}%
  \iflistundef{institution}
  {}
  {\setunit*{\addsemicolon\addspace}%
  \usebibmacro{thesis+date}}}}%
 \newunit}
%-----------------------  
\newbibmacro{pubstate+year}{%
 \iffieldundef{pubstate}%
  {\iffieldundef{arthist}
    {\printdate}
     {\printarthistdate\printfield{year}}}%
 {\printfield{pubstate}}}
%-----------------------   
\renewbibmacro*{series+number}{%
\setunit{\addspace}%
  \iffieldundef{series}
  {}
  {\printtext[parens]{\printfield{series}%
  \newunit%
  \printfield{number}}}%
  \newunit}
%-----------------------   
\renewbibmacro*{publisher+location+date}{%
  \printlist{location}%
  \ifbool{bbx:publisher}
    {\iflistundef{publisher}
      {}
      {\setunit{\addcolon\addspace}%
	  \printlist{publisher}}}%
    {\setunit*{\space}}%
  %\usebibmacro{pubstate+year}%
  \usebibmacro{edition+year}%
\newunit}
%----------------------- 
\newbibmacro*{maintitle+volume}{%
 \iffieldundef{volume}
	  {}
	  {\printfield{volume}%
           \printfield{part}%
           \setunit{\addcolon\space}}%
           \usebibmacro{maintitle}%
	\newunit\newblock}
%----------------------- 
\newbibmacro*{inreference:maintitle+volume}{%
\usebibmacro{maintitle}%
  \iffieldundef{volume}%
    {}%
    {\setunit{\space}%
    \printfield{volume}}%
\newunit\newblock}
%----------------------- 
\newbibmacro*{ineditor}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames[editor]{editor}%
     \setunit{\space}%
     \usebibmacro{editorstrg}%
     \clearname{editor}%
     \setunit*{\nametitledelim}}
    {}}
%-----------------------
\newbibmacro*{edition+year}{%
  \iffieldnum{edition}%
    {\setunit*{\addspace}%
    \printfield[superedition]{edition}%
   \global\clearfield{edition}%
    \usebibmacro{pubstate+year}}%
  {\usebibmacro{pubstate+year}%
  \setunit{\addspace}%
 % \printtext[brackets]{
  \printfield{edition}%
  %}%
  \newunit}
}
%-----------------------     
\newbibmacro*{volume-volumes}{%
\iffieldundef{volume}
  {\printfield{volumes}}
  {}}
%-----------------------     
\newbibmacro*{exhibcat}{%
  \printfield{eventtitle}%
  \iffieldundef{eventsubtitle}%
    {}%
    {\setunit{\subtitlepunct}%
     \printfield{eventsubtitle}}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \setunit{\addspace}%
  \printtext[parens]{\bibstring{exhibcatalog}%
  \setunit{\addspace}%
  \iffieldundef{eventtitleaddon}
  {\usebibmacro{exhibfirstsecondthird}}%
  {\printfield{eventtitleaddon}}}%
  \newunit%
 }
 
 \newbibmacro*{exhibfirstsecondthird}{%
 \usebibmacro{exhibfirst}%
 \iffieldundef{exhibsecondlocation}%
  {}%
  {\setunit{\addsemicolon\addspace}%
  \usebibmacro{exhibsecond}%
  \iffieldundef{exhibthirdlocation}%
    {}%
    {\setunit{\addsemicolon\addspace}%
    \usebibmacro{exhibthird}}}}
  
 \newbibmacro*{exhibfirst}{%
 \printfield{exhibfirstlocation}%
  \newunit%
  \iffieldundef{exhibfirstmuseum}%
  {}%
  {\printfield{exhibfirstmuseum}}%
  \newunit%
  \renewcommand*{\bibdaterangesep}{\exhibbibdaterangesep}%
  \printexhibfirstdate}
  
\newbibmacro*{exhibsecond}{%
  \printfield{exhibsecondlocation}%
  \newunit%
  \iffieldundef{exhibsecondmuseum}%
  {}%
  {\printfield{exhibsecondmuseum}}%
  \newunit%
  \renewcommand*{\bibdaterangesep}{\exhibbibdaterangesep}%
  \printexhibseconddate}

\newbibmacro*{exhibthird}{%
  \printfield{exhibthirdlocation}%
  \newunit%
  \iffieldundef{exhibthirdmuseum}%
  {}%
  {\printfield{exhibthirdmuseum}}%
  \newunit%
  \renewcommand*{\bibdaterangesep}{\exhibbibdaterangesep}%
  \printexhibthirddate}
%-----------------------     
\DeclareBibliographyAlias{collection}{book}
\DeclareBibliographyAlias{catalog}{book}
\DeclareBibliographyAlias{incollection}{inbook}
\DeclareBibliographyAlias{incatalog}{inbook}
\DeclareBibliographyAlias{review}{article}
%-----------------------
\DeclareBibliographyDriver{article}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \setunit{\nametitledelim}\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{title}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bytranslator+others}%
  \newunit\newblock
  \printfield{version}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{journal+number+year}%
  \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/editor}%
  \setunit{\nametitledelim}\newblock
\usebibmacro{maintitle+title}%
      \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\usebibmacro{volume-volumes}%
\setunit{\addspace}%
  \usebibmacro{series+number+diss+date}%
   \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{exhibcatalog}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
\usebibmacro{exhibcat}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
\usebibmacro{volume-volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \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{reference}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{maintitle+title}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
\usebibmacro{volume-volumes}%
  \usebibmacro{series+number}%
  \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{inbook}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\nametitledelim}\newblock
  \usebibmacro{title}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
    \usebibmacro{ineditor}%
 % \usebibmacro{bybookauthor}%
%  \newunit\newblock
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
\usebibmacro{volume-volumes}%
\usebibmacro{series+number}%
  \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{inreference}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\nametitledelim}\newblock
  \usebibmacro{title}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
    \usebibmacro{ineditor}%
 % \usebibmacro{bybookauthor}%
%  \newunit\newblock
  \usebibmacro{inreference:maintitle+volume}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
\usebibmacro{volume-volumes}%
\usebibmacro{series+number}%
  \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{inexhibcatalog}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\nametitledelim}\newblock
  \usebibmacro{title}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
\usebibmacro{exhibcat}%
  \newunit\newblock
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
\usebibmacro{volume-volumes}%
  \usebibmacro{series+number}%
  \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{thesis}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author}%
  \setunit{\nametitledelim}\newblock
  \usebibmacro{title}%
  \newunit\newblock
  \usebibmacro{byauthor}%
 % \printtext[parens]{%
	\usebibmacro{thesis+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}}
%-----------------------  
\defbibenvironment{bibliography}%
  {\list%
   {\usebibmacro{labelwidthbib}}%
   {\setlength{\labelwidth}{\labwidthsameline}%
     \setlength{\leftmargin}{\labelwidth}%
     \setlength{\labelsep}{\biblabelsep}%
     \addtolength{\leftmargin}{\labelsep}%
     \setlength{\itemsep}{\bibitemsep}%
     \setlength{\parsep}{\bibparsep}%
     \renewcommand*{\makelabel}[1]{##1\hss}}}%
   {\endlist}%
   {\item\usebibmacro{kicklabel}}
 %-----------------------
\def\do#1{%
  \defbibenvironment{#1}
    {\list%
       {\printfield{#1}}%
       {\setlength{\labelwidth}{\labwidthsameline}%
        \setlength{\leftmargin}{\labelwidth}%
        \setlength{\labelsep}{\biblabelsep}%
        \addtolength{\leftmargin}{\labelsep}%
        \setlength{\itemsep}{\bibitemsep}%
        \setlength{\parsep}{\bibparsep}%
        \renewcommand*{\makelabel}[1]{####1\hss}}}
    {\endlist}
    {\item\usebibmacro{kicklabelfield}{#1}}%
}
\docsvlist{shortjournal,shortseries}

\endinput
%% End of file `arthistory-bonn.bbx'.
