将一个句子分成两行以使列宽变窄。

将一个句子分成两行以使列宽变窄。

我有一张包含多个单词和列的表格

\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使列变窄。如果您喜欢在单元格中间设置“size”,则需要使用multirow或类似的解决方案。

相关内容