方程式对齐空格

方程式对齐空格

在以下摘录中,我想按照&&&符号的指示对齐方程组,但我需要将每个方程的左侧附加到=\geq符号。换句话说,我希望在方程编号后面有水平空格。

提前感谢您的任何建议。

\documentclass{extbook}
\usepackage{amsmath}

\begin{document}
\begin{equation*}
    \begin{aligned}
        &\textnormal{(i)} \enspace f'(x^*) &&= \sum\limits_{i=1}^m \lambda_i h'_i(x^*) +\sum\limits_{i=1}^p \mu_i^* g'_i(x^*) \\
        &\textnormal{(ii)} \enspace h_i(x^*) &&= 0, \; i=1,\ldots, \, m, \\
        &\textnormal{(iii)} \enspace g_i(x^*) &&\ge 0, \; i=1, \ldots, \, p, \\
        &\textnormal{(iv)} \enspace \mu_i^* g_i(x^*) &&=0, \; i=1,\ldots, \, p, \\
        &\textnormal{(v)} \enspace \mu_i^* &&\ge 0, \; i=1,\ldots, \, p.
    \end{aligned}
\end{equation*}
\end{document}

在此处输入图片描述

答案1

您只需在您的环境中插入一个额外的&而不是。但是,您似乎对元素列表的枚举以及关系周围的对齐感兴趣。为此,将每个方程设置为带有一些框测量/操作的 ,以帮助进行左侧对齐。\enspacealigned\item

两个选项如下所示:

在此处输入图片描述

\documentclass{article}

%\usepackage{showframe}
\usepackage{enumitem}
\usepackage{amsmath,eqparbox}

% https://tex.stackexchange.com/a/34412/5764
\makeatletter
\NewDocumentCommand{\eqmathbox}{o O{c} m}{%
  \IfValueTF{#1}
    {\def\eqmathbox@##1##2{\eqmakebox[#1][#2]{$##1##2$}}}
    {\def\eqmathbox@##1##2{\eqmakebox{$##1##2$}}}
  \mathpalette\eqmathbox@{#3}
}
\makeatother


\begin{document}

\[
  \begin{aligned}
    &\textnormal{(i)}   &          f'(x^*) &= \sum\limits_{i = 1}^m \lambda_i h'_i(x^*) + \sum\limits_{i = 1}^p \mu_i^* g'_i(x^*) \\
    &\textnormal{(ii)}  &         h_i(x^*) &= 0, ~ i = 1,\dots, m, \\
    &\textnormal{(iii)} &         g_i(x^*) &\geq 0, ~ i = 1, \dots, p, \\
    &\textnormal{(iv)}  & \mu_i^* g_i(x^*) &= 0, ~ i = 1, \dots, p, \\
    &\textnormal{(v)}   &          \mu_i^* &\geq 0, ~ i = 1, \dots, p.
  \end{aligned}
\]

\begin{enumerate}[label={(\roman*)},align=left]
  \item
  $\displaystyle\eqmathbox[LHS][r]{f'(x^*)} = \sum\limits_{i = 1}^m \lambda_i h'_i(x^*) + \sum\limits_{i = 1}^p \mu_i^* g'_i(x^*)$

  \item
  $\eqmathbox[LHS][r]{h_i(x^*)} = 0, ~ i = 1,\dots, m$,
  
  \item
  $\eqmathbox[LHS][r]{g_i(x^*)} \geq 0, ~ i = 1, \dots, p$,

  \item
  $\eqmathbox[LHS][r]{\mu_i^* g_i(x^*)} = 0, ~ i = 1, \dots, p$,

  \item
  $\eqmathbox[LHS][r]{\mu_i^*} \geq 0, ~ i = 1, \dots, p$.
\end{enumerate}

\end{document}

\eqmathbox[<tag>][<align>]{<stuff>}在所有类似的 s 中设置<stuff>尽可能宽的框<tag>,并附加<align>ment 选项(默认为centred,但您也可以与left 或right 对齐)。

自从eqparbox(内部使用\eqmathbox)使用类似于\label-\ref的机制(通过.aux),每次更改最大宽度时您都必须至少编译两次<tag>(第一次编译时也必然如此)。

showframe用于指示文本块边界(在图像中看作沿侧面的黑条)。

答案2

使用alignedat

\documentclass{extbook}
\usepackage{amsmath}

\begin{document}
\begin{equation*}
    \begin{alignedat}{2}
        &\textnormal{(i)} & f'(x^*) &= \sum\limits_{i=1}^m \lambda_i h'_i(x^*) +\sum\limits_{i=1}^p \mu_i^* g'_i(x^*) \\
        &\textnormal{(ii)} & h_i(x^*) &= 0, \; i=1,\ldots, \, m, \\
        &\textnormal{(iii)} & g_i(x^*) &\ge 0, \; i=1, \ldots, \, p, \\
        &\textnormal{(iv)} & \enspace \mu_i^* g_i(x^*) &=0, \; i=1,\ldots, \, p, \\
        &\textnormal{(v)} & \mu_i^* &\ge 0, \; i=1,\ldots, \, p.
    \end{alignedat}
\end{equation*}
\end{document}

在此处输入图片描述

相关内容