Splitindex 和作者引用

Splitindex 和作者引用

为什么\cite{}使用命令imakeidx带有splitindex选项和biblatexindexing=cite选择的原因

Package imakeidx Warning: Undefined index file `split' on input line 33.

编译我的源文件(split.tex)后,我不知何故得到了两个.idx文件 split-persons.idx::

\indexentry{Smith, Joe}{1}
\indexentry{Greenwild, Dirk}{1}
\indexentry{Jordan, Peter}{1}
\indexentry{Jordan, Peter}{1}

split.idx

\indexentry[persons]{Smith, Joe}{1}
\indexentry[persons]{Greenwild, Dirk}{1}
\indexentry[persons]{Jordan, Peter}{1}
\indexentry[persons]{Jordan, Peter}{1}

梅威瑟:

\documentclass{article}
\usepackage[backend=biber,natbib=true,indexing=cite]{biblatex} %for digital version 
\bibliography{\jobname}
\usepackage[truexindy,splitindex]{imakeidx}
\makeindex[name=persons,program=truexindy,options=-M texindy]
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{book1,
    author  = "Greenwild, Dirk",
    title   = "Yellow pages",
    year    = "1998",
}
@book{book2,
    author    = "Jordan, Peter",
    title     = "Math in the world",
    year      = "1996",
}
\end{filecontents}

\DeclareIndexNameFormat{default}{%
  \usebibmacro{index:name}
    {\index[persons]}
    {\namepartfamily}
    {\namepartgiven}
    {\namepartprefix}
    {\namepartsuffix}}

\begin{document}

Foo\index[persons]{Smith, Joe}.
Foo\cite{book1}. Jordan\index[persons]{Jordan, Peter} foo\cite{book2}.

\printindex[persons]
\end{document}

更新:

如果我添加假命令,\makeindex[]警告就会消失。现在,我.idx在编译后也得到了两个文件。split-persons.idx与以前相同,但split.idx现在不仅包含人员记录,还包含进入主索引的书籍标题记录。我认为这就是问题所在。现在的内容split.idx

\indexentry[persons]{Smith, Joe}{1}
\indexentry[persons]{Greenwild, Dirk}{1}
\indexentry[split]{Yellow pages@\emph  {Yellow pages}}{1}
\indexentry[persons]{Jordan, Peter}{1}
\indexentry[persons]{Jordan, Peter}{1}
\indexentry[split]{Math in the world@\emph  {Math in the world}}{1}

答案1

如果我添加\makeindex,生成的.idx文件是

\indexentry[persons]{Smith, Joe}{1}
\indexentry[persons]{Greenwild, Dirk}{1}
\indexentry[andc]{Yellow pages@\emph  {Yellow pages}}{1}
\indexentry[persons]{Jordan, Peter}{1}
\indexentry[persons]{Jordan, Peter}{1}
\indexentry[andc]{Math in the world@\emph  {Math in the world}}{1}

这意味着还会biblatex为标题添加索引条目。这就是出现警告的原因:如果没有\makeindex,则会尝试在默认索引文件中进行写入,但无法成功,因为它未定义。

要么将其固定在侧面biblatex,要么直接添加\makeindex

请注意,首选声明biblatex

\addbibresource{<filename>.bib}

而不是\bibliography{<filename>}(请注意,.bib必须在首选声明样式中添加)。

相关内容