我正在使用 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}