将两行中的多个“=”符号对齐

将两行中的多个“=”符号对齐

我想写两行方程,每行包含两个“ =”符号,使得相应的“ =”符号垂直对齐。

我尝试使用align如下环境:

\begin{align*}
  P^{-1}AP & = P^T\left[\lambda_1p_1, \dots, \lambda_np_n\right] & = \left[\lambda_1P^Tp_1, \dots, \lambda_nP^Tp_n\right]
  \\ & = \left[\lambda_1i_1, \dots, \lambda_ni_n\right] & = \textrm{diag}\left(\lambda_1, \dots, \lambda_n\right)
\end{align*}

但这产生了此输出其中第二个 ' =' 符号未对齐。为什么它们未对齐?我该如何对齐它们?

答案1

环境alignat*会通过&等号前面的两个对齐字符 ( ) 来为您完成此操作。

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}

\begin{document}
  \begin{alignat*}{2}
    P^{-1}AP & = P^T\left[\lambda_1p_1, \dots, \lambda_np_n\right] && = \left[\lambda_1P^Tp_1, \dots, \lambda_nP^Tp_n\right] \\
    & = \left[\lambda_1i_1, \dots, \lambda_ni_n\right] && = \textrm{diag}\left(\lambda_1, \dots, \lambda_n\right)
  \end{alignat*}
\end{document}

进一步阅读


在此处输入图片描述


附录

为了进行比较,没有自动缩放的分隔符和“diag”作为运算符。

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}

\DeclareMathOperator*{\diag}{diag}

\begin{document}
  \begin{alignat*}{2}
    P^{-1}AP &= P^T [\lambda_1p_1, \dots, \lambda_np_n] &&= [\lambda_1P^Tp_1, \dots, \lambda_nP^Tp_n] \\
    &= [\lambda_1i_1, \dots, \lambda_ni_n] &&= \diag(\lambda_1, \dots, \lambda_n)
  \end{alignat*}
\end{document}

在此处输入图片描述

答案2

您需要两个&。其中第一个用于第二个方程组的左侧部分(此处为空):

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
  P^{-1}AP & = P^T\left[\lambda_1p_1, \dots, \lambda_np_n\right] && =
 \left[\lambda_1P^Tp_1, \dots, \lambda_nP^Tp_n\right]
  \\
  & = \left[\lambda_1i_1, \dots, \lambda_ni_n\right] && =
 \textrm{diag}\left(\lambda_1, \dots, \lambda_n\right)
\end{align*}
\end{document}

结果

相关内容