我怎样才能让 \left 和 \right 考虑额外的尺寸?

我怎样才能让 \left 和 \right 考虑额外的尺寸?

据我了解,当分隔符标记为\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,因此提供33.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}

相关内容