具有不同列数的方程式对齐 - 间距问题

具有不同列数的方程式对齐 - 间距问题

今天是个好日子。

我有一组 4 个方程,分别有 2、1、3 和 3 列,我想以特定方式将它们“对齐”。我希望所有方程都相对于页面居中,并且最后两个方程(有 3 列)彼此对齐。以下是我进行的两次不成功的尝试。

第一次审判:

\documentclass{article}
\usepackage{amsmath}


\begin{document}
\begin{subequations}
    \begin{align}
        [P_\mu, P_\nu] &= 0, &
        [M_{\mu\nu}, P_\lambda] &= \eta_{\nu\lambda} P_\mu - \eta_{\mu\lambda} P_\nu,
    \end{align}
    \begin{align}
        [M_{\mu\nu}, M_{\lambda\sigma}] 
        &= \eta_{\mu\sigma} M_{\nu\lambda} + \eta_{\nu\lambda} M_{\mu\sigma} - \eta_{\mu\lambda} M_{\nu\sigma} - \eta_{\nu\sigma} M_{\mu\lambda},
    \end{align}
    \begin{align}
        \Delta(P_\mu) &= P_\mu \otimes 1 + 1 \otimes P_\mu, &
        \varepsilon(P_\mu) &= 0, &
        S(P_\mu) &= - P_\mu, \\
        \Delta(M_{\mu\nu}) &= M_{\mu\nu} \otimes 1 + 1 \otimes M_{\mu\nu}, &
        \varepsilon(M_{\mu\nu}) &= 0, &
        S(M_{\mu\nu}) &= - M_{\mu\nu},
    \end{align}
    \label{eq:poincare_hopf_alg}
\end{subequations}

\end{document}

这个是完美的,但是align环境之间有额外的垂直间距...请注意,我不想将此解决方案与\vspace{-20pt}或等效解决方案一起使用,因为方程的垂直间距是由 LaTeX 自动生成的:换句话说,每次更改代码时我都必须更改间距的值。

第二次审判:

\documentclass{article}
\usepackage{amsmath}


\begin{document}

\begin{subequations}
\begin{gather}
    \begin{aligned}
        [P_\mu, P_\nu] &= 0, &
        [M_{\mu\nu}, P_\lambda] &= \eta_{\nu\lambda} P_\mu - \eta_{\mu\lambda} P_\nu,
    \end{aligned} \\
    \begin{aligned}
        [M_{\mu\nu}, M_{\lambda\sigma}] 
        &= \eta_{\mu\sigma} M_{\nu\lambda} + \eta_{\nu\lambda} M_{\mu\sigma} - \eta_{\mu\lambda} M_{\nu\sigma} - \eta_{\nu\sigma} M_{\mu\lambda},
    \end{aligned} \\
    \begin{aligned}
        \Delta(P_\mu) &= P_\mu \otimes 1 + 1 \otimes P_\mu, &
        \varepsilon(P_\mu) &= 0, &
        S(P_\mu) &= - P_\mu,
    \end{aligned} \\
    \begin{aligned}
        \Delta(M_{\mu\nu}) &= M_{\mu\nu} \otimes 1 + 1 \otimes M_{\mu\nu}, &
        \varepsilon(M_{\mu\nu}) &= 0, &
        S(M_{\mu\nu}) &= - M_{\mu\nu},
    \end{aligned}
\end{gather}
\end{subequations}

\end{document}

这里,垂直间距正确,但水平间距不正确。我希望我的公式在页面宽度上等距分布,就像这样align做一样(参见试验 1)。

在此先感谢您的时间!

编辑1: 我的问题似乎不太清楚,所以让我说清楚。当我align单独使用多列时,LaTeX 会确保将页面宽度平均分配给每列(这有点像“对齐”方程)。但现在我有一组具有不同列数的方程。我希望一些方程对齐(例如第三和第四),而其他方程居中/“对齐”。

我根据 Celdor 建议的命令行提出了一种可能的解决方案\vspace{\dimexpr-\abovedisplayskip-\belowdisplayskip-\baselineskip+\jot}。欢迎使用其他更自动化的方法。

