是否有一个包可以让我在数学模式下画一条水平线,就像下面建议的那样?
\begin{align*}
x + 2 &= 3\\ % First equation
-2 &= -2\\ % Second equation
%% Horizontal line drawn under last equation HERE, with line as wide as
%% first equation
x &= 1
\end{align*}
答案1
这是一个使用array
环境的解决方案,它注意保留 mathbin 类型运算符(“+”和“-”)和 mathrel(“=”)周围的适当间距。它还使用宏\midrule
(来自booktabs
包)来获得水平线周围的良好间距。
\documentclass{article}
\usepackage{array,amsmath,booktabs}
\begin{document}
\[
\begin{array}{ @{} r @{}>{{}}c<{{}}@{} r @{{}={}} r @{} }
x & + & 2 & 3\\
& - & 2 & -2\\
\midrule
& & x & 1\\
\end{array}
\]
\end{document}
答案2
很简单:使用aligned
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
\begin{aligned}
x + 2 &= 3\\ % First equation
-2 &= -2\\ % Second equation
\hline
x &= 1
\end{aligned}
\end{equation*}
\end{document}
更好的是,使用 also booktabs
and \midrule
:
\documentclass{article}
\usepackage{amsmath,booktabs}
\begin{document}
\begin{equation*}
\begin{aligned}
x + 2 &= 3\\ % First equation
-2 &= -2\\ % Second equation
\midrule
x &= 1
\end{aligned}
\end{equation*}
\end{document}
答案3
用一个tabular
\documentclass{article}
\usepackage{amsmath,array}
\begin{document}
\begin{tabular}{>{$}r<{$}@{\,}>{$=}l<{$}}
x + 2 & 3 \\
-2 & -2 \\ \hline
x & 1
\end{tabular}
\end{document}
答案4
以下是两种解决方案IEEEtrantools
:
嵌入IEEEeqnarraybox
内部equation
\documentclass{article}
\usepackage{amsmath}
\usepackage{IEEEtrantools}
\begin{document}
\begin{equation*}
\begin{IEEEeqnarraybox}{rCr}
x + 2 &=& 3
\\ - 2 &=& -2
\\ \hline
\\ x &=& 1
\end{IEEEeqnarraybox}
\end{equation*}
\end{document}
给出:
为了更好地控制,我建议使用IEEEeqnarray
。
使用IEEEeqnarray
\documentclass{article}
\usepackage{IEEEtrantools}
\usepackage{booktabs}
\begin{document}
\begin{IEEEeqnarray*}{rCr}
x + 2 &=& 3
\\ - 2 &=& -2
\\*[-1.0\normalbaselineskip] \cmidrule{1-3}
\\*[-1.5\normalbaselineskip] x &=& 1
\end{IEEEeqnarray*}
\end{document}
给出:
Stefan Moser 写了一篇优秀的教程在IEEEtrantools
。