在对齐方程中指定每列的对齐方式

在对齐方程中指定每列的对齐方式

使用以下 mwe 我还没有找到正确对齐公式的方法。

\documentclass{article}
\usepackage{mathtools}  % extends amsmath and fixes some of its quirks
\usepackage{amssymb}
\begin{document}


\begin{align}\label{eq:mergefunction_with_weighting}
\curlyvee(v, \omega) := 
l_1 \triangleright l_2 = 
\left\{
 \begin{aligned}
       &l_1(v)               &                          &\text{wenn $v \in G_1 \setminus G_2$}\\
\omega(&l_1(v)) + (1-\omega)(&\hat{R}l_2(v) +\hat{t})   &\text{wenn $v \in G_1 \cap G_2$}\\
       &                     &\hat{R}l_2(v) +\hat{t}    &\text{wenn $v \in G_2 \setminus G_1$}.
 \end{aligned}
\right.
\end{align}


\end{document}

我的输出目前是这样的:

在此处输入图片描述

除了环境内的垂直和水平对齐/间距之外,一切都很好aligned。但是您可以注意到以下几点:- 第一个&工作正常。- 第二个&应该与 对齐 \hat{R},并且中间行的(和 之间没有间距\hat{R}- 最后&,中间行的 \hat(t))和 之间的间距wenn应该更大。(我认为一旦第二个&修复,这个就会消失。

所以我的请求可以归结为一个问题:解决此类安置问题的最佳和一致的方法是什么?

答案1

您的输出正是您所期望的aligned:您有四列,第一列和第三列右对齐,第二列和第四列左对齐,并且第一和第二个“lr 对”之间有一些空间。您真正想要的最好实现是使用cases环境;@{}当您不希望列之间有空间时使用。

输出

请注意,行之间的垂直间距比您的aligned代码中的要小。如果您想要与 相同的垂直间距aligned,请在下面的代码中使用\\[\jot]而不是。\\

\documentclass{article}
\usepackage{mathtools}  % extends amsmath and fixes some of its quirks
\usepackage{amssymb}
\begin{document}
\begin{align}\label{eq:mergefunction_with_weighting}
  \curlyvee(v, \omega) := l_1 \triangleright l_2 = 
  \left\{
    \begin{array}{@{}r@{}l@{}ll}
       &l_1(v)               &                          &\text{wenn $v \in G_1 \setminus G_2$}\\
\omega(&l_1(v)) + (1-\omega)(&\hat{R}l_2(v) +\hat{t})   &\text{wenn $v \in G_1 \cap G_2$}\\
       &                     &\hat{R}l_2(v) +\hat{t}    &\text{wenn $v \in G_2 \setminus G_1$}.
    \end{array}
  \right.
\end{align}
\end{document}

您也可以使用\begin{cases}...\end{cases}代替\left\{...\right.,但在此特定示例中,公式编号不再合适。此外,请注意,无需使用align作为外部环境,因为该环境没有制表位;我会使用equation代替。

答案2

您可以使用cases环境并\phantom实现所需的对齐

\[
\curlyvee(v, \omega) := 
l_1 \triangleright l_2 = 
\begin{cases}
\phantom{\omega(}l_1(v) &   \text{wenn $v \in G_1 \setminus G_2$}\\
\omega(l_1(v)) + (1-\omega)(\hat{R}l_2(v) +\hat{t})   &\text{wenn $v \in G_1 \cap G_2$}\\
\phantom{\omega(l_1(v)) + (1-\omega)(}\hat{R}l_2(v) +\hat{t} &\text{wenn $v \in G_2 \setminus G_1$}.
\end{cases}
\]

tabbing第二种选择是使用minipage

\[
\curlyvee(v, \omega) :=  l_1 \triangleright l_2 = 
\begin{cases}
  \begin{minipage}{0cm}
    \begin{tabbing}
      $\omega($\=$l_1(v)) + (1-\omega)($\=$\hat{R}l_2(v)+\hat{t})$ \quad\= \kill
      \> $l_1(v)$ \>\>   wenn $v \in G_1 \setminus G_2$\\
      $\omega(l_1(v)) + (1-\omega)(\hat{R}l_2(v) +\hat{t})$ \>\>\> wenn $v \in G_1 \cap G_2$\\ 
      \>\> $\hat{R}l_2(v) +\hat{t}$ \> wenn $v \in G_2 \setminus G_1$.
    \end{tabbing}
  \end{minipage}
\end{cases}
\]

答案3

我认为您想使用alignedat环境而不是aligned。这与环境类似aligned,因为它提供了r/l方程对,但没有环境添加的方程间空间aligned。因此,如上所示,对代码所需的唯一更改是:

  1. \begin{aligned}用替换\begin{alignedat}{4},以及相应的end{}

  2. 将第二和第三个对齐点从 改为&&&此操作可将对齐方式从r右对齐改为l左对齐,这正是您想要的。

  3. 更改text{wenn...}text{ wenn...},或改用\quad\text{wenn...},以便在那里留出一些空间。

在此处输入图片描述

笔记:

  • 但正如其他解决方案所提到的,暴露的环境确实是一个cases(或dcases)环境,应该不是是,align因为您没有多个对齐的方程。您有方程。

代码:

\documentclass{article}
\usepackage{mathtools}  % extends amsmath and fixes some of its quirks
\usepackage{amssymb}
\begin{document}


\begin{align}\label{eq:mergefunction_with_weighting}
\curlyvee(v, \omega) := 
l_1 \triangleright l_2 = 
\left\{
 \begin{alignedat}{4}
       &l_1(v)               &&                          &&\quad\text{wenn $v \in G_1 \setminus G_2$}\\
\omega(&l_1(v)) + (1-\omega)(&&\hat{R}l_2(v) +\hat{t})   &&\quad\text{wenn $v \in G_1 \cap G_2$}\\
       &                     &&\hat{R}l_2(v) +\hat{t}    &&\quad\text{wenn $v \in G_2 \setminus G_1$}.
 \end{alignedat}
\right.
\end{align}


\end{document}

相关内容