[Tex/LaTex] Indexing with biblatex – how to filter out publication titles of indexed authors

biblatexindexing

I am creating an index with biblatex, but want to filter out the publication titles.
The goal is to have only the names of the authors in the index of authors, right now I end up with all author entries as desired but the titles of their books or articles create additional entries in the index file. How to surpress these listing?

MWE would be as follows:

   \documentclass[a4paper,
12pt,
twoside,
]{scrbook}
\usepackage{filecontents}
\begin{filecontents}{\bibliography.bib}
@ARTICLE{article,
  author = {Nachname, Vorname},
  title = {Titel des Zeitschriftenartikels},
  journal = {Zeitschrift},
  year = {2006},
  volume = {6},
  pages = {19--75}
}
@BOOK{book,
  author = {Buchautor, Hans-Wilhelm},
  title = {Irgendein Buch},
  address = {Buch am Wald},
  year = {2000}
}
\end{filecontents}
\usepackage{scrpage2}
\usepackage[T1]{fontenc} 
\usepackage[ansinew]{inputenc}
\usepackage{mathptmx}
\usepackage[ngerman]{babel}
\usepackage[split,makeindex]{splitidx}
\newindex[List of authors]{aut}
\usepackage[%bibencoding=utf8,
backend=bibtex8, 
natbib=true,
style=authoryear-icomp,
maxnames=3, minnames=1,
sorting=nyt,
indexing=true,
abbreviate=false,
dashed=true,
eprint=false,
block=none,
%bibencoding=auto
]{biblatex}
%
\begin{document}
The example is really short MWE \parencite{article}. Maybe something is missing, please correct me if I forgot something as mentioned by \textcite{book}.
%
\printbibliography
\printindex
\end{document}

Additional question would be (I left it out of the MWE):

In the current form, everybody is indexed that ist cited in the text.
The publisher I am preparing the book for would like to have only names of authors indexed that are cited in the main text:

How to filter out authors from the index that are cited in footnotes?

Best Answer

Three examples (20-22) from the biblatex documentation demonstrate:

  1. a single index with makeidx,
  2. multiple indices with index, and
  3. multilevel indices with imakeidx.

To create a single index of authors cited inline, just load biblatex with indexing=cite and redefine the citeindex bibliography macro:

\renewbibmacro*{citeindex}{%
  \ifboolexpr{ test {\ifciteindex} and not test {\iffootnote} }
    {\indexnames{author}}{}}

When the author list is missing you may wish to index editors or translators instead. To do this, replace author with labelname.

Here's an example demonstrating two indices - one for authors and another for titles.

\documentclass{article}
\usepackage[T1]{fontenc} 
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[indexing=cite,maxnames=3,backend=bibtex,style=authoryear-icomp]{biblatex}
\usepackage{splitidx}
\makeindex
\newindex[List of authors]{author}
\newindex[List of Titles]{title}

\DeclareIndexNameFormat{default}{%
  \usebibmacro{index:name}{\sindex[author]}{#1}{#3}{#5}{#7}}

\DeclareIndexFieldFormat{indextitle}{%
  \usebibmacro{index:title}{\sindex[title]}{#1}}

\renewbibmacro*{citeindex}{%
  \ifboolexpr{ test {\ifciteindex} and not test {\iffootnote} }
    {\indexnames{author}%
     \indexfield{indextitle}}
    {}}

\addbibresource{biblatex-examples.bib}
\begin{document}
Filler \parencite{aksin,companion}. Filler.\footcite{bertram}
\Textcite{markey,jaffe}...
\printbibliography
\printindex*
\end{document}

Saving this document as test.tex, it can be compiled with:

latex test
bibtex test
latex test
latex test
splitindex.pl test
latex test
Related Question