
Ich möchte in einer Incollection-Referenz mit biblatex alle Herausgeberinformationen in Klammern setzen. Meine aktuelle Referenz sieht folgendermaßen aus:
Gotelli, NJ & Colwell, RK (2010). Schätzung des Artenreichtums. In:Biologische Vielfalt: Grenzen der Messung und Bewertung. (Hrsg.) Magurran, AE & McGill, BJ Oxford University Press, Oxford, Vereinigtes Königreich, 39–54.
Ich möchte jedoch, dass dieser Verweis mit allen Herausgeberinformationen in Klammern erscheint, gefolgt von einem Punkt:
Gotelli, NJ & Colwell, RK (2010). Schätzung des Artenreichtums. In:Biologische Vielfalt: Grenzen der Messung und Bewertung. (Hrsg. Magurran, AE & McGill, BJ). Oxford University Press, Oxford, Vereinigtes Königreich, 39–54.
Meine aktuelle Lösung besteht darin, \xpatchbibmacro{byeditor+othersstrg}{\printtext}{\printtext[parens]}{}{} zu verwenden, aber diese Lösung setzt nur die Abkürzung für den Editor in Klammern.
Mein MWE lautet wie folgt:
\documentclass[12pt,Bold]{report}
\usepackage[backend=bibtex,url=false, isbn=false, doi=false, style=authoryear,citestyle=authoryear, sorting=nyt,dashed=FALSE, maxcitenames=2, maxbibnames=100]{biblatex}
\usepackage{xpatch}
\usepackage{filecontents}
%Last names first in bibliography
\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{default}{last-first}
%italics for book titles
\DeclareFieldFormat[incollection]{title}{#1}
\DeclareFieldFormat[incollection]{booktitle}{\textit{#1}}
\DeclareFieldFormat[article,incollection]{pages}{#1}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
%\setunit*{\adddot}% DELETED
% \setunit*{\addcolon}% ADDED
% \printfield{number}%
%\setunit{\space}%
\printfield{eid}}
\renewbibmacro*{name:andothers}{% Based on name:andothers from biblatex.def
\ifboolexpr{
test {\ifnumequal{\value{listcount}}{\value{liststop}}}
and
test \ifmorenames
}
{\ifnumgreater{\value{liststop}}{1}
{\finalandcomma}
{}%
\andothersdelim\bibstring[\emph]{andothers}}
{}}
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\&\space}
%change order and punctuation between publisher and location
\renewbibmacro*{publisher+location+date}{%
\printlist{publisher}%
\iflistundef{location}
{\setunit*{\addcomma\space}}
{\setunit*{\addcomma\space}}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit}
%change editor abbrevation
\DefineBibliographyStrings{english}{%
byeditor = {\lowercase{ed}},%
byeditor = {\lowercase{eds}},%
}
\xpatchbibmacro{byeditor+othersstrg}{\printtext}{\printtext[parens]}{}{}
\begin{filecontents*}{editor.mwe.bib}
@incollection{magurran_estimating_2010,
address = {Oxford, United Kingdom},
title = {Estimating species richness},
shorttitle = {Estimating species richness},
booktitle = {Biological diversity: frontiers in measurement and assessment},
publisher = {Oxford University Press},
author = {Gotelli, N.J. and Colwell, R.K.},
editor = {Magurran, A.E. and McGill, B.J.},
year = {2010},
pages = {39--54},
}
\end{filecontents*}
\addbibresource{editor.mwe.bib}
\begin{document}
\parencite{magurran_estimating_2010}
\printbibliography
\end{document}
Ich wäre für jede Hilfe sehr dankbar, da ich bereits seit einigen Wochen nach einer Lösung suche.
Antwort1
Ich schlage eine Neudefinition vor, etwa in der Art
\renewbibmacro*{byeditor+others}{%
\ifnameundef{editor}
{}
{\printtext[parens]{\usebibmacro{byeditor+othersstrg}%
\setunit{\addspace}%
\printnames[byeditor]{editor}}%
\clearname{editor}%
\newunit}%
\usebibmacro{byeditorx}%
\usebibmacro{bytranslator+others}}
Wo wir ein \printtext[parens]
um den Block herum hinzugefügt haben, werden die Editoren gedruckt. Es kann einige Nachteile geben, wenn Sie auch editora
s oder translators
usw. haben.
MWE
\documentclass{article}
\usepackage[backend=bibtex,url=false, isbn=false, doi=false, style=authoryear,citestyle=authoryear, sorting=nyt,dashed=FALSE, maxcitenames=2, maxbibnames=100]{biblatex}
\usepackage{xpatch}
\usepackage{filecontents}
%Last names first in bibliography
\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{default}{last-first}
%italics for book titles
\DeclareFieldFormat[incollection]{title}{#1}
\DeclareFieldFormat[incollection]{booktitle}{\textit{#1}}
\DeclareFieldFormat[article,incollection]{pages}{#1}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
%\setunit*{\adddot}% DELETED
% \setunit*{\addcolon}% ADDED
% \printfield{number}%
%\setunit{\space}%
\printfield{eid}}
\renewbibmacro*{name:andothers}{% Based on name:andothers from biblatex.def
\ifboolexpr{
test {\ifnumequal{\value{listcount}}{\value{liststop}}}
and
test \ifmorenames
}
{\ifnumgreater{\value{liststop}}{1}
{\finalandcomma}
{}%
\andothersdelim\bibstring[\emph]{andothers}}
{}}
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\&\space}
%change order and punctuation between publisher and location
\renewbibmacro*{publisher+location+date}{%
\printlist{publisher}%
\iflistundef{location}
{\setunit*{\addcomma\space}}
{\setunit*{\addcomma\space}}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit}
%change editor abbrevation
\DefineBibliographyStrings{english}{%
byeditor = {\lowercase{ed}},%
byeditor = {\lowercase{eds}},%
}
\renewbibmacro*{byeditor+others}{%
\ifnameundef{editor}
{}
{\printtext[parens]{\usebibmacro{byeditor+othersstrg}%
\setunit{\addspace}%
\printnames[byeditor]{editor}}%
\clearname{editor}%
\newunit}%
\usebibmacro{byeditorx}%
\usebibmacro{bytranslator+others}}
\begin{filecontents*}{\jobname.bib}
@incollection{magurran_estimating_2010,
address = {Oxford, United Kingdom},
title = {Estimating species richness},
shorttitle = {Estimating species richness},
booktitle = {Biological diversity: frontiers in measurement and assessment},
publisher = {Oxford University Press},
author = {Gotelli, N.J. and Colwell, R.K.},
editor = {Magurran, A.E. and McGill, B.J.},
year = {2010},
pages = {39--54},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\parencite{magurran_estimating_2010}
\printbibliography
\end{document}