如何使用 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}%