\documentclass[a4paper]{article}
\usepackage{amsmath}
\begin{document}
Instead of $f(x) = x^2 + 17 \mod 43$, I prefer $f(x) = x^2 + 17\hspace{-1mm}\mod 43$.
\end{document}
为什么模数运算符被定义为带有这个明显的额外空间?这背后有什么道理吗?
我正处于重新定义它的边缘。
答案1
首先:它不是一个“运算符”,而是一种编写特定等价关系的传统方式。正确的语法是\mod{43}
。
Plain TeX 只有\pmod
,定义为
% plain.tex, line 1089
\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)}
所以空间是1em(以数学符号字体表示),因为18mu就是1em。
在 LaTeX 内核中,定义基本相同,即
% latex.ltx, line 4437:
\def\pmod#1{%
\allowbreak\mkern18mu({\operator@font mod}\,\,#1)}
另一方面,amsmath
也定义了\mod
和\pod
。前者省略了括号,后者有括号但没有“mod”。
\newcommand{\pod}[1]{\allowbreak
\if@display\mkern18mu\else\mkern8mu\fi(#1)}
\renewcommand{\pmod}[1]{\pod{{\operator@font mod}\mkern6mu#1}}
\newcommand{\mod}[1]{\allowbreak\if@display\mkern18mu
\else\mkern12mu\fi{\operator@font mod}\,\,#1}
的定义\pmod
是根据\pod
;你可以看到a\equiv b\pod{n}
,之后b,显示样式中为 1em 空间,其他样式中为 8/18em 空间,后跟 (n)。与\pmod
括号前的间距相同,但在括号后“mod”和 6/18em 的空格将位于n。
间距\mod
基本相同,但在文本样式或以下情况下将使用 12/18em 而不是 8/18em。请注意,\,\,
与 相同\mkern 6mu
。
所以就只有你了。;-)
\pod
当然,您可以通过重新定义和来自由更改间距\mod
。
答案2
等间距版本\bmod
与 Sebastiano 现已删除的答案中的一样,它具有您似乎想要的间距,但在这里是错误的,因为它意味着 x^2 + (17 mod 43),这是错误的解释。您希望在 mod 之前有更大的空间将其与 17 分开,并明确表示它是适用于等式的附加条件,该等式应被解释为 mod 43 的一致性。