Hyperref 和嵌套 \glsxtrshort 和 \glsfmtlong

Hyperref 和嵌套 \glsxtrshort 和 \glsfmtlong

手册建议在首字母缩略词定义中交叉引用其他首字母缩略词时glossaries-extra使用和 。然而,当与和 一起使用时,这种机制似乎会失效,如以下 MWE 所示:\glsxtrshort\glsfmtlonghyperref

\documentclass{article}
\usepackage{hyperref}
\usepackage{glossaries-extra}

\newabbreviation{ara}{ARA}{a random abbreviation}
\newabbreviation{aaca}{AACA}{another abbreviation containing \glsxtrshort{ara}}

\begin{document}

\section{Section with \glsfmtlong{aaca}}

Text

\end{document}

编译时,hyperref抱怨命令\glsxtrshort

Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\glsxtrshort' on input line 10.

因此,在 PDF 导航中,章节标题显示为“包含 ara 的另一个缩写的章节”,即查找“ara”不会得到“ARA”。

看起来\glsxtrshort 应该是可扩展的,因此不会给 造成麻烦hyperref,但由于某种原因,这失败了。我怎样才能正确引用其他首字母缩略词而不丢失超链接功能?

答案1

您可以按如下方式访问简短描述:

\documentclass{article}
\usepackage{hyperref}
\usepackage{glossaries-extra}

\newabbreviation{ara}{ARA}{a random abbreviation}
\newabbreviation{aaca}{AACA}{another abbreviation containing \glsxtrshort{ara}}
\pdfstringdefDisableCommands{%
  \def\glsxtrshort#1{\csname glo@#1@short\endcsname}%
}
\begin{document}


\section{Section with \glsfmtlong{aaca}}

Text

\end{document}

在此处输入图片描述

相关内容