当更改 \arraystretch 并嵌套表格环境时,生成的表格中会出现垂直间隙。这些间隙是如何产生的?

当更改 \arraystretch 并嵌套表格环境时,生成的表格中会出现垂直间隙。这些间隙是如何产生的?

最小可编译示例:

\documentclass{article}
\renewcommand{\arraystretch}{1.5}
\begin{document}
\begin{tabular}{|@{}c@{}|@{}c@{}|}
\hline
\begin{tabular}{c|c}A&B\end{tabular}&\begin{tabular}{c|c}C&D\end{tabular}\\
\hline
\begin{tabular}{c|c}E&F\end{tabular}&\begin{tabular}{c|c}G&H\end{tabular}\\
\hline
\end{tabular}
\end{document}

使用pdflatex编译时的输出:

在此处输入图片描述

问题如图所示:

  • 水平线下方的垂直间隙是如何产生的?
  • 桌子的四个角为什么是空白的?

(我不是问如何解决这个问题。
我是问为什么/如何产生这些东西。)


当保持\arraystretch不变时,水平底线处会出现垂直间隙:

\documentclass{article}
\begin{document}
\begin{tabular}{|@{}c@{}|@{}c@{}|}
\hline
\begin{tabular}{c|c}A&B\end{tabular}&\begin{tabular}{c|c}C&D\end{tabular}\\
\hline
\begin{tabular}{c|c}E&F\end{tabular}&\begin{tabular}{c|c}G&H\end{tabular}\\
\hline
\end{tabular}
\end{document}

在此处输入图片描述

答案1

标准乳胶tabular制品|没有水平空间,它们两侧的负间距为规则宽度的一半,因此拐角处总会有一个缺口。如果您使用array包装,则不使用负间距,并|贡献其自然宽度。

表格间距是通过在每行中添加一个支柱来实现的,arraystretch 通过增加支柱的大小来实现。正常情况下,就像这里一样,支柱的高度大于单元格内容的高度,因此可以防止单元格内容接触行上方的水平线。

答案2

这或许可以解释垂直差距是如何形成的:

在此处输入图片描述

相关内容