最小可编译示例:
\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 通过增加支柱的大小来实现。正常情况下,就像这里一样,支柱的高度大于单元格内容的高度,因此可以防止单元格内容接触行上方的水平线。