答案1
这是你想要的吗?
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\begin{aligned}
\min_{x \in X} f(x) &= \sum_{j=1}^{n} f_j(x_j) \\
\text{s.t. } g_i(x) &= \sum_{j=1}^{n} g_{ij}(x_j)\leq b_i,\ i=1,\dots,m, \\
x\in X &= X_1\times X_2\times \dots \times X_n.
\end{aligned}
\tag{P}
\end{equation}
\end{document}
答案2
你可能想要在左侧/右侧的编号方程之间切换并使用gather
来居中内容 - 您的帖子中的对齐方式似乎不一致。为了实现 周围的某种形式的对齐=
,我通过 使用了框\eqmakebox[<tag>][<align>]{<stuff>}
。这将<stuff>
在 上设置一个宽度最大的框,<tag>
使用适当的<align>
调整;在我的情况下是l
左和右。r
\documentclass{article}
\usepackage[leqno]{amsmath}
\usepackage{eqparbox}
% https://tex.stackexchange.com/q/193535/5764
\makeatletter
\newcommand{\leqnomode}{\tagsleft@true}
\newcommand{\reqnomode}{\tagsleft@false}
\makeatother
\begin{document}
\reqnomode
\begin{align}
f(x) &= ax^2 + bx + c \\
g(x) &= dx^2 + ex + f
\end{align}
\leqnomode
\begin{gather}
\eqmakebox[LHS][r]{$\min\ f(x)$}
\eqmakebox[RHS][l]{$\displaystyle {}= \sum_{j = 1}^n f_j(x_j)$} \tag{P} \\
\eqmakebox[LHS][r]{$\textup{s.t.}\ g_i(x)$}
\eqmakebox[RHS][l]{$\displaystyle {}= \sum_{j = 1}^n g_{ij}(x_j) \leq b_i,\ i = 1,\dots,m,$} \nonumber \\
x \in X = X_1 \times X_2 \times \dots \times X_n, \nonumber
\end{gather}
\reqnomode
\begin{align}
f(x) &= ax^2 + bx + c \\
g(x) &= dx^2 + ex + f
\end{align}
\end{document}