是否有一个命令可以扩展到当前部分名称(然后我可以使用它\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
。