Divida una oración en dos líneas para reducir el ancho de la columna.

Divida una oración en dos líneas para reducir el ancho de la columna.

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?

ingrese la descripción de la imagen aquí

Respuesta1

A continuación se muestra una forma de utilizar el makecellpaquete, un tamaño de fuente más pequeño y el captionpaquete 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} 

ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí

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 siuntixpaquete para alinear los números en la columna "tamaño".

  • Eliminé el uso de multirowporque realmente no era necesario.

  • Usé el paquete captioncon opción tableposition=abovepara 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 hno es nada aconsejable en este caso. Esto también funciona para figuras (y, si están definidos, otros objetos flotantes).

ingrese la descripción de la imagen aquí

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 tabularxel paquete para adaptar el ancho de la tabla al ancho de la columna, cambio la fuente para \footnotesizeque las columnas se estrechen. Si desea tener el "tamaño" del mosto en el medio de la celda, entonces necesita usar multirowuna solución similar.

información relacionada