答案1
对于这个案例来说,这是一个艰难的决定。
在链接的问题中,符号“id”显然是在函子的上下文中使用的,所以像
\id\otimes f
并且,如图所示,将其声明为运算符将不起作用。
不太可能使用\id x
“应用于X”,并将\id(x)
正确打印。
还有一个问题:如果必须输入r\id\otimes f
(r应该是一个标量)那么可能
\newcommand{\id}{\operatorname{id}\!{}}
会是一个更好的选择,因为在r和\id
,但右边的运算符性质因添加负薄空间和空普通原子而被抵消。不幸的是,几乎没有希望实现上下文感知\id
也能在右边工作,并且对于“idr”(意思是右乘法),您需要诉诸\id\,r
。
其他功能符号(例如\sin
等)通常不会受到此问题的影响。
答案2
\mathop
包含两种类型的数学对象,都是在某些方面从左开始操作的一元运算符。TeX 使用一种简单的启发式方法来决定哪个意味着
1.仅由一个字符组成的一元运算符垂直居中(例如\sum
和\int
。
- 由多个字符组成的一元运算符被视为函数名称(罗马字体)。
当你有既不能像一元运算符那样从左边操作,也不能像二元运算符那样在左边和右边连接两个操作数的东西时,最好把它变成一个\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}