當變更 \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 透過增加支柱的大小來實現。正常情況(如此處)是支柱的高度大於單元格內容的高度,因此可以防止單元格內容接觸行上方的 hline。

答案2

這可以解釋垂直間隙是如何形成的:

在此輸入影像描述

相關內容