![\DeclareMathOperator 运算符前的空格](https://linux22.com/image/455437/%5CDeclareMathOperator%20%E8%BF%90%E7%AE%97%E7%AC%A6%E5%89%8D%E7%9A%84%E7%A9%BA%E6%A0%BC.png)
答案1
您可以定义一个斜线,\mathopen
这样它在 之前就没有空格了\mathop
。我会使用特定的命令,但如果你想的话,你也可以使用\mathcode"8000
来定义/
这种方式
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator\rad{rad}
\mathchardef\origslash\mathcode`\/
\newcommand\mslash{\origslash\mathopen{}}
\begin{document}
$ 1 \mslash 2 $
$ 1 \mslash \rad x $
$ 1 \mslash \log y $
$ 1 \mslash (a+b) $
{\catcode`\/=\active\global\let/\mslash}
\mathcode`\/="8000
$ 2 / 2 $
$ 2 / \rad x $
$ 2 / \log y $
$ 2 / (a+b) $
\end{document}
答案2
如果您不想在编辑器中执行“全部替换”,您可以尝试以下宏,重新定义/
数学模式下字符的行为:
\def\specslash{\mathchar`/\futurelet\next\specslashA}
\def\specslashA{\ifx\next\rad \mskip-\thinmuskip \fi}
{\catcode`/=13 \global\let/=\specslash}
\mathcode`\/="8000