因此,我的文档中有两个缩写词。其中一个与另一个有关:
\newacronym[plural=AChems,firstplural=Artificial Chemistries (AChems)]{AChem}{AChem}{Artificial Chemistry}
\newacronym[plural=ssAChems,firstplural=subsymbolic \glspl{AChems} (ssAChems)]{ssAChem}{ssAChem}{subsymbolic \gls{AChem}}
目的是,第一个缩写词在第一次使用时应读作“人工化学 (AChem)”,第二次使用时应读作“AChem”。第二个缩写词在第一次使用时应读作“亚符号 AChem (ssAChem)”(如果人工化学缩写词已被使用),第二次使用时应读作“ssAChem”。
这实际上工作正常,直到我需要第一个字母大写。当发生这种情况时,我收到以下错误:
Package glossaries Error: Glossary entry `\MakeTextUppercase {A}Chems' has not been defined...
\makefirstuc
我猜这是使用包含命令的东西时出现的问题\gls
。
那么我该如何克服这个问题并以这种方式使用首字母缩略词呢?或者,是否有一种最佳实践,根本不要求我在其他人中使用首字母缩略词?
答案1
用户glossaries
手册建议不要使用嵌套链接(即\gls
在命令使用的字段值中使用诸如 之类的命令\gls
)。更多信息请参阅嵌套链接手册的部分glossaries-extra
。
建议的方法如下:
使用基础glossaries
包。
long
在、longplural
和部分short
中shortplural
根据需要写出实际文本,并\acrlong
在 中使用description
:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{glossaries}
\makeglossaries
\setacronymstyle{long-short}
\newacronym[longplural=Artificial Chemistries]
{AChem}{AChem}{Artificial Chemistry}
\newacronym[longplural=subsymbolic Artificial Chemistries,
description={subsymbolic \acrlong{AChem}}]
{ssAChem}{ssAChem}{subsymbolic Artificial Chemistry}
\begin{document}
First use: \gls{AChem}, \gls{ssAChem}.
Next use: \gls{AChem}, \gls{ssAChem}.
\glsresetall
First use: \glspl{AChem}, \glspl{ssAChem}.
Next use: \glspl{AChem}, \glspl{ssAChem}.
\glsresetall
First use: \Gls{AChem}, \Gls{ssAChem}.
Next use: \Gls{AChem}, \Gls{ssAChem}.
\printglossaries
\end{document}
使用glossaries-extra
扩展包。
该glossaries-extra
软件包提供了一些专门用于此用途的命令,但它们仍然有一些注意事项,特别是不要在字段开始时使用它们,因为这会干扰首字母大写的命令。
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{glossaries-extra}
\makeglossaries
\setabbreviationstyle[acronym]{long-short}
\newacronym[longplural=Artificial Chemistries]
{AChem}{AChem}{Artificial Chemistry}
\newacronym[longplural=subsymbolic \glsxtrp{longpl}{AChem}]
{ssAChem}{ssAChem}{subsymbolic \glsxtrp{long}{AChem}}
\begin{document}
First use: \gls{AChem}, \gls{ssAChem}.
Next use: \gls{AChem}, \gls{ssAChem}.
\glsresetall
First use: \glspl{AChem}, \glspl{ssAChem}.
Next use: \glspl{AChem}, \glspl{ssAChem}.
\glsresetall
First use: \Gls{AChem}, \Gls{ssAChem}.
Next use: \Gls{AChem}, \Gls{ssAChem}.
\printglossaries
\end{document}
如果嵌套术语出现在字段的开头,或者该字段用于排序,或者字段值需要在可扩展的上下文中使用,则最好使用第一种方法(需要进行适当的修改以将其转换为可用于glossaries-extra
):
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{glossaries-extra}
\makeglossaries
\setabbreviationstyle[acronym]{long-short}
\newacronym[longplural=Artificial Chemistries]
{AChem}{AChem}{Artificial Chemistry}
\newacronym[longplural=subsymbolic Artificial Chemistries,
description={subsymbolic \glsxtrlong{AChem}}]
{ssAChem}{ssAChem}{subsymbolic Artificial Chemistry}
\begin{document}
First use: \gls{AChem}, \gls{ssAChem}.
Next use: \gls{AChem}, \gls{ssAChem}.
\glsresetall
First use: \glspl{AChem}, \glspl{ssAChem}.
Next use: \glspl{AChem}, \glspl{ssAChem}.
\glsresetall
First use: \Gls{AChem}, \Gls{ssAChem}.
Next use: \Gls{AChem}, \Gls{ssAChem}.
\printglossaries
\end{document}
或者:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{glossaries-extra}
\makeglossaries
\setabbreviationstyle{long-short}
\newabbreviation[longplural=Artificial Chemistries]
{AChem}{AChem}{Artificial Chemistry}
\newabbreviation[longplural=subsymbolic Artificial Chemistries,
description={subsymbolic \glsxtrlong{AChem}}]
{ssAChem}{ssAChem}{subsymbolic Artificial Chemistry}
\begin{document}
First use: \gls{AChem}, \gls{ssAChem}.
Next use: \gls{AChem}, \gls{ssAChem}.
\glsresetall
First use: \glspl{AChem}, \glspl{ssAChem}.
Next use: \glspl{AChem}, \glspl{ssAChem}.
\glsresetall
First use: \Gls{AChem}, \Gls{ssAChem}.
Next use: \Gls{AChem}, \Gls{ssAChem}.
\printglossaries
\end{document}