如何在数学模式下定义自定义中缀运算符?\operatorname 的替代方案

如何在数学模式下定义自定义中缀运算符?\operatorname 的替代方案

作为我所做事情的一个例子不是想要,拿

$\mathrm{C} \operatorname{F} 4$

在星号和操作数之间产生不同的间距

$a \ast 4$

我该如何缓解这种情况?

我不能使用数学模式环境之外的定义。

在这种特定情况下,我想用作\ast \ast中缀符号。

答案1

像这样吗?

\documentclass{article}
\newcommand{\astast}{\mathbin{{\ast}{\ast}}}
\begin{document}
$A \astast B$
\end{document}

在此处输入图片描述

解释:\ast是二元运算符,带有空格。用括号括起来{\ast}会变成普通的数学原子,因此两个相邻的原子之间没有中间空间。然后\mathbin将整个结构变成二元运算符。

答案2

如果你想模拟**用于指数运算的“双星号”,那么

\mathbin{{*}{*}}

就是您所需要的。

星号*本身产生垃圾桶原子,而不需要\mathbin围绕它。然而两个垃圾桶一排原子不能组成一个垃圾桶原子,因为垃圾桶需要周围的操作数。因此,第二个*将被变成一个普通符号。

但是,你可以将任何子公式变成垃圾桶原子,将其作为 的参数输入\mathbin。根据规则,两个星号之间不会使用空格\mathbin{**}(第一个星号将变成一元符号,就像 中的一样-1,第二个星号将变成普通符号,因为上面的规则)。但是,最好更小心并输入

\mathbin{{*}{*}}

(括号隐藏了将其变成普通的本质*),因为输出

\mathbin{***}

可能会让你大吃一惊。相反,\mathbin{{*}{*}{*}}不会有这个问题。

相关内容