\DeclareMathOperator 运算符前的空格

\DeclareMathOperator 运算符前的空格

代码

\documentclass{article}
\usepackage{amsmath}

\DeclareMathOperator\rad{rad}

\begin{document}
The quotient $A/\rad A$ is hopefully semisimple
\end{document}

结果是

在此处输入图片描述

斜线和 之间的间距让rad我很头疼。有没有办法让运算符在这种情况下获得更合理的间距?

答案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

答案3

您可以尝试以下分割分数xfrac

\documentclass{article}
\usepackage{amsmath}
\usepackage{xfrac}

\DeclareMathOperator\rad{rad}

\begin{document}
The quotient $\sfrac{A}{\rad A}$ is hopefully semisimple
\end{document}

计算机现代字体示例

相关内容