我在 ieeetran latex 中绘制多列表格时遇到了问题。
这就是我想要画的:
但是,我没能做到。我无法添加 OBR 和 AR 行。我尝试了一些代码,但都不起作用。我最后一次尝试是:
\begin{table}[!h]
\centering
\caption{caption}
\label{tab:table}
\begin{small}
\begin{tabular}{|l|l|l|l|}
\hline
& \multicolumn{6} {c|} {\bfseries Dataset} & {\bfseries A} &{\bfseries B} & {\bfseries C}\\
\cline{2-7}
{\bfseries } & {\bfseries OBR} &{\bfseries AR} & {\bfseries OBR} &{\bfseries AR} & {\bfseries OBR} &{\bfseries AR}\\
\hline
D1 & 2.1\% & 2.1\% 2.1\% & 2.1\% & 2.1\% 2.1\% \\
\hline
D2 & 11.6\% &11.6\% & 11.6\% & 2.1\% & 2.1\% 2.1\%\\
\hline
D3 & 5.5\% & 5.5\% & 5.5\% & 2.1\% & 2.1\% 2.1\% \\
\hline
\end{tabular}
\end{small}
\end{table}
我可以请人帮我画这张表吗?我将非常感激。
答案1
一些初步评论:
我假设你正在使用
multirow
包尝试打印多列(你没有说,但这似乎是自然的选择)。我建议使用
siunitx
包来对齐表中的小数点。这
booktabs
软件包在文档中提供了一些有关在 LaTeX 中制作美观表格的好建议。我在下面使用了它,但您可以通过将\toprule
、\midrule
和替换\bottomrule
为 来删除依赖项\hline
。
至于为什么当前示例无法编译:
列数
tabular
不够。您已通过选项{|l|l|l|l|}
,即四列左对齐,每列之间有竖线。原始表格最宽处有七列,您需要考虑所有列。因此,应将其更改为类似 的内容{|l|l|l|l|l|l|l|}
。如果您使用
siunitx
,则使用{lSSSSSS}
:S
是一个选项,用于siunitx
排列数据中的小数点。如果您不想/不能使用此包,请随意将其改回。需要
multicolumn{6} {c|}
数据集标题并用它填充六列,然后还有三列A,乙和C。这意味着此行总共有九列,超出了您的需要。相反,你想要的是更类似的东西:
\multirow{2}{*}{Dataset} & \multicolumn{2}{c}{A} & \multicolumn{2}{c}{B} & \multicolumn{2}{c|}{C} \\
您需要制作最后一列,
c|
以便最后得到最后一条垂直线。在第二行中,跳过第一个单元格(由上一行的**数据集*填充),然后正常填充其余部分:
& O.B.R & A.R & O.B.R & A.R & O.B.R & A.R \\
如果您确实使用了
siunitx
,则需要将它们括在花括号中,这样句号就不会被读作小数点。如果不这样做,则会出错,因为它无法将这些数字对齐。& {O.B.R} & {A.R} & {O.B.R} & {A.R} & {O.B.R} & {A.R} \\
如果我们根据这些建议修改您的代码,我们会得到如下结果:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{table}
\begin{tabular}{|l|l|l|l|l|l|l|}
\hline
\multirow{2}{*}{Dataset} &
\multicolumn{2}{c}{A} &
\multicolumn{2}{c}{B} &
\multicolumn{2}{c|}{C} \\
& O.B.R & A.R & O.B.R & A.R & O.B.R & A.R \\
\hline
D1 & 2.1\% & 2.1\% & 2.1\% & 2.1\% & 2.1\% & 2.1\% \\
\hline
D2 & 11.6\% & 11.6\% & 11.6\% & 11.6\% & 11.6\% & 11.6\% \\
\hline
D3 & 5.5\% & 5.5\% & 5.5\% & 5.5\% & 5.5\% & 5.5\% \\
\hline
\end{tabular}
\end{table}
\end{document}
结果如下:
siunitx
下面是一个包含和的示例booktabs
(我还在标题中放置了 % 符号以方便阅读):
\documentclass{article}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{siunitx}
\begin{document}
\begin{table}
\begin{tabular}{lSSSSSS}
\toprule
\multirow{2}{*}{Dataset} &
\multicolumn{2}{c}{A (\%)} &
\multicolumn{2}{c}{B (\%)} &
\multicolumn{2}{c}{C (\%)} \\
& {O.B.R} & {A.R} & {O.B.R} & {A.R} & {O.B.R} & {A.R} \\
\midrule
D1 & 2.1 & 2.1 & 2.1 & 2.1 & 2.1 & 2.1 \\
D2 & 11.6 & 11.6 & 11.6 & 11.6 & 11.6 & 11.6 \\
D3 & 5.5 & 5.5 & 5.5 & 5.5 & 5.5 & 5.5 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
编译后为
答案2
\begin{tabular}{|l|l|l|l|l|l|l|}
\hline
\multicolumn{1}{|c|}{Std} &
\multicolumn{2}{c|}{1.5} &
\multicolumn{2}{c|}{2} &
\multicolumn{2}{c|}{3} \\
\hline
d& Mean & Std & Mean & Std & Mean & Std \\
\hline
D1 & 2.1\% & 2.1\% & 2.1\% & 2.1\% & 2.1\% & 2.1\% \\
\hline
D2 & 11.6\% & 11.6\% & 11.6\% & 11.6\% & 11.6\% & 11.6\% \\
\hline
D3 & 5.5\% & 5.5\% & 5.5\% & 5.5\% & 5.5\% & 5.5\% \\
\hline
\end{tabular}