11

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}

3 Answers 3

10

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*{\mkbibcompletename}[1]{%
  \ifitemannotation{jointfirst}
    {\textbf{#1}}
    {#1}}
3
  • 1
    @Krishna I agree that ideally there should be a command like \mkbibnamecomplete. There is at least one theoretical technical difficulties with this though, as the argument of \mkbibnamecomplete would have to be slightly more complicated than that of the other \mkbibname... macros. That should not be an issue for most applications, but could be for really complicated macros like underlining commands. Secondly changes like this have the potential to break backwards compatibility, though again the chances are small.
    – moewe
    Jan 4, 2019 at 22:46
  • 1
    @Krishna Comments are welcome: github.com/plk/biblatex/issues/853
    – moewe
    Jan 6, 2019 at 17:03
  • 1
    For posterity, the new command is \mkbibcompletename, not \mkbibnamecomplete
    – kwsp
    Jun 9, 2023 at 1:40
4

Largely drawn from the excellent answer posted here by @moewe, for the sake of completeness and future reference by others, I'd like to post the complete solution to the specific question I asked (underline & bold joint first authors and additionally, append a suitable note at the end of printed citation). Note that, in addition to the content @moewe posted, the informative note is done by including an addendum field which instructs biber/biblatex to typeset its contents after the citation is formatted.

Here is the complete code.

\documentclass[a4paper]{article}
\usepackage[backend=biber, style=numeric-comp]{biblatex}
\usepackage{csquotes}

\usepackage{xcolor} % <---- required for coloured highlighting of addendum text if desired.

\usepackage[normalem]{ulem}   % <---- For underlining. Note that the [normalem] option is critical, otherwise the `emph` macro is redefined which messes up typeset bibliography
\setlength{\ULdepth}{4.0pt}   
\renewcommand{\ULthickness}{0.75pt}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Doe2018,
    author    = {Doe, John W. and Bloggs, Joe and Supervisor, Nice  J.},
    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},
    addendum = {\textcolor{brown}{\emph{The highlighted authors are joint first authors with equal contributions.}}} % <-- note the extra information in the addendum field
}
\end{filecontents}

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

\newcommand*{\mkbibnamecomplete}[1]{%
    \ifitemannotation{jointfirst}
    {\textbf{\uline{#1}}}           % <--- underline + bold
    {#1}}

\renewbibmacro*{name:family}[4]{%
    \ifuseprefix
    {\usebibmacro{name:delim}{#3#1}%
        \usebibmacro{name:hook}{#3#1}%
            \mkbibnamecomplete{%
                \ifdefvoid{#3}
                {}
                {\ifcapital
                    {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
                    {\mkbibnameprefix{#3}\isdot}%
                    \ifprefchar{}{\bibnamedelimc}}%
                        \mkbibnamefamily{#1}\isdot}}
    {\usebibmacro{name:delim}{#1}%
        \usebibmacro{name:hook}{#1}
        \mkbibnamecomplete{%
            \mkbibnamefamily{#1}\isdot}}}%

\renewbibmacro*{name:given-family}[4]{%
    \usebibmacro{name:delim}{#2#3#1}%
        \usebibmacro{name:hook}{#2#3#1}%
        \mkbibnamecomplete{%
            \ifdefvoid{#2}{}{\mkbibnamegiven{#2}\isdot\bibnamedelimd}%
                \ifdefvoid{#3}{}{%
                    \mkbibnameprefix{#3}\isdot
                        \ifprefchar
                        {}
                    {\ifuseprefix{\bibnamedelimc}{\bibnamedelimd}}}%
            \mkbibnamefamily{#1}\isdot
                \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}}

    \renewbibmacro*{name:family-given}[4]{%
        \ifuseprefix
        {\usebibmacro{name:delim}{#3#1}%
            \usebibmacro{name:hook}{#3#1}%
                \mkbibnamecomplete{%
                    \ifdefvoid{#3}{}{%
                        \ifcapital
                        {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
                        {\mkbibnameprefix{#3}\isdot}%
                        \ifprefchar{}{\bibnamedelimc}}%
                            \mkbibnamefamily{#1}\isdot
                            \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
                            \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}}}
        {\usebibmacro{name:delim}{#1}%
            \usebibmacro{name:hook}{#1}%
                \mkbibnamecomplete{%
                    \mkbibnamefamily{#1}\isdot
                        \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
                        \ifboolexpe{%
                            test {\ifdefvoid{#2}}
                            and
                                test {\ifdefvoid{#3}}}
                    {}
                    {\revsdnamepunct}%
                    \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
                        \ifdefvoid{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}}

\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}

which produces the output,

underlines,bold,joint first authors with addendum

1

As of biblatex 3.13 (released 2019-08-17), there is the \mkbibcompletename command.

In the preamble:

\renewcommand*{\mkbibcompletename}[1]{%
  \ifitemannotation{jointfirst}
    {\underline{#1}*}%   e.g., J͟o͟h͟n͟_D͟o͟e͟* (if jointfirst)
    {#1}%                e.g., John Doe  (otherwise)
}

Now annotate authors "1" and "2" as jointfirst authors:

@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},
}

Complete example:

\documentclass{article}
\usepackage{biblatex}

\renewcommand*{\mkbibcompletename}[1]{%
  \ifitemannotation{jointfirst}
    {\underline{#1}*}%   e.g., J͟o͟h͟n͟_D͟o͟e͟* (if jointfirst)
    {#1}%                e.g., John Doe  (otherwise)
}

\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}

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

render

1
  • Thank you. Can you also please show an image of how the above snippet gets rendered in the output PDF? Oct 30, 2023 at 19:17

You must log in to answer this question.

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