我使用\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{}
應該做你想做的事。