上标/下标中的 \bigl 和 \bigr

上标/下标中的 \bigl 和 \bigr

当排版带有多个相邻括号的表达式时,我喜欢在最外层括号上使用\bigland\bigr以使其更易于阅读,尤其是连续有 3 个或更多括号时。不幸的是,这在下标/上标中不起作用:结果括号很大(相对于封闭的文本)而不是比正常情况稍大。在这种情况下可以使用\bigland的替代品吗\bigr

我使用它的最简单的例子是\bigl(f(x) + g(x)\bigr)。特别是\left\right并不是我真正想要的。

答案1

这是一个不完整的答案,因为它只考虑了字体用于下标,而不是分隔符必须应对的高度。

\documentclass{scrartcl}
\usepackage{mathtools,lmodern}

\makeatletter
\def\bBigg@#1#2{{\mathpalette{\bBigg@aux{#1}{#2}}\relax}}
\def\bBigg@aux#1#2#3%
  {\@mathmeasure\z@{\nulldelimiterspace\z@}%
     {#3\left#2\vcenter to#1\big@size{}\right.}%
   \box\z@}
\makeatother


\begin{document}

\[
  x^{\bigl(f(x) + g(x)\bigr)}
\]

\end{document}

在此处输入图片描述

(我希望我做对了。)

编辑

这是另一个想法,当在下标或上标中时,它也会缩小高度,这样括号就不会那么大了。不过,这是一个混乱的答案(我只是看了定义并做了一些修改)。

使用此代码

\makeatletter
\def\bBigg@#1#2{{\mathpalette{\bBigg@aux{#1}{#2}}\relax}}
\def\bBigg@aux#1#2#3%
  {\@mathmeasure\z@{\nulldelimiterspace\z@}%
     {#3%
       \setlength\dimen@{\dimexpr#1\big@size
         \ifx\scriptscriptstyle#3*26/50\fi
         \ifx\scriptstyle#3*34/50\fi
        \relax}
       \left#2\vcenter to\dimen@{}\right.}%
   \box\z@}
\makeatother

\scriptstyle这里是与\scriptscriptstyle的原始定义的比较\big

在此处输入图片描述

答案2

\vstretch该包的宏类似于scalerel\scalebox{1}[]{}只不过它在数学模式中工作并保留当前数学样式。因此,可以定义\bigs\bigrs等来利用此功能。

我目前已将拉伸值设置为 1.15 和 1.3,但您可以根据需要进行更改。在左侧,我显示了它在、 以及\parbox中自动运行。\textstyle\scriptstyle\scriptscriptstyle

在右边的 中\parbox,我使用了更大的尺寸,以说明两件事:1)可以将 和 合并\vstretch\hstretch放大的字形中;2)对于双倍高度构造,例如 周围\frac,“大”的大小可能需要根据数学样式进行更改,因为 本身\frac会更改其内容的数学样式。

\documentclass{article}
\usepackage{scalerel}
\def\bigs#1{\vstretch{1.15}{#1}}
\def\bigrs#1{\vstretch{1.3}{#1}}
\def\biggs#1{\vstretch{1.45}{\mkern-1mu\hstretch{1.3}{#1}\mkern-1mu}}
\def\biggrs#1{\vstretch{1.6}{\mkern-1mu\hstretch{1.5}{#1}\mkern-1mu}}
\def\Biggrs#1{\vstretch{1.75}{\mkern-1mu\hstretch{1.6}{#1}\mkern-1mu}}
\begin{document}
\parbox[b]{1in}{\parskip 1ex
$x^{\bigrs(x + \bigs(x(x+3)\bigs)\bigrs)}$\par
      $\bigs(f(x) + g(x)\bigs)$ \par
   $x^{\bigs(f(x) + g(x)\bigs)}$ \par
$y_{x^{\bigs(f(x) + g(x)\bigs)}}$ \par
}
\parbox[b]{1in}{\parskip 1ex
$       \biggs(\frac{\bigs(f(x) + g(x)\bigs)}{2}\biggs)$ \par
$   x^{\biggrs(\frac{\bigs(f(x) + g(x)\bigs)}{2}\biggrs)}$ \par
$y_{x^{\Biggrs(\frac{\bigs(f(x) + g(x)\bigs)}{2}\Biggrs)}}$ \par
}
\end{document}

在此处输入图片描述

相关内容