如何调整左花括号上方与内容之间的空白?

如何调整左花括号上方与内容之间的空白?

我想输入一个由左花括号分隔的方程组。我尝试使用 \left{ 和 aligned、cases、array 和 numcases。但这四种方法的结果有些不同。以下是屏幕截图和源文件: 截屏

\documentclass{article}

\usepackage{amsmath,amssymb,cases}

\begin{document}
      \begin{align*}
     &\left\{\begin{aligned}
       &x=x,\\
        &u=u(x,t).
          \end{aligned}\right.   
          ~~~&& \begin{cases}
         x=x,\\
          u=u(x,t).
          \end{cases}
         ~~ &&
           \left\{\begin{array}{l}
         x=x,\\
      u=u(x,t).
        \end{array}\right.\\
      &\text{align} && \text{cases} &&\text{array}     
       \end{align*}

       using numcases:
      \begin{numcases}{}
        x=x,\nonumber\\
         u=u(x,t). \nonumber
      \end{numcases}
\end{document}

我的问题是如何调整左花括号顶端和方程式第一行之间的间距,以便使用数组等的结果与使用 numcases 的结果相同。目前,我没有办法做到这一点。

在此处输入图片描述

当我尝试使用 scalerel.sty 时,结果如上:我不知道为什么?可能是我安装 scalerel.sty 时出错了。

答案1

我想说的是,带numcases支架有点太低的aligned。尽管如此,我完全同意和的牙套cases太大了。以下是我经常采取的补救措施:

输出

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\def\env@cases{%
  \let\@ifnextchar\new@ifnextchar
  \left\lbrace
  \def\arraystretch{1.1}%
  \array{@{\,}l@{\quad}l@{}}%
}
\makeatother
\begin{document}
\[
  \begin{cases}
    x=x, \\
    u=u(x,t).
  \end{cases}
  \quad
  \begin{cases}
    a=a, \\
    x=x, \\
    u=u(x,t).
  \end{cases}
  \quad
  \begin{cases}
    a=a, \\
    b=b, \\
    x=x, \\
    u=u(x,t).
  \end{cases}
\]
\end{document}

问题是amsmath'scases使用了\arraystretch1.2,这与 TeX 的标准括号大小不太兼容。我更喜欢使用 1.1 而不是 1.2;当然,这意味着括号之间的垂直空间会小一些。也许你会认为括号仍然太大,但在我看来,这是一个很好的折衷方案。(括号尖端的距离看起来有点大,只是a因为xu没有上升者和下降部分。)

答案2

\!执行细小的退格操作。我已将它们放置在您的 MWE 中,并带有偏见,以展示它们可能去往何处。

\documentclass{article}
\usepackage{amsmath,amssymb}
  \usepackage{cases}
 \begin{document}
  \begin{align*}
 &\left\{\!\!\begin{aligned}
   &x=x,\\
    &u=u(x,t).
      \end{aligned}\right.   
      ~~~&& \begin{cases}
     \!\!x=x,\\
      \!\!u=u(x,t).
      \end{cases}
     ~~ &&
       \left\{\!\!\!\!\begin{array}{l}
     x=x,\\
  u=u(x,t).
    \end{array}\right.\\
  &\text{align} && \text{cases} &&\text{array}     
   \end{align*}

   using numcases:
  \begin{numcases}{}
    \!\!\!x=x,\nonumber\\
    \!\!\! u=u(x,t). \nonumber
              \end{numcases}
  \end{document}

在此处输入图片描述

如果用这种方法得到的近似空间不够准确,可以使用 \rule{长度}{0ex}来获得更精确的空间,其中长度可以是正数或负数。

编辑以调整支架的垂直范围:

\documentclass{article}
\usepackage{scalerel}
\usepackage{verbatimbox}
\usepackage{amsmath,amssymb,cases}

\begin{document}

\def\x{\mbox{\addvbuffer[-0.8ex -.1ex]{$\begin{aligned}
       &x=x,\\
        &u=u(x,t).
          \end{aligned}$}}
}
\def\z{\mbox{\addvbuffer[-0.8ex -.1ex]{$\begin{array}{l}
       x=x,\\
        u=u(x,t).
          \end{array}$}}
}
      \begin{align*}
     &\scaleleftright[1.7ex]{\{}{\x}{.}
          ~~~&&  \begin{cases}
     \x
      \end{cases}
         ~~ &&
     \scaleleftright[1.7ex]{\{}{\z}{.}
        \\
      &\text{align} && \text{cases} &&\text{array}     
       \end{align*}

       using numcases:
      \begin{numcases}{}
        x=x,\nonumber\\
         u=u(x,t). \nonumber
      \end{numcases}

\end{document}

在此处输入图片描述

相关内容