当我有一个用括起来的运算符( \sin
,\det
,或用\operatorname
,定义)时,似乎左边有一个多余的空格。\DeclareMathOperator
|...|
查看 的输出(和$|\sin x|$ $\lvert \sin x|$
之间没有区别):
|
\rvert
我现在不喜欢这种间距,因为我已经注意到了。有没有办法让|\sin x|
输出与不手动编辑每个出现的情况相同\lvert \sin x|
?其他运算符也类似(当然,不会弄乱其他东西)
这似乎与以下问题相关但尚未得到解答:操作符名称宏前的空格
完成 MWE:
\documentclass{standalone}
\usepackage{amsmath}
\begin{document}
$|\sin x|$ $\lvert \sin x|$
\end{document}
答案1
输入
|\sin x|
是一个非常常见的错误,每次看到它我的眼睛都会流血。
问题在于|
被视为普通符号,这使得输入 很方便|x|
,但当一个人有
|-x|
(试试看)因为规则是,如果二进制操作符被普通符号包围\medmuskip
,那么它周围会有空格。同样,如果数学运算符跟在普通符号后面,则会插入一个细空格,这有利于
2\sin x
我们不希望“2”附加到“s”上。但该规则|\sin x|
也适用于。x
和之间没有插入空格|
,因为它们是两个普通符号。
一个解决方法是输入
|{\sin x}|
或更好,
\mathopen|\sin x|
因为打开原子和一个操作原子。
鉴于这一缺陷,amsmath
定义了两种新的分隔符,即\lvert
和\rvert
,其方式分别相当于执行\mathopen|
和\mathclose|
(但实际上并非如此,例如,为了允许具有)\bigl\lvert
。
实际上,这样做\bigl\lvert
与 相同\bigl|
,因为\bigl
将赋予其后续符号打开原子。对于\bigr\rvert
和 也类似\bigr|
。
所以,不,一旦你的打字稿有 ,你就没有什么可以做的了|\sin x|
。你不能重新定义|
为打开原子,因为这会破坏使用它的实例,其中关闭原子将是(中的第二个|\sin x|
)。
\lvert...\rvert
我已经训练自己每次都打字。
您还可以使用mathtools
并执行
\DeclareMathDelimiter{\abs}{|}{|}
所以
\abs{\sin x}
会做正确的事。