具有多个对齐点的 IEEEeqnarray

具有多个对齐点的 IEEEeqnarray

我有一个长期存在的问题,关于如何使用 排版特定方程式IEEEeqnarray

考虑一下代码

\documentclass{scrartcl}
\usepackage{IEEEtrantools,amsmath}
\begin{document}

\begin{IEEEeqnarray}{rCllr}
\IEEEyesnumber  \IEEEyessubnumber*
\min_{ y_i} &\quad& \sum_{i=1}^M \big(\frac 12 y_i^\top Q_i y_i \,+\, &q_i^\top  y_i + K_i\big) \, & \text{(agent objective)}\\
\text{s.t.} && C_i y_i=c_i& \forall i  &\text{(agent dynamic)}\\
&& {y}_i^{lb} \leq  y_i \leq {y}_i^{ub} & \forall i &\text{(agent bound)}\\
&& D  y  = d  & &\text{(coupling of agents)}.
\end{IEEEeqnarray}
\end{document}

输出结果

在此处输入图片描述

我添加了垂直红线来指示水平对齐。(请忽略看起来奇怪的 0.xx 标签。)

我想要实现的目标:

在此处输入图片描述

即我希望将最后一个向右的列移到更靠近等式的其余部分,特别是我不希望coupling of agents最后一行的位置由K_i)第一行的位置决定。请注意,我还想将实际(编号)标签保留在写出的标签旁边。

我为什么想要这个:
此等式适用于水平空间较少的双栏纸张。

关于可能的解决方案的自己的想法:

  • 所需的行为与\hfill在文本环境中使用非常相似。但这在这里不起作用(放入\hfill方程式没有效果)。
  • 关键点是将&2-4 行中的定位点(标记为 )设置为独立于 1 行。这还将简化 的放置,\forall i并且仍允许具有共同的齐平方向。但不知道该如何实现这一点。
  • 另一种可能性是将写出的描述放入实际标签中,但这样我只能使用其中一种,而在这里我需要两种。请不要争辩说我不应该有两种类型的标签,这是出于这里未给出的上下文。

感谢所有回答和建议!

答案1

几个\rlap指令将帮助您实现格式化目标。\rlap第一行中的指令用于将最后一列中的材料紧贴宽度${}_i\bigr)$。最后一行中的第二个指令是可选的,仅用于正确对齐右括号。

在此处输入图片描述

\documentclass{scrartcl}
\usepackage{IEEEtrantools,amsmath}
\begin{document}

\begin{IEEEeqnarray}{rCllr}
\IEEEyesnumber  \IEEEyessubnumber*
\min_{y_i} &\quad& \sum_{i=1}^M \bigl(\tfrac{1}{2} y_i^\top Q_i y_i +{} 
      &q_i^\top  y^{}_i + K\rlap{${}_i\bigr)$}  & \text{(agent objective)}\\
\text{s.t.} 
    && C_i y_i=c_i& \forall i  &\text{(agent dynamic)}\\
    && {y}_i^{lb} \leq  y^{}_i \leq {y}_i^{ub} & \forall i &\text{(agent bound)}\\
    && D  y  = d  & &\text{(coupling of agents)}\rlap{.}
\end{IEEEeqnarray}
\end{document}

相关内容