如果想对齐代码,使所有“if ...”部分也对齐。但我无法做到这一点,因为三个等式中有两个在case环境中,而另一个不在。
\begin{align}
g^B(x)&=
\begin{cases}
T & \text{if $x$ is $\tr$,} \\
F & \text{if $x$ is $\fa$.}
\end{cases}\\
g^\ell (x)&=
a \xor g^B(z) &\text{if $x = y\lef a \rig z$}\\
g^B(x)&=
\begin{cases}
T & \text{if $x$ is $\tr$,} \\
F & \text{if $x$ is $\fa$.}
\end{cases}
\end{align}
答案1
欢迎使用 TeX-SE!我们通常会提供以 开头\documentclass
和结尾的完整可编译示例\end{document}
。我没有您的定义\fa
等等,所以我用随机的东西替换了它们。如果我有它们,就没有必要这样做了。至于您的问题,一种方法是使用blkarray
。
\documentclass{article}
\usepackage{blkarray}
\usepackage{multirow}
\usepackage{amsmath}
\begin{document}
\[\begin{blockarray}{rll}
\begin{block}{r\{ll}
\multirow{2}{*}{$g^B(x)=$}&
$T$ & \text{if $x$ is $x$,} \\
& $F$ & \text{if $x$ is $x$.}\\
\end{block}
g^\ell (x)=&
a \wedge g^B(z) & \text{if $x = y\dots a \dots z$}\\
\begin{block}{r\{ll}
\multirow{2}{*}{$g^B(x)=$}&
$T $& \text{if $x$ is $x$,} \\
& $F$ & \text{if $x$ is $x$.}\\
\end{block}
\end{blockarray}\]
\end{document}
答案2
基于以下的解决方案alignedat
:
\documentclass{article}
\usepackage{blkarray}
\usepackage{multirow}
\usepackage{amsmath, amssymb}
\usepackage{stackengine}
\newcommand{\xor}{\mathrel{\stackMath\stackinset{l}{-1pt}{c}{0pt}{\scriptscriptstyle\bullet}{ + }}}
\begin{document}
\begin{alignat}{2}
g^B(x )& = \begin{cases}T \\ F \end{cases}
& &\begin{aligned}
& \text{if } x \text{ is }\mathsf{T}, \\
& \text{if } x \text{ is }\mathsf{F}.
\end{aligned} \\
g^\ell (x) & = a \xor
g^B(z) &\qquad & \text{if }x = y\triangleleft a \triangleright z \\
g^B(x )& = \begin{cases}T \\ F \end{cases}
& &\begin{aligned}
& \text{if } x \text{ is }\mathsf{T}, \\%
& \text{if } x \text{ is }\mathsf{F}.
\end{aligned}
\end{alignat}
\end{document}