我想输入一个由左花括号分隔的方程组。我尝试使用 \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
使用了\arraystretch
1.2,这与 TeX 的标准括号大小不太兼容。我更喜欢使用 1.1 而不是 1.2;当然,这意味着括号之间的垂直空间会小一些。也许你会认为括号仍然太大,但在我看来,这是一个很好的折衷方案。(括号尖端的距离看起来有点大,只是a
因为x
和u
没有上升者和下降部分。)
答案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}