\mathop 和 \mathord 之间的区别

\mathop 和 \mathord 之间的区别

取决于此问题我现在完全糊涂了,什么时候该把某个东西定义为运算符,什么时候该定义为普通的数学符号。egreg 在他的评论恒等函数应被用作普通数学符号,而不是运算符。我想了解其中的原因。

是否存在什么经验法则,何时将某物声明为运算符,何时将某物定义为普通数学符号?

例如,我在源文件中看到有人定义伴随作用,如下所示:

\DeclareMathOperator{\Ad}{Ad}

但 egreg 建议像这样定义身份函数

\newcommand{\id}{\mathrm{id}}.

导致这种用法的根本原理是什么?

答案1

对于这个案例来说,这是一个艰难的决定。

在链接的问题中,符号“id”显然是在函子的上下文中使用的,所以像

\id\otimes f

并且,如图所示,将其声明为运算符将不起作用。

不太可能使用\id x“应用于X”,并将\id(x)正确打印。

还有一个问题:如果必须输入r\id\otimes fr应该是一个标量)那么可能

\newcommand{\id}{\operatorname{id}\!{}}

会是一个更好的选择,因为在r\id,但右边的运算符性质因添加负薄空间和空普通原子而被抵消。不幸的是,几乎没有希望实现上下文感知\id也能在右边工作,并且对于“idr”(意思是右乘法),您需要诉诸\id\,r

其他功能符号(例如\sin等)通常不会受到此问题的影响。

答案2

\mathop包含两种类型的数学对象,都是在某些方面从左开始操作的一元运算符。TeX 使用一种简单的启发式方法来决定哪个意味着

1.仅由一个字符组成的一元运算符垂直居中(例如\sum\int

  1. 由多个字符组成的一元运算符被视为函数名称(罗马字体)。

当你有既不能像一元运算符那样从左边操作,也不能像二元运算符那样在左边和右边连接两个操作数的东西时,最好把它变成一个\mathord。一个\mathord对象对其左右邻居是中性的,而一元运算符与其右邻居的绑定比与左邻居的绑定更强(表现为不同的间距和潜在的断点)。

还有一个单独的类,里面有二元运算符\mathbin: 放在两个项之间,中间有额外的空格。这个类包含符号+-等等。二元运算符在某些情况下可以是一元的(比如(-1)),TeX 非常擅长区分这些情况。

\mathord编辑:这是vs.效果的简短演示\mathop:前两行演示了左乘法因子的间距,第二对行演示了对否定右项的操作,包括对减号作为一元/二元运算符的不同解释。

生成代码如下:

\documentclass{minimal}
\begin{document}
\begin{eqnarray*}
  x \mathop{\mathrm{op}} x\\
  x \mathord{\mathrm {ord}} x\\
  \mathop{\mathrm{op}} -x\\
  \mathord{\mathrm {ord}} -x
\end{eqnarray*}
\end{document}

在此处输入图片描述

相关内容