词汇表:首字母缩略词:使用 indexonlyfirst 和 acrshort 避免在数字列表中添加额外条目

词汇表:首字母缩略词:使用 indexonlyfirst 和 acrshort 避免在数字列表中添加额外条目

在较长的文档中,我需要在某些地方强制使用定义的缩写,例如\acrshort(tikz 图片),并希望利用词汇表功能的链接。

此外,我\gls在我的文本中使用了它。

在首字母缩略词词汇表中,我只想使用 给出第一次出现的页码indexonlyfirst

\acrshort我怎样才能避免列出每种用法?

MWE 取自修改后的幻灯片printglossary 缩写,仅显示 arcshort 在 glossary 中的第一次出现我的观点尚未得到明确答复:

\documentclass{article}

\usepackage{hyperref}
\usepackage[toc,indexonlyfirst]{glossaries}
\makeglossaries

\newacronym{sdk}{SDK}{Software Development Kit}

\begin{document}
Test \acrshort{sdk}
\newpage
Test \acrshort{sdk}.
\newpage
Test \acrshort{sdk}\newpage
Test \newpage
Test \acrshort{sdk}\newpage
Test \newpage
Test \newpage
Test \acrshort{sdk}\newpage
Test \acrshort{sdk}\newpage
\printglossaries%y[type=\acronymtype]
\end{document}

答案1

我认为使用扩展包可能会更容易实现glossaries-extra。这提供了额外的键和更灵活的缩写界面。缩写的定义使用\newabbreviation[选项]{标签}{短的}{长的}但为了帮助已有glossaries代码的用户,\newacronym重新定义了使用这个新接口,所以\newacronym[选项]现在相当于\newabbreviation[category=acronym,选项],但现在需要使用\setabbreviationstyle[acronym]而不是 来设置样式。现在使用和\setacronymstyle来访问短格式和长格式。原来的和命令仍可使用,但如果文档有多种缩写样式,则它们无法正常工作。(基础包仅允许一种缩写样式。)\glsxtrshort\glsxtrlong\acrshort\acrlongglossaries

扩展包还提供了一个新键noindex,可用于命令的可选参数,例如\gls。因此,我们可以利用这些新功能重新定义\acrshort,并自动设置键\glsxtrshortnoindex

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

现在您的任何\acrshort命令都不会执行任何索引(除非使用覆盖此设置)\acrshort[noindex=false]

这是您的 MWE 的修改版本。我添加了几个\gls命令以供比较:

\documentclass{article}

\usepackage{hyperref}
\usepackage{glossaries-extra}
\makeglossaries

\setabbreviationstyle[acronym]{long-short}

\newacronym{sdk}{SDK}{Software Development Kit}

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

\begin{document}
Test \acrshort{sdk}
\newpage
Test \acrshort{sdk}.
\newpage
Test \acrshort{sdk}\newpage
Test \newpage
Test \acrshort{sdk}\newpage
Test [gls] \gls{sdk}
\newpage
Test \newpage
Test [gls] \gls{sdk}
\newpage
Test \newpage
Test \acrshort{sdk}\newpage
Test \acrshort{sdk}\newpage
\printglossaries
\end{document}

词汇表中现在仅有两个位置列表中的条目sdk

词汇表图片

这些对应于 的两个实例\gls{sdk}。这些可以通过包选项来处理indexonlyfirst

\usepackage[indexonlyfirst]{glossaries-extra}

或者仅将此选项应用于category设置为的条目acronym(通过 完成\newacronym):

\glssetcategoryattribute{acronym}{indexonlyfirst}{true}

请注意,该设置将在类似命令中indexonlyfirst覆盖(但您仍然可以使用类似命令)。noindex=false\glsnoindex=false\acrshort

您仍然可以使用acronym包选项glossaries-extra

\usepackage[acronym]{glossaries-extra}

使用由 标识的词汇表类型\acronymtype(和\printacronyms作为 的快捷方式\printglossary[type=\acronymtype],或者您可以使用abbreviations包选项:

\usepackage[abbreviations]{glossaries-extra}

\printabbreviations(可以使用 来识别词汇表类型\glsxtrabbrvtype)。

以下是更新后的 MWE:

\documentclass{article}

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

\glssetcategoryattribute{acronym}{indexonlyfirst}{true}

\setabbreviationstyle[acronym]{long-short}

\newacronym{sdk}{SDK}{Software Development Kit}

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

\begin{document}
Test \acrshort{sdk}
\newpage
Test \acrshort{sdk}.
\newpage
Test \acrshort{sdk}\newpage
Test \newpage
Test \acrshort{sdk}\newpage
Test [gls] \gls{sdk}
\newpage
Test \newpage
Test [gls] \gls{sdk}
\newpage
Test \newpage
Test \acrshort{sdk}\newpage
Test \acrshort{sdk}\newpage

\printabbreviations
\end{document}

这将产生词汇表:

词汇表图片

相关内容