运营商名称的字体

运营商名称的字体

将所有操作员名称设置为无衬线字体的正确方法是什么?

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\def\operator@font{\sf}
\makeatother
\DeclareMathOperator\operator{operator}
\begin{document}
An $\operator 1$.
\end{document}

似乎可以解决问题,但amsopn.sty定义

\def\operator@font{\mathgroup\symoperators}

似乎做得更多……

@顺便说一句,如果有一种免费的方式来做到这一点就太好了。

答案1

您可以定义一个新的符号字体,也可以重新定义\mathsf使用它,否则您会浪费一个数学组,而且只有 16 个:

\DeclareSymbolFont{sfoperators}{OT1}{cmss}{m}{n}
\DeclareSymbolFontAlphabet{\mathsf}{sfoperators}

\makeatletter
\def\operator@font{\mathgroup\symsfoperators}
\makeatother

答案2

你在评论中询问如何让它工作unicode-math,并被要求发布一个新问题。为了任何寻找答案(或标记重复问题)的人的利益:

要将 operatorfont 设置为 以外的其他字体\mathrm,请使用例如:

\setoperatorfont\mathsf

这也适用于您用 定义的数学字体\setmathfontface,而不仅仅是内置的数学字母。

要更改\mathrm字体,请使用\setmathrm。如果您要在 中使用它\boldmath,您可能还需要\setboldmathrm

相关内容