使用 `\left`, `\bigl`, `\Bigl` 来设置不同的水平(!)分隔符间距,

使用 `\left`, `\bigl`, `\Bigl` 来设置不同的水平(!)分隔符间距,

我使用\arrowvert作为中间分隔符。例如在集合定义中,即\lbrace x \arrowvert x < a \rbrace。此外,我尽量避免\left\right和 ,\middle而是使用 AMSmath 宏\bigl\Bigl,... 来明确设置大小。

如果我需要“正常”大小的分隔符,则不会使用任何宏,但随后我注意到水平 (!) 间距不同。考虑以下情况:\left\right并且\middle可以使用而不产生任何影响,因为所有封闭的符号最多具有正常大小。然后

\lbrace x \arrowvert x < a \rbrace

\left\lbrace x \middle\arrowvert x < a \right\rbrace

垂直方向看起来一样,但中间分隔符两侧的水平空间稍微多一点。实际上,后者的视觉效果看起来更正确。

AMSmath 关键字\big, \Big, ...在中间定界符周围插入了相同数量的额外空格。

但是,如果我需要正常大小的分隔符,但由于内容过大而无法使用三元组\left, \middle,我该怎么办?\right

不使用 AMSmath 手册建议的宏是不可能的,因为这样中间分隔符周围的额外空间就会丢失。不幸的是,似乎没有像\normall, \normal,\normalr三元组这样不缩放但适合其他宏的水平间距的东西。

答案1

啊,这是另一个问题。不幸的是,数学符号可以是 mathopen 类或 mathclose 类,但不能同时是两者。

但下面的构造应该可以:

\mathclose{\arrowvert}\mathopen{}

相当于 \middle\arrowvert。我测试了一下,在我的屏幕上看起来是一样的。但是,由于 \arrowvert 是 mathord 类型(而不是 mathrel,正如我之前所怀疑的那样),直接使用 \arrowvert 看起来也非常接近 \middle\arrowvert。

答案2

请注意参考文献中对 eTeX 中 \middle 的确切行为的说明(http://archiv.dante.de/projects/nts/archiv/etex-ref-prel.html#middle):

类似于 TeX 的 \left 和 \right,\middle 指定以下分隔符既可用作右分隔符,也可用作左分隔符;它将设置为与相对于前一个原子的右分隔符适当的间距,并且设置为与相对于后一个原子的左分隔符适当的间距。

你看,\middle 本身并不表现为数学关系。你可以通过添加 \mathrel 来强制它这样做:

\mathrel{}\middle\arrowvert\mathrel{}

應該做你想做的事。

相关内容