% biblatex-juradiss.cbx, Tobias Schwan 2012
% Ã„nderungen von Herbert VoÃŸ -- 2020

\ProvidesFile{biblatex-juradiss.cbx}[2020/10/01 v0.23 biblatex citation style]
% Release Notes can be found in the README.txt

\RequireCitationStyle{authortitle-dw}

\ExecuteBibliographyOptions{%
  %nopublisher=false,
  namefont=italic,% Format fÃ¼r Nachnamen (biblatex-dw)
  firstnamefont=italic,% Format fÃ¼r Vornamen (biblatex-dw)
  edstringincitations=false,% Kein (Hrsg) im FuÃŸnoten-Zitat (biblatex-dw)
}%

% Befehl fÃ¼r Querverweise
\newcommand{\qverweis}[1]{\ref{#1}, S.\ppspace\pageref{#1}}

% Kein S. fÃ¼r die konkrete Fundstelle, dafür in Klammern:
%\DeclareFieldFormat[article]{postnote}{\printfield{\mkfirstpage{pages}} \mkbibparens{#1}}
\DeclareFieldFormat[article]{postnote}{\printfield{pages} \mkbibparens{#1}}  
\DeclareFieldFormat[periodical]{postnote}{\printfield{pages} \mkbibparens{#1}}
\DeclareFieldFormat[incollection]{postnote}{\printfield{pages} \mkbibparens{#1}}
% Kein S. fÃ¼r die konkrete Fundstelle
\DeclareFieldFormat[legal]{postnote}{#1}
\DeclareFieldFormat[jurisdiction]{postnote}{#1}

% Trennzeichen zwischen Autor und Titel in Zitaten
\renewcommand*{\nametitledelim}{\addcomma\space}%

% Weiche fÃ¼r die unterschiedlichen Entrytypes
\renewbibmacro*{cite:title}{%
  \iffieldundef{entrysubtype}%
    {\usedriver{}{cite:\thefield{entrytype}}}%
    {\usedriver{}{cite:\thefield{entrytype}:\thefield{entrysubtype}}}%
}
% Schmaler Abstand zwischen Initialen des Vor- und Nachnamens
\DeclareNameFormat{labelname}{%
  \ifcase\value{uniquename}%
    \usebibmacro{name:given-family}{\namepartfamily}{\namepartprefixi}{\relax}{\namepartsuffix}%
  \or
    \ifuseprefix
      {\usebibmacro{name:given-family}{\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffixi}}%
      {\usebibmacro{name:given-family-init}{\namepartfamily}{\namepartgiveni}{\namepartprefixi}{\namepartsuffixi}}%
  \or
    \usebibmacro{name:given-family-init}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}%
  \fi
  \usebibmacro{name:andothers}%
}%

% Schmaler Abstand zwischen Initialen des Vornamens und Nachnamens
\newbibmacro*{name:given-family-init}[4]{%
  \usebibmacro{name:delim}{#2#3#1}%
  \usebibmacro{name:hook}{#2#3#1}%
  \ifblank{#2}{}{\mkbibnamegiven{#2}\isdot\addnbthinspace}%		<--- schmaler Abstand
  \ifblank{#3}{}{%
    \mkbibnameprefix{#3}\isdot
    \ifpunctmark{'}%
      {}%
      {\ifuseprefix{\bibnamedelimc}{\bibnamedelimd}}}%
  \mkbibnamefamily{#1}\isdot
  \ifblank{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
}%

% Schmaler Abstand zwischen Initialen des Vor- und Nachnamens  
% Kursive Schrift inkl. hochgestellter Auflagenzahl bei Kommentaren  
\DeclareNameFormat[commentary]{editor}{%
  \iffootnote{%
    \ifcase\value{uniquename}
      \usebibmacro{name:given-family}{\namepartfamily}{\namepartprefixi}{\relax}{\namepartsuffix}%
    \or
      \ifuseprefix
        {\usebibmacro{name:given-family}{\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffixi}}%
        {\usebibmacro{name:given-family-init}{\namepartfamily}{\namepartgiveni}{\namepartprefixi}{\namepartsuffixi}}%<--- schmaler Abstand
    \or
      \usebibmacro{name:given-family-init}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}%
    \fi%
    \usebibmacro{name:andothers}%
    \ifnumequal{\value{listcount}}{\value{listtotal}}% 			<--- nur nach dem letzten Namen
      {\iffieldequalstr{entrytype}{commentary}% 					<--- Wenn es sich um einen Kommentar handelt
        {\mkbibemph{\printfield[edition:super]{edition}}}% 		<--- Auflagenzahl hinzufügen
        {}}%
      {}%
    }%
    {\mkbibemph{%
      \ifgiveninits
        {\usebibmacro{name:family-given}{\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffix}}%
        {\usebibmacro{name:family-given}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}}%
      \usebibmacro{name:andothers}%
    }}%
}%
  
\DeclareFieldFormat{shorthand}{%
  \ifbool{bbx:shorthandacro}%
    {\ifbool{bbx:acronym}%
      {\mkbibacro{#1}\isdot}%
      {#1\isdot}}%
    {\iffieldequalstr{entrytype}{commentary}% 					<--- Wenn es sich um einen Kommentar handelt
      {\textit{#1\printfield[edition:super]{edition}}}% 		<--- Auflagenzahl hinzufügen
      {\mkbibemph{#1}\isdot}%
    }%
}% 

% Shorthand ersetzt bei Kommentaren nicht den Autor, sondern den Herausgeber
\renewbibmacro*{cite:normal}{%
  \iffieldequalstr{entrytype}{commentary}
  {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}%
       {\usebibmacro{cite:ibid}}%
       {\usebibmacro{cite:title}\usebibmacro{cite:save}}%
  }%
  {\iffieldundef{shorthand}%
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}%
        {\usebibmacro{cite:ibid}}%
        {\ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}%
                                \AND\NOT\iffirstonpage}%
          {\usebibmacro{cite:idem}%
           \usebibmacro{cite:title}%
           \usebibmacro{cite:save}}%
          {\ifnameundef{labelname}%
            {}%
            {\usebibmacro{cite:name}}%
             \usebibmacro{cite:title}}%
           \ifbool{cbx:omiteditor}%
             {}%
             {\ifnameundef{labelname}%
               {\newunit
                \usebibmacro{cite:byeditor}}%
               {}}%
         \usebibmacro{cite:save}}%
    }%
    {\ifbool{cbx:shorthandibid}%
        {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}%
          {\usebibmacro{cite:ibid}}%
          {\usebibmacro{cite:shorthand}}}%
        {\usebibmacro{cite:shorthand}}}%
  }%	
}%
	   
% Das Feld, in dem sich die Anfangsseite befindet, ohne führendes S.~ 
% für Artikel, Periodika, Festschriftbeiträge und Rechtsprechung.

\DeclareFieldFormat[article]{pages}{#1}
\DeclareFieldFormat[periodical]{pages}{#1}
\DeclareFieldFormat[incollection]{pages}{#1}
\DeclareFieldFormat[jurisdiction]{pages}{#1}

% Falls bei pages mit Seitenbereichen gearbeitet wird, also 
% z.B. pages = {797-900}, dann wird beim zitieren nur die Anfangsseite
% ausgegeben.
\AtEveryCite{%
  \DeclareFieldFormat[article]{pages}{\mkfirstpage{#1}}%
  \DeclareFieldFormat[periodical]{pages}{#1}%
  \DeclareFieldFormat[incollection]{pages}{#1}%
  \DeclareFieldFormat[jurisdiction]{pages}{#1}%
}%



% Fußnotenformat für Artikel:
\DeclareBibliographyDriver{cite:article}{%
  \printfield{journaltitle}%
  \addspace
  \printfield{year}%
  \iffieldundef{postnote}%
    {\iffieldundef{pages}{}%
	  {\addcomma\space%
       \printfield{pages}}}%
    {}%
}

\DeclareBibliographyDriver{cite:article:other}{%
  \printfield{journaltitle}%
  \addspace%
  \printfield{year}%
  \iffieldundef{postnote}%
    {\iffieldundef{pages}{}%
	  {\addcomma\space%
       \printfield{pages}}}%
    {}%
}

\DeclareBibliographyDriver{cite:article:newspaper}{%
  \printfield{journaltitle}%
  \addspace
  v.\addspace
  \printdate
  \addcomma\space
  \iffieldundef{postnote}%
    {\addcomma\space
    \printfield{pages}}%
    {}%
}

% Fußnotenformat für Festschriften:
\DeclareBibliographyDriver{cite:incollection}{%
  \usebibmacro{in:}%
	  {% 
		\iffieldundef{shorttitle}%     
			{\printfield{booktitle}}%
			{\printfield{shorttitle}}%
		}%
	\iffieldundef{postnote}%
     {\addcomma\space%
     \printfield{pages}}%
     {}%
}%

% Kursive Schrift für Bearbeiter von Kommentaren
\DeclareFieldFormat[commentary]{prenote}{\mkbibemph{#1}\addcomma}%

% Darstellung der Kommentar-Herausgeber in den Fußnoten
\DeclareNameFormat[commentary]{labelname}{%  
  \ifcase\value{uniquename}%
    \usebibmacro{name:given-family}{\namepartfamily}{\namepartprefixi}{\relax}{\namepartsuffix}%
  \or
    \ifuseprefix
      {\usebibmacro{name:given-family}{\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffixi}}%
      {\usebibmacro{name:given-family-init}{\namepartfamily}{\namepartgiveni}{\namepartprefixi}{\namepartsuffixi}}%	<--- schmaler Abstand
  \or
    \usebibmacro{name:given-family-init}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}%
  \fi
  \usebibmacro{name:andothers}%
  \ifnumequal{\value{listcount}}{\value{listtotal}}% 			<--- nur nach dem letzten Namen
    {\mkbibemph{\printfield[edition:super]{edition}}}% 		<--- Auflagenzahl hinzufügen
    {}%
}

% Fußnotenformat für Kommentare:
\DeclareBibliographyDriver{cite:commentary}{%
  \usebibmacro{in:}%
  \iffieldundef{shorthand}%
    {\printnames{editor}}%
  {\ifbool{cbx:shorthandibid}%
     {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}%
       {\usebibmacro{cite:ibid}}%
       {\usebibmacro{cite:shorthand}}}%
     {\usebibmacro{cite:shorthand}}}%
}%
  
% Hochgestellte Zahl bei Kommentaren soll klein sein
\DeclareFieldFormat{edition:super}{% für Option 'edsuper'
  \ifinteger{#1}%
    {\textsuperscript{\tiny{#1}}}% <---- \tiny{}
    {\blxdw@warning@noline{%
      The 'edition' field of entry\MessageBreak
      '\abx@field@entrykey' is not an integer.\MessageBreak
      The edition will not be printed as\MessageBreak
      superscript. Instead, the 'edition'\MessageBreak
      field is printed completely}}}%

% Fußnotenformat für books:
\DeclareBibliographyDriver{cite:book}{%
  \ifsingletitle{}{%
    \iffieldundef{shorttitle}%     
      {\printfield{title}}%		
	  {\printfield{shorttitle}}%	
    }%
}%

% Fußnotenformat für Periodika:
\DeclareBibliographyDriver{cite:periodical}{%
  \printfield{journaltitle}%
  \setunit*{\addspace}%
  \printfield{volume}%
  \addspace%
  \mkbibparens{\printfield{year}}%
  \iffieldundef{postnote}%
    {\addcomma\space
     \printfield{pages}}%
    {}%
}%

% Fußnotenformat für Online-Quellen:
\DeclareBibliographyDriver{cite:online}{%
  \iffieldundef{shorttitle}%
    {\ifsingletitle{}{\printfield{title}}}%
    {\printfield{shorttitle}}%
}%
  
% Aktenzeichen von Urteilen in runden Klammern  
\DeclareFieldFormat[jurisdiction]{sign}{\mkbibparens{#1}}

\DeclareBibliographyDriver{cite:jurisdiction}{%
  \printfield{decision}\space%Urteil oder Beschluss
  v\adddot\addspace
  \printdate\addspace
  \printfield{sign}% Aktenzeichen
  \iffieldundef{officialvolume}%Primaere Fundstelle (Name und Jahr) vorhanden?
    {\nopunct}%
	{\space
    \printfield{officialvolume}}%
  \iffieldundef{postnote}{%Angabe einer konkreten Fundstelle?
    \iffieldundef{officialvolume}{}{%
	  \iffieldundef{officialpages}{}{%
        \addcomma\space
        \printfield{officialpages}}}% Erste Seite der primären Fundstelle 
    \iffieldundef{journaltitle}{}{%Sekundäre Fundstelle vorhanden?
      \addspace\mkbibparens{%
	    =\space
	    \printfield{journaltitle}\space%Zeitschriftentitel
	    \printfield{journalyear}\addcomma\space%Zeitschriftenjahrgang
	    \printfield{pages}}%Erste Seite der Zeitschriftenfundstelle
	}%
	\iffieldundef{decisionname}{}{%Entscheidungsname vorhanden?
    \addspace--\addnbspace\printfield{decisionname}\addnbspace--}}%
  {}% 
}

\DeclareFieldFormat[jurisdiction]{postnote}{%
  \iffieldundef{officialpages}%
    {#1}%Bei fehlender erster Seite, zB juris, keine Klammern um konkrete Fundstelle
	{\printfield{officialpages}\addspace% Erste Seite des Urteils in der Entscheidungssammlung
    \mkbibparens{#1}}%Seitenzahl der konkreten Fundstelle in Klammern
  \iffieldundef{journaltitle}{}{%
    \addspace\mkbibparens{%
	  =\space
	  \printfield{journaltitle}\space
	  \printfield{journalyear}\addcomma\space
	  \printfield{pages}%
	}%
  }%
  \iffieldundef{decisionname}{}{%
    \addspace--\addnbspace\printfield{decisionname}\addnbspace--}%
}%

% Für Parlaments- und Verwaltungsdokumente
\DeclareBibliographyDriver{cite:legal}{%
  \unspace% Nötig, da sonst wegen des fehlenden Autors ein verwaistes Leerzeichen verbleibt
  \printfield{journaltitle}%
  \addspace
  \printfield{journalsubtitle}%
  \addcomma
}%


\endinput



\DeclareStyleSourcemap{%
  \maps[datatype=bibtex]{%
    \map{
      \step[fieldsource=decision,       fieldtarget=usera]
      \step[fieldsource=sign,           fieldtarget=userb]
      \step[fieldsource=officialvolume, fieldtarget=userc]
      \step[fieldsource=officialpages,  fieldtarget=userd]
      \step[fieldsource=journalyear,    fieldtarget=usere]
      \step[fieldsource=decisionname,   fieldtarget=userf]
    }
  }
}
