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}