我正在尝试使用 \usepackage{glossaries} 引入词汇表中的某些条目,但我不知道如何引入带箭头的符号,例如矢量场。如果我不使用 name=$\overrightarrow{E}$,则运行正常,但我需要输入正确的符号。
这是我的参赛作品:
\newglossaryentry{symb:efield}{
name=$\overrightarrow{E}$,
description={Electric Field},
sort=symbolefield, type=symbolslist
}
并且我至少有 4 个与此相关的错误:
- \glo@symb:efield@text 定义中的参数数量非法。
- \glo@symb:efield@plural 定义中的参数数量非法。
- \glo@symb:efield@first 定义中的参数数量非法。
- \glo@symb:efield@firstpl 定义中的参数数量非法。
这是为什么?
答案1
尝试一下这个代码。
\documentclass{article}
\usepackage{glossaries}
\newglossary*{symbolslist}{Symbols list}
\newcommand{\field}[1]{\protect\overrightarrow{#1}} % use \protect
\newglossaryentry{symb:efield}{%
type=symbolslist,
name={\ensuremath{\field{E}}},
description={Electric Field},
sort=symbolefield,
}
\makeglossaries
\begin{document}
overrightarrow: $\field{AB}$
\medskip
\gls{symb:efield}
\printglossary[type=symbolslist]
\end{document}
有关的:https://tex.stackexchange.com/a/387939/161015
必须使用,\protect
因为 overrightarrow
不够强大。
或者作为替代品使用 \DeclareRobustCommand{\field}[1]{\overrightarrow{#1}}
。