
Ich habe ein Problem beim Zeichnen einer mehrspaltigen Tabelle in IEEE-Latex.
Das ist, was ich zeichnen möchte:
Ich habe es jedoch nicht geschafft. Ich habe Probleme, OBR- und AR-Zeilen hinzuzufügen. Ich habe einige Codes ausprobiert, keiner davon hat funktioniert. Mein letzter Versuch ist:
\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}
Kann mir jemand beim Zeichnen dieser Tabelle helfen? Ich wäre sehr dankbar.
Antwort1
Ein paar erste Bemerkungen:
Ich nehme an, Sie verwenden die
multirow
Paket, um zu versuchen, die mehreren Spalten zu drucken (das haben Sie nicht gesagt, aber es scheint die natürliche Wahl zu sein).Ich empfehle die Verwendung von
siunitx
Paket, um die Dezimalstellen in Ihrer Tabelle auszurichten.Der
booktabs
Das Paket enthält in der Dokumentation einige gute Tipps für gut aussehende Tabellen in LaTeX. Ich habe sie unten verwendet, aber Sie können die Abhängigkeit entfernen\toprule
, indem Sie\midrule
und\bottomrule
durch ersetzen\hline
.
Warum das aktuelle Beispiel nicht kompiliert wird:
Die
tabular
hat nicht genügend Spalten. Sie haben die Option{|l|l|l|l|}
, also vier linksbündige Spalten mit vertikalen Balken dazwischen, gewählt. Die ursprüngliche Tabelle hat an der breitesten Stelle sieben Spalten und Sie müssen alle berücksichtigen. Dies sollte also in etwas wie geändert werden{|l|l|l|l|l|l|l|}
.Wenn Sie verwenden
siunitx
, dann verwenden Sie{lSSSSSS}
: DiesS
ist eine Option, mitsiunitx
der die Dezimalstellen in Ihren Daten ausgerichtet werden. Sie können dies jederzeit wieder ändern, wenn Sie dieses Paket nicht verwenden möchten/können.Das
multicolumn{6} {c|}
nimmt dieDatensatzÜberschrift und füllt damit sechs Spalten, dann hat man noch drei weitere Spalten fürA,BUndCDas bedeutet, dass diese Zeile insgesamt neun Spalten hat, was mehr ist, als Sie benötigen.Stattdessen möchten Sie eher etwas wie:
\multirow{2}{*}{Dataset} & \multicolumn{2}{c}{A} & \multicolumn{2}{c}{B} & \multicolumn{2}{c|}{C} \\
Sie müssen die letzte Spalte
c|
so erstellen, dass Sie am Ende die letzte vertikale Linie erhalten.In der zweiten Zeile überspringen Sie die erste Zelle (die mit **Dataset* aus der vorherigen Zeile gefüllt wird) und füllen den Rest dann wie gewohnt aus:
& O.B.R & A.R & O.B.R & A.R & O.B.R & A.R \\
Wenn Sie verwenden
siunitx
, müssen Sie diese in geschweifte Klammern setzen, damit der Punkt nicht als Dezimalpunkt gelesen wird. Wenn Sie dies nicht tun, erhalten Sie eine Fehlermeldung, weil die Zahlen nicht ausgerichtet werden können.& {O.B.R} & {A.R} & {O.B.R} & {A.R} & {O.B.R} & {A.R} \\
Wenn wir Ihren Code unter Berücksichtigung dieser Vorschläge ändern, erhalten wir etwa Folgendes:
\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}
und das ist das Ergebnis:
Hier ist ein Beispiel, das siunitx
und enthält booktabs
(ich habe zur besseren Lesbarkeit auch das %-Zeichen in die Kopfzeile eingefügt):
\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}
was sich ergibt zu
Antwort2
\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}