格式化索引中的名称,使其以小写字母显示

格式化索引中的名称,使其以小写字母显示

这是我的问题

我可以修改我的索引中人物姓名的显示方式吗?

关于我的文档的信息

我正在使用这个包伊玛克辛迪。我有两个索引,人名在主索引中,其他人名在第二个索引(称为 NC)中。

人们的姓名以三种方式被索引:

  • 通过选项索引=引用比布拉特克斯
  • 通过经典的 \index{Doe, John} 命令
  • 通过一些个人命令

命令如下:

\newcommand{\n}[2]{#1~\textsc{#2}\index{#2, #1}}
\newcommand{\nx}[1]{\textsc{#1}\index{#1}}

我的索引中一切正常,只是名称在索引中显示的方式是:“Doe, John”。我希望它们以这种方式显示:“DOE John”(DOE 是小写字母,就像“\textsc{Doe} John”一样)

如果没有名字(这就是我使用 \nx 命令的原因),例如“亚里士多德”,我希望它也以小写字母出现。

你知道我该如何做吗?

谢谢

答案1

这个 MWE 可以在我运行 Ubuntu 的电脑上运行(在另一台运行 Windows 的电脑上却不行,但我猜问题出在安装上而不是 MWE):

\documentclass[12pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage[backend=biber, style=authoryear, ibidtracker=true, indexing=cite, citestyle=authoryear-ibid]{biblatex}

\usepackage{imakeidx}
\makeindex
\makeindex[name=nc]

\renewbibmacro*{citeindex}{{\indexnames{author}}{}}
\DeclareIndexNameFormat{default}{\usebibmacro{index:name}{\index}{\textsc{#1}}{#3}{#5}{#7}}

\usepackage{filecontents}
\begin{filecontents}{jobname.bib}
@book{BOOK,
author = {Doe, John},
title = {great book},
date = {2015-04-01},
}
@article{ARTICLE,
author = {{Group of Smart People}},
title = {great article},
journaltitle = {journal},
date = {2015-04-01},
}
@book{BOOK2,
author = {Plato},
title = {Gorgias},
date = {2015-04-01},
}
\end{filecontents}

\addbibresource{jobname.bib}

\newcommand{\n}[2]{#1~\textsc{#2}\index{\textsc{#2}, #1}}
\newcommand{\nx}[1]{\textsc{#1}\index{\textsc{#1}}}
\newcommand{\x}[1]{#1\index[nc]{#1}}
\newcommand{\y}[1]{\emph{#1}\index[nc]{#1@\emph{#1}}}


\begin{document}

\chapter{one}

\nx{Plato} enjoyed \x{philosophy}

\y{logos}

\chapter{two}

\cite[35]{BOOK}

\chapter{three}

\n{John}{Doe}

\cite[33]{BOOK2}

\chapter{four}

\nx{Cicero}

\chapter{five}

\cite[35]{ARTICLE}

\printbibliography
\printindex
\printindex[nc]

\end{document}

注意:

  • 我已经编辑了我最初的问题,因为其中混杂了不同的问题,我会在不同的问题上询问它们。

  • 这种方法也很好,因为人名有单独的索引。如果人名与普通名字混合在一起,那么它们将无法很好地排序,因为命令\文本在开头。那么就需要在索引命令中添加@,但对于索引名称格式命令。

相关内容