[Tex/LaTex] Indicating joint first authorship through special markup in biblatex/biber

bibentrybiberbiblatexbibliographiesciting

I am using biblatex/biber to typeset the bibliography for my thesis. For one particular reference where I am the joint first author, my PhD examiners have requested that I should expressly indicate this using appropriate markup that makes this fact unambiguous to readers.

Let's say. we have a thesis.bib file with the relevant entry.

@article{Doe2018,
author = {Doe, John and Bloggs, Joe and Supervisor, Nice},
journal = {Journal of Pure Awesomeness},
month = {jun},
pages = {507--514},
publisher = {DodgyPublisher},
title = {{The next big breakthrough in science}},
volume = {17},
year = {2018}
}

In this case, both John Doe and Joe Bloggs have been designated as the joint first authors. The PDF of the published article and the publisher's HTML landing page for the article identifies this clearly. The internal examiner and additionally the supervisor (also a co-author/last author on the aforementioned article) are aware that the contribution from both authors is split equally and therefore, neither one can claim full credit in the thesis.

So the question is, in the bibliography, how can this entry be specially marked e.g. with underlines for the two first author names? Following the bibliography entry formatted according to whichever style being used (barring the newly introduced underlines), the following sentence should be appended – "The underlined authors are joint first authors and contributed equally to this work".

Can we make up a custom bibliography command for this, given that we are using the highly flexible biber/biblatex combo?

Here is a minimal non-working example. The \customcite command does not yet exist, but indicated what is required.

\documentclass[a4paper]{book}
\usepackage[backend=biber, style=numeric-comp, sorting=none, citestyle=numeric-comp, maxbibnames=50, url=true, doi=true, eprint=false, backref=true, backrefstyle=three]{biblatex}
\usepackage{csquotes}
\addbibresource{thesis.bib}

\begin{document}

Blah blah \dots as seen in the research article published~\customcite{Doe2018}.

\printbibliography

\end{document}

Best Answer

You can use data annotations for that. Have a look at §3.6 Data Annotations of the biblatex documentation.

The annotation jointfirst can be attached to each name in a name list. If a name has this annotation it will be printed in bold (in this example).

\documentclass[a4paper]{article}
\usepackage[backend=biber, style=numeric-comp, sorting=none,
  maxbibnames=50, eprint=false,
  backref=true, backrefstyle=three]{biblatex}
\usepackage{csquotes}

\renewcommand*{\mkbibnamefamily}[1]{%
  \ifitemannotation{jointfirst}
    {\textbf{#1}}
    {#1}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Doe2018,
  author    = {Doe, John and Bloggs, Joe and Supervisor, Nice},
  author+an = {1=jointfirst;2=jointfirst},
  title     = {The next big breakthrough in science},
  journal   = {Journal of Pure Awesomeness},
  volume    = {17},
  date      = {2018-06},
  pages     = {507--514},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Blah blah \dots as seen in the research article published~\cite{Doe2018}.

Blah blah \dots as seen in the research article published~\cite{sigfridsson}.

\printbibliography
\end{document}

"John Doe, Joe Bloggs, and Nice Supervisor. “The next big breakthrough in science”. In: Journal of Pure Awesomeness 17 (June 2018), pp. 507–514" with the first two family names in bold. "Emma Sigfridsson and Ulf Ryde. “Comparison of methods for deriving atomic charges from the electrostatic potential and moments”. In: Journal of Computational Chemistry 19.4 (1998), pp. 377–395. doi: 10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P" with no bold names.


If you want to have the full name in bold you can redefine \mkbibnamecomplete (new in biblatex 3.13, https://github.com/plk/biblatex/issues/853, see the edit history of this question if you need an implementation or a cheap workaround)

\renewcommand*{\mkbibnamecomplete}[1]{%
  \ifitemannotation{jointfirst}
    {\textbf{#1}}
    {#1}}