如何更改数学运算符的默认字体?问题是,如果我使用命令\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 来实现这一点。