
Tengo una tabla que tiene varias palabras y columnas.
\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}
Cuando la compilo, tengo una tabla con columnas demasiado anchas.
Creo que Reduction in size(%)
necesita algún ajuste. ¿Cómo hacer esa columna más estrecha?
Respuesta1
A continuación se muestra una forma de utilizar el makecell
paquete, un tamaño de fuente más pequeño y el caption
paquete para lograr un espaciado vertical correcto entre el título y la tabla:
\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}
Respuesta2
Esta es una propuesta. Intenté pensar fuera de lo común, por lo que no es exactamente fiel a tu diseño original.
\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}
Lo que resultó en:
Comentarios:
En cualquier caso, puede dividir el título de su columna larga "Reducción de tamaño" en dos líneas como lo hice en el código usando dos líneas para definir el encabezado de su tabla.
También utilicé el
siuntix
paquete para alinear los números en la columna "tamaño".Eliminé el uso de
multirow
porque realmente no era necesario.Usé el paquete
caption
con opcióntableposition=above
para una mejor ubicación del título de la tabla.
Respuesta3
Como alternativa a cambiar el tamaño de fuente y el ancho de una columna, lo cual no siempre es posible, también puedes dejar que la tabla abarque ambas columnas. Esto se puede invocar con la versión destacada.
\begin{table*}...\end{table*}
El carácter de colocación h
no es nada aconsejable en este caso. Esto también funciona para figuras (y, si están definidos, otros objetos flotantes).
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}
Respuesta4
Una solución es:
\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}
Utilizo tabularx
el paquete para adaptar el ancho de la tabla al ancho de la columna, cambio la fuente para \footnotesize
que las columnas se estrechen. Si desea tener el "tamaño" del mosto en el medio de la celda, entonces necesita usar multirow
una solución similar.