我使用这些\acrfull
\acrshort
命令。有时我也在 等命令中使用它们\section
。\subsection
现在我收到警告:
Token not allowed in a PDF string (Unicode):(hyperref) removing '\acrfull'
是否有可能删除该消息并确保 pdf 中显示正确的字符串?
答案1
这glossaries
手动的警告不要使用类似\acrfull
部分和标题命令的命令。
我强烈建议您不要在分段或标题命令或任何其他具有移动参数的命令的参数中使用本章中定义的命令。
除了扩展问题、PDF 书签和目录(或任何列表)中可能嵌套的超链接的问题之外,任何使用§6.1 中描述的命令
\gls
(-Like 命令(查询首次使用标志))在出现在目录(或任何列表)中时,其首次使用标志都会被取消设置。
glossaries
如果您将软件包与软件包一起使用,上述警告尤其重要hyperref
。相反,请使用§9 使用词汇表术语(无链接)中列出的可扩展命令之一(例如,\glsentrytext
但不是非可扩展的大小写更改版本,如\Glsentrytext
)。或者,通过 sectioning/caption 命令的可选参数提供替代方案或使用。hyperref
示例\texorpdfstring
:\chapter{An overview of \glsentrytext{perl}} \chapter[An overview of Perl]{An overview of \gls{perl}} \chapter{An overview of \texorpdfstring{\gls{perl}}{Perl}}
如果您想要保留通过类似命令可用的格式
\acrshort
(例如,如果您使用其中一种小型大写字母样式),那么您可能需要考虑glossaries-extra
为此目的提供命令的软件包。
因此,仅使用基础glossaries
包,您还需要类似以下内容:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{glossaries}
\makeglossaries
\newacronym{html}{HTML}{hypertext markup language}
\begin{document}
\tableofcontents
\section[\glsentrylong{html} (\glsentryshort{html})]{\acrfull{html}}
\acrshort{html}.
\printglossaries
\end{document}
这可确保 PDF 书签内容可扩展,并避免目录中嵌套超链接。
随着glossaries-extra
扩展包,您可以使用以下列出的命令之一4. 章节标题、页眉、标题和内容中的条目。 例如:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{glossaries-extra}
\makeglossaries
\setabbreviationstyle[acronym]{long-short}
\newacronym{html}{HTML}{hypertext markup language}
\begin{document}
\tableofcontents
\section{\glsfmtfull{html}}
\glsxtrshort{html}.
\printglossaries
\end{document}
请注意,像 这样的命令\glsfmtfull
不会索引或形成超链接,但它们确实遵循缩写样式,并且它们用于\texorpdfstring
为 PDF 书签提供版本。将其与\acrfull
索引和创建超链接的命令进行比较,这意味着\section{\acrfull{html}}
目录中的条目最终会被索引,以及标题中带有章节标题的每个页面。
请注意,如果您不想在第一次使用时使用完整形式,则glossaries-extra
可以使用缩写样式,这意味着您可以使用较短的而不是较长的:short
\gls
\glsxtrshort
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{glossaries-extra}
\makeglossaries
\setabbreviationstyle[acronym]{short}
\newacronym{html}{HTML}{hypertext markup language}
\begin{document}
\tableofcontents
\section{\glsfmtfull{html}}
\gls{html}.
\printglossaries
\end{document}
完整形式可以通过\glsxtrfull
普通文本以及\glsfmtfull
章节和标题命令获得。