使用 biblatex 进行索引 - 仅名称

使用 biblatex 进行索引 - 仅名称

我发现使用 makeidx 包、biblatex 的 indexing=cite 选项以及 \makeindex 和 \printindex 命令从 biblatex 生成索引很容易。但是,我发现制作仅包含名称而不包含标题的索引并不容易。请查看以下 MWE,它是我从 biblatex 示例文档 (20) 中摘录的,略作了调整:

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage{csquotes}

\usepackage[indexing,style=authortitle,backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}

\usepackage{makeidx}
\renewbibmacro*{citeindex}{\indexnames{labelname}{}}
\makeindex

\begin{document}

\section*{Indexing with the \texttt{makeidx} package}

\nocite{*}

\cite{piccato,gaonkar,malinowski,coleridge,gerhardt,cicero}

\index{Example entry}

\clearpage


\printbibliography

\printindex

\end{document}

我尝试插入

\renewbibmacro*{citeindex}{%
    \ifboolexpr{ test {\ifciteindex} and not test {\iffootnote} }
    {\indexnames{author}}{}}

按提议这里,但这似乎不起作用。那么,有什么想法可以让我仅获取名称索引吗?

答案1

您需要添加indexing=cite您的biblatex选项。

\usepackage[indexing=cite,style=authortitle,backend=biber]{biblatex}

为了避免\citetitle将标题添加到索引中,您需要修改宏\citetitle以更改其索引的内容。我假设如果您引用标题,您仍然希望作者出现在该页面的索引中,因此我进行了修改\citetitle以索引作者的姓名。但如果您不想这样做,您可以直接将索引代码从中删除\citetitle

这是一个完整的例子:

\documentclass[a4paper]{article}

\usepackage[american]{babel}
\usepackage{csquotes}

\usepackage[indexing=cite,style=authortitle,backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareCiteCommand{\citetitle}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printfield[citetitle]{labeltitle}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand*{\citetitle}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printfield[citetitle]{title}}
  {\multicitedelim}
  {\usebibmacro{postnote}}


\usepackage{makeidx}
\renewbibmacro*{citeindex}{\indexnames{labelname}{}}
\makeindex

\begin{document}

\section*{Indexing with the \texttt{makeidx} package}

\nocite{*}

\cite{piccato,gaonkar,malinowski,cicero}
\citetitle{coleridge,gerhardt}

\index{Example entry}

\clearpage


\printbibliography

\printindex

\end{document}

在此处输入图片描述

相关内容