为什么这些表格列单元格中的文本没有居中?

为什么这些表格列单元格中的文本没有居中?

我的文档中有以下表格,除了最上面几列的文本未居中外,其他一切似乎都正常。我不知道为什么。我可以手动调整多列大小m来实现这一点,但这似乎不是正确的解决方案。

我的文档中有一个类似的表格,居中效果很好。这一切都在 2 列 IEEE 类型文档中。我以为我的表格可能太宽了,发生了一些奇怪的事情 - 但缩小表格宽度并不能解决问题(尽管它使文本偏离中心(以不同的方式)。我的整个表格位于页面的中心;我尝试将其删除并使其保持左对齐,但这没有效果。

桌子乱糟糟的

生成该表的 TeX 是:

\begin{table*}
   \centering
   \caption{Results on Xilinx Virtex 5 Devices}
   \label{tab:XilinxResults}
   \begin{tabular}{|m{3cm}|m{1.50cm}|m{1.50cm}|m{1.30cm}|m{1.30cm}|m{1.30cm}|m{1.30cm}|m{1.30cm}|m{1.30cm}|}
      \cline{2-9}
      \multicolumn{1}{>{\centering}m{3.0cm}|}{ } &  % blank box
      \multicolumn{2}{>{\centering}m{3.0cm}|}{\bfseries Clock Frequency (MHz)} &
      \multicolumn{2}{>{\centering}m{2.6cm}|}{\bfseries Throughput (Mbit/s)} &
      \multicolumn{2}{>{\centering}m{2.6cm}|}{\bfseries Area (CLB Slices)} &
      \multicolumn{2}{>{\centering}m{2.6cm}|}{\bfseries Throughput / Area} \tabularnewline \hline
      \multicolumn{1}{|>{\centering}m{3cm}|}{\bfseries Architecture} &
      \multicolumn{1}{>{\centering}m{1.50cm}|}{\bfseries 512-bit} &
      \multicolumn{1}{>{\centering}m{1.50cm}|}{\bfseries 256-bit} &
      \multicolumn{1}{>{\centering}m{1.30cm}|}{\bfseries 512-bit} &
      \multicolumn{1}{>{\centering}m{1.30cm}|}{\bfseries 256-bit} &
      \multicolumn{1}{>{\centering}m{1.30cm}|}{\bfseries 512-bit} &
      \multicolumn{1}{>{\centering}m{1.30cm}|}{\bfseries 256-bit} &
      \multicolumn{1}{>{\centering}m{1.30cm}|}{\bfseries 512-bit} &
      \multicolumn{1}{>{\centering}m{1.30cm}|}{\bfseries 256-bit}
      \tabularnewline\hline\hline

      \bfseries BMW x1 &
      \raggedleft 4.89 & \raggedleft 8.14 & \raggedleft 5004  & \raggedleft 4168 &
      \raggedleft 12039 & \raggedleft 6164 & \raggedleft 0.42 & \raggedleft 0.68 \tabularnewline \hline
      \bfseries BMW x1-PPL18 &
      \raggedleft 46.51 & \raggedleft 70.97 & \raggedleft 47628  & \raggedleft 36335 &
      \raggedleft 24564 & \raggedleft 11610 & \raggedleft 1.84 & \raggedleft 2.96 \tabularnewline \hline
      \bfseries BMW /32(h) &                                                                                    
      \raggedleft 44.27 & \raggedleft 69.41 & \raggedleft 1416  & \raggedleft 1110 &                            
      \raggedleft 4001 & \raggedleft 2211 & \raggedleft 0.35 & \raggedleft 0.50 \tabularnewline \hline          
      \bfseries CubeHash x1 &                                                                                   
      \raggedleft 152.70 & \raggedleft 151.93 & \raggedleft 2443  & \raggedleft 2430 &                          
      \raggedleft 745 & \raggedleft 672 & \raggedleft 3.28 & \raggedleft 3.62 \tabularnewline \hline            
      \bfseries CubeHash x1-PAR5 &                                                                              
      \raggedleft 151.26 & \raggedleft 151.56 & \raggedleft 12101 & \raggedleft 12125 &                         
      \raggedleft 3742 & \raggedleft 3490 & \raggedleft 3.23 & \raggedleft 3.47 \tabularnewline \hline          
      \bfseries CubeHash x1-PAR17 &                                                                             
      \raggedleft N/A & \raggedleft 150.49 & \raggedleft N/A & \raggedleft 40933 &                              
      \raggedleft N/A & \raggedleft 11360 & \raggedleft N/A & \raggedleft 1.91 \tabularnewline \hline           
      \bfseries CubeHash x1-PAR33 &                                                                             
      \raggedleft 150.65 & \raggedleft N/A & \raggedleft 79542 & \raggedleft N/A &                              
      \raggedleft 24570 & \raggedleft N/A & \raggedleft 3.24 & \raggedleft N/A \tabularnewline \hline           
      \bfseries CubeHash /2(h) &                                                                                
      \raggedleft 173.52 & \raggedleft 184.71 & \raggedleft 1388 & \raggedleft 1477 &                           
      \raggedleft 733 & \raggedleft 624 & \raggedleft 1.89 & \raggedleft 2.37 \tabularnewline \hline            


   \end{tabular}                                                                                                
\end{table*}                

答案1

使用 时\multicolumn{1},您无需通过 重新指定列宽m{<len>},因为尝试将列条目居中时需要繁琐的界面。只需使用 即可\multicolumn{1}{c}{...}

这是您的代码片段的更新版本:

在此处输入图片描述

\documentclass{article}
%\usepackage[landscape]{geometry}% http://ctan.org/pkg/geometry
\usepackage{array}% http://ctan.org/pkg/array
\newcommand{\stackcell}[2][c]{%
  \begin{tabular}{@{}#1@{}}
  #2
  \end{tabular}%
}
\begin{document}
\begin{table*}
   \centering
   \caption{Results on Xilinx Virtex 5 Devices}
   \label{tab:XilinxResults}
   \begin{tabular}{|>{\bfseries\arraybackslash}l|*{8}{>{\raggedleft\arraybackslash}m{13mm}|}}
      \cline{2-9}
      \multicolumn{1}{c|}{} &  % blank box
      \multicolumn{2}{c|}{\bfseries \stackcell{Clock Frequency\\(MHz)}} &
      \multicolumn{2}{c|}{\bfseries \stackcell{Throughput\\(Mbit/s)}} &
      \multicolumn{2}{c|}{\bfseries \stackcell{Area\\(CLB Slices)}} &
      \multicolumn{2}{c|}{\bfseries \stackcell{Throughput /\\Area}} \\ \hline
      \multicolumn{1}{|c|}{\bfseries Architecture} &
      \multicolumn{1}{c|}{\bfseries 512-bit} &
      \multicolumn{1}{c|}{\bfseries 256-bit} &
      \multicolumn{1}{c|}{\bfseries 512-bit} &
      \multicolumn{1}{c|}{\bfseries 256-bit} &
      \multicolumn{1}{c|}{\bfseries 512-bit} &
      \multicolumn{1}{c|}{\bfseries 256-bit} &
      \multicolumn{1}{c|}{\bfseries 512-bit} &
      \multicolumn{1}{c|}{\bfseries 256-bit}
      \tabularnewline\hline\hline

      BMW x1 & 4.89 & 8.14 & 5004  & 4168 & 12039 & 6164 & 0.42 & 0.68 \\ \hline
      BMW x1-PPL18 & 46.51 & 70.97 & 47628 & 36335 & 24564 & 11610 & 1.84 & 2.96 \\ \hline
      BMW /32(h) & 44.27 & 69.41 & 1416 & 1110 & 4001 & 2211 & 0.35 & 0.50 \\ \hline
      CubeHash x1 & 152.70 & 151.93 & 2443 & 2430 & 745 & 672 & 3.28 & 3.62 \\ \hline
      CubeHash x1-PAR5 & 151.26 & 151.56 & 12101 & 12125 & 3742 & 3490 & 3.23 & 3.47 \\ \hline
      CubeHash x1-PAR17 & N/A & 150.49 & N/A & 40933 & N/A & 11360 & N/A & 1.91 \\ \hline
      CubeHash x1-PAR33 & 150.65 & N/A & 79542 & N/A & 24570 & N/A & 3.24 & N/A \\ \hline
      CubeHash /2(h) & 173.52 & 184.71 & 1388 & 1477 & 733 & 624 & 1.89 & 2.37 \\ \hline
   \end{tabular}
\end{table*}
\end{document}

希望这能改善代码的格式和可读性。一些改进包括:

  • 使用重复列说明符:总共*{<num>}{<col spec>}重复次数;<col spec><num>
  • \raggedleft在“列规范”级别插入,以避免tabular内容混乱\raggedleft
  • 在列说明符中使用\arraybackslashwithin ,恢复as>{<stuff>}的传统用法;\\\tabularnewline
  • 添加在单元格内\stackcell[<col spec>]{<stuff>}可堆叠的内容tabular(尽管您可能不需要/不需要这个)。

最后,作为专业外观表格的建议,请考虑使用booktabs包裹。表格的水平对齐/结构有助于避免使用垂直规则,这是使用 时所提倡的booktabs

geometry在编译 MWE 时以模式加载landscape以使表格适合页面。)

相关内容