我想为附图中的表格编写表格代码。我试过了,但无法获取此表格。
\begin{tabular}{|llllllll|}
\hline
A & \multicolumn{7}{|l}{B} \\
\hline
&\multicolumn{3}{|l|}{C} & \multicolumn{2}{l|}{D} & \multicolumn{2}{l}{E}\\
\hline
&\multicolumn{1}{|l|}{F}& \multicolumn{1}{l|}{G} & \multicolumn{1}{l|}{H} & \multicolumn{1}{l|}{I} & \multicolumn{1}{l|}{J} & \multicolumn{1}{l|}{K}& \multicolumn{1}{l}{L}\\
\hline
M &&&&&&&\\
\hline
\end{tabular}
答案1
以下是我必须做出的一些工作假设:
- 八列应等宽
- 表格应该跨越文本块的整个宽度
- 左栏内容应左对齐
- 第 2 至第 8 列上方标题单元格中的材料应居中
- 第 2 至第 8 列数据单元格中的材料应左对齐
- 所有单元格(包括所有标题单元格)都应启用自动换行。
如果这些假设是正确的,那么下面的代码应该会引起您的兴趣。这里展示的两种解决方案都基于该tabularx
包,并且都满足上述标准。第一种解决方案使用“传统”布局,带有大量水平和垂直条。第二种解决方案追求更开放的“外观”,完全不使用垂直条,并使用较少但间距适当的水平线。
\documentclass{article}
\usepackage{tabularx,ragged2e,booktabs}
\newcolumntype{C}{>{\Centering\arraybackslash}X}
\newcolumntype{L}{>{\RaggedRight\arraybackslash}X}
\newcommand\mC[1]{\multicolumn{1}{C|}{#1}} % handy shortcut macro
\begin{document}
\setlength\extrarowheight{2pt}
\noindent
\begin{tabularx}{\textwidth}{|*{8}{L|}}
\hline
& \multicolumn{7}{c|}{B}\\
\cline{2-8}
A & \multicolumn{3}{c|}{C} & \multicolumn{2}{c|}{D} & \multicolumn{2}{c|}{E} \\
\cline{2-8}
& \mC{F} & \mC{G} & \mC{H} & \mC{I} & \mC{J} & \mC{K} & \mC{L} \\
\hline
M & & & & & & & \\
\hline
N & & & & & & & \\
\hline
\end{tabularx}
\renewcommand\mC[1]{\multicolumn{1}{C}{#1}}
\setlength\extrarowheight{0pt}
\bigskip\noindent
\begin{tabularx}{\textwidth}{*{8}{L}}
\toprule
& \multicolumn{7}{c}{B}\\
\cmidrule(l){2-8}
A & \multicolumn{3}{c}{C} & \multicolumn{2}{c}{D} & \multicolumn{2}{c}{E} \\
\cmidrule(lr){2-4} \cmidrule(lr){5-6} \cmidrule(l){7-8}
& \mC{F} & \mC{G} & \mC{H} & \mC{I} & \mC{J} & \mC{K} & \mC{L} \\
\midrule
M & & & & & & & \\
N & & & & & & & \\
\bottomrule
\end{tabularx}
\end{document}
答案2
在下面的 MWE 中,我删除了多余的\multicolumn{1}
命令,用 替换了两个\hline
s ,在需要的地方\cline
添加了,并用列类型(水平居中)替换了 列类型。|
l
c
\documentclass{article}
\begin{document}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline
& \multicolumn{7}{|c|}{B} \\
\cline{2-8}
A & \multicolumn{3}{|c|}{C} & \multicolumn{2}{c|}{D} & \multicolumn{2}{c|}{E}\\
\cline{2-8}
& F & G & H & I & J & K & L\\
\hline
M &&&&&&&\\
\hline
\end{tabular}
\end{document}
根据表格的实际内容,您可以考虑完全删除垂直线并\hline
用包中的规则替换booktabs
。