考虑关注 MWE
\documentclass{scrartcl}
\usepackage{xspace}
\makeatletter
\newcommand\BC{\,v.\,Chr\@ifnextchar.{}{.\relax\@\xspace}}
\newcommand\AD{\,n.\,Chr\@ifnextchar.{}{.\relax\@\xspace}}
\makeatother
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{Augustus}{%
name={\textbf{Augustus}},%
description={Imperator
Caesar Divi Filius Augustus, geboren 63\BC, gestorben 14\AD, regierte von 27\BC bis 14\AD.},
first={Augustus (27\protect\BC--14\protect\AD)}
}
\begin{document}
\gls{Augustus}
\printglossaries
\end{document}
一切正常并且按预期工作:
但是我不明白为什么protect
中的命令first={Augustus (27\protect\BC--14\protect\AD)}
是必要的,因为我不需要它们description
?
答案1
有些字段默认展开,有些则不展开。这些字段在章节中有更详细的描述4.4 扩展在glossaries
手册中,但本质上name
,、description
和symbol
字段默认不展开,而所有其他字段都展开。keysort
是一个例外,由包选项覆盖sanitizesort
。展开的那些字段必须有脆弱命令保护。
要关闭所有扩展,请使用\glsnoexpandfields
。特定字段可以使用\glssetnoexpandfield{
场地}
。此单独设置将覆盖该\glsexpandfields
设置。