在“array”环境中,“\hline”后的垂直间距太大

在“array”环境中,“\hline”后的垂直间距太大

我有以下方程组:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
 \begin{flalign*}
  \begin{array}{lllclllr}
   & 2x &-& 9y &+& 5 &=& 0\\
   -& 2x &+& 6y &+& 20 &=& 0\\[2pt]
   \hline\\[-2\baselineskip]
   &&& -15y &-& 15 &=& 0\\
   &&&&& y &=& -1
  \end{array}&&
 \end{flalign*}
\end{document}

在此处输入图片描述

我该如何去掉 后面的多余空间hline?我只想要那里 2 个点的垂直空间,就像我在它上面那样。

完全删除换行符会导致下一行过于接近\hline,然后添加则hspace不会产生任何效果,无论幅度如何。

笔记。我使用是flalign*有原因的。它与我的其他文档有关。

答案1

您的\\后面\hline会在表中打开一个新行。您可以\noalign在行尾之后(即\\LaTeX 中的后面或\crTeX 原语含义中)使用 TeX 原语。原语的参数\noalign包括一个垂直列表。在我们的例子中,它是空格、行、空格。

\documentclass{article}
\usepackage{amsmath}
\begin{document}
 \begin{flalign*}
  \begin{array}{lllclllr}
   & 2x &-& 9y &+& 5 &=& 0\\
   -& 2x &+& 6y &+& 20 &=& 0\\
   \noalign{\kern2pt\hrule\kern3pt}
   &&& -15y &-& 15 &=& 0\\
   &&&&& y &=& -1
  \end{array}&&
 \end{flalign*}
\end{document}

答案2

\hline我建议您使用比:更好的工具\midrule,它由包提供booktabs

如果您想使用array环境来排版方程组,您应该将\arrayrulsep控制列边缘空白填充量的参数——设置为0pt

在此处输入图片描述

\documentclass{article}

\usepackage{mathtools}% for \math[lr]lap macros
\usepackage{booktabs} % for \midrule macro
\usepackage{array}    % for \newcolumntype macro
\newcolumntype{C}{ >{{}}c<{{}} } % for mathbin and mathrel operators

\begin{document}
\[
  \setlength{\arraycolsep}{0pt}
  \begin{array}{ l rCrCrCr }
      & 2x &-&           9y &+&  5 &=&  0\\
   -( & 2x &+&           6y &+& 20 &=&  0\mathrlap{)}\\
   \midrule
     & & &  \mathllap{-15}y &-& 15 &=&  0\\
     & & &                  & &  y &=& -1
  \end{array}
\]
\end{document}

相关内容