像文档中的超级引用一样引用文本

像文档中的超级引用一样引用文本

我有一张包含许多条目的表,我想引用该键,以便其他人可以快速查找该键的含义。

以下是一些伪代码:

Table
snippet1\label{?key1} & longexplanatory text
snippet2\label{?key2} & longexplanatory text
snippet3\label{?key3} & longexplanatory text

connect \ref{key1} with \ref{key13}

编译后我希望文本显示为

connect snippet1 with snippet3

读者应该能够在点击时快速跳转到表格snippet-N

答案1

下面使用\refstepcounter(而不是内部的\@currentlabel)虚拟计数器将文本变成可以引用的内容。如果使用包,则\raisebox移动\refstepcounter一点以移动锚点位置hyperref。在的位置\refstepcounter hyperref设置锚点。

\documentclass{article}
\newcounter{keylabel}
\newcommand*{\keylabel}[2]{%
  \leavevmode
  \raisebox{2ex}[0pt][0pt]{%
    \renewcommand*{\thekeylabel}{#1}%
    \refstepcounter{keylabel}%
    \label{#2}%
  }%
  #1%
}

\usepackage{hyperref}

\begin{document}
\begin{tabular}{@{}ll@{}}
\keylabel{snippet1}{key1} & longexplanatory text\\
\keylabel{snippet2}{key2} & longexplanatory text\\
\keylabel{snippet3}{key3} & longexplanatory text\\
\end{tabular}

connect \ref{key1} with \ref{key3}
\end{document}

结果

相关内容