如何对齐等式中的数字?

如何对齐等式中的数字?

制作以下内容的最佳方法是什么:(图片显示有错别字)

在此处输入图片描述

答案1

虽然使用tabular环境可以轻松解决一些对齐问题,但我宁愿选择使用包align中的环境amsmath,因为最终需要更少的输入。

需要对最后三行进行一些手动操作,以便让个位数 9、8 和 7 与前三行的两位数正确对齐。要实现这一点,您需要使用将phantom它们推到右侧。

A\phantom是一个宏,它不显示其内容,但会产生一条与原始材料一样宽的无限细的水平线。这可以用来将这些数字推到右边,以便与顶部的两位数对齐。

我们将其定义为一个宏\Z

\def\Z{\hphantom{1}}

完整代码如下:

\documentclass[12pt]{article}
\usepackage{amsmath,array}
\def\Z{\hphantom{1}}
\begin{document}
\begin{align*}
1 +  12 &= 13\\
2 +  11 &= 13\\
3 +  10 &= 13\\
4 + \Z9 &= 13\\
5 + \Z8 &= 13\\
6 + \Z7 &= 13
\end{align*}
\end{document}

答案2

好的,首先我要说的是不推荐这个解决方案!但我刚刚学习了一些 catcode,感觉想尝试一下。所以这里有一个解决方案,它允许您按原样输入方程式并根据需要排版。唯一需要额外输入的是\\行末的 (我尝试将换行符改为\\s,但结果很糟糕...)

代码(额外的方程是为了表明对齐是正确的):

\documentclass{minimal}

\newenvironment{alignedeqns}{\catcode`\+4\catcode`\=4\array{r@{{}+{}}r@{{}={}}l}}{\endarray}

\begin{document}

\[
  1 + 100 = 101
\]

\[
  \begin{alignedeqns}
  1 + 100 = 101 \\
  1 + 20 = 21 \\
  2 + 11 = 13 \\
  3 + 10 = 13 \\
  4 + 9 = 13 \\
  5 + 8 = 13 \\
  6 + 7 = 13
  \end{alignedeqns}
\]

\end{document}

结果:

对齐方程

答案3

一些选项是amsmathalignalign*,不带编号):

\usepackage{amsmath}
...
\begin{align*}
1 &+& 20 &= 13
2 &+& 11 &= 13
...
\end{align*}

(我已经编辑了示例,感谢 Martin Tapankov)。

或简单的表格环境。@表达式会自动将给定的内容插入到相应的列之间。

\begin{tabular}{r@{+}r@{=}r}
1 & 20 & 13 \\
2 & 11 & 13 \\
...
\end{tabular}

您可能还希望在@参数中包含额外的空格(例如\;\:\,)。

按照 Martin Scharrer 的建议,您还可以使用数组包来确保数学模式。>{$}r<{$}意思是:$在右对齐的列前添加一个符号,然后$在其后附加一个符号。@{+}意思是+在 的左侧和右侧定义的列之间插入一个@{+}

\usepackage{array}
\begin{tabular}{>{$}r<{$}@{+}>{$}r<{$}@{=}>{$}r<{$}}
1 & 20 & 13 \\
2 & 11 & 13 \\
...
\end{tabular}

相关内容