我正在写一本书,并尝试创建一个包含作者(从natbib
参考文献和\citeindextrue
命令中收集)和主题(使用makeidx
包和\index
命令生成)的索引。
我遇到了两个问题。
首先,我想和索引中作者的姓氏。但我只知道如何获取索引中的姓氏。我不知道如何修改以下bibtex
hack 以包含名字。
\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。