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