我有两个彼此下面的案例环境,我想围绕 = 符号对齐(我可以这样做),而且希望条件语句在系统之间对齐。
更具体地说,我有以下代码:
\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}