使用 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}

在此輸入影像描述

相關內容