对齐几个方程的方程编号及其子方程

对齐几个方程的方程编号及其子方程

我试图对一些由两部分组成的方程进行编号。例如,在这个数字,我希望方程式“1a”为“1”,方程式“1b”和“1c”分别为“2a”和“2b”。此外,方程式“1d”和“1e”将合在一起成为方程式 3。

我现在使用的代码如下:

\documentclass[12pt]{article}
\usepackage{amsmath,amsthm}
\usepackage{mathtools}

\begin{document}

\begin{subequations}
\begin{alignat}{2}
\max_{p_1} \pi_R &=(p_1-c_1)(a_1-b_1*p_1) \notag \\
\max_{p_2,x_1} \pi_C &=(p_2-c_2)(a_2-b_2*p_2)-x_1r_1 \notag \\
\text{s. t.\enspace} \notag \\
(a_1-b_1p_1)&<(a_2-b_2*p_2)\\
p_1 & \le p_2 & & (\text{when } a_1\le a_2) \\
x_1r_1 & \le p_2 & & (\text{when } a_2 < a_1)\\
c_1&<c_2\\
b_1&=b_2
\end{alignat}
\end{subequations}
\end{document} 

答案1

这适合你吗?

\documentclass[12pt]{article}
\usepackage{amsthm}
\usepackage{mathtools, nccmath}
\usepackage{eqparbox}
\newcommand{\eqmathboxr}[2][Mr]{\eqmakebox[#1][r]{$\displaystyle#2$}}
\newcommand{\eqmathboxl}[2][Ml]{\eqmakebox[#1][l]{$\displaystyle#2$}}

\begin{document}

\begin{align}
\max_{p_1} \pi_R &=(p_1-c_1)(a_1-b_1*p_1) \notag \\
\eqmathboxr{\max_{p_2,x_1} \pi_C} &=\eqmathboxl{(p_2-c_2)(a_2-b_2*p_2)-x_1r_1} \notag \\
\eqmakebox[Mr][l]{s. t.}\notag \\
\eqmathboxr{(a_1-b_1p_1)}&<(a_2-b_2*p_2)
\end{align}
\vspace*{-6ex}
\begin{subequations}
\begin{align}
\eqmathboxr{p_1} & \le \eqmathboxl{p_2} \llap{(when $ a_1\le a_2 $)}\\
x_1r_1 & \le \eqmathboxl{p_2 } \llap{(when $ a_2 < a_1 $)}
\end{align}
\end{subequations}
\vspace*{-3ex}
\begin{equation}
\begin{aligned}
\eqmathboxr{c_1}&<\eqmathboxl{c_2}\\
b_1&=b_2
\end{aligned}
\end{equation}

\end{document} 

在此处输入图片描述

解释:一般的想法是使用三个独立的对齐环境,因为不可能只对环境中的某些行使用子方程环境align,并且借助eqparbox包使这些环境的对齐点相同:我定义了 \eqmathboxr\eqmathboxl命令,它们只是\eqmathbox包定义的命令,其内容分别为数学模式、显示样式和 flushright 或 flushleft。这些命令/框使用标签(具有默认值),以便共享相同标签的所有框的宽度等于最宽的内容。我最终将这些命令应用于整个方程组最相关的左侧或右侧。

答案2

您可以这样做;但是,我对条件的多重编号颇感怀疑。

\documentclass[12pt]{article}
\usepackage{amsmath,amsthm}
\usepackage{mathtools}

\usepackage{lipsum}

\newcommand{\advanceparent}{%
  \stepcounter{parentequation}%
  \setcounter{equation}{0}%
  \xdef\theparentequation{\arabic{parentequation}}%
}

\begin{document}

\lipsum*[3]
\begin{subequations}\label{mkctest}
\begin{alignat}{3}
&\mathmakebox[3em][l]{
  \begin{aligned}[b]
  \max_{p_1} \pi_R &=(p_1-c_1)(a_1-b_1*p_1)
  \\
  \max_{p_2,x_1} \pi_C &=(p_2-c_2)(a_2-b_2*p_2)-x_1r_1
  \end{aligned}
} \notag \\
&\text{s. t.} \notag \\
&& (a_1-b_1p_1) &<   (a_2-b_2*p_2) \tag{\ref{mkctest}}
\\
\advanceparent
&& p_1          &\le p_2            &\quad& (\text{when } a_1\le a_2) \\
&& x_1r_1       &\le p_2            &     & (\text{when } a_2 < a_1)  \\
\advanceparent
&& c_1          &<   c_2 \\
&& b_1          &=   b_2
\end{alignat}
\end{subequations}
\lipsum[4]

\end{document} 

在此处输入图片描述

答案3

有多余的&和缺失的\\

\documentclass[12pt]{article}
\usepackage{amsmath,amsthm}
\usepackage{mathtools}

\begin{document}

\begin{subequations}
\begin{alignat}{2}
\max_{p_1} \pi_R &=(p_1-c_1)(a_1-b_1*p_1) \notag \\
\max_{p_2,x_1} \pi_C &=(p_2-c_2)(a_2-b_2*p_2)-x_1r_1 \notag \\
\text{s. t.\enspace} \notag \\
(a_1-b_1p_1)    &   <(a_2-b_2*p_2)  & \\
p_1             &   \le p_2         & (\text{when } a_1\le a_2) \\
x_1r_1          &   \le p_2         & (\text{when } a_2 < a_1) \\
c_1             &   <c_2            & \\
b_1             &   =b_2
\end{alignat}
\end{subequations}
\end{document}

在此处输入图片描述

相关内容