In biblatex
the concept of a @set
on which \difbibentryset
and also \mcite
are built or modelled is mainly encountered and developed for numeric citations. It is also sort of supported for alphabetic
styles and can be used with all other bibliography styles, but will not generate usable citation output with styles not from the numeric
or alphabetic
families. Even with alphabetic
citations it is highly questionable what the expected outcome should be. Currently the default is to take the label that the first entry would generate.
If you think a different default would be better or would like this label to be customisable, you should open a feature request at https://github.com/plk/biblatex/issues.
If you go from dynamic sets created with \mcite
and \defbibentryset
to static @set
entries in the .bib
file you can manually determine the label for the entire set.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=alphabetic,
mcite=true,
subentry,
maxcitenames=3,
backend=biber
]{biblatex}
\makeatletter
% warning the file called \blxmset@bibfile@name will be
% overwritten without warning
\def\blxmset@bibfile@name{\jobname -msets.bib}
\newwrite\blxmset@bibfile
\immediate\openout\blxmset@bibfile=\blxmset@bibfile@name
\immediate\write\blxmset@bibfile{%
@comment{auxiliary file for \string\defbibentrysetlabel}^^J%
@comment{This file may safely be deleted.
It will be recreated as required.}}
\AtEndDocument{%
\closeout\blxmset@bibfile}
\newrobustcmd*{\defbibentrysetlabel}[3]{%
\@bsphack
\immediate\write\blxmset@bibfile{%
@set{#1, entryset = {\unexpanded{#3}}, %
shorthand = {\unexpanded{#2}},}%
}%
\nocite{#1}%
\@esphack}
\addbibresource{\blxmset@bibfile@name}
\makeatother
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Yvon_1935,
title = {La Th\'eorie Statistique Des Fluides et l'\'equation d'\'etat},
series = {Actualit\'es Scientifiques et Industrielles ; {Th\'eories} M\'ecaniques (Hydrodynamique-Acoustique)},
publisher = {Hermann \& cie},
date = {1935},
author = {Yvon, Jacques},
lccn = {37018772}
}
@article{Born_1946,
title = {A General Kinetic Theory of Liquids {I}. {The} Molecular Distribution Functions},
volume = {188},
issn = {2053-9169},
doi = {10.1098/rspa.1946.0093},
number = {1012},
journaltitle = {Proceedings of the Royal Society of London. Series A. Mathematical and Physical Sciences},
date = {1946-12-31},
pages = {10-18},
author = {Born, Max and Green, Herbert Sydney},
}
@article{Kirkwood_1946,
title = {The Statistical Mechanical Theory of Transport Processes {I}. {General} Theory},
volume = {14},
url = {http://aip.scitation.org/doi/10.1063/1.1724117},
doi = {10.1063/1.1724117},
number = {3},
journaltitle = {The Journal of Chemical Physics},
urldate = {2019-01-16},
date = {1946-03},
pages = {180-201},
author = {Kirkwood, John Gamble},
}
@article{Bogolioubov_1945,
title = {Kinetic Equations},
volume = {10},
number = {3},
journaltitle = {Journal of Physics USSR},
date = {1945},
pages = {265-274},
author = {Bogolioubov, Nikola\"i Nikola\"ievitch}
}
@article{Boncella_1984,
author = {Boncella, James M. and Andersen, Richard A.},
journal = {Inorg. Chem.},
pages = {432--437},
volume = {23},
year = {1984},
}
\end{filecontents}
\addbibresource[datatype=bibtex]{\jobname.bib}
\begin{document}
\defbibentrysetlabel{setBBGKY}{BBGKY45}{Yvon_1935,Bogolioubov_1945,Born_1946,Kirkwood_1946}
A first citation~\cite{Boncella_1984}.
And another that I want to cite as a set BBGKY45\cite{setBBGKY}.
\printbibliography
\end{document}
The following MWE implements a macro \defbibentrysetlabel{<set key>}{<set label>}{<key_1>,...,<key_n>}
that can be used to manually specify the label for a set entry dynamically from the .bib
file. That means that you have to use \defbibentrysetlabel
and \cite
instead of \mcite
, but I guess that is acceptable.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=alphabetic,
mcite=true,
subentry,
maxcitenames=3,
backend=biber
]{biblatex}
\makeatletter
% warning the file called \blxmset@bibfile@name will be
% overwritten without warning
\def\blxmset@bibfile@name{\jobname -msets.bib}
\newwrite\blxmset@bibfile
\immediate\openout\blxmset@bibfile=\blxmset@bibfile@name
\AtEndDocument{%
\closeout\blxmset@bibfile}
\newrobustcmd*{\defbibentrysetlabel}[3]{%
\@bsphack
\begingroup
\immediate\write\blxmset@bibfile{%
@set{#1, entryset = {\unexpanded{#3}}, %
shorthand = {\unexpanded{#2}},}%
}%
\nocite{#1}%
\@esphack}
\addbibresource{\blxmset@bibfile@name}
\makeatother
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Yvon_1935,
title = {La Th\'eorie Statistique Des Fluides et l'\'equation d'\'etat},
series = {Actualit\'es Scientifiques et Industrielles ; {Th\'eories} M\'ecaniques (Hydrodynamique-Acoustique)},
publisher = {Hermann \& cie},
date = {1935},
author = {Yvon, Jacques},
lccn = {37018772}
}
@article{Born_1946,
title = {A General Kinetic Theory of Liquids {I}. {The} Molecular Distribution Functions},
volume = {188},
issn = {2053-9169},
doi = {10.1098/rspa.1946.0093},
number = {1012},
journaltitle = {Proceedings of the Royal Society of London. Series A. Mathematical and Physical Sciences},
date = {1946-12-31},
pages = {10-18},
author = {Born, Max and Green, Herbert Sydney},
}
@article{Kirkwood_1946,
title = {The Statistical Mechanical Theory of Transport Processes {I}. {General} Theory},
volume = {14},
url = {http://aip.scitation.org/doi/10.1063/1.1724117},
doi = {10.1063/1.1724117},
number = {3},
journaltitle = {The Journal of Chemical Physics},
urldate = {2019-01-16},
date = {1946-03},
pages = {180-201},
author = {Kirkwood, John Gamble},
}
@article{Bogolioubov_1945,
title = {Kinetic Equations},
volume = {10},
number = {3},
journaltitle = {Journal of Physics USSR},
date = {1945},
pages = {265-274},
author = {Bogolioubov, Nikola\"i Nikola\"ievitch}
}
@article{Boncella_1984,
author = {Boncella, James M. and Andersen, Richard A.},
journal = {Inorg. Chem.},
pages = {432--437},
volume = {23},
year = {1984},
}
\end{filecontents}
\addbibresource[datatype=bibtex]{\jobname.bib}
\begin{document}
A first citation~\cite{Boncella_1984}.
And another that I want to cite as a set BBGKY45 \defbibentrysetlabel{setBBGKY}{BBGKY45}{Yvon_1935,Bogolioubov_1945,Born_1946,Kirkwood_1946}\cite{setBBGKY}.
\printbibliography
\end{document}