词汇表包和复杂符号的问题

词汇表包和复杂符号的问题

词汇表包不适用于复杂符号,如下例所示。有解决方法吗?

\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage{glossaries}
\makeglossaries

\newglossaryentry{symb}
{
    name={\ensuremath{\overset{\rightarrow}{A}}},
    description={Description},
}

\begin{document}
  works: $\overset{\rightarrow}{A}$\\
  doesn't work: \gls{symb}

  \printglossary[type=main]
\end{document} 

答案1

以下是两种可能的解决方案:

转换\overset\vec

将第一个命令替换为标准矢量符号会给出不同的、不可定制的箭头格式;因此,给定的箭头符号可以在您的文档中用于指示矢量(根据您的判断,甚至是用户定义的参数约定)。

以下是 MWE:

\documentclass{scrartcl}
%
\usepackage{amsmath}
\usepackage{glossaries}
%
\makeglossaries
\newglossaryentry{symb}{%
 name={\ensuremath{\vec{A}}},
 description={Description}%
}
%
\begin{document}
%
Works: $\vec{A}$ \\
Now even this one works: \gls{symb}
\printglossary[type=main]
%
\end{document} 

输出:

在此处输入图片描述

保护命令\overset

如果您希望在覆盖参数中进行更多自定义,只需在考虑的代码行之前\ensuremath{}添加即可保护此命令的定义\protect仅有的在名称字段内。

以下是 MWE:

\documentclass{scrartcl}
%
\usepackage{amsmath}
\usepackage{glossaries}
%
\makeglossaries
\newglossaryentry{symb}{%
 name={\ensuremath{\protect\overset{\rightarrow}{A}}}, % this is now protected
 description={Description}%
}
%
\begin{document}
%
Works: $\overset{\rightarrow}{A}$\\
Now even this one works: \gls{symb}
\printglossary[type=main]
%
\end{document} 

期望的输出如下:

在此处输入图片描述

相关内容