自动调整表格单元格大小

自动调整表格单元格大小

是否可以根据表格单元格的内容自动调整其大小,或者使所有单元格的大小统一?

以下是一个例子:

\begin{table}[t]
\center
\footnotesize
\caption{resultsss}
\label{labss}
\begin{tabular}{ c c }

\begin{tabular}{ | c || c | c | c | c | } \hline
\multicolumn{4}{|c|}{\textbf{a text over here a text over here}} \\ \hline
\textit{Method 1} & 19923 & 123 & 123 \\ \hline
\textit{Method 2} & 1203 & 123 & 123 \\ \hline
\end{tabular}

&

\begin{tabular}{ | c || c | c | c | c | } \hline
\multicolumn{5}{|c|}{\textbf{another text over here}} \\ \hline
\textit{Method 1} & 789 & 789 & 789 & 789 \\ \hline
\textit{Method 2} & 789 & 789 & 789 & 789 \\ \hline
\end{tabular}


\end{tabular}
\end{table}

答案1

如果 \multicolumn跨度大于其跨越的列,则全部额外的宽度进入最后一个跨列。这是底层\halign基元的一个特性。一种解决方案是使列间空间更宽但可收缩,以便默认的列宽总和始终大于跨度宽度。不过,如果你有垂直线。

在此处输入图片描述

我还修正了\center\centering​​添加了必要的序言。

\documentclass{article}

\begin{document}

\begin{table}[t]
\centering
\footnotesize
\caption{resultsss}
\label{labss}
\begin{tabular}{ c c }

\begin{tabular*}{.5\textwidth}{ @{\extracolsep{\textwidth minus \textwidth}}| c || c | c | c |@{} } \hline
\multicolumn{4}{@{}|c|@{}}{\textbf{a text over here a text over here}}\\ \hline
\textit{Method 1} & 19923 & 123 & 123 \\ \hline
\textit{Method 2} & 1203 & 123 & 123 \\ \hline
\end{tabular*}

&

\begin{tabular}{ | c || c | c | c | c | } \hline
\multicolumn{5}{|c|}{\textbf{another text over here}} \\ \hline
\textit{Method 1} & 789 & 789 & 789 & 789 \\ \hline
\textit{Method 2} & 789 & 789 & 789 & 789 \\ \hline
\end{tabular}


\end{tabular}
\end{table}


\end{document}

答案2

我不完全确定你的问题是否可以“使所有单元格的大小统一”是什么意思:你是否希望给定表格的一组列中的列宽统一,或者你是否希望所有列的宽度都相等全部两个都表格?

在下面的例子中,我假设您想要前者。由于使用了两个tabularx环境,两个表的前列宽度相等,第一个表的三个数据列宽度相等,第二个表的四个数据列宽度相等。我希望这就是您想要的。

\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{table}[t]
\footnotesize % Also possible: \small
\caption{Results}
\label{labss}
\begin{tabularx}{0.48\textwidth}{| l || *{3}{>{\centering\arraybackslash}X|}} \hline
\multicolumn{4}{|c|}{\textbf{a text over here a text over here}} \\  \hline
\textit{Method 1} & 19923 & 123 & 123 \\  \hline
\textit{Method 2} & 1203 & 123 & 123 \\  \hline
\end{tabularx}
\hspace*{\fill} % spread the two tables as far apart as is possible
\begin{tabularx}{0.48\textwidth}{| l || *{4}{>{\centering\arraybackslash}X|}} \hline
\multicolumn{5}{|c|}{\textbf{another text over here}} \\ \hline
\textit{Method 1} & 789 & 789 & 789 & 789 \\ \hline
\textit{Method 2} & 789 & 789 & 789 & 789 \\ \hline
\end{tabularx}
\end{table}
\end{document}

在此处输入图片描述

相关内容