2 案例左对齐

2 案例左对齐

我想将cases以下一些内容对齐:

value1                    if condition
value2  line1ofvalue2...  otherwise
        line2ofvalue2..
        line3ofvalue2.

首先,只有 2 个条件(每个条件对应一个值),所以我希望if conditionotherwise左对齐。然后,由于我的value2很长,我需要将其拆分为 3 行,因此我希望这 3 行左对齐。

有人知道怎么做吗?非常感谢

答案1

环境array提供了与amsmath包裹 cases环境。事实上,它amsmath的定义与具有一定拉伸度(的)和特定列对齐(的)cases的完全一致。请考虑以下显示两种不同样式的最小示例:array\arraystretch1.2@{}ll@{}

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\noindent Original \texttt{cases} example:
\[
X=%
  \begin{cases}
    0& \text{if $r-j$ is odd},\\
    r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}.
  \end{cases}
\]

\noindent Using the \texttt{array} environment:
\[
\renewcommand{\arraystretch}{1.2}%
X=\left\{%
  \begin{array}{@{}ll@{}}
    0& \text{if $r-j$ is odd},\\
    r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}.
  \end{array}
  \right.
\]
\end{document}

数组与案例

因此,利用array环境可以尝试:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\noindent Requested environment using \texttt{array}:
\[
\renewcommand{\arraystretch}{1.2}%
X=\left\{%
  \begin{array}{@{}lll@{}}
    0& & \text{if $r-j$ is odd},\\
    k& +7& \text{if $r-j$ is even}. \\
    & +1+2i& \\
    & \binom{3}{n}
  \end{array}
  \right.
\]
\end{document}​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

与案例类似的数组环境(有 3 列)

l如果需要,还可以调整前两个左对齐列之间的间隙(@{}l@{}ll@{}例如,使用)。这种方法的优点是环境方面的灵活性array,同时仍保留与环境的视觉等效性cases;即用户定义的cases环境。

答案2

这是环境的扩展amsmath cases。有一个新的可选参数用于自定义cases列。如果没有参数,它的工作方式与原始的一样cases

\makeatletter
\renewcommand\env@cases[1][@{}l@{\quad}l@{}]{%
  \let\@ifnextchar\new@ifnextchar
  \left\lbrace
  \def\arraystretch{1.2}%
  \array{#1}%
}
\makeatother

中的原始定义amsmath.sty包含@{}l@{\quad}l@{},我们将其替换为#1。现在您可以使用array列规范的所有功能。

完整使用示例:

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\renewcommand\env@cases[1][@{}l@{\quad}l@{}]{%
  \let\@ifnextchar\new@ifnextchar
  \left\lbrace
  \def\arraystretch{1.2}%
  \array{#1}%
}
\makeatother
\begin{document}
\[
\begin{cases}
  value1 & if condition \\
  value2 & otherwise
\end{cases}
\]
\[
\begin{cases}[@{}lp{3cm}l@{}]
  value1 & & if condition \\
  value2 & line1ofvalue2 \newline
           line2ofvalue2 \newline
           line3ofvalue2          & otherwise
\end{cases}
\]
\end{document}

答案3

这是你想要的?

\documentclass{article}
\usepackage[fleqn]{amsmath}
\begin{document}
\newcommand{\Phantom}{\phantom{value2}}%
\begin{align*}
f(x) = \begin{cases}
value1& condition1 \\
value2 \text{ line1ofvalue2}& condition2\\
\Phantom \text{ line2ofvalue2}\\
\Phantom \text{ line3ofvalue2}
\end{cases}
\end{align*}
\end{document}

相关内容