我正在尝试创建 KKT 条件的漂亮显示,并为每个条件进行子编号。我已经能够使用\empheq
包(问题末尾的 MWE)做到这一点。但是,这些排列并不整齐。
我尤其想调整不平等的限制和对齐括号/描述。到目前为止,如果不丢失每个约束的编号,我无法实现这两个目标。任何帮助都值得感激。
我也愿意接受使用编号案例环境(例如\numcases
)的解决方案,将括号/描述放在左侧,但到目前为止,这些方法似乎也存在相同的对齐问题。不过,在其他条件相同的情况下,我更喜欢将描述放在右侧的视觉效果。
平均能量损失
\documentclass{article}
\usepackage{amssymb, amsthm, amsmath}
\usepackage{mathtools, empheq}
\begin{document}
\begin{empheq}[right={\empheqrbrace \textrm{Primal Feasibility}}]{align}
g_1(\mathbf{x}) & \leq 0 \\
g_2(\mathbf{x}) & \leq 0
\end{empheq}
\begin{empheq}[right={\empheqrbrace \textrm{Dual Feasibility} }]{align}
\sum_{i = 1}^m \lambda_i \nabla g_i(\mathbf{x}) & = \nabla f(\mathbf{x}) \\
\lambda_i & \geq 0 \quad \forall i
\end{empheq}
\begin{empheq}[right={\empheqrbrace \textrm{Complementary Slackness}}]{align}
\lambda_1 g_1(\mathbf{x}) & = 0 \\
\lambda_2 g_2(\mathbf{x}) & = 0.
\end{empheq}
\end{document}
答案1
黑客攻击,黑客攻击。;-)
\documentclass{article}
\usepackage{amssymb, amsthm, amsmath}
\usepackage{mathtools, empheq,eqparbox}
\newcommand{\eqmath}[3][l]{\eqmakebox[#2][#1]{$\displaystyle\if#1l{}\fi#3$}}
\newcommand{\ftext}[2]{\makebox[#1][l]{\textup{#2}}}
\begin{document}
\begin{empheq}[
right=\empheqrbrace \ftext{10em}{Primal Feasibility}
]{align}
\eqmath[r]{A}{g_1(\mathbf{x})} & \eqmath[l]{B}{\leq 0} \\
\eqmath[r]{A}{g_2(\mathbf{x})} & \eqmath[l]{B}{\leq 0}
\end{empheq}
\begin{empheq}[
right=\empheqrbrace \ftext{10em}{Dual Feasibility}
]{align}
\eqmath[r]{A}{\sum_{i=1}^m \lambda_i \nabla g_i(\mathbf{x})} & \eqmath[l]{B}{= \nabla f(\mathbf{x})} \\
\eqmath[r]{A}{\lambda_i} & \eqmath[l]{B}{\geq 0 \quad \forall i}
\end{empheq}
\begin{empheq}[
right=\empheqrbrace \ftext{10em}{Complementary Slackness}
]{align}
\eqmath[r]{A}{\lambda_1 g_1(\mathbf{x})} & \eqmath[l]{B}{= 0} \\
\eqmath[r]{A}{\lambda_2 g_2(\mathbf{x})} & \eqmath[l]{B}{= 0}.
\end{empheq}
\end{document}
一种不同的黑客攻击:
\documentclass{article}
\usepackage{amssymb, amsthm, amsmath}
\begin{document}
\begin{align}
\multispan{2}\hfill\textit{Primal Feasibility}\hfill\notag\\
g_1(\mathbf{x}) & \leq 0 \\
g_2(\mathbf{x}) & \leq 0 \\[2ex]
\multispan{2}\hfill\textit{Dual Feasibility}\hfill\notag\\[-0.5ex]
\sum_{i=1}^m \lambda_i \nabla g_i(\mathbf{x}) & = \nabla f(\mathbf{x}) \\[-1ex]
\lambda_i & \geq 0 \quad \forall i \\[2ex]
\multispan{2}\hfill\textit{Complementary Slackness}\hfill\notag \\
\lambda_1 g_1(\mathbf{x}) & = 0 \\
\lambda_2 g_2(\mathbf{x}) & = 0.
\end{align}
\end{document}