我在使用表格\multicolumn
和booktabs
包时遇到了一些问题。
这是我所做的:
\documentclass[12pt]{article}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}
\begin{center}
\begin{tabular}{*{7}{c}}
\toprule
& \multicolumn{2}{c}{\textsc{sg}} &
\multicolumn{2}{c}{\textsc{du}} & \multicolumn{2}{c}{\textsc{pl}} \\
\cmidrule(lr){2-3}
\cmidrule(lr){4-5}
\cmidrule(lr){6-7}
& \textsc{m} & \textsc{n} & \textsc{m} & \textsc{n} & \textsc{m} &
\textsc{n} \\
\midrule
\textsc{nom} & \textit{s} & \textit{m} \\
\textsc{acc} & \multicolumn{2}{c}{\textit{m}} \\
\textsc{ins} & \multicolumn{2}{c}{\textit{-a} $\to$ \textit{ena}} \\
\multirow{2}{*}{\textsc{dat}} & \multicolumn{2}{c}{\textit{aya}} \\
& \multicolumn{2}{c}{\textit{-a} $\to$ \textit{\={a}ya}} \\
\textsc{abl} & \multicolumn{2}{c}{\textit{t} (\textit{-a} $\to$ \textit{\={a}})} \\
\textsc{gen} & \multicolumn{2}{c}{\textit{sya}} \\
\multirow{2}{*}{\textsc{loc}} & \multicolumn{2}{c}{\textit{i}} \\
& \multicolumn{2}{c}{\textit{-a} $\to$ \textit{e}} \\
\bottomrule
\end{tabular}
\end{center}
\end{document}
我认为很明显,我使用 的地方水平居中是错误的\multicolumn
。SG 下面的 M 和 N 与 SG 的距离不等,米在 ACC 行中似乎很好地位于 SG 下方的中心,但与s和米上面的 NOM 行。
答案1
表格中的内容仍然完全居中,但是,它们的宽度会根据\multicolumn{2}{c}{...
单元格的宽度而变化。如果它比“正常”列宽,则第二列会添加额外的宽度。如果在表格中添加垂直线,就会看到这一点。
可能的解决方案之一如下。假设多列单元格宽度不大于6em
。那么您可以使用以下方法解决问题:
\documentclass[12pt]{article}
\usepackage[a4paper,margin=1.8cm]{geometry}
\usepackage[parfill]{parskip}
\usepackage{array,booktabs,multirow}
\begin{document}
\begin{center}
\begin{tabular}{>{\scshape}r*{6}{>{\centering\arraybackslash}p{3em}}}
\toprule
& \multicolumn{2}{c}{\textsc{sg}} &
\multicolumn{2}{c}{\textsc{du}} & \multicolumn{2}{c}{\textsc{pl}} \\
\cmidrule(lr){2-3}
\cmidrule(lr){4-5}
\cmidrule(lr){6-7}
& \textsc{m} & \textsc{n} & \textsc{m} & \textsc{n} & \textsc{m} &
\textsc{n} \\
\midrule
nom & \textit{s} & \textit{m} \\
acc & \multicolumn{2}{c}{\textit{m}} \\
ins & \multicolumn{2}{c}{\textit{-a} $\to$ \textit{ena}} \\
\multirow{2}{*}{dat}
& \multicolumn{2}{c}{\textit{aya}} \\
& \multicolumn{2}{c}{\textit{-a} $\to$ \textit{\={a}ya}} \\
abl & \multicolumn{2}{c}{\textit{t} (\textit{-a} $\to$ \textit{\={a}})} \\
gen & \multicolumn{2}{c}{\textit{sya}} \\
\multirow{2}{*}{loc}
& \multicolumn{2}{c}{\textit{i}} \\
& \multicolumn{2}{c}{\textit{-a} $\to$ \textit{e}} \\
\bottomrule
\end{tabular}
\end{center}
\end{document}
我稍微优化了您的代码(参见第一列中的区别)。该代码可以运行,我添加了包array
。