具有链接兼容性的命名框

具有链接兼容性的命名框

我正在使用 xsavebox 包来保存和使用命名框(我希望这些框具有像 X.1.3 这样的名称),并且我想建立指向这些框的链接,但它们与任何类型的引用都不兼容。有什么想法吗?

\usepackage{xsavebox}
\usepackage{navigator}

\anchor{K.1.1}
\begin{xlrbox}{X.1.3}
    \anchor{X.1.3}
    \jumplink{K.1.1}{K.1.1}
\end{xlrbox}
...
\xusebox{X.1.3}

使用它会出现错误:

pdfTeX error (ext4): link annotations cannot be inside an XForm.

答案1

我从 Alexander Grahn 那里得到了这个答案,所以我在这里分享它。 Alexander 的 Gitlab

\documentclass{article}
\usepackage{hyperref}

\newcommand\namedsbox[2]{%
  \ifcsname#1\endcsname\else%
    \expandafter\newsavebox\csname#1\endcsname%
  \fi%
  \expandafter\sbox\csname#1\endcsname{#2}%
}
\newcommand\usenamedbox[1]{\expandafter\usebox\csname#1\endcsname}

\begin{document}
  \namedsbox{my named box}{\hyperlink{target}{Click!}}%
  \hypertarget{target}{Target.}
  \usenamedbox{my named box}
\end{document}

相关内容