For a stylesheet I am following, I need to move the names of the editors of a book before the book title. In biblatex
, the default behavior is to print Ed. by
followed by the names. A similar question has been asked before (Citing @inbook with biblatex: how to put authors/editors before book title?), but the only answer given differs in many respects from what I need, and I don't know how to modify it to suit my needs here.
In the MWE, the printed result is:
Lennon, John (1965). This is my article in this book. In A book with articles. Ed. by Paul McCartney, John Lennon, George Harrison & Richard Starkey. Liverpool: Cavern Club. 65-87.
Whereas I need it to be:
Lennon, John (1965). This is my article in this book. In Paul McCartney, John Lennon, George Harrison & Richard Starkey (Eds.), A book with articles. Liverpool: Cavern Club. 65-87.
Notice the uppercase E
in Eds.
(which should be Ed.
in the case of a single editor) and the comma following it.
\documentclass{article}
\usepackage[style = authoryear-comp, maxnames = 99]{biblatex}
\renewcommand*{\finalnamedelim}{\addspace\&\space} % use '&' before last author in citations and bibliography
\renewcommand*{\intitlepunct}{\space} % remove colon after "In:" for articles in books
\DeclareFieldFormat[article, incollection, unpublished]{pages}{#1} % no word 'pages' for articles in the bibliography (print as is)
\DeclareFieldFormat[article, incollection, unpublished]{title}{#1} % no quotes for article titles (print as is)
\renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon}{\addperiod\addspace}} % colon between volume and page ranges for journal articles, period plus space for articles in books
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{lennon1965,
AUTHOR = "John Lennon",
BOOKTITLE = "A book with articles",
EDITOR = "Paul McCartney and John Lennon and George Harrison and Richard Starkey",
TITLE = "This is my article in this book",
YEAR = "1965",
LOCATION = "Liverpool",
PAGES = "65--87",
PUBLISHER = "Cavern Club"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
Best Answer
This is really where
biblatex
is not that flexible.We can use
xpatch
to patch the drivers for@inbook
,@incollection
and@inproceedings
We also redefine
byeditor:in
and a new name format
MWE