更改 Biblatex 生成的索引中的作者排序

更改 Biblatex 生成的索引中的作者排序

我正在寻找一种方法来改变作者(或编辑者)姓名在 Biblatex 生成的索引中的排序方式。

在法语中,我们使用重音字母,例如éè,这些字母应与主字母一起排序,在本例中为e。每当名称包含这样的重音字母时,它就会无序排序,因此我们需要使用 来索引条目:no accents@with accents。我知道如何让 Biblatex 在索引中使用@,但不知道如何向其输入正确的字符串。

我如何确保 Biblatex 可以:

  • 将这些特殊字符转换为等效的基本拉丁字母,然后把名称打印到索引中(使用 Biber 或任何字符串处理包)
  • 使用特殊名称字段,例如indexauthor,其中包含仅使用基本拉丁字符的名称列表
  • 调整索引以便它正确地对所有特殊字符进行排序而无需使用@(我的基类正在使用回忆录,因此makeidx是首选引擎)
  • 或其他任何可行的方法

解决方案来自这个答案部分起作用,如以下示例所示:

\documentclass{article}

\usepackage[french]{babel}
\usepackage[indexing=true]{biblatex}
\usepackage{makeidx}
\makeindex

\begin{filecontents}{\jobname.bib}
@article{testcite,
  author = {Éliot, William and Doé, John},
  title = {Test Title},
  year = {2018},
  usera = {Eliot, William and Doe, John}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\renewbibmacro*{citeindex}{%
    {\indexnames{labelname}}{}}

\renewbibmacro*{index:name}[5]{%
  \usebibmacro{index:entry}{#1}
    {\iffieldundef{usera}{}{\thefield{usera}\actualoperator}\mkbibindexname{#2}{#3}{#4}{#5}}}

\makeindex

\begin{document}

\printindex

\cite{testcite}

\end{document}

名字被正确地编入索引,作为字母E,但第二个名字也被编入索引,因为我们对索引作者姓名(在本例中为)使用的是文字字段,而不是名称字段usera

是否可以使用名称字段来代替并确保两个名称都得到正确索引?我意识到由于字段的工作方式,这可能是不可能的。

在这种情况下,我该如何即时转换特殊字符?或者调整索引过程本身,以便正确对重音字母进行排序?

答案1

你需要一个可以正确处理 UTF8 的索引工具,这样就根本不需要手动操作排序了。这其实不是问题biblatex,而是索引工具的问题。

您可以xindy一起使用imakeidx

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[indexing=true,style=authoryear]{biblatex}
\usepackage[xindy, noautomatic]{imakeidx}
\def\xindylangopt{-M texindy -L french -C utf8}
\makeindex[options=\xindylangopt]

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{testcite,
  author = {Éliot, William and Doé, John},
  title = {Test Title},
  year = {2018},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\printindex

\index{hallo}
\cite{testcite}
\printbibliography
\end{document}

编译为

pdflatex document
biber document
pdflatex document
texindy -M texindy -L french -C utf8 document.idx
pdflatex document
pdflatex document

给出

在此处输入图片描述

相关内容