我正在尝试创建一个表格。但是,我遇到了规则和格式方面的问题。请查看 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}
,则应将第一列的类型设置为 ,而不是X
,Z
其中Z
应通过 定义\newcolumntype{Z}{>{\hsize=2.5\hsize}X}
。请注意,分数的总和\hsize
必须等于 (可能已修改) 的列数。(顺便说一句,在列类型的定义中X
添加一条指令可能是有意义的。)\centering
s
其次,由于您使用该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}