
Estou com um problema ao desenhar uma tabela com várias colunas em látex ieeetran.
Isto é o que eu quero desenhar:
No entanto, não consegui. Estou tendo problemas para adicionar linhas OBR e AR. Tentei alguns códigos, nenhum deles funcionou. Meu último teste é:
\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}
Posso pedir a alguém que me ajude a desenhar esta mesa? Estarei muito grato.
Responder1
Alguns comentários iniciais:
Presumo que você esteja usando o
multirow
pacote para tentar imprimir as múltiplas colunas (você não disse, mas parece a escolha natural).Eu sugeriria usar o
siunitx
pacote para alinhar as casas decimais em sua tabela.O
booktabs
package tem alguns bons conselhos para tabelas bonitas em LaTeX na documentação. Eu usei abaixo, mas você pode remover a dependência substituindo\toprule
,\midrule
e\bottomrule
por\hline
.
Quanto ao motivo pelo qual o exemplo atual não está compilando:
O
tabular
não tem colunas suficientes. Você passou na opção{|l|l|l|l|}
, que consiste em quatro colunas alinhadas à esquerda com barras verticais entre cada uma delas. Na sua parte mais larga, a tabela original tem sete colunas e você precisa levar em conta todas elas. Portanto, isso deve ser alterado para algo como{|l|l|l|l|l|l|l|}
.Se você usar
siunitx
, então use{lSSSSSS}
: theS
é uma opçãosiunitx
que alinha os pontos decimais em seus dados. Sinta-se à vontade para alterar isso novamente se não quiser/não puder usar este pacote.O
multicolumn{6} {c|}
leva oConjunto de dadostítulo e preenche seis colunas com ele, então você tem mais três colunas paraA,BeC. Isso significa que esta linha tem nove colunas no total, o que é mais do que você precisa.Em vez disso, você quer algo mais como:
\multirow{2}{*}{Dataset} & \multicolumn{2}{c}{A} & \multicolumn{2}{c}{B} & \multicolumn{2}{c|}{C} \\
Você precisa fazer a coluna final
c|
para obter a linha vertical final no final.Na segunda linha, você pula a primeira célula (que é preenchida por **Dataset* da linha anterior) e depois preenche o restante normalmente:
& O.B.R & A.R & O.B.R & A.R & O.B.R & A.R \\
Se você usar
siunitx
, será necessário colocá-los entre chaves, para que o ponto final não seja lido como um ponto decimal. Caso contrário, você receberá um erro porque não é possível alinhar esses números.& {O.B.R} & {A.R} & {O.B.R} & {A.R} & {O.B.R} & {A.R} \\
Se modificarmos seu código com essas sugestões em mente, obteremos algo assim:
\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}
e este é o resultado:
Aqui está um exemplo que inclui siunitx
e booktabs
(também coloquei o sinal % no cabeçalho para facilitar a legibilidade):
\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}
que compila para
Responder2
\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}