我想要一个\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