我正在使用glossaries
Latex 中的包来处理我的所有首字母缩略词/缩写。但是,现在我想禁用一个特定的首字母缩略词,因为我反正也不经常使用它。但是,我不想把所有首字母缩略词都改成\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}
随着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
通过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 中的“公顷”,它会跳转到我的第一页。通常它会跳转到词汇表,但“公顷”现在位于不存在的词汇表中,称为“隐藏”。所以我仍然希望有更好的解决方案 ;)