使词汇表 \glslink 尊重首次使用

使词汇表 \glslink 尊重首次使用

我想要一个\glslink-style 命令,它尊重缩写的第一次使用标志,即,如果这是第一次出现,则在括号中打印缩写。

梅威瑟:

\documentclass{article}
\usepackage{hyperref}
\usepackage[acronym,toc]{glossaries}

\makeglossaries


\newacronym{abc}{ABC}{Arbitrary Bull Crap}
\begin{document}


I would need some more \glslink{abc}{Arbitrary Bull Crappings}.
This is some \gls{abc}.

\end{document}

输出应该是:

I would need some more Arbitrary Bull Crappings (ABC). This is some ABC.

输出为:

I would need some more Arbitrary Bull Crappings. This is some Arbitrary Bull Crap (ABC).

不幸的是,我在文档中找不到相应的选项,而且摆弄包命令的惰性不是我的强项。

有简单的解决办法吗?

答案1

我已经发现一个办法,尽管我猜不是最好的。

在对文档进行足够的挖掘之后,我找到了该\ifglsunused{}{}{}命令,它根据给定 gls-entry 的首次使用标志执行代码。

\newcommand{\GlsPara}[2]{%
    \ifglsused{#1}{%
        \glslink{#1}{#2}%
    }{%
        \glslink{#1}{#2 (\acrshort{#1})\xspace}%
        \glsunset{#1}%
    }%
}%

\newcommand{\GlsParaPl}[2]{%
    \ifglsused{#1}{%
        \glslink{#1}{#2}%
    }{%
        \glslink{#1}{#2 (\acrshortpl{#1})\xspace}%
        \glsunset{#1}%
    }%
}%

由此我得出了这两个命令,它们根据首次使用状态添加我的简称,然后实际设置首次使用标志,因此一切都按预期工作。

不幸的是,这根本不尊重你选择的首字母缩略词样式,而是使用我的硬编码选择,"<long>(<short>)"如果有人想改进它以适应任何自定义样式 - 请继续:D

相关内容