optidef 包是否可以适应打破长期约束?

optidef 包是否可以适应打破长期约束?

optidef 包可以使用命令(文档第 9.9 节)来分解长目标函数\breakObjective。我有一个约束太长了。下面的解决方法用于\breakObjective约束并完成工作,但有没有更好的方法?

\documentclass{article}
\usepackage{optidef}

\begin{document}

The constraint below is too long:

\begin{maxi}
    { \{C_s\}_{s = t}^\infty }{ \sum_{s = t}^\infty \beta^{s-t} u(C_s) }{}{}
    \addConstraint{ C_s + a + b + c + d + e + f + g }{ =  h + i + j + k + l + m + n + o + p. }{}
\end{maxi}

Using the breakObjective command helps:

\begin{maxi}
    { \{C_s\}_{s = t}^\infty }{ \sum_{s = t}^\infty \beta^{s-t} u(C_s) }{}{}
    \addConstraint{ C_s + a + b + c + d + e + f + g }
    \breakObjective{= h + i + j + k + l + m + n + o + p. }
\end{maxi}

Adding qquad indents to the second line, conforming AMS style:

\begin{maxi}
    { \{C_s\}_{s = t}^\infty }{ \sum_{s = t}^\infty \beta^{s-t} u(C_s) }{}{}
    \addConstraint{ C_s + a + b + c + d + e + f + g }
    \breakObjective{ \qquad = h + i + j + k + l + m + n + o + p. }
\end{maxi}

\end{document}

答案1

刚刚找到一个简单的解决方案:打开一个新的约束并将第一个括号留空:

\begin{maxi}
{ \{C_s\}_{s = t}^\infty }{ \sum_{s = t}^\infty \beta^{s-t} u(C_s) }{}{}
\addConstraint{C_s + a + b + c + d + e + f + g = }{}
\addConstraint{}{  h + i + j + k + l + m + n + o + p. }
\end{maxi}

效果甚至比 \breakObjective 更好,因为它不会添加新的英石

相关内容