表格显示不正确

表格显示不正确

我提供了两次尝试编写代码来制作一个有 4 行 5 列的表格。显示的表格中有几个意想不到的特征。在两种表格环境中,我都有\begin{tabular}{|| l | l | l | l | l | l ||} \hline;所以我希望有 5 条垂直线将列分开。我只有两条垂直线将一对相邻的列分开。我在表格左侧有一条双垂直线,但在右侧没有。我p{3cm}在每列中都包含类似的代码来指定每列的宽度,并允许将列标题排版在两行上,以便表格可以适合边距。这些命令大多被忽略。

我想对表格进行一项修改。我希望第二列中的数字和第三、第四和第五列中的复选标记居中显示,而不是沿每列的左边缘显示。我之所以这样做是l因为我确实希望列标题沿列的左边缘对齐。

\documentclass{amsart}
\usepackage{adjustbox}
\usepackage{mathtools}

\usepackage{makecell}
\usepackage{boldline}
\setcellgapes{3pt}

\begin{document}
\noindent \hspace*{\fill}
\makegapedcells
\begin{tabular}{|| l p{3cm} |  l p{2.5cm} | l p{3cm} | l p{2.5cm} | l p{2cm} | l p{2cm} ||} \hline
\multicolumn{5}{|| c ||}{{\bf Inventory of Clocks and Frequency of Chimes}} \\ \Xhline{0.8pt}
        & Number of clocks  &   Chimes $n$ times on the $n^{\mathrm{th}}$ hour  &   Chimes once on the hour     &   Chimes once on the half-hour \\ \hline
Type A  &   10              &   \checkmark                                               &                               &   \checkmark \\ \hline
Type B  &   5               &   \checkmark                                               &                               &   \\ \hline
Type C  &   3               &                                                   &   \checkmark                           &   \checkmark \\ \hline
\end{tabular}
\hspace{\fill}
\vskip0.25in

\noindent \hspace*{\fill}
\makegapedcells
\begin{tabular}{|| l |  l p{2.5cm} | l p{3cm} | l p{2.5cm} | l p{2cm} | l p{2cm} ||} \hline
\multicolumn{5}{|| c ||}{{\bf Inventory of Clocks and Frequency of Chimes}} \\ \Xhline{0.8pt}
        & Number of clocks  &   Chimes $n$ times on the $n^{\mathrm{th}}$ hour  &   Chimes once on the hour     &   Chimes once on the half-hour \\ \hline
Type A  &   10              &   \checkmark                                               &                               &   \checkmark \\ \hline
Type B  &   5               &   \checkmark                                               &                               &   \\ \hline
Type C  &   3               &                                                   &   \checkmark                           &   \checkmark \\ \hline
\end{tabular}
\hspace{\fill}    

\end{document}

答案1

您在序言中指定了 12 列,但仅提供了 5 列数据。

在此处输入图片描述

\documentclass{amsart}
\usepackage{adjustbox}
\usepackage{mathtools}

\usepackage{array}


\begin{document}
\centering

\setlength\extrarowheight{2pt}
\begin{tabular}{|| p{2cm} |  p{2cm} | p{2cm} | p{2.5cm} | p{2cm} ||} \hline
\multicolumn{5}{|| c ||}{\textbf{Inventory of Clocks and Frequency of Chimes}} \\ \hline
        & Number of clocks  &   Chimes $n$ times on the $n^{\mathrm{th}}$ hour  &   Chimes once on the hour     &   Chimes once on the half-hour \\ \hline
Type A  &   10              &   \checkmark                                               &                               &   \checkmark \\ \hline
Type B  &   5               &   \checkmark                                               &                               &   \\ \hline
Type C  &   3               &                                                   &   \checkmark                           &   \checkmark \\ \hline
\end{tabular}

\bigskip



\end{document}

答案2

我将根据以下两点简化并重新组织表格的结构:

  • 使用tabularx具有四个等宽数据列的环境,并相应地调整列数。请注意,可以将c作为表体列类型的列以及作为标题单元格的列P类型(列类型的修改形式)。列类型允许在将其内容设置为右侧不规则时自动换行,据我了解,这正是您想要的标题。XP

  • 省略所有垂直线,省略表格内部的所有水平线,并使用包的规则绘制宏booktabs来绘制剩余的水平线。

在此处输入图片描述

\documentclass{amsart}
\usepackage{tabularx,booktabs}
\newcolumntype{P}{>{\raggedright\arraybackslash}X}

\begin{document}
\noindent
\begin{tabularx}{\textwidth}{ l cccc } 
\toprule
& \multicolumn{4}{ c }{{\bfseries Inventory of Clocks and Frequency of Chimes}} \\ 
\cmidrule(l){2-5}
& \multicolumn{1}{P}{Number of clocks}
& \multicolumn{1}{P}{Chimes $n$ times on the $n^{\mathrm{th}}$ hour}  
& \multicolumn{1}{P}{Chimes once on the hour} 
& \multicolumn{1}{P}{Chimes once on the half-hour} \\ 
\midrule
Type A  &   10 &   \checkmark & \checkmark & \\ 
Type B  &   5  &   \checkmark &  &  \\ 
Type C  &   3  &  &   \checkmark &   \checkmark \\ 
\bottomrule
\end{tabularx}

\end{document}

附录: 就我个人而言,我认为可以通过将材料置于标题单元格的中心来进一步改善表格的外观。这可以通过在列类型的定义中使用\centering而不是来实现。\raggedrightP

在此处输入图片描述

\documentclass{amsart}
\usepackage{tabularx,booktabs}
\newcolumntype{P}{>{\centering\arraybackslash}X}

\begin{document}
\noindent
\begin{tabularx}{\textwidth}{@{} l cccc @{}} 
\toprule
& \multicolumn{4}{ c }{{\bfseries Inventory of Clocks and Frequency of Chimes}} \\ 
\cmidrule(l){2-5}
& \multicolumn{1}{P}{Number of clocks}
& \multicolumn{1}{P}{Chimes $n$ times on the $n^{\mathrm{th}}$ hour}  
& \multicolumn{1}{P}{Chimes once on the hour} 
& \multicolumn{1}{P@{}}{Chimes once on the half-hour} \\ 
\midrule
Type A  &   10 &   \checkmark & \checkmark & \\ 
Type B  &   5  &   \checkmark &  &  \\ 
Type C  &   3  &  &   \checkmark &   \checkmark \\ 
\bottomrule
\end{tabularx}

\end{document}

相关内容