重新定义案例命令

重新定义案例命令

我不喜欢\begin{cases} \end{cases}只允许使用一个对齐选项卡,因为我通常想使用两个。

\left\{
\begin{array}{rlr}
  a & = c & x=1 \\
  b & = d & x=2 1 
\end{array}
\right.

是否可以重新定义cases(或定义一个新环境),以便我可以编写

\begin{mycases} 
     a & = c & x=1\\ 
     b & = d & x=2
\end{mycases}

或者类似简单的东西?

答案1

您可以简单地使用您自己的定义作为新的环境。

\documentclass{article}
\begin{document}

\newenvironment{mycases}%
  {\left\{
   \begin{array}{@{}r@{\;}lr@{}}
  }%
  {\end{array}
   \right.
  }

\(\begin{mycases} 
     a & = c & x=1\\ 
     b & = d & x=2
  \end{mycases}
\)
\end{document}

在此处输入图片描述

答案2

是的。使用alignatempheq(在这种情况下无需加载amsmath):

\documentclass{article}
\usepackage[utf8]{inputenc}%
\usepackage{empheq}

\begin{document}

\begin{empheq}[left=\empheqlbrace]{alignat*=2}
  a & = c, &\qquad x&=1,\\
  b + b’ & = d + d’, & x&=2.
\end{empheq}

\end{document} 

请注意,您需要3&。更一般地,对于n对齐组,您需要2n–1& 符号:一个用于新组(来自第二个组),下一个用于组内的对齐点。

在此处输入图片描述

答案3

是的,只需适当修改定义cases

\documentclass{article}
\usepackage{amsmath,array}

\makeatletter
\newenvironment{mycases}{%
  \let\@ifnextchar\new@ifnextchar
  \left\lbrace
  \def\arraystretch{1.2}%
  \array{@{}r@{}>{{}}l@{\quad}l@{}}%
}{%
  \endarray\right.%
}
\makeatother

\begin{document}

\[
\begin{mycases} 
a+a^2 & = c & x=1\\ 
b & = d-d^2 & x=2
\end{mycases}
\]

\end{document}

在此处输入图片描述

相关内容