\begin{subequations}
    \begin{align}
        [P_\mu, P_\nu] &= 0, &
        [M_{\mu\nu}, P_\lambda] &= \eta_{\nu\lambda} P_\mu - \eta_{\mu\lambda} P_\nu,
    \end{align}%
    \vspace{\dimexpr-\abovedisplayskip-\belowdisplayskip-\baselineskip+\jot}%
    \begin{align}
        [M_{\mu\nu}, M_{\lambda\sigma}] 
        &= \eta_{\mu\sigma} M_{\nu\lambda} + \eta_{\nu\lambda} M_{\mu\sigma} - \eta_{\mu\lambda} M_{\nu\sigma} - \eta_{\nu\sigma} M_{\mu\lambda},
    \end{align}%
    \vspace{\dimexpr-\abovedisplayskip-\belowdisplayskip-\baselineskip+\jot}%
    \begin{align}
        \Delta(P_\mu) &= P_\mu \otimes 1 + 1 \otimes P_\mu, &
        \varepsilon(P_\mu) &= 0, &
        S(P_\mu) &= - P_\mu, \\
        \Delta(M_{\mu\nu}) &= M_{\mu\nu} \otimes 1 + 1 \otimes M_{\mu\nu}, &
        \varepsilon(M_{\mu\nu}) &= 0, &
        S(M_{\mu\nu}) &= - M_{\mu\nu},
    \end{align}
\end{subequations}

编辑2: 我意识到我的问题与不令人满意的回答有关问题

第三次审判:

\begin{subequations}
\begin{alignat}{2}
    &a = 0,
    &
    \mathllap{[M_{\mu\nu}, P_\lambda] = \eta_{\nu\lambda} P_\mu - \eta_{\mu\lambda} P_\nu,}
    \\
    &b = 0,
\end{alignat}%
\vspace{\dimexpr-\abovedisplayskip-\belowdisplayskip-\baselineskip+\jot}%
\begin{align}
    \Delta(P_\mu) &= P_\mu \otimes 1 + 1 \otimes P_\mu,           &      \varepsilon(P_\mu) &= 0, &      S(P_\mu) &= - P_\mu, \\
    \Delta(M_{\mu\nu}) &= M_{\mu\nu} \otimes 1 + 1 \otimes M_{\mu\nu}, & \varepsilon(M_{\mu\nu}) &= 0, & S(M_{\mu\nu}) &= - M_{\mu\nu},
\end{align}
\end{subequations}

我的考验

答案1

像这样吗?

例 1.

在此处输入图片描述

示例 1 的代码。

\documentclass{article}
\usepackage{mathtools}
\usepackage{kantlipsum}


\begin{document}
\kant*[1][1-2]
\begin{subequations}
\begin{alignat}{2}
    &[P_\mu, P_\nu] = 0,
    &
    \mathllap{[M_{\mu\nu}, P_\lambda] = \eta_{\nu\lambda} P_\mu - \eta_{\mu\lambda} P_\nu,}
    \\
    &[M_{\mu\nu}, M_{\lambda\sigma}] = \eta_{\mu\sigma} M_{\nu\lambda} + \eta_{\nu\lambda} M_{\mu\sigma} - \eta_{\mu\lambda} M_{\nu\sigma} - \eta_{\nu\sigma} M_{\mu\lambda},
\end{alignat}%
\vspace{\dimexpr-\abovedisplayskip-\belowdisplayskip-\baselineskip+\jot}%
\begin{align}
              \Delta(P_\mu) &= P_\mu \otimes 1 + 1 \otimes P_\mu,           &      \varepsilon(P_\mu) &= 0, &      S(P_\mu) &= - P_\mu, \\
         \Delta(M_{\mu\nu}) &= M_{\mu\nu} \otimes 1 + 1 \otimes M_{\mu\nu}, & \varepsilon(M_{\mu\nu}) &= 0, & S(M_{\mu\nu}) &= - M_{\mu\nu},
\end{align}
\end{subequations}

\kant[1][1]
\end{document}

更新。
下面添加了两个示例,演示了如何使用flalign(“全长对齐”)在页面上水平对齐和分布方程式。

