Рисунок многоколоночной таблицы в латексе

Рисунок многоколоночной таблицы в латексе

У меня возникла проблема с рисованием многоколоночной таблицы в ieeetra 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пакет для выравнивания десятичных точек в вашей таблице.

  • ThebooktabsВ документации пакета есть несколько хороших советов по созданию красивых таблиц в LaTeX. Я использовал его ниже, но вы можете удалить зависимость, заменив \toprule, \midruleи \bottomruleна \hline.

Почему текущий пример не компилируется:

  • Недостаточно tabularстолбцов. Вы передали опцию {|l|l|l|l|}, которая представляет собой четыре выровненных по левому краю столбца с вертикальными полосами между ними. В самом широком месте исходная таблица имеет семь столбцов, и вам нужно учесть их все. Поэтому это следует изменить на что-то вроде {|l|l|l|l|l|l|l|}.

    Если вы используете siunitx, то используйте {lSSSSSS}: это Sопция, siunitxкоторая выравнивает десятичные точки в ваших данных. Можете свободно изменить это обратно, если вы не хотите/не можете использовать этот пакет.

  • Принимаетmulticolumn{6} {c|}Набор данныхзаголовок и заполняет им шесть столбцов, затем у вас есть еще три столбца дляА,БиС. Это означает, что в этой строке всего девять столбцов, что больше, чем вам нужно.

    Вместо этого вам нужно что-то вроде:

    \multirow{2}{*}{Dataset} &
      \multicolumn{2}{c}{A} &
      \multicolumn{2}{c}{B} &
      \multicolumn{2}{c|}{C} \\
    

    Вам нужно сделать последний столбец c|таким образом, чтобы в конце получилась финальная вертикальная линия.

  • Во второй строке вы пропускаете первую ячейку (которая заполняется **Dataset* из предыдущей строки), а затем заполняете остальные как обычно:

    & 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}

Связанный контент