2

Consider the example below and its output. Two works are cited, but biblatex seems to include only one person in the index. It took me a while to find the pattern behind that behaviour in the 300-page publication I'm currently typesetting. Turned out the pattern is, quite simply, that biblatex doesn't include people in the index who are ›only‹ editors rather than authors.

\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{makeidx,blindtext,csquotes,lmodern}
\usepackage[style=authoryear-icomp,%
   indexing=cite,
   backend=biber]{biblatex}

\addbibresource[location=remote]{http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/examples/biblatex-examples.bib}

%--- modified to exclude publication titles from indexing:
\renewbibmacro*{citeindex}{%
    {\indexnames{author}}{}}

\makeindex

\begin{document}
\blindtext\footnote{The people in \textcite{westfahl:frontier} say the same thing. See also \textcite{malinowski}.}

\printbibliography

\printindex

\end{document}

I've been able to find out that indexing behaviour can be modified on a per-type basis, which might be good starting point (or maybe not, since editors are excluded no matter what type of publication they edited, @collection, @book, etc.). But that's about it. I would have expected to find the solution somewhere in the documentation on the bibmacro citeindex, but that macro doesn't seem to be documented at all; and the \citeindex command is explained only very briefly.

So I appreciate any hints on how to include editors as well.

enter image description here

Update

Certainly, the modification that I made to citeindex (which I took from here) is part of the problem (there's only authors in it). So I just ditched that modification and returned to biblatex's default definition of citeindex, but again disabling the titles. Not sure what the side effects will be, but the good news is that, at least, the editors of ›their own‹ publications (@collections...) are included. The ›subsidiary‹ ones (that don't end up in a biblatex label) are still missing (i.e. people who edit a book written by someone else).

\renewbibmacro*{citeindex}{%
  \ifciteindex
    {\indexnames{labelname}%
     %\indexfield{indextitle}%
     }
    {}}
  • 1
    Did you in fact answer your own question there? If so, please post the solution as a separate answer and accept it so we can mark this question as solved. If you want to index all authors you could try adding a further \indexnames{editor}, I suppose ... – moewe Apr 20 '16 at 12:50
  • > Did you in fact answer your own question there? ...@moewe: not entirely. The problem that remains is that I think those subsidiary editors deserve a mention as well (book written by ..., edited by ...). Will try your suggestion. – Nils L Apr 20 '16 at 12:56
  • What about my suggestion \indexnames{editor} (plus all the other names you want indexed ...)? – moewe Apr 20 '16 at 12:57
1

biblatex provides two indexing macros, one for citations and one for the bibliography, they are by default defined as

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

\newbibmacro*{bibindex}{%
  \ifbibindex
    {\indexnames{labelname}%
     \indexfield{indextitle}}
    {}}

So they index the labelname (that is the main name the work is associated with, often the author, but in some cases (@collections spring to mind) the editor or even the translator) and title. If you want to index all people that contributed that probably only makes sense in the bibliography index.

So you could use

\renewbibmacro*{citeindex}{%
  \ifciteindex
    {\indexnames{labelname}}
    {}}

to get only the "main name" for citations and

\renewbibmacro*{bibindex}{%
  \ifbibindex
    {\indexnames{author}%
     \indexnames{editor}%
     \indexnames{editora}%
     \indexnames{editorb}%
     \indexnames{editorc}%
     \indexnames{translator}%
    }
    {}}

or even

\makeatletter
\renewbibmacro*{bibindex}{%
  \ifbibindex
    {\def\do##1{\indexnames{##1}}%
     \abx@donames}
    {}}
\makeatletter

to index all names in the bibliography.

You will then need to use indexing=true, to turn on indexing in both citations and the bibliography.

  • ran a few real-world tests and it seems to be working perfectly, thanks! – Nils L Apr 24 '16 at 9:00
0

You're spot-on, Nils, the problem is in the re-definition of citeindex. If you don't redefine at all, i.e. let biblatex follow its native routine, you'll have the titles (which you don't want but can get rid of later) as well as the editors. At least those that are important enough to get their own citation label. The subsidiary ones you can add using \indexnames{editor} as suggested by moewe. So, complete MWE -- exactly as above but with a different modification of citeindex:

\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{makeidx,blindtext,csquotes,lmodern}
\usepackage[style=authoryear-icomp,%
   indexing=cite,
   backend=biber]{biblatex}

%--- modified to exclude publication titles from indexing:
\renewbibmacro*{citeindex}{%
  \ifciteindex
    {\indexnames{labelname}%
    \indexnames{editor}%
     %\indexfield{indextitle}%
     }
    {}}


\addbibresource[location=remote]{http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/examples/biblatex-examples.bib}

\makeindex

\begin{document}
\blindtext\footnote{The people in \textcite{westfahl:frontier} say the same thing. See also \textcite{malinowski} and \textcite{aristotle:anima}.}

\printbibliography

\printindex

\end{document}

enter image description here

  • there's a major problem with this approach, though: a subsidiary editor will an get index entry every time the corresponding work is cited, even if their name doesn't appear on that page explicitly. A simple short citation is enough to trigger an index entry. In the example above, Robert Hicks will get index entries pointing not only to the pages where his name appears (e.g. in the bibliography), but also to every page that has a short »Aristotle (1907)« citation. Needless to say this is going be misleading to readers. – Nils L Apr 20 '16 at 14:13

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.