我想显示文本中使用的所有首字母缩略词的首次出现位置,但对于某些首字母缩略词,我更喜欢仅使用缩写形式(即使是第一次使用)。我的问题类似于上一个,但该解决方案不允许在缩写中显示那些长格式始终被隐藏的首字母缩略词。我尝试通过\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}
第一页:
第二页:
由于该indexonlyfirst
属性仅针对类别设置acronym
,因此 FAQ 条目只有一个位置(第 1 页),因为它仅在第一次使用时才被索引。abbreviation
类别没有设置此属性,因此 BBC 条目有两个位置(第 1 页和第 2 页),因为它在每次使用时都被索引\gls
。