我在单表环境中有两个表格。它们应该对齐,但实际上却没有对齐(见图),尽管我指定了所有列宽并为其提供了完全相同的设置。有人能帮我解开这个谜团吗?删除第一个表中的多列没有帮助。谢谢。
(多列单元格的内容也应居中。)
从 MWE 中删除了字体更改。
\usepackage{booktabs}
\newcommand\tss{\textsuperscript}
% ...
\begin{table}[!htbp]
\centering
\begin{tabular}{p{15mm}>{\centering}p{15mm}|>{\centering}p{15mm}|>{\centering}p{15mm}p{1mm}>{\centering}p{15mm}|>{\centering\arraybackslash}p{15mm}}
\cmidrule[.8pt](l{3pt}r{3pt}){2-4} \cmidrule[.8pt](l{3pt}r{3pt}){6-7}
Pong & a\tss{1} & \multicolumn{2}{p{30mm}}{a\tss{3\,5}} & & aːt\tss{7} & at\tss{9} \\
\cmidrule(l{3pt}r{3pt}){2-4} \cmidrule(l{3pt}r{3pt}){6-7}
& a\tss{2} & \multicolumn{2}{p{30mm}}{a\tss{4\,6}} & & aːt\tss{8} & at\tss{10} \\
\cmidrule[.8pt](l{3pt}r{3pt}){2-4} \cmidrule[.8pt](l{3pt}r{3pt}){6-7}
\end{tabular}
\begin{tabular}{p{15mm}>{\centering}p{15mm}|>{\centering}p{15mm}|>{\centering}p{15mm}p{1mm}>{\centering}p{15mm}|>{\centering\arraybackslash}p{15mm}}
\cmidrule[.8pt](l{3pt}r{3pt}){2-4} \cmidrule[.8pt](l{3pt}r{3pt}){6-7}
Viet. & a & á & ả & & át & ắt \\
\cmidrule(l{3pt}r{3pt}){2-4} \cmidrule(l{3pt}r{3pt}){6-7}
& à & ạ & ã & & ạt & ặt \\
\cmidrule[.8pt](l{3pt}r{3pt}){2-4} \cmidrule[.8pt](l{3pt}r{3pt}){6-7}
\end{tabular}
\end{table}
答案1
\multicolumn{2}{p{30mm}}
并不像两列那么宽p{15mm}|p{15mm}
,因为两列之间还有两个空间\tabcolsep
,如果你加载了array
,还有一个空间\arrayrulewidth
。因此供您\multicolumn
使用
\multicolumn{2}{p{\dimexpr30mm+2\tabcolsep}}{...}
如果array
包未加载\multicolumn{2}{p{\dimexpr30mm+2\tabcolsep+\arrayrulewidth}}{...}
如果array
已加载。