据我了解,当分隔符标记为\left
或 时\right
,其大小将从可用大小中选择。假设我定义了一些新大小,我该如何在适当的时候制作\left
和\right
使用它们?
为了具体说明,假设我为分隔符定义了一些自定义大小:
\usepackage{graphicx}
\def\bbig#1{\vcenter{\hbox{\scalebox{0.88}[0.77]{\Big#1}}}}
\def\biig#1{\vcenter{\hbox{\scalebox{0.95}[0.88]{\Big#1}}}}
\def\Biig#1{\vcenter{\hbox{\scalebox{0.95}[0.88]{\bigg#1}}}}
\def\biigg#1{\vcenter{\hbox{\scalebox{0.95}[0.9]{\Bigg#1}}}}
\def\Biigg#1{\vcenter{\hbox{\scalebox{1.05}[1.1]{\Bigg#1}}}}
然后我可以像这样使用它们:
$$
\Biigg\{ \Bigg\{ \biigg\{ \bigg\{ \Biig\{ \Big\{ \biig\{ \bbig\{ \big\{ \{
$$
其结果为:
到目前为止一切顺利。这些是我想要的尺寸,我可以将它们与任何分隔符一起使用。(要在数学模式之外使用它们,我们需要输入{\hbox{$...$}}
定义。)加上 -l 和 -r 版本\mathopen
和\mathclose
,我们就可以开始了。
但是,我宁愿使用\left
和,\right
而不是手动指定分隔符大小。如何才能让\left
和\right
知道我的自定义大小,以便在适当的时候选择它们?
(或者,有没有更好的方法来做到这一点?)
答案1
我不确定这是否回答了您的问题,但我个人采用不同的方法。
我创建了新的宏\fleft
,\fright
可选参数,它们代表固定左侧和固定权利。使用非空参数时,括号的大小是“固定的”。否则,它相当于常规的\leftX...\rightX
。
例如,在下面的代码中,\fleft(...\fright)
(不带参数)将括号尺寸调整为矩阵的大小。另一方面,如果参数为非空\fleft[3]\{...\fright[3]\}
,则括号是固定的。
这因素当等于或大于 3 时,对应于任何比 更大的下一个大括号\BigglX...\BiggrX
。间隔为 0.5,因此提供3
和3.5
将分别排版类似于\biggglX...\bigggrX
和 的括号\BigggrX...\BiggglX
。
\documentclass{article}
\usepackage{etoolbox}
\usepackage{mathtools}
\makeatletter
\NewDocumentCommand\fleft{O{}}{%
\IfValueTF{#1}{\notblank{#1}{\mathopen\bBigg@{#1}}{\left}}{\left}}
\NewDocumentCommand\fright{O{}}{%
\IfValueTF{#1}{\notblank{#1}{\mathopen\bBigg@{#1}}{\right}}{\right}}
\makeatother
\begin{document}
\[
\fleft(
\begin{bmatrix}a\\b\\c\\s\\e\end{bmatrix}
X
\fright)
\fleft[3]\{
\begin{bmatrix}a\\b\\c\\s\\e\end{bmatrix}
X
\fright[3]\}
\]
\end{document}