我有一个用于 setbuilder 符号的命令,
\newcommand{\set}[2]{\left\{ #1 \ \big| \ #2 \right\}}
相当简单的东西。但是,当我想在集合中使用较大的字符时,例如总和、分数等,我会遇到问题,因为垂直线不会缩放。有没有办法将其高度与外部括号绑定?
答案1
你可能会这样做:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\set}[2]{\left\{ {#1}\vphantom{\big|} \;\middle|\; #2 \right\}}
\begin{document}
\begin{gather*}
\set{x\in A}{x^{-1}=x^2} \\
\set{x\in A}{\frac{1}{x}=x^2}
\end{gather*}
\end{document}
意味着\vphantom{\big|}
至少使用\big
尺寸。
但是,您应该考虑到这一点,\left
并且\right
在大多数情况下会选择过大的尺寸。的文档mathtools
显示了替代方法。
答案2
TeX 原语\middle
就是为这些情况而设的。它是在 TeX 的 eTeX 扩展中引入的(大约在 90 年代)。它的参数是一个可扩展的括号/栅栏,类似于\left
和\right
原语的参数。它只能在给定的组内的某个地方使用,\left...\right
并且大小相同。
您的宏可以定义为
\def\set#1#2{\left\{ #1 \vbox to.85em{} \;\middle|\; #2 \right\}}
是\vbox to.85em{}
一个与尺寸相等的支柱\big
。