[Tex/LaTex] Index both authors and subjects with authorindex and makeindex

authorindexindexingnatbib

I am trying to make two separate indexes for my PhD dissertation, the author index and the subject index.
Creating the author index is quit easy, I just use the \usepackage{makeidx} and
\printindex command and LaTeX creates a beautiful author index for me. What if I want to add the subject index before the author index?
I have read the responses to the similar question on StackExchange:
How can I have two or more distinct indexes?
but it is not a viable solution for me, because it requires me to manually index both authors and subjects. Currently, I do not have to index the authors and latex creates the index for me automatically.
Is there any way to only index the subjects manually ( I mean to use \index{key} for every subject of interest) and have the authors index automatically?
The \authorindex package does not work with \natbib

Best Answer

The authorindex and natbib packages collide at first glance, but in section 7.2.3 of the manual (http://mirrors.ctan.org/indexing/authorindex/authorindex.pdf) a solution is provided by using a local natbib.cfg, which I just copy from the manual, I have not developed that material:

Content of natbib.cfg:

\AtBeginDocument{%
\@ifpackageloaded{authorindex}{%
\ifNAT@numbers
\let\org@@citex\NAT@citexnum
\else
\let\org@@citex\NAT@citex
\fi
\def\@citex[#1][#2]#3{%
\typeout{indexing: [#1][#2]{#3}}%
\org@@citex[#1][#2]{#3}%
\@aicitey{#3}}%
\renewcommand\NAT@wrout[5]{%
\if@filesw{%
\let\protect\noexpand\let~\relax
\immediate\write\@auxout{\string\aibibcite{#5}{#1}}%
\immediate\write\@auxout{\string\bibcite{#5}{{#1}{#2}{{#3}}{{#4}}}}}%
\fi}}{}}
\endinput

Place this file (exactly with this name!) in the folder where your document source is stored.

The next step is to replace all \aicite commands with 'traditional' \cite (otherwise it does not work. Why???? I have no clue, but I did not look into the package files either)

I added the rather simple command \listofauthors, which includes the authorindex, further formatting is not done, however.

\documentclass[12pt]{book}

\usepackage{natbib}
\usepackage{blindtext}

\usepackage{makeidx}
\usepackage[pdftex,plainpages=false]{hyperref}
\RequirePackage{authorindex}

% Use this, if you want hyperlinks back from list of author entry to page
% where the citation was placed
\def\theaipage{\string\hyperpage{\thepage}} 

\newcommand{\listofauthorsname}{List of Authors}%

\newcommand{\listofauthors}{%
\chapter*{\listofauthorsname}%
\phantomsection%
\addcontentsline{toc}{chapter}{\listofauthorsname}%
\noindent%
\printauthorindex%
}%

\makeindex
\begin{document}

\tableofcontents

\chapter{Introduction}

Einstein showed that  \[ E = m \cdot c^2,\]
i.e. the equivalence\index{Equivalence} of mass\index{Mass} and energy\index{Energy}.\par

In their books \cite{GSM97} or \cite{Lam94} show how to typeset those equation ;-)

\blindtext

\printindex

\bibliographystyle{alpha}
\bibliography{biblio}

\listofauthors


\end{document}

Workflow on foo.tex

  1. pdflatex foo.tex
  2. makeindex foo
  3. bibtex foo
  4. authorindex foo
  5. pdflatex foo

enter image description here

Related Question