![使文本在每个单元格中居中,并使表格适合文本宽度](https://linux22.com/image/323145/%E4%BD%BF%E6%96%87%E6%9C%AC%E5%9C%A8%E6%AF%8F%E4%B8%AA%E5%8D%95%E5%85%83%E6%A0%BC%E4%B8%AD%E5%B1%85%E4%B8%AD%EF%BC%8C%E5%B9%B6%E4%BD%BF%E8%A1%A8%E6%A0%BC%E9%80%82%E5%90%88%E6%96%87%E6%9C%AC%E5%AE%BD%E5%BA%A6.png)
我在调整表格宽度以适应文本宽度时遇到了问题。例如,在下表中,我想调整表格宽度以适应文本并将文本放置在每个单元格的中心。在这种情况下,我使用了 \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}