使用 alignedat 对齐两列以上?

使用 alignedat 对齐两列以上?

考虑这个 MWE,修改自协调案例环境中的条件

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
  f(x) = \left\{\begin{alignedat}{3}
    & mx^2 +nx +1, &\text{if } & x \le -1 \\
    & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad  &\text{if } -1 < {}&x < 1 \\
    & 3x^2 - (m+n)x, &\text{otherwise} &
  \end{alignedat}\right.
\]
\end{document}

其结果是:

测试.png

我希望ifs 和otherwise对齐;并且xs 也对齐。

能用 完成吗{aligned}?如果可以,我哪里做错了?

答案1

您需要使用&&来使条件左对齐。为了x也使条件对齐,在这种情况下,我建议使用\hphantom

在此处输入图片描述

笔记:

  • 您需要使用{-1}第二种情况,以便将其-视为一元运算符而不是二元运算符。

回答评论中的问题:

  • 每家都&提供一r盏灯/l对齐点。也就是说,文本&对齐,文本是对齐&l。因此,第一个&将 对齐f(x) = {到右侧,将 对齐到左侧。然后,希望对齐后续文本(条件的开头)l。这意味着我们需要 &&。第一个&将给出right 对齐,--第二个&确保我们有一个left 对齐。
  • 使用\hphantom是获得所需对齐的简单方法。当然,也可以使用 ,但由于文本的原因&,这将需要使用一种类型的宏。请注意,不等式表达式与文本重叠。\lapotherwiseotherwise

以下是另外两种方法的结果:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\noindent
Recommended approach: use a \verb|\hphantom{}|: 
\[
      f(x) = \left\{\begin{alignedat}{3}
        & mx^2 +nx +1,                            &&\text{if } \hphantom{-1 <{}}   x \le -1 \\
        & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad  &&\text{if } {-1} < x < 1 \\
        & 3x^2 - (m+n)x,                          &&\text{otherwise} 
      \end{alignedat}\right.
    \]
Use additional \verb|&| instead of \verb|\hphantom{}|:
\[
  f(x) = \left\{\begin{alignedat}{4}
    & mx^2 +nx +1,                            &&\text{if } &      &&  &x \le -1 \\
    & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad  &&\text{if } & {-1} &&{}< {}&x < 1 \\
    & 3x^2 - (m+n)x,                          &&\text{otherwise} 
  \end{alignedat}\right.
\]
With \verb|mathllap|:
\[
  f(x) = \left\{\begin{alignedat}{4}
    & mx^2 +nx +1,                            &&\text{if } &      &&  &x \le -1 \\
    & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad  &&\text{if } & {-1} &&{}< {}&x < 1 \\
    & 3x^2 - (m+n)x,                          &&\text{\rlap{otherwise}} 
  \end{alignedat}\right.
\]
\end{document}

答案2

另一种方法是使用cases环境。这里需要更少的 & 符号,代价是对齐x,但我个人认为这样更优雅。

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
  f(x) = \begin{cases}
    mx^2 +nx +1, &\text{if }  x \le -1 \\
    2m e^{|x|-1} + \sin \pi x - 3n,  &\text{if } -1 < x < 1 \\
    3x^2 - (m+n)x,  &\text{otherwise}
  \end{cases}
\]
\end{document}

在此处输入图片描述

答案3

你可以使用这个

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
  f(x) = \left\{\begin{alignedat}{3}
    & mx^2 +nx +1,                             &&\text{if }         &    & x \le -1 \\
    & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad   &&\text{if }         &-1< & x < 1 \\
    & 3x^2 - (m+n)x,                           &&\text{otherwise}   &&
  \end{alignedat}\right.
\]
\end{document}

编辑:图像:

测试.png

编辑(作者:bbeeton):调整后的图像:

调整后的代码输出

这里的区别在于第二行左侧<符号周围的间距。这可以通过以下两种方式实现:

  • ... &-1<{} & x < 1
  • 利用X两行宽度相同,输入方式为

    & mx^2 +nx +1,                             &&\text{if }         &     x &\le -1 \\
    & 2m e^{|x|-1} + \sin \pi x - 3n, \qquad   &&\text{if }         & -1< x &< 1 \\
    

仅当对齐 &先于符号时,才能保证操作和关系符号周围的适当间距。

相关内容