1

I'm compiling a bibliography using Biblatex, and I cite many articles that are part of collections/edited books. According to my referencing guide, I need Last Name, First name initial. (Year). "Title". In: Last Name, First Name Initial (ed.s.), book title. Location: Publisher, pages.

Most of that is fine, but my \printbibliography command will only let me put editors before title with the "first author et al.", but I need every editor listed before the book title.

I use JabRef, where I use InCollection as a format. My preamb in Latex looks like the following:

\documentclass[a4paper, 12pt]{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{soul}
\usepackage{tabularx}
\usepackage{dcolumn}
\usepackage{graphicx}
\usepackage[margin=2.5cm]{geometry}
\usepackage{fancyhdr}
\usepackage{setspace}
\usepackage{listings}
\usepackage{color}
\usepackage{subcaption}
\usepackage{hanging}
\usepackage[english]{babel}
\usepackage[babel]{csquotes}
\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref}
\setlength{\headsep}{1.2cm}

\onehalfspacing
\pagestyle{fancy}

\lhead{Header}
\chead{Headrer}
\rhead{Header}

\usepackage{fontspec} 
\setmainfont{Times New Roman}
\usepackage[style=ext-authoryear, firstinits=true,  backend=biber, 
innamebeforetitle = true]{biblatex}

\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimFormat{editortypedelim}{\addspace}

\DeclareFieldAlias{translatortype}{editortype}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}


\renewbibmacro{in:}{%
\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}
\addbibresource{bibfile.bib}
\nocite{*}
\renewcommand*{\nameyeardelim}{\addcomma\space}

I have attached two of my sources below, as I have entered them in JabRef.

@InCollection{Andreadisetal,
  author    = {Andreadis, I. and Cremonesi, C. and Kartsounidou, E. and Kasprowicz, D. and Hess, A.},
  title     = {Attitudinal and Behavioral Responses to Populist Communication: The Impact of Populist Message Elements on Populist Attitudes and Voting Intentions},
  booktitle = {Communicating populism: comparing actor perceptions, media coverage, and effects on citizens in Europe},
  year      = {2019},
  publisher = {Routledge},
  location  = {New York},
  editor   = {Reinemann, C. and Stanyer, J. and Aalberg, T. and Esser, F. and De Vreese, C.H.},
}

@InCollection{Bruns&Highfield,
  author    = {Bruns, A. and Highfield, T.},
  title     = {Is Habermas on Twitter? Social Media and the Public Sphere},
  booktitle = {The Routledge Companion to Social Media and Politics},
  year      = {2016},
  editor    = {Bruns, A. and Enli, G. and Skogerbø, E. and Larsson, A.O. and Christensen, C.},
  publisher = {Routledge},
  location  = {New York},
}

Is there a way to specify to LaTeX that I want all editor names before book title, not just "et al." before book title?

1
  • This is better-suited on TeX - LaTeX. Flag it for moderator attention and request migration.
    – Werner
    Sep 24, 2019 at 15:54

1 Answer 1

1

Based on https://tex.stackexchange.com/a/287780/36296 the following redefinition of the bbx:in:editor macro will show up to 42 editors - if you need more increase this number as necessary.

Please also note that the option firstinits is deprecated, please use giveninits instead.

\documentclass[a4paper, 12pt]{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{soul}
\usepackage{tabularx}
\usepackage{dcolumn}
\usepackage{graphicx}
\usepackage[margin=2.5cm]{geometry}
\usepackage{fancyhdr}
\usepackage{setspace}
\usepackage{listings}
\usepackage{color}
\usepackage{subcaption}
\usepackage{hanging}
\usepackage[english]{babel}
\usepackage[babel]{csquotes}
\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref}
\setlength{\headsep}{1.2cm}

\onehalfspacing
\pagestyle{fancy}

\lhead{Header}
\chead{Headrer}
\rhead{Header}
\setlength{\headheight}{14.5pt}

%\usepackage{fontspec} 
%\setmainfont{Times New Roman}
\usepackage[style=ext-authoryear, giveninits=true, uniquename=init, backend=biber, 
innamebeforetitle = true,
]{biblatex}

\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimFormat{editortypedelim}{\addspace}

\DeclareFieldAlias{translatortype}{editortype}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}


\renewbibmacro{in:}{%
\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}
\addbibresource{\jobname.bib}
\nocite{*}
\renewcommand*{\nameyeardelim}{\addcomma\space}

\makeatletter
\renewbibmacro*{bbx:in:editor}[1]{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\ifboolexpr{togl {bbx:innameidem} and test {\bbx@ineditoridem}}
       {\bibstring[\mkibid]{idem\thefield{gender}}}
       {\printnames[ineditor][1-42]{editor}}%
     \setunit{\printdelim{editortypedelim}}%
     \usebibmacro{#1}%
     \clearname{editor}}
    {}}
\makeatother


\begin{document}
\cite{Andreadisetal} \cite{Bruns&Highfield}

\printbibliography
\end{document}

enter image description here

1
  • Without this modification the number of editors printed obeys the maxbibnames (or maxnames) setting. Especially if the parent @collection appears in the bibliography in its own right having everything obey maxbibnames makes for a more consistent bibliography.
    – moewe
    Sep 28, 2019 at 9:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .