答案1
这似乎是一个精确的选择stix2
,确实
\DeclareSymbolFont{operators}{LS1}{stix2}{m}{n}
因此使用不添加字母间字距的字体。我不确定这是否是个好选择。1 .
该stix2
包确实
\renewcommand{\rmdefault}{stix2}
这意味着它使用自己的字体来显示文本(除非您传递选项notext
)。这是 Times 的克隆。但是,与许多其他字体不同的是,它有一个特定的直立字体,用于\mathrm
调整字母之间的字距不是已使用。它适用于直立变量,并不适用于直立类型的“多字母标识符”。
下面我提出的代码修复了这个问题,利用了(文本)运算符的使用可以在不影响包的意图的情况\operator@font
下进行更改这一事实。\mathrm
因此我定义了一个新的符号字体,称为textoperators
,它使用 OT1 编码中的文本字体系列(即\familydefault
),按照惯例并重新定义\operator@font
以指向这个符号字体。
\operatorname
但是,对于文本运算符(例如“Var”),必须使用,而不是\mathrm
(无论如何,在这种情况下这是错误的)。
对于一次性调用来说,\operatorname{Var}
这很方便。如果你有多次调用,最好添加
\DeclareMathOperator{\Var}{Var}
在文档前言中以及\Var
在文档正文中使用。
代码。
\documentclass{article}
\usepackage{amsmath}
\usepackage{stix2}
\DeclareSymbolFont{textoperators}{OT1}{\familydefault}{m}{n}
\SetSymbolFont{textoperators}{bold}{OT1}{\familydefault}{b}{n}
\makeatletter
\renewcommand{\operator@font}{\mathgroup\symtextoperators}
\makeatother
\begin{document}
Var
$\operatorname{Var}$
\end{document}
使用适当的标记。
脚注。
1对于文本运算符来说,“我认为这是完全错误的”是一种大大的轻描淡写。