1

Biblatex with the authoryear style automatically and usefully tries to disambiguate inline authors with identical last names. For instance, if I cited both F. Howell and W.W. Howell, with \parencite{Howell1951} and \parencite{Howell1975} it would produce:

These were made to contrast with the earlier "progressive Neanderthals" in the context of the now superseded pre-Neanderthal hypothesis (F. Howell 1951), but they are now taken to contrast with Southwest Asian Neanderthals as well (W. Howell 1975).

In my case, however, the second author is not W.W. Howell, but W.W. Howells with an s. Hence, Biblatex would not disambiguate:

These were made to contrast with the earlier "progressive Neanderthals" in the context of the now superseded pre-Neanderthal hypothesis (Howell 1951), but they are now taken to contrast with Southwest Asian Neanderthals as well (Howells 1975).

I would like it to disambiguate anyway so that someone reading fast would not think those two authors are the same person and someone reading slow does not think it's a typo. I would like it to produce:

These were made to contrast with the earlier "progressive Neanderthals" in the context of the now superseded pre-Neanderthal hypothesis (F. Howell 1951), but they are now taken to contrast with Southwest Asian Neanderthals as well (W.W. Howells 1975).

How may this be done?

\documentclass[10pt]{article}

\usepackage[american]{babel}
\usepackage{csquotes}

\usepackage[sorting=nyt, style=authoryear-comp, backend=biber, maxbibnames=10, maxcitenames=1, doi=false]{biblatex}
\DeclareLanguageMapping{american}{american-apa}

\begin{filecontents}{biblio.bib}
@article{Howell1951,
title = {Some title},
year = {1951},
author = {F. Howell},
journal = {Some journal}
}
@article{Howells1975,
title = {Another title},
year = {1975},
author = {W.W. Howells},
journal = {Another journal}
}

\end{filecontents}

\addbibresource{biblio.bib}



    \begin{document}

Blabla \parencite{Howell1951},  bla blo \parencite{Howells1975}. 

    \printbibliography
    \end{document}

enter image description here

3
  • 1
    Please provide an MWE that illustrates your problem.
    – Troy
    Mar 15, 2017 at 15:43
  • Mhhh, this is done automatically by Biber and since the names are obviously different, currently no disambiguation is done - one would have to manipulate how Biber works. You can do that manually though, if you like.
    – moewe
    Mar 15, 2017 at 15:52
  • @moewe There's no quick and dirty way or workaround to ask Biber to print the first name initials ("F. Howell" and "W.W. Howells") just for these two authors? How may I do it manually?
    – Pertinax
    Mar 15, 2017 at 15:57

1 Answer 1

1

I'm not aware of letting Biber do that automatically on some kind of 'fuzzy similarity' basis. But you can do that manually.

Use the annotation feature explained by PLK in Make specific author bold using biblatex (see also Overloading Author+an / highlighting more than one author and of course the biblatex documentation, pp. 74-75)

@article{Howell1951,
  title     = {Some title},
  year      = {1951},
  author    = {F. Howell},
  author+an = {1=initials},
  journal   = {Some journal},
}
@article{Howells1975,
  title     = {Another title},
  year      = {1975},
  author    = {W. W. Howells},
  author+an = {1=initials},
  journal   = {Another journal},
}

Where you can give initials or full in the +an field for the corresponding item to print initials or the full name.

Then redefine labelname to

\DeclareNameFormat{labelname}{%
  \ifboolexpr{test {\ifnumless{\value{uniquename}}{1}} and test {\ifitemannotation{initials}}}
    {\setcounter{uniquename}{1}}
    {}%
  \ifboolexpr{test {\ifnumless{\value{uniquename}}{2}} and test {\ifitemannotation{full}}}
    {\setcounter{uniquename}{2}}
    {}%
  \ifcase\value{uniquename}%
    \usebibmacro{name:family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
  \or
    \ifuseprefix
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefix}
        {\namepartsuffixi}}
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefixi}
        {\namepartsuffixi}}%
  \or
    \usebibmacro{name:given-family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
  \fi
  \usebibmacro{name:andothers}}

this resets the counter for name disambiguation to a higher value that shows more (i.e. initials or the full first name) if requested by initials or full.

MWE

\documentclass[american]{article}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[sorting=nyt, style=authoryear-comp, backend=biber, maxbibnames=10, maxcitenames=1, doi=false]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Howell1951,
  title     = {Some title},
  year      = {1951},
  author    = {F. Howell},
  author+an = {1=initials},
  journal   = {Some journal},
}
@article{Howells1975,
  title     = {Another title},
  year      = {1975},
  author    = {W. W. Howells},
  author+an = {1=initials},
  journal   = {Another journal},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\DeclareNameFormat{labelname}{%
  \ifboolexpr{test {\ifnumless{\value{uniquename}}{1}} and test {\ifitemannotation{initials}}}
    {\setcounter{uniquename}{1}}
    {}%
  \ifboolexpr{test {\ifnumless{\value{uniquename}}{2}} and test {\ifitemannotation{full}}}
    {\setcounter{uniquename}{2}}
    {}%
  \ifcase\value{uniquename}%
    \usebibmacro{name:family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
  \or
    \ifuseprefix
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefix}
        {\namepartsuffixi}}
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefixi}
        {\namepartsuffixi}}%
  \or
    \usebibmacro{name:given-family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
  \fi
  \usebibmacro{name:andothers}}

\begin{document}
Blabla \parencite{Howell1951},  bla blo \parencite{Howells1975}. 
\printbibliography
\end{document}

example output

2
  • Hmm, your MWE does not work on my machine. Among other errors, I get "Undefined control sequence.<argument> \ifitemannotation{initials} Blabla \parencite{Howell1951}" and "Package bib latex Error: Bibliography macro 'name:family' undefined."
    – Pertinax
    Mar 15, 2017 at 16:20
  • @TheThunderChimp Some of the methods used here are fairly recent, so it could be that your biblatex and Biber are outdated. You require at least ?biblatex 3.4/Biber 2.5, the current versions are 3.7/2.7. Make an update of both biblatex and Biber via your TeX distribution.
    – moewe
    Mar 15, 2017 at 16:39

You must log in to answer this question.

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