我已经用该包创建了一个名称索引imakeidx
。我的问题是:
是否可以添加label
作为索引的键并\nameref{label}
在索引中打印例如?
伪代码可能看起来像这样:
\index[nameindex]{some_label}
如果标签是人名标签,我希望打印的是姓名,而不是标签本身。这可能吗?如何操作?
答案1
这是我以前的答案的变体,将文本标签写入文件.aux
。
该\labelText
命令实际上位于\createPerson
OP 的另一个问题的命令内
我在这里添加了索引,但仅限于使用无星号版本的情况。
\documentclass{article}
\usepackage{blindtext}
\usepackage{imakeidx}
\usepackage{hyperref}
\makeindex[name={nameindex},title={Index of persons}]
\newcounter{mylabelcounter}
\makeatletter
\NewDocumentCommand{\labelText}{smm}{%
\IfBooleanF{#1}{%
\index[nameindex]{#2}% Do not make an index here
}%
\refstepcounter{mylabelcounter}%
\immediate\write\@auxout{%
\string\newlabel{#3}{{1}{\thepage}{{#2}}{mylabelcounter.\number\value{mylabelcounter}}{}}%
}%
}
\makeatother
\begin{document}
\blindtext[5]
\index[nameindex]{\nameref{label:einstein}}
\labelText{Albert Einstein}{label:einstein}
\printindex[nameindex]
\end{document}