我在数组或对齐环境中有一个方程列表。我的目标是用右括号包裹其中的一些,并在括号右侧有一个表达式,并保留页面右侧的方程编号。您可以在下面看到一个例子。我目前的问题是:
我无法控制方程式与括号的对齐。我希望这些方程式从同一点开始。
带括号的方程式编号丢失。
我想要的方程式如下:
\begin{alignat}{3}
\text{min} \quad z & & \text{[Optimization Problem]}\nonumber \\
&\text{s.t. } \\
& f_a(x)=1 & \forall a \in A\\
&\left .
\begin{array}{cc}
&f_b(x)=1+2+3\\
&g_b(x)=1\\
\end{array}
\right \}&\forall b\in B
\end{alignat}
答案1
我做了一个解决方案,其中括号是用bigdelim
包完成的。因此我需要将括号集的顶部方程式放入数组中。
\usepackage{bigdelim}
\begin{alignat}{2}
\text{min} \quad z & & & \text{[Optimization Problem]}\nonumber \\
&\text{s.t. } \nonumber \\
& f_a(x)=1 & & \forall a \in A \\
&
\begin{array}{@{}lc}
f_b(x)=1+2+3 & \rdelim\}{2}{2mm}\\
\end{array} & \\
& g_b(x)=1
& & \raisebox{.5\baselineskip}[0pt]{$\forall b\in B$}
\end{alignat}
答案2
您可以将下面两个方程的括号和定义域移动到位:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat}{3}
\text{min $z$} & \qquad\rlap{[Optimization Problem]} \nonumber \\
\text{s.t.} \quad
f_a(x) &= 1 & \forall a \in A \\
f_b(x) &= 1 + 2 + 3
\raisebox{-.5\baselineskip}[0pt][0pt]{$
\left.\kern-\nulldelimiterspace
\begin{array}{ @{} c } \mathstrut \\ \mathstrut \end{array}
\right\}
$} \\
g_b(x) &= 1 &
\hspace{4em} % To move content left/right
\raisebox{.5\baselineskip}[0pt][0pt]{$
\forall b \in B
$}
\end{alignat}
\end{document}
答案3
我根据“mathtools”提出以下alignat
建议rcases
:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}%
\begin{document}
\begin{alignat}{2}
\min z & & & \tag*{\small[Optimization Problem]} \\
\text{s.t. }\raisebox{0pt}[0pt][0pt]{\rule[-2.5\baselineskip]{0.5pt}{3\baselineskip}}\; & f_a(x)=1 & & ∀ a ∈ A \\
& \negmedspace \begin{rcases}f_b(x)=1+2+3\\[2.5pt]%
g_b(x)=1
\end{rcases}
&\quad & ∀ b ∈ B
\end{alignat}
\end{document}
答案4
请参阅 Stefan Kottowitz 给出的简单解决方案https://latex.org/forum/viewtopic.php?t=30012我将其转述如下
\documentclass{article}
\usepackage{empheq}
\begin{document}
\begin{empheq}[right=\empheqrbrace]{align}
2x+y &= 1 \\
8x*y &= 12 \\
12x/c^2 &= 10
\end{empheq}
\end{document}