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