\ineqskip是一个宏,用于\vspace{...}计算不同环境之间的空间并保持方程之间的连续性。组件包括

  • \abovedisplayskip\belowdisplayskip在每个方程环境之前和之后添加 --glues
  • \baselineskip是两行之间的空格,并且
  • \jot` 是方程环境中后续行之间的空格。

此外,\abovedisplayskip\belowdisplayskip似乎受到\baselinestretch后一个因素的影响,因此乘以了后者。


示例 2.

在此处输入图片描述

示例 3

在此处输入图片描述

示例 2 的代码

\documentclass{article}
\usepackage{mathtools}
\usepackage{kantlipsum}

\usepackage{showframe}
  \renewcommand{\ShowFrameLinethickness}{0.2pt}
  \renewcommand{\ShowFrameColor}{\color{red}}

\newcommand\ineqskip{
  \dimen0=\dimexpr+\abovedisplayskip+\belowdisplayskip\relax
  \vspace*{\dimexpr-\baselinestretch\dimen0-\baselineskip+\jot}}

\begin{document}
\begin{subequations}
  \begin{align}
    [P_\mu, P_\nu] &= 0, &
    [M_{\mu\nu}, P_\lambda] &= \eta_{\nu\lambda} P_\mu - \eta_{\mu\lambda} P_\nu,
  \end{align}%
  \vspace{\dimexpr-\abovedisplayskip-\belowdisplayskip-\baselineskip+\jot}%
  \begin{align}
  [M_{\mu\nu}, M_{\lambda\sigma}]
    &= \eta_{\mu\sigma} M_{\nu\lambda} + \eta_{\nu\lambda} M_{\mu\sigma} - \eta_{\mu\lambda} M_{\nu\sigma} - \eta_{\nu\sigma} M_{\mu\lambda},
  \end{align}%
  \vspace{\dimexpr-\abovedisplayskip-\belowdisplayskip-\baselineskip+\jot}%
  \begin{flalign}
    \Delta(P_\mu) &= P_\mu \otimes 1 + 1 \otimes P_\mu, &
    \varepsilon(P_\mu) &= 0, &
    S(P_\mu) &= - P_\mu, \\
    \Delta(M_{\mu\nu}) &= M_{\mu\nu} \otimes 1 + 1 \otimes M_{\mu\nu}, &
    \varepsilon(M_{\mu\nu}) &= 0, &
    S(M_{\mu\nu}) &= - M_{\mu\nu},
  \end{flalign}
\end{subequations}
\end{document}

示例 3 的代码

\documentclass{article}
% ... preamble is the same as in the Example 2

\begin{document}
\begin{subequations}
  \begin{flalign}
    [P_\mu, P_\nu] &= 0, &
    [M_{\mu\nu}, P_\lambda] &= \eta_{\nu\lambda} P_\mu - \eta_{\mu\lambda} P_\nu,
  \end{flalign}%
  % ... the rest of the middle part is the same as in Example 2
\end{subequations}
\end{document}

答案2

您可以使用\IEEEeqnarrayIEEEtrantools请参阅手册https://moser-isi.ethz.ch/docs/typeset_equations.pdf

\documentclass{article}
\usepackage{amsmath}
\usepackage{IEEEtrantools}


\begin{document}
\begin{subequations}\label{eq:poincare_hopf_alg}
\begin{IEEEeqnarray}{rCl ' rCl ' rCl}
\IEEEeqnarraymulticol{9}{c}{
  [P_\mu, P_\nu] = 0,
  \hspace{4em}
  [M_{\mu\nu}, P_\lambda] = \eta_{\nu\lambda} P_\mu - \eta_{\mu\lambda} P_\nu,
} \\
\IEEEeqnarraymulticol{9}{c}{
  [M_{\mu\nu}, M_{\lambda\sigma}] 
  = \eta_{\mu\sigma} M_{\nu\lambda} + \eta_{\nu\lambda} M_{\mu\sigma}
  - \eta_{\mu\lambda} M_{\nu\sigma} - \eta_{\nu\sigma} M_{\mu\lambda},
} \\
\Delta(P_\mu) &=& P_\mu \otimes 1 + 1 \otimes P_\mu, &
\varepsilon(P_\mu) &=& 0, &
S(P_\mu) &=& - P_\mu, \\
\Delta(M_{\mu\nu}) &=& M_{\mu\nu} \otimes 1 + 1 \otimes M_{\mu\nu}, &
\varepsilon(M_{\mu\nu}) &=& 0, &
S(M_{\mu\nu}) &=& - M_{\mu\nu},
\end{IEEEeqnarray}
\end{subequations}

\end{document}

在此处输入图片描述

相关内容