在表格单元格中使用 \\ 进行换行,导致 \midrule 和 \toprule 的打印延长

在表格单元格中使用 \\ 进行换行,导致 \midrule 和 \toprule 的打印延长

我在线程内部使用\thread{}打印列名并使用\\换行。这导致 和 的打印时间延长\midrule\toprule如下图所示。

在此处输入图片描述

我使用的代码如下

\begin{figure}[!h]
\begin{tabular}
{p{\dimexpr0.60\linewidth-2\tabcolsep}
 p{\dimexpr0.40\linewidth-2\tabcolsep}}
   \includegraphics[width=1\linewidth,valign=c]{../matlab/SCEP_mcep_compare/graphs/IotServerCpuUtilization}
    &
    \centering
    \begin{tabularx}{\textwidth}{l r c}
    \toprule
    \thead{$\lambda$ }  & \thead{Process \\ CPU \% } & \thead{System \\ CPU \%  }  \\
    \midrule
    10   &  13 &  3     \\
    500  &  70 &  30    \\
    1000 &  83 &  38    \\
    2000 &  84 &  39    \\
    3000 &  84 &  39    \\
    \bottomrule
    \end{tabularx}                           
    \tabularnewline \vspace*{-4mm}
    \caption{Effect of $\lambda$ CPU and Memory}\label{fig:SCEPQoS0MemoryCPU}
    & \vspace*{-4mm}
    \captionof{table}{Values for \cref{fig:SCEPQoS0MemoryCPU}}\label{tab:SCEPQoS0MemoryCPU}
\end{tabular}\vspace*{-13mm}
\end{figure}

我究竟做错了什么?

答案1

tabularx需要一个宽度组件,并将表格设置为具有该宽度。如果您没有 -column X,则列将使用其自然宽度从左到右设置,这可能会导致水平使用不完整(如您的情况),或内容溢出预先指定的宽度。下面我展示了预期用途 - 宽度和 -column X

在此处输入图片描述

\documentclass{article}

\usepackage{tabularx,booktabs,caption,makecell}
\usepackage[export]{adjustbox}

\begin{document}

\begin{figure}
  \begin{tabular}{
    p{\dimexpr0.60\linewidth-2\tabcolsep}
    p{\dimexpr0.40\linewidth-2\tabcolsep}
  }
    \includegraphics[width = \linewidth, valign = c]{example-image}
    &
    \centering
    \begin{tabularx}{\linewidth}{X r c}
      \toprule
      \thead{$\lambda$} & \thead{Process \\ CPU \%} & \thead{System \\ CPU \%} \\
      \midrule
      10   &  13 &  3  \\
      500  &  70 &  30 \\
      1000 &  83 &  38 \\
      2000 &  84 &  39 \\
      3000 &  84 &  39 \\
      \bottomrule
    \end{tabularx}
    \tabularnewline
    \captionof{table}{Effect of $\lambda$ CPU and Memory}
    &
    \captionof{table}{Values for something}
  \end{tabular}
\end{figure}

\end{document}

相关内容