优化问题中方程的特殊排列

优化问题中方程的特殊排列

在下面的问题中,我想将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 更改为正确的斜体)。

相关内容