为什么下面代码中的第一个方程没有居中?我希望它像第二个一样居中。有人能帮帮我吗?
这是我的代码:
\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}