是否有一个命令可以扩展到当前部分名称?

是否有一个命令可以扩展到当前部分名称?

是否有一个命令可以扩展到当前部分名称(然后我可以使用它\index{})?

这类似于当前章节/图表的名称,但我喜欢获取部分的名称而不是当前类型,\nameref{}使用索引时也不起作用。我试过了

\label{sec:foo} \index{\nameref{sec:foo}}

这将显示 Index 中的当前部分名称,但其顺序与其他非 Index 条目不符\nameref{}。我相信这是因为它们是超链接的。

答案1

\documentclass[a4paper]{article}
\usepackage{makeidx}
\usepackage{nameref}
\usepackage{hyperref}
\makeindex

\newcommand{\indexref}[1]{%
  \sbox0{\nameref{#1}}%
  \expandafter\index\expandafter{\GetTitleStringResult}}

\begin{document}
\section{A section}\label{x}\indexref{x}
\end{document}

根据 的文档nameref.sty,引用的标题\label{x}存储在宏中\GetTitleStringResult(全局)。因此,我们\nameref{x}在框中发出只是为了获取标题,并在应用 之前扩展包含标题的宏\index

相关内容