Biblatex:将引用的“et al.”作者添加到索引中

Biblatex:将引用的“et al.”作者添加到索引中

我的参考文献中有很长的作者名单。我想通过在索引中列出他们来表示感谢,但因为我不想让正文杂乱无章,所以我在引文中最多显示两个名字。

我如何将所有合著者添加到索引中?

这是我的 MWE:

\documentclass{article}

% Bibliography configuration
\usepackage[%
    maxcitenames=2, % cite: 1, 2, or 1st + et al.
    maxbibnames=99, % bib:  all authors
    indexing=cite   % put citations in index
]{biblatex}
\addbibresource{database.bib}

\begin{filecontents*}{database.bib}
@Article{BahOlsLat10,
  author            = {Bahador Bahrami and Karsten Olsen and
                       Peter E. Latham and Andreas Roepstorff and
                       Geraint Rees and Chris D. Frith},
  title             = {Optimally Interacting Minds},
  journal           = {Science},
  year              = {2010},
  volume            = {329},
  number            = {5995},
  pages             = {1081--1085},
  doi               = {10.1126/science.1185718}
}

@Book{BakEll11,
  author    = {Paul Baker and Sibonile Ellece},
  title     = {Key Terms in Discourse Analysis},
  year      = {2011},
  publisher = {Continuum International Publishing Group},
  isbn      = {978-1-8470-6320-5}
}
\end{filecontents*}

\usepackage{makeidx}
\makeindex

\begin{document}

\textcite{BahOlsLat10,BakEll11}

\clearpage

\printbibliography

\printindex

\end{document}

会发生什么: 书籍的两位作者均在索引中列出,但文章的六位作者中只有第一作者。

我尝试过但没有效果的方法: 设置indexing=true会将所有作者姓名添加到索引中,但页码指的是参考书目(此处:第 2 页)。我希望第 2、3、4 位作者的索引条目指向引用的位置(此处:第 1 页)。

答案1

Biblatex 文档\indexnames帮助了我(这被称为将名称列表添加到索引中):

\indexnames[<format>][<start>–<stop>]{<name list>}

该命令类似于\printnames...

其中\printnames有一个关键的提示:

如果你想覆盖最大名称最小名称并强制打印整个列表,您可以参考listtotal第二个可选参数中的计数器:

\printnames[...][-\value{listtotal}]{...}

因此,请查找原始宏biblatex.def

\newbibmacro*{citeindex}{%
  \ifciteindex
    {\indexnames{labelname}%
     \indexfield{indextitle}}
    {}}

并覆盖你自己的代码以明确全部应使用该列表中的条目:

\renewbibmacro*{citeindex}{%
  \ifciteindex
    {\indexnames[][-\value{listtotal}]{labelname}%
     \indexfield{indextitle}}
    {}}

奇迹般有效。

相关内容