词汇表:首字母缩略词:如果文本中仅使用首字母缩略词的缩写形式,如何仅显示缩写中首字母缩略词的第一次出现?

词汇表:首字母缩略词:如果文本中仅使用首字母缩略词的缩写形式,如何仅显示缩写中首字母缩略词的第一次出现?

我想显示文本中使用的所有首字母缩略词的首次出现位置,但对于某些首字母缩略词,我更喜欢仅使用缩写形式(即使是第一次使用)。我的问题类似于上一个,但该解决方案不允许在缩写中显示那些长格式始终被隐藏的首字母缩略词。我尝试通过\glsadd手动添加到第一次出现的 来解决这个问题\acrshort,但这会导致编译过程中出现错误。

这是针对我的问题的 MWE:

\documentclass{article}

\usepackage{hyperref}
\usepackage[abbreviations]{glossaries-extra}
\makeglossaries

\glssetcategoryattribute{acronym}{indexonlyfirst}{true}
\setabbreviationstyle[acronym]{long-short}

\newacronym{faq}{FAQ}{Frequently Asked Questions}
\newacronym{bbc}{BBC}{British Broadcasting Corporation}

\renewcommand*{\acrshort}[1][]{\glsxtrshort[noindex,#1]}

\begin{document}
Only short: \acrshort{faq}\\ %adding \glsadd{faq} here results in errors
Long form will be used as well: \acrshort{bbc}
\newpage
Again the short form: \acrshort{faq}\\
Normal usage: \gls{bbc}\\

\printabbreviations
\end{document}

任何帮助深表感谢。

答案1

最简单的方法是对short第一次使用时不应展开的首字母缩略词使用样式,long-short对应该展开的首字母缩略词使用样式。由于abbreviation类别具有long-short默认样式,类别acronym具有short默认样式,因此您可以只\newacronym对第一次使用时应显示完整形式的术语使用样式,而\newabbreviation对其他术语使用样式。

例如:

\documentclass{article}

\usepackage{hyperref}
\usepackage[abbreviations]{glossaries-extra}
\makeglossaries

\glssetcategoryattribute{acronym}{indexonlyfirst}{true}

\newacronym{faq}{FAQ}{Frequently Asked Questions}
\newabbreviation{bbc}{BBC}{British Broadcasting Corporation}

\begin{document}
Only short: \gls{faq}\\
Long form will be used as well: \gls{bbc}
\newpage
Again the short form: \gls{faq}\\
Normal usage: \gls{bbc}\\

\printabbreviations
\end{document}

第一页:

仅限简短:常见问题解答 也将使用长格式:英国广播公司 (BBC)

第二页:

缩写形式:FAQ 正常用法:BBC 缩写 BBC 英国广播公司 1, 2 FAQ 常见问题解答 1

由于该indexonlyfirst属性仅针对类别设置acronym,因此 FAQ 条目只有一个位置(第 1 页),因为它仅在第一次使用时才被索引。abbreviation类别没有设置此属性,因此 BBC 条目有两个位置(第 1 页和第 2 页),因为它在每次使用时都被索引\gls

相关内容