制作以下内容的最佳方法是什么:(图片显示有错别字)
答案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
一些选项是amsmath
(align
或align*
,不带编号):
\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}