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?

migrated from stackoverflow.com Sep 27 at 5:59

This question came from our site for professional and enthusiast programmers.

  • This is better-suited on TeX - LaTeX. Flag it for moderator attention and request migration. – Werner Sep 24 at 15:54
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

  • 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 at 9:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.