以 dcases 环境为中心

以 dcases 环境为中心

对于以下 dcases MWE,我该如何将零置于列的中心?

\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{equation}
    T  =
\begin{dcases}
    0 &, \text{ if A, or} \\
    \frac{1.0}{1.0 + X} &, \text{ if B, or} \\
    \frac{X}{1.0 + X} &, \text{ if C}
\end{dcases} 
\end{equation}
\end{document}

即代替生产的产生的

我希望它看起来像这样像这样

我发现以前的帖子描述了在案例环境中居中,但我无法让它们在 dcases 中工作

答案1

我不会这么做,但如果你真的想这么做,你必须修复dcasesmade的错误定义mathtools

\documentclass{article}
\usepackage{mathtools}

\MHInternalSyntaxOn
\renewcommand{\dcases}
 {
  \MT_start_cases:nnnn
    {\quad}
    {$\m@th\displaystyle##$\hfil}
    {$\m@th\displaystyle##$\hfil}
    {\lbrace}
 }
\MHInternalSyntaxOff

\begin{document}
\begin{equation}
    T  =
\begin{dcases}
    \hfil 0 & \text{, if A, or} \\
    \frac{1.0}{1.0 + X} &\text{, if B, or} \\
    \frac{X}{1.0 + X} &\text{, if C}
\end{dcases}
\end{equation}
\end{document}

原始定义\displaystyle{##}完全是错误的。

我也会避免无处悬挂的逗号。

在此处输入图片描述

答案2

低级\omit有帮助。它会删除单元格的原始格式。然后通过\hfil在两侧添加来手动将单元格居中。还需要设置数学模式。也dcases使用\displaystyle,但对于简单数字来说这并不重要。

\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{equation}
    T  =
\begin{dcases}
    \omit\hfil$0$\hfil &, \; \text{ if A, or} \\
    \frac{1.0}{1.0 + X} &, \; \text{ if B, or} \\
    \frac{X}{1.0 + X} &, \; \text{ if C}
\end{dcases}
\end{equation}
\end{document}

结果

答案3

当然,array如果默认设置不符合您的需要,也可以帮助您调整水平对齐:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath,colortbl}
\setlength{\minrowclearance}{5pt}
\begin{document}
\begin{equation}
  T =
  \left\{\begin{array}{@{}c@{\quad,\quad}l}
              0         & \text{if $A$, or} \\
    \dfrac{1.0}{1.0 + X} & \text{if $B$, or} \\
     \dfrac{X}{1.0 + X}  & \text{otherwise}
  \end{array}\right.
\end{equation}
\end{document}

相关内容