On the Fediverse, @petrichor@digipres.club posited the question how to include identifiers for authors in Bib(La)TeX-based bibliographies:
Any Bib(La)TeX/biber users have a preferred way to include author identifiers like ORCID or ISNI in your .bib file? Ideally supported by a citation style that will include the identifiers and/or hyperlink the authors.
I have wanted to try including ORCIDs in bibliographies for a while now, and while CSL-JSON makes it nearly trivial to encode, neither CSL styles nor CSL processors are at the point where those can actually be inserted in the formatted bibliography. However, BibLaTeX may grant more opportunities, so this piqued my interest.
I first thought of the Extended Name Format (Kime et al., 2023, §3.4), which allows breaking names up in key-value pairs. Normally, those are reserved for name parts (family
, given
, etc.), but I believed I had seen a way to define additional “name parts”, one of which could be used for specifying the ORCID. However, in the process of figuring that out, I found the actual, intended, proper solution.
BibLaTeX has, exactly for things like this, Data Annotations (Kime et al., 2023, §3.7). For every field, or every item of every field in the case of list fields, additional annotations can be provided. (There are some additional features and nuances; for a full explanation see the manual.) For ORCIDs, data annotations could look like this:
@software{willighagen_2022_7017208,
author = {Willighagen, Lars and
Willighagen, Egon},
author+an:orcid = {1="0000-0002-4751-4637"; 2="0000-0001-7542-0286"},
title = {ISAAC Chrome Extension},
month = aug,
year = 2022,
publisher = {Zenodo},
version = {v1.4.0},
doi = {10.5281/zenodo.7017208}
}
Now, implementing it in a BibLaTeX style proved more difficult than I hoped, but that might have been due to my inexperience with argument expansion and Biber internals. I started with the authoryear
style and looked for the default name format that it uses in bibliographies; this turned out to be family-given/given-family
. I copied that definition, and amended it to include the ORCID icon after each name (when available). To insert the icon, I used the orcidlink
package. This part was tricky, as \getitemannotation
does not work in an argument to \orcidlink
or \href
, but I ended up with the following.
\DeclareNameFormat{family-given/given-family}{%
% ...
\hasitemannotation[\currentname][orcid]
{~\orcidlink{\expandafter\csname abx@annotation@literal@item@\currentname @orcid@\the\value{listcount}\endcsname}}
{}%
% ...
}
You could repeat the same with ISNI links, or Wikidata, VIAF, you get the idea. Then you could put the \DeclareNameFormat
in a new authoryear-orcid.bbx
file so that the changes do not show up in the in-text citations, and set the bibliography style like so:
\usepackage[bibstyle=authoryear-orcid]{biblatex}
This can all be seen in action on Overleaf: https://www.overleaf.com/read/gvxqmrqmwswh#f156b5
References
- Philip Kime, Moritz Wemheuer, Philipp Lehman (March 5, 2023). The
biblatex
Package. Programmable Bibliographies and Citations. Version 3.19. http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf
No comments:
Post a Comment