Zeichnen einer mehrspaltigen Tabelle in Latex

Zeichnen einer mehrspaltigen Tabelle in Latex

Ich habe ein Problem beim Zeichnen einer mehrspaltigen Tabelle in IEEE-Latex.

Das ist, was ich zeichnen möchte: Bildbeschreibung hier eingeben

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 diemultirowPaket, 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 vonsiunitxPaket, um die Dezimalstellen in Ihrer Tabelle auszurichten.

  • DerbooktabsDas 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 \midruleund \bottomruledurch ersetzen \hline.

Warum das aktuelle Beispiel nicht kompiliert wird:

  • Die tabularhat 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}: Dies Sist eine Option, mit siunitxder 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:

Bildbeschreibung hier eingeben

Hier ist ein Beispiel, das siunitxund 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

Bildbeschreibung hier eingeben

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}

verwandte Informationen