并排 optidef

并排 optidef

如何使用 optidef 使两个优化问题并排出现?我正在尝试这样做,如下所示:

\documentclass[paper=letter,DIV=10]{scrartcl}
\usepackage{optidef}
\begin{document}

\begin{maxi*}
  {x\in R^n}
  {c^\top x}
  {}
  {{(\mathrm{P})}}
  \addConstraint{Ax}{\leq b}{}
  \addConstraint{x}{\geq 0}{}
\end{maxi*}
\begin{maxi*}
  {x\in R^n,s\in R^m}
  {c^\top x}
  {}
  {{(\mathrm{P}')}}
  \addConstraint{Ax+{s}}{=b}{}
  \addConstraint{x}{\geq 0}{}
  \addConstraint{s}{\geq 0}{}
\end{maxi*}
\end{document}

并将它们放入array环境中不起作用;也没有alignat。谢谢!

答案1

您可以使用小页面。

\documentclass[paper=letter,DIV=10]{scrartcl}
\usepackage{optidef}
\usepackage{amssymb}

\usepackage{lipsum} % for mock text

\newcommand{\R}{\mathbb{R}}

\begin{document}

\lipsum[3][1-4]
\[
\setlength{\abovedisplayskip}{0pt}
\begin{minipage}[t]{0.4\textwidth}
\begin{maxi*}
  {x\in\R^n}
  {c^\top x}
  {}
  {(\mathrm{P})}
  \addConstraint{Ax}{\leq b}{}
  \addConstraint{x}{\geq 0}{}
\end{maxi*}
\end{minipage}
\begin{minipage}[t]{0.4\textwidth}
\begin{maxi*}
  {x\in\R^n,s\in\R^m}
  {c^\top x}
  {}
  {(\mathrm{P}')}
  \addConstraint{Ax+{s}}{=b}{}
  \addConstraint{x}{\geq 0}{}
  \addConstraint{s}{\geq 0}{}
\end{maxi*}
\end{minipage}
\]
\lipsum[4][1-4]
\begin{maxi*}
  {x\in\R^n}
  {c^\top x}
  {}
  {(\mathrm{P})}
  \addConstraint{Ax}{\leq b}{}
  \addConstraint{x}{\geq 0}{}
\end{maxi*}
\lipsum[4][1-4]

\end{document}

设置\abovedisplayskip是为了避免在小页面的顶部错误地插入粘连。

在此处输入图片描述

答案2

根据@egreg 的回答,我做了一个快速宏:

%%% side-by-side optimization environment
\newenvironment{sidebyside}[2]%
{
  \[
  \setlength{\abovedisplayskip}{0pt}
  \begin{minipage}[t]{0.4\textwidth}
    \centering
    #1
  \end{minipage}
  \begin{minipage}[t]{0.4\textwidth}
    \centering
    #2
  \end{minipage}
  \]
}%
{\par}%

相关内容