我正在尝试使用 amsmath 在 LaTeX 中编写一个好看的优化问题。MWE 如下:
\documentclass[letter, 10pt, conference]{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
& \underset{x,u}{\text{minimize}} & & \frac{1}{2} \sum_{k=0}^{N-1}
\text{some looooooooooooooooooooooooong function of } x,u \\
& \text{subject to} & &
\begin{aligned}
& \text{constraint 1}, & & k = 0,\ldots,N{-}1, \\
& \text{constraint 2}, & & k = 0,\ldots,N{-}1\\
\end{aligned}
\end{align*}
\end{document}
我在对齐环境中嵌套了对齐环境,因为我需要“k = ...”彼此水平对齐,并且我不想在目标函数中引入对齐字符(求和符号后面的字符)。
问题是:'subject to' 与 'constraint 1' 不一致,而这应该是一致的。有没有一种非肮脏的方法来解决这个问题?
答案1
一可以用 TABstack替换aligned
。当嵌套在对齐环境中时,制表符和 EOL 字符已发生更改。
或者您也可以只使用[t]
上的选项aligned
。
\documentclass[letter, 10pt, conference]{article}
\usepackage{amsmath,tabstackengine}
\stackMath
\setstackTAB{\&}
\setstackEOL{\#}
\begin{document}
\begin{align*}
& \underset{x,u}{\text{minimize}} & & \frac{1}{2} \sum_{k=0}^{N-1}
\text{some looooooooooooooooooooooooong function of } x,u \\
& \text{subject to} & &
\alignLongunderstack{%
\& \text{constraint 1}, \& \& k = 0,\ldots,N{-}1, \#
\& \text{constraint 2}, \& \& k = 0,\ldots,N{-}1
}
\end{align*}
\end{document}
这里使用[t]
对齐的选项来获得相同的结果:
\documentclass[letter, 10pt, conference]{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
& \underset{x,u}{\text{minimize}} & & \frac{1}{2} \sum_{k=0}^{N-1}
\text{some looooooooooooooooooooooooong function of } x,u \\
& \text{subject to} & &
\begin{aligned}[t]
& \text{constraint 1}, & & k = 0,\ldots,N{-}1, \\
& \text{constraint 2}, & & k = 0,\ldots,N{-}1\\
\end{aligned}
\end{align*}
\end{document}