我正在尝试用 LaTeX 制作如下图所示的表格
但我不确定该怎么做。我一直在使用booktabs
包中的表格环境,但以下代码无法正确生成表格。行间有断行,行延伸太远等。
\documentclass[10pt]{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{ccc|ccccccc}
&&&&&\multicolumn{5}{c}{Capacity j} \\
&&i&0&1&2&3&4&5&6\\
\midrule
&&0&0&0&0&0&0&0&0\\
$w_1 = 3$&$v_1 = 25$&1&0&0&0&25&25&25&25\\
$w_1 = 2$&$v_1 = 20$&2&0&0&20&25&25&45&45\\
\end{tabular}
\end{document}
这将生成如下表格:
我知道我的 MWE 并不完整,但我包含了必要的代码来演示我当前表的问题。
答案1
我会使用这样的东西:
\documentclass[10pt]{article}
\usepackage{array}
\begin{document}
\setlength\extrarowheight{3pt}
\noindent\begin{tabular}{>{$}c<{$}@{,\,}>{$}c<{$}c|ccccccc}
\multicolumn{2}{c}{} & & & \multicolumn{5}{c}{Capacity $j$} \\
\multicolumn{2}{c}{} & $i$ & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\
\cline{3-10}
\multicolumn{2}{c}{} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
w_1 = 3 & v_1 = 25 & 1 & 0 & 0 & 0 & 25 & 25 & 25 & 25 \\
w_1 = 2 & v_1 = 20 & 2 & 0 & 0 & 20 & 25 & 25 & 45 & 45 \\
\end{tabular}
\end{document}
- 我没有使用该
booktabs
包,因为它不适用于垂直线。 - 我使用
>{...}
了<{...}
大批包以方便包含第一列和第二列的数学模式。 - 我使用
@{...}
构造自动在第一列和第二列之间包含逗号。 - 我曾经
\multicolumn
覆盖过某些列的格式规范。 - 我使用
\cline{i-j}
(相当于)booktabs
来获得一条从一列到另一列\cmidrule
的水平线。i
j
\extrarowheight
用于增加行的垂直空间;为了使此设置保持本地化,您可以将代码括在括号内或形成组的其他构造内(例如环境table
,在这种情况下\noindent
将是多余的)。