使用词汇表包的数学符号词汇表中的直立字体

使用词汇表包的数学符号词汇表中的直立字体

我正在使用该glossaries包创建数学符号词汇表,但无法使其与符号中的直立文本配合使用。我尝试使用和\mathrm\textup只有当有两个或多个使用直立文本的定义时,它似乎才会引起问题。以下是 MWE 来说明问题:

\documentclass{book}
\usepackage{glossaries}
\makenoidxglossaries


\newglossaryentry{x}
{
name={$\mathrm{x}$},
description={description},
}

\newglossaryentry{y}
{
name={$\mathrm{y}$},
description={description},
}



\begin{document}

\chapter{Example}
\gls{x}
\gls{y}


\printnoidxglossary
\end{document}

结果是一大堆Undefined control sequence错误,以及一个Too many }'s错误。如果我删除其中一个定义(及其引用),或者删除至少一个命令,它就可以正常工作\mathrm

有没有办法让数学模式和直立文本很好地配合glossaries

答案1

如果您使用\makeglossaries\printglossaries而不是noidx版本,它会正常工作:

具有正直数学的词汇表

在这种情况下,您必须使用makeglossariesmakeglossaries-lite来生成词汇表。后者限制较多,但不需要 Perl,而且似乎在这里工作得很好。

完整代码:

\documentclass{book}
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{x}
{
  name={$\mathrm{x}$},
  description={description},
}
\newglossaryentry{y}
{
  name={$\mathrm{y}$},
  description={description},
}
\begin{document}

\chapter{Example}
\gls{x}
\gls{y}

\printglossary
\end{document}

答案2

作为@cfr答案的补充,如果您仍想使用“noidx”版本,则必须设置密钥sort。 (事实上,即使您使用其他答案,也应该这样做,否则makeindex将被视为 会抛出字母排序的$\mathrm{x}$字符序列。)$ \ m a t h r m { x } $

修改后的 MWE:

\documentclass{book}
\usepackage{glossaries}
\makenoidxglossaries


\newglossaryentry{x}
{
name={$\mathrm{x}$},
sort={x},
description={description},
}

\newglossaryentry{y}
{
name={$\mathrm{y}$},
sort={y},
description={description},
}



\begin{document}

\chapter{Example}
\gls{x}
\gls{y}


\printnoidxglossary
\end{document}

相关内容