von Gast » Di 7. Mär 2017, 10:13
Hier
\documentclass[11pt, a4paper, halfparskip]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[backend=biber,
style=authoryear,
isbn=false,
giveninits=true,
uniquename=init,]{biblatex}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\DeclareFieldFormat[incollection]{title}{#1}
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
\printtext[parens]{% <- space
\printfield{labelyear}%
\printfield{extrayear}}}}}
\AtEveryBibitem{\clearlist{publisher}}
\makeatletter
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\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{\printdelim{nameyeardelim}}}%
{\global\undef\bbx@lasthash
\usebibmacro{labeltitle}%
\setunit*{\printdelim{nonameyeardelim}}}%
\usebibmacro{date+extrayear}}
\makeatother
\newbibmacro*{in:editor+others}{%
\ifnameundef{editor}
{}
{\printnames{editor}%
\setunit{\addspace}%
\usebibmacro{editor+othersstrg}%
\clearname{editor}}}
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{in:editor+others}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\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}}
\begin{filecontents}{\jobname.bib}
@incollection{Name.2014,
author = {Name, Vorname},
title = {Der Beitrag aus dem Sammelband},
pages = {179--198},
volume = {4},
isbn = {978-3-9503401-6-7},
editor = {Edward D. Itor},
booktitle = {Titel des Sammelbands},
year = {2014},
address = {Ort}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Zitat.\footcite{Name.2014}
\printbibliography[heading=bibintoc, title=Literatur]
\end{document}
Der relevante Teil ist \newbibmacro*{in:editor+others} und \DeclareBibliographyDriver{incollection}. Das \renewbibmacro*{bbx:editor} davor ist für die Konsistenz.
Leider muss man für diese Änderung den Driver ändern, man hätte das auch mit
xpatch machen können.
\documentclass[11pt, a4paper, halfparskip]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[backend=biber,
style=authoryear,
isbn=false,
giveninits=true,
uniquename=init,]{biblatex}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\DeclareFieldFormat[incollection]{title}{#1}
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
\printtext[parens]{% <- space
\printfield{labelyear}%
\printfield{extrayear}}}}}
\AtEveryBibitem{\clearlist{publisher}}
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\usepackage{xpatch}
\xpatchbibmacro{bbx:editor}
{\setunit{\addcomma\space}}
{\setunit{\addspace}}
{}{\typeout{failed to patch bbx:editor}}
\newbibmacro*{in:editor+others}{%
\ifnameundef{editor}
{}
{\printnames{editor}%
\setunit{\addspace}%
\usebibmacro{editor+othersstrg}%
\clearname{editor}}}
\xpatchbibdriver{incollection}
{\usebibmacro{in:}}
{\usebibmacro{in:}%
\usebibmacro{in:editor+others}%
\setunit{\printdelim{nametitledelim}}\newblock}
{}{\typeout{failed to patch driver @incollection}}
\begin{filecontents}{\jobname.bib}
@incollection{Name.2014,
author = {Name, Vorname},
title = {Der Beitrag aus dem Sammelband},
pages = {179--198},
volume = {4},
isbn = {978-3-9503401-6-7},
editor = {Edward D. Itor},
booktitle = {Titel des Sammelbands},
year = {2014},
address = {Ort}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Zitat.\footcite{Name.2014}
\printbibliography[heading=bibintoc, title=Literatur]
\end{document}
Hier
[code]\documentclass[11pt, a4paper, halfparskip]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[backend=biber,
style=authoryear,
isbn=false,
giveninits=true,
uniquename=init,]{biblatex}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\DeclareFieldFormat[incollection]{title}{#1}
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
\printtext[parens]{% <- space
\printfield{labelyear}%
\printfield{extrayear}}}}}
\AtEveryBibitem{\clearlist{publisher}}
\makeatletter
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\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{\printdelim{nameyeardelim}}}%
{\global\undef\bbx@lasthash
\usebibmacro{labeltitle}%
\setunit*{\printdelim{nonameyeardelim}}}%
\usebibmacro{date+extrayear}}
\makeatother
\newbibmacro*{in:editor+others}{%
\ifnameundef{editor}
{}
{\printnames{editor}%
\setunit{\addspace}%
\usebibmacro{editor+othersstrg}%
\clearname{editor}}}
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{in:editor+others}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\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}}
\begin{filecontents}{\jobname.bib}
@incollection{Name.2014,
author = {Name, Vorname},
title = {Der Beitrag aus dem Sammelband},
pages = {179--198},
volume = {4},
isbn = {978-3-9503401-6-7},
editor = {Edward D. Itor},
booktitle = {Titel des Sammelbands},
year = {2014},
address = {Ort}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Zitat.\footcite{Name.2014}
\printbibliography[heading=bibintoc, title=Literatur]
\end{document}[/code]
Der relevante Teil ist [tt]\newbibmacro*{in:editor+others}[/tt] und [tt]\DeclareBibliographyDriver{incollection}[/tt]. Das [tt]\renewbibmacro*{bbx:editor}[/tt] davor ist für die Konsistenz.
Leider muss man für diese Änderung den Driver ändern, man hätte das auch mit [p]xpatch[/p] machen können.
[code]\documentclass[11pt, a4paper, halfparskip]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[backend=biber,
style=authoryear,
isbn=false,
giveninits=true,
uniquename=init,]{biblatex}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\DeclareFieldFormat[incollection]{title}{#1}
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
\printtext[parens]{% <- space
\printfield{labelyear}%
\printfield{extrayear}}}}}
\AtEveryBibitem{\clearlist{publisher}}
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\usepackage{xpatch}
\xpatchbibmacro{bbx:editor}
{\setunit{\addcomma\space}}
{\setunit{\addspace}}
{}{\typeout{failed to patch bbx:editor}}
\newbibmacro*{in:editor+others}{%
\ifnameundef{editor}
{}
{\printnames{editor}%
\setunit{\addspace}%
\usebibmacro{editor+othersstrg}%
\clearname{editor}}}
\xpatchbibdriver{incollection}
{\usebibmacro{in:}}
{\usebibmacro{in:}%
\usebibmacro{in:editor+others}%
\setunit{\printdelim{nametitledelim}}\newblock}
{}{\typeout{failed to patch driver @incollection}}
\begin{filecontents}{\jobname.bib}
@incollection{Name.2014,
author = {Name, Vorname},
title = {Der Beitrag aus dem Sammelband},
pages = {179--198},
volume = {4},
isbn = {978-3-9503401-6-7},
editor = {Edward D. Itor},
booktitle = {Titel des Sammelbands},
year = {2014},
address = {Ort}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Zitat.\footcite{Name.2014}
\printbibliography[heading=bibintoc, title=Literatur]
\end{document}[/code]