词汇表:使 \newglossaryentry 表现为 \newacronym

词汇表:使 \newglossaryentry 表现为 \newacronym

我希望这是一个简单的问题,但我花了一天的时间寻找解决方案,但无济于事。我基本上想让命令的\newglossaryentry行为像\newacronym命令一样,这样当我第一次使用\gls{uv}它时,它会打印“紫外线(UV)”而不仅仅是“UV”。

我之所以不使用,\newacronym是因为我使用alttree词汇表的样式将其分为三个部分:首字母缩略词、罗马符号和希腊符号。由于需要parent为这种样式设置标志,我知道我不能使用\newacronym命令。

下面是一个最小的工作示例。

\documentclass[12pt,twoside]{report}
\usepackage[utf8]{inputenc}

\usepackage[version=3]{mhchem}
\usepackage{dsfont}
\usepackage[nonumberlist,toc,nopostdot,style=alttree,xindy]{glossaries}

\makeglossaries
\glssetwidest{SNSPD}
\setacronymstyle{long-short}

\newglossaryentry{definition}{name={Acronyms}, description={\glspar}}
\newglossaryentry{roman}{name={Roman symbols}, description={\glspar}}
\newglossaryentry{greek}{name={Greek symbols}, description={\glspar}}

\newglossaryentry{snspd}{name=SNSPD, description={superconducting nanowire single photon detector}, parent=definition}
\newglossaryentry{uv}{name=UV, description={ultraviolet}, parent=definition}
\newglossaryentry{ir}{name=IR, description={infra-red}, parent=definition}


\newglossaryentry{sym:lambda}{name=\ensuremath{\lambda}, sort={lambda}, description={wavelength}, parent=greek}
\newglossaryentry{sym:hbar}{name=\ensuremath{\hbar}, sort={hbar}, description={reduced Planck constant}, parent=roman}

\begin{document}

\glsaddall
\printglossary[title={Definitions \& Abbreviations},toctitle={Definitions \& Abbreviations}]

\section{Section 1}
\Gls{uv} and \gls{ir}

\section{Section 2}
\Gls{uv} and \glspl{snspd}

\end{document}

产生如下形式的输出:

[glossary]
UV and IR
UV and SNSPDs

我希望输出是:

[glossary]
Ultraviolet (UV) and infra-red (IR)
UV and superconducting nanowire single photon detectors (SNSPDs)

我找到了该type=\acronymtype命令并认为我可以使用其,但我的 TeX 知识不足以实现我想要的结果。

谢谢阅读!

答案1

\newacronym有一个可选参数,允许您提供额外的键,这些键在内部传递给\newglossaryentry,因此您只需执行以下操作:

\newacronym[parent=definition]{uv}{UV}{Ultraviolet}

相关内容