表格中有两列比其他列拉伸得更多

表格中有两列比其他列拉伸得更多

一年前,我根据一个示例制作了一个适合我需要的表格。当表格在日记模板中时,它显示没有错误。现在我将其移到另一个模板,它超出了页面限制。所以我添加了调整框,但发生了另一件事,两列(图片中的 S4)比其他列更拉伸。有办法解决这个问题吗?

\begin{table}
\centering
\setlength\tabcolsep{2pt}
\caption{Mapping Precision of MedK} \label{tab:t3}
\begin{adjustbox}{max width=\textwidth}
\begin{tabular}{ | l | l | l | l | l | l | l | l | l | l | c | l | l | l | c | l | }
\hline
\multirow{2}{*}{Keyword}  & \multirow{2}{*}{\begin{tabular}[c]{@{}l@{}}Results Requested\\per source\end{tabular}} & \multicolumn{5}{c|}{Results available} & \multicolumn{4}{c|}{Properties retrieved}& \multicolumn{4}{c|}{\begin{tabular}[c]{@{}c@{}}Properties matched\\with \end{tabular}} & \multirow{2}{*}{\begin{tabular}[c]{@{}c@{}}Overall\\Precision\end{tabular}} \\[1ex] \cline{3-15}
     &  & S1 & S2 & S3 & S4 & overall & S1 & S2 & S3 & S4 & S1 & S2 & S3 & S4 &  \\ \hline
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\ \hline
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\ \hline
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\ \hline
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\ \hline
\end{tabular}
\end{adjustbox}
\end{table}

在此处输入图片描述

答案1

在此处输入图片描述

\multicolumn如果最后一列比它跨越的列宽,则将所有宽度添加到最后一列。只需\makebox[3em]{}在每列中放入一个单元格即可强制设置最小宽度(将 3em 替换为所需的任何值)。只有在万不得已的情况下才将诸如调整框之类的缩放应用于表格,即使这样也不要这样做。

但在这里我认为如果你选择较小的字体,并且换行你的标题,那么你不应该有过大的多列,例如:

\documentclass{article}
\usepackage{multirow}
\begin{document}

\begin{table}
\centering
\small
\setlength\tabcolsep{1.7pt}
\caption{Mapping Precision of MedK} \label{tab:t3}

\begin{tabular}{@{}| l | l | l | l | l | l | l | l | l | l | c | l | l | l | c | l |@{}}
\hline
\multirow{2}{*}{Keyword}  & 
\multirow{2}{*}{\begin{tabular}[c]{@{}l@{}}Results Requested\\per source\end{tabular}} &
 \multicolumn{5}{c|}{\begin{tabular}[c]{@{}c@{}}Results\\available\end{tabular}}&
\multicolumn{4}{c|}{\begin{tabular}[c]{@{}c@{}}Properties\\retrieved\end{tabular}}&
   \multicolumn{4}{c|}{\begin{tabular}[c]{@{}c@{}}Properties\\matched\\with \end{tabular}} & 
\multirow{2}{*}{\begin{tabular}[c]{@{}c@{}}Overall\\Precision\end{tabular}} \\[1ex] \cline{3-15}
     &  & S1 & S2 & S3 & S4 & overall & S1 & S2 & S3 & S4 & S1 & S2 & S3 & S4 &  \\ \hline
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\ \hline
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\ \hline
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\ \hline
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\ \hline
\end{tabular}

\end{table}
\end{document}

答案2

正如已经解释过的,多余的宽度放在最后一列。

在这里,我提出了一种不同的表格排版方式,没有垂直线,而是使用 LaTeX 来计算列间空间。

\documentclass{article}
\usepackage{booktabs}

\begin{document}

\begin{table}
\centering
\setlength\tabcolsep{0pt}
\small
\caption{Mapping Precision of MedK} \label{tab:t3}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} l l l l l l l l l l c l l l c l @{}}
\toprule
Keyword &
  \multicolumn{6}{c}{Results} &
  \multicolumn{8}{c}{Properties} &
  \multicolumn{1}{c@{}}{\smash{\begin{tabular}[t]{@{}c@{}}Overall\\precision\end{tabular}}}
\\
\cmidrule{2-7}\cmidrule{8-15}
&
  \multicolumn{1}{c}{requested} &
  \multicolumn{5}{c}{available} &
  \multicolumn{4}{c}{retrieved} &
  \multicolumn{4}{c}{matched} &
  \multicolumn{1}{c}{}
\\
&
  \multicolumn{1}{c}{per source} &
  \multicolumn{5}{c}{} &
  \multicolumn{4}{c}{} &
  \multicolumn{4}{c}{with} &
  \multicolumn{1}{c}{}
\\
\cmidrule{2-2}\cmidrule{3-7}\cmidrule{8-11}\cmidrule{12-15}
     &  & S1 & S2 & S3 & S4 & overall & S1 & S2 & S3 & S4 & S1 & S2 & S3 & S4 &  \\
\midrule
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\
     &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  \\
\bottomrule
\end{tabular*}

\end{table}

\end{document}

在此处输入图片描述

相关内容