在案例环境之间对齐方程式和条件语句

在案例环境之间对齐方程式和条件语句

我有两个彼此下面的案例环境,我想围绕 = 符号对齐(我可以这样做),而且希望条件语句在系统之间对齐。

更具体地说,我有以下代码:

\usepackage{amsmath}

\begin{align}
    \pi_i &=
       \begin{cases}
            a - b - c + (\frac{a}{b}) c,  &\text{if either}\; x \; \text{or}\; y\; \text{is reached} \\
            0,  &\text{otherwise} 
    \end{cases}\\
    \pi_j &=
       \begin{cases}
            a - d, &\text{if}\;  z\; \text{is reached} \\
            0, &\text{otherwise} 
    \end{cases}
\end{align}

获得的输出是:

在此处输入图片描述

不过,我希望四个“如果...”和“否则”语句也能保持一致。

提前谢谢了!

答案1

您可以使用eqparbox。我定义了一个\eqmathbox命令,该命令以任意标签(每次使用时应该不同)和要排版的公式作为参数。

只有较长的公式才需要\eqmathbox,但使用也\eqmathbox{A}{0,}可以达到同样的效果。

\documentclass{article}
\usepackage{amsmath}
\usepackage{eqparbox}

\newcommand{\eqmathbox}[2]{% #1 = label, #2 = body
  \eqmakebox[#1][l]{$#2$}%
}

\begin{document}

\begin{align}
  \pi_i &=
  \begin{cases}
  \eqmathbox{A}{a - b - c + (\frac{a}{b}) c,}  & \text{if either $x$ or $y$ is reached} \\
  0,                                           & \text{otherwise}
  \end{cases}
\\
  \pi_j &=
  \begin{cases}
  \eqmathbox{A}{a - d,} & \text{if $z$ is reached} \\
  0,                    & \text{otherwise}
  \end{cases}
\end{align}

\end{document}

您需要运行两次(最初)才能获得相同的宽度。

在此处输入图片描述

注意设置文本条件的更简单方法。如果使用mathtools和则更简单cases*

\documentclass{article}
\usepackage{mathtools}
\usepackage{eqparbox}

\newcommand{\eqmathbox}[2]{% #1 = label, #2 = body
  \eqmakebox[#1][l]{$#2$}%
}

\begin{document}

\begin{align}
  \pi_i &=
  \begin{cases*}
  \eqmathbox{A}{a - b - c + (\frac{a}{b}) c,}  & if either $x$ or $y$ is reached \\
  0,                                           & otherwise
  \end{cases*}
\\
  \pi_j &=
  \begin{cases*}
  \eqmathbox{A}{a - d,} & if $z$ is reached \\
  0,                    & otherwise 
  \end{cases*}
\end{align}

\end{document}

答案2

以下解决方案采用适当定义的\parbox来包含第二个方程中的一种情况。 的宽度\parbox设置为$a - b - c + (\frac{a}{b}) c,$,即第一个方程中两种可能性中较大的一个。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath} % for 'align' and 'cases' environments and '\text' macro

\newlength\mylen
\settowidth\mylen{$a - b - c + (\frac{a}{b}) c,$} % set width of \parbox
\newcommand\mybox[1]{\parbox{\mylen}{$#1$}}

\begin{document}
\begin{align}
\pi_i &=
  \begin{cases}
  a - b - c + (\frac{a}{b}) c, &\text{if either $x$ or $y$ is reached} \\
  0,                           &\text{otherwise} 
  \end{cases}\\
\pi_j &=
  \begin{cases}
  \mybox{a - d,} &\text{if $z$ is reached} \\
  0,     &\text{otherwise} 
  \end{cases}
\end{align}
\end{document}

相关内容