我有 2 个方程,都需要编号和对齐。方程的编号应垂直居中。但方程很长,必须分成 2 或 3 行。如果每行有 2 个对齐点就太好了。但我无法使用 来实现这一点split
。或者我可以吗?这是 MWE:
\begin{align}
\begin{split}
z_1^{i,j}
& = a_1 \, x_1^{i,j} + b_1 \, \delta_1^{i,j} \\
& + \sum_k y_k^{i,j} \qquad \forall ~i,j
\end{split}
\\
\begin{split}
z_2^{i,j}
& = a_2 \, x_2^{i,j} + b_2 \, \delta_2^{i,j} + c_2 \\
& + z_1^{i,j} \qquad \forall ~i,j
\end{split}
\end{align}
基本上,我希望得到与此代码相同的输出,尤其是方程的数字垂直居中。此外,我希望\forall ~i,j
两个方程也对齐,IE彼此之下。对我来说,使用alignat
alternative的解决方案align
会更好。
答案1
我相信您使用的是双列格式。
环境split
仅接受一个对齐点;您可以使用\mathmakebox
from mathtools
(也加载amsmath
)和calc
:
\documentclass[twocolumn]{article}
\usepackage{mathtools}
\usepackage{calc}
\begin{document}
\begin{align}
\begin{split}
z_1^{i,j}
& = a_1^{} x_1^{i,j} + b_1^{} \delta_1^{i,j} \\
& \qquad+ \sum_k y_k^{i,j}
\qquad \forall i,j
\end{split}
\\
\begin{split}
z_2^{i,j}
& = a_2^{} x_2^{i,j} + b_2^{} \delta_2^{i,j} + c_2^{} \\
& \qquad + \mathmakebox[\widthof{$\displaystyle\sum_k y_k^{i,j}$}][l]{z_1^{i,j}}
\qquad \forall i,j
\end{split}
\end{align}
\end{document}
请注意,\,
不使用 between factors,而^{}
建议使用 while,以便将下标推到同一级别。+
第二行的 不应位于等号下方,因为它属于表达式的右侧。
但是,由于指数,下标实际上并不是水平的,j
因此您可能需要稍微复杂一些的调整:
\documentclass[twocolumn]{article}
\usepackage{mathtools}
\usepackage{calc}
\newcommand{\adjs}[1]{^{\vphantom{#1}}}
\begin{document}
\begin{align}
\begin{split}
z_1^{i,j}
& = a_1\adjs{j} x_1^{i,j} + b_1\adjs{j} \delta_1^{i,j} \\
& \qquad+ \sum_k y_k^{i,j}
\qquad \forall i,j
\end{split}
\\
\begin{split}
z_2^{i,j}
& = a_2\adjs{j} x_2^{i,j} + b_2\adjs{j} \delta_2^{i,j} + c_2\adjs{j} \\
& \qquad + \mathmakebox[\widthof{$\displaystyle\sum_k y_k^{i,j}$}][l]{z_1^{i,j}}
\qquad \forall i,j
\end{split}
\end{align}
\end{document}
答案2
那么你的每个方程式都在一行中没有问题,并且符号∀
可以与环境对齐alignat
:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[showframe]{geometry}
\begin{document}
\begin{alignat}{2}
z_1^{i,j} & = a_1 \, x_1^{i,j} + b_1 \, δ_1^{i,j}
+ ∑_k y_k^{i,j} & \qquad & ∀ ~i,j \\
z_2^{i,j}
& = a_2 \, x_2^{i,j} + b_2 \, δ_2^{i,j} + c_2
+ z_1^{i,j} & & ∀ ~i,j
\end{alignat}
\end{document}