将案例环境中的文本与外部文本对齐

将案例环境中的文本与外部文本对齐

如果想对齐代码,使所有“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}

这仍然是错误的,我希望 if 对齐

答案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}

在此处输入图片描述

相关内容