面临 tabularx 问题

面临 tabularx 问题

我正在尝试创建一个表格。但是,我遇到了规则和格式方面的问题。请查看 latex 代码。

\documentclass{文章}

\usepackage{tabularx,booktabs}
\newcommand{\gmc}\[2\]{\multicolumn{#1}{@{}#2@{}}}
\newcolumntype{s}{>{\hsize=.5\hsize}X}

\begin{document}

    \begin{tabularx}{\textwidth}{|X|s|s|s|}

        \hline
        Mean cure time in cells & \gmc{3}{c}{Cell frequency} \\\toprule\toprule
                        & Male     & Female  & Total     \\ \midrule
        Drugtakers         & 4 (80)       & 7 (20) & 4.6         \\ \midrule
        Non Drugtakers     & 3 (20)       & 6  (80)  & 5.4     \\ \midrule
    \end{tabularx}

\end{document}

在此处输入图片描述

答案1

我认为您的代码中有两个问题。首先,如果您想要有三列类型为s,并通过 定义\newcolumntype{s}{>{\hsize=.5\hsize}X},则应将第一列的类型设置为 ,而不是XZ其中Z应通过 定义\newcolumntype{Z}{>{\hsize=2.5\hsize}X}。请注意,分数的总和\hsize必须等于 (可能已修改) 的列数。(顺便说一句,在列类型的定义中X添加一条指令可能是有意义的。)\centerings

其次,由于您使用该booktabs包及其宏来获得间距良好的水平规则,因此您不应该在表中使用任何垂直规则。

在此处输入图片描述

\documentclass{article}
\usepackage{tabularx,booktabs}
\newcolumntype{s}{>{\hsize= .5\hsize}X}
\newcolumntype{Z}{>{\hsize=2.5\hsize}X}  
\begin{document}
     \noindent
     \begin{tabularx}{\textwidth}{Zsss} % Check: 2.5 + 3 * 0.5 = 4
     \toprule
     Mean cure time in cells & \multicolumn{3}{c}{Cell frequency}\\
     \midrule
                        & Male     & Female   & Total   \\
        Drugtakers      & 4 (80)   & 7 (20)   & 4.6     \\
        Non Drugtakers  & 3 (20)   & 6  (80)  & 5.4  \\
    \bottomrule
    \end{tabularx}
\end{document}

相关内容