使用 hyperref 定义自定义标签

使用 hyperref 定义自定义标签

我想写,例如, \xlabel[custom text]{dual}。这不需要输出任何内容,但每当我写 \ref{dual}(或,例如, \xref{dual})时,它应该输出“custom text”。

有两个优点。

  1. 稍后可以更改概念的名称。
  2. 只要使用 \usepackage{hyperref},文本“自定义文本”仍可作为定义的链接*。

这里给出一个解决方案: 定义自定义标签。但是,使用 hyperref 时会出现错误:“段落在 \Hy@setref@link 完成之前结束。”

有人有解决方案吗?如果解决方案是单击 \ref 跳转到标签的位置而不是前一个编号项(例如方程式或定理),那就更好了,但即使是这样的近似跳跃也比没有好。

这里给出了另一种解决方案 粗体列举标签,非粗体引用它们。但是,它需要添加大量代码和新的编号项,而原始解决方案允许添加大量标签而无需改变演示形式。

答案1

您可以使用 hyperref 的一部分 \nameref:

\documentclass{article}

\usepackage{hyperref}
\makeatletter
\newcommand\xlabel[2][]{\phantomsection\def\@currentlabelname{#1}\label{#2}}
\makeatother
\begin{document}

\nameref{blub}

\bigskip

blblb\xlabel[some text regarding blub]{blub}

\end{document}

在此处输入图片描述

使用词汇表或首字母缩略词之类的软件包可以实现更复杂的系统。

相关内容