0

I have references with long lists of authors. I want to credit them all by listing them in the index, but since I don't want to clutter my main text, I display a maximum of two names in the citations.

How do I still add all co-authors to the index?

Here is my MWE:

\documentclass{article}

% Bibliography configuration
\usepackage[%
    maxcitenames=2, % cite: 1, 2, or 1st + et al.
    maxbibnames=99, % bib:  all authors
    indexing=cite   % put citations in index
]{biblatex}
\addbibresource{database.bib}

\begin{filecontents*}{database.bib}
@Article{BahOlsLat10,
  author            = {Bahador Bahrami and Karsten Olsen and
                       Peter E. Latham and Andreas Roepstorff and
                       Geraint Rees and Chris D. Frith},
  title             = {Optimally Interacting Minds},
  journal           = {Science},
  year              = {2010},
  volume            = {329},
  number            = {5995},
  pages             = {1081--1085},
  doi               = {10.1126/science.1185718}
}

@Book{BakEll11,
  author    = {Paul Baker and Sibonile Ellece},
  title     = {Key Terms in Discourse Analysis},
  year      = {2011},
  publisher = {Continuum International Publishing Group},
  isbn      = {978-1-8470-6320-5}
}
\end{filecontents*}

\usepackage{makeidx}
\makeindex

\begin{document}

\textcite{BahOlsLat10,BakEll11}

\clearpage

\printbibliography

\printindex

\end{document}

What happens: The two authors of the book both get listed in the index, but only the first author of the article with six authors.

What I tried and does not work: Setting indexing=true will add all author names to the index, but the page numbers refer to the bibliography (here: page 2). I want to have index entries of the 2nd, 3rd, 4th, ... authors pointing to where the citation was (here: page 1).

1 Answer 1

2

The Biblatex documentation on the \indexnames macro helped me out (which is called to add a list of names to the index):

\indexnames[<format>][<start>–<stop>]{<name list>}

This command is similar to \printnames ...

And for \printnames there is the crucial hint:

If you want to override maxnames and minnames and force printing of the entire list, you may refer to the listtotal counter in the second optional argument:

\printnames[...][-\value{listtotal}]{...}

So look for the original macro in biblatex.def:

\newbibmacro*{citeindex}{%
  \ifciteindex
    {\indexnames{labelname}%
     \indexfield{indextitle}}
    {}}

And overwrite it your own code to make explicit that all entries from that list should be used:

\renewbibmacro*{citeindex}{%
  \ifciteindex
    {\indexnames[][-\value{listtotal}]{labelname}%
     \indexfield{indextitle}}
    {}}

Works like a charm.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .