
У меня есть таблица, в которой есть несколько слов и столбцов.
\documentclass[12pt, twocolumn]{article}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{lipsum}
\begin{document}
\lipsum
\begin{table}[ht]
%\vspace{-.15cm}
\caption{Power Consumption measured in mW}
%\vspace{-.1cm}
\centering
\begin{tabular}{c c c cc c cc }
\toprule
\multirow{2}{*}{\parbox[c]{.1\linewidth}{\centering }}
& Labeled & & \multicolumn{2}{c}{FBF ($q = 16$)} & & \multicolumn{2}{c}{FBF ($q = 64$)} \\
\cmidrule{2-2} \cmidrule{4-5} \cmidrule{7-8}
& size & & {Reduction in size(\%)} & Power & & {Reduction in size(\%)} & Power \\
\midrule
s1 & 125 & & 59.2 & 7.32 & & 26.4 & 0.35 \\
c2 & 81 & & 72.8 & 0.37 & & 25.9 & 0.36 \\
\bottomrule
\end{tabular}
\label{table:power_consumption}
\vspace{-.35cm}
\end{table}
\lipsum
\end{document}
При компиляции у меня получилась таблица со слишком широкими столбцами.
Думаю, Reduction in size(%)
нужно немного подкорректировать. Как сделать эту колонку уже?
решение1
Вот способ, использующий makecell
пакет, меньший размер шрифта и пакет caption
для правильного вертикального интервала между подписью и таблицей:
\documentclass[twocolumn,12pt]{article}%
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{lipsum}
\usepackage{makecell, caption}
\renewcommand\cellalign{bc}
\begin{document}
\lipsum
\begin{table}[!ht]
\footnotesize\setlength\tabcolsep{4pt}\vspace{2pt}
\captionsetup{labelfont = bf}
\caption{Power Consumption measured in mW}
\centering
\begin{tabular}{@{\,}c@{\,}c@{\,}ccc@{\,}ccc@{\,}}
\toprule
& Labeled & & \multicolumn{2}{c}{FBF ($q = 16$)} & & \multicolumn{2}{c}{FBF ($q = 64$)} \\
\cmidrule{2-2} \cmidrule{4-5} \cmidrule{7-8}
& Size & & \makecell{Reduction\\ in size(\%)} & Power & & \makecell{Reduction\\ in size(\%)} & Power \\
\midrule
s1 & 125 & & 59.2 & 7.32 & & 26.4 & 0.35 \\
c2 & 81 & & 72.8 & 0.37 & & 25.9 & 0.36 \\
\bottomrule
\end{tabular}
\label{table:power_consumption}
\vspace{-2.5ex}
\end{table}
\lipsum
\end{document}
решение2
Это предложение. Я пытался мыслить нестандартно, поэтому оно не совсем соответствует вашему изначальному замыслу.
\documentclass[12pt, twocolumn]{article}
\usepackage{booktabs}
\usepackage{lipsum}
\usepackage{siunitx}
\usepackage[tableposition=above]{caption}
\begin{document}
\lipsum
\begin{table}[ht]
%\vspace{-.15cm}
\caption{Power Consumption in mW}
%\vspace{-.1cm}
\centering
\begin{tabular}{c
S[table-format = 3.0]
*3c
}
\toprule
& & & Size & \\
& {Size} & q & Reduction & Power \\
\addlinespace
& {(-)} & (-) & (\si{\percent}) & (\si{mW})\\
\midrule
s1 & 125 & 16 & 59.2 & 7.32 \\
& & 32 & 26.4 & 0.35 \\
\addlinespace
c2 & 81 & 16 & 72.8 & 0.37 \\
& & 32 & 25.9 & 0.36 \\
\bottomrule
\end{tabular}
\label{table:power_consumption}
\vspace{-.35cm}
\end{table}
\lipsum
\end{document}
В результате чего:
Комментарии:
В любом случае вы можете разделить длинный заголовок столбца «Уменьшение размера» на две строки, как я сделал в коде, используя две строки для определения заголовка таблицы.
Я также использовал
siuntix
пакет для выравнивания цифр в столбце «размер».Я удалил использование,
multirow
так как в нем не было особой необходимости.Использовал пакет
caption
с опциейtableposition=above
для лучшего размещения заголовка таблицы.
решение3
В качестве альтернативы изменению размера шрифта и ширины столбца, что не всегда возможно, вы также можете позволить таблице охватывать оба столбца. Это можно сделать с помощью версии со звездочками.
\begin{table*}...\end{table*}
Символ размещения h
в данном случае вообще не рекомендуется. Это также работает для фигур (и, если определены, других плавающих объектов).
documentclass[12pt, twocolumn]{article}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{multirow}
\usepackage{lipsum}
\begin{document}
\lipsum
\begin{table*}[tb]
\caption{Power Consumption measured in mW}
\label{table:power_consumption}
\centering
\begin{tabular}{c c c cc c cc }
\toprule
\multirow{2}{*}{\parbox[c]{.1\linewidth}{\centering }}
& Labeled & & \multicolumn{2}{c}{FBF ($q = 16$)} & & \multicolumn{2}{c}{FBF ($q = 64$)} \\
\cmidrule{2-2} \cmidrule{4-5} \cmidrule{7-8}
& size & & {Reduction in size(\%)} & Power & & {Reduction in size(\%)} & Power \\
\midrule
s1 & 125 & & 59.2 & 7.32 & & 26.4 & 0.35 \\
c2 & 81 & & 72.8 & 0.37 & & 25.9 & 0.36 \\
\bottomrule
\end{tabular}
\end{table*}
\lipsum
\end{document}
решение4
Одно из решений:
\documentclass[12pt, twocolumn]{article}
\usepackage{booktabs,tabularx}
\usepackage{multirow}
\usepackage{lipsum}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\lipsum
\begin{table}[ht]
\centering
\footnotesize
\setlength{\tabcolsep}{3pt}
\caption{Power Consumption measured in mW}
\label{table:power_consumption}
\begin{tabularx}{\hsize}{@{}ccCcCc@{}}
\toprule
& Labeled
& \multicolumn{2}{c}{FBF ($q = 16$)}
& \multicolumn{2}{c}{FBF ($q = 64$)} \\
\cmidrule(lr){2-2} \cmidrule(lr){3-4} \cmidrule(lr){5-6}
& size & Reduction\newline
in size (\%)
& Power & Reduction\newline
in size (\%)
& Power \\
\midrule
s1 & 125 & 59.2 & 7.32 & 26.4 & 0.35 \\
c2 & 81 & 72.8 & 0.37 & 25.9 & 0.36 \\
\bottomrule
\end{tabularx}
\end{table}
\lipsum
\end{document}
Я использую tabularx
пакет для подгонки ширины таблицы к ширине столбца, меняю шрифт так, \footnotesize
чтобы столбцы стали узкими. Если вам нравится, чтобы размер слова был в середине ячейки, то вам нужно использовать multirow
или похожее решение.