我需要排版一份两栏文档(会议论文)并使用该multicol
包。我希望插入一个表格,通常使用该booktabs
包,因为它可以提供很好的间距。但是,在这种情况下,水平规则被截断了。有人知道问题是什么吗?
梅威瑟:
\documentclass[pdftex,10pt]{article}
\usepackage[letterpaper,margin=2.5cm,pdftex,showframe]{geometry}
\usepackage{booktabs}
\usepackage{multicol}
\pagestyle{empty}
\begin{document}
\begin{multicols}{2}
\begin{table*}
\begin{tabular}{@{}ll rrrrr rrrrr@{}}
\toprule
\multicolumn{2}{@{}l}{Penalty} &\multicolumn{5}{c}{100 xx} & \multicolumn{5}{c}{1000 xxx} \\
\cmidrule(rl){3-7}\cmidrule(rl){8-12}
& $s$ & $\nu$& G & E & P & D & G& E & P & D \\
\midrule
\multicolumn{12}{c}{\it abcd } \\
P40 &2& 10& -62& -23& -6& -13.15& 22& -5& 0& -0.84\\
P41 & 1& --& 55& 28& 1& -4.94& 34& 7& 0& -1.23\\
\bottomrule
\end{tabular}
\end{table*}
\end{multicols}
\end{document}
这是我得到的结果 - 这些行似乎在第 1 列的右边缘之前被截断:
答案1
据我所知,您的tabular
环境有 11 列,而不是 12 列。删除\multicolumn
标题项“惩罚”周围的包装器并调整其他一些项目的列数可以解决此问题。
另外,鉴于大多数列似乎包含数值数据,有些列包含负值,您可能希望使用比r
对齐数字更合适的列类型。例如,您可以使用包D
提供的列类型dcolumn
,如下例所示。(dcolumn
包的替代方案是siunitx
包及其S
列类型。)
\documentclass[letterpaper]{article}
\usepackage[margin=2.5cm]{geometry}
\usepackage{booktabs}
\usepackage{multicol}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{.}{#1}}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}} % shortcut macro
\begin{document}
\begin{multicols}{2}
\begin{table*}[t]
\centering
\begin{tabular}{@{} l *{2}{d{2.0}} *{2}{d{3.0}} d{2.0}
d{3.2} *{3}{d{2.0}} d{2.2} @{}}
\toprule
Penalty
& \multicolumn{5}{c}{100 xx}
& \multicolumn{5}{c}{1000 xxx} \\
\cmidrule(rl){2-6}\cmidrule(l){7-11}
& s & \nu & \mc{G} & \mc{E} & \mc{P} &
\mc{D} & \mc{G}& \mc{E} & \mc{P} & \mc{D} \\
\midrule
\multicolumn{11}{c}{\itshape abcd } \\
P40 &2& 10& -62& -23& -6& -13.15& 22& -5& 0& -0.84\\
P41 & 1& -& 55& 28& 1& -4.94& 34& 7& 0& -1.23\\
\bottomrule
\end{tabular}
\end{table*}
\end{multicols}
\end{document}
答案2
第一列缺少 &
\documentclass[10pt]{article}
\usepackage[letterpaper,margin=1.5cm,showframe]{geometry}
\usepackage{booktabs}
\usepackage{multicol}
\pagestyle{empty}
\begin{document}
\begin{multicols}{2}
\begin{table*}
\begin{tabular}{@{}ll rrrrr rrrrr@{}}
\toprule
\multicolumn{2}{@{}l}{Penalty} &\multicolumn{5}{c}{100 xx} & \multicolumn{5}{c}{1000 xxx} \\
\cmidrule(rl){3-7}\cmidrule(rl){8-12}
& & $s$ & $\nu$& G & E & P & D & G& E & P & D \\
\midrule
\multicolumn{12}{c}{\it abcd } \\
& P40 &2& 10& -62& -23& -6& -13.15& 22& -5& 0& -0.84\\
& P41 & 1& --& 55& 28& 1& -4.94& 34& 7& 0& -1.23\\
\bottomrule
\end{tabular}
\end{table*}
\end{multicols}
\end{document}
答案3
将列数从 12 改为 11,问题就解决了。以下是修改后的文件:
\documentclass[pdftex,10pt]{article}
\usepackage[letterpaper,margin=2.5cm,pdftex,showframe]{geometry}
\usepackage{booktabs}
\usepackage{multicol}
\pagestyle{empty}
\begin{document}
\begin{multicols}{2}
\begin{table*}
\begin{tabular}{@{}ll rrrrr rrrrr@{}}
\toprule
\multicolumn{2}{@{}l}{Penalty} &\multicolumn{5}{c}{100 xx} & \multicolumn{4}{c}{1000 xxx} \\
\cmidrule(rl){3-7}\cmidrule(rl){8-11}
& $s$ & $\nu$& G & E & P & D & G& E & P & D \\
\midrule
\multicolumn{11}{c}{\it abcd } \\
P40 &2& 10& -62& -23& -6& -13.15& 22& -5& 0& -0.84\\
P41 & 1& --& 55& 28& 1& -4.94& 34& 7& 0& -1.23\\
\bottomrule
\end{tabular}
\end{table*}
\end{multicols}
\end{document}