書誌エントリをインデックスに送信すると、biblatex
接頭辞が大文字化されることがあります。これは望ましくない場合があります。たとえば、接頭辞がバンまたは接頭辞付きのフランス語名デ索引では大文字で書かれていないこともあります。また、少し珍しいかもしれませんが、関連性があるかもしれませんが、最近、名前を小文字のみで引用することを望む研究者がいることを知りました (これは、SocSci のどこかで聞いたと思います)。
MWE:
\begin{filecontents}{test.bib}
@misc{vanTrijp2013,
author = {van Trijp, Remi},
date = {2013},
title = {A Comparison between approach A and B},
}
\end{filecontents}
\documentclass{article}
\usepackage[indexing=cite,style=authoryear,useprefix=true]{biblatex}
\addbibresource{test.bib}
\makeindex
\begin{document}
\cite{vanTrijp2013}
\end{document}
これにより、ファイルに次のエントリが生成されます.dx
。
\indexentry{van Trijp, Remi@\MakeCapital {van} Trijp, Remi}{1}
そして、インデックスエントリが生成されますヴァン・トライプ、レミ、 それでもヴァン・トライプ、レミ\MakeCapital
が望ましいでしょう。インデックス内のエントリの並べ替えを混乱させることなく、 をオプションにしたいと思います。
この問題は、がハードコードされている\mkbibindexname
に関連している可能性があります。biblatex.def
\MakeCapital
考えられる解決策としては、 を使用して、定義から をetoolbox
単純に削除することです。\MakeCapital
\patchcmd{\mkbibindexname}{\ifdefvoid{#3}{}{\MakeCapital{#3} }}{\ifdefvoid{#3}{}{#3 }}{}{}
しかし、このようにパッケージのコードを変更するのは持続可能な解決策ではないと思います。これを行うより良い方法をご存知ですか?
答え1
の実際の定義は\mkbibindexname
少々難しそうに見えますが、ユーザーははマクロの出力が気に入らない場合は、マクロを変更することになっています。したがって、あなたが提案したようにマクロにパッチを当ててもまったく問題ありません。マクロにパッチを当てる方がよいのか、再定義する方がよいのかという一般的な疑問があります(たとえば、Biblatex の bibmacros、参考文献ドライバー、フォーマット - パッチまたは再定義?) のような「小さな」マクロの場合、\mkbibindexname
通常はパッチではなく再定義ルートを優先しますが、これは個人の好みによります。
このアプリケーションでは、問題のマクロを次のように再定義することができます。
\documentclass{article}
\usepackage[indexing=cite,style=authoryear,useprefix=true]{biblatex}
\usepackage{makeidx}
\makeatletter
\renewcommand*{\mkbibindexname}[4]{%
\ifuseprefix
{\ifdefvoid{#3}{}{#3 }%
\@firstofone #1% remove spurious braces
\ifdefvoid{#4}{}{ #4}%
\ifdefvoid{#2}{}{, #2}}
{\@firstofone #1% remove spurious braces
\ifdefvoid{#4}{}{ #4}%
\ifboolexpe{%
test {\ifdefvoid{#2}}
and
test {\ifdefvoid{#3}}}
{}
{,}%
\ifdefvoid{#2}{}{ #2}%
\ifdefvoid{#3}{}{ #3}}}
\makeatother
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{vanTrijp2013,
author = {van Trijp, Remi},
date = {2013},
title = {A Comparison between approach A and B},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\makeindex
\begin{document}
\cite{vanTrijp2013}
\printindex
\end{document}
\MakeCapital
特定のオプションが設定されている場合は、オプションで名前に適用することも可能になりますが、その場合は、biblatex
そのことをどのように伝えるかを決定する必要があります。