我有下表:
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{cccccccc}
\toprule
\multicolumn{2}{c}{Letzter Zustand} & \multicolumn{4}{c}{Nächster Zustand} & \multicolumn{2}{c}{Ausgang} \\
& & \multicolumn{2}{c}{$x = 0$} & \multicolumn{2}{c}{$x = 1$} & $x = 0$ & $x = 1$ \\
\cmidrule(lr){3-6}\cmidrule(lr){7-8}
$A$ & $B$ & $A$ & $B$ & $A$ & $B$ & $y$ & $y$ \\
\cmidrule(lr){1-2}\cmidrule(lr){3-4}\cmidrule(lr){5-6}\cmidrule(lr){7-8}
0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\
0 & 1 & 1 & 1 & 0 & 1 & 0 & 0 \\
1 & 0 & 1 & 0 & 0 & 0 & 0 & 1 \\
\bottomrule
\end{tabular}
\end{document}
不幸的是,多列下方的单元格不再正确居中,而是看起来左对齐。这在左侧的两列(第一 AB)中表现得最为明显,在第 5-6 列(第三 AB)中也非常明显。
是什么原因导致了这个问题?我该如何解决?
答案1
是什么原因导致了这个问题?我该如何解决?
出现此问题是因为 2 列和 4 列\multicolumn
项目的宽度超过了底层列的总自然宽度。
为了解决这个问题,我建议您使用一个tabularx
环境,将其整体宽度设置为类似的值0.9\textwidth
- 最佳值将取决于字体大小和文本块的宽度等 - 并对X
所有八列使用居中的列类型。
还请注意,我重新组织了表格标题部分的一些水平规则。
\documentclass{article}
\usepackage{booktabs,tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{center}
\begin{tabularx}{0.9\textwidth}{@{}*{8}{C}@{}}
\toprule
\multicolumn{2}{@{}c}{Letzter Zustand} &
\multicolumn{4}{c}{Nächster Zustand} &
\multicolumn{2}{c@{}}{Ausgang} \\
\cmidrule(r){1-2} \cmidrule(lr){3-6} \cmidrule(l){7-8}
& & \multicolumn{2}{c}{$x = 0$}
& \multicolumn{2}{c}{$x = 1$}
& $x = 0$ & $x = 1$ \\
\cmidrule(lr){3-4}\cmidrule(lr){5-6}
\cmidrule(lr){7-7}\cmidrule(l){8-8}
$A$ & $B$ & $A$ & $B$ & $A$ & $B$ & $y$ & $y$ \\
\midrule
0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\
0 & 1 & 1 & 1 & 0 & 1 & 0 & 0 \\
1 & 0 & 1 & 0 & 0 & 0 & 0 & 1 \\
\bottomrule
\end{tabularx}
\end{center}
\end{document}
答案2
这是否更好?
\documentclass{article}
\usepackage{array, makecell, booktabs}
\begin{document}
\begin{tabular}{*{8}{c}}
\toprule
\multicolumn{2}{c}{\smash{\makecell[t]{Letzter\\ Zustand}}} & \multicolumn{4}{c}{\makebox[0pt]{Nächster Zustand}} & \multicolumn{2}{c}{Ausgang} \\
& & \multicolumn{2}{c}{$x = 0$} & \multicolumn{2}{c}{$x = 1$} & $x = 0$ & $x = 1$ \\
\cmidrule(lr){3-6}\cmidrule(lr){7-8}
$A$ & $B$ & $A$ & $B$ & $A$ & $B$ & $y$ & $y$ \\
\cmidrule(lr){1-2}\cmidrule(lr){3-4}\cmidrule(lr){5-6}\cmidrule(lr){7-8}
0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\
0 & 1 & 1 & 1 & 0 & 1 & 0 & 0 \\
1 & 0 & 1 & 0 & 0 & 0 & 0 & 1 \\
\bottomrule
\end{tabular}
\end{document}