使用标签作为索引标记并使用 nameref 打印索引中的值

使用标签作为索引标记并使用 nameref 打印索引中的值

我已经用该包创建了一个名称索引imakeidx。我的问题是:

是否可以添加label作为索引的键并\nameref{label}在索引中打印例如?

伪代码可能看起来像这样:

\index[nameindex]{some_label}

如果标签是人名标签,我希望打印的是姓名,而不是标签本身。这可能吗?如何操作?

答案1

这是我以前的答案的变体,将文本标签写入文件.aux

\labelText命令实际上位于\createPersonOP 的另一个问题的命令内

我在这里添加了索引,但仅限于使用无星号版本的情况。

\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}

相关内容