在下面的问题中,我想将y
第四个方程中的与y
第三个方程中的对齐。
这个问题可能看起来很明显,但我仍然在长篇文章中努力解决方程对齐问题。它可能看起来也与我之前问过的问题相似,但没有任何解决方案有效。我尝试过&
、\mathrlap
和,但\phantom
没有成功。
谢谢你的帮助。
\documentclass{extbook}
\usepackage{amsmath}
\begin{document}
\[ \begin{aligned}
&\text{minimize} &J(y) &= \int_a^b f \big(x,y(x),y'(x) \big) \mathrm{d} x \\
&\text{subject to} & y(a) &= \alpha, \\
&& y(b) &= \beta, \\
&&& y \in C^1[a,b].
\end{aligned}\]
\end{document}
答案1
请注意,y(b)
宽度上比y(a)
和要窄J(y)
(后者是用于对齐关系的最宽元素)。但是,从审美角度来看,最好将两个元素y
最接近地对齐:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\begin{aligned}
&\text{minimize} & J(y) &= \int_a^b f \bigl( x, y(x), y'(x) \bigr) \mathrm{d} x \\
&\text{subject to} & y(a) &= \alpha, \\
& & y(b) &= \beta, \\
& & \mathrlap{y \in C^1[a, b].}\phantom{y(b)}
\end{aligned}
\]
\end{document}
对齐方式如下:整个第四行可见的内容被设置在与右侧重叠的零宽度框中r
(左对齐)。并且,在这个零宽度框的右侧,我们“假设置”了y(b)
。这允许占用的空间宽度与完全相同y(b)
,但只在视觉上设置零宽度框内容。
答案2
我建议三种方法。
\documentclass{article}
\usepackage{mathtools}
\usepackage{IEEEtrantools}
\newcommand{\diff}{\mathop{}\!\mathrm{d}}
\begin{document}
With \texttt{alignat}
\begin{alignat*}{4}
& \text{minimize} &\quad& J(y) && = \int_a^b f \bigl( x, y(x), y'(x) \bigr) \diff x \\
& \text{subject to} & & y(a) && = \alpha, \\
& & & y(b) && = \beta, \\
& & & \mathrlap{y \in C^1[a, b].}
\end{alignat*}
Simpler with \texttt{IEEEeqnarray}
\begin{IEEEeqnarray*}{l'lCl}
\text{minimize} & J(y) &=& \int_a^b f \bigl( x, y(x), y'(x) \bigr) \diff x \\
\text{subject to} & y(a) &=& \alpha, \\
& y(b) &=& \beta, \\
& \IEEEeqnarraymulticol{3}{l}{y \in C^1[a, b].}
\end{IEEEeqnarray*}
Without forced alignments
\begin{alignat*}{2}
& \text{minimize} &\quad& J(y) = \int_a^b f \bigl( x, y(x), y'(x) \bigr) \diff x \\
& \text{subject to} & &
\begin{alignedat}[t]{2} & y(a) &&=\alpha, \\ & y(b) &&=\beta, \end{alignedat} \\
& & & y \in C^1[a, b].
\end{alignat*}
\end{document}
请注意\bigl
和\bigr
,而不是未修饰的\big
。 还\diff
按定义提供更好的间距(并且很容易将所有那些可怕的直立 d 更改为正确的斜体)。