TeX 知道“左”和“右”分隔符之间的区别(例如(
和)
),并据此调整间距。但是,分隔符的左版本和右版本|
是相同的,因此 TeX 必须进行猜测。通常 TeX 会猜对,但有时猜错。现在,我知道我可以使用\left
和\right
来强制 TeX 将给定的内容视为|
左或右分隔符,但是它们具有改变大小的额外效果(这也许不是我想要的)。即使是最小的“大”命令\bigl
和\bigr
也会增加大小(尽管只是很小的量)。有没有办法在不改变其大小的情况下制作|
左或右分隔符?
这是一个具体的例子,我知道如何去做,但这不是一个通用的解决方案:
\documentclass{article}
\usepackage{amsmath,amssymb}
\begin{document}
$|\operatorname{A}|$
$|{\operatorname{A}}|$
$\left|\operatorname{A}\right|$
\end{document}
第一行的间距不正确,第二行和第三行的间距正确。第二行效果很好,但我觉得有点乱。第三行不太好,因为如果中间的内容更高,它会增加分隔符的大小(也许我不想这样)。
(是的,我知道第一行间距不正确的原因是因为 TeX 将第二行视为|
的“参数” \operatorname{A}
。)
答案1
如果你在数学公式中说,\mathopen|
那么竖线将被解释为开放原子(IE,左分隔符),但其大小不会改变。同样,\mathclose|
产生一个 Close 原子(IE(右分隔符)的大小没有任何变化。另请参阅练习 18.14 的答案TeXbook. 梅隆:
% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly
% declare the paper format.
\usepackage[T1]{fontenc} % Not always necessary, but recommended.
% End of standard header. What follows pertains to the problem at hand.
\begin{document}
For example, \( \mathopen|-x\mathclose| \neq |-x| \).
\end{document}
尽管如此,我认为@Bernard 建议的解决方案一条评论,也就是说,使用\DeclarePairedDelimiter
,是正确的做法。
编辑:
正如 Barbara Beeton 在她的评论中提醒的那样,如果问题仅限于单竖线和双竖线(并且如果您不想加载该mathtools
包,而是坚持使用amsmath
),您还可以使用四个预定义命令\lvert
、\rvert
、\lVert
和\rVert
:l
代表“左”,r
代表“右”,小写 v
代表单竖线,大写V
代表双竖线。
有关更深入的讨论,请参见使用 \big| 和 \right| 与 \bigr\rvert 和 \right\rvert(我记得这个问题是因为其中一个答案是我的!)。