使用 `\shortintertext{}` 命令时出现对齐问题

使用 `\shortintertext{}` 命令时出现对齐问题

为什么下面代码中的第一个方程没有居中?我希望它像第二个一样居中。有人能帮帮我吗?

这是我的代码:

\begin{align*}
f\wedge g = \frac{1}{k!\ell !}A(f\otimes g),
\shortintertext{or explicitly,}
\bigl(f\wedge g \bigr) \bigl(v_{1},\ldots,v_{k+\ell} \bigr)
&=\frac{1}{k!\ell!}\sum_{\sigma\in S_{k+\ell}}
\bigl(\text{sgn\,}\sigma  \bigr) 
\bigl(f\otimes g \bigr)
\bigl(v_{\sigma(1)}, \ldots, v_{\sigma(k+\ell)}  \bigr)
  \\&= \frac{1}{k! \ell !} \sum_{\sigma \in S_{k+\ell}} 
\bigl(\text{sgn\,}\sigma \bigr) 
f\bigl(v_{\sigma(1)},\ldots, v_{\sigma(k)}  \bigr)
g\bigl(v_{\sigma(k+1)},\ldots, v_{\sigma(k+\ell)} \bigr).
\end{align*}

下面是 Latex 生成的屏幕截图

在此处输入图片描述

答案1

在此处输入图片描述

如果您使用align(或align*),则需要使用与号 ( &) 来标记方程各部分应与之对齐的锚点。在您的第一个方程示例中,它被遗漏了。

以下是两种情况:带有\shortintertext{...}和带有经典\intertext,这使我的测试获得更好的结果。

\documentclass{article}
\usepackage{mathtools}

\begin{document}
    \begin{align*}
f\wedge g   
    & = \frac{1}{k!\ell !}A(f\otimes g),
    \shortintertext{or explicitly,}
\bigl(f\wedge g \bigr) \bigl(v_{1},\ldots,v_{k+\ell} \bigr)
    & = \frac{1}{k!\,\ell!}\sum_{\sigma\in S_{k+\ell}}\bigl(\text{sgn\,}\sigma \bigr)
        \bigl(f\otimes g \bigr)
        \bigl(v_{\sigma(1)}, \ldots, v_{\sigma(k+\ell)} \bigr) \\
    &= \frac{1}{k!\,\ell !} \sum_{\sigma \in S_{k+\ell}}
        \bigl(\text{sgn\,}\sigma \bigr)
        f\bigl(v_{\sigma(1)},\ldots, v_{\sigma(k)} \bigr)
        g\bigl(v_{\sigma(k+1)},\ldots, v_{\sigma(k+\ell)}\bigr).
    \end{align*}
    \begin{align*}
f\wedge g
    & = \frac{1}{k!\ell !}A(f\otimes g),
    \intertext{or explicitly,}
\bigl(f\wedge g \bigr) \bigl(v_{1},\ldots,v_{k+\ell} \bigr)
    & = \frac{1}{k!\,\ell!}\sum_{\sigma\in S_{k+\ell}}\bigl(\text{sgn\,}\sigma \bigr)
        \bigl(f\otimes g \bigr)
        \bigl(v_{\sigma(1)}, \ldots, v_{\sigma(k+\ell)} \bigr) \\
    &= \frac{1}{k!\,\ell !} \sum_{\sigma \in S_{k+\ell}}
        \bigl(\text{sgn\,}\sigma \bigr)
        f\bigl(v_{\sigma(1)},\ldots, v_{\sigma(k)} \bigr)
        g\bigl(v_{\sigma(k+1)},\ldots, v_{\sigma(k+\ell)}\bigr).
    \end{align*}
\end{document}

对于严格居中的多线方程的预期gather环境:

\documentclass{article}
\usepackage{mathtools}

\begin{document}
    \begin{gather*}
f\wedge g  = \frac{1}{k!\ell !}A(f\otimes g),
    \shortintertext{or explicitly,}
    \begin{aligned}
\bigl(f\wedge g \bigr) \bigl(v_{1},\ldots,v_{k+\ell} \bigr)
    & = \frac{1}{k!\,\ell!}\sum_{\sigma\in S_{k+\ell}}\bigl(\text{sgn\,}\sigma \bigr)
        \bigl(f\otimes g \bigr)
        \bigl(v_{\sigma(1)}, \ldots, v_{\sigma(k+\ell)} \bigr) \\
    &= \frac{1}{k!\,\ell !} \sum_{\sigma \in S_{k+\ell}}
        \bigl(\text{sgn\,}\sigma \bigr)
        f\bigl(v_{\sigma(1)},\ldots, v_{\sigma(k)} \bigr)
        g\bigl(v_{\sigma(k+1)},\ldots, v_{\sigma(k+\ell)}\bigr).
    \end{aligned}
    \end{gather*}
 \end{document}

