使文本在每个单元格中居中,并使表格适合文本宽度

使文本在每个单元格中居中,并使表格适合文本宽度

我在调整表格宽度以适应文本宽度时遇到了问题。例如,在下表中,我想调整表格宽度以适应文本并将文本放置在每个单元格的中心。在这种情况下,我使用了 \centering 命令,但它不起作用。

\begin{table}[H]
\fontsize{8}{10}\selectfont
\renewcommand{\arraystretch}{1}
 \caption{Average Event-Driven Message Delivery Ratio for single-hop broadcasting}
\label{tab:table1}
\centering
\begin{tabular}{ |p{1cm}|p{1.6cm}|p{2.7cm}|p{2.7cm}|p{2cm}|}
\hline
\multicolumn{5}{|c|}{\textbf{Average Event-Driven Message Delivery Ratio (\%)}} \\
\hline
\textit{Vehicle ID} & \textit{IEEE802.11p} & \textit{Event TX in Dedicated Phase} & \textit{Event TX upon Token Reception} & \textit{Event TX Without Token}\\
\hline
1 & 77.00 & 87.00 & 95.25 & 88.25\\
\hline
2 & 84.00 & 87.00 & 96.25 & 87.25\\
\hline
3 & 85.00 & 87.00 & 97.00 & 87.00\\
\hline
4 & 83.00 & 87.00 & 96.50 & 88.25\\
\hline
5 & 77.00 & 87.00 & 96.00 & 89.87\\
\hline\hline
\textbf{Average} & \textbf{81.20} & \textbf{87.00} & \textbf{96.20} & \textbf{88.14}\\
\hline
\end{tabular}
\end{table}

答案1

我不知道您的文本块有多宽,因为没有提供最小示例。因此,我完成了假设 A4 纸和使用的代码几何学没有其他选择。

表格型允许您创建填充给定宽度的表格 - 此处为\linewidth。请勿使用H说明符。如果您不想要浮点数,请不要使用,而是table使用\captionof标题或者捕获

大批为了方便使用,我们可以创建自定义版本的X表格型用途。列的重新定义X来自表格型的文档。

我也用过书签使表格看起来更专业。这意味着放弃垂直线,使用不同宽度的水平线。有关制作高质量表格的详细信息和更多提示,请参阅手册。

我已经删除了表格本身中标题部分的重复部分。由于这部分位于标题之后,因此会分散注意力。我已将百分号添加到标题中。这避免了使用\multicolumn并允许更灵活地指定环境中列的宽度tabularx。有关此问题的警告和详细信息,请参阅手册。

结果如下:

结果

代码:

\documentclass[a4paper]{article}
\usepackage{tabularx,booktabs,array,geometry}
\renewcommand{\tabularxcolumn}[1]{>{\small}m{#1}}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}
%   \fontsize{8}{10}\selectfont
  \caption{Average Event-Driven Message Delivery Ratio for single-hop broadcasting (\%)}
  \label{tab:table1}
  \par
  \centering
  \begin{tabularx}{\linewidth}{>{\hsize=.6\hsize}YY>{\hsize=1.2\hsize}Y>{\hsize=1.2\hsize}YY}
    \toprule
    \textit{Vehicle ID} & \textit{IEEE802.11p} & \textit{Event TX in Dedicated Phase} & \textit{Event TX upon Token Reception} & \textit{Event TX Without Token}\\
    \midrule
    1 & 77.00 & 87.00 & 95.25 & 88.25\\
    2 & 84.00 & 87.00 & 96.25 & 87.25\\
    3 & 85.00 & 87.00 & 97.00 & 87.00\\
    4 & 83.00 & 87.00 & 96.50 & 88.25\\
    5 & 77.00 & 87.00 & 96.00 & 89.87\\
    \midrule
    \textbf{Average} & \textbf{81.20} & \textbf{87.00} & \textbf{96.20} & \textbf{88.14}\\
    \bottomrule
  \end{tabularx}
\end{table}
\end{document}

相关内容