amsmath
仅使用和是否可以实现以下目标mathtools
?(如果不行,我还需要哪些其他工具?)
我有一系列方程式
\begin{align}
A &= B \\
C &= D \\
E &= F
\end{align}
我想要以下显示:
- 这三个方程式的符号都是对齐的
=
(如上所示) - 前两个方程的编号是“子方程”,即第一个方程的编号为 (1a),第二个方程的编号为 (1b),第三个方程的编号为 (2)。(编号应为动态的,我不想对每次都必须更改的方程编号进行硬编码。)
由于我已经将方程编号放在左侧,因此我想将前两个方程分组并用括号标记。类似于
\begin{equation*} \left.\begin{aligned} A &= B\\ C &= D \end{aligned}\right\}\text{Some description} \end{equation*}
我知道如何分别完成 1、2 和 3。我不知道如何把任何二将它们结合在一起。我很想知道如何同时实现这三个目标。
编辑:要同时完成 1 和 2,我可以使用以下方法之一这些答案。
编辑2:同时完成 1 和 3 的部分解决方案是使用empheq
如下包这里。然而据我所知,括号是“全有或全无”的东西。我不能只在三个表达式中的前两个上加括号。
答案1
以下内容摘自数组中的混合(子)方程编号(满足 1 和 2),并通过括号进行分组(满足 3):
\documentclass{article}
\usepackage[leqno]{amsmath}% http://ctan.org/pkg/amsmath
\newcounter{subeqn} \renewcommand{\thesubeqn}{\theequation\alph{subeqn}}%
\makeatletter
\@addtoreset{subeqn}{equation}
\makeatother
\newcommand{\subeqn}{%
\refstepcounter{subeqn}% Step subequation number
\tag{\thesubeqn}% Label equation
}
\begin{document}
\begin{align}
A + B &\to C + D \\
E + F &\to G + H \label{eq:EFGH}
\smash{\raisebox{\dimexpr.5\normalbaselineskip+.5\jot}{$%
\left.\begin{array}{@{}c@{}}\\[\jot]\\[\jot]\end{array}\right\}\text{Description 1}
$}}\\
I + J &\to K + L \refstepcounter{equation}\subeqn \\
&\to M + N \subeqn \label{eq:MN}
\smash{\left.\begin{array}{@{}c@{}}\\[\jot]\\[\jot]\\[\jot]\end{array}\right\}\text{Description 2}}\\
&\to O + P \subeqn
\end{align}
The EFGH equation is \eqref{eq:EFGH} and the MN is equation~\eqref{eq:MN}.
\end{document}
如果要对奇数个方程进行分组,请在中间的方程中插入一个\smash
ed 。如果要对偶数个方程进行分组,请在中间正下方的方程中插入一个ed ,然后将其向上移动,使其位于中间(垂直方向)。array
\smash
array
.5\normalbaselineskip+.5\jot
具有array
列@{}c@{}
规范,因此宽度为零。但是,\nulldelimiterspace
左侧的(从 开始\left.
)将其稍微推离方程。\\[\jot]
每个方程内的垂直行跳过array
是为了保持与 相同的垂直高度align
。
答案2
我尝试用包中的各种环境进行实验mathtools
(例如cases
,rcases
等),但没有成功。
如果你把以下答案结合起来
然后你就可以实现
我认为这就是你想要的。
\documentclass{article}
\usepackage[leqno]{amsmath}
%%%%%%%%%%%%%%%%%%%%%%%%%%
% taken from
% https://tex.stackexchange.com/questions/34566/mixed-subequation-numbering-within-an-array
%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{etoolbox}
\AtBeginEnvironment{align}{\setcounter{subeqn}{0}}% Reset subequation number at start of align
\newcounter{subeqn} \renewcommand{\thesubeqn}{\theequation\alph{subeqn}}%
\newcommand{\subeqn}{%
\refstepcounter{subeqn}% Step subequation number
\tag{\thesubeqn}% Label equation
}
%%%%%%%%%%%%%%%%%%%%%%%%%%
% taken from
% https://tex.stackexchange.com/questions/1559/adding-a-large-brace-next-to-a-body-of-text/1570#1570
%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing,calc}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture,baseline] \node[anchor=base] (#1) {\phantom{1}};}
\begin{document}
\begin{align}
A + B &\to C + D \\
E + F &\to G + H \label{eq:EFGH} \\
I + J &\to K + L \hfill\tikzmark{right} \refstepcounter{equation}\subeqn \\
&\to M+N \tikzmark{1st}\subeqn \label{eq:MN}\\
&\to O + P\tikzmark{2nd} \subeqn
\end{align}
\begin{tikzpicture}[overlay, remember picture]
\draw [decoration={brace,amplitude=0.5em},decorate,ultra thick,red]
(1st.north)--(2nd.south);
\end{tikzpicture}
The EFGH equation is \eqref{eq:EFGH} and the MN is equation~\eqref{eq:MN}.
\end{document}
答案3
检查一下:
\begin{subequations}
\begin{align}
A &= B \\
C &= D \\
E &= F\tag{2}
\end{align}
\end{subequations}