使用 alignat 将方程式与文本对齐

使用 alignat 将方程式与文本对齐

我正在尝试将这种表达添加到我的作品中: 方程示例

我知道实现此目的的最佳方法是使用包alignat内的环境amsmath,因此我尝试了以下方法:

\begin{alignat*}{3}
m && \text{módulo} && m>0\\
a && \text{multiplicador} && 0<a<m\\
c && \text{constante aditiva} && 0\leq c<m\\
x_0 && \text{valor inicial} && 0\leq x_0 <m
\end{alignat*}

但是我得到的间距确实很奇怪,我已经阅读了amsmath文档,但我无法弄清楚问题是什么。

这是我得到的: 我的结果

我的版本是西班牙语,我正在使用polyglossia,但我认为这不相关。无论如何,我正在使用xelatex,和book课程。

我还想知道是否有办法在具有中间文本的同一环境中写出整个等式,或者我是否需要在最后为居中等式创建另一个数学环境。

答案1

要记住的重要事情是

  • alignat没有在列之间添加空间;
  • 列数rl与参数指定的对数相同。

因此,如果您希望符号、描述和条件左对齐,则应将它们放在 之后&,并用另一个&来分隔各对:

居中对齐

\begin{alignat*}{3}
& m   \quad && \text{módulo}            \quad && m>0\\
& a   \quad && \text{multiplicador}     \quad && 0<a<m\\
& c   \quad && \text{constante aditiva} \quad && 0\leq c<m\\
& x_0 \quad && \text{valor inicial}     \quad && 0\leq x_0 <m
\end{alignat*}

通过添加,\quad我们可以分离列。没有必要在所有行上指定它们,但这样做可以省去猜测最宽的条目是什么的时间。

但是,这会使整个对齐居中。您可以使用tabular(和array包)获得非居中对齐:

左对齐

\begin{tabular}{@{}>{$}l<{$}l>{$}l<{$}@{}}
m   & módulo            & m>0\\
a   & multiplicador     & 0<a<m\\
c   & constante aditiva & 0\leq c<m\\
x_0 & valor inicial     & 0\leq x_0 <m
\end{tabular}

相关内容