我希望这是一个简单的问题,但我花了一天的时间寻找解决方案,但无济于事。我基本上想让命令的\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}