I am using annotated BibLaTeX author lists (author+an), as discussed in a prior question and as recently-integrated into BibLaTeX sub-commands (e.g., \mkbibcompletename).
I want to automatically produce an amended author list, which includes daggers for co-first authors, and asterisks for co-corresponding authors.
For example, the below BibLaTeX entry, should produce the below annotated author list in its full reference, with superscript dagger/asterisk symbols (formatting not shown), as a part of its full citation. Existing annotations, such as the presently-included asterisks after the first two listed authors, should also be removed and ignored.
@Article{ scott:beyond,
author = {Mastromatteo, Scott * and Viner, Coby * and Denisko, Danielle and
Negrea, Jeffrey and Tang, Yanbo and Zhang, Lin and Hoffman,
Michael M. and Sun, Lei},
author+an = {1=jointfirst; 2=jointfirst;
2=jointcorresponding; 7=jointcorresponding; 8=jointcorresponding},
title = {Beyond statistical significance: ranking transcription
factor binding motifs by effect size},
year = {2023},
month = {4},
% doi = {10.1101/XXXXXX},
% journal = {{bioRxiv}},
% pages = {0XXXXX},
pubstate = {\bibstring{inpreparation}},
note = {Manuscript draft available upon request.},
addendum = {doctoral work}
}
Mastromatteo, S†, Viner, C†*, Denisko, D, Negrea, J, Tang, Y, Zhang, L, Hoffman, MM*, Sun, L*, 2023. Beyond statistical significance: ranking transcription factor binding motifs by effect size. Manuscript draft available upon request. In preparation.
I do not currently have an attempt at doing this, as the present parsing and ability to make use of these author annotations, in BibLaTeX macros, is not clear to me. I would quite appreciate answers including some explanation or references on this topic.
At present, I perform other processing of references, as shown below, into which these requested modifications would ideally integrate:
% some adaptations from: http://www.khirevich.com/latex/biblatex/
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite]{
\map{ % journal names to shorter names, if existing
\step[fieldsource=shortjournal] % e.g. Proc. Natl. Acad. Sci. U.S.A.
%\step[fieldsource=shortestjournal] % e.g. PNAS; use to also map to shortest names, if existing
\step[fieldset=journaltitle, origfieldval]
}
%
\map{ % book/conference names to short names
\step[fieldsource=shortbook]
\step[fieldset=booktitle, origfieldval]
}
\map{
% suppress the following fields
\step[fieldset=month, null]
\step[fieldset=eventdate, null]
\step[fieldset=publisher, null]
\step[fieldset=editor, null] % N.B. no editor for now...
%
% do not clear, if submitted
% From: https://tex.stackexchange.com/a/453744/134641
% N.B. The below must be at the end of this map statement, as the below
% use of "final" will terminate this map, if notmatch is SAT.
%
% XXX N.B. Now keeping all pubstates, as demarcating pre-published from in-prep.
%
%\step[fieldsource=pubstate, notmatch={[sS]ubmitted}, final]
%\step[fieldset=pubstate, null]
}
\map{ % suppress the following field(s), except for presentations
\pernottype{inproceedings}
\expandafter\step[fieldset=addendum, null] % suppress NSERC education segment designations
}
\map{ % NSERC doesn't want numbers, but we still include it for patents
\pernottype{patent}
\step[fieldset=number, null]
}
\map{
\pertype{patent}
%
% clear patent scope, obviating output of redundant info. for US patents
\step[fieldset=location, null]
%
% we include the USPTO kind codes, but do not use them
\step[fieldset=kind, null]
%
% we use the field "appnumber" to store the USPTO application number
% we simply map it to be appended to the "type" field, in the standard data model
% ------------------------------------------------------------
% "terrible hack"; used for now, in favour of custom DBX definition
% From: https://tex.stackexchange.com/a/454143/134641
%
\step[fieldsource=appnumber, final]
%
% also save this in userf, to permit external use
\step[fieldset=userf, origfieldval]
%
\step[fieldsource=type, match=\regexp{\A(.*)\Z}, replace=\regexp{\ifbibstring{$1}{\bibstring{$1}}{$1}\x{20}}]
\step[fieldsource=appnumber]
\step[fieldset=type, origfieldval, append]
% ------------------------------------------------------------
}
% map citation count fields to user-defined fields, to permit usage
\map{
\step[fieldsource=citecount]
\step[fieldset=usera, origfieldval]
}
\map{
\step[fieldsource=citecountNS]
\step[fieldset=userb, origfieldval]
}
}
}
% TODO the below fails, but something like this would be nice
%\DeclareDataInheritance{patent}{patent}{
% % map the parent's appnumber (in userf) to the child's usere
% \inherit[override]{userf}{usere}
%}
% ------------------------------------------------------------
% Patch the BibLaTeX output for @Patent entries:
% add punctuation, after the "type" field.
%
\xpatchbibdriver{patent}%
{\printfield{type}\setunit{\addspace}}%
{\printfield{type}\setunit{\addsemicolon\space}}{}{}
% ------------------------------------------------------------
% custom citation command to output paper citation information
\DeclareCiteCommand{\citationscite}{}{Cited $\thefield{usera}$ times ($\thefield{userb}$, strictly non-self; per \href{https://scholar.google.ca/citations?user=RUrFz2oAAAAJ}{Google Scholar}).}{}{}
\DefineBibliographyStrings{english}{%
patrequs = {US patent application} % "application", not "request"; no dots in "US"
}
% italisize the book's title for @inproceedings entries
\DeclareFieldFormat[inproceedings]{booktitle}{\mkbibemph{#1}}
% remove volume indication (i.e. vol.) before volume numbers for @inproceedings entries
\DeclareFieldFormat[inproceedings]{volume}{\textbf{#1}}
%------------------------------------------------
% Apply page range compression
% From: http://tex.stackexchange.com/a/25374
\DeclareFieldFormat{postnote}{\mkcomprange[{\mkpageprefix[pagination]}]{#1}}
\DeclareFieldFormat{pages}{\mkcomprange{#1}}
% Compress ranges where lower limit > 100
\setcounter{mincomprange}{100}
% Don't compress beyond the fourth digit
\setcounter{maxcomprange}{1000}
% Display compressed upper limit with at least two digits,
% unless leading digit is zero
\setcounter{mincompwidth}{10}
%--------------------------------------
No Minimal Working Example (MWE) is provided at this time. I am seeking a general solution to this issue. Should no solution be provided after some time, I will try to compose a proper MWE. Apologies for any inconvenience and thanks in advance for your kind assistance!
