biblatex による索引作成 - 名前のみ

biblatex による索引作成 - 名前のみ

biblatex から索引を作成するのは、makeidx パッケージ、biblatex の indexing=cite オプション、\makeindex コマンドと \printindex コマンドを使うと簡単です。しかし、タイトルを記載せずに名前だけの索引を作成するのは簡単ではありませんでした。biblatex のサンプル ドキュメント (20) から引用し、少し調整した次の MWE をご覧ください。

\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}

ここに画像の説明を入力してください

関連情報