![authorindex+natbib 产生错误的页码](https://linux22.com/image/394708/authorindex%2Bnatbib%20%E4%BA%A7%E7%94%9F%E9%94%99%E8%AF%AF%E7%9A%84%E9%A1%B5%E7%A0%81.png)
我正在使用natbib
和authorindex
。authorindex
手动的,第 7.2.3 节,表明两个包之间存在冲突,并建议通过创建文件进行修复natbib.cfg
。当我这样做时,作者索引会产生错误的页码。我怀疑问题出在文件中natbib.cfg
,但我对 LaTeX 的这一部分不够熟悉,无法解释该文件中的代码。这是一个 MWE:
麦格
\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage[biblabels,editors,firstabbrev]{authorindex}
\usepackage{natbib}
\begin{document}
\blindtext[7]
\citet{Ha13}
\bibliographystyle{abbrvnat}
\bibliography{mybib}
\section*{Author Index}
\printauthorindex
\end{document}
我的书目目录
@article{Ha13,
Author = {Harris, Ford W.},
Journal = {Factory: The Magazine of Management},
Number = {2},
Pages = {135-136, 152},
Title = {How Many Parts to Make at Once},
Volume = {10},
Year = {1913}}
配置文件
% 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
我正在将文档编译为latex
> bibtex
> latex
> authorindex
> latex
。所有这些命令都是从 TeXShop 运行的,除了authorindex
,我从终端提示符运行它,作为authorindex mwe
。
该参考文献在文档的第 2 页被引用,但它在作者索引中显示为第 1 页:
答案1
问题解决了。我使用了biblabels
选项,这意味着authorindex
报告的是“参考列表中出现的参考标签”(根据手册authorindex
),而不是页码。下面abbrevnat
没有参考标签,所以我假设它们被视为连续的数字。因此,我的一个参考文献无论在哪一页被引用,都会显示为“1”。(当我添加更多参考文献时,它们显示为 2、3、4……)
删除该biblabels
选项即可解决问题。