或简单 (編輯),但没有使用\intertext他评论中所建议的 egreg:

\documentclass{article}
\usepackage{mathtools}
\DeclareMathOperator{\sgn}{sgn}5 <-- added

\begin{document}
    \[ % <-- first equation, can be written as `\begin{equation*}
f\wedge g  = \frac{1}{k!\ell !}A(f\otimes g),
    \]
or explicitly, % <-- moved into normal text
    \begin{align*} % <-- second equation
\bigl(f\wedge g \bigr) \bigl(v_{1},\ldots,v_{k+\ell} \bigr)
    & = \frac{1}{k!\,\ell!}\sum_{\sigma\in S_{k+\ell}}\bigl(\sgn \sigma \bigr)
        \bigl(f\otimes g \bigr)
        \bigl(v_{\sigma(1)}, \ldots, v_{\sigma(k+\ell)} \bigr) \\
    &= \frac{1}{k!\,\ell !} \sum_{\sigma \in S_{k+\ell}}
        \bigl(\sgn \sigma \bigr)
        f\bigl(v_{\sigma(1)},\ldots, v_{\sigma(k)} \bigr)
        g\bigl(v_{\sigma(k+1)},\ldots, v_{\sigma(k+\ell)}\bigr).
    \end{align*}
    \end{document}

许多人认为这是所提出的解决方案中最好的结果。笔记:在最后一个例子中,添加了定义\DeclareMathOperator{\sgn}{sgn}和方程式,而不是\text{sgn\,} 使用更短的\sgn

在此处输入图片描述

答案2

除了&在第一行提供缺失的对齐点并修复连续阶乘项周围的间距问题(参见@Zarko 的回答)之外,您可能还需要处理一些其他(数学)排版细节。

  • 您似乎正在使用sgn数学运算符。请勿在整个文本中使用;而是在序言中\text{sgn}\,提供说明,并在文档正文中输入。\DeclareMathOperator{\sgn}{sgn}\sgn

  • 无需输入\ldots;输入\dots并让 LaTeX 负责省略号的定位。

  • 使用\bigl\bigr来调整某些括号的大小似乎是不必要的;在我看来,如果括号以其基本大小出现,等式看起来会更好。

  • 用于smashoperator[r]{\sum...}填补求和符号与后续材料之间的空间。

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools} % for \smashoperator macro
\DeclareMathOperator{\sgn}{sgn}
\begin{document}

\begin{align*}
f\wedge g &= \frac{1}{k!\,\ell!}A(f\otimes g),
\intertext{or explicitly,}
(f\wedge g) (v_{1},\dots,v_{k+\ell})
&=\frac{1}{k!\,\ell!} \smashoperator[r]{\sum_{\sigma\in S_{k+\ell}}}
(\sgn\sigma ) 
(f\otimes g)
(v_{\sigma(1)}, \dots, v_{\sigma(k+\ell)} ) \\
&= \frac{1}{k!\, \ell!} \smashoperator[r]{\sum_{\sigma \in S_{k+\ell}}} 
(\sgn\sigma) 
f(v_{\sigma(1)},\dots, v_{\sigma(k)} )
g(v_{\sigma(k+1)},\dots, v_{\sigma(k+\ell)})\,.
\end{align*}
\end{document}

附录:正如@egreg 在评论中指出的那样,“或,等价地”插入语上方的等式与其余材料完全不同;因此,最好简单地将第一个等式置于中心位置,然后align*仅用于剩下的两行表达式。(对于 OP 的使用,我无能为力\ell。我\smashoperator[r]{...}主要是为了避免创建过满的行。)即,以下外观可能更可取:

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools} % for \smashoperator macro
\DeclareMathOperator{\sgn}{sgn}
\begin{document}
\[
f\wedge g = \frac{1}{k!\,\ell!}A(f\otimes g)\,,
\]
or explicitly,
\begin{align*}
(f\wedge g) (v_{1},\dots,v_{k+\ell})
&=\frac{1}{k!\,\ell!} \smashoperator[r]{\sum_{\sigma\in S_{k+\ell}}}
(\sgn\sigma ) 
(f\otimes g)
(v_{\sigma(1)}, \dots, v_{\sigma(k+\ell)} ) \\
&= \frac{1}{k!\, \ell!} \smashoperator[r]{\sum_{\sigma \in S_{k+\ell}}} 
(\sgn\sigma) 
f(v_{\sigma(1)},\dots, v_{\sigma(k)} )
g(v_{\sigma(k+1)},\dots, v_{\sigma(k+\ell)})\,.
\end{align*}
\end{document}

相关内容