
У меня возникла проблема с рисованием многоколоночной таблицы в 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
пакет для выравнивания десятичных точек в вашей таблице.The
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|}
Набор данныхзаголовок и заполняет им шесть столбцов, затем у вас есть еще три столбца дляА,БиС. Это означает, что в этой строке всего девять столбцов, что больше, чем вам нужно.Вместо этого вам нужно что-то вроде:
\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}