% uni-wtal-lin.bbx, v 0.2 2013-08-09, Carsten A. Dahlmann (Ace@Dahlmann.net) % based on authoryear %% requires authoryear \RequireBibliographyStyle{authoryear} %% Book \DeclareBibliographyDriver{book}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% \setunit{\labelnamepunct}\newblock \usebibmacro{maintitle+title}% \newunit \iffieldundef{maintitle} {\printfield{volume}% \printfield{part}} {}% \newunit \newunit\newblock \usebibmacro{byeditor+others}% \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}% \setunit{\bibpagespunct}\newblock \newunit\newblock \iffieldundef{series} {}% {\usebibmacro{series+number}}% \usebibmacro{finentry}} %% InBook \DeclareBibliographyDriver{inbook}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/translator+others}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{in:}% \usebibmacro{bybookauthor}% \setunit{\titleaddonpunct}\newblock \usebibmacro{maintitle+booktitle}% \newunit\newblock \iffieldundef{maintitle} {\printfield{volume}% \printfield{part}} {}% \newunit\newblock \usebibmacro{byeditor+others}% \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}% \setunit{\bibpagespunct} \newunit\newblock \iffieldundef{series} {}% {\usebibmacro{series+number}}% \usebibmacro{finentry}} %% Collection \DeclareBibliographyDriver{collection}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{editor+others}% \setunit{\labelnamepunct}\newblock \usebibmacro{maintitle+title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \iffieldundef{maintitle} {\printfield{volume}% \printfield{part}} {}% \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}% \setunit{\bibpagespunct}\newblock \newunit\newblock \iffieldundef{series} {}% {\usebibmacro{series+number}}% \usebibmacro{finentry}} %% InCollection \DeclareBibliographyDriver{incollection}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/translator+others}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit \printlist{language}% \newunit\newblock \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{in:}% \usebibmacro{byeditor+others} \setunit{\titleaddonpunct}\newblock \usebibmacro{maintitle+booktitle}% \newunit \iffieldundef{maintitle} {\printfield{volume}% \printfield{part}} {}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{publisher+location+date}% \newunit\newblock \usebibmacro{chapter+pages}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \usebibmacro{addendum+pubstate}% \setunit{\bibpagerefpunct}\newblock \usebibmacro{pageref}% \setunit{\bibpagespunct} \newunit\newblock \iffieldundef{series} {}% {\usebibmacro{series+number}} \usebibmacro{finentry}} %% Article \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}% \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}} %% Unpublished \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 \iftoggle{bbx:url} {\usebibmacro{url+urldate}} {}% \newunit\newblock \usebibmacro{addendum+pubstate}% \setunit{\bibpagespunct}% \usebibmacro{location+date}% \setunit{\bibpagerefpunct}\newblock \usebibmacro{pageref}% \newunit\newblock \usebibmacro{finentry}} %% use option edsuper for turning superscripted edition on/off \newbool{bbx:editionstring} \newbool{bbx:edsuper} \DeclareBibliographyOption{editionstring}[true]{% \csuse{bool#1}{bbx:editionstring}} \DeclareBibliographyOption{edsuper}[true]{% \csuse{bool#1}{bbx:edsuper}} %% DeclareFieldFormat edition \DeclareFieldFormat{edition}{% \ifinteger{#1} {\mkbibordedition{#1}~\bibstring{edition}} {\ifbool{bbx:editionstring} {#1\addspace\bibstring{edition}\isdot} {#1\isdot}}} %% DeclareFieldFormat edition:super \DeclareFieldFormat{edition:super}{% \ifinteger{#1} {\mkbibsuperscript{#1}} {\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}}} %% Test, if field is integer \newcommand{\bbx@iffieldinteger}[1]{% \iffieldundef{#1} {\@secondoftwo} {\edef\@tempa{\strfield{#1}}% \expandafter\ifinteger\expandafter{\@tempa}}} %% for position of edition at the end: %% if option edsuper true and %%%% if field integer, do nothing %%%% else print edition %% else print edition %% \renewbibmacro*{publisher+location+date}{% \printlist{location}% \iflistundef{publisher} {\setunit*{\addcomma\space}} {\setunit*{\addcolon\space}}% \printlist{publisher}% \setunit*{\addcomma\space}% \usebibmacro{date}% \ifbool{bbx:edsuper} {\bbx@iffieldinteger{edition} {}% {\printfield{edition}% \newunit}}% {\printfield{edition}% \newunit}} %% for position of edition (superscripted) at the beginning: %% if option edsuper true and %%%% if field integer, print edition superscripted %%%% else do nothing %% else do nothing %% \renewbibmacro*{date+extrayear}{% \iffieldundef{year} {}% {\printtext[parens]{% \printfield{issue}% \setunit*{\addspace}% {\printdateextra}% {\ifbool{bbx:edsuper}% {\bbx@iffieldinteger{edition}% {\printfield[edition:super]{edition}}% {}}% {}}% }}}% %% put series and number into parenthesis \renewbibmacro*{series+number}{% \printtext[parens]{=\addhpthinspace\printfield{series}% \setunit*{\addspace}% \printfield{number}\nopunct% }\setunit*{\addspace}\nopunct} %% no comma before (eds.) \renewbibmacro*{bbx:editor}[1]{% \ifboolexpr{ test \ifuseeditor and not test {\ifnameundef{editor}} } {\usebibmacro{bbx:dashcheck} {\bibnamedash} {\printnames{editor}% \setunit{\addspace}% \usebibmacro{bbx:savehash}}% \usebibmacro{#1}% \clearname{editor}% \setunit{\addspace}}% {\global\undef\bbx@lasthash \usebibmacro{labeltitle}% \setunit*{\addspace}}% \usebibmacro{date+extrayear}}% % \usebibmacro{year}}% %% byeditor: first-last (eds.) \renewbibmacro*{byeditor+others}{% \ifnameundef{editor} {} {\printnames[byeditor]{editor}% \setunit{\addspace}% \usebibmacro{editorstrg}% \clearname{editor}% \newunit}% \usebibmacro{byeditorx}% \usebibmacro{bytranslator+others}} %% deactivate series for journal \renewbibmacro*{journal+issuetitle}{% \usebibmacro{journal}% \setunit*{\addspace}% \usebibmacro{volume+number+eid}% \setunit{\addspace}% \usebibmacro{issue+date}% \setunit{\addcolon\space}% \usebibmacro{issue}% \newunit} %% renew volume+number: colon as delimiter \newbibmacro*{volume+number+eid}{% \printfield{volume}% \setunit*{\addcolon\space}% \printfield{number}% \setunit{\addcomma\space}% \printfield{eid}} %% listing of names: name/name/final name \renewcommand{\multinamedelim}[0]{\addslash}% \renewcommand*{\finalnamedelim}[0]{\addslash}% %% change of german abbreviations \DefineBibliographyStrings{german}{% and={\&}, editor={\addspace\mkbibparens {Hg\adddot}}, editors={\addspace\mkbibparens {Hgg\adddot}}, byeditor={Hg\addcolon\thinspace}, andothers={et\addabbrvspace al\adddot}, } %% change of english abbreviations \DefineBibliographyStrings{english}{% and={\&}, editor={\addspace\mkbibparens {ed\adddot}}, editors={\addspace\mkbibparens {eds\adddot}}, byeditor={ed\addcolon\thinspace}, andothers={et\addabbrvspace al\adddot}, } %% no quotation marks for article, inbook, ... \DeclareFieldFormat [article,inbook,incollection,inproceedings,patent,thesis,unpublished] {title}{#1\isdot} %% colon after the word "in" \renewbibmacro*{in:}{% \printtext{% \bibstring{in}\addcolon\space}} %% colon for "editor:" after "in:" \newcommand*{\titleaddonpunct}{\addcolon\space} %% no "visited:" before urldate \DeclareFieldFormat{urldate}{\mkbibparens{#1}} %% vertical spacing between entrys \setlength{\bibitemsep}{0.8\baselineskip} %% load style defaults \ExecuteBibliographyOptions{% maxnames=2, maxbibnames=99, dashed=false, edsuper=true, }% \endinput