stix2 改变 mathrm 中的间距

stix2 改变 mathrm 中的间距

比较

\documentclass{article}
\usepackage{stix2}
\begin{document}
$$\mathrm{Var}$$
\end{document}

相同示例,但没有\usepackage{stix2}

使用 stix2: 在此处输入图片描述

没有stix2: 在此处输入图片描述

使用 stix2 时,“V”和“a”字母之间的间距在我看来太大,而没有它,一切看起来都很好。

这可能是什么原因造成的?这是预期行为吗?我能以某种方式修复它吗?(具体来说,我想让它\operatorname{Var}看起来漂亮,但目前 stix2 还做不到。)

答案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对于文本运算符来说,“我认为这是完全错误的”是一种大大的轻描淡写。

相关内容