![使用 hline 对齐美化数学环境中的空白](https://linux22.com/image/297567/%E4%BD%BF%E7%94%A8%20hline%20%E5%AF%B9%E9%BD%90%E7%BE%8E%E5%8C%96%E6%95%B0%E5%AD%A6%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84%E7%A9%BA%E7%99%BD.png)
我有点惊讶我找不到已经解决过这个问题的地方,它看起来太基础了:我想排版基本的代数解法,你写一个等式,然后在它下面写出你对两边做了什么,然后你在下面划线,好像它是两个东西相加,在下面显示结果。例如,我一直试图写以下内容,
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}
x & -1 = & 3\\
& +1 & +1\\ \cline{1-3}
&x &= 4
\end{alignat*}
\end{document}
除了“+1 +1”行和水平线之间的空白看起来很丑之外,大部分看起来都很漂亮。由于所有的对齐控制,我无法使用下划线。我考虑过使用 \toprule,但这在数学环境中似乎不起作用。还有其他想法吗?
答案1
虽然我很确定这是在另一个问题中提到过,这里有一个建议。
(但是,您的使用alignat
缺少了一个重要的东西——列数。)
您需要做的就是在倒数第二行之后,就在 之前\cline
指定一个可选的负垂直空间。这里我使用了小写“x”的两倍高度:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}{2}
x & -1 = & 3\\
& +1 & +1\\[-2ex] \cline{1-3}
x & \phantom{{}-1} = & 4
\end{alignat*}
\end{document}
答案2
您可能希望使用array
,而不是alignat
,以便实现更精细的控制。
我建议两个版本,左边的一个{+1}
避免了两个符号之间的空格。
\documentclass{article}
\usepackage{amsmath,array,booktabs}
\begin{document}
\[
\begin{array}{
@{}
r % for x
@{}
>{{}}r % for -1 and +1
@{}
>{{}}c<{{}} % for the =
@{}
r % for the right hand side
@{}
}
x & -1 & = & 3\\
& {+1} & & +1\\
\midrule
x & & = & 4
\end{array}
\qquad
\begin{array}{
@{}
r % for x
@{}
>{{}}r % for -1 and +1
@{}
>{{}}c<{{}} % for the =
@{}
r % for the right hand side
@{}
}
x & -1 & = & 3\\
& +1 & & +1\\
\midrule
x & & = & 4
\end{array}
\]
\end{document}