如何禁用某个特定术语的首字母缩略词

如何禁用某个特定术语的首字母缩略词

我正在使用glossariesLatex 中的包来处理我的所有首字母缩略词/缩写。但是,现在我想禁用一个特定的首字母缩略词,因为我反正也不经常使用它。但是,我不想把所有首字母缩略词都改成\gls{xyz}普通术语或\acrlong{xyz},而是希望在我的首字母缩略词定义 () 中进行某种切换\newacronym{}{}{},以防我以后改变主意。当然,如果我禁用它,这个首字母缩略词就不应该列在词汇表中。有什么想法吗?

答案1

方法 1:创建“忽略词汇表”

忽略的词汇表使用 定义\newignoredglossary。分配给它的任何条目默认禁用超链接。忽略的词汇表没有关联的索引文件,并且会被迭代命令(如 )跳过\printglossaries

仅在基础包中使用多种首字母缩略词样式有点棘手glossaries,但只要条目位于不同的词汇表中,这是可能的:

\documentclass{article}

\usepackage[colorlinks]{hyperref}
\usepackage[acronyms]{glossaries}

\newignoredglossary{ignored}

\makeglossaries

\setacronymstyle{dua}
\newacronym[type=ignored]{ha}{ha}{hectare}

\setacronymstyle{long-short}
\newacronym{mi}{mi}{mile}

\defglsentryfmt[ignored]{\GlsUseAcrEntryDispStyle{dua}}

\begin{document}
First use: \gls{ha} and \gls{mi}.

Next use: \gls{ha} and \gls{mi}.

\printglossaries
\end{document}

首次使用:公顷和英里 (mi)。下次使用:公顷和英里。缩写 mi 英里。1

随着glossaries-extra扩展包中,缩写样式按照category(不是type)设置:

\documentclass{article}

\usepackage[colorlinks]{hyperref}
\usepackage[acronyms,postdot]{glossaries-extra}

\newignoredglossary{ignored}

\makeglossaries

\setabbreviationstyle[ignored]{long-noshort}
\setabbreviationstyle[acronym]{long-short}

\newacronym[type=ignored,category=ignored]{ha}{ha}{hectare}

\newacronym{mi}{mi}{mile}

\begin{document}
First use: \gls{ha} and \gls{mi}.

Next use: \gls{ha} and \gls{mi}.

\printglossary[type=\acronymtype]
\end{document}

(这产生与以前相同的结果。)

方法 2:入口计数

此方法使用\glsenableentrycount\cgls而不是来\gls计算条目被引用的次数,并且仅当条目被引用多次时才对其进行索引。

\documentclass{article}

\usepackage[colorlinks]{hyperref}
\usepackage[acronyms]{glossaries}

\makeglossaries

\glsenableentrycount

\setacronymstyle{long-short}

\newacronym{ha}{ha}{hectare}
\newacronym{mi}{mi}{mile}

\begin{document}
First use: \cgls{ha} and \cgls{mi}.

Next use: \cgls{mi}.

\printglossaries
\end{document}

由于总数只能在文档末尾获得,因此这需要稍微修改一下构建过程。如果文档名为myDoc.tex

pdflatex myDoc
pdflatex myDoc
makeglossaries myDoc
pdflatex myDoc

首次使用:公顷和英里 (mi)。下次使用:mi。缩写 mi 英里。1

通过glossaries-extra,您可以使用\GlsXtrEnableEntryCounting,它将行为重新定义\gls\cgls,允许您指定触发值(如果总计数大于此值则\gls行为正常)并指示哪些类别应该受到影响。

\documentclass{article}

\usepackage[colorlinks]{hyperref}
\usepackage[acronyms,postdot]{glossaries-extra}

\makeglossaries

\GlsXtrEnableEntryCounting{acronym}{1}

\setabbreviationstyle[acronym]{long-short}

\newacronym{ha}{ha}{hectare}
\newacronym{mi}{mi}{mile}

\begin{document}
First use: \gls{ha} and \gls{mi}.

Next use: \gls{mi}.

\printglossary[type=\acronymtype]
\end{document}

这又需要:

pdflatex myDoc
pdflatex myDoc
makeglossaries myDoc
pdflatex myDoc

(结果和以前一样。)

答案2

我找到了一个解决方案。以下是公顷 (ha) 的首字母缩略词/缩写示例:

\newacronym[\glsshortpluralkey=ha]
{ha}{ha}{hectare}

现在,我不想再使用它了。相反,应该始终使用长格式,并且它不应该出现在词汇表中。所以我必须做出一些改变:首先,我将缩写形式重新定义为与长格式相同。然后我说它应该始终使用缩写形式(现在是长格式),因为否则第一次出现将像这样:公顷(公顷)。然后我将这个首字母缩略词移至未定义的词汇表,因为我不想让它出现在真正的词汇表中:

\newacronym[\glsshortpluralkey=hectares]
{ha}{hectare}{hectare}
\glsmoveentry{ha}{hidden} 
\glsunset{ha}

目前它可以正常工作,但效果并不好。例如,如果我现在单击 PDF 中的“公顷”,它会跳转到我的第一页。通常它会跳转到词汇表,但“公顷”现在位于不存在的词汇表中,称为“隐藏”。所以我仍然希望有更好的解决方案 ;)

相关内容