我可以使用以下命令在方程组周围创建一个花括号(在两个位置对齐!)aligned
:
\begin{equation}
\left\{
\begin{aligned}[2]
&\rho &&= \frac{\e^{- \lambda_2 \H/k}}{\e^{1 + \lambda_1/k}}
\\
&\Tr{\rho} &&= 1
\\
&\Tr{\rho \H} &&= \braket{E}
\end{aligned}
\right.
\end{equation}
或者,我可以创建一组方程式,其中每一行都有一个数字,但没有花括号,使用alignat
:
\begin{alignat}{2}
&\rho &&= \frac{\e^{- \lambda_2 \H/k}}{\e^{1 + \lambda_1/k}}
\\
&\Tr{\rho} &&= 1
\\
&\Tr{\rho \H} &&= \braket{E}
\end{alignat}
我怎样才能创建一组方程式(仍然在两个位置对齐),它们都包含数字(如第二个示例所示),并且它们还有一个花括号(如第一个例子)??
答案1
答案2
使用盒子测量来伪造对齐是相当容易的——使用eqparbox
:
\documentclass{article}
\usepackage{amsmath,cases,eqparbox,xparse}
\newcommand{\faketerm}[1][1]{\rule{#1 em}{1ex}}
% https://tex.stackexchange.com/a/34412/5764
\makeatletter
\NewDocumentCommand{\eqmathbox}{o O{c} m}{%
\IfValueTF{#1}
{\def\eqmathbox@##1##2{\eqmakebox[#1][#2]{$##1##2$}}}
{\def\eqmathbox@##1##2{\eqmakebox{$##1##2$}}}
\mathpalette\eqmathbox@{#3}
}
\makeatother
\begin{document}
\begin{numcases}{}
\eqmathbox[lhs][l]{\faketerm[4]} = \faketerm[5] \\
\eqmathbox[lhs][l]{\faketerm[3]} = 1 \\
\eqmathbox[lhs][l]{\faketerm } = \faketerm[2]
\end{numcases}
\end{document}
如果您没有任何“解释”,那么您可以\unskip
使用它们之间的额外空间来替代您的对齐:
\documentclass{article}
\usepackage{amsmath,cases}
\newcommand{\faketerm}[1][1]{\rule{#1 em}{1ex}}
\begin{document}
\begin{numcases}{}
\faketerm[4] &\unskip {} = \faketerm[5] \\
\faketerm[3] &\unskip {} = 1 \\
\faketerm &\unskip {} = \faketerm[2]
\end{numcases}
\end{document}