关于dcases
环境,我注意到,即使现在我已经扩展了所有的数学符号(例如frac
),当使用导数时,括号实际上并不能完全覆盖数学符号所需的空间。
让我们来看下面的例子
由代码给出
\[
\begin{dcases}
\frac{\partial U}{\partial l}\mathrm{d} l =
(\mathrm{d} U)_{\theta=\text{cost}} = \nabla U \cdot\mathrm{d}\boldsymbol{l} =
-\nabla(\boldsymbol{E}_0 \cdot\boldsymbol{p})\cdot\mathrm{d}\boldsymbol{l}\\
\\
\frac{\partial U}{\partial \theta}\mathrm{d}\theta =
\frac{\partial}{\partial\theta}(-E_0p\cos\theta)\mathrm{d}\theta =
E_0p\sin\theta\mathrm{d}\theta =
\boldsymbol{E}_0\times\boldsymbol{p}\cdot\mathrm{d}\boldsymbol{\theta}
\end{dcases}
\]
正如您所注意到的 - 如果您没有注意到,请查看下一张图片 - 即使只是极小的一部分,导数也会逃离支架。
现在,我知道这听起来像我疯了,但这个东西破坏了我的 LaTeX 的和谐,所以我拼命寻找解决方案。我认为如果环境中有一些选项dcases
可以稍微扩展一些情况,那就太好了,但如果没有这样的“设施”,怎么解决呢?
答案1
我同意 egreg 的观点,认为这没什么好担心的,但可以(我下面就是这么做的)在\partial U
顶部方程式的 和\partial \theta
底部方程式的 中添加一个“支柱”。正如 barbara 所指出的,如果支柱仅仅是\strut
,它可能会引入一些不必要的垂直间距,因此我将其定义\htstrut
为掩盖深度并\strut
相应地使用它。
\documentclass{article}
\usepackage{mathtools,tabstackengine}
\newcommand\htstrut{\setbox0=\hbox{\strut}\dp0=0pt}
\begin{document}
\[
\begin{dcases}
\frac{\partial U\htstrut}{\partial l}\mathrm{d} l =
(\mathrm{d} U)_{\theta=\text{cost}} = \nabla U \cdot\mathrm{d}\boldsymbol{l} =
-\nabla(\boldsymbol{E}_0 \cdot\boldsymbol{p})\cdot\mathrm{d}\boldsymbol{l}\\
\\
\frac{\partial U}{\partial \theta\strut}\mathrm{d}\theta =
\frac{\partial}{\partial\theta}(-E_0p\cos\theta)\mathrm{d}\theta =
E_0p\sin\theta\mathrm{d}\theta =
\boldsymbol{E}_0\times\boldsymbol{p}\cdot\mathrm{d}\boldsymbol{\theta}
\end{dcases}
\]
\end{document}
或者,可以将 改为dcases
,aligned
将数据放在 的第二个字段中aligned
,然后\addstackgap[<length>]
改为aligned
,并应用\left\{
。在这种情况下,不需要\strut
。
\documentclass{article}
\usepackage{mathtools,stackengine}
\stackMath
\begin{document}
\[
\left\{\addstackgap[4pt]{\begin{aligned}
&\frac{\partial U}{\partial l}\mathrm{d} l =
(\mathrm{d} U)_{\theta=\text{cost}} = \nabla U \cdot\mathrm{d}\boldsymbol{l} =
-\nabla(\boldsymbol{E}_0 \cdot\boldsymbol{p})\cdot\mathrm{d}\boldsymbol{l}\\
\\
&\frac{\partial U}{\partial \theta}\mathrm{d}\theta =
\frac{\partial}{\partial\theta}(-E_0p\cos\theta)\mathrm{d}\theta =
E_0p\sin\theta\mathrm{d}\theta =
\boldsymbol{E}_0\times\boldsymbol{p}\cdot\mathrm{d}\boldsymbol{\theta}
\end{aligned}}\right.
\]
\end{document}
上面,我在环境4pt
上方和下方添加了一个间隙aligned
。例如,如果我选择了8pt
,它看起来会像这样:
答案2
您只需使用empheq
环境即可完成此操作。无需加载,amsmath
因为前者加载mathtools
,后者加载amsmath
。
我还改进了差分符号的间距,定义了一个\dd
命令;并使用该包简化了偏微分的输入esdiff
。
\documentclass{article}
\usepackage{empheq, esdiff}
\newcommand*{\dd}{\mathop{\kern0pt\mathrm{d}}\mkern-2mu{}}
\begin{document}
\begin{empheq}[left=\empheqlbrace]{align*}
& \diffp{U}{l}\dd l =
(\dd U)_{\theta=\text{cost}} = \nabla U \cdot\dd \boldsymbol{l} =
-\nabla(\boldsymbol{E}_0 \cdot\boldsymbol{p})\cdot\dd\boldsymbol{l}\\
\\
& \diffp{U}{\theta}\dd\theta =
\diffp{}{\theta}(-E_0p\cos\theta)\dd\theta =
E_0p\sin\theta\dd\theta =
\boldsymbol{E}_0\times\boldsymbol{p}\cdot\dd\boldsymbol{\theta}
\end{empheq}
\end{document}