这是我的问题:
我可以修改我的索引中人物姓名的显示方式吗?
关于我的文档的信息
我正在使用这个包伊玛克和辛迪。我有两个索引,人名在主索引中,其他人名在第二个索引(称为 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}
注意:
我已经编辑了我最初的问题,因为其中混杂了不同的问题,我会在不同的问题上询问它们。
这种方法也很好,因为人名有单独的索引。如果人名与普通名字混合在一起,那么它们将无法很好地排序,因为命令\文本在开头。那么就需要在索引命令中添加@,但对于索引名称格式命令。