扩展案例以“更具包容性”

扩展案例以“更具包容性”

关于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}

在此处输入图片描述

或者,可以将 改为dcasesaligned将数据放在 的第二个字段中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} 

在此处输入图片描述

相关内容