9

is there a way to indicate/mark certain selected references in the bibliography section. For example I want to use simple natbib citations (author-year) in the main text (standard as they are). However in my reference list (bibliography) I want mark some references (not all) with an asterisk before the main name. Here a short example, but how to add the asterisk? Do I need to introduce a new field (eg. marker) for @article and define a new bibliography style the accounts for the new field?

\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{test,
author={Name},
journal={Journal},
title={TITLE},
year={2011},
}
\end{filecontents}
\documentclass{article}
\usepackage[authoryear]{natbib}
\bibliographystyle{apalike}
\begin{document}
\cite{test}

\bibliography{test}

\end{document}
3

Here's a solution that works with BibTeX and the natbib citation management package. It's admittedly quite kludgy. If someone's got a better solution, please step forward.

The solution consists of three parts. First, add the following lines to the top of the .bib file:

@preamble{ " \newcommand{\noopsort}[1]{} "
         # " \newcommand{\bibstar}{\textsuperscript{*}} " }

If necessary, modify the definition of \bibstar so that its output conforms to your needs. The macro \noopsort seems to do nothing but, as will become clear soon, is very useful for sorting purposes.

Second, for each entry that's supposed to be prefixed with a "star" in the references section, modify the (first) author's name as follows: Instead of, say,

author = {Henry Jones},

write

author = {Henry \noopsort{Jones}\bibstar{}Jones},

The instruction \noopsort{Jones} ensures that the entry will be sorted under "J" for "Jones" rather than under whatever BibTeX decides the sorting order may be for "*" (probably after "Z").

Third, for each starred entry, define a "citation alias" using the mechanism provided by natbib. E.g., if the entry for Henry Jones's piece has the key jones11, you'd write

\defcitealias{jones11}{Jones (2011)}

in the preamble (after the natbib package has been loaded).

With these three things put in place, use \citetalias rather than \citet to cite the entry in question, i.e., write \citetalias{jones11}. (If you use \citet you'd get, surprise, *Jones (2011)...)

A full example:

enter image description here

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@preamble{ " \newcommand{\noop}[1]{} "
         # " \newcommand{\bibstar}{\textsuperscript{*}} " }
@article{jones11,
author={Henry \noop{Jones}\bibstar{}Jones},
journal={Circularity Today},
title={Deep thoughts},
year={2011},
volume = 1,
issue  = 1,
pages  = "1-101",
}
\end{filecontents*}
\documentclass{article}
\usepackage[authoryear]{natbib}
\bibliographystyle{apalike}
\defcitealias{jones11}{Jones (2011)}
\begin{document}
\citetalias{jones11}

\bibliography{\jobname}
\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.