使用 natbib 和 makeidx 对作者和主题进行索引

使用 natbib 和 makeidx 对作者和主题进行索引

我正在写一本书,并尝试创建一个包含作者(从natbib参考文献和\citeindextrue命令中收集)和主题(使用makeidx包和\index命令生成)的索引。

我遇到了两个问题。

首先,我想索引中作者的姓氏。但我只知道如何获取索引中的姓氏。我不知道如何修改以下bibtexhack 以包含名字。

 \renewcommand\NAT@index{\@bsphack\begingroup \def~ 
 {\string~}\@wrindex{\NAT@myidxtxt}} 
\newcommand\NAT@myidxtxt{\NAT@name} 
 \makeatother

其次,编译后,命令创建的作者索引\citeindextrue和主题索引\index{}将分别按字母顺序排列。理想情况下,我希望将它们合并为一个索引。这可能吗?

我的书的设置如下:

\documentclass[12pt, oneside]{book}
\usepackage[nottoc,numbib]{tocbibind}
\bibliographystyle{plainnat}
\usepackage{makeidx}
\usepackage{natbib}
\makeindex              
\citeindextrue
\makeatletter
\renewcommand\NAT@index{\@bsphack\begingroup
  \def~{\string~}\@wrindex{\NAT@myidxtxt}}
\newcommand\NAT@myidxtxt{\NAT@name}
\makeatother
\begin{document}
Here is some indexed text \index{example} with some citations \citet{smith1996}.
\bibliography{references}
\printindex
\end{document}  

答案1

Ulrike Fischer 的评论指出,改变

\@wrindex{\NAT@myidxtxt}

\expandafter\@wrindex\NAT@name 

解决了排序问题。添加名字需要切换到 Biblatex 或 Biber。

相关内容