我如何才能同时对齐多个案例环境?

我如何才能同时对齐多个案例环境?

在一个大的对齐环境中,我想放置一些案例环境。我希望案例环境的对齐方式相同。例如,如果我写:

\begin{align}
f(x) &= 
  \begin{cases}
    x & \text{if } x\geq 0,\\
    -x & \text{if } x <0,
  \end{cases}\\
g(x) &=
  \begin{cases}
    \sqrt{x} & \text{if } x \geq 0,\\
    -\sqrt{-x} & \text{if } x < 0.
  \end{cases}
\end{align}

那么方程看起来就很难看,因为两个案例环境的对齐点不同。有没有办法强制两个环境的对齐点相同?

答案1

您还可以使用\hphantom{}来添加适当数量的水平空间:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
f(x) &= 
  \begin{cases}
    x\hphantom{-\sqrt{-}} & \text{if } x\geq 0,\\
    -x & \text{if } x <0,
  \end{cases}\\
g(x) &=
  \begin{cases}
    \sqrt{x} & \text{if } x \geq 0,\\
    -\sqrt{-x} & \text{if } x < 0.
  \end{cases}
\end{align}
\end{document}

答案2

您可以将第一个环境中的某个条目放在cases 一个框中,该框的宽度与第二个环境中最长的宽度相同cases

\newlength{\temp}
\settowidth{\temp}{$-\sqrt{-x}$}
\begin{align}
f(x) &= 
  \begin{cases}
    \makebox[\temp][l]{$x$} & \text{if } x\geq 0,\\
    -x & \text{if } x <0,
  \end{cases}\\
g(x) &=
  \begin{cases}
    \sqrt{x} & \text{if } x \geq 0,\\
    -\sqrt{-x} & \text{if } x < 0.
  \end{cases}
\end{align}

在此处输入图片描述

答案3

使用包提供的hphantom和的组合。将最长的表达式放入其中,并包裹后面的表达式。mathrlapmathtoolshphantommathrlaphphantom

在您的示例中,最长的表达式是-\sqrt{-x}。要放置hphantomx请使用

\mathrlap{x}\hphantom{-\sqrt{-x}}

例如:

\documentclass{article}
\usepackage{amsmath,mathtools}
\begin{document}
\begin{align}
  f(x) &= \begin{cases}
    \mathrlap{x}\hphantom{-\sqrt{-x}} & \text{if } x\geq 0,\\
    -x & \text{if } x <0,
  \end{cases}\\
  g(x) &= \begin{cases}
    \sqrt{x} & \text{if } x \geq 0,\\
    -\sqrt{-x} & \text{if } x < 0.
  \end{cases}
\end{align}
\end{document}

相关内容