序列比对问题

序列比对问题

我想对齐两个序列:

a_1、b_1、c_1、d_1、e_1 等。

a_2、b_2、c_2、d_2、e_2 等。

这是我写的

    \begin{align}
    \notag &a_1,\ &b_1,\ &c_1,\ &d_1,\ &e_1\ \mbox{etc.}\\
    \notag &a_2,\ &b_2,\ &c_2,\ &d_2,\ &e_2\ \mbox{etc.}
    \end{align}

但事实证明,前两列是完美的,但第二列和第三列之间有很大空间。我该如何解决这个问题?任何帮助都非常感谢。

答案1

使用类似以下结构也许可以更好地获得您的对齐array

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\begin{align*}
  &a_1,\ &b_1,\ &c_1,\ &d_1,\ &e_1\ \text{etc.}\\
  &a_2,\ &b_2,\ &c_2,\ &d_2,\ &e_2\ \text{etc.}
\end{align*}

\[
  \begin{array}{*{6}{l@{\ }}}
    a_1, & b_1, & c_1, & d_1, & e_1 & \text{etc.} \\[\jot]
    a_2, & b_2, & c_2, & d_2, & e_2 & \text{etc.}
  \end{array}
\]
\end{document}

array由 6 列组成-l@{\ }l对齐,后跟一个控制空间\\\[\jot]确保系列之间有相当大的间隙,类似于align,而\text(由 提供)amsmath) 会进行一些测试来保持字体大小,因此比\mbox构造更优越(一般而言)。不过在这种情况下,这并不重要。

答案2

您还可以使用alignat*允许多个对齐点的环境:

在此处输入图片描述

笔记:

  • 环境alignat*=会产生与第一个参数中指定的一样多的rl对,并且不会插入align环境所插入的额外空间,因此您需要在对齐点之间插入所需的空间。
  • 行距&用于确保第一列左对齐。因此需要双倍行距&&来确保后续列也左对齐。

代码:

\documentclass{article}
\usepackage{amsmath}

\begin{document}
\begin{alignat*}{6}
    &a_1,\ &&b_1,\ &&c_1,\ &&d_1,\ &&e_1\ &&\text{etc.}\\
    &a_2,\ &&b_2,\ &&c_2,\ &&d_2,\ &&e_2\ &&\text{etc.}
\end{alignat*}
\end{document}

相关内容