如何更改数学运算符的默认字体

如何更改数学运算符的默认字体

如何更改数学运算符的默认字体?问题是,如果我使用命令\DeclareMathAlphabet\mathrm{U}{eur}{b}{n},则只有新定义的运算符的字体会发生变化。对于\sin或之类的运算符\sup,不会发生任何变化。

\documentclass[english]{report}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{amsthm,amssymb}
\DeclareMathAlphabet\mathrm{U}{eur}{b}{n}

\begin{document}
$$\sin,\sup$$

\end{document}

答案1

通常的定义\sin

\mathop{\operator@font sin}\nolimits

while\operator@font意味着

\mathgroup\symoperators

你找不到定义的地方\symoperators,因为这是

\DeclareSymbolFont{operators}...

说明。因此,您需要的是新的符号字体,而不是数学字母表。

\documentclass{article}

\DeclareSymbolFont{euleroperators}{U}{eur}{m}{n}
\SetSymbolFont{euleroperators}{bold}{U}{eur}{b}{n}

\makeatletter
\renewcommand{\operator@font}{\mathgroup\symeuleroperators}
\makeatother

\begin{document}
$\sin(\pi/2-\alpha)=\log 1+\cos\alpha$
\end{document}

在此处输入图片描述

amsmath当加载或\operatorname使用\DeclareMathOperator时这也会起作用。

如果你还想定义一个新\matheul命令,请添加

\DeclareSymbolFontAlphabet{\matheul}{euleroperators}

到上面的命令。请注意,\mathrm将继续像以前一样运行。

答案2

fontspec,您可以下载Neo Euler OpenType 字体\mathrm并使用以下方式更改字体

\setmathrm{Neo Euler}[Scale=MatchLowercase]

除非你的序言中有其他内容破坏了这一点,否则这也应该会改变你的操作员字体。在 中unicode-math,你可以将操作员字体设置为与以下字体不同的字体\mathrm

\setmathfontface\matheur{Neo Euler}[Scale=MatchLowercase]
\setoperatorfont\matheur

@egreg 的出色回答已经告诉您如何使用 NFSS 来实现这一点。

相关内容