删除表格前的空白

删除表格前的空白

我尝试在包含表格前后文本的文档中使用此代码,但表格前后始终出现较大的垂直间隙。我该如何修复此问题?

\def\arraystretch{2}
\setlength\tabcolsep{23pt}

\begin{center}
\scalebox{0.7}{
\begin{tabular}{c c c c c}
    \toprule
    $n$ & $t_n$ & $y'(t_{n-1},y_{n-1})$                          & $y_n = y_{n-1} + (t_n - t_{n-1})y'(t_{n-1},y_{n-1})$  \\\midrule
    1 & 0       & --                                             & 1 \\
    2 & 0.2     & $-2\cdot1+1-e^0 = -2$                          & $1 + 0.2(-2) = 0.6$  \\
    3 & 0.4     & $-2\cdot0.6+ 1 - e^{-4\cdot0.2} \approx -0.65$ &   $0.6 + 0.2(-0.65) = 0.47$\\
    \bottomrule
\end{tabular}
}
\end{center}

答案1

这里要考虑三个要点。首先,\begin{center} .. \end{center}在环境前后添加垂直空间,改用宏\centering。其次,\scalebox正如@skillmon 指出的那样,不建议这样做,因为它会使字体大小不一致,难以阅读。第三,最好使用环境\table并让 LaTeX 将表格定位在最佳位置。最后,你给出\arraystretch巨大\tabcolsep的值,让我们booktabs完美地管理它。

\documentclass{article}
\usepackage{lipsum}
\usepackage{booktabs}
\begin{document}

\lipsum[2]

\begin{table}[!htbp]
\small
\centering
%\def\arraystretch{1.2}
\begin{tabular}{c c c c c}
    \toprule
    $n$ & $t_n$ & $y'(t_{n-1},y_{n-1})$                      & $y_n = y_{n-1} + (t_n - t_{n-1})y'(t_{n-1},y_{n-1})$  \\\midrule
    1 & 0   & --                                             & 1 \\
    2 & 0.2 & $-2\cdot1+1-e^0 = -2$                          & $1 + 0.2(-2) = 0.6$  \\
    3 & 0.4 & $-2\cdot0.6+ 1 - e^{-4\cdot0.2} \approx -0.65$ & $0.6 + 0.2(-0.65) = 0.47$\\
    \bottomrule
\end{tabular}
\end{table}

\lipsum[4]

\end{document}

在此处输入图片描述

答案2

消除:

 \def\arraystretch{2}

相关内容