如何使表格单元格具有相同的宽度?

如何使表格单元格具有相同的宽度?

我想制作一个表格,其中所有单元格的宽度均相等。在此处输入图片描述

这里汽车的单元格宽度比其他单元格大。所以我想让所有单元格都具有汽车的宽度。我试过这个代码,但不知道如何指定单元格的宽度和高度:

\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{|l|l|l|l|l|l|}
\hline
labels     & airplane & automobile & bird & cat & deer \\ \hline
airplane   &          &            &      &     &      \\ \hline
automobile &          &            &      &     &      \\ \hline
bird       &          &            &      &     &      \\ \hline
cat        &          &            &      &     &      \\ \hline
\end{tabular}
\end{table}

答案1

最干净的方法是使用包X中的 columntype——tabularx它根据作为第一个参数指定的宽度来计算列宽tabularx

在此处输入图片描述

\documentclass{article}

\usepackage{tabularx}


\begin{document}

\begin{table}
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{|*{6}{p{1.5cm}|}}
\hline
labels     & airplane & automobile & bird & cat & deer \\ \hline
airplane   &          &            &      &     &      \\ \hline
automobile &          &            &      &     &      \\ \hline
bird       &          &            &      &     &      \\ \hline
cat        &          &            &      &     &      \\ \hline
\end{tabular}
\end{table}


\begin{table}
\centering
\caption{My caption}
\label{my-other-label}
\begin{tabularx}{\linewidth}{|*{6}{X|}}
\hline
labels     & airplane & automobile & bird & cat & deer \\ \hline
airplane   &          &            &      &     &      \\ \hline
automobile &          &            &      &     &      \\ \hline
bird       &          &            &      &     &      \\ \hline
cat        &          &            &      &     &      \\ \hline
\end{tabularx}
\end{table}


\end{document}

答案2

更好看的版本使用booktabs

在此处输入图片描述

\documentclass{article}
\usepackage{tabularx,booktabs}
\begin{document}

\begin{table}
\centering
\caption{My caption}
\label{my-other-label}
\begin{tabularx}{\linewidth}{l*{5}{X}}
\toprule
labels     & airplane & automobile & bird & cat & deer \\ \midrule
airplane   &          &            &      &     &      \\ 
automobile &          &            &      &     &      \\ 
bird       &          &            &      &     &      \\ 
cat        &          &            &      &     &      \\ \bottomrule
\end{tabularx}
\end{table}

\end{document}

答案3

使用,您可以使用键来固定所有列的宽度。使用 值{NiceTabular},所有列的宽度将等于最宽单元格的宽度。nicematrixcolumns-withauto

\documentclass{article}
\usepackage{nicematrix}
\usepackage{caption}

\begin{document}
\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{NiceTabular}{llllll}[hvlines,columns-width=auto]
labels     & airplane & automobile & bird & cat & deer \\ 
airplane   &          &            &      &     &      \\ 
automobile &          &            &      &     &      \\ 
bird       &          &            &      &     &      \\ 
cat        &          &            &      &     &      \\ 
\end{NiceTabular}
\end{table}
\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容