表格布局在拉伸至文本宽度时出现错误

表格布局在拉伸至文本宽度时出现错误

我试图将表格的宽度更改为文本宽度,但布局很糟糕,如下所示...有什么想法吗?

在此处输入图片描述

我的代码:

\begin{table}
\centering
\begin{tabularx}{\textwidth}{|l|l|l|l|}
\hline
\multicolumn{1}{|c|}{\textbf{}} & \multicolumn{1}{c|}{\textbf{T1}} & \textbf{T2} & \textbf{T3} \\ \hline
\textbf{M1}                 & 111                                   & 111               & 111               \\ \hline
\textbf{M2}                 & 111                                     & 111              & 111               \\ \hline
\textbf{M3}                 & 111                                     & 111               & 111            \\ \hline
\end{tabularx}
\caption{My Matrix}
\label{table4}
\end{table}

答案1

我建议您将四种列类型中的三种从 更改为lX由于“T1”标题居中,我假设您也希望将“T2”和“T3”居中。

附录:为了将第 2、3 和 4 列的所有内容居中,我首先定义一个“centered-X”列类型(在序言中),如下所示

 \newcolumntype{Y}{>{\centering\arraybackslash}X}

然后Y对这些列使用新定义的列类型。

在此处输入图片描述

\documentclass{article}
\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}    
\begin{table}
\centering
\begin{tabularx}{\textwidth}{|l|X|X|X|}
\hline
& \multicolumn{1}{c|}{\textbf{T1}} 
& \multicolumn{1}{c|}{\textbf{T2}} 
& \multicolumn{1}{c|}{\textbf{T3}} \\ \hline
\textbf{M1} & 111 & 111 & 111 \\ \hline
\textbf{M2} & 111 & 111 & 111 \\ \hline
\textbf{M3} & 111 & 111 & 111 \\ \hline
\end{tabularx}
\caption{Table with ``X'' column types} \label{table:X}

\bigskip\bigskip

\begin{tabularx}{\textwidth}{|l|Y|Y|Y|}
\hline 
\textbf{M1} & 111 & 111 & 111 \\ \hline
\textbf{M2} & 111 & 111 & 111 \\ \hline
\textbf{M3} & 111 & 111 & 111 \\ \hline
\end{tabularx}
\caption{Table with ``Y'' column types} \label{table:Y}

\end{table}
\end{document}

相关内容