脚注中的 `\index{...}` 与正文中的 `\index{...}` 不同

脚注中的 `\index{...}` 与正文中的 `\index{...}` 不同

大家好,我认为我对的整理有问题makeidx

根据这里的一些建议,我在文本中得到了类似这样的内容

\index[p]{Plutarco!demalignitate@\textit{De Malignitate Herodoti}!00855 @855A|qt}

\index[p]{Plutarco!demalignitate@\textit{De Malignitate Herodoti}!00868 @868f-869b|nn{\thefootnote}}

第一个是\index文本中的条目,第二个是脚注。我的问题是,即使我也将排序放在第二级索引上,它仍然将它们分开。

我使用这个包信息

\usepackage[splitindex]{imakeidx}
\makeindex[name=n, title=Nomi di persone e luoghi] 
\makeindex[name=p, title=Passi citati nel testo]
\makeindex[name=t, title=Altri testi citati]
\makeindex[name=pap, title=Papiri e manoscritti citati nel testo]

\newcommand{\nn}[2]{#2 \textit{n}#1}
\newcommand{\qt}[1]{\textbf{#1}}

.idx文件中我得到了这个

\indexentry{Plutarco!demalignitate@\textit{De Malignitate Herodoti}!00855 @855A|hyperindexformat{\qt}}{8}

\indexentry{Plutarco!demalignitate@\textit  {De Malignitate Herodoti}!00868 @868 b-c|hyperindexformat{\nn{33}}}{10}

有人能告诉我我这里做错了什么吗?我尝试\string在第一次排序后使用,但没有效果。


当然,抱歉:这是我正在使用的文件

\documentclass[12pt,a4paper]{book}
\usepackage[utf8x]{inputenx} 
\usepackage{palatino}       
\usepackage[LGR,T1]{fontenc}
\usepackage[english,german,polutonikogreek,italian]{babel}

\usepackage[splitindex]{imakeidx}
\makeindex[name=p, title=Passi citati nel testo,columns=1]
\newcommand{\nn}[2]{#2 \textit{n}#1}
\newcommand{\qt}[1]{\textbf{#1}}
\usepackage[hidelinks]{hyperref}
\begin{document} 
(855A\index[p]{Plutarco!demalignitate@\textit{De Malignitate Herodoti}!00855 @855A|qt})%
\footnote{DHM 868 B-C\index[p]{Plutarco!demalignitate@\textit{De Malignitate Herodoti}!00868 @868 b-c|nn{\thefootnote}}}
\printindex[p]
\end{document}

答案1

问题在于\index尽量不过早地标记其参数;但是当该\index命令出现在另一个命令的参数中时(在本例中\footnote,标记已经完成。因此在.idx文件中你会得到两个不匹配的条目,一个带有

@\textit{De Malignitate Erodoti}!

另一个是

@\textit  {De Malignitate Erodoti}!

解决方法是始终进行标记:

\newcommand{\indexp}[1]{\index[p]{#1}}

并使用\indexp代替\index[p]:这给出

在此处输入图片描述

相关内容