最小可編譯範例:
\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。