0

Similar to this post, I would like to limit the author list in a citation to one + et al. (even if the author teams may be different). The proposed solution (uniquelist=false) essentially also works, but there is a problem when using it in combination with citestyle=authoryear-comp. If in the bibliography, the same (first) author once appears with their given name written out, and once only with their initials, they are not treated as the same author. So in a list of citations, even though citestyle=authoryear-comp, the citations will be separated. Here's an example:

\documentclass{article}

\usepackage[
    citestyle=authoryear-comp,
    maxcitenames=1,
    giveninits=true,
    uniquename=init,
    uniquelist=false,
    ibidtracker=context,
 % 
    bibstyle=authoryear,
    dashed=false, % dashed: substitute rep. author with ---
    date=year,
    sorting=nyt,
    minbibnames=3,
    hyperref=true,
    backref=true,
    citecounter=true,
    citetracker=true,
    natbib=true, % natbib compatibility mode (\citep and \citet still work)
    backend=biber, % Compile the bibliography with biber
]{biblatex}

\usepackage{filecontents}
\usepackage{hyperref}

\begin{filecontents}{\jobname.bib}
@misc{ABC01,
  author = {Author, A. and Buthor, B. and C},
  year = {2001},
  title = {Alpha},
}
@misc{ABC02,
  author = {Author, A. and Buthor, B. and Cuthor, C., and Duthor, D.},
  year = {2001},
  title = {Beta},
}
@misc{ADE01,
  author = {Author, Andrew and Duthor, D. and E},
  year = {2001},
  title = {And now for something completely different},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

Some text \citep{ABC01, ABC02, ADE01}.

Some text \autocite{ADE01}.

\printbibliography

\end{document}

enter image description here

I tried to fix this behavior by following this post and setting giveninits=true and uniquename=init, but that did not solve the issue. How can I get biblatex to treat Author, A. and Author, Andrew as the same author?

1 Answer 1

4

Starting with biblatex v3.20 you can tell biblatex to only use initials for hashing, which would be enough here, or you can locally override the name hash with a unique "name ID".

If you want only initials to be used for hashing, go with

\documentclass{article}

\usepackage[
  backend=biber,
  style=authoryear-comp,
  maxcitenames=1,
  giveninits=true,
  uniquename=init,
  uniquelist=false,
]{biblatex}

\usepackage{hyperref}

\DeclareNamehashTemplate{
  \namepart[hashscope=full]{family}
  \namepart[hashscope=init]{given}
  \namepart[hashscope=full]{prefix}
  \namepart[hashscope=full]{suffix}
}

\begin{filecontents}{\jobname.bib}
@misc{ABC01,
  author = {Author, A. and Buthor, B. and C},
  year   = {2001},
  title  = {Alpha},
}
@misc{ABC02,
  author = {Author, A. and Buthor, B. and Cuthor, C., and Duthor, D.},
  year   = {2001},
  title  = {Beta},
}
@misc{ADE01,
  author = {Author, Andrew and Duthor, D. and E},
  year   = {2001},
  title  = {And now for something completely different},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Some text \autocite{ABC01, ABC02, ADE01}.

Some text \autocite{ADE01}.

\printbibliography
\end{document}

If you want to override hashing, go with

\documentclass{article}

\usepackage[
  backend=biber,
  style=authoryear-comp,
  maxcitenames=1,
  giveninits=true,
  uniquename=init,
  uniquelist=false,
]{biblatex}

\usepackage{hyperref}

\begin{filecontents}{\jobname.bib}
@misc{ABC01,
  author = {id=A1, family=Author, given=A. and Buthor, B. and C},
  year   = {2001},
  title  = {Alpha},
}
@misc{ABC02,
  author = {id=A1, family=Author, given=A. and Buthor, B. and Cuthor, C. and Duthor, D.},
  year   = {2001},
  title  = {Beta},
}
@misc{ADE01,
  author = {id=A1, family=Author, given=Andrew and Duthor, D. and E},
  year   = {2001},
  title  = {And now for something completely different},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Some text \autocite{ABC01, ABC02, ADE01}.

Some text \autocite{ADE01}.

\printbibliography
\end{document}

Old answer

You'd need a way to convince biblatex that Author, A. and Author, Andrew are the same person. A workaround is to give a shortauthor equal to Author, A. for those entries where the author is Author, Andrew.

\documentclass{article}

\usepackage[
  backend=biber, 
  style=authoryear-comp,
  maxcitenames=1,
  minbibnames=3,
  giveninits=true,
  uniquename=init,
  uniquelist=false,
  dashed=false
  date=year,
  backref=true,
  citecounter=true,
]{biblatex}

\usepackage{hyperref}

\begin{filecontents}{\jobname.bib}
@misc{ABC01,
  author = {Author, A. and Buthor, B. and C},
  year   = {2001},
  title  = {Alpha},
}
@misc{ABC02,
  author = {Author, A. and Buthor, B. and Cuthor, C., and Duthor, D.},
  year   = {2001},
  title  = {Beta},
}
@misc{ADE01,
  author      = {Author, Andrew and Duthor, D. and E},
  shortauthor = {Author, A. and Duthor, D. and E},
  year        = {2001},
  title       = {And now for something completely different},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

Some text \parencite{ABC01, ABC02, ADE01}.

Some text \autocite{ADE01}.

\printbibliography

\end{document}

Some text (Author et al. 2001a,b,c).
Some text (Author et al. 2001c).

6
  • Hi, thank you! Is this the only way however? I was hoping that this can be done automatically, because manually editing the bibliography entries is not feasible. I have a large bibliography that is also constantly changing (mainly importing from zotero).
    – mapf
    Commented Mar 16, 2023 at 9:20
  • The wanted behavior works with the A&A journal style, but they use natbib and created a custom function for it I believe.
    – mapf
    Commented Mar 16, 2023 at 9:27
  • 1
    @mapf AFAICS a uniquename feature that only takes into account initials would need a feature request at github.com/plk/biblatex/issues
    – moewe
    Commented Mar 17, 2023 at 7:06
  • Ah, that's a shame. But I thought that's what uniquename=init is supposed to do? With the settings that I chose, I honestly think it should work the way I expect it. It doesn't really make sense to me that in the citation, Author et al. 2001c should be listed separately.
    – mapf
    Commented Mar 17, 2023 at 8:59
  • I think if there are two works by a (first) author with the same family name and initials, it's usually the same person. Two authors sharing the same family name and initials (or even their given name) is an absolute exception. So when the even rarer case happens that you reference them in the same citation you can just address that in the text.
    – mapf
    Commented Mar 17, 2023 at 9:07

You must log in to answer this question.

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