我试图将表格的宽度更改为文本宽度,但布局很糟糕,如下所示...有什么想法吗?
我的代码:
\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
我建议您将四种列类型中的三种从 更改为l
。X
由于“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}