![简单的解决方案](https://linux22.com/image/270632/%E7%AE%80%E5%8D%95%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.png)
我正在尝试编写一组类似于我正在阅读的书中的一些方程式。以下是该书对方程式的格式化:
以下是我目前所得到的:
我该如何对齐方程式,使“最大化”和“服从”对齐,同时对齐总和?我不想在侧面显示“(KP)”或任何方程式编号。
以下是我编写的代码:
\begin{equation*}
\begin{aligned}
\text{maximize} \sum_{j=1}^{n}p_j x_j \\
\text{subject to} \sum_{j=1}^{n}w_j x_j \leq c, \\
x_j \in \{0,1\}, j = 1, \ldots, n.
\end{aligned}
\end{equation*}
答案1
使用align
来自的环境amsmath
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
\text{maximize} &\null \sum_{j=1}^n p_j x_j \\
\text{subject to} &\null \sum_{j=1}^n w_j x_j \leq c, \\
&\null x_j \in \{0, 1\}, \quad j=1,\dots,n.
\end{align}
\end{document}
答案2
简单的解决方案
只要求和符号的上标和下标比符号本身窄,解法就很简单:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
\text{maximize } &\sum_{j=1}^{n}p_j x_j \\
\text{subject to } &\sum_{j=1}^{n}w_j x_j \leq c, \\
&x_j \in \{0,1\}, j = 1, \ldots, n.
\end{align}
\end{document}
更复杂的解决方案
一旦上标或下标之一变得比符号更宽,就会破坏对齐(注意等式 (2)):
\begin{align}
\text{maximize } &\sum_{j=1}^{n}p_j x_j \\
\text{subject to } &\sum_{j=10000}^{n}w_j x_j \leq c, \\
&x_j \in \{0,1\}, j = 1, \ldots, n.
\end{align}
由于所有内容都在符号后的最左侧对齐&
,因此在等式 (2) 中对齐发生在“j”下标处,使得和符号不再位于彼此正下方:
但有帮助!该mathtools
包提供了一个名为的命令\mathclap
,原则上将其参数的框宽度设置为零(有关确切解释,请参见。http://math.arizona.edu/~aprl/publications/mathclap/perlis_mathclap_24Jun2003.pdf)。如果我们使用这种方法,即使和号的描述符比符号本身更宽,对齐也会起作用,因为允许描述符滑过对齐障碍:
\documentclass{article}
\usepackage{amsmath}
\usepackage{mathtools}
\begin{document}
\begin{align}
\text{maximize } &\sum_{j=1}^{n}p_j x_j \\
\text{subject to } &\sum_{\mathclap{j=10000}}^{n}w_j x_j \leq c, \\
&x_j \in \{0,1\}, j = 1, \ldots, n.
\end{align}
\end{document}
答案3
您可以使用
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat}{2}
text & equation\\
text & equation\\
& equatin
\end{alignat}
\end{document}
此外,使用alignat
,您可以指定多个对齐点。如果我们有 3 个,我们可以像这样对齐方程:
f(x) & = & x^2 +2x + 1\\
& = & (x + 1)^2
或者您可以根据需要选择更多的对齐选项。