考虑以下 LaTex 代码,其中我在数学模式下为两个函数定义了词汇表项:一个应该呈现为纯文本,另一个应该呈现为粗体文本,但两者在词汇表中显示相同。有没有办法解决这个问题?
\documentclass{article}
\usepackage{glossaries-extra}
\makeglossaries
\newglossaryentry{regular}{name={\ensuremath{\text{regular}}},description={regular text in math mode}}
\newglossaryentry{bold}{name={\ensuremath{\textbf{bold}}},description={bold text in math mode}}
\begin{document}
$\text{regular}$\glsadd{regular}
$\textbf{bold}$\glsadd{bold}
\printglossary
\end{document}
上述代码保存在名为的文件中test.tex
,可以使用以下命令执行:
> lualatex test
> makeglossaries test
> lualatex test
排版输出为:
答案1
当您切换到数学模式时,您设置的任何格式都会渗透到 中\text
。有时,这就是您想要的(例如标题内的数学表达式)。但是,如果您想将文本格式重置为默认格式,请使用\textnormal{}
。
\documentclass{article}
\usepackage{glossaries-extra}
\makeglossaries
\newglossaryentry{regular}{name={\ensuremath{\textnormal{regular}}},description={regular text in math mode}}
\newglossaryentry{bold}{name={\ensuremath{\textbf{bold}}},description={bold text in math mode}}
\begin{document}
$\text{regular}$\glsadd{regular}
$\textbf{bold}$\glsadd{bold}
\printglossary
\end{document}
如果您使用\text{\mdseries ...}
或\textmd{...}
,您的文本将重置字体粗细,但会继承周围文本的形状。最常见的陷阱是它会在定理陈述中以斜体显示。如果您想要这样做,请使用它们。
答案2
您可以使用\mdseries
:
\documentclass{article}
\usepackage{glossaries-extra}
\makeglossaries
\newglossaryentry{regular}{name={\ensuremath{\text{\mdseries regular}}},description={regular text in math mode}}
\newglossaryentry{bold}{name={\ensuremath{\textbf{bold}}},description={bold text in math mode}}
\begin{document}
$\text{regular}$\glsadd{regular}
$\textbf{bold}$\glsadd{bold}
\printglossary
\end{document}