我制作了一个 4 列表格和一个单独的 2 列表格。我以为如果列的大小是原来的两倍,它们应该对齐,但事实并非如此。问题是什么?
\documentclass[12pt]{article}
\usepackage[margin=0.25in]{geometry}
\begin{document}
\begin{tabular}{|p{1.5in}|p{1.5in}|p{1.5in}|p{1.5in}|}
\hline
1 & 2 & 3 & 4 \\
\hline
\end{tabular}
\vspace{0.25in}
\begin{tabular}{|p{3in}|p{3in}|}
\hline
1 & 2 \\
\end{tabular}
\end{document}
这是屏幕截图。
答案1
您忘记了\tabcolsep
表格列两侧的空间。因此,第一个表格的宽度为 6 英寸加 8 英寸\tabcolsep
,而第二个表格的宽度仅为 6 英寸加 4 英寸\tabcolsep
。
\documentclass[12pt]{article}
\usepackage[margin=0.25in]{geometry}
\usepackage{calc}
\begin{document}
\begin{tabular}{|p{1.5in}|p{1.5in}|p{1.5in}|p{1.5in}|}
\hline
1 & 2 & 3 & 4 \\
\hline
\end{tabular}
\vspace{0.25in}
\begin{tabular}{|p{3in+2\tabcolsep}|p{3in+2\tabcolsep}|}
\hline
1 & 2 \\
\end{tabular}
\end{document}
您需要添加2\tabcolsep
到第二张表中的每一列。
如果您希望单元格宽度为 1.5 英寸或 3 英寸(包括填充),则可以将其从规定的宽度中删除:
\documentclass[12pt]{article}
\usepackage[margin=0.25in]{geometry}
\usepackage{calc}
\begin{document}
\begin{tabular}{|*{4}{p{1.5in-2\tabcolsep}|}}
\hline
1 & 2 & 3 & 4 \\
\hline
\end{tabular}
\vspace{0.25in}
\begin{tabular}{|*{2}{p{3in-2\tabcolsep}|}}
\hline
1 & 2 \\
\end{tabular}
\end{document}
请注意,您不应设置\tabcolsep
为零,否则单元格文本将紧挨着垂直规则。
答案2
列元素之间存在固有间距,即\tabcolsep
。当您重置它们(通过@{}
任何地方)时,您会得到
\documentclass[12pt]{article}
\usepackage[margin=0.25in]{geometry}
\begin{document}
\begin{tabular}{@{}|@{}p{1.5in}@{}|@{}p{1.5in}@{}|@{}p{1.5in}@{}|@{}p{1.5in}@{}|@{}}
\hline
1 & 2 & 3 & 4 \\
\hline
\end{tabular}
\vspace{0.25in}
\begin{tabular}{@{}|@{}p{3in}@{}|@{}p{3in}@{}|@{}}
\hline
1 & 2 \\
\end{tabular}
\end{document}
但这是无稽之谈,你可以像 egreg 在他的回答中所做的那样,将不匹配添加到后者,而我则随意地输入了我令人惊叹的答案。