[Tex/LaTex] Citing sub-references from a combined citation list

chemistrycross-referencingnatbib

The problem

      Many journals in chemistry and physics use a referencing style that combines multiple closely-related citations into a single reference:

This is a statement that is supported by several references.1

References

  1. (a) Citation 1. (b) Citation 2. (c) Citation 3. (d) Citation 4.

      I am currently using natbib and mciteplus to successfully implement the above. Problems arise, however, when I would like to cite a specific sub-reference from a previously defined citation-list:

Here is another statement that is specific to a previously defined
sub-reference.1a

or

This is a statement specific to a range of references that have been previously
defined.1a-c,2b

My attempt

      My attempts to produce the above results in either only the number being displayed (if I am referencing the head citation) or an error (if I am referencing a tail citation). Please see this MWE that I have adapted from a previous answer by Joseph Wright

\begin{filecontents*}{\jobname.bib}
 @Article{Arduengo1992,
  Title                    = {Electronic stabilization of nucleophilic carbenes},
  Author                   = {Arduengo, III, Anthony J. and H.~V.~Rasika Dias and Richard~L. Harlow and Michael Kline},
  Journal                  = {J. Am. Chem. Soc.},
  Year                     = {1992},
  Number                   = {14},
  Pages                    = {5530--5534},
  Volume                   = {114},

  Doi                      = {10.1021/ja00040a007},
}
@Article{Arduengo1994,
  Title                    = {Low-coordinate carbene complexes of nickel(0) and platinum(0)},
  Author                   = {Arduengo, III, Anthony J. and Siegfried~F. Gamper and Joseph~C. Calabrese and Fredric Davidson},
  Journal                  = {J. Am. Chem. Soc.},
  Year                     = {1994},
  Number                   = {10},
  Pages                    = {4391--4394},
  Volume                   = {116},

  Doi                      = {10.1021/ja00089a029},
}
\end{filecontents*}
\documentclass{article}
\usepackage[numbers]{natbib}
\usepackage{mciteplus}
\begin{document}
This is a statement.\citep{Arduengo1992,*Arduengo1994}. This is another statement.\citep{Arduengo1992}
\bibliographystyle{rsc}
\bibliography{\jobname}
\end{document}

yields

This is a statement.1 This is another statement.1

References

[1] (a) A. J. Arduengo, III, H. V. R. Dias, R. L. Harlow and M. Kline, J. Am.
Chem. Soc., 1992, 114, 5530–5534; (b) A. J. Arduengo, III, S. F. Gamper,
J. C. Calabrese and F. Davidson, J. Am. Chem. Soc., 1994, 116, 4391–4394.

and

...
This is a statement.\citep{Arduengo1992,*Arduengo1994} This is another statement.\citep{Arduengo1994}
...

yields

Package mciteplus Error: Head citation 'Ref2' has previously been declared as a tail of 'Ref1'.

      A comment on the previously mentioned question leads me to believe that producing the above is possible, albeit potentially difficult. I am hoping that there exists a fairly simple and elegant solution.

Any help would be greatly appreciated.

Best Answer

This is easy if you take Ulrike Fischer's answer as the starting point.

entries and sub-entries, citing

\documentclass[]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[subentry]{biblatex}
\defbibentryset{set2}{shore,doody}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{set}, \cite{set2} \cite{shore}
\printbibliography
\end{document}

If you cannot use Biblatex, start from Joseph Wright's answer instead. This is definitely the more harrowing course because you may actually be forced to read mciteplus's documentation which explains how to do exactly what you want.

It is surprising just how often package authors go to the trouble of explaining how to do stuff with their packages, given the evident dearth of readers.

BibTeX option

\begin{filecontents*}{\jobname.bib}
@Article{Arduengo1992,
  Title                    = {Electronic stabilization of nucleophilic carbenes},
  Author                   = {Arduengo, III, Anthony J. and H.~V.~Rasika Dias and Richard~L. Harlow and Michael Kline},
  Journal                  = {J. Am. Chem. Soc.},
  Year                     = {1992},
  Number                   = {14},
  Pages                    = {5530--5534},
  Volume                   = {114},

  Doi                      = {10.1021/ja00040a007},
}
@Article{Arduengo1994,
  Title                    = {Low-coordinate carbene complexes of nickel(0) and platinum(0)},
  Author                   = {Arduengo, III, Anthony J. and Siegfried~F. Gamper and Joseph~C. Calabrese and Fredric Davidson},
  Journal                  = {J. Am. Chem. Soc.},
  Year                     = {1994},
  Number                   = {10},
  Pages                    = {4391--4394},
  Volume                   = {116},

  Doi                      = {10.1021/ja00089a029},
}
\end{filecontents*}
\documentclass{article}
\usepackage[numbers]{natbib}
\usepackage{mciteplus}
\renewcommand{\mcitesubrefform}{[\arabic{mcitebibitemcount}\alph{mcitesubitemcount}]}
\begin{document}
Some text \cite{Arduengo1992,*Arduengo1994}.

Now a specific reference \mciteSubRef{Arduengo1992}.

\bibliographystyle{rsc}
\bibliography{\jobname}
\end{document}