用Latex制作复杂表格, 需要用到\multirow宏包, 用\multicolumn, \multirow, \hline, \cline 四种命令来控制跨列,跨行, 横线, 竖线位置。
原帖请见:
http://jhengjyun.blogspot.jp/2011/01/latexmulticolumnmultirow.html
制作的效果为:
对应的latex代码为:
\begin{tabular}{|c|c|c|c|c|}
\hline
\multirow{2}{*}{Multi-Row} &
\multicolumn{2}{c|}{Multi-Column} &
\multicolumn{2}{c|}{\multirow{2}{*}{Multi-Rowand Col}} \\
\cline{2-3}
& column-1 & column-2 & \multicolumn{2}{c|}{} \\
\hline
label-1 & label-2 & label-3 & label-4 &label-5 \\
\hline
\end{tabular}
对以上代码的理解可以这样:
采用latex绘制表格, 是先水平(按行), 后竖直(按列)方向进行绘制。
第一个是2跨行, 所以使用multirow, 然后沿着水平方向, 第二个是两跨列, 于是使用multicloumn, 然后接着沿水平方向, 第三个是两跨列+两跨行, 于是使用multicolumn+multirow嵌套。
这样, 第一行就绘制完了。 然后\\ 转入第二行绘制, 这里的第二行是指第一个2跨行中的第2个行。 由于这个第2行的第一列处于multirow中, 而后续第2,3列有横线, 所以使用cline绘制2,3列间的横线。
注意\cline的参数是:
\cline{2-3}
& column-1 & column-2 & \multicolumn{2}{c|}{} \\
用了3个&, 表示了5个列(最后一个multicolumn代表了2个列)。 所以,使用\cline的时候, 对每一列的内容说明还是跟“|c|c|c|c|c|”保持一致。
总之, 有跨行,跨列的存在时, 还是按照先行后列的方式进行绘制, 时刻注意当前所在的行列位置进行线条绘制。